Compare commits

..

237 Commits

Author SHA1 Message Date
Richard Purdie
ce26a57e04 Revert "expat: Don't use getrandom() in the -native case"
This reverts commit 450942db7f4638eba7ec262901fe1d7e1b1f6070.

Applied in error to the pyro branch.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 23:51:59 +01:00
Richard Purdie
c60135eeef poky: Update version to 2.3.2
(From meta-yocto rev: b96df6ebe62b38343e0e0516e059c2b8f3ee2deb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:16:59 +01:00
Khem Raj
e2ab43fd1d grub: Fix build with gcc7
backport patches from upsteam and adapt them to 2.0 codebase

(From OE-Core rev: 347976bf08158d1aa46dfea6f0f9d6dcc0d97395)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Richard Purdie
911146122c staging: Fix a logic error which caused dependency removal
There was a logic error in the dependency cleanup code which meant
it would remove dependencies which other tasks still depended upon.
Fix the path names so the comparisions work as intended.

This fixes dependencies accidentally disappearing from sysroots
under certain reconfiguration situations.

(From OE-Core rev: 1634fe5148b3501f2c1b75cf7fb704a2ef60424e)

(From OE-Core rev: 3969c068bc9557b405a5ad61c10c402ec93bd932)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a6631eed6f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Richard Purdie
8329bfd156 staging: Ensure dependencies are removed before being added
Currently items are added to the sysroot, the obsolete items are removed. If
a change such as pkgconfig -> pkgconf is made, this leads to conflicts of
overlapping files in the sysroot.

In order to better support this, handle removing items before adding them.
This requires some minor refactoring to construct the installed list
before the main function loop, otherwise there are no changes in this
patch other than reordering the operations.

(From OE-Core rev: add4f107c151d32d9ea914bb0b93c3d3c17c776c)

(From OE-Core rev: 970d4df7336e5102ac61e66689e977fb2e41a1aa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5b45fe40db)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Richard Purdie
292cb6a32f staging: Avoid sysroot removal races
Currently a task could remove a dependency needed by another task leading
to build failures, often due to missing dependencies (e.g. dynamic libraries
not being found). This was often seen for all-arch recipes in package_write_rpm.

When removing a dependency, first check that no other task active for the
recipe has that same dependency.

(From OE-Core rev: ff3617cc2cd5618f48a25aa4e3b2014430fcbe23)

(From OE-Core rev: 67438ac91a40429affc952ad1d7e92c763f52bab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3de0786429)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Paul Eggleton
54efca180b classes/license: drop erroneous sha256 parameter in LIC_FILES_CHKSUM
In OE-Core commit a48fea275b, a check on
the value of a "sha256" parameter was added, however there was no
mention of this in the commit message and no corresponding code to
actually verify the checksum as sha256 was added along with it either,
so there's no point in getting the value. Additionally it was assuming
that a sha256 value would be present without checking first, with the
result that if you leave out the md5 value in a recipe intentionally in
order to get it to tell you the correct value on the next build, you got
a traceback instead of the appropriate error containing the information.
Drop this entirely - if we want to implement this we need to do it
properly.

(From OE-Core rev: e9eaa7d15fe7ab643ab19556dab84051f8f1974e)

(From OE-Core rev: fcedfce43adad8659a1376bb28b1ed41e621dd53)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
21c1a32746 linux-yocto/4.4: update to v4.4.85
Integrating the korg releases with the following commit summary:

   717bd21f81a3 Linux 4.4.85
   12b25d2a52f0 ACPI / APEI: Add missing synchronize_rcu() on NOTIFY_SCI removal
   b526de00a9b0 ACPI: ioapic: Clear on-stack resource before using it
   4e5f2c204150 ntb_transport: fix bug calculating num_qps_mw
   1aac8ffd619f ntb_transport: fix qp count bug
   4ec0b2c2d235 ASoC: rsnd: don't call update callback if it was NULL
   95fc5ef85428 ASoC: rsnd: ssi: 24bit data needs right-aligned settings
   fd504621fa52 ASoC: rsnd: Add missing initialization of ADG req_rate
   e974777b2ecb ASoC: rsnd: avoid pointless loop in rsnd_mod_interrupt()
   fdc568a4224a ASoC: rsnd: disable SRC.out only when stop timing
   bfba69dc30ab ASoC: simple-card: don't fail if sysclk setting is not supported
   eb2ba09b05a6 staging: rtl8188eu: add RNX-N150NUB support
   1d7e8cf01e2e iio: hid-sensor-trigger: Fix the race with user space powering up sensors
   d2c072cb638d iio: imu: adis16480: Fix acceleration scale factor for adis16480
   9dac44d5d4b0 ANDROID: binder: fix proc->tsk check.
   1792d6c17cb2 binder: Use wake up hint for synchronous transactions.
   596b97ec2e5e binder: use group leader instead of open thread
   e1c7a4478833 Bluetooth: bnep: fix possible might sleep error in bnep_session
   f9adf422b993 Bluetooth: cmtp: fix possible might sleep error in cmtp_session
   172bbb8ee44a Bluetooth: hidp: fix possible might sleep error in hidp_session_thread
   708d19eaf303 perf/core: Fix group {cpu,task} validation
   87ac57ff972a nfsd: Limit end of page list when decoding NFSv4 WRITE
   e6066962ca46 cifs: return ENAMETOOLONG for overlong names in cifs_open()/cifs_lookup()
   210b41b4971e cifs: Fix df output for users with quota limits
   9f57741b44ba tracing: Fix freeing of filter in create_filter() when set_str is false
   0d2b7767611f drm: rcar-du: Fix H/V sync signal polarity configuration
   64f3c534e7ac drm: rcar-du: Fix display timing controller parameter
   fbf583912145 drm: rcar-du: Fix crash in encoder failure error path
   766a097cbfea drm: rcar-du: lvds: Rename PLLEN bit to PLLON
   2b60c153ff3d drm: rcar-du: lvds: Fix PLL frequency-related configuration
   3416ee45a8cb drm/atomic: If the atomic check fails, return its value first
   2a9d7664ffb2 drm: Release driver tracking before making the object available again
   33e4c6378417 i2c: designware: Fix system suspend
   10814c149eeb ARCv2: PAE40: Explicitly set MSB counterpart of SLC region ops addresses
   6b1c81dd7fdb ALSA: hda - Add stereo mic quirk for Lenovo G50-70 (17aa:3978)
   099e57fcb03f ALSA: core: Fix unexpected error at replacing user TLV
   07051c175477 Input: elan_i2c - add ELAN0602 ACPI ID to support Lenovo Yoga310
   5609ae96bcd6 Input: trackpoint - add new trackpoint firmware ID
   a56800ae1c57 mei: me: add lewisburg device ids
   707352e68745 mei: me: add broxton pci device ids
   58079f56b302 net_sched: fix order of queue length updates in qdisc_replace()
   248af6aa226c net: sched: fix NULL pointer dereference when action calls some targets
   eece6c91dd33 irda: do not leak initialized list.dev to userspace
   4e39b7409f3b tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP
   ece3ff173731 ipv6: repair fib6 tree in failure case
   6415a71ddf15 ipv6: reset fn->rr_ptr when replacing route
   69827c395d25 tipc: fix use-after-free
   0e8d62861552 sctp: fully initialize the IPv6 address in sctp_v6_to_addr()
   1bd54371388c ipv4: better IP_MAX_MTU enforcement
   7e1fe0062c24 net_sched/sfq: update hierarchical backlog when drop packet
   114414b85475 ipv4: fix NULL dereference in free_fib_info_rcu()
   c207ec46b301 dccp: defer ccid_hc_tx_delete() at dismantle time
   c65eca7ddd88 dccp: purge write queue in dccp_destroy_sock()
   f0cd9201c0c0 af_key: do not use GFP_KERNEL in atomic contexts
   982ce2aa79fb Linux 4.4.84
   ccf1033d9983 usb: qmi_wwan: add D-Link DWM-222 device ID
   6b4509223681 usb: optimize acpi companion search for usb port devices
   ce1b98a30571 perf/x86: Fix LBR related crashes on Intel Atom
   b4cf49024cf4 pids: make task_tgid_nr_ns() safe
   46d51a26efbc Sanitize 'move_pages()' permission checks
   b27e9ff9a5f4 irqchip/atmel-aic: Fix unbalanced refcount in aic_common_rtc_irq_fixup()
   ed281a6acaf1 irqchip/atmel-aic: Fix unbalanced of_node_put() in aic_common_irq_fixup()
   64340986295d x86/asm/64: Clear AC on NMI entries
   c0b397fd6b2b xen: fix bio vec merging
   240628085eff mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes
   cc971fa12bd2 mm/mempolicy: fix use after free when calling get_mempolicy
   669c8ab896a2 ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices
   f600f9c43346 ALSA: usb-audio: Apply sample rate quirk to Sennheiser headset
   735aa043bf00 ALSA: seq: 2nd attempt at fixing race creating a queue
   ae4743cac8d7 Input: elan_i2c - Add antoher Lenovo ACPI ID for upcoming Lenovo NB
   0dbf7f7811df Input: elan_i2c - add ELAN0608 to the ACPI table
   4362533a0468 crypto: x86/sha1 - Fix reads beyond the number of blocks passed
   04f4f73ffe93 parisc: pci memory bar assignment fails with 64bit kernels on dino/cujo
   ea088172692c audit: Fix use after free in audit_remove_watch_rule()
   b72f1119c654 netfilter: nf_ct_ext: fix possible panic after nf_ct_extend_unregister
   425fdd287e9b Linux 4.4.83
   792f1fe5ec55 pinctrl: samsung: Remove bogus irq_[un]mask from resource management
   6f51066b3797 pinctrl: sunxi: add a missing function of A10/A20 pinctrl driver
   8bb6ef68655e pnfs/blocklayout: require 64-bit sector_t
   7b5a9de376b8 iio: adc: vf610_adc: Fix VALT selection value for REFSEL bits
   567a21de8531 usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume
   dd3a2a08943f usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter
   921a1ed2a11a usb: core: unlink urbs from the tail of the endpoint's urb_list
   bc2f02f74549 USB: Check for dropped connection before switching to full speed
   ed4f50eec60f uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069
   dedeba47c51a iio: light: tsl2563: use correct event code
   dfb5cc919c61 iio: accel: bmc150: Always restore device to normal mode after suspend-resume
   c5f6f4fe1c09 staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read
   dc978e9b65ab USB: hcd: Mark secondary HCD as dead if the primary one died
   8b278516e5e3 usb: musb: fix tx fifo flush handling again
   8a0c225613c2 USB: serial: pl2303: add new ATEN device id
   31c9287b9430 USB: serial: cp210x: add support for Qivicon USB ZigBee dongle
   9cb43dec24e0 USB: serial: option: add D-Link DWM-222 device ID
   a89843a80bd4 nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays
   7271d130b5dc fuse: initialize the flock flag in fuse_file on allocation
   b89e781dab24 iscsi-target: Fix iscsi_np reset hung task during parallel delete
   3afc4e9273de iscsi-target: fix memory leak in iscsit_setup_text_cmd()
   9ea732ebb53f mm: ratelimit PFNs busy info message
   97e371409da7 cpuset: fix a deadlock due to incomplete patching of cpusets_enabled()
   4e2e415f4cc1 Linux 4.4.82
   fab61468402b net: account for current skb length when deciding about UFO
   96cdeaa3af8f ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output
   d45aabadbcb9 mm/mempool: avoid KASAN marking mempool poison checks as use-after-free
   7e86f2d55f66 KVM: arm/arm64: Handle hva aging while destroying the vm
   6fe71ca3cb3c sparc64: Prevent perf from running during super critical sections
   938990d2433c udp: consistently apply ufo or fragmentation
   98c1ad1edfe8 revert "ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output"
   54fc0c32307d revert "net: account for current skb length when deciding about UFO"
   63364a508d24 packet: fix tp_reserve race in packet_set_ring
   37d5c6e8d38d net: avoid skb_warn_bad_offload false positives on UFO
   8607d550847f tcp: fastopen: tcp_connect() must refresh the route
   40fc2b4451a2 net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target
   d0da2877d421 bpf, s390: fix jit branch offset related to ldimm64
   4e0675f44b89 net: fix keepalive code vs TCP_FASTOPEN_CONNECT
   025bb7f7e92c tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states
   2ab639c7e2d1 Linux 4.4.81
   34a08ae493f1 workqueue: implicit ordered attribute should be overridable
   0c787041504e net: account for current skb length when deciding about UFO
   12b8f014a394 ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output
   78c04996b588 mm: don't dereference struct page fields of invalid pages
   bbe660db23e4 signal: protect SIGNAL_UNKILLABLE from unintentional clearing.
   623f4fcd947e lib/Kconfig.debug: fix frv build failure
   9c83b97bdeab mm, slab: make sure that KMALLOC_MAX_SIZE will fit into MAX_ORDER
   5205f5216c6a ARM: 8632/1: ftrace: fix syscall name matching
   874f22658c54 virtio_blk: fix panic in initialization error path
   c9e4ee445752 drm/virtio: fix framebuffer sparse warning
   1e43b2d06474 scsi: qla2xxx: Get mutex lock before checking optrom_state
   a98737110659 phy state machine: failsafe leave invalid RUNNING state
   db01878ca5dd x86/boot: Add missing declaration of string functions
   032422cca86d tg3: Fix race condition in tg3_get_stats64().
   93585e813588 net: phy: dp83867: fix irq generation
   41433e314b77 sh_eth: R8A7740 supports packet shecksumming
   50231cef2d6f wext: handle NULL extra data in iwe_stream_add_point better
   cada8caa2655 sparc64: Measure receiver forward progress to avoid send mondo timeout
   7c37101cd650 xen-netback: correctly schedule rate-limited queues
   2933fb22de6d net: phy: Fix PHY unbind crash
   a8f1b40bb2da net: phy: Correctly process PHY_HALTED in phy_stop_machine()
   dc4132791a50 net/mlx5: Fix command bad flow on command entry allocation failure
   de6669607a45 sctp: fix the check for _sctp_walk_params and _sctp_walk_errors
   2bac20a4ae9c sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()
   dd4edbcbb760 dccp: fix a memleak for dccp_feat_init err process
   adcc87858e09 dccp: fix a memleak that dccp_ipv4 doesn't put reqsk properly
   c3278ed37d3e dccp: fix a memleak that dccp_ipv6 doesn't put reqsk properly
   91c5aa7ea073 net: ethernet: nb8800: Handle all 4 RGMII modes identically
   d1ed1f8ae487 ipv6: Don't increase IPSTATS_MIB_FRAGFAILS twice in ip6_fragment()
   499338964af8 packet: fix use-after-free in prb_retire_rx_blk_timer_expired()
   23f787ceebf8 openvswitch: fix potential out of bound access in parse_ct
   6d1e34ee278f mcs7780: Fix initialization when CONFIG_VMAP_STACK is enabled
   d0594690a9ee rtnetlink: allocate more memory for dev_set_mac_address()
   31afa8b5edf9 ipv4: initialize fib_trie prior to register_netdev_notifier call.
   f09db7559c1f ipv6: avoid overflow of offset in ip6_find_1stfragopt
   e9b2f4617a4e net: Zero terminate ifr_name in dev_ifname().
   c10e874bc3a5 ipv4: ipv6: initialize treq->txhash in cookie_v[46]_check()
   deae9956cfb4 saa7164: fix double fetch PCIe access condition
   e0f39019aa3f drm: rcar-du: fix backport bug
   76517ed2a7fe f2fs: sanity check checkpoint segno and blkoff
   c7c6f63dbc67 media: lirc: LIRC_GET_REC_RESOLUTION should return microseconds
   f1181047ff29 mm, mprotect: flush TLB if potentially racing with a parallel reclaim leaving stale TLB entries
   9745cbec9c1f iser-target: Avoid isert_conn->cm_id dereference in isert_login_recv_done
   ae059833646f iscsi-target: Fix delayed logout processing greater than SECONDS_FOR_LOGOUT_COMP
   bf54cf1ede97 iscsi-target: Fix initial login PDU asynchronous socket close OOPs
   cf4ab9d57cbe iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race
   119903dc36d3 iscsi-target: Always wait for kthread_should_stop() before kthread exit
   2bf7791c6a5e target: Avoid mappedlun symlink creation during lun shutdown
   fa95dfc750fb media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARAMS ioctl
   3c2bf2bd8829 ARM: dts: armada-38x: Fix irq type for pca955
   31cd127ca69a ext4: fix overflow caused by missing cast in ext4_resize_fs()
   bad9f6142ce1 ext4: fix SEEK_HOLE/SEEK_DATA for blocksize < pagesize
   12f60018f63b mm/page_alloc: Remove kernel address exposure in free_reserved_area()
   bbccdb1e442b KVM: async_pf: make rcu irq exit if not triggered from idle task
   7de8d0c06e56 ASoC: do not close shared backend dailink
   458c8be4e208 ALSA: hda - Fix speaker output from VAIO VPCL14M1R
   c59eec4dad4a workqueue: restore WQ_UNBOUND/max_active==1 to be ordered
   8ecd8cff92a8 libata: array underflow in ata_find_dev()
   09e69607e47c Linux 4.4.80
   2f8e6140bb6a ASoC: dpcm: Avoid putting stream state to STOP when FE stream is paused
   32b850a626c5 scsi: snic: Return error code on memory allocation failure
   27eb77b5544e scsi: fnic: Avoid sending reset to firmware when another reset is in progress
   0866aed4fa64 HID: ignore Petzl USB headlamp
   cab7c045f5fd ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion
   8ced91a2e920 sh_eth: enable RX descriptor word 0 shift on SH7734
   fe1da3b785b3 nvmem: imx-ocotp: Fix wrong register size
   e76426857b3e arm64: mm: fix show_pte KERN_CONT fallout
   dc48ebe33063 vfio-pci: Handle error from pci_iomap
   93794239c6b9 video: fbdev: cobalt_lcdfb: Handle return NULL error from devm_ioremap
   1286e959a59a perf symbols: Robustify reading of build-id from sysfs
   cc8b62fce96b perf tools: Install tools/lib/traceevent plugins with install-bin
   ce9b76665ecd xfrm: Don't use sk_family for socket policy lookups
   4b8adea2e3cd tools lib traceevent: Fix prev/next_prio for deadline tasks
   786fd31f6001 Btrfs: adjust outstanding_extents counter properly when dio write is split
   7ea3cc440ec9 usb: gadget: Fix copy/pasted error message
   f4a42f8492bd ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
   8c065e76fbc5 ARM: s3c2410_defconfig: Fix invalid values for NF_CT_PROTO_*
   fcee67d7d618 ARM64: zynqmp: Fix i2c node's compatible string
   4bd1d0b1a170 ARM64: zynqmp: Fix W=1 dtc 1.4 warnings
   a07d8c131898 dmaengine: ti-dma-crossbar: Add some 'of_node_put()' in error path.
   328a9cdcbab9 dmaengine: ioatdma: workaround SKX ioatdma version
   6c0d9f0212f8 dmaengine: ioatdma: Add Skylake PCI Dev ID
   65dab1d8af6c openrisc: Add _text symbol to fix ksym build error
   4c1ea6a51acd irqchip/mxs: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
   1a734b39857e ASoC: nau8825: fix invalid configuration in Pre-Scalar of FLL
   152684089ea3 spi: dw: Make debugfs name unique between instances
   dc19e98eb86e ASoC: tlv320aic3x: Mark the RESET register as volatile
   fc6c41f0b921 irqchip/keystone: Fix "scheduling while atomic" on rt
   1704a9695062 vfio-pci: use 32-bit comparisons for register address for gcc-4.5
   7de922c14e83 drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set
   b54e58ccceb7 drm/msm: Ensure that the hardware write pointer is valid
   cbc80312fd70 net/mlx4: Remove BUG_ON from ICM allocation routine
   386504004504 ipv6: Should use consistent conditional judgement for ip6 fragment between __ip6_append_data and ip6_finish_output
   ed3e4a435339 ARM: dts: n900: Mark eMMC slot with no-sdio and no-sd flags
   7cff0699f47e r8169: add support for RTL8168 series add-on card.
   6b99f1a84d5c x86/mce/AMD: Make the init code more robust
   f7e0f7f86ce0 tpm: Replace device number bitmap with IDR
   7e7892239327 tpm: fix a kernel memory leak in tpm-sysfs.c
   366f50133bb6 xen/blkback: don't use xen_blkif_get() in xen-blkback kthread
   53f577247738 xen/blkback: don't free be structure too early
   62208707b466 sched/cputime: Fix prev steal time accouting during CPU hotplug
   fa57125e8ec4 net: skb_needs_check() accepts CHECKSUM_NONE for tx
   fa7773191046 pstore: Use dynamic spinlock initializer
   9ece74e1006e pstore: Correctly initialize spinlock and flags
   aca5b1e3c5b7 pstore: Allow prz to control need for locking
   ff013a624258 vlan: Propagate MAC address to VLANs
   e8aff6037318 /proc/iomem: only expose physical resource addresses to privileged users
   14ae9c4b5ae2 Make file credentials available to the seqfile interfaces
   b3ddb091c77f v4l: s5c73m3: fix negation operator
   407669f2c9fe dentry name snapshots
   9909e61c1006 ipmi/watchdog: fix watchdog timeout set on reboot
   81845c2f61bf libnvdimm, btt: fix btt_rw_page not returning errors
   c4af40a7218e RDMA/uverbs: Fix the check for port number
   c7ca61734ba7 PM / Domains: defer dev_pm_domain_set() until genpd->attach_dev succeeds if present
   0e0967e26241 sched/cgroup: Move sched_online_group() back into css_online() to fix crash
   9402c6266704 kaweth: fix oops upon failed memory allocation
   19ba0e65d60b kaweth: fix firmware download
   658f9c65ee8c mpt3sas: Don't overreach ioc->reply_post[] during initialization
   63c9c49c04a1 mailbox: handle empty message in tx_tick
   21ab579fbae6 mailbox: skip complete wait event if timer expired
   686494443dd3 mailbox: always wait in mbox_send_message for blocking Tx mode
   461b44fdf02f wil6210: fix deadlock when using fw_no_recovery option
   91cc72969137 ath10k: fix null deref on wmi-tlv when trying spectral scan
   d4b159f14d61 isdn/i4l: fix buffer overflow
   633763ed93c4 isdn: Fix a sleep-in-atomic bug
   71a165f6397d net: phy: Do not perform software reset for Generic PHY
   8335b312c7cc nfc: fdp: fix NULL pointer dereference
   56548b6f505a xfs: don't BUG() on mixed direct and mapped I/O
   eb0760deee89 perf intel-pt: Ensure never to set 'last_ip' when packet 'count' is zero
   0ce32f8944c6 perf intel-pt: Use FUP always when scanning for an IP
   33f3bc42fc23 perf intel-pt: Fix last_ip usage
   01ac8afc6c8f perf intel-pt: Fix ip compression
   8255d26322a3 drm: rcar-du: Simplify and fix probe error handling
   5ec9d83b2b54 drm: rcar-du: Perform initialization/cleanup at probe/remove time
   0354df9578b4 drm/rcar: Nuke preclose hook
   b5a48676e7a2 Staging: comedi: comedi_fops: Avoid orphaned proc entry
   0c335d55cee6 Revert "powerpc/numa: Fix percpu allocations to be NUMA aware"
   fcd35f5a3f85 KVM: PPC: Book3S HV: Save/restore host values of debug registers
   17d381054b1d KVM: PPC: Book3S HV: Reload HTM registers explicitly
   f5b29db247d4 KVM: PPC: Book3S HV: Restore critical SPRs to host values on guest exit
   339fa4af4133 KVM: PPC: Book3S HV: Context-switch EBB registers properly
   29da136fbbd9 drm/nouveau/bar/gf100: fix access to upper half of BAR2
   fde885f19986 drm/vmwgfx: Fix gcc-7.1.1 warning
   376830c340ec md/raid5: add thread_group worker async_tx_issue_pending_all
   2148e9ab0cac crypto: authencesn - Fix digest_null crash
   c4efb7434a2a powerpc/pseries: Fix of_node_put() underflow during reconfig remove
   fdbcb81b5a31 net: reduce skb_warn_bad_offload() noise
   08408f7ae5cd pstore: Make spinlock per zone instead of global
   b627f6001948 af_key: Add lock to key dump
   e058f634852d Linux 4.4.79
   9c839d00dc1b alarmtimer: don't rate limit one-shot timers
   bb8109a9ca87 tracing: Fix kmemleak in instance_rmdir
   6dbd8f73a28e spmi: Include OF based modalias in device uevent
   29669d8e8f4c of: device: Export of_device_{get_modalias, uvent_modalias} to modules
   4ca0f3730e27 drm/mst: Avoid processing partially received up/down message transactions
   3d26e2ed7c8b drm/mst: Avoid dereferencing a NULL mstb in drm_dp_mst_handle_up_req()
   3383334a6cf3 drm/mst: Fix error handling during MST sideband message reception
   af7b187fe52f RDMA/core: Initialize port_num in qp_attr
   ba790013b514 ceph: fix race in concurrent readdir
   5af851adbeea staging: rtl8188eu: add TL-WN722N v2 support
   45c59e792ce6 Revert "perf/core: Drop kernel samples even though :u is specified"
   569da0be824b perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target
   8d832513726d target: Fix COMPARE_AND_WRITE caw_sem leak during se_cmd quiesce
   f57b4ae0b750 udf: Fix deadlock between writeback and udf_setsize()
   d2fa4057b11e NFS: only invalidate dentrys that are clearly invalid.
   bba6b69e1177 Input: i8042 - fix crash at boot time
   775e4dba9d07 MIPS: Fix a typo: s/preset/present/ in r2-to-r6 emulation error message
   f28e32a8e379 MIPS: Send SIGILL for linked branches in `__compute_return_epc_for_insn'
   d2220e7f285b MIPS: Rename `sigill_r6' to `sigill_r2r6' in `__compute_return_epc_for_insn'
   e5bf16f02945 MIPS: Send SIGILL for BPOSGE32 in `__compute_return_epc_for_insn'
   4c7d28c1e99d MIPS: math-emu: Prevent wrong ISA mode instruction emulation
   9dbca9e8a91a MIPS: Fix unaligned PC interpretation in `compute_return_epc'
   aebb79634ff1 MIPS: Actually decode JALX in `__compute_return_epc_for_insn'
   f87aa1203910 MIPS: Save static registers before sysmips
   a0ee41298926 MIPS: Fix MIPS I ISA /proc/cpuinfo reporting
   71de40fd4f64 x86/ioapic: Pass the correct data to unmask_ioapic_irq()
   fa7ddee3485f x86/acpi: Prevent out of bound access caused by broken ACPI tables
   62d131ec60cd MIPS: Negate error syscall return in trace
   4d9f109ff9ca MIPS: Fix mips_atomic_set() with EVA
   de34c0799d25 MIPS: Fix mips_atomic_set() retry condition
   75202d3ffca4 ftrace: Fix uninitialized variable in match_records()
   3457c0459496 vfio: New external user group/file match
   db42944cc63a vfio: Fix group release deadlock
   fca8859982fb f2fs: Don't clear SGID when inheriting ACLs
   fa696eea4d8d ipmi:ssif: Add missing unlock in error branch
   8878c53244f5 ipmi: use rcu lock around call to intf->handlers->sender()
   89308cb841c6 drm/radeon: Fix eDP for single-display iMac10,1 (v2)
   0157e2a8a719 drm/radeon/ci: disable mclk switching for high refresh rates (v2)
   ad2efae4613d drm/amd/amdgpu: Return error if initiating read out of range on vram
   a89b6e355dae s390/syscalls: Fix out of bounds arguments access
   098333918b4f Raid5 should update rdev->sectors after reshape
   78de920bae8a cx88: Fix regression in initial video standard setting
   5c7c179eb9e3 x86/xen: allow userspace access during hypercalls
   78dce99f5497 md: don't use flush_signals in userspace processes
   9b989b4d325b usb: renesas_usbhs: gadget: disable all eps when the driver stops
   abe87c1c0dff usb: renesas_usbhs: fix usbhsc_resume() for !USBHSF_RUNTIME_PWCTRL
   ff651e899073 USB: cdc-acm: add device-id for quirky printer
   ab8e00991809 usb: storage: return on error to avoid a null pointer dereference
   f883b509b48b xhci: Fix NULL pointer dereference when cleaning up streams for removed host
   09364c783c84 xhci: fix 20000ms port resume timeout
   82944485937a ipvs: SNAT packet replies only for NATed connections
   48a72b55502c PCI/PM: Restore the status of PCI devices across hibernation
   7ad6d36dc907 af_key: Fix sadb_x_ipsecrequest parsing
   b8c6a93837f0 powerpc/asm: Mark cr0 as clobbered in mftb()
   79afeb379cf4 powerpc: Fix emulation of mfocrf in emulate_step()
   397722322954 powerpc: Fix emulation of mcrf in emulate_step()
   3f888d1e40ad powerpc/64: Fix atomic64_inc_not_zero() to return an int
   c50e87ecca55 iscsi-target: Add login_keys_workaround attribute for non RFC initiators
   8045fe0a208c scsi: ses: do not add a device to an enclosure if enclosure_add_links() fails.
   e114c612e225 PM / Domains: Fix unsafe iteration over modified list of domain providers
   f422cfc38ecc PM / Domains: Fix unsafe iteration over modified list of device links
   50b40109fada ASoC: compress: Derive substream from stream based on direction
   c2d4d4fa320c wlcore: fix 64K page support
   1e3b56033e82 Bluetooth: use constant time memory comparison for secret values
   3762d7ed1a43 perf intel-pt: Clear FUP flag on error
   b559fa787c62 perf intel-pt: Ensure IP is zero when state is INTEL_PT_STATE_NO_IP
   2178b4aa56b7 perf intel-pt: Fix missing stack clear
   a4ebb58fd124 perf intel-pt: Improve sample timestamp
   5523884640e9 perf intel-pt: Move decoder error setting into one condition
   ac8f07408acd NFC: Add sockaddr length checks before accessing sa_family in bind handlers
   f71ce1c865cb nfc: Fix the sockaddr length sanitization in llcp_sock_connect
   ecb7abed0be9 nfc: Ensure presence of required attributes in the activate_target handler
   b57a72d5aaf8 NFC: nfcmrvl: fix firmware-management initialisation
   5288f3f80c4c NFC: nfcmrvl: use nfc-device for firmware download
   6e2b65dc2774 NFC: nfcmrvl: do not use device-managed resources
   4798e468b37b NFC: nfcmrvl_uart: add missing tty-device sanity check
   f4d41096f49e NFC: fix broken device allocation
   5c2828839909 ath9k: fix tx99 bus error
   a86c42f760ff ath9k: fix tx99 use after free
   2c1ac3721d4a thermal: cpu_cooling: Avoid accessing potentially freed structures
   f440ec864fd8 s5p-jpeg: don't return a random width/height
   0ff1117c08c2 ir-core: fix gcc-7 warning on bool arithmetic
   83863589806d disable new gcc-7.1.1 warnings for now
   ece78cd779f4 Linux 4.4.78
   3ed43caedf69 kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
   6ffa92ffaed8 kvm: vmx: Check value written to IA32_BNDCFGS
   a40f0ccd4f1c kvm: x86: Guest BNDCFGS requires guest MPX support
   be6f33a61f33 kvm: vmx: Do not disable intercepts for BNDCFGS
   c6f3576ed0f2 KVM: x86: disable MPX if host did not enable MPX XSAVE features
   999b96b4de81 tracing: Use SOFTIRQ_OFFSET for softirq dectection for more accurate results
   c17f6512463e PM / QoS: return -EINVAL for bogus strings
   275d4be9d39f PM / wakeirq: Convert to SRCU
   988067ec9606 sched/topology: Optimize build_group_mask()
   5c34f49776b8 sched/topology: Fix overlapping sched_group_mask
   4e3c1188521a crypto: caam - fix signals handling
   f1bf5d83a9c1 crypto: sha1-ssse3 - Disable avx2
   fc43f0935035 crypto: atmel - only treat EBUSY as transient if backlog
   d05fbdbe6d1c crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD
   8f93a9aa1d65 mm: fix overflow check in expand_upwards()
   0f4fa2138e83 tpm: Issue a TPM2_Shutdown for TPM2 devices.
   5c9a2972983f Add "shutdown" to "struct class".
   5ec5771bcb2b tpm: Provide strong locking for device removal
   5e07de5b5a4e tpm: Get rid of chip->pdev
   a2e0b1c18c09 selftests/capabilities: Fix the test_execve test
   f07288cfb0f7 mnt: Make propagate_umount less slow for overlapping mount propagation trees
   fdb8f1049992 mnt: In propgate_umount handle visiting mounts in any order
   7cbc3955ef3b mnt: In umount propagation reparent in a separate pass
   050b074e2285 vt: fix unchecked __put_user() in tioclinux ioctls
   86949eb96466 exec: Limit arg stack to at most 75% of _STK_LIM
   7888c0296c87 s390: reduce ELF_ET_DYN_BASE
   72a333a0468e powerpc: move ELF_ET_DYN_BASE to 4GB / 4MB
   43cf90f788ac arm64: move ELF_ET_DYN_BASE to 4GB / 4MB
   d2471b5e84f3 arm: move ELF_ET_DYN_BASE to 4MB
   7eb968cd04d4 binfmt_elf: use ELF_ET_DYN_BASE only for PIE
   4544e9ebef4c checkpatch: silence perl 5.26.0 unescaped left brace warnings
   68b0f5d85b3a fs/dcache.c: fix spin lockup issue on nlru->lock
   2d0db02d2e8f mm/list_lru.c: fix list_lru_count_node() to be race free
   717ce69e47f0 kernel/extable.c: mark core_kernel_text notrace
   0d6ee0bea866 tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth
   b29145746576 parisc/mm: Ensure IRQs are off in switch_mm()
   635a58225c36 parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs
   f265641dc874 parisc: use compat_sys_keyctl()
   e18ca17b9040 parisc: Report SIGSEGV instead of SIGBUS when running out of stack
   970616464f43 irqchip/gic-v3: Fix out-of-bound access in gic_set_affinity
   2d3c10e21571 cfg80211: Check if PMKID attribute is of expected size
   24d0410712b0 cfg80211: Validate frequencies nested in NL80211_ATTR_SCAN_FREQUENCIES
   05bf0b6ef9ce cfg80211: Define nla_policy for NL80211_ATTR_LOCAL_MESH_POWER_MODE
   4c7021c2fb74 brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
   9618eb4af306 rds: tcp: use sock_create_lite() to create the accept socket
   89e7f17f8f64 vrf: fix bug_on triggered by rx when destroying a vrf
   eb7bef1db6f3 net: ipv6: Compare lwstate in detecting duplicate nexthops
   0c32b01ee49d ipv6: dad: don't remove dynamic addresses if link is down
   38ae32c9f13d net: handle NAPI_GRO_FREE_STOLEN_HEAD case also in napi_frags_finish()
   1a4f13e0a99a bpf: prevent leaking pointer via xadd on unpriviledged
   d598f7ff24db net: prevent sign extension in dev_get_stats()
   32a44f1ba7ed tcp: reset sk_rx_dst in tcp_disconnect()
   ccff2f4afbc1 net: dp83640: Avoid NULL pointer dereference.
   6a87cca39f29 ipv6: avoid unregistering inet6_dev for loopback
   f71e5140242a net/phy: micrel: configure intterupts after autoneg workaround
   c485792ed649 net: sched: Fix one possible panic when no destroy callback
   0be4c96e7c57 net_sched: fix error recovery at qdisc creation
   9e0499d7d30c Linux 4.4.77
   52b9815d37fc saa7134: fix warm Medion 7134 EEPROM read
   646b65808b0d x86/mm/pat: Don't report PAT on CPUs that don't support it
   ad5a88c54cd2 ext4: check return value of kstrtoull correctly in reserved_clusters_store
   cb2bc13d0b55 staging: comedi: fix clean-up of comedi_class in comedi_init()
   370d06c6b075 staging: vt6556: vnt_start Fix missing call to vnt_key_init_table.
   627f3abeeac1 tcp: fix tcp_mark_head_lost to check skb len before fragmenting
   ff62c63109d9 md: fix super_offset endianness in super_1_rdev_size_change
   e20894aad9e8 md: fix incorrect use of lexx_to_cpu in does_sb_need_changing
   2b4f81fb56cf perf tools: Use readdir() instead of deprecated readdir_r() again
   c04b8bbd64be perf tests: Remove wrong semicolon in while loop in CQM test
   1991cbd2c486 perf trace: Do not process PERF_RECORD_LOST twice
   5a25a08ad5e6 perf dwarf: Guard !x86_64 definitions under #ifdef else clause
   300d4fea8de0 perf pmu: Fix misleadingly indented assignment (whitespace)
   0ba2f070bf45 perf annotate browser: Fix behaviour of Shift-Tab with nothing focussed
   0717b5dfab93 perf tools: Remove duplicate const qualifier
   c7b8d98bff82 perf script: Use readdir() instead of deprecated readdir_r()
   56e75cee2af3 perf thread_map: Use readdir() instead of deprecated readdir_r()
   055ce585a864 perf tools: Use readdir() instead of deprecated readdir_r()
   144eb3e8e4d9 perf bench numa: Avoid possible truncation when using snprintf()
   fb3c230b7ec2 perf tests: Avoid possible truncation with dirent->d_name + snprintf
   071ca0bcf337 perf scripting perl: Fix compile error with some perl5 versions
   c9cf7ce0bbc4 perf thread_map: Correctly size buffer used with dirent->dt_name
   e5a9078a8e0e perf intel-pt: Use __fallthrough
   0586f5cd4195 perf top: Use __fallthrough
   1ca0a4098005 tools strfilter: Use __fallthrough
   57a4c2504b77 tools string: Use __fallthrough in perf_atoll()
   e1b7b00a1bd5 tools include: Add a __fallthrough statement
   034e10b4f834 mqueue: fix a use-after-free in sys_mq_notify()
   5fd2bba08c17 RDMA/uverbs: Check port number supplied by user verbs cmds
   92e90c20dc38 KEYS: Fix an error code in request_master_key()
   483b1c69655d ath10k: override CE5 config for QCA9377
   e47e71766640 x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings
   0214a8ca61e2 x86/tools: Fix gcc-7 warning in relocs.c
   e952c291df09 gfs2: Fix glock rhashtable rcu bug
   ac12d6abed6c USB: serial: qcserial: new Sierra Wireless EM7305 device ID
   1a04853de069 USB: serial: option: add two Longcheer device ids
   174ddbcc69e2 pinctrl: sh-pfc: Update info pointer after SoC-specific init
   45424528a184 pinctrl: mxs: atomically switch mux and drive strength config
   79565741fce0 pinctrl: sunxi: Fix SPDIF function name for A83T
   3c4720871bdd pinctrl: meson: meson8b: fix the NAND DQS pins
   5d030f597f47 pinctrl: sh-pfc: r8a7791: Fix SCIF2 pinmux data
   a2148222e375 sysctl: report EINVAL if value is larger than UINT_MAX for proc_douintvec
   e8505e6432c2 sysctl: don't print negative flag for proc_douintvec
   2e42225b85ee mac80211_hwsim: Replace bogus hrtimer clockid
   93f526ffe8ae usb: Fix typo in the definition of Endpoint[out]Request
   c6bf62a36175 usb: usbip: set buffer pointers to NULL after free
   ab96add78bfe Add USB quirk for HVR-950q to avoid intermittent device resets
   45c73d0c7a96 USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
   c8130087ff4d usb: dwc3: replace %p with %pK
   a080ec466c34 drm/virtio: don't leak bo on drm_gem_object_init failure
   fe0bb2ac167b tracing/kprobes: Allow to create probe with a module name starting with a digit
   78f20db86418 mm: fix classzone_idx underflow in shrink_zones()
   1f97e170cfc5 bgmac: reset & enable Ethernet core before using it
   c01ace719ebe driver core: platform: fix race condition with driver_override
   4043d5bca587 fs: completely ignore unknown open flags
   ccb973e681d8 fs: add a VALID_OPEN_FLAGS

(From OE-Core rev: 5a2cfba0a3343fe0095b04ae2444aac8b2316320)

(From OE-Core rev: 55a7787d86d087549a7a146a0485d4c9777d7ce7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
5d83d8d351 linux-yocto/4.9: update to v4.9.46
Integrating the korg -stable releases with the following commit summary:

   0eed54bdbd1b Linux 4.9.46
   5aa523a994d1 powerpc/mm: Ensure cpumask update is ordered
   5906715b93da ACPI: EC: Fix regression related to wrong ECDT initialization order
   3bc8e4f96fe9 ACPI / APEI: Add missing synchronize_rcu() on NOTIFY_SCI removal
   454cac5d0891 ACPI: ioapic: Clear on-stack resource before using it
   c1628774f0c8 ntb: transport shouldn't disable link due to bogus values in SPADs
   4d4f35473d8f ntb: ntb_test: ensure the link is up before trying to configure the mws
   7592db555524 ntb: no sleep in ntb_async_tx_submit
   bff04a462da3 NTB: ntb_test: fix bug printing ntb_perf results
   471954c313c5 ntb_transport: fix bug calculating num_qps_mw
   4743d1b37a38 ntb_transport: fix qp count bug
   b8fce38266db Clarify (and fix) MAX_LFS_FILESIZE macros
   ab4be3a64d06 staging: rtl8188eu: add RNX-N150NUB support
   23caaf2f216c iio: hid-sensor-trigger: Fix the race with user space powering up sensors
   b150ee066af7 iio: imu: adis16480: Fix acceleration scale factor for adis16480
   cbd854d99354 ANDROID: binder: fix proc->tsk check.
   8fb0b0ce288d binder: Use wake up hint for synchronous transactions.
   51050750181c binder: use group leader instead of open thread
   eda70a559187 Revert "android: binder: Sanity check at binder ioctl"
   242cea2d666f Bluetooth: bnep: fix possible might sleep error in bnep_session
   ffb7640acbc3 Bluetooth: cmtp: fix possible might sleep error in cmtp_session
   1b5fcb3b25f7 Bluetooth: hidp: fix possible might sleep error in hidp_session_thread
   5f81b1f51b9c netfilter: nat: fix src map lookup
   090911a22c7b Revert "leds: handle suspend/resume in heartbeat trigger"
   d4c5c26c5f09 net: sunrpc: svcsock: fix NULL-pointer exception
   3559de45c99a x86/mm: Fix use-after-free of ldt_struct
   70b3fd5ce2ce timers: Fix excessive granularity of new timers after a nohz idle
   3df3b2efc065 perf/x86/intel/rapl: Make package handling more robust
   bac83e5ce85e perf probe: Fix --funcs to show correct symbols for offline module
   bde6608dd638 perf/core: Fix group {cpu,task} validation
   741397d16a3d ftrace: Check for null ret_stack on profile function graph entry function
   fd8235e721ef nfsd: Limit end of page list when decoding NFSv4 WRITE
   5ed70f7db9af cifs: return ENAMETOOLONG for overlong names in cifs_open()/cifs_lookup()
   8b053290ee20 cifs: Fix df output for users with quota limits
   1fdee09116db kbuild: linker script do not match C names unless LD_DEAD_CODE_DATA_ELIMINATION is configured
   8838cd5c543f tracing: Fix freeing of filter in create_filter() when set_str is false
   2818a7659f0a tracing: Fix kmemleak in tracing_map_array_free()
   3170d9abc5d0 tracing: Call clear_boot_tracer() at lateinit_sync
   46cd0a3b93a5 drm: rcar-du: Fix H/V sync signal polarity configuration
   1fb8ff8b92bd drm: rcar-du: Fix display timing controller parameter
   35fd2b840b6c drm: rcar-du: Fix crash in encoder failure error path
   eed96e759533 drm/atomic: If the atomic check fails, return its value first
   ce66f629ad82 drm: Release driver tracking before making the object available again
   9d263321d7a2 mm/memblock.c: reversed logic in memblock_discard()
   b65b6ac52e0f fork: fix incorrect fput of ->exe_file causing use-after-free
   0f49b0519f11 mm/madvise.c: fix freeing of locked page with MADV_FREE
   036c100b58f7 i2c: designware: Fix system suspend
   5d8b3cc24688 mm, shmem: fix handling /sys/kernel/mm/transparent_hugepage/shmem_enabled
   8d362cb3bfbb ARCv2: PAE40: Explicitly set MSB counterpart of SLC region ops addresses
   6cba07468521 ALSA: firewire: fix NULL pointer dereference when releasing uninitialized data of iso-resource
   b52bce93db99 ALSA: hda - Add stereo mic quirk for Lenovo G50-70 (17aa:3978)
   8989c70d30b6 ALSA: core: Fix unexpected error at replacing user TLV
   9767a4567831 ALSA: usb-audio: Add delay quirk for H650e/Jabra 550a USB headsets
   275f3033ccf6 KVM: x86: block guest protection keys unless the host has them enabled
   cfb917a17d3d KVM: s390: sthyi: fix specification exception detection
   a745333fa924 KVM: s390: sthyi: fix sthyi inline assembly
   963068b1ff1c Input: ALPS - fix two-finger scroll breakage in right side on ALPS touchpad
   9ab605d2bb6f Input: elan_i2c - add ELAN0602 ACPI ID to support Lenovo Yoga310
   a00a9cd7daf9 Input: trackpoint - add new trackpoint firmware ID
   655da3da9bb3 bpf/verifier: fix min/max handling in BPF_SUB
   bf5b91b782e8 bpf: fix mixed signed/unsigned derived min/max value bounds
   8d674bee8f66 bpf, verifier: fix alu ops against map_value{, _adj} register types
   577aa83b2896 bpf: adjust verifier heuristics
   e37bdeee95a4 bpf, verifier: add additional patterns to evaluate_reg_imm_alu
   7fa2fdf9f19e net_sched: fix order of queue length updates in qdisc_replace()
   3e00bf91fefc net: sched: fix NULL pointer dereference when action calls some targets
   f3f5bf2755c7 irda: do not leak initialized list.dev to userspace
   19f433a9ce9d net/mlx4_core: Enable 4K UAR if SRIOV module parameter is not enabled
   aadbe1fe91e7 tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP
   1c18f9367520 ipv6: repair fib6 tree in failure case
   62e9a28baa28 ipv6: reset fn->rr_ptr when replacing route
   7ad5fb9594ee tipc: fix use-after-free
   0f5ecc79194d sctp: fully initialize the IPv6 address in sctp_v6_to_addr()
   57406e737322 nfp: fix infinite loop on umapping cleanup
   f29c9f46af4a ipv4: better IP_MAX_MTU enforcement
   59af5b87695d ptr_ring: use kmalloc_array()
   3c7af814def8 openvswitch: fix skb_panic due to the incorrect actions attrlen
   d6a6b6b4c3ba bpf: fix bpf_trace_printk on 32 bit archs
   792c0707bd3f net_sched: remove warning from qdisc_hash_add
   38530f6e6dae net_sched/sfq: update hierarchical backlog when drop packet
   71501d9b6190 ipv4: fix NULL dereference in free_fib_info_rcu()
   236b0d939b05 dccp: defer ccid_hc_tx_delete() at dismantle time
   b31cbe2c3916 dccp: purge write queue in dccp_destroy_sock()
   2e3f17f81029 af_key: do not use GFP_KERNEL in atomic contexts
   d0526eef0bf7 sparc64: remove unnecessary log message
   4b904b22bc90 Linux 4.9.45
   083d423b1f8a usb: qmi_wwan: add D-Link DWM-222 device ID
   edfe57b2f44a usb: optimize acpi companion search for usb port devices
   322cd3262365 pids: make task_tgid_nr_ns() safe
   61332dc598c3 Sanitize 'move_pages()' permission checks
   f9497d51259f genirq/ipi: Fixup checks against nr_cpu_ids
   762ac49ccece genirq: Restore trigger settings in irq_modify_status()
   4691f1ca6fad irqchip/atmel-aic: Fix unbalanced refcount in aic_common_rtc_irq_fixup()
   665d2009a4af irqchip/atmel-aic: Fix unbalanced of_node_put() in aic_common_irq_fixup()
   10d5bf2f6928 x86/asm/64: Clear AC on NMI entries
   1581d704e97d xen-blkfront: use a right index when checking requests
   7672f1186047 powerpc: Fix VSX enabling/flushing to also test MSR_FP and MSR_VEC
   d8c20af00858 blk-mq-pci: add a fallback when pci_irq_get_affinity returns NULL
   6c7f3756d072 xen: fix bio vec merging
   1f2347a095ce mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes
   91105f2c621e mm/mempolicy: fix use after free when calling get_mempolicy
   59ee25d09fd5 mm: fix double mmap_sem unlock on MMF_UNSTABLE enforced SIGBUS
   87395eeb28e5 mm: discard memblock data later
   d3e6e5956687 ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices
   f39f086d541f ALSA: usb-audio: Apply sample rate quirk to Sennheiser headset
   bafb25c5050c ALSA: seq: 2nd attempt at fixing race creating a queue
   3f7292106d0b Input: elan_i2c - Add antoher Lenovo ACPI ID for upcoming Lenovo NB
   5dd141e0e985 Input: elan_i2c - add ELAN0608 to the ACPI table
   c3e8a12e701c crypto: x86/sha1 - Fix reads beyond the number of blocks passed
   24e7f540245d crypto: ixp4xx - Fix error handling path in 'aead_perform()'
   93f5a0318aae parisc: pci memory bar assignment fails with 64bit kernels on dino/cujo
   adcfbb2d9e38 audit: Fix use after free in audit_remove_watch_rule()
   5170d210efe4 netfilter: nf_ct_ext: fix possible panic after nf_ct_extend_unregister
   a97a16f18c48 Linux 4.9.44
   eea1ec08f8a5 MIPS: DEC: Fix an int-handler.S CPU_DADDI_WORKAROUNDS regression
   5e5a51045532 pinctrl: meson-gxbb: Add missing GPIODV_18 pin entry
   8cbc0b49ca8d pinctrl: samsung: Remove bogus irq_[un]mask from resource management
   8495ab6ef94a pinctrl: uniphier: fix WARN_ON() of pingroups dump on LD20
   f642d29c2388 pinctrl: uniphier: fix WARN_ON() of pingroups dump on LD11
   877fe62863d0 pinctrl: intel: merrifield: Correct UART pin lists
   7b6fff65ecf9 pinctrl: sunxi: add a missing function of A10/A20 pinctrl driver
   a68978bb949a pnfs/blocklayout: require 64-bit sector_t
   eda1b3d42fad iio: adc: vf610_adc: Fix VALT selection value for REFSEL bits
   4cae4a23d9a4 usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume
   f4bbed570aef usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter
   42d65cc89a23 usb: core: unlink urbs from the tail of the endpoint's urb_list
   7c2beb1c4432 USB: Check for dropped connection before switching to full speed
   7f737f10c1ee usb: renesas_usbhs: Fix UGCTRL2 value for R-Car Gen3
   2db03a7fa0dd usb: gadget: udc: renesas_usb3: Fix usb_gadget_giveback_request() calling
   a09ecc9345b6 uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069
   b189f8eb2715 staging: comedi: comedi_fops: do not call blocking ops when !TASK_RUNNING
   bbae08213e6e iio: light: tsl2563: use correct event code
   1ca3869234d3 iio: accel: bmc150: Always restore device to normal mode after suspend-resume
   c5347390e57a staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read
   199a3f26e9d8 USB: hcd: Mark secondary HCD as dead if the primary one died
   821ccbe2937e usb: musb: fix tx fifo flush handling again
   4fd8c366acac USB: serial: pl2303: add new ATEN device id
   566516401501 USB: serial: cp210x: add support for Qivicon USB ZigBee dongle
   e27f58cd130b USB: serial: option: add D-Link DWM-222 device ID
   2b3bf207b2a2 drm/i915: Fix out-of-bounds array access in bdw_load_gamma_lut
   4381e2c30008 drm/etnaviv: Fix off-by-one error in reloc checking
   00f3c2a253f7 nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays
   0a205d8145c2 mmc: mmc: correct the logic for setting HS400ES signal voltage
   160c365b5879 nand: fix wrong default oob layout for small pages using soft ecc
   227559e6233c fuse: initialize the flock flag in fuse_file on allocation
   1da30c23b63b target: Fix node_acl demo-mode + uncached dynamic shutdown regression
   b51a71635576 iscsi-target: Fix iscsi_np reset hung task during parallel delete
   e6a0599b7464 iscsi-target: fix memory leak in iscsit_setup_text_cmd()
   ced271b814e4 mtd: nand: Fix timing setup for NANDs that do not support SET FEATURES
   a311810903c7 xtensa: don't limit csum_partial export by CONFIG_NET
   a3ab0f069f46 xtensa: mm/cache: add missing EXPORT_SYMBOLs
   03973c57e1a2 xtensa: fix cache aliasing handling code for WT cache
   0041042de554 futex: Remove unnecessary warning from get_futex_key
   e2286916ac07 mm: fix list corruptions on shmem shrinklist
   b56cd77c1205 mm: ratelimit PFNs busy info message
   6da35f43acde Linux 4.9.43
   1166e3e03342 Revert "ARM: dts: sun8i: Support DTB build for NanoPi M1"
   3f0075cdbdd8 KVM: arm/arm64: Handle hva aging while destroying the vm
   6309eb77d823 sparc64: Prevent perf from running during super critical sections
   33dc6a6a85f1 udp: consistently apply ufo or fragmentation
   4688f042599f revert "ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output"
   53eed8aadc58 revert "net: account for current skb length when deciding about UFO"
   e58413550613 packet: fix tp_reserve race in packet_set_ring
   f628c9df047b igmp: Fix regression caused by igmp sysctl namespace code.
   69ffc9644ffe net: avoid skb_warn_bad_offload false positives on UFO
   87fdcfe21195 tcp: fastopen: tcp_connect() must refresh the route
   e392e305af01 net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target
   35d90144e2ce net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets
   1b582a2c366d bpf, s390: fix jit branch offset related to ldimm64
   05046af36302 net: fix keepalive code vs TCP_FASTOPEN_CONNECT
   3914a7eccbc7 tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states
   6ec6ec3bbb87 ppp: fix xmit recursion detection on ppp channels
   3b25bfc11cf9 ppp: Fix false xmit recursion detect with two ppp devices
   4c666b0d9070 Linux 4.9.42
   f9636c9bdd58 workqueue: implicit ordered attribute should be overridable
   c3c94716855a net: phy: Fix PHY unbind crash
   ef09c9ff3431 net: account for current skb length when deciding about UFO
   f102bb7164c9 ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output
   a69f0d54fdc9 net/mlx5: E-Switch, Re-enable RoCE on mode change only after FDB destroy
   22cccef1fc70 mm: don't dereference struct page fields of invalid pages
   916a05b90d83 signal: protect SIGNAL_UNKILLABLE from unintentional clearing.
   d12824c897a2 lib/Kconfig.debug: fix frv build failure
   c736011052cf mm, slab: make sure that KMALLOC_MAX_SIZE will fit into MAX_ORDER
   bebbe845cb50 ARM: 8632/1: ftrace: fix syscall name matching
   e6d53f5f8c03 virtio_blk: fix panic in initialization error path
   952d07ac1e6e nbd: blk_mq_init_queue returns an error code on failure, not NULL
   44d52834efb3 iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort
   984922f2c897 ARM: dts: sunxi: Change node name for pwrseq pin on Olinuxino-lime2-emmc
   1e9e71782f34 ARM: dts: sun8i: Support DTB build for NanoPi M1
   61cf0afe12eb drm/virtio: fix framebuffer sparse warning
   2a60965a0ef7 scsi: qla2xxx: Get mutex lock before checking optrom_state
   99eb27d6182d clk/samsung: exynos542x: mark some clocks as critical
   ee96797b78ca ipv4: make tcp_notsent_lowat sysctl knob behave as true unsigned int
   0bbbbaef6aa0 phy state machine: failsafe leave invalid RUNNING state
   9acfb313849e netfilter: use fwmark_reflect in nf_send_reset
   2e2a390b7f67 ASoC: rt5645: set sel_i2s_pre_div1 to 2
   c77512d67102 spi: spi-axi: Free resources on error path
   f897e9ae07c4 x86/boot: Add missing declaration of string functions
   1042bd47ddfb tg3: Fix race condition in tg3_get_stats64().
   5f7eeee7940e net: phy: dp83867: fix irq generation
   bfe384ed452a sh_eth: R8A7740 supports packet shecksumming
   2d4fef7f4102 sh_eth: fix EESIPR values for SH77{34|63}
   b87145215abe wext: handle NULL extra data in iwe_stream_add_point better
   b9d68cdce72d sparc64: Fix exception handling in UltraSPARC-III memcpy.
   bfafa56e6c67 sparc64: Measure receiver forward progress to avoid send mondo timeout
   816843a257c7 xen-netback: correctly schedule rate-limited queues
   38e71eabb8f7 net: phy: Correctly process PHY_HALTED in phy_stop_machine()
   33e25b2168dd net/mlx5e: Schedule overflow check work to mlx5e workqueue
   862ade9a4383 net/mlx5e: Fix wrong delay calculation for overflow check scheduling
   d7049799668a net/mlx5e: Fix outer_header_zero() check size
   d19d0ac684e5 net/mlx5: Fix command bad flow on command entry allocation failure
   fca84d617f77 net/mlx5: Consider tx_enabled in all modes on remap
   df32d08293ea sctp: fix the check for _sctp_walk_params and _sctp_walk_errors
   cc6f1486f2cb sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()
   bb21d2e75378 dccp: fix a memleak for dccp_feat_init err process
   4d938b6fcb90 dccp: fix a memleak that dccp_ipv4 doesn't put reqsk properly
   9ffa6727f571 dccp: fix a memleak that dccp_ipv6 doesn't put reqsk properly
   c0c8688f0deb net: ethernet: nb8800: Handle all 4 RGMII modes identically
   23a91c8ab682 ipv6: Don't increase IPSTATS_MIB_FRAGFAILS twice in ip6_fragment()
   47f3bf6e3116 packet: fix use-after-free in prb_retire_rx_blk_timer_expired()
   d53ff3816d94 openvswitch: fix potential out of bound access in parse_ct
   59e76ed17981 mcs7780: Fix initialization when CONFIG_VMAP_STACK is enabled
   cda2bc91baf7 rtnetlink: allocate more memory for dev_set_mac_address()
   0c47f11bc4a5 ipv4: initialize fib_trie prior to register_netdev_notifier call.
   5a2d511a95cc net: dsa: b53: Add missing ARL entries for BCM53125
   4a2ffe1707e3 ipv6: avoid overflow of offset in ip6_find_1stfragopt
   0b83249a57ad net: Zero terminate ifr_name in dev_ifname().
   a62bc8d336e3 ipv4: ipv6: initialize treq->txhash in cookie_v[46]_check()
   0cd73c42b7a2 tcp_bbr: init pacing rate on first RTT sample
   2e6b237dc03b tcp_bbr: remove sk_pacing_rate=0 transient during init
   0c0ede36b9e0 tcp_bbr: introduce bbr_init_pacing_rate_from_rtt() helper
   ec789686d79b tcp_bbr: introduce bbr_bw_to_pacing_rate() helper
   73520d3814b6 tcp_bbr: cut pacing rate only if filled pipe
   12d17d78e3f7 saa7164: fix double fetch PCIe access condition
   3a63729427ac Btrfs: fix early ENOSPC due to delalloc
   0f442c5b2e4a f2fs: sanity check checkpoint segno and blkoff
   c14e327bee70 media: lirc: LIRC_GET_REC_RESOLUTION should return microseconds
   e92add299fee mmc: core: Use device_property_read instead of of_property_read
   baf4ad0e5162 mmc: dw_mmc: Use device_property_read instead of of_property_read
   bdabf097f05b iscsi-target: Fix initial login PDU asynchronous socket close OOPs
   733d7ab6c5bc media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARAMS ioctl
   4f3544816937 ARM: dts: tango4: Request RGMII RX and TX clock delays
   ff603e017bee ARM: dts: armada-38x: Fix irq type for pca955
   12353a00df25 ext4: fix overflow caused by missing cast in ext4_resize_fs()
   0814c3a9447b ext4: fix SEEK_HOLE/SEEK_DATA for blocksize < pagesize
   b680e22fca76 gpiolib: skip unwanted events, don't convert them to opposite edge
   be5c6efc996e iommu/amd: Enable ga_log_intr when enabling guest_mode
   03ebdd1eb95a powerpc/64: Fix __check_irq_replay missing decrementer interrupt
   8164692a2f66 powerpc/tm: Fix saving of TM SPRs in core dump
   9ef8b23b94b9 timers: Fix overflow in get_next_timer_interrupt
   7b95b7456362 mm/page_alloc: Remove kernel address exposure in free_reserved_area()
   0c609d3e1fbd KVM: async_pf: make rcu irq exit if not triggered from idle task
   650c763ea5ea ASoC: do not close shared backend dailink
   69f15fff03e8 drm/amdgpu: Fix undue fallthroughs in golden registers initialization
   c531a24057ac ALSA: hda - Fix speaker output from VAIO VPCL14M1R
   45a636ec1849 cpuset: fix a deadlock due to incomplete patching of cpusets_enabled()
   5a1eef71aa2a mm, mprotect: flush TLB if potentially racing with a parallel reclaim leaving stale TLB entries
   943281eb4ecf mmc: core: Fix access to HS400-ES devices
   1f32e67adac4 device property: Make dev_fwnode() public
   347be00b56f7 mmc: sdhci-of-at91: force card detect value for non removable devices
   f7d3e54fb40c NFSv4: Fix EXCHANGE_ID corrupt verifier issue
   f5214eb4baf8 brcmfmac: fix memleak due to calling brcmf_sdiod_sgtable_alloc() twice
   de8c33290f1c iwlwifi: dvm: prevent an out of bounds access
   61a0adbfaad7 workqueue: restore WQ_UNBOUND/max_active==1 to be ordered
   804b1a9f0aea libata: array underflow in ata_find_dev()
   445ee6cdd91e cgroup: fix error return value from cgroup_subtree_control()
   4a99eac8d2b3 cgroup: create dfl_root files on subsys registration
   5d23e4f3a333 parisc: Handle vma's whose context is not current in flush_cache_range
   db397d9c6e66 Linux 4.9.41
   007dffc661cf ASoC: dpcm: Avoid putting stream state to STOP when FE stream is paused
   27ef0283b60e ASoC: Intel: Skylake: Release FW ctx in cleanup
   23ab274ddf83 scsi: bfa: Increase requested firmware version to 3.2.5.1
   5f7040719202 scsi: snic: Return error code on memory allocation failure
   2803ea76366a scsi: fnic: Avoid sending reset to firmware when another reset is in progress
   3b6f4e292cbd HID: ignore Petzl USB headlamp
   3f0dfa11cc0d ASoC: Intel: bytcr-rt5640: fix settings in internal clock mode
   b899142ce21d perf/x86: Set pmu->module in Intel PMU modules
   efa225254a4a x86/platform/intel-mid: Rename 'spidev' to 'mrfld_spidev'
   12dac5fcf5ec ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion
   301681d60003 ARCv2: IRQ: Call entry/exit functions for chained handlers in MCIP
   f10e2065ce76 sh_eth: enable RX descriptor word 0 shift on SH7734
   2909c9c2d713 ASoC: fsl_ssi: set fifo watermark to more reliable value
   2548d893a542 net: usb: asix_devices: add .reset_resume for USB PM
   a7526723b7fc nvmem: imx-ocotp: Fix wrong register size
   e95ec3582a29 arm64: mm: fix show_pte KERN_CONT fallout
   812a7df6556f vfio-pci: Handle error from pci_iomap
   a417ea5b9d22 video: fbdev: cobalt_lcdfb: Handle return NULL error from devm_ioremap
   ddc0ec3be807 perf symbols: Robustify reading of build-id from sysfs
   d8086c3bd3a5 perf tools: Install tools/lib/traceevent plugins with install-bin
   0b8656414e29 xfrm: Don't use sk_family for socket policy lookups
   ab5e7df9e064 tools lib traceevent: Fix prev/next_prio for deadline tasks
   704a6d719d4c Xen: ARM: Zero reserved fields of xatp before making hypervisor call
   f76ddff6c521 Btrfs: adjust outstanding_extents counter properly when dio write is split
   49fc90b443c7 benet: stricter vxlan offloading check in be_features_check
   673121283605 Btrfs: fix lockdep warning about log_mutex
   78418b867334 Btrfs: use down_read_nested to make lockdep silent
   92d6a813b03a usb: gadget: Fix copy/pasted error message
   a15a3d92eca8 ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
   ebd4642ee412 ARM: s3c2410_defconfig: Fix invalid values for NF_CT_PROTO_*
   69f3df1fd013 perf probe: Fix to get correct modname from elf header
   3209f3f69eeb ARM64: zynqmp: Fix i2c node's compatible string
   e3603533ae63 ARM64: zynqmp: Fix W=1 dtc 1.4 warnings
   8af0937aee50 usb: dwc3: omap: fix race of pm runtime with irq handler in probe
   29e0adf8bacd dmaengine: ti-dma-crossbar: Add some 'of_node_put()' in error path.
   000224c1106c l2tp: consider '::' as wildcard address in l2tp_ip6 socket lookup
   c2804b21f2e7 dmaengine: ioatdma: workaround SKX ioatdma version
   2987ce159fb9 dmaengine: ioatdma: Add Skylake PCI Dev ID
   88a86f8dfaad openrisc: Add _text symbol to fix ksym build error
   033d5ce4ad8d irqchip/mxs: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
   c612bba54b8c ASoC: nau8825: fix invalid configuration in Pre-Scalar of FLL
   14e5c8c61791 spi: dw: Make debugfs name unique between instances
   ed788dc6fa65 ASoC: tlv320aic3x: Mark the RESET register as volatile
   ca40b2d039dc irqchip/keystone: Fix "scheduling while atomic" on rt
   c7d0c0d84808 vfio-pci: use 32-bit comparisons for register address for gcc-4.5
   7d33b41d34f5 drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set
   50e3950d77ba drm/msm: Put back the vaddr in submit_reloc()
   e0d5bb92c07b drm/msm: Ensure that the hardware write pointer is valid
   237652fae500 net/mlx4_core: Fix raw qp flow steering rules under SRIOV
   7e150f79134e net/mlx4: Remove BUG_ON from ICM allocation routine
   a8820678afe1 net/mlx4_core: Use-after-free causes a resource leak in flow-steering detach
   aeb230318ddb ipv6: Should use consistent conditional judgement for ip6 fragment between __ip6_append_data and ip6_finish_output
   ea703cb0140b net/mlx5: Disable RoCE on the e-switch management port under switchdev mode
   a0a4dd446904 ARM: dts: n900: Mark eMMC slot with no-sdio and no-sd flags
   0ce84ef6a296 ARM: dts: am57xx-idk: Put USB2 port in peripheral mode
   2bc4d1c95784 dt-bindings: input: Specify the interrupt number of TPS65217 power button
   b1164693f770 dt-bindings: power/supply: Update TPS65217 properties
   0686a9bc42ad ARM: omap2+: fixing wrong strcat for Non-NULL terminated string
   82338e9ffba5 r8169: add support for RTL8168 series add-on card.
   34fae9c906ec x86/mce/AMD: Make the init code more robust
   a3ff46097a1d device-dax: fix sysfs duplicate warnings
   48a70be0de9e net: skb_needs_check() accepts CHECKSUM_NONE for tx
   e10f7bd6a6b8 pstore: Use dynamic spinlock initializer
   a0840275e3eb pstore: Correctly initialize spinlock and flags
   4693080316e6 pstore: Allow prz to control need for locking
   5463a3dccf10 v4l: s5c73m3: fix negation operator
   ad25f11ed216 dentry name snapshots
   d933777b1b1b ipmi/watchdog: fix watchdog timeout set on reboot
   196553666dce RDMA/uverbs: Fix the check for port number
   62b5776c8c86 sched/cgroup: Move sched_online_group() back into css_online() to fix crash
   016a638a518c mailbox: handle empty message in tx_tick
   abe9090ac07b mailbox: skip complete wait event if timer expired
   a23fba818203 mailbox: always wait in mbox_send_message for blocking Tx mode
   2f16bcd4dba9 wil6210: fix deadlock when using fw_no_recovery option
   59153e658936 ath10k: fix null deref on wmi-tlv when trying spectral scan
   7b3a66739ff0 isdn/i4l: fix buffer overflow
   b756862459d2 isdn: Fix a sleep-in-atomic bug
   6c78197e4a69 net: phy: Do not perform software reset for Generic PHY
   57154f0302cd nfc: fdp: fix NULL pointer dereference
   35bdf9a61dc9 nfc: Fix hangup of RC-S380* in port100_send_ack()
   6b3d13fe67da smp/hotplug: Replace BUG_ON and react useful
   7b4e4b18ea64 smp/hotplug: Move unparking of percpu threads to the control CPU
   755f65501f70 drm: rcar-du: Simplify and fix probe error handling
   9bf0d78bf640 Staging: comedi: comedi_fops: Avoid orphaned proc entry
   0f31691508c6 Revert "powerpc/numa: Fix percpu allocations to be NUMA aware"
   c39c3aeb2b41 KVM: PPC: Book3S HV: Save/restore host values of debug registers
   e5cd34d10459 KVM: PPC: Book3S HV: Restore critical SPRs to host values on guest exit
   ae8faca6e2e7 drm/nouveau/bar/gf100: fix access to upper half of BAR2
   34da5f74eb5c drm/nouveau/disp/nv50-: bump max chans to 21
   e41779886b90 drm/vmwgfx: Fix gcc-7.1.1 warning
   fabc7dffe9e1 md/raid5: add thread_group worker async_tx_issue_pending_all
   d745f0f67b70 KVM: PPC: Book3S HV: Enable TM before accessing TM registers
   9eb088e57edd crypto: authencesn - Fix digest_null crash
   7d2a354861e9 NFSv4.1: Fix a race where CB_NOTIFY_LOCK fails to wake a waiter
   b087b8b11e52 NFS: invalidate file size when taking a lock.
   6d3d93ca2ef8 powerpc/pseries: Fix of_node_put() underflow during reconfig remove
   fa2aa76efe7d parisc: Suspend lockup detectors before system halt
   f0d23fa63243 parisc: Extend disabled preemption in copy_user_page
   afe9fc012bc1 parisc: Prevent TLB speculation on flushed pages on CPUs that only support equivalent aliases
   5f8bdd5edc82 ALSA: hda - Add missing NVIDIA GPU codec IDs to patch table
   3d955095c597 ALSA: fm801: Initialize chip after IRQ handler is registered
   3a79e1c8e709 jfs: Don't clear SGID when inheriting ACLs
   26d01aa8a110 net: reduce skb_warn_bad_offload() noise
   d97aff4f9770 pstore: Make spinlock per zone instead of global
   0f94b36de37c af_key: Add lock to key dump
   efcfbfb1d8bf Linux 4.9.40
   91af5f04cd5b alarmtimer: don't rate limit one-shot timers
   919e481152ce tracing: Fix kmemleak in instance_rmdir
   7bd804a05eb0 PM / Domains: defer dev_pm_domain_set() until genpd->attach_dev succeeds if present
   69fbb442144a reiserfs: Don't clear SGID when inheriting ACLs
   1c7e5ca092c0 spmi: Include OF based modalias in device uevent
   a18935b45e97 of: device: Export of_device_{get_modalias, uvent_modalias} to modules
   6b50bca7cdb0 acpi/nfit: Fix memory corruption/Unregister mce decoder on failure
   97de6f34b42b ovl: fix random return value on mount
   5cf84432b422 hfsplus: Don't clear SGID when inheriting ACLs
   b33da556255c mlx5: Avoid that mlx5_ib_sg_to_klms() overflows the klms[] array
   a44042519469 drm/mst: Avoid processing partially received up/down message transactions
   48376e6b71a6 drm/mst: Avoid dereferencing a NULL mstb in drm_dp_mst_handle_up_req()
   bc3bd649ebb4 drm/mst: Fix error handling during MST sideband message reception
   db2975396090 RDMA/core: Initialize port_num in qp_attr
   acccf01a807a ceph: fix race in concurrent readdir
   d42f9c7435c0 staging: lustre: ko2iblnd: check copy_from_iter/copy_to_iter return code
   85643f6f5028 staging: sm750fb: avoid conflicting vesafb
   2bc52403da8a staging: comedi: ni_mio_common: fix AO timer off-by-one regression
   964a21a1300c staging: rtl8188eu: add TL-WN722N v2 support
   a76a032300e2 Revert "perf/core: Drop kernel samples even though :u is specified"
   61415418cdba perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target
   d5f9cd081c66 iser-target: Avoid isert_conn->cm_id dereference in isert_login_recv_done
   672145dfae84 target: Fix COMPARE_AND_WRITE caw_sem leak during se_cmd quiesce
   fa67ac18eff4 udf: Fix deadlock between writeback and udf_setsize()
   9ebfb4fa3ab7 NFS: only invalidate dentrys that are clearly invalid.
   4dd0aa9ae6d0 sunrpc: use constant time memory comparison for mac
   dd0d6509cbf4 IB/core: Namespace is mandatory input for address resolution
   5c2717f41545 IB/iser: Fix connection teardown race condition
   5b50e0e74e2e Input: i8042 - fix crash at boot time
   6d77ac4bc514 MIPS: Fix a typo: s/preset/present/ in r2-to-r6 emulation error message
   3330a05c5c6e MIPS: Send SIGILL for R6 branches in `__compute_return_epc_for_insn'
   d4bd6a1df2c8 MIPS: Send SIGILL for linked branches in `__compute_return_epc_for_insn'
   99ce76144dee MIPS: Rename `sigill_r6' to `sigill_r2r6' in `__compute_return_epc_for_insn'
   86dd4aa30790 MIPS: Send SIGILL for BPOSGE32 in `__compute_return_epc_for_insn'
   d79354cc1bc9 MIPS: math-emu: Prevent wrong ISA mode instruction emulation
   040078ad0fe8 MIPS: Fix unaligned PC interpretation in `compute_return_epc'
   434c9f2e3b46 MIPS: Actually decode JALX in `__compute_return_epc_for_insn'
   f8c331cbc937 MIPS: Save static registers before sysmips
   a9db2f4f887c MIPS: Fix MIPS I ISA /proc/cpuinfo reporting
   c69280e9018e x86/ioapic: Pass the correct data to unmask_ioapic_irq()
   036d59f40ac9 x86/acpi: Prevent out of bound access caused by broken ACPI tables
   456a997498cb Revert "ACPI / EC: Enable event freeze mode..." to fix a regression
   b2966b109b1a ACPI / EC: Drop EC noirq hooks to fix a regression
   ec469b5e2aaf ubifs: Don't leak kernel memory to the MTD
   02131aea6bd4 MIPS: Negate error syscall return in trace
   f39f3b5d8260 MIPS: Fix mips_atomic_set() with EVA
   dd2f83263dd8 MIPS: Fix mips_atomic_set() retry condition
   198bd494cebf ftrace: Fix uninitialized variable in match_records()
   d17cc7b7a752 nvme-rdma: remove race conditions from IB signalling
   8f9dec0c2dbb vfio: New external user group/file match
   e91a55790ddf vfio: Fix group release deadlock
   fee760fc6c79 ovl: drop CAP_SYS_RESOURCE from saved mounter's credentials
   0fb615f9cad7 drm/ttm: Fix use-after-free in ttm_bo_clean_mm
   f97f9e94f666 f2fs: Don't clear SGID when inheriting ACLs
   19e117a50135 f2fs: sanity check size of nat and sit cache
   58d2eacd3b0e xfs: Don't clear SGID when inheriting ACLs
   1b9008cdae94 ipmi:ssif: Add missing unlock in error branch
   685e124ebc7f ipmi: use rcu lock around call to intf->handlers->sender()
   6e7b1eff91aa drm/radeon: Fix eDP for single-display iMac10,1 (v2)
   a844f8d2a564 drm/radeon/ci: disable mclk switching for high refresh rates (v2)
   b85007c9114a drm/amd/amdgpu: Return error if initiating read out of range on vram
   8302e9d2f50b s390/syscalls: Fix out of bounds arguments access
   1e95148551f3 Raid5 should update rdev->sectors after reshape
   4d1f97eb59a4 ext2: Don't clear SGID when inheriting ACLs
   0fa705dc61ee libnvdimm: fix badblock range handling of ARS range
   891c31e16cb7 libnvdimm, btt: fix btt_rw_page not returning errors
   e82672f45ea3 cx88: Fix regression in initial video standard setting
   4d3d3a1690c2 x86/xen: allow userspace access during hypercalls
   03c1d9d45582 md: don't use flush_signals in userspace processes
   dbc969ca944f usb: renesas_usbhs: gadget: disable all eps when the driver stops
   5433bfcc8527 usb: renesas_usbhs: fix usbhsc_resume() for !USBHSF_RUNTIME_PWCTRL
   a74779d8e172 USB: cdc-acm: add device-id for quirky printer
   8665f40a06a0 usb: storage: return on error to avoid a null pointer dereference
   8bc51b4f2a42 mxl111sf: Fix driver to use heap allocate buffers for USB messages
   24a950e16eb5 xhci: Bad Ethernet performance plugged in ASM1042A host
   01845a8347b7 xhci: Fix NULL pointer dereference when cleaning up streams for removed host
   bf0440882ea9 xhci: fix 20000ms port resume timeout
   445ea10969aa ipvs: SNAT packet replies only for NATed connections
   33780512d9fe PCI/PM: Restore the status of PCI devices across hibernation
   f257f4bf6f07 PCI: rockchip: Use normal register bank for config accessors
   13b2f9f9b8aa PCI: Work around poweroff & suspend-to-RAM issue on Macbook Pro 11
   3c17d418afb0 af_key: Fix sadb_x_ipsecrequest parsing
   3b7babc6be0a powerpc/mm/radix: Properly clear process table entry
   88481a2c40e4 powerpc/asm: Mark cr0 as clobbered in mftb()
   5e35ee249e26 powerpc: Fix emulation of mfocrf in emulate_step()
   53a282161317 powerpc: Fix emulation of mcrf in emulate_step()
   99fc5a2254ef powerpc/64: Fix atomic64_inc_not_zero() to return an int
   d638c8584462 powerpc/pseries: Fix passing of pp0 in updatepp() and updateboltedpp()
   71b1caea95a8 xen/scsiback: Fix a TMR related use-after-free
   732e3c76cf97 iscsi-target: Add login_keys_workaround attribute for non RFC initiators
   fc866b296a46 scsi: Add STARGET_CREATED_REMOVE state to scsi_target_state
   542c097f1cb6 scsi: ses: do not add a device to an enclosure if enclosure_add_links() fails.
   d2bb0af4463d PM / Domains: Fix unsafe iteration over modified list of domains
   178aa241fc07 PM / Domains: Fix unsafe iteration over modified list of domain providers
   b87a32175a22 PM / Domains: Fix unsafe iteration over modified list of device links
   4d94276155f8 ASoC: compress: Derive substream from stream based on direction
   9a81c136f486 igb: Explicitly select page 0 at initialization
   157302f97aaa btrfs: Don't clear SGID when inheriting ACLs
   754f4e05e999 wlcore: fix 64K page support
   3da27a9d9827 Bluetooth: use constant time memory comparison for secret values
   fe5cdbcdafaa perf intel-pt: Clear FUP flag on error
   94c38cd0aff2 perf intel-pt: Use FUP always when scanning for an IP
   5a16bd39c501 perf intel-pt: Ensure never to set 'last_ip' when packet 'count' is zero
   daa637832dd2 perf intel-pt: Fix last_ip usage
   dc0401375f7a perf intel-pt: Ensure IP is zero when state is INTEL_PT_STATE_NO_IP
   b338b87f2277 perf intel-pt: Fix missing stack clear
   3e6837f1f414 perf intel-pt: Improve sample timestamp
   d3503ef1a614 perf intel-pt: Move decoder error setting into one condition
   244a7db0e9d5 NFC: Add sockaddr length checks before accessing sa_family in bind handlers
   4a142251a315 nfc: Fix the sockaddr length sanitization in llcp_sock_connect
   d1ac8a98f312 nfc: Ensure presence of required attributes in the activate_target handler
   06be8e2767da NFC: nfcmrvl: fix firmware-management initialisation
   10f03f0f7ef0 NFC: nfcmrvl: use nfc-device for firmware download
   4b4f74d6c4f8 NFC: nfcmrvl: do not use device-managed resources
   7de6ff402dd0 NFC: nfcmrvl_uart: add missing tty-device sanity check
   f73de3f9915c NFC: fix broken device allocation
   48879676a8c3 ath9k: fix an invalid pointer dereference in ath9k_rng_stop()
   99f96831083b ath9k: fix tx99 bus error
   b729a1aea14d ath9k: fix tx99 use after free
   7cd7b56037ae thermal: cpu_cooling: Avoid accessing potentially freed structures
   76572609e458 thermal: max77620: fix device-node reference imbalance
   60813b6a2ab4 s5p-jpeg: don't return a random width/height
   63d32e8af0dd dm mpath: cleanup -Wbool-operation warning in choose_pgpath()
   70ec6b3635d9 ir-core: fix gcc-7 warning on bool arithmetic
   78fbe21d83e3 disable new gcc-7.1.1 warnings for now
   c03917de04aa 4.9.39
   cce8d2ee4571 kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
   07592d622536 kvm: vmx: Check value written to IA32_BNDCFGS
   fab777e70ca4 kvm: x86: Guest BNDCFGS requires guest MPX support
   bf7c21535617 kvm: vmx: Do not disable intercepts for BNDCFGS
   04e002a5f681 tracing: Use SOFTIRQ_OFFSET for softirq dectection for more accurate results
   cc7d3b7dd1ac PM / QoS: return -EINVAL for bogus strings
   5480437f7963 PM / wakeirq: Convert to SRCU
   758dc6a8dabc sched/topology: Fix overlapping sched_group_mask
   3e165b2322c6 sched/topology: Optimize build_group_mask()
   7c3f08eadcfd sched/topology: Fix building of overlapping sched-groups
   542ebc96c200 sched/fair, cpumask: Export for_each_cpu_wrap()
   a0a93e3e6e1e Revert "sched/core: Optimize SCHED_SMT"
   80495c708490 crypto: caam - fix signals handling
   48a9dff21398 crypto: caam - properly set IV after {en,de}crypt
   db923288f37f crypto: sha1-ssse3 - Disable avx2
   81cc2ef2677b crypto: atmel - only treat EBUSY as transient if backlog
   2ff2cc768eb7 crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD
   38dfd2e3a673 mm: fix overflow check in expand_upwards()
   1e6f1af808c1 selftests/capabilities: Fix the test_execve test
   54fcb2303ef4 mnt: Make propagate_umount less slow for overlapping mount propagation trees
   bb4fbf094b44 mnt: In propgate_umount handle visiting mounts in any order
   e260db757676 mnt: In umount propagation reparent in a separate pass
   7d976da04345 nvmem: core: fix leaks on registration errors
   ac5e9e801f47 rcu: Add memory barriers for NOCB leader wakeup
   63c634cf9547 vt: fix unchecked __put_user() in tioclinux ioctls
   445a945ad67b ARM64: dts: marvell: armada37xx: Fix timer interrupt specifiers
   f31c4f65dd09 exec: Limit arg stack to at most 75% of _STK_LIM
   fbc877cd08e5 s390: reduce ELF_ET_DYN_BASE
   90fb0f7aefc9 powerpc: move ELF_ET_DYN_BASE to 4GB / 4MB
   70779e0ebb37 arm64: move ELF_ET_DYN_BASE to 4GB / 4MB
   abb79a56898e arm: move ELF_ET_DYN_BASE to 4MB
   63c2f8f8c41b binfmt_elf: use ELF_ET_DYN_BASE only for PIE
   93eae954050d checkpatch: silence perl 5.26.0 unescaped left brace warnings
   a9aa6522a1a5 fs/dcache.c: fix spin lockup issue on nlru->lock
   a48542e8b4ec mm/list_lru.c: fix list_lru_count_node() to be race free
   8c6f19c25086 kernel/extable.c: mark core_kernel_text notrace
   d2b64687b37f thp, mm: fix crash due race in MADV_FREE handling
   68ea25f00ffe tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth
   e3d2adaaf927 parisc/mm: Ensure IRQs are off in switch_mm()
   8ed89cfc8692 parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs
   bf1e4dc3b4fb parisc: use compat_sys_keyctl()
   008a1f270748 parisc: Report SIGSEGV instead of SIGBUS when running out of stack
   59613f80ec67 irqchip/gic-v3: Fix out-of-bound access in gic_set_affinity
   6a90f81ab639 cfg80211: Check if NAN service ID is of expected size
   7e9e9638afdf cfg80211: Check if PMKID attribute is of expected size
   e471290603ee cfg80211: Validate frequencies nested in NL80211_ATTR_SCAN_FREQUENCIES
   b68aa7dff96e cfg80211: Define nla_policy for NL80211_ATTR_LOCAL_MESH_POWER_MODE
   6ae9dd281965 sfc: don't read beyond unicast address list
   5f69bb1d18c5 brcmfmac: Fix glom_skb leak in brcmf_sdiod_recv_chain
   fd325ddd5884 brcmfmac: Fix a memory leak in error handling path in 'brcmf_cfg80211_attach'
   414848bba6ab brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
   181dda46a314 rds: tcp: use sock_create_lite() to create the accept socket
   e6577f1ef3f8 vrf: fix bug_on triggered by rx when destroying a vrf
   0bc26d1ca38d net: ipv6: Compare lwstate in detecting duplicate nexthops
   05e165e9bc45 net: core: Fix slab-out-of-bounds in netdev_stats_to_stats64
   beabc6032772 vxlan: fix hlist corruption
   d2c951208578 ipv6: dad: don't remove dynamic addresses if link is down
   743564306ee6 net/mlx5e: Fix TX carrier errors report in get stats ndo
   a80a70a4822c liquidio: fix bug in soft reset failure detection
   e20204dc2c74 net/mlx5: Cancel delayed recovery work when unloading the driver
   067328078d14 net: handle NAPI_GRO_FREE_STOLEN_HEAD case also in napi_frags_finish()
   cd5de9cb858d bpf: prevent leaking pointer via xadd on unpriviledged
   bee807054892 rocker: move dereference before free
   e5e5c0ec39dd bridge: mdb: fix leak on complete_info ptr on fail path
   3f04c32bf47a net: prevent sign extension in dev_get_stats()
   ef13840028c8 tcp: reset sk_rx_dst in tcp_disconnect()
   cf81b4abe7ac net: dp83640: Avoid NULL pointer dereference.
   0526ff300304 ipv6: avoid unregistering inet6_dev for loopback
   3f7e07c37ade net/phy: micrel: configure intterupts after autoneg workaround
   dc491cdd2c81 net: sched: Fix one possible panic when no destroy callback
   13550ffc9515 net_sched: fix error recovery at qdisc creation
   21f79ae43fd2 xen-netfront: Rework the fix for Rx stall during OOM and network stress
   f0cd77ded512 Linux 4.9.38
   fb2dc28cf20a saa7134: fix warm Medion 7134 EEPROM read
   81ba752aa476 x86/mm/pat: Don't report PAT on CPUs that don't support it
   c0d3a7bdc7c2 ext4: check return value of kstrtoull correctly in reserved_clusters_store
   716986547f1f crypto: rsa-pkcs1pad - use constant time memory comparison for MACs
   0d6758f74a46 crypto: caam - fix gfp allocation flags (part I)
   090661e4073d staging: comedi: fix clean-up of comedi_class in comedi_init()
   80c965cbd280 staging: vt6556: vnt_start Fix missing call to vnt_key_init_table.
   5497d74e75f8 locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()
   3953403ca660 md: fix super_offset endianness in super_1_rdev_size_change
   9a37d02c497c md: fix incorrect use of lexx_to_cpu in does_sb_need_changing
   ce02effed0ec perf probe: Add error checks to offline probe post-processing
   364973599e2e perf probe: Fix to probe on gcc generated symbols for offline kernel
   cd206153672a perf scripting perl: Fix compile error with some perl5 versions
   b9175b3fa90c perf header: Fix handling of PERF_EVENT_UPDATE__SCALE
   15c249c85d57 perf bench numa: Avoid possible truncation when using snprintf()
   b246fc09a223 perf tests: Avoid possible truncation with dirent->d_name + snprintf
   93a3c47d033a perf intel-pt: Use __fallthrough
   055237857974 perf thread_map: Correctly size buffer used with dirent->dt_name
   a814c7d1d8f4 perf top: Use __fallthrough
   94218786b3ba tools strfilter: Use __fallthrough
   76efd703014f tools string: Use __fallthrough in perf_atoll()
   dae518419a42 tools include: Add a __fallthrough statement
   b635182b4f41 tpm: Issue a TPM2_Shutdown for TPM2 devices.
   5a1e1c62f37e Add "shutdown" to "struct class".
   e6952841ade0 mqueue: fix a use-after-free in sys_mq_notify()
   c48f76d680ad Linux 4.9.37
   3468d4ffa8ef rt286: add Thinkpad Helix 2 to force_combo_jack_table
   84b00cd90f4d RDMA/uverbs: Check port number supplied by user verbs cmds
   1803bec709f8 crypto: drbg - Fixes panic in wait_for_completion call
   73a0a68779e4 KEYS: Fix an error code in request_master_key()
   f986d63d788c ath10k: override CE5 config for QCA9377
   afbf56592092 x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings
   e353bfb63754 x86/tools: Fix gcc-7 warning in relocs.c
   525ea5950e1c tpm: fix a kernel memory leak in tpm-sysfs.c
   25b2ee6f9d9d gfs2: Fix glock rhashtable rcu bug
   f59d04e34282 xhci: Limit USB2 port wake support for AMD Promontory hosts
   07379c41aeaf USB: serial: qcserial: new Sierra Wireless EM7305 device ID
   7b7d5a4d9f57 USB: serial: option: add two Longcheer device ids
   369bbf4b44ac pinctrl: sh-pfc: Update info pointer after SoC-specific init
   828bd8441de0 pinctrl: sh-pfc: r8a7791: Add missing HSCIF1 pinmux data
   485b0f1194ea pinctrl: mxs: atomically switch mux and drive strength config
   dee763a4d37d pinctrl: cherryview: Add terminate entry for dmi_system_id tables
   b9970dd7c155 pinctrl: sunxi: Fix SPDIF function name for A83T
   8240981690f3 pinctrl: stm32: Fix bad function call
   a3f2e309f654 pinctrl: meson: meson8b: fix the NAND DQS pins
   f24dee484be9 pinctrl: sh-pfc: r8a7795: Fix hscif2_clk_b and hscif4_ctrl
   c5db45ef9e86 pinctrl: sh-pfc: r8a7791: Add missing DVC_MUTE signal
   37705843587b pinctrl: sh-pfc: r8a7791: Fix SCIF2 pinmux data
   275f905f1232 pinctrl: sh-pfc: r8a7794: Swap ATA signals
   2bd57fa2558c pinctrl: cherryview: Add a quirk to make Acer Chromebook keyboard work again
   aaaaa5b1881b pinctrl: qcom: ipq4019: add missing pingroups for pins > 70
   7bdacd3d9f4e sysctl: report EINVAL if value is larger than UINT_MAX for proc_douintvec
   3a20c57b4332 sysctl: don't print negative flag for proc_douintvec
   4e84b9c79003 mac80211_hwsim: Replace bogus hrtimer clockid
   d84e328c0243 USB: core: fix device node leak
   18b3abb54305 usb: Fix typo in the definition of Endpoint[out]Request
   19adf93ccd55 usb: usbip: set buffer pointers to NULL after free
   3d1056874295 Add USB quirk for HVR-950q to avoid intermittent device resets
   da8990d3c141 USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
   3272bad0c2aa usb: dwc3: replace %p with %pK
   366d9207d9e0 drm/virtio: don't leak bo on drm_gem_object_init failure
   b96976c1a87b media: entity: Fix stream count check
   3693042f1c9f tracing/kprobes: Allow to create probe with a module name starting with a digit
   9403514ba1a2 ceph: choose readdir frag based on previous readdir reply
   c4c592b2c137 driver core: platform: fix race condition with driver_override
   26ff065b8401 fs: completely ignore unknown open flags
   6efb1b0b6c82 fs: add a VALID_OPEN_FLAGS

(From OE-Core rev: 47b68405468c31e62b096ddfc66f3814bf53b468)

(From OE-Core rev: 6da24ad2d2c843455fb8ce0faf5254462ca85c3b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
519942c592 linux-yocto/4.10/4.9: fix BRCMFMAC_PROTO_MSGBUF warning
The 4.10 and 4.9 kernels need a fix applied to 4.12 to deal with
a configuration warning:

  Author: Bruce Ashfield <bruce.ashfield@windriver.com>
  Date:   Fri Aug 18 17:03:27 2017 -0400

    wifi: drop BRCMFMAC_PROTO_MSGBUF, since it is selected

(From OE-Core rev: 288f3ce9bfe0c2964137bfc98e033466fbf418be)

(From OE-Core rev: 74826c639d06ff19737602841333bd9235a142e3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
c18e8747f0 linux-yocto/4.10: fix aufs build
The aufs patches were out of sync with the latest upstream and hence
didn't build against 4.10.

With this update, we are once again building and up to date with the
upstream repo.

(From OE-Core rev: b8b7aa0f64e46e7e8134a8bc33948e2bbe63380f)

(From OE-Core rev: 35eebe3cf2c6190e1c13d5b828e3550fe798ba02)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
2e740c4583 linux-yocto/4.10: CVE & misc fixes
Updating the 4.10 SRCREVs to import the following changes:

  65370fa249e2 drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
  530ec12a0cb0 ACPICA: Namespace: fix operand cache leak
  b1098b5bbded char: lp: fix possible integer overflow in lp_setup()
  56ee0c7811e5 dccp/tcp: do not inherit mc_list from parent
  9f6cbd022bba nfsd: encoders mustn't use unitialized values in error cases
  084036ebc243 nfsd: fix undefined behavior in nfsd4_layout_verify
  973f780eeaa6 xen-blkback: don't leak stack data via response ring
  20c4b5015fea brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
  1dff0f28b490 ipx: call ipxitf_put() in ioctl error path
  d666a8e60a45 mm: fix new crash in unmapped_area_topdown()
  73d059ba1a17 mm: larger stack guard gap, between vmas

Which address the following CVEs:

  CVE-2017-8890
  CVE-2017-1000363
  CVE-2017-11472
  CVE-2017-7346
  CVE-2017-1000380
  CVE-2017-7541
  CVE-2017-10911

(From OE-Core rev: 6cfd520ea050aa449f0ac7ee0b2c647d14d588ad)

(From OE-Core rev: 10ade11241a52b490fbadc4f51988307b2b1ba24)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
288c2ff81b kernel-yocto: configuration updates: x86 features
Integrating the following kernel configuration changes:

 f7fbd4185e5 features/qat: additional configurations, CONFIG_CRYPTO_RSA and CONFIG_CRYPTO_DH
 50c62581d283 features/netfilter: additional configurations
 d67e4ed89556 features/x2apic: add X2APIC feature
 7889b28c5300 features/vfio: add VFIO feature
 dc4ec998757e features/numa: Add NUMA feature
 c88c18de4ca8 features/mtd: add MTD feature
 9035571d32ee features/iommu: add IOMMU feature
 6f3b16136f55 features/intel-txt: add intel-txt feature
 4936a5f508f0 common-pc-wifi: Enable SDIO for BroadCom BRCMFMAC

(From OE-Core rev: 59d294f119dc91d9ec47b0a8381d3addc86a6e3a)

(From OE-Core rev: a2fbe75d029c389e03c9775f4e82e8de233f4ddb)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
3490db6a4c linux-yocto/4.1: fix fsl-ls10xx sdhci
mmc: sdhci: fix two compile errors

    | CC drivers/mmc/host/sdhci.o
    | drivers/mmc/host/sdhci.c: In function 'sdhci_execute_tuning':
    | drivers/mmc/host/sdhci.c:1990:4: error: implicit
    | declaration of function 'sdhci_do_reset'
    | [-Werror=implicit-function-declaration]
    | sdhci_do_reset(host, SDHCI_RESET_CMD);
    | ^
    | drivers/mmc/host/sdhci.c:2006:7: error: 'struct
    | mmc_command' has no member named 'busy_timeout'
    | cmd.busy_timeout = 50;
    |        ^

    In function sdhci_execute_tuning, replace sdhci_do_reset
    with sdhci_reset, replace busy_timeout with cmd_timeout_ms.

    Commit a629a90ba0 adds eMMC DDR mode support for t2080qds and
    modified some data structures and function name. Later
    commit a2080cc280 just backport upstream commit 61e53bd004
    without aligning the current source tree thus cause
    these build errors. Fix them.

    Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>

(From OE-Core rev: 538d2f0857f09ca86026d5771ea7c3fb74c0f857)

(From OE-Core rev: 68f353d8a82a3b345e6e635258a606bf1c3991fb)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
2d6eb6904d linux-yocto/4.9: update to v4.9.36
Integrating the -stable release with the following commits:

   9f86f302ec0e Linux 4.9.36
   a29fd27ca268 KVM: nVMX: Fix exception injection
   d1d3756f07da KVM: x86: zero base3 of unusable segments
   f3c3ec96e5fb KVM: x86/vPMU: fix undefined shift in intel_pmu_refresh()
   1eeb79426332 KVM: x86: fix emulation of RSM and IRET instructions
   982d8d92f256 arm64: fix NULL dereference in have_cpu_die()
   a4bfcab30928 mtd: nand: brcmnand: Check flash #WP pin status before nand erase/program
   de5862335ed7 i2c: brcmstb: Fix START and STOP conditions
   8ee785016d5a brcmfmac: avoid writing channel out of allocated array
   65fc82cea84f infiniband: hns: avoid gcc-7.0.1 warning for uninitialized data
   3e51ccbadd15 objtool: Fix another GCC jump table detection issue
   92e66676523a clk: scpi: don't add cpufreq device if the scpi dvfs node is disabled
   8a6f400a374c cpufreq: s3c2416: double free on driver init error path
   1781a29b31fa iommu/amd: Fix interrupt remapping when disable guest_mode
   0e55856b8f29 iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()
   f0c31c674abd iommu/dma: Don't reserve PCI I/O windows
   d7fcb303d1ee iommu: Handle default domain attach failure
   c19bfc6765d4 iommu/vt-d: Don't over-free page table directories
   d5c5e8ba5d9d ocfs2: o2hb: revert hb threshold to keep compatible
   8af88a950b42 x86/mm: Fix flush_tlb_page() on Xen
   3667dafd6c04 x86/mpx: Correctly report do_mpx_bt_fault() failures to user-space
   b287ade87c91 x86/boot/KASLR: Fix kexec crash due to 'virt_addr' calculation bug
   15541e64163c tools arch: Sync arch/x86/lib/memcpy_64.S with the kernel
   a2c222bef08f ARM: 8685/1: ensure memblock-limit is pmd-aligned
   7661b19687b2 ARM64/ACPI: Fix BAD_MADT_GICC_ENTRY() macro implementation
   4efe34b500a7 ARM: dts: OMAP3: Fix MFG ID EEPROM
   07bb2c7e7ea3 ARM: OMAP2+: omap_device: Sync omap_device and pm_runtime after probe defer
   e57aa416ca4c regulator: tps65086: Fix DT node referencing in of_parse_cb
   88baad2e7159 regulator: tps65086: Fix expected switch DT node names
   9846c67974d6 spi: fix device-node leaks
   c52829f60f5f spi: When no dma_chan map buffers with spi_master's parent
   478273e11521 sched/loadavg: Avoid loadavg spikes caused by delayed NO_HZ accounting
   eea0261db8ef watchdog: bcm281xx: Fix use of uninitialized spinlock.
   4211442b2088 netfilter: use skb_to_full_sk in ip_route_me_harder
   ac2730234cc1 xfrm: Oops on error in pfkey_msg2xfrm_state()
   c460f2beb6f0 xfrm: NULL dereference on allocation failure
   1e1666257cb6 xfrm: fix stack access out of bounds with CONFIG_XFRM_SUB_POLICY
   647f605276c0 mm/vmalloc.c: huge-vmap: fail gracefully on unexpected huge vmap mappings
   f9f73c58feef ravb: Fix use-after-free on `ifconfig eth0 down`
   adfe95fe5b42 ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets
   168bd51ec5ef sctp: check af before verify address in sctp_addr_id2transport
   399566f8a4fb net/mlx4_core: Eliminate warning messages for SRQ_LIMIT under SRIOV
   b6f75b986a7f perf probe: Fix to probe on gcc generated functions in modules
   9f8ffe4e0952 tipc: allocate user memory with GFP_KERNEL flag
   18b200e0c8ee net: phy: dp83867: allow RGMII_TXID/RGMII_RXID interface types
   e1eac347d971 perf probe: Fix to show correct locations for events on modules
   cc439964fab1 be2net: fix MAC addr setting on privileged BE3 VFs
   02434def6fd0 be2net: don't delete MAC on close on unprivileged BE3 VFs
   fa1dbf505aef be2net: fix status check in be_cmd_pmac_add()
   5f54c4e1e2af usb: dwc2: gadget: Fix GUSBCFG.USBTRDTIM value
   0e9867b7113c s390/ctl_reg: make __ctl_load a full memory barrier
   9d00195bc0af swiotlb: ensure that page-sized mappings are page-aligned
   68a5dc385735 coredump: Ensure proper size of sparse core files
   d21816c24591 aio: fix lock dep warning
   82835fb33ce5 perf/x86: Reject non sampling events with precise_ip
   1c68633329d2 perf/core: Fix sys_perf_event_open() vs. hotplug
   48131dd0f2b1 x86/mpx: Use compatible types in comparison to fix sparse error
   283994074501 x86/tsc: Add the Intel Denverton Processor to native_calibrate_tsc()
   6baa8c92dab9 mac80211: initialize SMPS field in HT capabilities
   8eaaf66d41ad pmem: return EIO on read_pmem() failure
   25319ae8e8a7 drm/amd/powerplay: refine vce dpm update code on Cz.
   f275ac7fc5d2 drm/amd/powerplay: fix vce cg logic error on CZ/St.
   77e82094a3c9 drm/radeon/si: load special ucode for certain MC configs
   4ae8dc6acb71 net: thunderx: acpi: fix LMAC initialization
   f88f06e18318 arm64: assembler: make adr_l work in modules under KASLR
   aabb797b4c12 spi: davinci: use dma_mapping_error()
   c32462d0b523 scsi: lpfc: avoid double free of resource identifiers
   582c1ca0ea1d HID: i2c-hid: Add sleep between POWER ON and RESET
   c78b8de5c05c perf/x86/intel: Use ULL constant to prevent undefined shift behaviour
   6130fac99481 mac80211: recalculate min channel width on VHT opmode changes
   d48cb21fd50b net: phy: marvell: fix Marvell 88E1512 used in SGMII mode
   849f2d0665e0 pinctrl: intel: Set pin direction properly
   3a6edbc95ba0 perf/x86/intel/uncore: Fix hardcoded socket 0 assumption in the Haswell init code
   b8c5e7b12413 drm/etnaviv: trick drm_mm into giving out a low IOVA
   2bc8fcd633d8 Documentation: devicetree: change the mediatek ethernet compatible string
   c5c8743642ae kernel/panic.c: add missing \n
   00f468f51dd5 ibmveth: Add a proper check for the availability of the checksum features
   32bd4d2ed9d8 vxlan: do not age static remote mac entries
   b07bf2364605 ip6_tunnel: must reload ipv6h in ip6ip6_tnl_xmit()
   7fdc81f6e1a9 virtio_net: fix PAGE_SIZE > 64k
   a6c3e01bf32e mlxsw: spectrum_router: Correctly reallocate adjacency entries
   ff3b1dd026bb vfio/spapr: fail tce_iommu_attach_group() when iommu_data is null
   8895ef4e5357 drm/amdgpu: check ring being ready before using
   e5a2ba9af818 net: dsa: Check return value of phy_connect_direct()
   c6f284899e01 amd-xgbe: Check xgbe_init() return code
   e99d86d76eed platform/x86: ideapad-laptop: handle ACPI event 1
   e9a87e0f5bbb iwlwifi: fix kernel crash when unregistering thermal zone
   322baf72eed5 scsi: virtio_scsi: Reject commands when virtqueue is broken
   5d5c293af834 xen-netfront: Fix Rx stall during network stress and OOM
   72191c7d82e7 swiotlb-xen: update dev_addr after swapping pages
   884baf2abf6d virtio_console: fix a crash in config_work_handler
   c3eab85ff11a Btrfs: fix truncate down when no_holes feature is enabled
   e8b5068b64d0 Btrfs: Fix deadlock between direct IO and fast fsync
   83571e9ef7c9 gianfar: Do not reuse pages from emergency reserve
   c48a862c47d4 objtool: Fix IRET's opcode
   251d00bf1309 bpf: don't trigger OOM killer under pressure with map alloc
   a7a2a6d34fe7 bnxt_en: Fix "uninitialized variable" bug in TPA code path.
   da805bc788b0 xen-netback: protect resource cleaning on XenBus disconnect
   7bdccaa5da12 xen-netback: fix memory leaks on XenBus disconnect
   5dcd08594276 net: ethtool: Initialize buffer when querying device channel settings
   6e315b2b10b6 powerpc/eeh: Enable IO path on permanent error
   ea7b808165a5 net: korina: Fix NAPI versus resources freeing
   fded17be01ab perf/x86/intel: Handle exclusive threadid correctly on CPU hotplug
   3eeb3459b7e6 net: phy: dp83848: add DP83620 PHY support
   10c24e89b2b8 drm/amdgpu: add support for new hainan variants
   9f2a36a7504c drm/amdgpu: fix program vce instance logic error.
   0c9626619777 qla2xxx: Fix erroneous invalid handle message
   8cfcaa2899f3 qla2xxx: Terminate exchange if corrupted
   42a1d5b47594 scsi: lpfc: Set elsiocb contexts to NULL after freeing it
   7782ab228f64 stmmac: add missing of_node_put
   ee4494c6bda8 scsi: sd: Fix wrong DPOFUA disable in sd_read_cache_type
   80b1a1180e4e KVM: x86: fix fixing of hypercalls
   afaee3ef5136 xen/blkback: don't free be structure too early
   13fa36f9fbc8 ARM64: dts: meson-gxbb-odroidc2: fix GbE tx link breakage
   8bface142a8d dt: bindings: net: use boolean dt properties for eee broken modes
   3897ae12b706 net: phy: use boolean dt properties for eee broken modes
   40373d91a0f7 net: phy: fix sign type error in genphy_config_eee_advert
   752ba680eb70 dt-bindings: net: add EEE capability constants
   97ace183074d net: phy: add an option to disable EEE advertisement
   0e8eca987e27 net: ethtool: add support for 2500BaseT and 5000BaseT link modes
   8886196a7320 sparc64: Zero pages on allocation for mondo and error queues.
   41172b772da4 sparc64: Handle PIO & MEM non-resumable errors.
   2aa6d036b716 mm: numa: avoid waiting on freed migrated pages
   08cb8e5f83fd l2tp: take a reference on sessions used in genetlink handlers
   599e6f038777 l2tp: hold session while sending creation notifications
   d9face6fc62a l2tp: fix duplicate session creation
   806e98835683 l2tp: ensure session can't get removed during pppol2tp_session_ioctl()
   6539c4f991c2 l2tp: fix race in l2tp_recv_common()
   d2da8d394147 usb: gadget: f_fs: Fix possibe deadlock
   ed96148d7f8e x86/mm: Fix boot crash caused by incorrect loop count calculation in sync_global_pgds()
   1c0fa383b339 dm thin: do not queue freed thin mapping for next stage processing
   466877f2d257 drm/vmwgfx: Free hash table allocated by cmdbuf managed res mgr
   78c4244f8bdb gpiolib: fix filtering out unwanted events
   cb2c6fdf620f NFSv4.1: Fix a race in nfs4_proc_layoutget
   7d0e27fe24c5 ALSA: hda - set input_path bitmap to zero after moving it to new place
   093750c3dec4 ALSA: hda - Fix endless loop of codec configure
   dad3135e762b MIPS: Fix IRQ tracing & lockdep when rescheduling
   e9e24faf823e MIPS: pm-cps: Drop manual cache-line alignment of ready_count
   f7d3d40ea124 MIPS: Avoid accidental raw backtrace
   3d4ac49a9538 MIPS: head: Reorder instructions missing a delay slot
   b1355226a64e mm, swap_cgroup: reschedule when neeed in swap_cgroup_swapoff()
   dbc808362b6c drm/ast: Handle configuration without P2A bridge
   8dc9f9dede5b xen/blkback: don't use xen_blkif_get() in xen-blkback kthread
   4ebe28d23d35 NFSv4.x/callback: Create the callback service through svc_create_pooled
   955f270b6f5d NFSv4: fix a reference leak caused WARNING messages
   b89bd0c715c1 netfilter: synproxy: fix conntrackd interaction
   ced7689be60d netfilter: xt_TCPMSS: add more sanity tests on tcph->doff
   8e2316399b8f rtnetlink: add IFLA_GROUP to ifla_policy
   b9ca9b0f5510 ipv6: Do not leak throw route references
   e4089baa08c4 sfc: provide dummy definitions of vswitch functions
   08058c258afb net: 8021q: Fix one possible panic caused by BUG_ON in free_netdev
   f1a0e7d172b0 decnet: always not take dst->__refcnt when inserting dst into hash table
   c7d422d68fe9 net/mlx5e: Fix timestamping capabilities reporting
   25ff35074e27 net/mlx5: Wait for FW readiness before initializing command interface
   176b9874a203 net/mlx5e: Avoid doing a cleanup call if the profile doesn't have it
   4c246863e7b4 sctp: return next obj by passing pos + 1 into sctp_transport_get_idx
   fded2d74a350 ipv6: fix calling in6_ifa_hold incorrectly for dad work
   cac2a9bb4034 igmp: add a missing spin_lock_init()
   ecd6627f48bd igmp: acquire pmc lock for ip_mc_clear_src()
   059686754c18 proc: snmp6: Use correct type in memset
   78b24ab695ab net/mlx5e: Fix wrong indications in DIM due to counter wraparound
   9854e5865990 net/mlx5e: Added BW check for DIM decision mechanism
   57360bc3c7a6 net: tipc: Fix a sleep-in-atomic bug in tipc_msg_reverse
   bb566ce3a60e net: caif: Fix a sleep-in-atomic bug in cfpkt_create_pfx
   8cda426a7cfa sctp: disable BH in sctp_for_each_endpoint
   c6d4ff85722b Fix an intermittent pr_emerg warning about lo becoming free.
   bb84290cd296 af_unix: Add sockaddr length checks before accessing sa_family in bind and connect handlers
   386ed38f0f28 net: vrf: Make add_fib_rules per network namespace flag
   b5cc68e0c190 net: Zero ifla_vf_info in rtnl_fill_vfinfo()
   fd9b13e6c175 decnet: dn_rtmsg: Improve input length sanitization in dnrmg_receive_user_skb
   d2f459e3feb0 net: don't call strlen on non-terminated string in dev_set_alias()
   98184bbb8dae ipv6: release dst on error in ip6_dst_lookup_tail
   92905e331aea Linux 4.9.35
   855b08e57777 brcmfmac: fix uninitialized warning in brcmf_usb_probe_phase2()
   21eaaa76b701 jump label: fix passing kbuild_cflags when checking for asm goto support
   ffa96c1a6afe net: phy: fix marvell phy status reading
   5da6415e427b spi: double time out tolerance
   25c7794ed046 dmaengine: bcm2835: Fix cyclic DMA period splitting
   81135c71bde3 net: phy: Initialize mdio clock at probe function
   948c4f17ab7e rt2x00: avoid introducing a USB dependency in the rt2x00lib module
   225969acc0f1 usb: gadget: f_fs: avoid out of bounds access on comp_desc
   5306119473b2 mtd: spi-nor: fix spansion quad enable
   dcd015f733a7 of: Add check to of_scan_flat_dt() before accessing initial_boot_params
   f20603874211 rxrpc: Fix several cases where a padded len isn't checked in ticket decode
   581659a87820 drm/amdgpu: adjust default display clock
   217e035d5120 drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating
   e4b8d1e84410 drm/radeon: add a quirk for Toshiba Satellite L20-183
   61ea7c2817bd drm/radeon: add a PX quirk for another K53TK variant
   3900f24aa6fa iscsi-target: Reject immediate data underflow larger than SCSI transfer length
   463440e6de4a iscsi-target: Fix delayed logout processing greater than SECONDS_FOR_LOGOUT_COMP
   1f576d53d854 target: Fix kref->refcount underflow in transport_cmd_finish_abort
   99f66b5182a4 arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW
   a53bfdda06ac time: Fix CLOCK_MONOTONIC_RAW sub-nanosecond accounting
   02a37ccd6347 time: Fix clock->read(clock) race around clocksource changes
   c81d034bd09a brcmfmac: unbind all devices upon failure in firmware callback
   ba2d8d67875c brcmfmac: use firmware callback upon failure to load
   1dd15bd62221 brcmfmac: add parameter to pass error code in firmware callback
   20d8f785f974 Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list
   8eaa481dfb4c powerpc/64s: Handle data breakpoints in Radix mode
   414f51ceb6ff powerpc/kprobes: Pause function_graph tracing during jprobes handling
   f719f20abe2a signal: Only reschedule timers on signals timers have sent
   99afebe8fef9 HID: Add quirk for Dell PIXART OEM mouse
   cdf300d6105d cxgb4: notify uP to route ctrlq compl to rdma rspq
   fb6dc831b5cf CIFS: Improve readdir verbosity
   2f1527e359f4 KVM: PPC: Book3S HV: Context-switch EBB registers properly
   468aa930c0a2 KVM: PPC: Book3S HV: Preserve userspace HTM state properly
   df3a787b3a71 KVM: s390: gaccess: fix real-space designation asce handling for gmap shadows
   5220378bd91c perf/x86/intel: Add 1G DTLB load/store miss support for SKL
   7c679fe729c2 lib/cmdline.c: fix get_options() overflow while parsing ranges
   bc6eecff3d95 autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL
   4b660fcbc64e powerpc/perf: Fix oops when kthread execs user process
   3d6848e491df fs/exec.c: account for argv/envp pointers
   552a14a572a2 ALSA: pcm: Don't treat NULL chmap as a fatal error
   8c9c55a0f576 ALSA: firewire-lib: Fix stall of process context at packet error
   4ae2cb91a636 xen-blkback: don't leak stack data via response ring
   e5c49c1703ae xen/blkback: fix disconnect while I/Os in flight
   0e051f17bd04 clk: sunxi-ng: a31: Correct lcd1-ch1 clock register offset
   493ecd5cd73e Linux 4.9.34
   ce7fe8595902 mm: fix new crash in unmapped_area_topdown()
   5d10ad629726 Allow stack to grow up to address space limit
   cfc0eb403816 mm: larger stack guard gap, between vmas
   04651048c79a alarmtimer: Rate limit periodic intervals
   b355b899c74a crypto: Work around deallocated stack frame reference gcc bug on sparc.
   7dfe7ca9ec12 vTPM: Fix missing NULL check
   ecae47331a43 MIPS: .its targets depend on vmlinux
   6b706cbb16e9 MIPS: Fix bnezc/jialc return address calculation
   22921a9e232a usb: dwc3: exynos fix axius clock error path to do cleanup
   f0ee203c864f usb: gadget: composite: Fix function used to free memory
   8ee7f06f4dca alarmtimer: Prevent overflow of relative timers
   766283254b67 genirq: Release resources in __setup_irq() error path
   8a48b7eace4d sched/core: Idle_task_exit() shouldn't use switch_mm_irqs_off()
   cf6ac3abb323 iio: imu: inv_mpu6050: add accel lpf setting for chip >= MPU6500
   f7ae7d2229d2 swap: cond_resched in swap_cgroup_prepare()
   1419b8752153 mm/memory-failure.c: use compound_head() flags for huge pages
   0c0d3d8730db USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
   3ff5f4f6a8a7 USB: gadget: fix GPF in gadgetfs
   06178662474c usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
   4581d7dd44f3 usb: xhci: Fix USB 3.1 supported protocol parsing
   2abac4084fb9 drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR()
   f28ba80c6a3e misc: mic: double free on ioctl error path
   02d009e865a8 ath10k: fix napi crash during rmmod when probe firmware fails
   07612c1227e8 usb: r8a66597-hcd: decrease timeout
   f75f4d196ab5 usb: r8a66597-hcd: select a different endpoint on timeout
   c8091f0e8549 USB: gadget: dummy_hcd: fix hub-descriptor removable fields
   374aceef5912 pvrusb2: reduce stack usage pvr2_eeprom_analyze()
   9ae5dac225e2 USB: usbip: fix nonconforming hub descriptor
   7b5bce3a5128 usb: core: fix potential memory leak in error path during hcd creation
   12bfbe157d06 USB: hub: fix SS max number of ports
   cb53a4e03b2f usb: gadget: udc: renesas_usb3: lock for PN_ registers access
   dd65c0958b77 usb: gadget: udc: renesas_usb3: fix deadlock by spinlock
   723bd3b9f83f usb: gadget: udc: renesas_usb3: fix pm_runtime functions calling
   b51e4b0ac661 IB/mlx5: Fix kernel to user leak prevention logic
   dca02651cee7 iio: adc: ti_am335x_adc: allocating too much in probe
   cf308c15103e iio: proximity: as3935: recalibrate RCO after resume
   56251d138570 iio: st_pressure: Fix data sign
   a1d51f7abf71 staging: iio: tsl2x7x_core: Fix standard deviation calculation
   773fdcdc0957 staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
   ed13a9c6464b mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
   caa6f1c7bcbe x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
   ad3faea03fdf serial: sh-sci: Fix late enablement of AUTORTS
   a50aacf5de52 serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
   879d61f218a9 drm/vc4: Fix OOPSes from trying to cache a partially constructed BO.
   5899b635ecc7 drm/mediatek: fix mtk_hdmi_setup_vendor_specific_infoframe mistake
   5b754c994f38 mac80211: don't send SMPS action frame in AP mode when not needed
   3e8c503d0a16 mac80211: fix dropped counter in multiqueue RX
   6568f8f70152 mac80211: strictly check mesh address extension mode
   c8143269c9c4 mac80211: fix IBSS presp allocation size
   841e4e775bb1 mac80211: fix packet statistics for fast-RX
   f79d740f3289 mac80211: fix CSA in IBSS mode
   bd3f89002e52 usb: musb: dsps: keep VBUS on for host-only mode
   a317afc0c1ce drm/i915: Fix GVT-g PVINFO version compatibility check
   7f7bb1173db8 drm/amdgpu: Fix overflow of watermark calcs at > 4k resolutions.
   f6e99a2efc03 mac80211/wpa: use constant time memory comparison for MACs
   2ec5b68bf62e mac80211: don't look at the PM bit of BAR frames
   63d34ea7042a vb2: Fix an off by one error in 'vb2_plane_vaddr'
   5d5605cc5833 cpufreq: conservative: Allow down_threshold to take values from 1 to 10
   47537bceb7b7 ila_xlat: add missing hash secret initialization
   95f47cd7d7d8 can: gs_usb: fix memory leak in gs_cmd_reset()
   a6d6282040b7 configfs: Fix race between create_link and configfs_rmdir
   222aa34e5d79 fs: pass on flags in compat_writev
   050639ef5810 Linux 4.9.33
   bdc9a03fd9ce sparc64: make string buffers large enough
   933b9b11f7ca drm/i915: Always recompute watermarks when distrust_bios_wm is set, v2.
   4f59a7a895c4 drm/i915: Workaround VLV/CHV DSI scanline counter hardware fail
   8e1a4006ff92 s390/kvm: do not rely on the ILC on kvm host protection fauls
   a2f68276822c xtensa: don't use linux IRQ #0
   57211e84dda0 RDMA/qedr: Return max inline data in QP query result
   c5ea7aa57e24 RDMA/qedr: Don't spam dmesg if QP is in error state
   13a87589af5f RDMA/qedr: Don't reset QP when queues aren't flushed
   bbf61096e42c RDMA/qedr: Fix and simplify memory leak in PD alloc
   a4fa249385b6 RDMA/qedr: Dispatch port active event from qedr_add
   c47538f61016 netfilter: nft_log: restrict the log prefix length to 127
   fefdd79403e8 netfilter: nf_tables: fix set->nelems counting with no NLM_F_EXCL
   f68a45776a62 tipc: fix nametbl_lock soft lockup at node/link events
   1d6e36d730ed tipc: add subscription refcount to avoid invalid delete
   9f8df4f86a3f tipc: fix connection refcount error
   c7a552e771cc tipc: ignore requests when the connection state is not CONNECTED
   2552e2c11575 ARCv2: smp-boot: wake_flag polling by non-Masters needs to be uncached
   8cb6045ec40d ARC: smp-boot: Decouple Non masters waiting API from jump to entry point
   ae36f6a65af6 vhost/vsock: handle vhost_vq_init_access() error
   b13b3b706a9d kernel/watchdog: prevent false hardlockup on overloaded system
   0ce66ee6aec1 kernel/watchdog.c: move shared definitions to nmi.h
   b969a240448b kernel/watchdog.c: move hardlockup detector to separate file
   dbd9eee1aaaf userfaultfd: fix SIGBUS resulting from false rwsem wakeups
   9618fba26499 proc: add a schedule point in proc_pid_readdir()
   e23b1c05a50f frv: add missing atomic64 operations
   918684681dc2 frv: add atomic64_add_unless()
   013bbbc3e902 romfs: use different way to generate fsid for BLOCK or MTD
   093d494c6d1d mn10300: fix build error of missing fpu_save()
   5e4cafca06bf usb: musb: Fix external abort on non-linefetch for musb_irq_work()
   fb72eca1333c sctp: sctp_addr_id2transport should verify the addr before looking up assoc
   bf812fe92683 sctp: sctp gso should set feature with NETIF_F_SG when calling skb_segment
   12a583ddf02a bnxt_en: Fix RTNL lock usage on bnxt_get_port_module_status().
   66deb409251c bnxt_en: Fix RTNL lock usage on bnxt_update_link().
   e89ffe41e9a6 bnxt_en: Enhance autoneg support.
   710ea9b028de bnxt_en: Fix bnxt_reset() in the slow path task.
   cb7188295d18 net-next: ethernet: mediatek: change the compatible string
   e9ace99c4bb0 r8152: avoid start_xmit to schedule napi when napi is disabled
   c1a7106b3b01 r8152: fix rtl8152_post_reset function
   9507910ca46d r8152: re-schedule napi for tx
   4242f0bce47e r8152: check rx after napi is enabled
   993ba7ffcf6e r8152: avoid start_xmit to call napi_schedule during autosuspend
   6149abe7f404 nvmet-rdma: Fix missing dma sync to nvme data structures
   5a0d41409b4d nfs: Fix "Don't increment lock sequence ID after NFS4ERR_MOVED"
   d16268259683 ravb: unmap descriptors when freeing rings
   47c362f147aa drm/ast: Fixed system hanged if disable P2A
   bfa4d2e461da drm/nouveau: Fix drm poll_helper handling
   c94e2edacea7 drm/nouveau: Don't enabling polling twice on runtime resume
   c7a29cf6c34a drm/nouveau: Handle fbcon suspend/resume in seperate worker
   d2beb1a9dd82 drm/nouveau: Rename acpi_work to hpd_work
   ef66745a1bd2 drm/nouveau: Intercept ACPI_VIDEO_NOTIFY_PROBE
   eb846414674c gtp: add genl family modules alias
   7dddbfcd96e2 net: phy: micrel: add support for KSZ8795
   2f970b437e86 parisc, parport_gsc: Fixes for printk continuation lines
   4038524f7fef net/mlx5: Return EOPNOTSUPP when failing to get steering name-space
   b445ecbdff83 net/mlx5: E-Switch, Err when retrieving steering name-space fails
   2bcbe747629e drm/i915: Check for NULL i915_vma in intel_unpin_fb_obj()
   e6549f36278c net: adaptec: starfire: add checks for dma mapping errors
   a15bbf44ab2f pinctrl: berlin-bg4ct: fix the value for "sd1a" of pin SCRD0_CRD_PRES
   326fdffd7078 drm: Don't race connector registration
   82b6693bd415 drm: prevent double-(un)registration for connectors
   d934fe02ba17 cec: fix wrong last_la determination
   62614714e30a pinctrl: baytrail: Rectify debounce support (part 2)
   3564d41e5c84 gianfar: synchronize DMA API usage by free_skb_rx_queue w/ gfar_new_page
   581e4003bf12 net/mlx4_core: Avoid command timeouts during VF driver device shutdown
   c33f1bd7f289 drm/nouveau/fence/g84-: protect against concurrent access to semaphore buffers
   cf336eea809d drm/nouveau: prevent userspace from deleting client object
   16f733d8db52 ipv6: fix flow labels when the traffic class is non-0
   0542f9791246 FS-Cache: Initialise stores_lock in netfs cookie
   34f1a4626bad fscache: Clear outstanding writes when disabling a cookie
   11696dcea282 fscache: Fix dead object requeue
   f4d2d05ffb8b net: fix ndo_features_check/ndo_fix_features comment ordering
   3a6ebd3f963c net: phy: Fix PHY module checks and NULL deref in phy_attach_direct()
   ea14fabd43a5 net: phy: Fix lack of reference count on PHY driver
   2fba4f5b70f3 ethtool: do not vzalloc(0) on registers dump
   8de6ea44af5c log2: make order_base_2() behave correctly on const input value zero
   5331baaeb7e6 kasan: respect /proc/sys/kernel/traceoff_on_warning
   8936b74fd339 shmem: fix sleeping from atomic context
   3ec4141c68de jump label: pass kbuild_cflags when checking for asm goto support
   36d9659cde0d PM / runtime: Avoid false-positive warnings from might_sleep_if()
   40f6d71c0a09 ARM: defconfigs: make NF_CT_PROTO_SCTP and NF_CT_PROTO_UDPLITE built-in
   1cadd394bbf9 ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches
   d536202202ee vfio/spapr_tce: Set window when adding additional groups to container
   d385ed7ad307 ipv6: addrconf: fix generation of new temporary addresses
   d7b2b380c08d net: thunderx: Fix PHY autoneg for SGMII QLM mode
   baaa84b43608 kernel/ucount.c: mark user_header with kmemleak_ignore()
   c419fe260b54 powerpc/powernv: Properly set "host-ipi" on IPIs
   47a5aabc3424 i2c: piix4: Fix request_region size
   c1a4306f24a0 i2c: piix4: Request the SMBUS semaphore inside the mutex
   7a6fcf38fabb sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications
   9217eeefee15 sierra_net: Skip validating irrelevant fields for IDLE LSIs
   bed8b8627a33 net: hns: Fix the device being used for dma mapping during TX
   008798746e6e NET: mkiss: Fix panic
   ae0b63eb344e ibmvnic: Initialize completion variables before starting work
   4544ba3173b7 ibmvnic: Call napi_disable instead of napi_enable in failure path
   74e24d1ea1a4 NET: Fix /proc/net/arp for AX.25
   2557969fb4f7 gfs2: Use rhashtable walk interface in glock_hash_walk
   44bc7cae6031 tipc: Fix tipc_sk_reinit race conditions
   cb351da6f2ba ipv6: Inhibit IPv4-mapped src address on the wire.
   12ec2560d467 ipv6: Handle IPv4-mapped src to in6addr_any dst.
   116589a5a7e0 tcp: tcp_probe: use spin_lock_bh()
   a2901d01a6c7 net: xilinx_emaclite: fix receive buffer overflow
   bff3001afae7 net: xilinx_emaclite: fix freezes due to unordered I/O
   65e72723add0 ibmvnic: Fix endian error when requesting device capabilities
   b5a1aa812a16 ibmvnic: Fix endian errors in error reporting output
   d864e675c789 netfilter: nf_conntrack_sip: fix wrong memory initialisation
   220b67a16fde partitions/msdos: FreeBSD UFS2 file systems are not recognized
   7a7b2d5f65a7 drm/i915: Prevent the system suspend complete optimization
   b372d35a5226 PCI/PM: Add needs_resume flag to avoid suspend complete optimization
   05afd4c0af6a Linux 4.9.32
   3eb235a1af14 netfilter: nft_set_rbtree: handle element re-addition after deletion
   a8fc3159ee2c cpufreq: schedutil: Fix per-CPU structure initialization in sugov_start()
   afe8d4a51c76 cpufreq: schedutil: move cached_raw_freq to struct sugov_policy
   09fcb3561d9e drm/i915/vbt: split out defaults that are set when there is no VBT
   555c443a1ab9 drm/i915/vbt: don't propagate errors from intel_bios_init()
   a6a7d8ade88c usercopy: Adjust tests to deal with SMAP/PAN
   eefa5e13dff9 ARM: 8637/1: Adjust memory boundaries after reservations
   1df21f45fd55 ARM: 8636/1: Cleanup sanity_check_meminfo
   9e09d90ac5ac arm64: entry: improve data abort handling of tagged pointers
   1d61ccb5ac27 arm64: hw_breakpoint: fix watchpoint matching for tagged pointers
   791d94ef40f6 arm64: traps: fix userspace cache maintenance emulation on a tagged pointer
   d95202487334 serial: sh-sci: Fix panic when serial console and DMA are enabled
   9ff4a1a36a58 drivers: char: mem: Fix wraparound check to allow mappings up to the end
   106c77e82572 cpu/hotplug: Drop the device lock on error
   eb8fa317cb01 ASoC: Fix use-after-free at card unregistration
   82ecd2f054bd ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
   66e982d8f1a1 ALSA: timer: Fix race between read and ioctl
   aae14f569f5d drm/nouveau/tmr: fully separate alarm execution/pending lists
   7860d0e5e2bf drm/vmwgfx: Make sure backup_handle is always valid
   a76ff847013a drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
   64c21af51d71 drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
   3743c0e1276d perf/core: Drop kernel samples even though :u is specified
   6e6d89e18e53 powerpc/kernel: Initialize load_tm on task creation
   2cfdf4fd3292 powerpc/kernel: Fix FP and vector register restoration
   cbf687acc1e1 powerpc/hotplug-mem: Fix missing endian conversion of aa_index
   b4624ff952ec powerpc/numa: Fix percpu allocations to be NUMA aware
   bb0a300f18ce powerpc/sysdev/simple_gpio: Fix oops in gpio save_regs function
   59d9a40b5839 scsi: qla2xxx: Fix mailbox pointer error in fwdump capture
   64dc431432ec scsi: qla2xxx: Set bit 15 for DIAG_ECHO_TEST MBC
   ab2b484e8038 scsi: qla2xxx: Modify T262 FW dump template to specify same start/end to debug customer issues
   fe42472e53eb scsi: qla2xxx: don't disable a not previously enabled PCI device
   f75e09ebd3e4 KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
   66d6448475c6 btrfs: fix memory leak in update_space_info failure path
   4d15ab90ec2b btrfs: use correct types for page indices in btrfs_page_exists_in_range
   3fd1233dabd5 cxl: Avoid double free_irq() for psl,slice interrupts
   172c70d1cd82 cxl: Fix error path on bad ioctl
   84bef90a454f ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path
   3d4922b5bb5b ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments()
   55a00f816bd7 ufs: set correct ->s_maxsize
   aed005fb7956 ufs: restore maintaining ->i_blocks
   bf7bfef3eee3 fix ufs_isblockset()
   4896c87d2464 ufs: restore proper tail allocation
   61604a2626a3 fs: add i_blocksize()
   829a1cab22c4 cpuset: consider dying css as offline
   5aa8f833ca78 Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled
   dff4c8bb1397 cgroup: Prevent kill_css() from being called more than once
   b59ec7072c84 ahci: Acer SA5-271 SSD Not Detected Fix
   b3a42bb630bd drm/msm: Expose our reservation object when exporting a dmabuf.
   974a4eb16e84 target: Re-add check to reject control WRITEs with overflow data
   96d7b43b42ba cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
   acd8f9173960 mei: make sysfs modalias format similar as uevent modalias
   716dd37398ad iio: proximity: as3935: fix iio_trigger_poll issue
   bad3b49b01aa iio: proximity: as3935: fix AS3935_INT mask
   8067c911c5e9 iio: light: ltr501 Fix interchanged als/ps register field
   e33679f994db iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's
   c5a8004434f0 staging/lustre/lov: remove set_fs() call from lov_getstripe()
   5404b0c0ea85 usb: chipidea: debug: check before accessing ci_role
   59db536f5812 usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
   405ac24a0aec usb: gadget: f_mass_storage: Serialize wake and sleep execution
   1308eeec2fc5 drm: Fix oops + Xserver hang when unplugging USB drm devices
   c404f0dee7a8 ext4: fix fdatasync(2) after extent manipulation operations
   2e16921d1743 ext4: fix data corruption with EXT4_GET_BLOCKS_ZERO
   9890b9cb75c9 ext4: keep existing extra fields when inode expands
   9850844e0a0e ext4: fix SEEK_HOLE
   9636c086532b xen/privcmd: Support correctly 64KB page granularity when mapping memory
   08229c119c42 cfq-iosched: fix the delay of cfq_group's vdisktime under iops mode
   1f67d28d2707 dmaengine: mv_xor_v2: set DMA mask to 40 bits
   eb5afaba6177 dmaengine: mv_xor_v2: remove interrupt coalescing
   b2c8bb06bc83 dmaengine: mv_xor_v2: fix tx_submit() implementation
   0d0918504a96 dmaengine: mv_xor_v2: enable XOR engine after its configuration
   e2a092eab8a5 dmaengine: mv_xor_v2: do not use descriptors not acked by async_tx
   67b1684c4a5e dmaengine: mv_xor_v2: properly handle wrapping in the array of HW descriptors
   f08c84d4c745 dmaengine: mv_xor_v2: handle mv_xor_v2_prep_sw_desc() error properly
   f2e9d10bf1a2 dmaengine: ep93xx: Don't drain the transfers in terminate_all()
   b7e7a4d52a95 dmaengine: ep93xx: Always start from BASE0
   cd0ef520aa70 dmaengine: usb-dmac: Fix DMAOR AE bit definition
   3e7a76b290f1 KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt
   2a5c08a4d3fe KVM: arm/arm64: vgic-v3: Do not use Active+Pending state for a HW interrupt
   81555e45852a KVM: async_pf: avoid async pf injection when in guest mode
   85c19308cb37 arm: KVM: Allow unaligned accesses at HYP
   8abce1e49c82 arm64: KVM: Allow unaligned accesses at EL2
   b9824dd75fcf arm64: KVM: Preserve RES1 bits in SCTLR_EL2
   19c9a115085e KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
   78f87ce2a17f kvm: async_pf: fix rcu_irq_enter() with irqs enabled
   4809f0e56d98 efi: Don't issue error message when booted under Xen
   e273ed246617 nfsd: Fix up the "supattr_exclcreat" attributes
   bfeac838043f nfsd4: fix null dereference on replay
   34bae9b3ba98 drm/amdgpu/ci: disable mclk switching for high refresh rates (v2)
   d4783eb9f082 crypto: gcm - wait for crypto op not signal safe
   2d0280070e6c crypto: drbg - wait for crypto op not signal safe
   d24c1c1977d8 KEYS: encrypted: avoid encrypting/decrypting stack buffers
   24369761029a KEYS: fix freeing uninitialized memory in key_update()
   1b253e023f8f KEYS: fix dereferencing NULL payload with nonzero length
   0e479742e8d1 crypto: asymmetric_keys - handle EBUSY due to backlog correctly
   7c24a70c70b7 ptrace: Properly initialize ptracer_cred on fork
   3802abc6e0df serial: ifx6x60: fix use-after-free on module unload
   04ac452dadbf arch/sparc: support NR_CPUS = 4096
   433a50e681df sparc64: delete old wrap code
   b6bb22de0c9e sparc64: new context wrap
   975f3cdc3915 sparc64: add per-cpu mm of secondary contexts
   7932bfad0e82 sparc64: redefine first version
   65e3443b61a8 sparc64: combine activate_mm and switch_mm
   e7590a1b15c8 sparc64: reset mm cpumask after wrap
   b3ad7a3e57b3 sparc: Machine description indices can vary
   8d665e039e66 sparc64: mm: fix copy_tsb to correctly copy huge page TSBs
   4b684e6474d0 sparc64: Add __multi3 for gcc 7.x and later.
   0255284edddc net: bridge: start hello timer only if device is up
   3dd4daf112fd net: stmmac: fix completely hung TX when using TSO
   a83564d12863 net: ethoc: enable NAPI before poll may be scheduled
   a97f807363d4 net/ipv6: Fix CALIPSO causing GPF with datagram support
   0aa89f1b07de net: ping: do not abuse udp_poll()
   599a4478d8cb ipv6: Fix leak in ipv6_gso_segment().
   c242e1a8140e vxlan: fix use-after-free on deletion
   3ee35b96825e tcp: disallow cwnd undo when switching congestion control
   61c92d5a533c cxgb4: avoid enabling napi twice to the same queue
   abbcb731d69c ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
   b5e9b7ad0dd4 vxlan: eliminate cached dst leak
   96d145216b58 bnx2x: Fix Multi-Cos

(From OE-Core rev: d9d950bd48566e5a2e92ad4a2fd943ad828fb8df)

(From OE-Core rev: 0a8c61d2351de7536c817242b0844e36dfe8b334)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Minor fixup for kernal-cache hash
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
5ec4c63573 linux-yocto/4.1: update to v4.1.42
Integrating the korg -stable update that comprises the following
commits:

   2ac51e21d8c5 Linux 4.1.42
   dcda279dede7 mm: fix new crash in unmapped_area_topdown()
   8b18c6b2a0dd mm: larger stack guard gap, between vmas
   55e6060ddd5f alarmtimer: Rate limit periodic intervals
   cedbfb3dc38c MIPS: Fix bnezc/jialc return address calculation
   d490b0caf87f usb: dwc3: exynos fix axius clock error path to do cleanup
   61e04a644bd8 genirq: Release resources in __setup_irq() error path
   ec8376b633c9 swap: cond_resched in swap_cgroup_prepare()
   331720703ebb mm/memory-failure.c: use compound_head() flags for huge pages
   e28840566853 USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
   7ed474c302c1 usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
   235efbf2e58c drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR()
   d5db08763ef2 usb: r8a66597-hcd: decrease timeout
   152c8dcf311c usb: r8a66597-hcd: select a different endpoint on timeout
   08e1f9869489 USB: gadget: dummy_hcd: fix hub-descriptor removable fields
   0758e6a95a00 [media] pvrusb2: reduce stack usage pvr2_eeprom_analyze()
   bdc69cc86e01 usb: core: fix potential memory leak in error path during hcd creation
   11f00c7e1194 USB: hub: fix SS max number of ports
   e507356624f1 iio: proximity: as3935: recalibrate RCO after resume
   fe9474901810 staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
   94bfe4f31f46 mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
   49919278f4ce x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
   daccc774edf2 serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
   394dc0f7c2ae mac80211: don't send SMPS action frame in AP mode when not needed
   8373afb6cb12 mac80211: fix IBSS presp allocation size
   26e7f9d274cf mac80211: fix CSA in IBSS mode
   5125e4a41299 mac80211/wpa: use constant time memory comparison for MACs
   1a8dacfbbbe7 mac80211: don't look at the PM bit of BAR frames
   61df07cce8eb [media] vb2: Fix an off by one error in 'vb2_plane_vaddr'
   6ea9210c046f can: gs_usb: fix memory leak in gs_cmd_reset()
   d30248c41364 configfs: Fix race between create_link and configfs_rmdir
   9307fb9f34e1 sparc64: make string buffers large enough
   b865f707d7c6 xtensa: don't use linux IRQ #0
   ddda59580e10 tipc: ignore requests when the connection state is not CONNECTED
   1b98bab153c7 proc: add a schedule point in proc_pid_readdir()
   a20b7cab8735 romfs: use different way to generate fsid for BLOCK or MTD
   3e335922279b mn10300: fix build error of missing fpu_save()
   86e9b2ee9cc6 sctp: sctp_addr_id2transport should verify the addr before looking up assoc
   5fbc861ad7eb r8152: re-schedule napi for tx
   41e0083c7ddb drm/ast: Fixed system hanged if disable P2A
   9b50bb2bc343 drm/nouveau: Don't enabling polling twice on runtime resume
   c29b8f7d2d1e parisc, parport_gsc: Fixes for printk continuation lines
   8cc579971086 net: adaptec: starfire: add checks for dma mapping errors
   6d43352435ba net/mlx4_core: Avoid command timeouts during VF driver device shutdown
   295a19f594e8 drm/nouveau/fence/g84-: protect against concurrent access to semaphore buffers
   510c29634e35 fscache: Clear outstanding writes when disabling a cookie
   42c32ac3cec6 ethtool: do not vzalloc(0) on registers dump
   eaabe4b74095 log2: make order_base_2() behave correctly on const input value zero
   8bc30cf03ca1 kasan: respect /proc/sys/kernel/traceoff_on_warning
   acd666657821 jump label: pass kbuild_cflags when checking for asm goto support
   cb2098ab876e PM / runtime: Avoid false-positive warnings from might_sleep_if()
   d3121ad14562 ARM: defconfigs: make NF_CT_PROTO_SCTP and NF_CT_PROTO_UDPLITE built-in
   4c8eb6278488 ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches
   0def8e45d25f sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications
   0c2950fa861d sierra_net: Skip validating irrelevant fields for IDLE LSIs
   a9cbb7cd1868 NET: mkiss: Fix panic
   d914dc3b811d NET: Fix /proc/net/arp for AX.25
   68978d69ea6f ipv6: Inhibit IPv4-mapped src address on the wire.
   197082364320 ipv6: Handle IPv4-mapped src to in6addr_any dst.
   dd4d061cf1f6 net: xilinx_emaclite: fix receive buffer overflow
   742e7978eaba net: xilinx_emaclite: fix freezes due to unordered I/O
   afae1d9da32e partitions/msdos: FreeBSD UFS2 file systems are not recognized
   7f6abe4c0560 PCI/PM: Add needs_resume flag to avoid suspend complete optimization
   cd1c4f855f68 usercopy: Adjust tests to deal with SMAP/PAN
   9da808668b58 arm64: entry: improve data abort handling of tagged pointers
   47e49f2d1eda drivers: char: mem: Fix wraparound check to allow mappings up to the end
   bb3556c1d155 ASoC: Fix use-after-free at card unregistration
   88c41586db86 ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
   5d28ba6eecde ALSA: timer: Fix race between read and ioctl
   29837be8e922 drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
   d6f90404eaa0 perf/core: Drop kernel samples even though :u is specified
   f44556278b79 powerpc/hotplug-mem: Fix missing endian conversion of aa_index
   7ee9689e6b68 powerpc/numa: Fix percpu allocations to be NUMA aware
   eecbbd835e2e scsi: qla2xxx: don't disable a not previously enabled PCI device
   4a213a0fe0b3 KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
   951269f95603 btrfs: fix memory leak in update_space_info failure path
   d42014c8d4ce btrfs: use correct types for page indices in btrfs_page_exists_in_range
   cc558c203ce1 cxl: Fix error path on bad ioctl
   c58e11d1da35 ufs: set correct ->s_maxsize
   7ba100d53ebc fix ufs_isblockset()
   7f8053503ed2 cpuset: consider dying css as offline
   51037ec2ee8e iio: proximity: as3935: fix AS3935_INT mask
   60e9d774dc8e staging/lustre/lov: remove set_fs() call from lov_getstripe()
   6f4f7e81b18e usb: chipidea: debug: check before accessing ci_role
   9738b3df00b1 usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
   db87e41d61aa usb: gadget: f_mass_storage: Serialize wake and sleep execution
   926295793364 ext4: keep existing extra fields when inode expands
   4d1adc2ada19 ext4: fix SEEK_HOLE
   8406f302e985 KVM: async_pf: avoid async pf injection when in guest mode
   fdb67b2a3a16 arm: KVM: Allow unaligned accesses at HYP
   1e8dabb6aa14 KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
   702eb8d270f2 kvm: async_pf: fix rcu_irq_enter() with irqs enabled
   4b1bf4b008ca nfsd4: fix null dereference on replay
   026ed759f4f4 crypto: gcm - wait for crypto op not signal safe
   e02ed52dd2d3 KEYS: fix freeing uninitialized memory in key_update()
   a38f69cb4a22 ptrace: Properly initialize ptracer_cred on fork
   94d53c5028a3 arch/sparc: support NR_CPUS = 4096
   252bf31f5d91 sparc64: delete old wrap code
   0837a0481106 sparc64: new context wrap
   169dc5fd241d sparc64: add per-cpu mm of secondary contexts
   ccadb4e680e9 sparc64: redefine first version
   5203c6c92724 sparc64: combine activate_mm and switch_mm
   317a444875fd sparc64: reset mm cpumask after wrap
   a2334e23c296 sparc: Machine description indices can vary
   8ee93884863e sparc64: mm: fix copy_tsb to correctly copy huge page TSBs
   246fa51013e3 net: ethoc: enable NAPI before poll may be scheduled
   169a7e245c7f net: ping: do not abuse udp_poll()
   59dc08f8f5e7 ipv6: Fix leak in ipv6_gso_segment().
   f257e5d318a5 tcp: disallow cwnd undo when switching congestion control
   fa95ca65fb86 cxgb4: avoid enabling napi twice to the same queue
   cd276bb4fe54 ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
   e616f6da095e bnx2x: Fix Multi-Cos
   d600ccd7fd21 xfs: fix unaligned access in xfs_btree_visit_blocks
   20d07bb1567a xfs: bad assertion for delalloc an extent that start at i_size
   45ed7e2f2f82 xfs: fix indlen accounting error on partial delalloc conversion
   1a229fd5ae97 xfs: wait on new inodes during quotaoff dquot release
   b822f03516c9 xfs: update ag iterator to support wait on new inodes
   821afaaed81d xfs: support ability to wait on new inodes
   9b1260c216af xfs: fix up quotacheck buffer list error handling
   022e9b0e554b xfs: prevent multi-fsb dir readahead from reading random blocks
   641967d1f903 xfs: handle array index overrun in xfs_dir2_leaf_readbuf()
   17d031b4add7 xfs: fix over-copying of getbmap parameters from userspace
   74d27999c51e xfs: use dedicated log worker wq to avoid deadlock with cil wq
   ddf2f45b3344 xfs: fix kernel memory exposure problems
   9bf638a08ad2 mm/migrate: fix refcount handling when !hugepage_migration_supported()
   c7dbf874d6b5 drm/radeon/ci: disable mclk switching for high refresh rates (v2)
   9fcaaa87e08c fs/ufs: Set UFS default maximum bytes per file
   b36188f229d6 sparc: Fix -Wstringop-overflow warning
   80f68f7daeb3 sctp: fix ICMP processing if skb is non-linear
   01426eb3503d tcp: avoid fastopen API to be used on AF_UNSPEC
   a10f1d6ad744 virtio-net: enable TSO/checksum offloads for Q-in-Q vlans
   a05aec67cd6b be2net: Fix offload features for Q-in-Q packets
   b7b05a3b40e8 vlan: Fix tcp checksum offloads in Q-in-Q vlans
   d78ddec4e7fb ipv6: fix out of bound writes in __ip6_append_data()
   acf388f77791 qmi_wwan: add another Lenovo EM74xx device ID
   7144c12e891d ipv6: Check ip6_find_1stfragopt() return value properly.
   e7f05ff30b0c ipv6: Prevent overrun when parsing v6 header options
   3e674773cb5e tcp: eliminate negative reordering in tcp_clean_rtx_queue
   e7b4f3d39f46 sctp: do not inherit ipv6_{mc|ac|fl}_list from parent
   61d62ee79cec tcp: avoid fragmenting peculiar skbs in SACK
   93dcd4929d18 net: fix compile error in skb_orphan_partial()
   7a230cfdf208 netem: fix skb_orphan_partial()
   8404b686a33c s390/qeth: avoid null pointer dereference on OSN
   89b9ca1dd7d0 s390/qeth: unbreak OSM and OSN support
   0b651772fed7 s390/qeth: handle sysfs error during initialization
   4e0ecb773276 dccp/tcp: do not inherit mc_list from parent
   4bd4cfc5210e Linux 4.1.41
   c1dd3f51ad77 mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp
   afeb39160249 xc2028: Fix use-after-free bug properly
   5eef36af5974 iio: proximity: as3935: fix as3935_write
   e8701e0f6768 ipx: call ipxitf_put() in ioctl error path
   709dcf11a353 sched/fair: Initialize throttle_count for new task-groups lazily
   0f665ed5581f sched/fair: Do not announce throttled next buddy in dequeue_task_fair()
   953334de0819 iio: dac: ad7303: fix channel description
   60e2e499e37d mwifiex: pcie: fix cmd_buf use-after-free in remove/reset
   036ab4111761 rtlwifi: rtl8821ae: setup 8812ae RFE according to device type
   df8198865a0f ARM: tegra: paz00: Mark panel regulator as enabled on boot
   fda7c899dd76 fs/xattr.c: zero out memory copied to userspace in getxattr
   273225634fef vfio/type1: Remove locked page accounting workqueue
   358fa411ba9a crypto: algif_aead - Require setkey before accept(2)
   e0b7d5eae185 staging: gdm724x: gdm_mux: fix use-after-free on module unload
   47655216cdf4 drm/ttm: fix use-after-free races in vm fault handling
   46527f8d11fa f2fs: sanity check segment count
   2b674f4ecce8 ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
   4aaeda7f5c4f ipv6: initialize route null entry in addrconf_init()
   1d9afaa5c0a8 rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
   226d200531f4 ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
   14e82f4ce5bb tcp: fix wraparound issue in tcp_lp
   38853e5c3775 tcp: do not underestimate skb->truesize in tcp_trim_head()
   918d8536e126 ALSA: hda - Fix deadlock of controller device lock at unbinding
   1c370084c6f3 staging: emxx_udc: remove incorrect __init annotations
   8602853345b7 staging: wlan-ng: add missing byte order conversion
   bd253cf63929 brcmfmac: Make skb header writable before use
   c4efbc9ce69d brcmfmac: Ensure pointer correctly set if skb data location changes
   62494116045e MIPS: R2-on-R6 MULTU/MADDU/MSUBU emulation bugfix
   48ea252abd40 scsi: mac_scsi: Fix MAC_SCSI=m option when SCSI=m
   ddfc6a095d10 serial: 8250_omap: Fix probe and remove for PM runtime
   2c7105e86e3d USB: serial: io_edgeport: fix descriptor error handling
   00f244650faf USB: serial: mct_u232: fix modem-status error handling
   0379d54281fc USB: serial: quatech2: fix control-message error handling
   e2eaebce9d20 USB: serial: ftdi_sio: fix latency-timer error handling
   e7ccc604153b USB: serial: ark3116: fix open error handling
   b5b985c3a0bd USB: serial: ti_usb_3410_5052: fix control-message error handling
   dc7697bad3f6 USB: serial: io_edgeport: fix epic-descriptor handling
   4e78688b4cb3 USB: serial: ssu100: fix control-message error handling
   0f5e27457f1a USB: serial: digi_acceleport: fix incomplete rx sanity check
   5d7985765271 USB: serial: keyspan_pda: fix receive sanity checks
   9de980a19940 usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   08fd577b4b0f usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   0a9f0af48e3f KVM: nVMX: initialize PML fields in vmcs02
   4736ccc83dfc Revert "KVM: nested VMX: disable perf cpuid reporting"
   7a07dbb8c25c x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
   92e01bd47512 kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
   19d416eaccbb x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
   ae0f7bd8e226 mwifiex: Avoid skipping WEP key deletion for AP
   34390bea46f7 mwifiex: remove redundant dma padding in AMSDU
   a5a09b34dab1 mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
   039747b6ef2d power: supply: bq24190_charger: Install irq_handler_thread() at end of probe()
   f3b0fe6bfcbf power: supply: bq24190_charger: Call set_mode_host() on pm_resume()
   0ba15a289c67 power: supply: bq24190_charger: Fix irq trigger to IRQF_TRIGGER_FALLING
   ab1b642339b3 powerpc/powernv: Fix opal_exit tracepoint opcode
   5d1767ceff1f cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
   16968228efa5 9p: fix a potential acl leak
   c41e1ba87961 net: tg3: avoid uninitialized variable warning
   95660aa2822d mtd: avoid stack overflow in MTD CFI code
   b9e4b97eb9a0 drbd: avoid redefinition of BITS_PER_PAGE
   1de253cbd35b ALSA: ppc/awacs: shut up maybe-uninitialized warning
   db14464180fa timerfd: Protect the might cancel mechanism proper
   11d54db42149 ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram
   77ded373242b ipv6: check raw payload size correctly in ioctl
   0c8f1722d1d6 ip6mr: fix notification device destruction
   7f4ab2ced0a7 netpoll: Check for skb->queue_mapping
   74c4460b6482 sctp: listen on the sock only when it's state is listening or closed
   7d1a0fdd41f8 net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
   6824dcd302fd l2tp: take reference on sessions being dumped
   cc09115fb0b9 net/packet: fix overflow in check for tp_reserve
   fed853407cc2 net/packet: fix overflow in check for tp_frame_nr
   9ba240219c96 l2tp: purge socket queues in the .destruct() callback
   28bad8a652e9 net: phy: handle state correctly in phy_stop_machine
   b39245e33e95 net: neigh: guard against NULL solicit() method
   9ffb20a69946 sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
   1acc886c425e sparc64: kern_addr_valid regression
   5023f12103b9 xen/x86: don't lose event interrupts
   b64d082304fe usb: gadget: f_midi: Fixed a bug when buflen was smaller than wMaxPacketSize
   e7211d1ff579 RDS: Fix the atomicity for congestion map update
   92bf6b466b99 MIPS: Fix crash registers on non-crashing CPUs
   d0388c0e2556 md:raid1: fix a dead loop when read from a WriteMostly disk
   f364181f7aa2 crypto: testmgr - fix out of bound read in __test_aead()
   9800a9a4b17a [media] xc2028: unlock on error in xc2028_set_config()
   c5ef0e9f70d1 f2fs: do more integrity verification for superblock
   5f1cef9e823a ping: implement proper locking
   9c90c093b98f staging/android/ion : fix a race condition in the ion driver
   073e9973d48b vfio/pci: Fix integer overflows, bitmask check
   e21b00fe6cc7 [media] xc2028: avoid use after free
   c8580e3dcd00 tipc: fix random link resets while adding a second bearer
   5eb668f8442e gfs2: avoid uninitialized variable warning
   6013c31fb7e1 hostap: avoid uninitialized variable use in hfa384x_get_rid
   56c3cd096747 tty: nozomi: avoid a harmless gcc warning
   39a978c3e192 tipc: re-enable compensation for socket receive buffer double counting
   0c28e96f0fec block: fix del_gendisk() vs blkdev_ioctl crash
   0c4670d5a6a4 Drivers: hv: balloon: account for gaps in hot add regions
   2cbbeec3e5a7 Drivers: hv: balloon: keep track of where ha_region starts
   5b9ab933c369 x86/mce/AMD: Give a name to MCA bank 3 when accessed with legacy MSRs
   749cab856042 Drivers: hv: vmbus: Reduce the delay between retries in vmbus_post_msg()
   38f9c4b9176a Drivers: hv: don't leak memory in vmbus_establish_gpadl()
   9f4a8ebb750b net: ipv6: check route protocol when deleting routes
   5ce729a895b0 tty/serial: atmel: RS485 half duplex w/DMA: enable RX after TX is done
   9d86a569dbd7 catc: Use heap buffer for memory size test
   4d7726afea37 catc: Combine failure cleanup code in catc_probe()
   61bd90b31be7 rtl8150: Use heap buffers for all register access
   7b69bee71416 pegasus: Use heap buffers for all register access
   0dd8a4702cbc virtio-console: avoid DMA from stack
   eb618d2eb22b mm: Tighten x86 /dev/mem with zeroing reads
   187887b3dbae rtc: tegra: Implement clock handling
   ea215d798bc2 platform/x86: acer-wmi: setup accelerometer when machine has appropriate notify event
   4473dc376c48 [media] dvb-usb-v2: avoid use-after-free
   68e9c254f662 kvm: fix page struct leak in handle_vmon
   f800bcede54d char: lack of bool string made CONFIG_DEVPORT always on
   d1cdf638cde8 char: Drop bogus dependency of DEVPORT on !M68K
   6d1174d8ff9d net/mlx4_core: Fix when to save some qp context flags for dynamic VST to VGT transitions
   8a8878b16056 net/mlx4_en: Fix bad WQE issue
   037948b4f092 usb: hub: Wait for connection to be reestablished after port reset
   dd07486ceba4 net/packet: fix overflow in check for priv area size
   c9d0eb33ba82 MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK
   cd7de3163c8c MIPS: Only change $28 to thread_info if coming from user mode
   aa7ae7fee5d6 mtd: bcm47xxpart: fix parsing first block after aligned TRX
   1669925abfce usb: dwc3: gadget: delay unmap of bounced requests
   aa612d59c08f mm/mempolicy.c: fix error handling in set_mempolicy and mbind.
   00fc586ea741 mlock: fix mlock count can not decrease in race condition
   001360714b85 mm/memory-failure: introduce get_hwpoison_page() for consistent refcount handling
   da7cbd0c660c mm/memory-failure: split thp earlier in memory error handling
   aeb3435b4987 slub/memcg: cure the brainless abuse of sysfs attributes
   afc6ec14b863 blkcg: use blkg_free() in blkcg_init_queue() failure path
   f9fac98fc753 blkcg: always create the blkcg_gq for the root blkcg
   712b6a6dceb2 iscsi-target: Use shash and ahash
   1bd31de39e62 target/iscsi: Use proper SGL accessors for digest computation
   89ff28d0d690 iscsi-target: Fix initial login PDU asynchronous socket close OOPs
   09cb399b6219 target/iscsi: Fix indentation in iscsi_target_start_negotiation()
   68185cb17f7e iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race
   5df474e63ca5 cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
   7e144ca4d77a drm/msm: Expose our reservation object when exporting a dmabuf.
   7e185e0063bc xfs: Fix missed holes in SEEK_HOLE implementation
   59acce815cd6 xfs: fix off-by-one on max nr_pages in xfs_find_get_desired_pgoff()
   b96e5f18eb81 drm/radeon: Unbreak HPD handling for r600+
   81402e4033a7 dmaengine: ep93xx: Don't drain the transfers in terminate_all()
   1a45b842de71 dmaengine: ep93xx: Always start from BASE0
   72a5ed836013 drm/gma500/psb: Actually use VBT mode when it is found
   4f268a106e88 PCI / PM: Avoid resuming more devices during system suspend
   b060ae49eb94 PCI: Add quirk for Intel DH895xCC VF PCI config erratum
   e0bda32c5bc5 ALSA: hda - apply STAC_9200_DELL_M22 quirk for Dell Latitude D430
   9dbe42c5ae46 mmc: sdhci-iproc: suppress spurious interrupt with Multiblock read
   0210333e202b i2c: i2c-tiny-usb: fix buffer not being DMA capable
   8852d28b3f06 x86/mce: Don't use percpu workqueues
   94d42e8811f4 osf_wait4(): fix infoleak
   156c18c7d9ed KVM: X86: Fix read out-of-bounds vulnerability in kvm pio emulation
   e8b80de6d76e watchdog: pcwd_usb: fix NULL-deref at probe
   9ef27e6ccbe0 drivers: char: mem: Check for address space wraparound with mmap()
   682182e924ea serial: core: fix crash in uart_suspend_port
   b614900e0650 tty: Fix GPF in flush_to_ldisc()
   2e279b7d786c tty: fix data race in flush_to_ldisc
   3e984ccc90f8 serial: ifx6x60: fix use-after-free on module unload
   191c13c554e5 serial: ifx6x60: Remove dangerous spi_driver casts
   95a639d15067 Revert "tty_port: register tty ports with serdev bus"
   1520f7e76d45 tty_port: register tty ports with serdev bus
   0095625438b2 usb: musb: tusb6010_omap: Do not reset the other direction's packet size
   d7cc01aa1796 usb: host: xhci-plat: propagate return value of platform_get_irq()
   1458bfaae6c8 USB: xhci: fix lock-inversion problem
   a0334d0ba6ad usb: host: xhci: simplify irq handler return
   8732affeaf37 usb: host: xhci-mem: allocate zeroed Scratchpad Buffer
   2f68fe68ad96 xhci: apply PME_STUCK_QUIRK and MISSING_CAS quirk for Denverton
   e17762c03b3e tracing/kprobes: Enforce kprobes teardown after testing
   78de28c67c8f of: fdt: add missing allocation-failure check
   ac38837324c2 USB: serial: qcserial: add more Lenovo EM74xx device IDs
   2a3835ffa5ed USB: hub: fix non-SS hub-descriptor handling
   c5922c99f193 USB: hub: fix SS hub-descriptor handling
   de90980c52da USB: iowarrior: fix info ioctl on big-endian hosts
   46b3a375a926 uwb: fix device quirk on big-endian hosts
   8ace7b038603 USB: core: replace %p with %pK
   083112faaf11 USB: ene_usb6250: fix DMA to the stack
   a3670852d2fb USB: serial: ftdi_sio: add Olimex ARM-USB-TINY(H) PIDs
   d0e929a4e63f char: lp: fix possible integer overflow in lp_setup()
   da6d8dbb5da7 dm bufio: make the parameter "retain_bytes" unsigned long
   b9805634c6de genirq: Introduce struct irq_common_data to host shared irq data
   073bc325fdc4 usb: dwc3: make dwc3_debugfs_init return value be void
   83204fd38a02 kvm arm: Move fake PGD handling to arch specific files
   060e39373d8a ARM: KVM: Remove pointless void pointer cast
   0bef2bd6fa64 dmaengine: usb-dmac: Fix DMAOR AE bit definition
   873bdf5cd492 dm space map disk: fix some book keeping in the disk space map
   a42b975f484e dm thin metadata: call precommit before saving the roots
   2cd394cd1046 USB: serial: io_ti: fix div-by-zero in set_termios
   a1dfb5701675 USB: serial: mct_u232: fix big-endian baud-rate handling
   391f2e944624 USB: serial: ftdi_sio: fix setting latency for unprivileged users
   048a9813c3e5 usb: serial: option: add Telit ME910 support
   092c6f1e1630 ARM: dts: imx6sx-sdb: Remove OPP override
   ba640473d7c9 ARM: dts: imx6sx-sdb: Add 198MHz operational point
   4bb916c171fa cgroup: use bitmask to filter for_each_subsys
   034dd596324d sched, cgroup: reorganize threadgroup locking
   0e521eabd7a3 pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes
   57cd95a5dcbc net: irda: irda-usb: fix firmware name on big-endian hosts
   38f915577c6e s390/cputime: fix incorrect system time
   98442999b967 dccp: fix freeing skb too early for IPV6_RECVPKTINFO
   56d847e3ef94 Linux 4.1.40
   5c564705d3f0 udp: properly support MSG_PEEK with truncated buffers
   f97e5ec81364 nfsd: encoders mustn't use unitialized values in error cases
   a7b4cdeb22f5 arm64: uaccess: ensure extension of access_ok() addr
   ed3ffd7c7fb9 arm64: documentation: document tagged pointer stack constraints
   f8a4b26e261d target/fileio: Fix zero-length READ and WRITE handling
   9d68722df885 CIFS: add misssing SFM mapping for doublequote
   14f24a466cd1 iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
   3aa99b61c099 target: Fix compare_and_write_callback handling for non GOOD status
   0c5623052d48 of: fix sparse warning in of_pci_range_parser_one
   3e9e9c708f10 ceph: fix memory leak in __ceph_setxattr()
   009a83913e29 SMB3: Work around mount failure when using SMB3 dialect to Macs
   ffd28faab493 CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
   ae5175c8dba4 fs/block_dev: always invalidate cleancache in invalidate_bdev()
   e895a1054e25 um: Fix PTRACE_POKEUSER on x86_64
   327d78550aea metag/uaccess: Check access_ok in strncpy_from_user
   31390049dfd2 Set unicode flag on cifs echo request to avoid Mac error
   3ea80afb2dce metag/uaccess: Fix access_ok()
   17535d260b75 target: Fix VERIFY and WRITE VERIFY command parsing
   edd3ad16ead4 dm bufio: check new buffer allocation watermark every 30 seconds
   bbe86592f9c3 dm bufio: avoid a possible ABBA deadlock
   9575253a91e6 Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
   ca38d087f1b0 ext4: evict inline data when writing to memory map
   3a9700b0709e proc: Fix unbalanced hard link numbers
   2279c8b917f7 dm ioctl: prevent stack leak in dm ioctl call
   5afff19d82af nfsd: stricter decoding of write-like NFSv2/v3 ops
   24c3569dd195 nfsd4: minor NFSv2/v3 write decoding cleanup
   c9bb9f02b048 nfsd: check for oversized NFSv2/v3 arguments
   6a5e61496c48 usb: Make sure usb/phy/of gets built-in
   372323131cd0 ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
   b583cc935477 Input: i8042 - add Clevo P650RS to the i8042 reset list
   56e191701252 dm era: save spacemap metadata root after the pre-commit
   6a887571cad2 dm btree: fix for dm_btree_find_lowest_key()
   2ad7696baa06 powerpc/pseries: Fix of_node_put() underflow during DLPAR remove
   e756dc9e7bfb IB/mlx4: Fix ib device initialization error flow
   50f63ac752b8 x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
   51cad4572c02 ring-buffer: Have ring_buffer_iter_empty() return true when empty
   2933c0ba9193 ACPI / power: Avoid maybe-uninitialized warning
   f7f44f588722 tracing: Allocate the snapshot buffer before enabling probe
   73270592d94b usb: host: xhci: print correct command ring address
   5ba52c08d1d1 [media] ttusb2: limit messages to buffer size
   e1dfe98dda6a USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
   00461b9f4817 PCI: Freeze PME scan before suspending devices
   57b8e3a6524b regulator: tps65023: Fix inverted core enable logic.
   1ff629068e6e [media] zr364xx: enforce minimum size when reading header
   a0f82864854a KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings
   86d961e25888 KEYS: Change the name of the dead type to ".dead" to prevent user access
   4ef48e49b1c5 KEYS: Disallow keyrings beginning with '.' to be joined as session keyrings
   369cd3933506 powerpc/kprobe: Fix oops when kprobed on 'stdu' instruction
   199ea04d7d01 cifs: Do not send echoes before Negotiate is complete
   b291f2ed870a p9_client_readdir() fix
   98ae917fd128 ARM: dts: at91: sama5d3_xplained: not all ADC channels are available
   429957317eac ARM: dts: at91: sama5d3_xplained: fix ADC vref
   c7f3669caa0b zram: do not use copy_page with non-page aligned address
   ac87ea2ff7d7 zram: fix operator precedence to get offset
   7bee1c58a629 ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
   93dfafeefbb6 MIPS: KGDB: Use kernel context for sleeping threads
   22afb4fc42e4 PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
   1ecc90c7e6b4 MIPS: Avoid BUG warning in arch_check_elf
   396f0fe4cc1b s390/mm: fix CMMA vs KSM vs others
   fab0b034bd91 serial: omap: suspend device on probe errors
   0ea0b8f3adbe serial: omap: fix runtime-pm handling on unbind
   113cc52cf9fe CIFS: store results of cifs_reopen_file to avoid infinite wait
   5c6d0e841556 CIFS: remove bad_network_name flag
   417dc40ebaf2 Input: xpad - add support for Razer Wildcat gamepad
   3a5df486f2e1 x86/vdso: Plug race between mapping and ELF header setup
   7ec71e0bb16d md: update slab_cache before releasing new stripes when stripes resizing
   2da764d4c67b padata: free correct variable
   ce0e21e44f97 crypto: ahash - Fix EINPROGRESS notification callback
   4ee5f3baad19 [media] cx231xx-audio: fix NULL-deref at probe
   8b6c66045c33 [media] cx231xx-audio: fix init error path
   5a4e9221b31b [media] cx231xx-cards: fix NULL-deref at probe
   a44bcf6b4c54 [media] usbvision: fix NULL-deref at probe
   c7bcf82e59ea [media] dib0700: fix NULL-deref at probe
   27a0c2317453 serial: samsung: Use right device for DMA-mapping calls
   5eb0c97fc835 sysfs: be careful of error returns from ops->show()
   dad2a28d46e7 staging: android: ashmem: lseek failed due to no FMODE_LSEEK.
   4ac302f8832f usb: misc: add missing continue in switch
   34a2eb59fc13 ptrace: fix PTRACE_LISTEN race corrupting task->state
   8624aeaec37d scsi: sd: Fix capacity calculation with 32-bit sector_t
   9535300dd7e2 scsi: sr: Sanity check returned mode data
   21ebc869930a ipmi: Fix kernel panic at ipmi_ssif_thread()
   82bfc1d9bc5d xen, fbfront: fix connecting to backend
   8dd5c1281e98 Reset TreeId to zero on SMB2 TREE_CONNECT
   3707e32c8fcc [media] s5p-mfc: Fix unbalanced call to clock management
   01ea8f2396af [media] gspca: konica: add missing endpoint sanity check
   206374212c28 IB/IPoIB: ibX: failed to create mcg debug file
   f585e26312b5 metag/usercopy: Add missing fixups
   c31ac9be1dc2 metag/usercopy: Fix src fixup in from user rapf loops
   09e3cca03b29 metag/usercopy: Set flags before ADDZ
   7c3a804c24cc metag/usercopy: Zero rest of buffer from copy_from_user
   f58b27f0ce36 metag/usercopy: Add early abort to copy_to_user
   fde1ed807fc6 metag/usercopy: Fix alignment error checking
   59465f2b425d metag/usercopy: Drop unused macros
   8da28861bfab ring-buffer: Fix return value check in test_ringbuffer()
   4cc0a6f14611 crypto: caam - fix RNG deinstantiation error checking
   c94b3a0d7a27 powerpc/mm: Add missing global TLB invalidate if cxl is active
   ca4f5edccb94 ath9k_htc: fix NULL-deref at probe
   783494a2cf45 powerpc: Don't try to fix up misaligned load-with-reservation instructions
   ea42f85ce0a6 kvm: arm/arm64: Fix locking for kvm_free_stage2_pgd
   407526d5f5cc tpm: add sleep only for retry in i2c_nuvoton_write_status()
   779a96681b4b tpm_crb: check for bad response size
   331f718a9746 tpm: msleep() delays - replace with usleep_range() in i2c nuvoton driver
   e43c2447f8ed iscsi-target: Drop work-around for legacy GlobalSAN initiator
   d2762e9848bb cdc-acm: fix possible invalid access when processing notification
   4d8a7de65c82 mm, hugetlb: use pte_present() instead of pmd_present() in follow_huge_pmd()
   5c9eddc3db73 ALSA: hda - fix a problem for lineout on a Dell AIO machine
   d91a91d8f6ba drm/vmwgfx: fix integer overflow in vmw_surface_define_ioctl()
   6431059d9e0f drm/vmwgfx: Remove getparam error message
   b31c507e2c3b drm/vmwgfx: avoid calling vzalloc with a 0 size in vmw_get_cap_3d_ioctl()
   13b52a46a677 drm/vmwgfx: NULL pointer dereference in vmw_surface_define_ioctl()
   55f1d24ac1ab drm/vmwgfx: Type-check lookups of fence objects
   18bcea4e8d2e iscsi-target: Fix TMR reference leak during session shutdown
   bfa5d70414f2 ubi/upd: Always flush after prepared for an update
   c127ce428b73 s390/uaccess: get_user() should zero on failure (again)
   0d2f98e74d4f USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously
   6842ff6056ea ACPI: Fix incompatibility with mcount-based function graph tracing
   e5dcf4e37e91 ACPI: Do not create a platform_device for IOAPIC/IOxAPIC
   e2b3e7de14ba virtio_balloon: init 1st buffer in stats vq
   a205b2e5a2a0 powerpc: Disable HFSCR[TM] if TM is not supported
   f8889a244545 drm/radeon: Override fpfn for all VRAM placements in radeon_evict_flags
   848f94592710 USB: fix linked-list corruption in rh_call_control()
   3492352e1f34 ALSA: seq: Fix race during FIFO resize
   55e9d9474816 [media] mceusb: fix NULL-deref at probe
   91848cdb7ae7 xen/acpi: upload PM state from init-domain to Xen
   970a7a72b32d pinctrl: qcom: Don't clear status bit on irq_unmask
   fbb9dd5123de mmc: sdhci: Do not disable interrupts while waiting for clock
   a2f7beb42427 usb: hub: Do not attempt to autosuspend disconnected devices
   041fad219db7 usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval
   d4cbbe1460c4 s390/decompressor: fix initrd corruption caused by bss clear
   f1c9472e3dce ALSA: seq: Fix racy cell insertions during snd_seq_pool_done()
   d57b1afab5a8 scsi: libsas: fix ata xfer length
   972d4b4f2c7b arm/arm64: KVM: Take mmap_sem in kvm_arch_prepare_memory_region
   474d78d49b8b arm/arm64: KVM: Take mmap_sem in stage2_unmap_vm
   d59cf3fa94db USB: serial: qcserial: add Dell DW5811e
   6338e370099a x86/perf: Fix CR4.PCE propagation to use active_mm instead of mm
   1b9537d72610 tty: pty: Fix ldisc flush after userspace become aware of the data already
   44705deddafe usb: hub: Fix crash after failure to read BOS descriptor
   09b3048b2880 ACM gadget: fix endianness in notifications
   861b5c18bb14 scsi: sg: check length passed to SG_NEXT_CMD_LEN
   7268eabd5b5f Input: sur40 - validate number of endpoints before using them
   84a91ce02105 Input: kbtab - validate number of endpoints before using them
   f1ba9cf02776 Input: hanwang - validate number of endpoints before using them
   36d425fcc164 Input: yealink - validate number of endpoints before using them
   79cae616c940 Input: ims-pcu - validate number of endpoints before using them
   6585effe7d22 Input: cm109 - validate number of endpoints before using them
   76d981017361 Input: iforce - validate number of endpoints before using them
   edf3bd9562a9 mmc: ushc: fix NULL-deref at probe
   93d21fdc17e5 drm/radeon: reinstate oland workaround for sclk
   71a1c9d004ed perf/core: Fix event inheritance on fork()
   4da3251aac57 cpufreq: Fix and clean up show_cpuinfo_cur_freq()
   85fa60732c80 drm/radeon/si: add dpm quirk for Oland
   772653bea403 ext4: mark inode dirty after converting inline directory
   e8959ed1fd07 futex: Add missing error handling to FUTEX_REQUEUE_PI
   33fcd6ecaf0f futex: Fix potential use-after-free in FUTEX_REQUEUE_PI
   56d75a164c87 ARM: at91: pm: cpu_idle: switch DDR to power-down mode
   ce6df3d36d07 usb: musb: cppi41: don't check early-TX-interrupt for Isoch transfer
   ed4b286d254b usb-core: Add LINEAR_FRAME_INTR_BINTERVAL USB quirk
   599dc7743f74 uwb: i1480-dfu: fix NULL-deref at probe
   50c372bd694d uwb: hwa-rc: fix NULL-deref at probe
   7896de4f8b00 USB: wusbcore: fix NULL-deref at probe
   0b3718017641 USB: uss720: fix NULL-deref at probe
   aee563c5ffb5 USB: lvtest: fix NULL-deref at probe
   a2574cf7887d USB: idmouse: fix NULL-deref at probe
   13cd0c011e73 isdn/gigaset: fix NULL-deref at probe
   027a48c195e1 fat: fix using uninitialized fields of fat_inode/fsinfo_inode
   c4743e805d43 md/raid1/10: fix potential deadlock
   6eea126f9d6d usb: host: xhci-plat: Fix timeout on removal of hot pluggable xhci controllers
   92b280212adf USB: iowarrior: fix NULL-deref in write
   c4b516612312 USB: iowarrior: fix NULL-deref at probe
   4db7a852b417 ath9k_htc: Add support of AirTies 1eda:2315 AR9271 device
   394e5f4a60c1 USB: serial: safe_serial: fix information leak in completion handler
   e0f57e1a406c USB: serial: io_ti: fix information leak in completion handler
   5dfb04937689 USB: serial: omninet: fix reference leaks at open
   6aed13b2c40e USB: serial: io_ti: fix NULL-deref in interrupt callback
   92fbcbfe994f MIPS: ralink: Fix typos in rt3883 pinctrl
   7ba49ba6dd09 MIPS: End spinlocks with .insn
   d7f84ae03ff3 MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels
   248e94265dd0 target: Fix VERIFY_16 handling in sbc_parse_cdb
   452c3c927325 target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export
   076df4623c10 scsi: lpfc: Add shutdown method for kexec
   e04d8b65f412 powerpc/boot: Fix zImage TOC alignment
   5c8f767c657b serial: samsung: Continue to work if DMA request fails
   46df5258a521 Input: i8042 - add noloop quirk for Dell Embedded Box PC 3000
   9d3698c9b85c ima: accept previously set IMA_NEW_FILE
   86525f9f4474 percpu: acquire pcpu_lock when updating pcpu_nr_empty_pop_pages
   42ece5f50098 usb: gadget: dummy_hcd: clear usb_gadget region before registration
   7ccd5568eab8 USB: serial: digi_acceleport: fix OOB-event processing
   6842c8457292 staging: comedi: jr3_pci: cope with jiffies wraparound
   29e34e47fadf staging: comedi: jr3_pci: fix possible null pointer dereference
   c48408dff998 usb: gadget: function: f_fs: pass companion descriptor along
   757895c336d6 usb: dwc3: gadget: make Set Endpoint Configuration macros safe
   2e9d3a921000 tracing: Add #undef to fix compile error
   bd38086c6b2a can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
   99d3d49197e1 powerpc: Emulation support for load/store instructions on LE
   381785176cc1 KVM: s390: Fix guest migration for huge guests resulting in panic
   7caf29dc038c xtensa: move parse_tag_fdt out of #ifdef CONFIG_BLK_DEV_INITRD
   14abcbaa3f0d scsi: libiscsi: add lock around task lists to fix list corruption regression
   28d5d8b2db22 ALSA: seq: Fix link corruption by event error handling
   b78e49c3057a ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
   d19f6529f1c1 ALSA: timer: Reject user params with too small ticks
   3d35f4422582 drm/ast: Call open_key before enable_mmio in POST code
   2188c2b367c6 drm/ast: Fix test for VGA enabled
   e8b120e25fbc drm/ast: Fix AST2400 POST failure without BMC FW or VBIOS
   c9cf983337a0 ipc/shm: Fix shmat mmap nil-page protection
   1827f7e6062b mac80211: flush delayed work when entering suspend
   0dad072cfc1d ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
   e5ee49ad28a0 mm: do not access page->mapping directly on page_endio
   21a6489deda1 mm: vmpressure: fix sending wrong events on underflow
   091e3373d97f mm/page_alloc: fix nodes for reclaim in fast path
   7ec8bd575e7b s390: TASK_SIZE for kernel threads
   01592a4b8ba8 NFSv4: fix getacl ERANGE for some ACL buffer sizes
   bb9e115a5e85 NFSv4: fix getacl head length estimation
   05365e1fdea9 scsi: aacraid: Reorder Adapter status check
   f90e6f9a26ba rdma_cm: fail iwarp accepts w/o connection params
   a60c9ff335a1 IB/srp: Avoid that duplicate responses trigger a kernel bug
   3cac36b0423b MIPS: BCM47XX: Fix button inversion for Asus WL-500W
   512cbc94607b MIPS: OCTEON: Fix copy_from_user fault handling for large buffers
   9b4ed3674858 MIPS: Fix special case in 64 bit IP checksumming.
   85050844c0b9 dm cache: fix corruption seen when using cache > 2TB
   c0601ca14e10 Bluetooth: Add another AR3012 04ca:3018 device
   da1324e7080d regulator: Fix regulator_summary for deviceless consumers
   01f9734353be ALSA: hda - fix Lewisburg audio issue
   b57d6c457569 goldfish: Sanitize the broken interrupt handler
   c1dbd97d8a2a x86/platform/goldfish: Prevent unconditional loading
   58cec2bdba91 ath9k: use correct OTP register offsets for the AR9340 and AR9550
   9aabd8dbacd8 powerpc/xmon: Fix data-breakpoint
   c2fd678ea234 nlm: Ensure callback code also checks that the files match
   e53554da9daf drivers: hv: Turn off write permission on the hypercall page
   5fdf59513019 USB: serial: mos7840: fix another NULL-deref at open
   61f3d2296678 NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
   95f495896ad8 drm/atomic: fix an error code in mode_fixup()
   04df6689f870 ktest: Fix child exit code processing
   a52f3859b78c ath9k: fix race condition in enabling/disabling IRQs
   db5051f86016 rtlwifi: rtl8192c-common: Fix "BUG: KASAN:
   f59f883503b7 USB: serial: ftdi_sio: fix line-status over-reporting
   4a34581ed021 KVM: s390: Disable dirty log retrieval for UCONTROL guests
   6631e70a42ff USB: serial: cp210x: add new IDs for GE Bx50v3 boards
   31ac2f17fd85 serial: 8250_pci: Add MKS Tenta SCOM-0800 and SCOM-0801 cards
   4c47ad359cc8 jbd2: don't leak modified metadata buffers on an aborted journal
   2b24a8367068 s390/qdio: clear DSCI prior to scanning multiple input queues
   36e4f568b8f1 s390/dcssblk: fix device size calculation in dcssblk_direct_access()
   5e6ef5ef6eaf mnt: Tuck mounts under others instead of creating shadow/side mounts.
   54195f1a32ee rtc: sun6i: Switch to the external oscillator
   cdb2a7f22913 rtc: sun6i: Add some locking
   af1af02352ee USB: serial: digi_acceleport: fix OOB data sanity check
   adb1da2a98a2 [media] media: fix dm1105.c build error
   c845c73b8396 bcma: use (get|put)_device when probing/removing device driver
   e1d467993c45 [media] am437x-vpfe: always assign bpp variable
   c53e17083e91 arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2
   75f37dab088e ext4: trim allocation requests to group size
   07b79ed1e82c drm/radeon: handle vfct with multiple vbios images
   1efa8e2ac68b drm/ttm: Make sure BOs being swapped out are cacheable
   a99df0713f43 usb: gadget: udc: fsl: Add missing complete function.
   8c06df5655c7 USB: serial: ftdi_sio: fix extreme low-latency setting
   de143f74af3e w1: don't leak refcount on slave attach failure in w1_attach_slave_device()
   271ce5038fbc w1: ds2490: USB transfer buffers need to be DMAable
   57389faf841f ARM: dts: at91: Enable DMA on sama5d4_xplained console
   61b067fb433a staging: rtl: fix possible NULL pointer dereference
   434c09afa6c9 USB: serial: opticon: fix CTS retrieval at open
   700b2315c254 USB: serial: spcp8x5: fix modem-status handling
   da3a3becb7a8 USB: serial: ftdi_sio: fix modem-status error handling
   270ffbd14d81 USB: serial: ark3116: fix register-accessor error handling
   131d81690f18 IB/ipoib: Fix deadlock between rmmod and set_mode
   24104f6ae3b4 RDMA/core: Fix incorrect structure packing for booleans
   fc47912f44a7 ath5k: drop bogus warning on drv_set_key with unsupported cipher
   c2e65cde1bd7 tty: serial: msm: Fix module autoload
   ccb2e5cdaffa hv: init percpu_list in hv_synic_alloc()
   fbb6950ea08a samples/seccomp: fix 64-bit comparison macros
   33b9ac915dba scsi: storvsc: properly handle SRB_ERROR when sense message is present
   f0cd3119dcd0 scsi: storvsc: use tagged SRB requests if supported by the device
   88e4685b51d3 MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps
   a6c4b18bdb3a MIPS: Calculate microMIPS ra properly when unwinding the stack
   339da589697a MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions
   4556bdd21af3 MIPS: Fix get_frame_info() handling of microMIPS function size
   7c6a61c004ad MIPS: Prevent unaligned accesses during stack unwinding
   39fffbc9b371 MIPS: Clear ISA bit correctly in get_frame_info()
   e9ef2a32a2ec drm/i915/dsi: Do not clear DPOUNIT_CLOCK_GATE_DISABLE from vlv_init_display_clock_gating

(From OE-Core rev: 976c260bfd61e1346c1ef842567eee80a7b7ffca)

(From OE-Core rev: 9699ffe52d65ba426c01fd27697ab2789e29e19c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Bruce Ashfield
197a32fd1b kernel-yocto: configuration updates: x86 features
Integrating the following kernel configuration changes:

 f7fbd4185e5 features/qat: additional configurations, CONFIG_CRYPTO_RSA and CONFIG_CRYPTO_DH
 50c62581d283 features/netfilter: additional configurations
 d67e4ed89556 features/x2apic: add X2APIC feature
 7889b28c5300 features/vfio: add VFIO feature
 dc4ec998757e features/numa: Add NUMA feature
 c88c18de4ca8 features/mtd: add MTD feature
 9035571d32ee features/iommu: add IOMMU feature
 6f3b16136f55 features/intel-txt: add intel-txt feature
 4936a5f508f0 common-pc-wifi: Enable SDIO for BroadCom BRCMFMAC

(From OE-Core rev: 59d294f119dc91d9ec47b0a8381d3addc86a6e3a)

(From OE-Core rev: 5d92cf0618e863472dc3ac54c89dd2f469733a2b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Andre McCurdy
b1ffdf653c terminal.py: fix devshell with mate-terminal
Without the --disable-factory option, mate-terminal fails to start
with the error:

 | There was an error creating the child process for this terminal
 | Failed to execute child process "oe-gnome-terminal-phonehome" (No such file or directory)

The --disable-factory option was removed by:

  http://git.openembedded.org/openembedded-core/commit/?id=e8dca725ed8211a874472300a3ed50e494039ab9

apparently based on an assuption that mate-terminal continues to
track gnome-terminal since forking from it. However, based on the
mate-terminal man page in the upstream master branch, the option is
still supported:

  https://github.com/mate-desktop/mate-terminal

(From OE-Core rev: c7f769bd400756d180abf80dbfdf4ed2703fab60)

(From OE-Core rev: 764159600a202d1f0c2f0217c7bf7b55348a2f5d)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Andre McCurdy
452164e7d6 terminal.py: avoid 100% cpu while waiting for phonehome pid file
Some of the less common terminal types haven't been tested with the
recent phonehome pid file changes and there may be error cases where
the pid file is never created.

(From OE-Core rev: 6b0cf568e9fbe28fb6e7b17f4ad92348d33e2bf4)

(From OE-Core rev: 9aa06b3116c095a512be1d1f5da84ffaedf845dc)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Leonardo Sandoval
0f81fcb600 terminal: wait for terminal task to finish before procedding
This commit generalizes the work done in [1] and [2], both fixing
issues on several areas (the former with -c patch and gnome-terminal and
the latter with -c menuconfig and several terminals, including
gnome-terminal and tmux). The main idea is to get the PID
from the new spawned terminal and loop there until finished.

[1] 76e8ab47c9: terminal: Fix gnome-terminal to work with recent versions
[2] 7d02ea283b: cml1.bbclass: wait until menuconfig terminal finishes

(From OE-Core rev: 55707401d5bfb1f7686c273fc2d0db89df206395)

(From OE-Core rev: 3987dddff58410f1b2535ceb1f48aebbbd987889)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Zhang Xiao
08f8bf817b bash: memleak bug fix for builtin command read
Built in command "read" with "-e" use Readline to obtain the line
in an interactive shell. In this process, a string "rlbuf" is
just allocated without free operation thus cause memory leak.

This patch had been submitted to upstream:
http://lists.gnu.org/archive/html/bug-bash/2017-02/msg00061.html

(From OE-Core rev: a2b278a6eaa9e9b48d858e3be6712267c0122598)

(From OE-Core rev: 571e53024b4f924e50cf6a478ccc8d6f097816bb)

Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
fixup for 4.3
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:59 +01:00
Hongxu Jia
d2b60efe20 libxml2: Fix CVE-2017-8872
fix global-buffer-overflow in htmlParseTryOrFinish (HTMLparser.c:5403)

https://bugzilla.gnome.org/show_bug.cgi?id=775200

Here is the reproduce steps on ubuntu 16.04, use clang with "-fsanitize=address"
...
export CC="clang"
export CFLAGS="-fsanitize=address"

./configure --disable-shared

make clean all -j

wget https://bugzilla.gnome.org/attachment.cgi?id=340871 -O poc

./xmllint --html --push poc
==2785==ERROR: AddressSanitizer: global-buffer-overflow on address
0x000000a0de21 at pc 0x0000006a7f6e bp 0x7ffdfe940c10 sp 0x7ffdfe940c08
READ of size 1 at 0x000000a0de21 thread T0    #0 0x6a7f6d
(/home/jiahongxu/Downloads/libxml2-2.9.4/xmllint+0x6a7f6d)    #1 0x6a7356
(/home/jiahongxu/Downloads/libxml2-2.9.4/xmllint+0x6a7356)    #2 0x4f4504
(/home/jiahongxu/Downloads/libxml2-2.9.4/xmllint+0x4f4504)    #3 0x4f045e
(/home/jiahongxu/Downloads/libxml2-2.9.4/xmllint+0x4f045e)    #4 0x7f81977d682f
(/lib/x86_64-linux-gnu/libc.so.6+0x2082f)    #5 0x419ad8
(/home/jiahongxu/Downloads/libxml2-2.9.4/xmllint+0x419ad8)
...

(From OE-Core rev: a615b0825927a09a0aa8312d131c9acbaef8956d)

(From OE-Core rev: 1c9d891886f35e6cc4485f244180d7d0ffa82cd3)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Andrej Valek
6c657b8441 libxml2: Revert "Add an XML_PARSE_NOXXE flag to block all entities loading even local"
The new flag doesn't work and the change even broke the XML_PARSE_NONET option.

(From OE-Core rev: 8b586f60778579ee2c9adae429128a07e8437553)

(From OE-Core rev: d2b1486bf8773d3eef36c5e77b82e70c88d9c682)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Yi Zhao
a602b9f748 taglib: Security fix CVE-2017-12678
CVE-2017-12678: In TagLib 1.11.1, the rebuildAggregateFrames function in
id3v2framefactory.cpp has a pointer to cast vulnerability, which allows
remote attackers to cause a denial of service or possibly have
unspecified other impact via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-12678

Patch from:
eb9ded1206

(From OE-Core rev: 24ac12ecb19efc7c131c9711ba32e298ba860eb7)

(From OE-Core rev: bb90e08fbcbc7c60731aacdc4b82163507d9afdc)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Yi Zhao
02b1cc0aef e2fsprogs: fix ptest script
* Fix hardcoded path for ptest script which would cause failure on
  mulitilib:
  ls: cannot access '/usr/lib/e2fsprogs/ptest/test/[a-zA-Z]_*': No such file or directory
  ./test_script: line 54: /usr/lib/e2fsprogs/ptest/test/test_post: No such file or directory

* Add missing '$' for shell variable reference

(From OE-Core rev: 82d244a9225bd1fa512e696aae917febe051fcf9)

(From OE-Core rev: d2fc87e074ed41d265667383827c36ceb0302693)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Joe Slater
e6533d1d9e ghostscript: CVE-2017-9727, -9835, -11714
CVE-2017-9727: make bounds check in gx_ttfReader__Read more robust
CVE-2017-9835: bounds check the array allocations methods
CVE-2017-11714: prevent trying to reloc a freed object

(From OE-Core rev: 2eae91f9fa1cfdd3f0e6111956c8f193fd0db69f)

(From OE-Core rev: 1c9e3318791e36d6bc851192a7640ee639f61f23)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Joe Slater
bbb081544c ghostscript: fix several CVEs by adding bounds checking
CVE-2017-9611
CVE-2017-9612
CVE-2017-9739
CVE-2017-9726

(From OE-Core rev: 3e5d80c84f4c141bc3f3193d1db899b0e56993cf)

(From OE-Core rev: 7fe1e9d46954f082af4debfa63cd982558dbf965)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Yi Zhao
f77fdc9f9f tiff: Security fixes
Fix CVE-2017-9147, CVE-2017-9936, CVE-2017-10668, CVE-2017-11335

References:
https://nvd.nist.gov/vuln/detail/CVE-2017-9147
https://nvd.nist.gov/vuln/detail/CVE-2017-9936
https://nvd.nist.gov/vuln/detail/CVE-2017-10668
https://nvd.nist.gov/vuln/detail/CVE-2017-11335

Patches from:
CVE-2017-9147:
4d4fa0b68a
CVE-2017-9936:
fe8d716595
CVE-2017-10688:
6173a57d39
CVE-2017-11355:
69bfeec247

(From OE-Core rev: 5c89539edb17d01ffe82a1b2e7d092816003ecf3)

(From OE-Core rev: eaf72d105bed54e332e2e5c0c5c0a0087ecd91dd)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

minor fixes to get to apply

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Yue Tao
cb4fd41504 libtasn1: CVE-2017-10790
The _asn1_check_identifier function in GNU Libtasn1 through 4.12 causes
a NULL pointer dereference and crash when reading crafted input that
triggers assignment of a NULL value within an asn1_node structure. It
may lead to a remote denial of service attack.

References:
https://nvd.nist.gov/vuln/detail/CVE-2017-10790
http://git.savannah.gnu.org/gitweb/?p=libtasn1.git;a=commit;
h=d8d805e1f2e6799bb2dff4871a8598dc83088a39

(From OE-Core rev: 6176151625c971de031e14c97601ffd75a29772f)

(From OE-Core rev: 649f78102222ec156d490968c13d3222379a1956)

Signed-off-by: Yue Tao <Yue.Tao@windriver.com>
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Jackie Huang
df8c138772 libsndfile1: Fix CVE-2017-8363
Backport the patch to fix CVE-2017-8363:

The flac_buffer_copy function in flac.c in libsndfile 1.0.28 allows
remote attackers to cause a denial of service (heap-based buffer
over-read and application crash) via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-8363

(From OE-Core rev: 9cc9956c5ed09f9016cb23bd763652e5ab55f3cd)

(From OE-Core rev: 201fa8f6a10469886db6d48c3a3e91712382e561)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Jackie Huang
2cc6f0ba68 libsndfile1: Fix CVE-2017-8362
Backport the patch to fix CVE-2017-8362:

The flac_buffer_copy function in flac.c in libsndfile 1.0.28 allows
remote attackers to cause a denial of service (invalid read and
application crash) via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-8362

(From OE-Core rev: 0c8da3f6f85962196f2ad54fffd839239f5c2274)

(From OE-Core rev: eec5e5ce04cfbd1e41e54be31afee72ecc9ec5dd)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
with minor changes

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Jackie Huang
7ec1ed5c80 libsndfile1: Fix CVE-2017-8361 and CVE-2017-8365
Backport the patch to fix two CVEs:

CVE-2017-8361:
The flac_buffer_copy function in flac.c in libsndfile 1.0.28 allows
remote attackers to cause a denial of service (buffer overflow and
application crash) or possibly have unspecified other impact via a
crafted audio file.

CVE-2017-8365:
The i2les_array function in pcm.c in libsndfile 1.0.28 allows remote
attackers to cause a denial of service (buffer over-read and application
crash) via a crafted audio file.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-8361
https://nvd.nist.gov/vuln/detail/CVE-2017-8365

(From OE-Core rev: d92877ade8fd4dd9b548c6b664bf4357a1f9428a)

(From OE-Core rev: a23241c1e10c706754c19d7f69fe7c6cbac3732e)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Fan Xin
ce45b35a67 libsndfile1: Fix CVE-2017-6892
Backport upstream patch to fix CVE-2017-6892.

CVE: CVE-2017-6892

(From OE-Core rev: cc9b8d0afe64b83f585843f3aff1c077f69fd656)

(From OE-Core rev: eed7d052dc053732e2d485dcc7e551b6754c4576)

Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Yi Zhao
108f9a2666 wget: Security fix CVE-2017-6508
CVE-2017-6508: CRLF injection vulnerability in the url_parse function in
url.c in Wget through 1.19.1 allows remote attackers to inject arbitrary
HTTP headers via CRLF sequences in the host subcomponent of a URL.

External References:
https://nvd.nist.gov/vuln/detail/CVE-2017-6508

Patch from:
http://git.savannah.gnu.org/cgit/wget.git/commit/?id=4d729e322fae359a1aefaafec1144764a54e8ad4

(From OE-Core rev: 28404157e07a915d1445166df566c8838f2cce57)

(From OE-Core rev: 03fbdba18b767be95c5fa13d72b52c16f8a77b52)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Jackie Huang
e99089ce24 xserver-xorg: Fix CVE-2017-10971
Backport 3 patches to fix CVE-2017-10971:

In the X.Org X server before 2017-06-19, a user authenticated to an X
Session could crash or execute code in the context of the X Server by
exploiting a stack overflow in the endianness conversion of X Events.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2017-10971

(From OE-Core rev: 20428f660f2c046c63bbf63c4e4af95dac9f2b3d)

(From OE-Core rev: 8c42a9508bded870d1ac018e2cfa129772983c52)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Joe Slater
c63480c960 ruby: fix CVE-2017-922{6-9}
CVE-2017-9226 : check too big code point value for single byte
CVE-2017-9227 : access to invalid address by reg->dmin value
CVE-2017-9228 : invalid state(CCS_VALUE) in parse_char_class()
CVE-2017-9229 : access to invalid address by reg->dmax value

(From OE-Core rev: f15f01edbaa431829a50053d07ed6d6b333584c7)

(From OE-Core rev: 4077e088b6e750c4143a59c5d89258ab682ed96b)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Joe Slater
62e244d713 ruby: fix CVE-2017-9224
Use DATA_ENSURE(1) before access.

(From OE-Core rev: 9db907a0bd331c47c4882b82f9f1d2a7ef1f6d1f)

(From OE-Core rev: 7ba25f0d8d95ece5f5d56ace5b1e9c8c797efbc0)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Fixed up to get to apply

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Richard Purdie
960a653e0c expat: Don't use getrandom() in the -native case
getrandom() is only available in glibc 2.25+ and uninative may relocate
binaries onto systems that don't have this function. For now, force
the code to the older codepath until we can come up with a better solution
for this kind of issue.

(From OE-Core rev: da9ac8092497c3f2c246d3534f47e42cb2d9e4e8)

(From OE-Core rev: 450942db7f4638eba7ec262901fe1d7e1b1f6070)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11 22:15:58 +01:00
Khem Raj
3f97cd3514 nspr: Fix build error due to missing stdint.h> include
(From OE-Core rev: 2f95c71ba17a6d68d3805efe82097c10b6740244)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 17:13:19 +01:00
Khem Raj
58f7950896 icu: Fix build with glibc 2.26
(From OE-Core rev: 564209df3d0fd87742ffccb7475b8908c4a7efa4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 17:13:19 +01:00
Richard Purdie
b8eb4b65cd python-numpy: Fix issues with recent glibc versions
Fix issues building on recent glibc versions (for python*-numpy-native).

(From OE-Core rev: 08a46b2477c1ea0e76695b51b59dc1bb46b1b521)

(From OE-Core rev: d17b2f44f69a160c227cbd808a2cf62c994ed92e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 17:07:39 +01:00
Richard Purdie
364f6b5fac qemu: Backport a patch for recent glibc versions
This fixes compile failures of qemu-native with new versions of glibc. Patch
is taken from upstream.

(From OE-Core rev: 9c54510632d22c12850962572ce7276170ce5488)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 17:07:39 +01:00
Richard Purdie
ffb1aa67a4 python3-native: Avoid use of getentropy/getrandom
getentropy/random() is only available in glibc 2.25+ and uninative may relocate
binaries onto systems that don't have this function. For now, force the code to
the older codepaths until we can come up with a better solution for this kind of
issue.

(From OE-Core rev: 92bda0024d85ae78345665cc2f9646c9881ed61b)

(From OE-Core rev: ee006aac0a52709cf5524aeb17a92b8c5c44be34)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-06 17:01:12 +01:00
Scott Rifenbark
d9b63154aa ref-manual: Fixed broken link.
(From yocto-docs rev: b0ee7cf9ab8cb8f9beb490b9aac128c48b13af66)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:57 +01:00
Scott Rifenbark
e40d58a879 ref-manual: Removed duplicate section id.
(From yocto-docs rev: b49b1d2219bf18f6581cbdd1f7277d65e697c1f8)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:57 +01:00
Kristi Rifenbark
dcd287d546 ref-manual: Added a cross-reference link to "tmp/sysroots-components"
(From yocto-docs rev: 4cd0c8404e581e33194649a716c84100fddab00c)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
89e6119a8b ref-manual: Updated SSTATE_SCAN_FILES variable description
(From yocto-docs rev: f20240fda71a19a7bf78a8366270998d6c708076)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
0f1ea9ff44 ref-manual: Added tmp/sysroots-components task
(From yocto-docs rev: b723fc6d05ad4db48dfda2aece797c7cbab06cf3)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
fed307f58b ref-manual: Corrected spelling errors
Updated two instances of "sysroot-components" to
"sysroots-components".

(From yocto-docs rev: 8f95d9ccd958c46ce5f3f4c7eb95424bee958a9e)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Scott Rifenbark
d05391a7d4 documentation: Preparation for 2.3.2 release
poky.ent -> Changed variables
mega-manual.sed -> replaced 2.3.1 with 2.3.2
*.xml files -> Updated manual revision tables for 2.3.2 and
               September 2017

(From yocto-docs rev: ce5bc517148f872e49d617fbfda7ae81c56efa04)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Scott Rifenbark
3e9605bd98 ref-manual: Fixed YP Term problem with botched earlier commit
I was cherry-picking in commits from master to pyro and had a
conflict that I did not go far enough to the bottom of the
file to see the true nature, which was duplication of the
"Yocto Project Terms" section.  When I resolved the conflit
I just took out the top couple lines and actually left the
duplicated terms section in.  Then I pushed everthing.  I should
have made the manuals first and I would have discovered the
error.

This commit fixes it.

(From yocto-docs rev: 0a9a7303fc048b59e5328a9855f8615a042ab411)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
543337e849 ref-manual: Added new variable
Added SYSROOT_DESTDIR to the variable glossary.

(From yocto-docs rev: abb83993ade1200fb99b2c9ee65ea835773c950b)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Scott Rifenbark
5af18d3753 kernel-dev: Updated "Creating and Preparing a Layer" section
This section failed to mention the "yocto-layer create" script,
which is a simple way to create a layer.  I have added this info
into the section by way of a "Tip" box.

(From yocto-docs rev: 0bda177090ef624890e94a13e622e05923185fa9)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
f80223eb50 ref-manual: Fixed links in do_prepare_recipe_sysroot task
(From yocto-docs rev: 369038fa0fa2055bf39583aa1c707d889dd5db07)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
1f625b2dae ref-manual: Edited Migration section
Edited OpenEmbedded reference in "Recipe-specific
Sysroots" secion. Edited bullet title in
"Recipe-specific Sysroots" section.

(From yocto-docs rev: a7a909a17e69d7961e0c0d82e77b325e87399e32)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
573368bc90 ref-manual: Edits to staging.bbclass
Added a missing closing parenthesis. Edited Note for
for file clarification.

(From yocto-docs rev: c3cd491bf6949bce1546caa4be250ea05a8a564b)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
7bc2ff7018 ref-manual: Updated build/tmp/work/tunearch/recipename/version
Replaced "recipe_work_directory" with "${WORKDIR}"
throughout the section.

(From yocto-docs rev: 79911f48d469f95ec026fe60585d1b4983e9c1c6)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
a2712c3752 dev-manual: Updated "Sharing Files Between Recipes"
Updated text for sysroot terminology, and clarity.
Fixed a capitalization error.

(From yocto-docs rev: 2ee92ccf677135ea47d621d3583a16649e5a9f13)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Kristi Rifenbark
5826fabe6f ref-manual: Updated Documentation required packages
Removed xsltproc package in Fedora, CentOS, and
openSUSE Documentation required packages. Removed fop package in
openSUSE Documentation required packages.

(From yocto-docs rev: f7ba4c02c0157a8210b0e145a7cbc1ba51f3795b)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Scott Rifenbark
d0c89b6d59 dev-manual: Updates to "Using .bbappend Files in Your Layer"
I did some rewriting for clarity in the "Using .bbappend Files
in Your Layer" section.  The section needed to be retitled so
focus on the layer aspect of .bbappend files.  Also, while I
was in there, I did more work on the prose in general.

Also had to fix some links in the bsp, kernel, and ref manuals
that linked into the section whose name I changes.

(From yocto-docs rev: 27003c525a05ffa2f810a038c7c8f96bb7535986)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Scott Rifenbark
4712ba38e5 dev-manual: Changed wording that intros layer creation steps
I updated the wording to note that the steps are how to create
a layer without the aid of steps (i.e. by hand).

(From yocto-docs rev: 71956e7a2ef383c72baf3a12d2067ff04bb58ead)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-02 00:52:56 +01:00
Peter Kjellerstedt
7ea76684cb package.bbclass: Restore functionality to detect RPM dependencies
During the transition to dnf and rpm4, the functionality to
automatically make RPM determine dependencies was lost.

Before the transition, an OE specific tool called rpmdeps-oecore had
been added to the rpm suit. It was based on the rpmdeps tool that is
part of rpm. For each file specified on its command line, it would
output the provides and requires that RPM could determine.

During the transition to rpm4, rpmdeps-oecore was replaced with the
standard rpmdeps. However, what no one noticed was that unless rpmdeps
is given options, e.g., -P or -R, to tell it what it should output, it
will not output anything. Thus, it would do all the work to determine
the requirements, but would keep silent about it. And since no output
from rpmdeps is expected unless there are requirements, there were no
warnings indicating that everything was not working as expected.

Porting the old rpmdeps-oecore to work with rpm4 is not really
possible since it relied on being able to access internals of RPM that
are no longer available. However, it turned out that rpmdeps had a
debug option, --rpmfcdebug, that would output exactly the information
that we need, albeit in a different format and to stderr. To make this
usable, rpmdeps has now received a new option, --alldeps, which sends
the information we need to stdout.

Since enabling this may cause packages to break, it is required that
ENABLE_RPM_FILEDEPS_FOR_PYRO is set to "1" to activate it for Pyro.
The name of this variable has been chosen as to indicate that it only
affects Pyro (since releases before and after Pyro has it enabled by
default).

(From OE-Core rev: 1009498f23ad319825c00ba60a4693d15aada553)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Martin Jansa
00b1e7d38b libcheck: fix file-rdeps QA issue
* Fixes:
  ERROR: nativesdk-libcheck-0.10.0-r0 do_package_qa: QA Issue:
  /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/checkmk
  contained in package nativesdk-libcheck requires
  /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/gawk,
  but no providers found in RDEPENDS_nativesdk-libcheck? [file-rdeps]

(From OE-Core rev: 04e11808e6a22adfa367dd2565b20cb9ecdd6439)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Mark Hatle
09471f0593 rpm: Disable perl dependency generation
When rpmdeps files a perl script, it attempts to determine what it provides
and what it requires.  Often the requires are incorrect, within the context
of Wind River Linux.  This results in an error that DNF is unable to install
a package due to one or more unresolved dependencies.

In RPM5 we had disabled this behavior, the alternative is to require that all
perl scripts be 'complete', in that they only require things they absolutely
need and that OE provides.  If we ever enforce that, this commit can be
reverted.  Until they fall back to prior behavior (which also matches ipkg
and deb style packages.)

(From OE-Core rev: bd8e5dc3ebabb3d88169e2f848219ca201fa5fdb)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Mark Hatle
371f480aeb ltp: Skip the filedependency scan
Since LTP includes a set of test cases, we need to skip file dependency
generation, as there will be dependencies that can not be satisfied.  In this
case a csh and ksh dependency come from two tests.

The alternative would be to depend on csh/ksh (a bad idea as they're not
available in oe-core) or remove the tests (but this eliminates the tests if
someone DOES have csh/ksh in their configurations.)

(From OE-Core rev: 873ad32191816f89d085906635297eb17d9fc0f6)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Richard Purdie
3afca26b11 bind: Use correct python interpreter path
The scripts currently reference "python33", fix this so they reference
python3. The move the python3 likely broke these.

(From OE-Core rev: 37a40fead443e211f0947d9d9bf2180d95630485)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
2d3908ae4c package_rpm.bbclass: Filter out unwanted file deps for nativesdk packages
Filter out any file dependencies on absolute paths and any
dependencies on Perl modules for nativesdk packages. It is assumed
that they will be provided by the native host if needed, and they mess
up the dependency handling if they are present.

(From OE-Core rev: 37f2d4df507c760ea4c12b67526db8277e5684eb)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
abc1771306 git: Do not install git cvsserver and git svn by default
These git commands require Perl modules that do not exist in OE-Core.
Add PACKAGECONFIGs to enable them. Be aware though that if you enable
them you must also provide the missing dependencies.

(From OE-Core rev: a803938407ee5a55fb40a6940bb6680ba21909b0)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
6f5b49ba22 rpm: Add dependencies on bash, perl and python3-core
Also modify a Python script (pythondistdeps.py) to use Python 3.

(From OE-Core rev: 18116c1490e6ef09ad5046db7f90dbcbe4caf595)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
58884341dc perl: Do not generate file dependencies for perl-ptest
The perl-ptest package contains Perl internal modules and generating
file dependencies for it causes problems.

(From OE-Core rev: a36cf8e53122c32ef8a91759cd49d294483c6bde)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
6c17b29db1 insane.bbclass: Ignore perl as dependency for nativesdk packages
(From OE-Core rev: 33d79cb5d35274e2925d8acb0f30530013e37545)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
abbd0abe1a rpm: Add a new option --alldeps to rpmdeps
This will send the output from rpmfcPrint() to stdout. This is an
alternative to using the --rpmfcdebug option, which will send the same
output to stderr. The two options have totally different use cases
though. While --alldeps is used when the output from rpmfcPrint() is
what is wanted, --rpmfcdebug can be used together with the other
output options, e.g., --requires, without affecting their output.

(From OE-Core rev: 7a4794534bb2e67c61262361f907eced18ec69cc)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
6c9ad26db0 rpm: Use conditional to access %{_docdir} in macros.in
This avoids the following warning:

warning: Ignoring invalid regex %{_docdir}

when runing `rpmdeps -R <file>`, since %{_docdir} is only defined when
parsing a spec file.

(From OE-Core rev: c128e19d25f2015ce1bed13b423ac0d6e619ef5e)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
ada48bbe8c rpm: Do not require that ELF binaries are executable to be identifiable
There is nothing that requires, e.g., a DSO to be executable, but it
is still an ELF binary and should be identified as such.

(From OE-Core rev: 8d9cca4956ba1d8438e185af8baa2b64809d7c86)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
269bea560c rpm: Create a wrapper for the native rpmdeps tool
Rather than trying to call rpmdeps with the correct arguments to work
with the sysroot as was done in package.bbclass, create a wrapper for
it like all the other native tools already had.

(From OE-Core rev: 8279881fb0a65b238c6d484a45a71b6c4dd433e2)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
e6aa58d0b0 rpm: Simplify the creation of wrappers for the native tools
Use a loop rather than calling create_wrapper for each individual
tool.

(From OE-Core rev: d052c534c5099b9927ec84b23e01341f0aa3ce7d)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:12 +01:00
Peter Kjellerstedt
14effcc3d6 toaster.bbclass: Ignore some dependencies in toaster_buildhistory_dump()
When using RPM, depends.dot may contain dependencies such as
"/bin/sh", which will confuse _toaster_load_pkgdatafile(). Ignore
them. While at it, also ignore dependencies that contain parentheses,
e.g., "libc.so.6(GLIBC_2.7)".

(From OE-Core rev: 80c117f46442ef442e34b7681ed3688789f505ac)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
986de4b7f0 toaster.bbclass: Simplify parsing of depends.dot
By using a single regular expression, the parsing of the depends.dot
file can be simplified a lot. This should also make it less
susceptible to formatting changes in that file.

(From OE-Core rev: 20684149bb659b34d3bcac8f202cb95d607567c1)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
e56ff20931 buildhistory.bbclass: Improve the generated depends.dot file
* Convert incorrectly formatted dependencies such as:
    "bar -> "foo" ">=" "1.2.3"
  into dependencies with edge labels:
    "bar -> "foo" [label=">= 1.2.3"]
* Remove rpmlib() and config() dependencies such as:
    "foo" -> "rpmlib(CompressedFileNames)" [label="<= 3.0.4-1"]
  and:
    "base-files" -> "config(base-files)" [label="= 3.0.14-r89.49"]
* Remove the trailing semicolon that was added to each line. It fills
  no purpose.

(From OE-Core rev: 99ef2f26cf498e1693a947bb44e40c31c20ec525)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
b539afa655 insane.bbclass: Improve the handling of runtime file dependencies
This makes the file-rdeps test support:
* versioned dependencies, e.g., "perl (>= 5.000)", and
* package dependencies among the file dependencies, e.g., "perl".

It also ignores all "perl(...)" dependencies since it is expected that
these are generated and handled by rpm itself and there is no reason
to second guess what it is doing.

(From OE-Core rev: 6d64b110ed0c22f2bcd10cde437a13e03c15b23e)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
9d33b246ca insane.bbclass: Report all file-rdeps errors, not just the first
(From OE-Core rev: ee6f208a780062365e53fb9546eef55749e1c654)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
7defdff41f libxml2: Make ptest run the Python tests if Python support is enabled
Since we go through the trouble of copying the Python tests, we may as
well actually run them...

This also avoids the following QA issue:

  ERROR: libxml2-2.9.4-r0 do_package_qa: QA Issue:
  /usr/lib/libxml2/ptest/python/tests/push.py contained in package
  libxml2-ptest requires /usr/bin/python, but no providers found in
  RDEPENDS_libxml2-ptest? [file-rdeps]

(From OE-Core rev: 2b9470678d8df152af54899adb4774fb0d481cf3)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Alexander Kanavin
26260d76b7 libxml2: move python module to Python 3
(From OE-Core rev: 30417429cea525e6eb6c3cfbe760ebe7b13f0980)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
01406f8bf6 package_manager.py: Generate correct RPM package names again
During the transition to RPM4, the package names returned by
RpmPM.list_installed() changed from the expected names of the packages
that were installed into the image to some fictitious source RPM
names.

This restores the original functionality so that the
installed-packages.txt files produced by inheriting buildhistory yet
again contains a list of the names of the installed packages.

(From OE-Core rev: cd982d5b8944fe231c7dd38c9a563d0fc0737b88)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Peter Kjellerstedt
80d0ce002e gtk+3: Update the patches to work with old versions of patch
The patch "0003-Add-disable-opengl-configure-option.patch" used Git
rename syntax, which is not supported by patch 2.6.x and older.

(From OE-Core rev: 43e640ddcf32c718b3e0bb3f3654ed60eb497058)

(From OE-Core rev: 49343f8bada08f6c04359c002004c3eabb959375)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-31 17:57:11 +01:00
Sona Sarmadi
5fd01704b9 connman: Fix for CVE-2017-12865
dnsproxy: Fix crash on malformed DNS response
If the response query string is malformed, we might access memory
pass the end of "name" variable in parse_response().

[YOCTO #11959]

(From OE-Core rev: fb3e30e45eea2042fdb0b667cbc2c79ae3f5a1a9)

(From OE-Core rev: cf1099babe7291d6f3f4d30eb503e1736437cfe0)

Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>

Conflicts:
	meta/recipes-connectivity/connman/connman_1.33.bb
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-30 11:12:30 +01:00
Mike Looijmans
9842f64154 rootfs-postcommands.bbclass: Prevent linking testdata to itself
testdata and testdata_link may point to the same file, in particular
when IMAGE_LINK_NAME and IMAGE_NAME are equal.

Check if this is the case before creating a symlink that points to
itself and makes the next build fail.

(From OE-Core rev: f8ceec50af68650d6548738e5b5582e2b25424d7)

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 12:22:06 +01:00
Khem Raj
87b52832e8 gnu-efi: Fix build with gcc7
(From OE-Core rev: a253743f3e3badadb0afe90a277dd4d252b32c6c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Ross Burton
2ded079276 chrpath: use https for SRC_URI
Alioth always redirects, so we might as well save time by looking in the right
place.

(From OE-Core rev: 906ba241b76c79b2298c48bb915b2ef1bd820491)

Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit e681e25fb8fb97a8592df69180d2fd85d136352c)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Saul Wold
86277e9408 systemtap: ensure systemtap-native is available
Since we are adding the addto_sysroot that that is specific to the
native recipe, we must split this into a seperate -native .bb recipe.

When systemtap-native is built, the intention is that it's usable
from the native sysroot when done, ensure it's there with a forced
addto_recipe_sysroot task, we also don't want to clean the sysroot
when RM_WORK is enabled otherwise we loose the binaries.

[YOCTO #11403]

(From OE-Core rev: 4d965cdb451f87ee7f9364d71e2eea94cf04d3ed)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
(cherry picked from commit 2fdb59741b4fdeaa4aee10812c4a409cdc11a02d)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 98fba18e93abe8efce0a5b40d51e178c9de4d1e5)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Jackie Huang
6bc0d5069f ncurses: add SYSROOT_DESTDIR for siteconfig_gencache
After switching to Recipe Specific Sysroots, ncurses
will not be populated in its own sysroots, then
siteconfig_gencache fails to find some headers,
so add ${SYSROOT_DESTDIR}/${includedir} into the
search list to fix the issue.

(From OE-Core rev: 421850875a5dafa1deed0647b7b30b76df9b25cf)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2ef34f7fb60ecdff29aae1d54a90a2e765c15e1e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Andre McCurdy
85c41bfcf2 mirrors.bbclass: provide git repo fallbacks using the https protocol
Use MIRRORS to provide git repo fallbacks using the https protocol,
for cases where git native protocol fetches may fail due to local
firewall rules, etc.

These rules should cover all git native repos used by recipes within
oe-core, with the exception of mtd-utils, for which there's currently
no upstream alternative to the git native protocol for anonymous
access ( see http://git.infradead.org/mtd-utils.git ).

(From OE-Core rev: fe71cf3ded7109e0fa1812475479941c89873e4e)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit abb8895d5b42a5dc171360a261a2652acd14ee7e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Andre McCurdy
6da2983692 gnu-config: update SRC_URI to new savannah.gnu.org hostname
http://sv.gnu.org/ now redirects to http://savannah.gnu.org/

(From OE-Core rev: e5aa3325949e2db9ba22ed06d2b7709cd3415d69)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cf21f45fc7fa7a70df48e9eb6bdf38d0aa902f9b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Tom Rini
43435bc2e4 image: Fix "metadata is not deterministic" when chaining 2+ CONVERSION_CMDs
When we have more than one CONVERSION_CMD being used, for example
ext4.gz.sha256sum we will see errors about "metadata is not
deterministic".  This is because we do not have a stable order of
intermediate files that will be removed in the generated shell command.
We fix this by calling sorted() on the set of rm_tmp_images so that we
will have a stable hash again.

Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: 26feb0580642ef8934206ea73cdce9e1f73d14ef)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 98a2afeb3a53bec7a72a4a9846e1dba636cc6f3d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Tom Rini
88eec32150 image.bbclass: Correct chaining compression support
When chaining of compression/conversion types was added, we had a new
way to handle doing things like "ext4.bz2.sha256sum" or
"ext2.gz.u-boot".  However, because the U-Boot image class isn't
included normally, it wasn't properly converted at the time.  After the
support was added the "clean" argument that the .u-boot code uses no
longer functions.  The fix for this inadvertently broke chaining
compression/conversion.  First, correct the u-boot conversion code.

Fixes: 46bc438374de ("image.bbclass: do exact match for rootfs type")
Cc: Zhenhua Luo <zhenhua.luo@nxp.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Patrick Ohly <patrick.ohly@intel.com>
(From OE-Core rev: ad22f73519292f53d2ea6eaae99f8a919c4f2c26)

Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0a7ce0b971a208956cb895ba5a869ec8c5d94703)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Martin Jansa
5a20323f20 mesa.inc: drop wrong path in --with-llvm-prefix and export LLVM_CONFIG
* this was added in oe-core/pyro but breaks all builds with llvm from
  meta-oe as reported in:
  http://lists.openembedded.org/pipermail/openembedded-core/2017-April/135050.html

* fix it by partial backport from master:
  http://git.openembedded.org/openembedded-core/commit/?id=da29bc17e4dd748f50b054c5e3afaf8d41bf4077
  but with different path as llvm-3.3 from meta-oe installs llvm-config in:
  ${STAGING_BINDIR_CROSS}/llvm-config
  while llvm-5.0 from oe-core master (rocko) in:
  ${STAGING_LIBDIR}/llvm${MESA_LLVM_RELEASE}/llvm-config-host"

(From OE-Core rev: 24f66a4e7a7fff915742d6cea26d2686f3147b19)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Gan Yau Wai
b4ea7bfad6 insane.bbclass: fix override handling in RDEPENDS QA
The package_qa_check_rdepends() in insane.bbclass has
incorrectly replace its localdata OVERRIDES value with
the package name. Fixing it by appending the package name
to the existing OVERRIDES value. This resolves RDEPENDS QA
error when setting PACKAGECONFIG using a pn- override at
local.conf.

Cherry picked from master 60d28dd72daee235150ab6605cbf953f1ea691df

[YOCTO #11374]

(From OE-Core rev: ca84390b7894adb32a89ccfbd83fbb3fb7e808fc)

Signed-off-by: Gan Yau Wai <yau.wai.gan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Martin Jansa
4ec0cbceec icecc.bbclass: prevent nativesdk builds depending on target specific KERNEL_CC
* without this we cause nativesdk-linux-libc-headers to depend
  on target specific KERNEL_CC (through icecc_get_tool ->
  icecc_is_kernel -> KERNEL_CC -> HOST_CC_KERNEL_ARCH ->
  TARGET_CC_KERNEL_ARCH -> TUNE_FEATURES(thumb) as shown by
  bitbake-diffsigs:

  OE qemux86@ ~/build/oe-core $ ls /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemu*/*sdk*/*/*do_configure.sigdata*
  /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemuarm/x86_64-nativesdk-oesdk-linux/nativesdk-linux-libc-headers/4.10-r0.do_configure.sigdata.3a9a423878d56524e0ee8e42eba1804f
  /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemux86/x86_64-nativesdk-oesdk-linux/nativesdk-linux-libc-headers/4.10-r0.do_configure.sigdata.401071dbaa88903ece37d35a47965ff2

  OE qemux86@ ~/build/oe-core $ bitbake-diffsigs /OE/build/oe-core/tmp-glibc/sstate-diff/1499859497/qemu*/*sdk*/*/*do_configure.sigdata*
  basehash changed from 39774238b66763c598153132e87a2c1a to aa2d66e770bf533e312536eb0a401c4c
  Variable TARGET_CC_KERNEL_ARCH value changed from '${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork-marm', '', d)} TUNE_FEATURES{thumb} = Set' to ''

(From OE-Core rev: b07bcfa3e4400f7763e2276f9be3dc702bb58c2e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:29 +01:00
Martin Jansa
f2a65bd268 v86d, qemuboot-x86.inc: use KERNEL_MODULE_AUTOLOAD+KERNEL_MODULE_PROBECONF for uvesafb instead of fbsetup init script
* also add UVESA_MODE variable for easier change of resolution and respect it in QB_KERNEL_CMDLINE_APPEND
  as well
* don't use init script just to call modprobe
* I wasn't able to test this all the way with runqemu, because runqemu
  doesn't work on my system, but I've verified that the right params
  appear there and that I can easily change UVESA_MODE from
  conf/local.conf, the modules.d and modprobe.d files look OK:
  OE qemux86@ ~/build/oe-core/tmp-glibc/deploy/images/qemux86/core-image-sato-qemux86-20170427212613.rootfs
  $ cat etc/modules-load.d/uvesafb.conf
  uvesafb

  OE qemux86@ ~/build/oe-core/tmp-glibc/deploy/images/qemux86/core-image-sato-qemux86-20170427212613.rootfs
  $ cat etc/modprobe.d/uvesafb.conf
  options uvesafb mode_option=1600x1200-32

  so I'll be able to drop this KERNEL_MODULE_AUTOLOAD +
  KERNEL_MODULE_PROBECONF from my DISTRO conf.

(From OE-Core rev: 3a8613a101aebf4f2a75ea95dac72202bbda8238)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
André Draszik
6f6a73f7ad linux-libc-headers: fix duplicate IFF_LOWER_UP DORMANT ECHO on musl
musl _does_ define IFF_LOWER_UP DORMANT ECHO so we should
prevent redefinition of these when on musl.

As per the included patch, this can be triggered by
(from connman 6to4.c):
    include <errno.h>
    include <stdio.h>
    include <stdlib.h>
    include <string.h>
    include <sys/socket.h>
    include <netinet/in.h>
    include <arpa/inet.h>
    include <net/if.h>
    include <linux/ip.h>
    include <linux/if_tunnel.h>
    include <linux/netlink.h>
    include <linux/rtnetlink.h>
    include <sys/ioctl.h>
    include <unistd.h>

In file included from ../git/src/6to4.c:34:0:
.../usr/include/linux/if.h:97:2: error: expected identifier before numeric constant
  IFF_LOWER_UP   = 1<<16, /* __volatile__ */
  ^

This is because at that time, IFF_LOWER_UP has been converted
to 0x10000 already:
enum net_device_flags {
 0x10000 = 1<<16,
 0x20000 = 1<<17,
 0x40000 = 1<<18,

};

Backport a patch that addresses this.

(From OE-Core rev: 24dc2200047bae5d32c168d2625d96ac08a93d3d)

(From OE-Core rev: 3683fdd01e76bc54121bb8421f908c183e8d66fc)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Richard Röjfors
2002de4eae package_manager: Fix support for NO_RECOMMENDATONS
When support for dnf was introduced the check of the
no NO_RECOMMENDATIONS variable got broken.

This fixes the issue by compairing to the string "1"
rather than the number 1.

(From OE-Core rev: 5f9ea84d304a519acb0504516b86f2683a43f9e9)

Signed-off-by: Richard Röjfors <richard@puffinpack.se>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 1849ce3bd7c0af055f3e849a6508e746b6a0dca5)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Nicolas Dechesne
05f7969366 kernel.bbclass: fix KERNEL_IMAGETYPE(S) for Image.gz
KERNEL_IMAGETYPES lists all the kernel images that we want to build. in
cb17b6c2a7 (kernel.bbclass: support kernel image type of vmlinux.gz), some logic
was added to support vmlinux.gz which is not a target built by kernel
makefiles (only vmlinux). It is clear that the goal of this logic is only to
support vmlinux.gz and not others compressed format (such as Image.gz) which are
valid target for kernel makefiles.

For Image.gz we should rely on the kernel makefiles and not do the compression
in kernel class.

This patch updates the logic used to filter out non supported kernel target from
KERNEL_IMAGETYPES, and make vmlinux.gz a 'special case', instead of *.gz. If
more special cases are needed in the future, we could add them in a similar way.

This patch should be a no-op for anyone using vmlinux or vmlinux.gz, and on top
of that it is fixing the build for Image.gz which was not working until now.

(From OE-Core rev: d3a89450ae918f467a99ac1c33502fc9a5eb4162)

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cfc0c897656fe67e81a6a5dcd936dff785529f41)
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Andre McCurdy
ddb3a2f485 lsof: update SRC_URI
Upstream lsof releases are hosted on an ftp server which times out
download attempts from hosts for which it can not perform a DNS
reverse-lookup. See:

  https://people.freebsd.org/~abe/

http://www.mirrorservice.org seems to be the most commonly used
alternative (and using it for SRC_URI allows the custom
UPSTREAM_CHECK_URI to be removed).

(From OE-Core rev: bb14b19f2c63f88f5da372a6ad4a153da1fc0232)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 4e718242c1554021689a7946add055b22b81ec42)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Andre McCurdy
01429e2a64 lsof: minor recipe cleanup
- Add HOMEPAGE
  - Remove ${S} from LIC_FILES_CHKSUM path
  - Use tabs consistently to indent do_configure()
  - Re-order LIC_FILES_CHKSUM definition to follow OE style guide

(From OE-Core rev: 29f02bca78d7ded464e10d414a111c074d3de242)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 78701c5b873605240226c502de3b940097433596)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Kai Kang
a58b021b75 lsof: clear setuid
Having 'lsof' as a +s (setuid) binary could lead to security issues if
a compromise in the binary is found.  It is better that it be -s by
default as a precaution.

(From OE-Core rev: 6cf2891fe1526570c4e3eb8d78dc4d914d2d2079)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 346c65dd6855106069d1861ca965d3121eb084d1)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
279e22c16b kernel.bbclass: set CVE_PRODUCT to linux_kernel if not set by recipe
It is used by NVD database CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2017-7273

Setting this in kernel.bbclass fixes CVE reporting for all users of
the class.

(From OE-Core rev: 9b27be77980fdd51423576712dfd6f4a031c3372)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 2e3d325440a50265c73f7d2e782530a02458bc33)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Ross Burton
24b0fa7324 elfutils: use HTTP instead of FTP to fetch
FTP is inferiour to HTTP is all respects, so use the HTTP URL for the tarball.

(From OE-Core rev: c190e5a884d85cb8d8783e78ad1a0489e56fac58)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6a9e38be6e9dcbeff033944f9a3a18e3838af10d)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
39e40d2490 cve-check.bbclass: use weak assignment for default CVE_PRODUCT
This way also bbclasses can override it. For example kernel.bbclass
could set CVE_PRODUCT to linux_kernel for all users of the class
which compile Linux kernels.

(From OE-Core rev: 478b90369c48351193e2bc5e2eb2b5308d55bb2e)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 74672a7de5ada45ab8e25b89cbdea3ec33b63b7f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
90acac9f21 wpa-supplicant_2.6.bb: set CVE_PRODUCT to wpa_supplicant
It is used in NVD database CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2015-1863

(From OE-Core rev: cabacf6ad5a2511f6eb93259a81ab14279fd96bb)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit cc3882ca2fea2c5a8830311eeb7840ae98da9b3c)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
77d6595116 sqlite3.inc: set CVE_PRODUCT to sqlite
It is used in NVD for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2016-6153

(From OE-Core rev: 2dcd0f87bc8754afba09f6a1ed68eab19228c261)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit cec6f26f4d2f16c9a58fac5a6344e3d43b36ed09)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
be8fbfb22e quota_4.03.bb: set CVE_PRODUCT to linux_diskquota
It is used in NVD for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2012-3417

(From OE-Core rev: cc9cca186fd1d4a7f2cb02484303ebb9f889c130)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 07be7cb9405e4a6289edad8afb3a50c1f8651620)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
908e666fcb lttng-ust_2.9.1.bb: set CVE_PRODUCT to ust
It is used in NVD for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2010-3386

(From OE-Core rev: 847124c9cc09922155c4238571257833c49262df)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 1c6643f139911ab27618d20f9d4ca609235a680b)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
5b56c220e6 python.inc: set CVE_PRODUCT to python
All python versions are just python in NVD like this CVE
for python 3.4.4:

https://nvd.nist.gov/vuln/detail/CVE-2016-5699

(From OE-Core rev: b5a5a8368629f8176d8a340e3f8b1cc6734460e5)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 848e1be494e8ea10c729f95f02acb366e1843d75)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:28 +01:00
Mikko Rapeli
335d3cc262 nspr_4.14.bb: set CVE_PRODUCT to netscape_portable_runtime
This is used in NVD database entries like CVE:

https://nvd.nist.gov/vuln/detail/CVE-2016-1951

(From OE-Core rev: 183c3b4455a6c358000a775e3e5806467726b730)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit c75e5d3f4b9293cf2f2ebdd3a23743b3df7aa3df)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
96e31260d4 libsndfile1_1.0.28.bb: set CVE_PRODUCT to libsndfile
It is used in NVD to CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2017-6892

(From OE-Core rev: 0ee67de1028ea3275b6dfe398235e71c4bdbb704)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit adfb1c7fe28a6ef2bcf698f7415fd86b01bdc489)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
b0655ebcbb libsamplerate0_0.1.9.bb: set CVE_PRODUCT to libsamplerate
It is used in NVD for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2017-7697

(From OE-Core rev: fca2207f67a51de616f297ee015b9bd22eb3a3a1)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit baafa21919082a8b61af3345c35922d205b254c6)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
156c033a3b libpcre2_10.23.bb: set CVE_PRODUCT to pcre2
It is used in NVD as product name for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2017-8786

(From OE-Core rev: 594a729950272b6596567dca1d4aa6f147ba3085)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit ce32c5b8ee77012b36c74323f298dc561741aebd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
9b81f32906 libpcre_8.40.bb: set CVE_PRODUCT to prce
It is used in NVD for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2017-7246

(From OE-Core rev: a561cc581ae9d9a7ae3eb90ee0563f3b47ba843c)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 523e823988f08679a384a14c4e768b2819f8a6bf)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
7657c7f5e8 icu.inc: set CVE_PRODUCT to international_components_for_unicode
NVD uses it for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2014-8146

(From OE-Core rev: d1a603972e2809e655d79f8dc366a161b8759a77)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit eaac39100cadc81c89e6eb5ab389cd684699aa90)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
b7754933b7 glibc-common.inc: set CVE_PRODUCT to glibc
All recipes which include this .inc map to glibc NVD component.

(From OE-Core rev: 5e11fa22f0b9ee18878b49389603ddf5533cbbc4)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 613a13725db4e05539974cc7c66584a287d7b4bd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
db8f4f24ce glib.inc: set CVE_PRODUCT to glib
NVD uses product glib and vendor gnome for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2016-6855

(From OE-Core rev: 9621f46bde37e27dd323305d0c1e987a7cca37aa)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 69d6342d45316389afb4b062088919689db0a6dd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
fe3f704f10 gcc-common.inc: set CVE_PRODUCT to gcc
All recipes which include this are using gcc as product name in NVD like

https://nvd.nist.gov/vuln/detail/CVE-2015-5276

(From OE-Core rev: 8e1b34aab4bd390f53945789c91a69883613d778)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit bd6f1430334412588c143d8029be39fe814672cd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
8142d69111 flac_1.3.1.bb: set CVE_PRODUCT to libflac
NVD uses product name libflac for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2014-8962

(From OE-Core rev: 4fb024450b8f2b7de01969c32e8a6fbcc8f50019)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit e09bd27059b26affddf466f4e55a7f4c719c3b17)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
300fb6df80 eglinfo.inc: set CVE_PRODUCT to eglinfo
Upstream is called eglinfo no matter how the recipes are named.
There are no existing CVE's for eglinfo in NVD yet.

(From OE-Core rev: a7273020c29a5ecd074618daa5e68b55ee6f7451)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 0b8e2a017e117810c83039a316a11da66fe148b1)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
c645465839 bluez5.inc: set CVE_PRODUCT to bluez
bluez is the product name in NVD database for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2016-7837

(From OE-Core rev: 07b5c85808a2346823de80f5e36474ca40d41cb0)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit aade84aa54bb2f958572623ed6464184efd19862)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Mikko Rapeli
b2cc8e045e acpid.inc: set CVE_PRODUCT to acpid2
It is used in NVD database for CVE's like:

https://nvd.nist.gov/vuln/detail/CVE-2011-4578

(From OE-Core rev: ce9bcefc0289b0e976af31145b41ece7a3ae7799)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 966052df79df0f68565ebc40887170322d3f85b8)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Richard Purdie
98dcaa9d2c uninative: Update to 1.7 uninative release
This updates to a newer glibc and updates patchelf to include a bugfix
to work with gold.

(From OE-Core rev: a2ab288bd002ebb6e64d46e941fb122e1157ff49)

(From OE-Core rev: bc22fe6cc000283cb3bf088f15ef63fdb3cb0449)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-29 11:57:27 +01:00
Kristi Rifenbark
4a39979c8d poky.ent: Updated CentOS required package
Replaced "python34-pip" package with "python3-pip"
in the list of required packages for CentOS' variable.

(From yocto-docs rev: b4527e8b4272ae2d2716c7cb480f58e7c26031d7)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:45 +01:00
Kristi Rifenbark
08d3bdf25e poky.ent: Corrected package duplication
Removed duplicated package, "which" in list of
required packages for Fedora's variable.

(From yocto-docs rev: 58f47d63eee695adaaed7261a9fc3ce46e3ca291)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-30 16:23:45 +01:00
David Reyna
9d7c958940 bitbake: toaster: noweb should init database
When the 'noweb' option for Toaster is used, perform the database
check/create if the Toaster database does not yet exist.

This will allow Toaster to not fail if the first use is with 'noweb'.
This avoids potentially clashing database updates if there are
multiple overlaping 'noweb' sessions (for example with a CI system).

If the user wished to update the database, they can either use the
explicit "lsupdate" command or (re)start a web hosted Toaster session
(which is gated by the webserver's PID).

[YOCTO #11378]

(Bitbake rev: 4966a56bea7e404c574c197bdaaeb12ead895021)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:46 +01:00
David Reyna
4b35d0a012 bitbake: toaster: get_last_build_id not called correctly
The method "get_last_build_id" missing the "()" in several calls. This
has been failing silently with Django 1.8 but intermittently crash with
Django 1.9.

[YOCTO #11570]

(Bitbake rev: 98e424c2cd3ce8bc7df247263e44a6d6d9ede3e6)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:46 +01:00
David Reyna
b161cb0c35 bitbake: toaster: add getMessage to MockEvent
The MockEvent needs to not only stand in for Toaster and Bitbake quick events,
it also needs to stand in for LogRecord, and for that it needs to provide
the new getMessage method.

[YOCTO #11440]

(Bitbake rev: e95ed33726b2a6d03382e07c6efe2ab574f84ee8)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:46 +01:00
David Reyna
55f8db0246 bitbake: toaster: fail on layers with sub-layer
For layers directories with sub-layers (for example meta-intel),
Toaster breaks when trying to exact match a dependency event for
that sub-layer against the top level layer directory paths.

Given that top the level layer directory paths are unique, adding
a test to see if the dependency path is a subset of a top level
path is also unique.

Also, since a warning was issued the processing should not fail
on the assert but instead should continue and gather the recipes
and tasks.

[YOCTO #11149]

(Bitbake rev: e1c769eed2258bb2697e9558f484dd62a3da7399)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:46 +01:00
David Reyna
f505d9fad9 bitbake: toaster: add ID's to build menu links
Add IDs to the build page menu lines, for example "Tasks", "Recipes",
"Time", "CPU Time", "Disk I/O", and so forth. This will support test
automation.

[YOCTO #11337]

(Bitbake rev: 0bd1fcdbfa6b9bf4642f1a2b1d46767c7c15a5d1)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:46 +01:00
David Reyna
1a8d911989 bitbake: toaster: add ID's to navigation links
Add IDs to the navigation bar links "All builds", "All projects",
and "Documentation. This will support test automation.

[YOCTO #11335]

(Bitbake rev: 4734001672cb35789be5a8d5c8b91ca57821bdba)

Signed-off-by: David Reyna <David.Reyna@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Paul Eggleton
a19c27b807 classes/staging: change fixme debug message from note to debug
These messages were added for debugging during the recipe specific
sysroot work. They may still be useful but they don't need to be notes -
if they are they show up in recipetool / devtool output when fetching
source.

(From OE-Core rev: a0e93d5c5dcf59d1898a3db727a5ab2d75e3d20e)

(From OE-Core rev: 81246ed59215b8f62800cfb20d8b71d8e528c0ec)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bc1a4af950a2600028d89b7dcb4ff8f409b52739)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
6886e958df linux-yocto/4.9: update to v4.9.36
Integrating the -stable release with the following commits:

   9f86f302ec0e Linux 4.9.36
   a29fd27ca268 KVM: nVMX: Fix exception injection
   d1d3756f07da KVM: x86: zero base3 of unusable segments
   f3c3ec96e5fb KVM: x86/vPMU: fix undefined shift in intel_pmu_refresh()
   1eeb79426332 KVM: x86: fix emulation of RSM and IRET instructions
   982d8d92f256 arm64: fix NULL dereference in have_cpu_die()
   a4bfcab30928 mtd: nand: brcmnand: Check flash #WP pin status before nand erase/program
   de5862335ed7 i2c: brcmstb: Fix START and STOP conditions
   8ee785016d5a brcmfmac: avoid writing channel out of allocated array
   65fc82cea84f infiniband: hns: avoid gcc-7.0.1 warning for uninitialized data
   3e51ccbadd15 objtool: Fix another GCC jump table detection issue
   92e66676523a clk: scpi: don't add cpufreq device if the scpi dvfs node is disabled
   8a6f400a374c cpufreq: s3c2416: double free on driver init error path
   1781a29b31fa iommu/amd: Fix interrupt remapping when disable guest_mode
   0e55856b8f29 iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()
   f0c31c674abd iommu/dma: Don't reserve PCI I/O windows
   d7fcb303d1ee iommu: Handle default domain attach failure
   c19bfc6765d4 iommu/vt-d: Don't over-free page table directories
   d5c5e8ba5d9d ocfs2: o2hb: revert hb threshold to keep compatible
   8af88a950b42 x86/mm: Fix flush_tlb_page() on Xen
   3667dafd6c04 x86/mpx: Correctly report do_mpx_bt_fault() failures to user-space
   b287ade87c91 x86/boot/KASLR: Fix kexec crash due to 'virt_addr' calculation bug
   15541e64163c tools arch: Sync arch/x86/lib/memcpy_64.S with the kernel
   a2c222bef08f ARM: 8685/1: ensure memblock-limit is pmd-aligned
   7661b19687b2 ARM64/ACPI: Fix BAD_MADT_GICC_ENTRY() macro implementation
   4efe34b500a7 ARM: dts: OMAP3: Fix MFG ID EEPROM
   07bb2c7e7ea3 ARM: OMAP2+: omap_device: Sync omap_device and pm_runtime after probe defer
   e57aa416ca4c regulator: tps65086: Fix DT node referencing in of_parse_cb
   88baad2e7159 regulator: tps65086: Fix expected switch DT node names
   9846c67974d6 spi: fix device-node leaks
   c52829f60f5f spi: When no dma_chan map buffers with spi_master's parent
   478273e11521 sched/loadavg: Avoid loadavg spikes caused by delayed NO_HZ accounting
   eea0261db8ef watchdog: bcm281xx: Fix use of uninitialized spinlock.
   4211442b2088 netfilter: use skb_to_full_sk in ip_route_me_harder
   ac2730234cc1 xfrm: Oops on error in pfkey_msg2xfrm_state()
   c460f2beb6f0 xfrm: NULL dereference on allocation failure
   1e1666257cb6 xfrm: fix stack access out of bounds with CONFIG_XFRM_SUB_POLICY
   647f605276c0 mm/vmalloc.c: huge-vmap: fail gracefully on unexpected huge vmap mappings
   f9f73c58feef ravb: Fix use-after-free on `ifconfig eth0 down`
   adfe95fe5b42 ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets
   168bd51ec5ef sctp: check af before verify address in sctp_addr_id2transport
   399566f8a4fb net/mlx4_core: Eliminate warning messages for SRQ_LIMIT under SRIOV
   b6f75b986a7f perf probe: Fix to probe on gcc generated functions in modules
   9f8ffe4e0952 tipc: allocate user memory with GFP_KERNEL flag
   18b200e0c8ee net: phy: dp83867: allow RGMII_TXID/RGMII_RXID interface types
   e1eac347d971 perf probe: Fix to show correct locations for events on modules
   cc439964fab1 be2net: fix MAC addr setting on privileged BE3 VFs
   02434def6fd0 be2net: don't delete MAC on close on unprivileged BE3 VFs
   fa1dbf505aef be2net: fix status check in be_cmd_pmac_add()
   5f54c4e1e2af usb: dwc2: gadget: Fix GUSBCFG.USBTRDTIM value
   0e9867b7113c s390/ctl_reg: make __ctl_load a full memory barrier
   9d00195bc0af swiotlb: ensure that page-sized mappings are page-aligned
   68a5dc385735 coredump: Ensure proper size of sparse core files
   d21816c24591 aio: fix lock dep warning
   82835fb33ce5 perf/x86: Reject non sampling events with precise_ip
   1c68633329d2 perf/core: Fix sys_perf_event_open() vs. hotplug
   48131dd0f2b1 x86/mpx: Use compatible types in comparison to fix sparse error
   283994074501 x86/tsc: Add the Intel Denverton Processor to native_calibrate_tsc()
   6baa8c92dab9 mac80211: initialize SMPS field in HT capabilities
   8eaaf66d41ad pmem: return EIO on read_pmem() failure
   25319ae8e8a7 drm/amd/powerplay: refine vce dpm update code on Cz.
   f275ac7fc5d2 drm/amd/powerplay: fix vce cg logic error on CZ/St.
   77e82094a3c9 drm/radeon/si: load special ucode for certain MC configs
   4ae8dc6acb71 net: thunderx: acpi: fix LMAC initialization
   f88f06e18318 arm64: assembler: make adr_l work in modules under KASLR
   aabb797b4c12 spi: davinci: use dma_mapping_error()
   c32462d0b523 scsi: lpfc: avoid double free of resource identifiers
   582c1ca0ea1d HID: i2c-hid: Add sleep between POWER ON and RESET
   c78b8de5c05c perf/x86/intel: Use ULL constant to prevent undefined shift behaviour
   6130fac99481 mac80211: recalculate min channel width on VHT opmode changes
   d48cb21fd50b net: phy: marvell: fix Marvell 88E1512 used in SGMII mode
   849f2d0665e0 pinctrl: intel: Set pin direction properly
   3a6edbc95ba0 perf/x86/intel/uncore: Fix hardcoded socket 0 assumption in the Haswell init code
   b8c5e7b12413 drm/etnaviv: trick drm_mm into giving out a low IOVA
   2bc8fcd633d8 Documentation: devicetree: change the mediatek ethernet compatible string
   c5c8743642ae kernel/panic.c: add missing \n
   00f468f51dd5 ibmveth: Add a proper check for the availability of the checksum features
   32bd4d2ed9d8 vxlan: do not age static remote mac entries
   b07bf2364605 ip6_tunnel: must reload ipv6h in ip6ip6_tnl_xmit()
   7fdc81f6e1a9 virtio_net: fix PAGE_SIZE > 64k
   a6c3e01bf32e mlxsw: spectrum_router: Correctly reallocate adjacency entries
   ff3b1dd026bb vfio/spapr: fail tce_iommu_attach_group() when iommu_data is null
   8895ef4e5357 drm/amdgpu: check ring being ready before using
   e5a2ba9af818 net: dsa: Check return value of phy_connect_direct()
   c6f284899e01 amd-xgbe: Check xgbe_init() return code
   e99d86d76eed platform/x86: ideapad-laptop: handle ACPI event 1
   e9a87e0f5bbb iwlwifi: fix kernel crash when unregistering thermal zone
   322baf72eed5 scsi: virtio_scsi: Reject commands when virtqueue is broken
   5d5c293af834 xen-netfront: Fix Rx stall during network stress and OOM
   72191c7d82e7 swiotlb-xen: update dev_addr after swapping pages
   884baf2abf6d virtio_console: fix a crash in config_work_handler
   c3eab85ff11a Btrfs: fix truncate down when no_holes feature is enabled
   e8b5068b64d0 Btrfs: Fix deadlock between direct IO and fast fsync
   83571e9ef7c9 gianfar: Do not reuse pages from emergency reserve
   c48a862c47d4 objtool: Fix IRET's opcode
   251d00bf1309 bpf: don't trigger OOM killer under pressure with map alloc
   a7a2a6d34fe7 bnxt_en: Fix "uninitialized variable" bug in TPA code path.
   da805bc788b0 xen-netback: protect resource cleaning on XenBus disconnect
   7bdccaa5da12 xen-netback: fix memory leaks on XenBus disconnect
   5dcd08594276 net: ethtool: Initialize buffer when querying device channel settings
   6e315b2b10b6 powerpc/eeh: Enable IO path on permanent error
   ea7b808165a5 net: korina: Fix NAPI versus resources freeing
   fded17be01ab perf/x86/intel: Handle exclusive threadid correctly on CPU hotplug
   3eeb3459b7e6 net: phy: dp83848: add DP83620 PHY support
   10c24e89b2b8 drm/amdgpu: add support for new hainan variants
   9f2a36a7504c drm/amdgpu: fix program vce instance logic error.
   0c9626619777 qla2xxx: Fix erroneous invalid handle message
   8cfcaa2899f3 qla2xxx: Terminate exchange if corrupted
   42a1d5b47594 scsi: lpfc: Set elsiocb contexts to NULL after freeing it
   7782ab228f64 stmmac: add missing of_node_put
   ee4494c6bda8 scsi: sd: Fix wrong DPOFUA disable in sd_read_cache_type
   80b1a1180e4e KVM: x86: fix fixing of hypercalls
   afaee3ef5136 xen/blkback: don't free be structure too early
   13fa36f9fbc8 ARM64: dts: meson-gxbb-odroidc2: fix GbE tx link breakage
   8bface142a8d dt: bindings: net: use boolean dt properties for eee broken modes
   3897ae12b706 net: phy: use boolean dt properties for eee broken modes
   40373d91a0f7 net: phy: fix sign type error in genphy_config_eee_advert
   752ba680eb70 dt-bindings: net: add EEE capability constants
   97ace183074d net: phy: add an option to disable EEE advertisement
   0e8eca987e27 net: ethtool: add support for 2500BaseT and 5000BaseT link modes
   8886196a7320 sparc64: Zero pages on allocation for mondo and error queues.
   41172b772da4 sparc64: Handle PIO & MEM non-resumable errors.
   2aa6d036b716 mm: numa: avoid waiting on freed migrated pages
   08cb8e5f83fd l2tp: take a reference on sessions used in genetlink handlers
   599e6f038777 l2tp: hold session while sending creation notifications
   d9face6fc62a l2tp: fix duplicate session creation
   806e98835683 l2tp: ensure session can't get removed during pppol2tp_session_ioctl()
   6539c4f991c2 l2tp: fix race in l2tp_recv_common()
   d2da8d394147 usb: gadget: f_fs: Fix possibe deadlock
   ed96148d7f8e x86/mm: Fix boot crash caused by incorrect loop count calculation in sync_global_pgds()
   1c0fa383b339 dm thin: do not queue freed thin mapping for next stage processing
   466877f2d257 drm/vmwgfx: Free hash table allocated by cmdbuf managed res mgr
   78c4244f8bdb gpiolib: fix filtering out unwanted events
   cb2c6fdf620f NFSv4.1: Fix a race in nfs4_proc_layoutget
   7d0e27fe24c5 ALSA: hda - set input_path bitmap to zero after moving it to new place
   093750c3dec4 ALSA: hda - Fix endless loop of codec configure
   dad3135e762b MIPS: Fix IRQ tracing & lockdep when rescheduling
   e9e24faf823e MIPS: pm-cps: Drop manual cache-line alignment of ready_count
   f7d3d40ea124 MIPS: Avoid accidental raw backtrace
   3d4ac49a9538 MIPS: head: Reorder instructions missing a delay slot
   b1355226a64e mm, swap_cgroup: reschedule when neeed in swap_cgroup_swapoff()
   dbc808362b6c drm/ast: Handle configuration without P2A bridge
   8dc9f9dede5b xen/blkback: don't use xen_blkif_get() in xen-blkback kthread
   4ebe28d23d35 NFSv4.x/callback: Create the callback service through svc_create_pooled
   955f270b6f5d NFSv4: fix a reference leak caused WARNING messages
   b89bd0c715c1 netfilter: synproxy: fix conntrackd interaction
   ced7689be60d netfilter: xt_TCPMSS: add more sanity tests on tcph->doff
   8e2316399b8f rtnetlink: add IFLA_GROUP to ifla_policy
   b9ca9b0f5510 ipv6: Do not leak throw route references
   e4089baa08c4 sfc: provide dummy definitions of vswitch functions
   08058c258afb net: 8021q: Fix one possible panic caused by BUG_ON in free_netdev
   f1a0e7d172b0 decnet: always not take dst->__refcnt when inserting dst into hash table
   c7d422d68fe9 net/mlx5e: Fix timestamping capabilities reporting
   25ff35074e27 net/mlx5: Wait for FW readiness before initializing command interface
   176b9874a203 net/mlx5e: Avoid doing a cleanup call if the profile doesn't have it
   4c246863e7b4 sctp: return next obj by passing pos + 1 into sctp_transport_get_idx
   fded2d74a350 ipv6: fix calling in6_ifa_hold incorrectly for dad work
   cac2a9bb4034 igmp: add a missing spin_lock_init()
   ecd6627f48bd igmp: acquire pmc lock for ip_mc_clear_src()
   059686754c18 proc: snmp6: Use correct type in memset
   78b24ab695ab net/mlx5e: Fix wrong indications in DIM due to counter wraparound
   9854e5865990 net/mlx5e: Added BW check for DIM decision mechanism
   57360bc3c7a6 net: tipc: Fix a sleep-in-atomic bug in tipc_msg_reverse
   bb566ce3a60e net: caif: Fix a sleep-in-atomic bug in cfpkt_create_pfx
   8cda426a7cfa sctp: disable BH in sctp_for_each_endpoint
   c6d4ff85722b Fix an intermittent pr_emerg warning about lo becoming free.
   bb84290cd296 af_unix: Add sockaddr length checks before accessing sa_family in bind and connect handlers
   386ed38f0f28 net: vrf: Make add_fib_rules per network namespace flag
   b5cc68e0c190 net: Zero ifla_vf_info in rtnl_fill_vfinfo()
   fd9b13e6c175 decnet: dn_rtmsg: Improve input length sanitization in dnrmg_receive_user_skb
   d2f459e3feb0 net: don't call strlen on non-terminated string in dev_set_alias()
   98184bbb8dae ipv6: release dst on error in ip6_dst_lookup_tail
   92905e331aea Linux 4.9.35
   855b08e57777 brcmfmac: fix uninitialized warning in brcmf_usb_probe_phase2()
   21eaaa76b701 jump label: fix passing kbuild_cflags when checking for asm goto support
   ffa96c1a6afe net: phy: fix marvell phy status reading
   5da6415e427b spi: double time out tolerance
   25c7794ed046 dmaengine: bcm2835: Fix cyclic DMA period splitting
   81135c71bde3 net: phy: Initialize mdio clock at probe function
   948c4f17ab7e rt2x00: avoid introducing a USB dependency in the rt2x00lib module
   225969acc0f1 usb: gadget: f_fs: avoid out of bounds access on comp_desc
   5306119473b2 mtd: spi-nor: fix spansion quad enable
   dcd015f733a7 of: Add check to of_scan_flat_dt() before accessing initial_boot_params
   f20603874211 rxrpc: Fix several cases where a padded len isn't checked in ticket decode
   581659a87820 drm/amdgpu: adjust default display clock
   217e035d5120 drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating
   e4b8d1e84410 drm/radeon: add a quirk for Toshiba Satellite L20-183
   61ea7c2817bd drm/radeon: add a PX quirk for another K53TK variant
   3900f24aa6fa iscsi-target: Reject immediate data underflow larger than SCSI transfer length
   463440e6de4a iscsi-target: Fix delayed logout processing greater than SECONDS_FOR_LOGOUT_COMP
   1f576d53d854 target: Fix kref->refcount underflow in transport_cmd_finish_abort
   99f66b5182a4 arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW
   a53bfdda06ac time: Fix CLOCK_MONOTONIC_RAW sub-nanosecond accounting
   02a37ccd6347 time: Fix clock->read(clock) race around clocksource changes
   c81d034bd09a brcmfmac: unbind all devices upon failure in firmware callback
   ba2d8d67875c brcmfmac: use firmware callback upon failure to load
   1dd15bd62221 brcmfmac: add parameter to pass error code in firmware callback
   20d8f785f974 Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list
   8eaa481dfb4c powerpc/64s: Handle data breakpoints in Radix mode
   414f51ceb6ff powerpc/kprobes: Pause function_graph tracing during jprobes handling
   f719f20abe2a signal: Only reschedule timers on signals timers have sent
   99afebe8fef9 HID: Add quirk for Dell PIXART OEM mouse
   cdf300d6105d cxgb4: notify uP to route ctrlq compl to rdma rspq
   fb6dc831b5cf CIFS: Improve readdir verbosity
   2f1527e359f4 KVM: PPC: Book3S HV: Context-switch EBB registers properly
   468aa930c0a2 KVM: PPC: Book3S HV: Preserve userspace HTM state properly
   df3a787b3a71 KVM: s390: gaccess: fix real-space designation asce handling for gmap shadows
   5220378bd91c perf/x86/intel: Add 1G DTLB load/store miss support for SKL
   7c679fe729c2 lib/cmdline.c: fix get_options() overflow while parsing ranges
   bc6eecff3d95 autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL
   4b660fcbc64e powerpc/perf: Fix oops when kthread execs user process
   3d6848e491df fs/exec.c: account for argv/envp pointers
   552a14a572a2 ALSA: pcm: Don't treat NULL chmap as a fatal error
   8c9c55a0f576 ALSA: firewire-lib: Fix stall of process context at packet error
   4ae2cb91a636 xen-blkback: don't leak stack data via response ring
   e5c49c1703ae xen/blkback: fix disconnect while I/Os in flight
   0e051f17bd04 clk: sunxi-ng: a31: Correct lcd1-ch1 clock register offset
   493ecd5cd73e Linux 4.9.34
   ce7fe8595902 mm: fix new crash in unmapped_area_topdown()
   5d10ad629726 Allow stack to grow up to address space limit
   cfc0eb403816 mm: larger stack guard gap, between vmas
   04651048c79a alarmtimer: Rate limit periodic intervals
   b355b899c74a crypto: Work around deallocated stack frame reference gcc bug on sparc.
   7dfe7ca9ec12 vTPM: Fix missing NULL check
   ecae47331a43 MIPS: .its targets depend on vmlinux
   6b706cbb16e9 MIPS: Fix bnezc/jialc return address calculation
   22921a9e232a usb: dwc3: exynos fix axius clock error path to do cleanup
   f0ee203c864f usb: gadget: composite: Fix function used to free memory
   8ee7f06f4dca alarmtimer: Prevent overflow of relative timers
   766283254b67 genirq: Release resources in __setup_irq() error path
   8a48b7eace4d sched/core: Idle_task_exit() shouldn't use switch_mm_irqs_off()
   cf6ac3abb323 iio: imu: inv_mpu6050: add accel lpf setting for chip >= MPU6500
   f7ae7d2229d2 swap: cond_resched in swap_cgroup_prepare()
   1419b8752153 mm/memory-failure.c: use compound_head() flags for huge pages
   0c0d3d8730db USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
   3ff5f4f6a8a7 USB: gadget: fix GPF in gadgetfs
   06178662474c usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
   4581d7dd44f3 usb: xhci: Fix USB 3.1 supported protocol parsing
   2abac4084fb9 drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR()
   f28ba80c6a3e misc: mic: double free on ioctl error path
   02d009e865a8 ath10k: fix napi crash during rmmod when probe firmware fails
   07612c1227e8 usb: r8a66597-hcd: decrease timeout
   f75f4d196ab5 usb: r8a66597-hcd: select a different endpoint on timeout
   c8091f0e8549 USB: gadget: dummy_hcd: fix hub-descriptor removable fields
   374aceef5912 pvrusb2: reduce stack usage pvr2_eeprom_analyze()
   9ae5dac225e2 USB: usbip: fix nonconforming hub descriptor
   7b5bce3a5128 usb: core: fix potential memory leak in error path during hcd creation
   12bfbe157d06 USB: hub: fix SS max number of ports
   cb53a4e03b2f usb: gadget: udc: renesas_usb3: lock for PN_ registers access
   dd65c0958b77 usb: gadget: udc: renesas_usb3: fix deadlock by spinlock
   723bd3b9f83f usb: gadget: udc: renesas_usb3: fix pm_runtime functions calling
   b51e4b0ac661 IB/mlx5: Fix kernel to user leak prevention logic
   dca02651cee7 iio: adc: ti_am335x_adc: allocating too much in probe
   cf308c15103e iio: proximity: as3935: recalibrate RCO after resume
   56251d138570 iio: st_pressure: Fix data sign
   a1d51f7abf71 staging: iio: tsl2x7x_core: Fix standard deviation calculation
   773fdcdc0957 staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
   ed13a9c6464b mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
   caa6f1c7bcbe x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
   ad3faea03fdf serial: sh-sci: Fix late enablement of AUTORTS
   a50aacf5de52 serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
   879d61f218a9 drm/vc4: Fix OOPSes from trying to cache a partially constructed BO.
   5899b635ecc7 drm/mediatek: fix mtk_hdmi_setup_vendor_specific_infoframe mistake
   5b754c994f38 mac80211: don't send SMPS action frame in AP mode when not needed
   3e8c503d0a16 mac80211: fix dropped counter in multiqueue RX
   6568f8f70152 mac80211: strictly check mesh address extension mode
   c8143269c9c4 mac80211: fix IBSS presp allocation size
   841e4e775bb1 mac80211: fix packet statistics for fast-RX
   f79d740f3289 mac80211: fix CSA in IBSS mode
   bd3f89002e52 usb: musb: dsps: keep VBUS on for host-only mode
   a317afc0c1ce drm/i915: Fix GVT-g PVINFO version compatibility check
   7f7bb1173db8 drm/amdgpu: Fix overflow of watermark calcs at > 4k resolutions.
   f6e99a2efc03 mac80211/wpa: use constant time memory comparison for MACs
   2ec5b68bf62e mac80211: don't look at the PM bit of BAR frames
   63d34ea7042a vb2: Fix an off by one error in 'vb2_plane_vaddr'
   5d5605cc5833 cpufreq: conservative: Allow down_threshold to take values from 1 to 10
   47537bceb7b7 ila_xlat: add missing hash secret initialization
   95f47cd7d7d8 can: gs_usb: fix memory leak in gs_cmd_reset()
   a6d6282040b7 configfs: Fix race between create_link and configfs_rmdir
   222aa34e5d79 fs: pass on flags in compat_writev
   050639ef5810 Linux 4.9.33
   bdc9a03fd9ce sparc64: make string buffers large enough
   933b9b11f7ca drm/i915: Always recompute watermarks when distrust_bios_wm is set, v2.
   4f59a7a895c4 drm/i915: Workaround VLV/CHV DSI scanline counter hardware fail
   8e1a4006ff92 s390/kvm: do not rely on the ILC on kvm host protection fauls
   a2f68276822c xtensa: don't use linux IRQ #0
   57211e84dda0 RDMA/qedr: Return max inline data in QP query result
   c5ea7aa57e24 RDMA/qedr: Don't spam dmesg if QP is in error state
   13a87589af5f RDMA/qedr: Don't reset QP when queues aren't flushed
   bbf61096e42c RDMA/qedr: Fix and simplify memory leak in PD alloc
   a4fa249385b6 RDMA/qedr: Dispatch port active event from qedr_add
   c47538f61016 netfilter: nft_log: restrict the log prefix length to 127
   fefdd79403e8 netfilter: nf_tables: fix set->nelems counting with no NLM_F_EXCL
   f68a45776a62 tipc: fix nametbl_lock soft lockup at node/link events
   1d6e36d730ed tipc: add subscription refcount to avoid invalid delete
   9f8df4f86a3f tipc: fix connection refcount error
   c7a552e771cc tipc: ignore requests when the connection state is not CONNECTED
   2552e2c11575 ARCv2: smp-boot: wake_flag polling by non-Masters needs to be uncached
   8cb6045ec40d ARC: smp-boot: Decouple Non masters waiting API from jump to entry point
   ae36f6a65af6 vhost/vsock: handle vhost_vq_init_access() error
   b13b3b706a9d kernel/watchdog: prevent false hardlockup on overloaded system
   0ce66ee6aec1 kernel/watchdog.c: move shared definitions to nmi.h
   b969a240448b kernel/watchdog.c: move hardlockup detector to separate file
   dbd9eee1aaaf userfaultfd: fix SIGBUS resulting from false rwsem wakeups
   9618fba26499 proc: add a schedule point in proc_pid_readdir()
   e23b1c05a50f frv: add missing atomic64 operations
   918684681dc2 frv: add atomic64_add_unless()
   013bbbc3e902 romfs: use different way to generate fsid for BLOCK or MTD
   093d494c6d1d mn10300: fix build error of missing fpu_save()
   5e4cafca06bf usb: musb: Fix external abort on non-linefetch for musb_irq_work()
   fb72eca1333c sctp: sctp_addr_id2transport should verify the addr before looking up assoc
   bf812fe92683 sctp: sctp gso should set feature with NETIF_F_SG when calling skb_segment
   12a583ddf02a bnxt_en: Fix RTNL lock usage on bnxt_get_port_module_status().
   66deb409251c bnxt_en: Fix RTNL lock usage on bnxt_update_link().
   e89ffe41e9a6 bnxt_en: Enhance autoneg support.
   710ea9b028de bnxt_en: Fix bnxt_reset() in the slow path task.
   cb7188295d18 net-next: ethernet: mediatek: change the compatible string
   e9ace99c4bb0 r8152: avoid start_xmit to schedule napi when napi is disabled
   c1a7106b3b01 r8152: fix rtl8152_post_reset function
   9507910ca46d r8152: re-schedule napi for tx
   4242f0bce47e r8152: check rx after napi is enabled
   993ba7ffcf6e r8152: avoid start_xmit to call napi_schedule during autosuspend
   6149abe7f404 nvmet-rdma: Fix missing dma sync to nvme data structures
   5a0d41409b4d nfs: Fix "Don't increment lock sequence ID after NFS4ERR_MOVED"
   d16268259683 ravb: unmap descriptors when freeing rings
   47c362f147aa drm/ast: Fixed system hanged if disable P2A
   bfa4d2e461da drm/nouveau: Fix drm poll_helper handling
   c94e2edacea7 drm/nouveau: Don't enabling polling twice on runtime resume
   c7a29cf6c34a drm/nouveau: Handle fbcon suspend/resume in seperate worker
   d2beb1a9dd82 drm/nouveau: Rename acpi_work to hpd_work
   ef66745a1bd2 drm/nouveau: Intercept ACPI_VIDEO_NOTIFY_PROBE
   eb846414674c gtp: add genl family modules alias
   7dddbfcd96e2 net: phy: micrel: add support for KSZ8795
   2f970b437e86 parisc, parport_gsc: Fixes for printk continuation lines
   4038524f7fef net/mlx5: Return EOPNOTSUPP when failing to get steering name-space
   b445ecbdff83 net/mlx5: E-Switch, Err when retrieving steering name-space fails
   2bcbe747629e drm/i915: Check for NULL i915_vma in intel_unpin_fb_obj()
   e6549f36278c net: adaptec: starfire: add checks for dma mapping errors
   a15bbf44ab2f pinctrl: berlin-bg4ct: fix the value for "sd1a" of pin SCRD0_CRD_PRES
   326fdffd7078 drm: Don't race connector registration
   82b6693bd415 drm: prevent double-(un)registration for connectors
   d934fe02ba17 cec: fix wrong last_la determination
   62614714e30a pinctrl: baytrail: Rectify debounce support (part 2)
   3564d41e5c84 gianfar: synchronize DMA API usage by free_skb_rx_queue w/ gfar_new_page
   581e4003bf12 net/mlx4_core: Avoid command timeouts during VF driver device shutdown
   c33f1bd7f289 drm/nouveau/fence/g84-: protect against concurrent access to semaphore buffers
   cf336eea809d drm/nouveau: prevent userspace from deleting client object
   16f733d8db52 ipv6: fix flow labels when the traffic class is non-0
   0542f9791246 FS-Cache: Initialise stores_lock in netfs cookie
   34f1a4626bad fscache: Clear outstanding writes when disabling a cookie
   11696dcea282 fscache: Fix dead object requeue
   f4d2d05ffb8b net: fix ndo_features_check/ndo_fix_features comment ordering
   3a6ebd3f963c net: phy: Fix PHY module checks and NULL deref in phy_attach_direct()
   ea14fabd43a5 net: phy: Fix lack of reference count on PHY driver
   2fba4f5b70f3 ethtool: do not vzalloc(0) on registers dump
   8de6ea44af5c log2: make order_base_2() behave correctly on const input value zero
   5331baaeb7e6 kasan: respect /proc/sys/kernel/traceoff_on_warning
   8936b74fd339 shmem: fix sleeping from atomic context
   3ec4141c68de jump label: pass kbuild_cflags when checking for asm goto support
   36d9659cde0d PM / runtime: Avoid false-positive warnings from might_sleep_if()
   40f6d71c0a09 ARM: defconfigs: make NF_CT_PROTO_SCTP and NF_CT_PROTO_UDPLITE built-in
   1cadd394bbf9 ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches
   d536202202ee vfio/spapr_tce: Set window when adding additional groups to container
   d385ed7ad307 ipv6: addrconf: fix generation of new temporary addresses
   d7b2b380c08d net: thunderx: Fix PHY autoneg for SGMII QLM mode
   baaa84b43608 kernel/ucount.c: mark user_header with kmemleak_ignore()
   c419fe260b54 powerpc/powernv: Properly set "host-ipi" on IPIs
   47a5aabc3424 i2c: piix4: Fix request_region size
   c1a4306f24a0 i2c: piix4: Request the SMBUS semaphore inside the mutex
   7a6fcf38fabb sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications
   9217eeefee15 sierra_net: Skip validating irrelevant fields for IDLE LSIs
   bed8b8627a33 net: hns: Fix the device being used for dma mapping during TX
   008798746e6e NET: mkiss: Fix panic
   ae0b63eb344e ibmvnic: Initialize completion variables before starting work
   4544ba3173b7 ibmvnic: Call napi_disable instead of napi_enable in failure path
   74e24d1ea1a4 NET: Fix /proc/net/arp for AX.25
   2557969fb4f7 gfs2: Use rhashtable walk interface in glock_hash_walk
   44bc7cae6031 tipc: Fix tipc_sk_reinit race conditions
   cb351da6f2ba ipv6: Inhibit IPv4-mapped src address on the wire.
   12ec2560d467 ipv6: Handle IPv4-mapped src to in6addr_any dst.
   116589a5a7e0 tcp: tcp_probe: use spin_lock_bh()
   a2901d01a6c7 net: xilinx_emaclite: fix receive buffer overflow
   bff3001afae7 net: xilinx_emaclite: fix freezes due to unordered I/O
   65e72723add0 ibmvnic: Fix endian error when requesting device capabilities
   b5a1aa812a16 ibmvnic: Fix endian errors in error reporting output
   d864e675c789 netfilter: nf_conntrack_sip: fix wrong memory initialisation
   220b67a16fde partitions/msdos: FreeBSD UFS2 file systems are not recognized
   7a7b2d5f65a7 drm/i915: Prevent the system suspend complete optimization
   b372d35a5226 PCI/PM: Add needs_resume flag to avoid suspend complete optimization
   05afd4c0af6a Linux 4.9.32
   3eb235a1af14 netfilter: nft_set_rbtree: handle element re-addition after deletion
   a8fc3159ee2c cpufreq: schedutil: Fix per-CPU structure initialization in sugov_start()
   afe8d4a51c76 cpufreq: schedutil: move cached_raw_freq to struct sugov_policy
   09fcb3561d9e drm/i915/vbt: split out defaults that are set when there is no VBT
   555c443a1ab9 drm/i915/vbt: don't propagate errors from intel_bios_init()
   a6a7d8ade88c usercopy: Adjust tests to deal with SMAP/PAN
   eefa5e13dff9 ARM: 8637/1: Adjust memory boundaries after reservations
   1df21f45fd55 ARM: 8636/1: Cleanup sanity_check_meminfo
   9e09d90ac5ac arm64: entry: improve data abort handling of tagged pointers
   1d61ccb5ac27 arm64: hw_breakpoint: fix watchpoint matching for tagged pointers
   791d94ef40f6 arm64: traps: fix userspace cache maintenance emulation on a tagged pointer
   d95202487334 serial: sh-sci: Fix panic when serial console and DMA are enabled
   9ff4a1a36a58 drivers: char: mem: Fix wraparound check to allow mappings up to the end
   106c77e82572 cpu/hotplug: Drop the device lock on error
   eb8fa317cb01 ASoC: Fix use-after-free at card unregistration
   82ecd2f054bd ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
   66e982d8f1a1 ALSA: timer: Fix race between read and ioctl
   aae14f569f5d drm/nouveau/tmr: fully separate alarm execution/pending lists
   7860d0e5e2bf drm/vmwgfx: Make sure backup_handle is always valid
   a76ff847013a drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
   64c21af51d71 drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
   3743c0e1276d perf/core: Drop kernel samples even though :u is specified
   6e6d89e18e53 powerpc/kernel: Initialize load_tm on task creation
   2cfdf4fd3292 powerpc/kernel: Fix FP and vector register restoration
   cbf687acc1e1 powerpc/hotplug-mem: Fix missing endian conversion of aa_index
   b4624ff952ec powerpc/numa: Fix percpu allocations to be NUMA aware
   bb0a300f18ce powerpc/sysdev/simple_gpio: Fix oops in gpio save_regs function
   59d9a40b5839 scsi: qla2xxx: Fix mailbox pointer error in fwdump capture
   64dc431432ec scsi: qla2xxx: Set bit 15 for DIAG_ECHO_TEST MBC
   ab2b484e8038 scsi: qla2xxx: Modify T262 FW dump template to specify same start/end to debug customer issues
   fe42472e53eb scsi: qla2xxx: don't disable a not previously enabled PCI device
   f75e09ebd3e4 KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
   66d6448475c6 btrfs: fix memory leak in update_space_info failure path
   4d15ab90ec2b btrfs: use correct types for page indices in btrfs_page_exists_in_range
   3fd1233dabd5 cxl: Avoid double free_irq() for psl,slice interrupts
   172c70d1cd82 cxl: Fix error path on bad ioctl
   84bef90a454f ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path
   3d4922b5bb5b ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments()
   55a00f816bd7 ufs: set correct ->s_maxsize
   aed005fb7956 ufs: restore maintaining ->i_blocks
   bf7bfef3eee3 fix ufs_isblockset()
   4896c87d2464 ufs: restore proper tail allocation
   61604a2626a3 fs: add i_blocksize()
   829a1cab22c4 cpuset: consider dying css as offline
   5aa8f833ca78 Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled
   dff4c8bb1397 cgroup: Prevent kill_css() from being called more than once
   b59ec7072c84 ahci: Acer SA5-271 SSD Not Detected Fix
   b3a42bb630bd drm/msm: Expose our reservation object when exporting a dmabuf.
   974a4eb16e84 target: Re-add check to reject control WRITEs with overflow data
   96d7b43b42ba cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
   acd8f9173960 mei: make sysfs modalias format similar as uevent modalias
   716dd37398ad iio: proximity: as3935: fix iio_trigger_poll issue
   bad3b49b01aa iio: proximity: as3935: fix AS3935_INT mask
   8067c911c5e9 iio: light: ltr501 Fix interchanged als/ps register field
   e33679f994db iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's
   c5a8004434f0 staging/lustre/lov: remove set_fs() call from lov_getstripe()
   5404b0c0ea85 usb: chipidea: debug: check before accessing ci_role
   59db536f5812 usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
   405ac24a0aec usb: gadget: f_mass_storage: Serialize wake and sleep execution
   1308eeec2fc5 drm: Fix oops + Xserver hang when unplugging USB drm devices
   c404f0dee7a8 ext4: fix fdatasync(2) after extent manipulation operations
   2e16921d1743 ext4: fix data corruption with EXT4_GET_BLOCKS_ZERO
   9890b9cb75c9 ext4: keep existing extra fields when inode expands
   9850844e0a0e ext4: fix SEEK_HOLE
   9636c086532b xen/privcmd: Support correctly 64KB page granularity when mapping memory
   08229c119c42 cfq-iosched: fix the delay of cfq_group's vdisktime under iops mode
   1f67d28d2707 dmaengine: mv_xor_v2: set DMA mask to 40 bits
   eb5afaba6177 dmaengine: mv_xor_v2: remove interrupt coalescing
   b2c8bb06bc83 dmaengine: mv_xor_v2: fix tx_submit() implementation
   0d0918504a96 dmaengine: mv_xor_v2: enable XOR engine after its configuration
   e2a092eab8a5 dmaengine: mv_xor_v2: do not use descriptors not acked by async_tx
   67b1684c4a5e dmaengine: mv_xor_v2: properly handle wrapping in the array of HW descriptors
   f08c84d4c745 dmaengine: mv_xor_v2: handle mv_xor_v2_prep_sw_desc() error properly
   f2e9d10bf1a2 dmaengine: ep93xx: Don't drain the transfers in terminate_all()
   b7e7a4d52a95 dmaengine: ep93xx: Always start from BASE0
   cd0ef520aa70 dmaengine: usb-dmac: Fix DMAOR AE bit definition
   3e7a76b290f1 KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt
   2a5c08a4d3fe KVM: arm/arm64: vgic-v3: Do not use Active+Pending state for a HW interrupt
   81555e45852a KVM: async_pf: avoid async pf injection when in guest mode
   85c19308cb37 arm: KVM: Allow unaligned accesses at HYP
   8abce1e49c82 arm64: KVM: Allow unaligned accesses at EL2
   b9824dd75fcf arm64: KVM: Preserve RES1 bits in SCTLR_EL2
   19c9a115085e KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
   78f87ce2a17f kvm: async_pf: fix rcu_irq_enter() with irqs enabled
   4809f0e56d98 efi: Don't issue error message when booted under Xen
   e273ed246617 nfsd: Fix up the "supattr_exclcreat" attributes
   bfeac838043f nfsd4: fix null dereference on replay
   34bae9b3ba98 drm/amdgpu/ci: disable mclk switching for high refresh rates (v2)
   d4783eb9f082 crypto: gcm - wait for crypto op not signal safe
   2d0280070e6c crypto: drbg - wait for crypto op not signal safe
   d24c1c1977d8 KEYS: encrypted: avoid encrypting/decrypting stack buffers
   24369761029a KEYS: fix freeing uninitialized memory in key_update()
   1b253e023f8f KEYS: fix dereferencing NULL payload with nonzero length
   0e479742e8d1 crypto: asymmetric_keys - handle EBUSY due to backlog correctly
   7c24a70c70b7 ptrace: Properly initialize ptracer_cred on fork
   3802abc6e0df serial: ifx6x60: fix use-after-free on module unload
   04ac452dadbf arch/sparc: support NR_CPUS = 4096
   433a50e681df sparc64: delete old wrap code
   b6bb22de0c9e sparc64: new context wrap
   975f3cdc3915 sparc64: add per-cpu mm of secondary contexts
   7932bfad0e82 sparc64: redefine first version
   65e3443b61a8 sparc64: combine activate_mm and switch_mm
   e7590a1b15c8 sparc64: reset mm cpumask after wrap
   b3ad7a3e57b3 sparc: Machine description indices can vary
   8d665e039e66 sparc64: mm: fix copy_tsb to correctly copy huge page TSBs
   4b684e6474d0 sparc64: Add __multi3 for gcc 7.x and later.
   0255284edddc net: bridge: start hello timer only if device is up
   3dd4daf112fd net: stmmac: fix completely hung TX when using TSO
   a83564d12863 net: ethoc: enable NAPI before poll may be scheduled
   a97f807363d4 net/ipv6: Fix CALIPSO causing GPF with datagram support
   0aa89f1b07de net: ping: do not abuse udp_poll()
   599a4478d8cb ipv6: Fix leak in ipv6_gso_segment().
   c242e1a8140e vxlan: fix use-after-free on deletion
   3ee35b96825e tcp: disallow cwnd undo when switching congestion control
   61c92d5a533c cxgb4: avoid enabling napi twice to the same queue
   abbcb731d69c ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
   b5e9b7ad0dd4 vxlan: eliminate cached dst leak
   96d145216b58 bnx2x: Fix Multi-Cos

(From OE-Core rev: d16cf5d390a04d8135e51314fc704b8d19eefa03)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit d9d950bd48566e5a2e92ad4a2fd943ad828fb8df)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
9ec87ef11c linux-yocto/4.4: update to v4.4.76
Integrating the -stable commit with the following changes:

   4282d39575bf Linux 4.4.76
   be8c39b47061 KVM: nVMX: Fix exception injection
   77d977dd78b3 KVM: x86: zero base3 of unusable segments
   3b1609f6c436 KVM: x86/vPMU: fix undefined shift in intel_pmu_refresh()
   b9b3eb5c774e KVM: x86: fix emulation of RSM and IRET instructions
   3491a0b59fcd cpufreq: s3c2416: double free on driver init error path
   aad7041e721e iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()
   48952c6d517a iommu: Handle default domain attach failure
   3de9630abe3b iommu/vt-d: Don't over-free page table directories
   404ef3b4bf62 ocfs2: o2hb: revert hb threshold to keep compatible
   5d650fcef901 x86/mm: Fix flush_tlb_page() on Xen
   6fb3b322307e x86/mpx: Correctly report do_mpx_bt_fault() failures to user-space
   7cd8c4903171 ARM: 8685/1: ensure memblock-limit is pmd-aligned
   d4960d58158b ARM64/ACPI: Fix BAD_MADT_GICC_ENTRY() macro implementation
   6ca11db55f62 sched/loadavg: Avoid loadavg spikes caused by delayed NO_HZ accounting
   f6115ec09225 watchdog: bcm281xx: Fix use of uninitialized spinlock.
   f99737ce2e56 xfrm: Oops on error in pfkey_msg2xfrm_state()
   ac78351c96e8 xfrm: NULL dereference on allocation failure
   398ac7a19f17 xfrm: fix stack access out of bounds with CONFIG_XFRM_SUB_POLICY
   736b342cc9b4 jump label: fix passing kbuild_cflags when checking for asm goto support
   53ae0c2ffef7 ravb: Fix use-after-free on `ifconfig eth0 down`
   db1323b77c2b sctp: check af before verify address in sctp_addr_id2transport
   d521e9c384f9 net/mlx4_core: Eliminate warning messages for SRQ_LIMIT under SRIOV
   9837392c2b3e perf probe: Fix to show correct locations for events on modules
   0593fa8f34a2 be2net: fix status check in be_cmd_pmac_add()
   5416a88c2fef s390/ctl_reg: make __ctl_load a full memory barrier
   9a536d587246 swiotlb: ensure that page-sized mappings are page-aligned
   878f37efac3e coredump: Ensure proper size of sparse core files
   c20bdc08af9b x86/mpx: Use compatible types in comparison to fix sparse error
   14339b018bc2 mac80211: initialize SMPS field in HT capabilities
   11dd9e2c4803 spi: davinci: use dma_mapping_error()
   be91b09750bf scsi: lpfc: avoid double free of resource identifiers
   4ac60b20f703 HID: i2c-hid: Add sleep between POWER ON and RESET
   70f41003b9d1 kernel/panic.c: add missing \n
   e4272ebefc83 ibmveth: Add a proper check for the availability of the checksum features
   8fa301abb31a vxlan: do not age static remote mac entries
   00e83abf8e62 virtio_net: fix PAGE_SIZE > 64k
   c64f4194a65b vfio/spapr: fail tce_iommu_attach_group() when iommu_data is null
   d3be5e0471ab drm/amdgpu: check ring being ready before using
   58a766c460b1 net: dsa: Check return value of phy_connect_direct()
   3d2cbbcbde3d amd-xgbe: Check xgbe_init() return code
   dac30e3dbd72 platform/x86: ideapad-laptop: handle ACPI event 1
   666c821b0ae3 scsi: virtio_scsi: Reject commands when virtqueue is broken
   230fe9c7d814 xen-netfront: Fix Rx stall during network stress and OOM
   8df98ff6c394 swiotlb-xen: update dev_addr after swapping pages
   23c7f01691a1 virtio_console: fix a crash in config_work_handler
   6e1116a0b3e2 Btrfs: fix truncate down when no_holes feature is enabled
   961efcd54e5b gianfar: Do not reuse pages from emergency reserve
   477a2359c881 powerpc/eeh: Enable IO path on permanent error
   e1db592de735 net: bgmac: Remove superflous netif_carrier_on()
   e66647f0e1ff net: bgmac: Start transmit queue in bgmac_open
   f01babed64e6 net: bgmac: Fix SOF bit checking
   992048f8ae84 bgmac: Fix reversed test of build_skb() return value.
   ebfa83ab5a53 mtd: bcm47xxpart: don't fail because of bit-flips
   1124701061d8 bgmac: fix a missing check for build_skb
   11e4bb957f1a mtd: bcm47xxpart: limit scanned flash area on BCM47XX (MIPS) only
   e025a30dd8b0 MIPS: ralink: fix MT7628 wled_an pinmux gpio
   cd1fe5c31e91 MIPS: ralink: fix MT7628 pinmux typos
   c9336bbdd924 MIPS: ralink: Fix invalid assignment of SoC type
   ad310161f513 MIPS: ralink: fix USB frequency scaling
   9a23a35a4fc6 MIPS: ralink: MT7688 pinmux fixes
   e1688f1677e6 net: korina: Fix NAPI versus resources freeing
   ef0cb4c9d496 MIPS: ath79: fix regression in PCI window initialization
   753be27f77eb net: mvneta: Fix for_each_present_cpu usage
   0012ba253767 ARM: dts: BCM5301X: Correct GIC_PPI interrupt flags
   50e18570d8ea qla2xxx: Fix erroneous invalid handle message
   8c721e38055a scsi: lpfc: Set elsiocb contexts to NULL after freeing it
   5c982bac211c scsi: sd: Fix wrong DPOFUA disable in sd_read_cache_type
   b92f9f6a2c09 KVM: x86: fix fixing of hypercalls
   cdbf92675fad mm: numa: avoid waiting on freed migrated pages
   21d7c733251a block: fix module reference leak on put_disk() call for cgroups throttle
   2449a71eb982 sysctl: enable strict writes
   1e0f216195a6 usb: gadget: f_fs: Fix possibe deadlock
   04686ab28a35 drm/vmwgfx: Free hash table allocated by cmdbuf managed res mgr
   c70e2006d06a ALSA: hda - set input_path bitmap to zero after moving it to new place
   11327be3570e ALSA: hda - Fix endless loop of codec configure
   db60a2ec9acc MIPS: Fix IRQ tracing & lockdep when rescheduling
   93206654a0b2 MIPS: pm-cps: Drop manual cache-line alignment of ready_count
   cb611ead80a2 MIPS: Avoid accidental raw backtrace
   74de12dbfa7c mm, swap_cgroup: reschedule when neeed in swap_cgroup_swapoff()
   a9e5044b6804 drm/ast: Handle configuration without P2A bridge
   542442710021 NFSv4: fix a reference leak caused WARNING messages
   e052be55a598 netfilter: synproxy: fix conntrackd interaction
   234e649840d1 netfilter: xt_TCPMSS: add more sanity tests on tcph->doff
   095a41128cb6 rtnetlink: add IFLA_GROUP to ifla_policy
   640a09c64ec6 ipv6: Do not leak throw route references
   9de17701a3bc sfc: provide dummy definitions of vswitch functions
   1f8bb6053249 net: 8021q: Fix one possible panic caused by BUG_ON in free_netdev
   f50f2e0cb1a3 decnet: always not take dst->__refcnt when inserting dst into hash table
   93911697a9f2 net/mlx5: Wait for FW readiness before initializing command interface
   0d1effe95ebe ipv6: fix calling in6_ifa_hold incorrectly for dad work
   4feb6121aa5e igmp: add a missing spin_lock_init()
   ee8d5f9fd17e igmp: acquire pmc lock for ip_mc_clear_src()
   7de53eed6fda net: caif: Fix a sleep-in-atomic bug in cfpkt_create_pfx
   030a77d2f904 Fix an intermittent pr_emerg warning about lo becoming free.
   0fc0fad07722 af_unix: Add sockaddr length checks before accessing sa_family in bind and connect handlers
   e2c3ee003280 net: Zero ifla_vf_info in rtnl_fill_vfinfo()
   dedb088a1d18 decnet: dn_rtmsg: Improve input length sanitization in dnrmg_receive_user_skb
   e79948e2d90b net: don't call strlen on non-terminated string in dev_set_alias()
   d68a4e380ff5 ipv6: release dst on error in ip6_dst_lookup_tail
   6ee496d7218a Linux 4.4.75
   cb7be08dee4e nvme: apply DELAY_BEFORE_CHK_RDY quirk at probe time too
   bddc80274a12 nvme/quirk: Add a delay before checking for adapter readiness
   e5f87c733842 net: phy: fix marvell phy status reading
   9b54821d5184 net: phy: Initialize mdio clock at probe function
   889caad4fbe4 usb: gadget: f_fs: avoid out of bounds access on comp_desc
   db7130d63fd8 powerpc/slb: Force a full SLB flush when we insert for a bad EA
   8fcb215c5426 mtd: spi-nor: fix spansion quad enable
   7dfea167fc1d of: Add check to of_scan_flat_dt() before accessing initial_boot_params
   eab38dfd66d7 rxrpc: Fix several cases where a padded len isn't checked in ticket decode
   800d7454e50f USB: usbip: fix nonconforming hub descriptor
   525e496a9722 drm/amdgpu: adjust default display clock
   526527847355 drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating
   4f3d0f468552 drm/radeon: add a quirk for Toshiba Satellite L20-183
   f8242fa8119b drm/radeon: add a PX quirk for another K53TK variant
   fe8003da6113 iscsi-target: Reject immediate data underflow larger than SCSI transfer length
   d374be75f4c7 target: Fix kref->refcount underflow in transport_cmd_finish_abort
   1fecf3977def time: Fix clock->read(clock) race around clocksource changes
   255ad85b5ecc Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list
   3ee9033e228d powerpc/kprobes: Pause function_graph tracing during jprobes handling
   bc7b3e9984a8 signal: Only reschedule timers on signals timers have sent
   005253ffe4ad HID: Add quirk for Dell PIXART OEM mouse
   63ba840a53d6 CIFS: Improve readdir verbosity
   824b9506e4f2 KVM: PPC: Book3S HV: Preserve userspace HTM state properly
   7b88f761929e lib/cmdline.c: fix get_options() overflow while parsing ranges
   b95aa98e77d7 autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL
   1d3d0f8b7cf7 fs/exec.c: account for argv/envp pointers
   22da7ca81a3a Linux 4.4.74
   1f2284fac218 mm: fix new crash in unmapped_area_topdown()
   f41512c6acb7 Allow stack to grow up to address space limit
   4b359430674c mm: larger stack guard gap, between vmas
   26605a06dd92 alarmtimer: Rate limit periodic intervals
   c24159adf222 MIPS: Fix bnezc/jialc return address calculation
   94695386c79c usb: dwc3: exynos fix axius clock error path to do cleanup
   aac7fa215e8f alarmtimer: Prevent overflow of relative timers
   4d4d501cd707 genirq: Release resources in __setup_irq() error path
   6af90091b610 swap: cond_resched in swap_cgroup_prepare()
   bfbd244c5f18 mm/memory-failure.c: use compound_head() flags for huge pages
   f5dc61753d0e USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
   89c15994a06d usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
   5efd37fe7218 drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR()
   ab29b21a47ae usb: r8a66597-hcd: decrease timeout
   4c7a6dd205cc usb: r8a66597-hcd: select a different endpoint on timeout
   42c8b4b5fdca USB: gadget: dummy_hcd: fix hub-descriptor removable fields
   dc6ecba3f6c1 pvrusb2: reduce stack usage pvr2_eeprom_analyze()
   e33e866d1593 usb: core: fix potential memory leak in error path during hcd creation
   ec443ee0c2aa USB: hub: fix SS max number of ports
   7e2ad8b207f2 iio: proximity: as3935: recalibrate RCO after resume
   0c967139e832 staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
   e59d91144545 mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
   93d022e25642 x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
   c79aab7007d8 serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
   daebcf9871eb mac80211: fix IBSS presp allocation size
   bb8428f4c954 mac80211: fix CSA in IBSS mode
   5f1f39023c2a mac80211/wpa: use constant time memory comparison for MACs
   156f00663af6 mac80211: don't look at the PM bit of BAR frames
   a8686c968fe3 vb2: Fix an off by one error in 'vb2_plane_vaddr'
   fa90f02d511d cpufreq: conservative: Allow down_threshold to take values from 1 to 10
   58ab7a86cdc2 can: gs_usb: fix memory leak in gs_cmd_reset()
   0ad134d81c07 configfs: Fix race between create_link and configfs_rmdir
   1bd30958ec55 Linux 4.4.73
   39e84dcd7876 sparc64: make string buffers large enough
   d80aa84235ff s390/kvm: do not rely on the ILC on kvm host protection fauls
   afb415f72daa xtensa: don't use linux IRQ #0
   8b1aa2679812 tipc: ignore requests when the connection state is not CONNECTED
   77d2b8dc9597 proc: add a schedule point in proc_pid_readdir()
   202776694c2a romfs: use different way to generate fsid for BLOCK or MTD
   50ef0e2e9abe sctp: sctp_addr_id2transport should verify the addr before looking up assoc
   70752628521d r8152: avoid start_xmit to schedule napi when napi is disabled
   5270bf63719c r8152: fix rtl8152_post_reset function
   a4877e5564a5 r8152: re-schedule napi for tx
   10bfb4c76c94 nfs: Fix "Don't increment lock sequence ID after NFS4ERR_MOVED"
   82ce18b09bf1 ravb: unmap descriptors when freeing rings
   3987a40362b7 drm/ast: Fixed system hanged if disable P2A
   ff20cc9a6086 drm/nouveau: Don't enabling polling twice on runtime resume
   711f4797a339 parisc, parport_gsc: Fixes for printk continuation lines
   9343894a8b3d net: adaptec: starfire: add checks for dma mapping errors
   3926d04ddec2 pinctrl: berlin-bg4ct: fix the value for "sd1a" of pin SCRD0_CRD_PRES
   6e3ea31dfb01 gianfar: synchronize DMA API usage by free_skb_rx_queue w/ gfar_new_page
   2b9f84ef46d8 net/mlx4_core: Avoid command timeouts during VF driver device shutdown
   6f0a81edb918 drm/nouveau/fence/g84-: protect against concurrent access to semaphore buffers
   9c7a11e6f994 drm/nouveau: prevent userspace from deleting client object
   1507ea6df42e ipv6: fix flow labels when the traffic class is non-0
   95a4659ee8d0 FS-Cache: Initialise stores_lock in netfs cookie
   38481d7d43dd fscache: Clear outstanding writes when disabling a cookie
   b421d230dfa1 fscache: Fix dead object requeue
   e6b15f0fc7a6 ethtool: do not vzalloc(0) on registers dump
   980660760aa7 log2: make order_base_2() behave correctly on const input value zero
   55d0f89a1a0c kasan: respect /proc/sys/kernel/traceoff_on_warning
   1948d0afe43e jump label: pass kbuild_cflags when checking for asm goto support
   266e02bc69a2 PM / runtime: Avoid false-positive warnings from might_sleep_if()
   8d228758f90f ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches
   ee0cd47799dd i2c: piix4: Fix request_region size
   68cac0741246 sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications
   d95ffdd39566 sierra_net: Skip validating irrelevant fields for IDLE LSIs
   716cca0a67ec net: hns: Fix the device being used for dma mapping during TX
   aacf9de1e239 NET: mkiss: Fix panic
   b9e9045d5e6b NET: Fix /proc/net/arp for AX.25
   23287661af3e ipv6: Inhibit IPv4-mapped src address on the wire.
   8faccb2b9442 ipv6: Handle IPv4-mapped src to in6addr_any dst.
   10a762977267 net: xilinx_emaclite: fix receive buffer overflow
   7f71f22a116f net: xilinx_emaclite: fix freezes due to unordered I/O
   2ba464a4b748 Call echo service immediately after socket reconnect
   691fe5610d58 staging: rtl8192e: rtl92e_fill_tx_desc fix write to mapped out memory.
   3fc4d70453ee ARM: dts: imx6dl: Fix the VDD_ARM_CAP voltage for 396MHz operation
   b28c21baf28a partitions/msdos: FreeBSD UFS2 file systems are not recognized
   0fb2a1fe6155 s390/vmem: fix identity mapping
   30c9187fa8ed Linux 4.4.72
   4e528eb9160b arm64: ensure extension of smp_store_release value
   01ce16f40c97 arm64: armv8_deprecated: ensure extension of addr
   51ff10e72fc2 usercopy: Adjust tests to deal with SMAP/PAN
   746d48934f51 RDMA/qib,hfi1: Fix MR reference count leak on write with immediate
   3ccf69562ac2 arm64: entry: improve data abort handling of tagged pointers
   4eaef3651815 arm64: hw_breakpoint: fix watchpoint matching for tagged pointers
   bc5f31d34eab Make __xfs_xattr_put_listen preperly report errors.
   e8a1086ae191 NFSv4: Don't perform cached access checks before we've OPENed the file
   533020828366 NFS: Ensure we revalidate attributes before using execute_ok()
   cb1fb15c8355 mm: consider memblock reservations for deferred memory initialization sizing
   52d8b8ad2b4b net: better skb->sender_cpu and skb->napi_id cohabitation
   3c0fcb52674a serial: sh-sci: Fix panic when serial console and DMA are enabled
   cc04a1433843 tty: Drop krefs for interrupted tty lock
   983c09ebdbc2 drivers: char: mem: Fix wraparound check to allow mappings up to the end
   9a9388953bdc ASoC: Fix use-after-free at card unregistration
   54d12fbf54d4 ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
   f5bc918760c8 ALSA: timer: Fix race between read and ioctl
   5dffc1be6552 drm/nouveau/tmr: fully separate alarm execution/pending lists
   74276868b455 drm/vmwgfx: Make sure backup_handle is always valid
   619cc02fd85d drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
   e4c05b3a751a drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
   e582b82c160a perf/core: Drop kernel samples even though :u is specified
   1cfe1e9da629 powerpc/hotplug-mem: Fix missing endian conversion of aa_index
   8c92870bdbf2 powerpc/numa: Fix percpu allocations to be NUMA aware
   fc7fb9430d70 powerpc/eeh: Avoid use after free in eeh_handle_special_event()
   93d03807f395 scsi: qla2xxx: don't disable a not previously enabled PCI device
   f267b064a6e9 KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
   5c7955c8726c btrfs: fix memory leak in update_space_info failure path
   cc8c67cadc27 btrfs: use correct types for page indices in btrfs_page_exists_in_range
   8fe4345d6a1d cxl: Fix error path on bad ioctl
   f0d2e153147e ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path
   34aa71cbd408 ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments()
   d6bd1e7ec7d8 ufs: set correct ->s_maxsize
   4c516dff07d7 ufs: restore maintaining ->i_blocks
   1df45bb64396 fix ufs_isblockset()
   db9aafaf90b6 ufs: restore proper tail allocation
   044470266a50 fs: add i_blocksize()
   c8acec90d9dd cpuset: consider dying css as offline
   fff08d245263 Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled
   ba9fe2e8072f drm/msm: Expose our reservation object when exporting a dmabuf.
   934d0a9f9c65 target: Re-add check to reject control WRITEs with overflow data
   94d3dafe96f3 cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
   2ff1edbbb29b stackprotector: Increase the per-task stack canary's random range from 32 bits to 64 bits on 64-bit platforms
   1025503bcee9 random: properly align get_random_int_hash
   baae8c3c2e2a drivers: char: random: add get_random_long()
   ff7739a28719 iio: proximity: as3935: fix AS3935_INT mask
   64276cdbd418 iio: light: ltr501 Fix interchanged als/ps register field
   a365c707d2ee staging/lustre/lov: remove set_fs() call from lov_getstripe()
   bd2e8f0a72c5 usb: chipidea: debug: check before accessing ci_role
   942dcb0ffa9d usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
   6ff96a61bb20 usb: gadget: f_mass_storage: Serialize wake and sleep execution
   daa1357ff346 ext4: fix fdatasync(2) after extent manipulation operations
   7b9694cb7bf2 ext4: keep existing extra fields when inode expands
   08dc390b2745 ext4: fix SEEK_HOLE
   e9560c2df474 xen-netfront: cast grant table reference first to type int
   17a58bdf3d63 xen-netfront: do not cast grant table reference to signed short
   4467b3a14557 xen/privcmd: Support correctly 64KB page granularity when mapping memory
   3340c0e11086 dmaengine: ep93xx: Always start from BASE0
   3ff231a0d399 dmaengine: usb-dmac: Fix DMAOR AE bit definition
   445d08a6be93 KVM: async_pf: avoid async pf injection when in guest mode
   7b69d79732eb arm: KVM: Allow unaligned accesses at HYP
   c7740cbcc2c4 KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
   a8bbdf1921fd kvm: async_pf: fix rcu_irq_enter() with irqs enabled
   e21ad4a956d4 nfsd: Fix up the "supattr_exclcreat" attributes
   6a9b72248814 nfsd4: fix null dereference on replay
   1f6791d4f208 drm/amdgpu/ci: disable mclk switching for high refresh rates (v2)
   a3a3a1cf538c crypto: gcm - wait for crypto op not signal safe
   8096a6748a92 KEYS: fix freeing uninitialized memory in key_update()
   bc6be3433e69 KEYS: fix dereferencing NULL payload with nonzero length
   c94bea2e4bf5 ptrace: Properly initialize ptracer_cred on fork
   dd6a4b53d026 serial: ifx6x60: fix use-after-free on module unload
   7816928f3435 arch/sparc: support NR_CPUS = 4096
   8554f96c1656 sparc64: delete old wrap code
   c9215ca71390 sparc64: new context wrap
   3e557fd99a22 sparc64: add per-cpu mm of secondary contexts
   7e5551fbb864 sparc64: redefine first version
   e72963317bf1 sparc64: combine activate_mm and switch_mm
   4c0cae481fae sparc64: reset mm cpumask after wrap
   7047c2009be9 sparc: Machine description indices can vary
   54e23c087f36 sparc64: mm: fix copy_tsb to correctly copy huge page TSBs
   0774a35802e9 net: bridge: start hello timer only if device is up
   9cbc6cbd9170 net: ethoc: enable NAPI before poll may be scheduled
   45202cd2199c net: ping: do not abuse udp_poll()
   406752726afc ipv6: Fix leak in ipv6_gso_segment().
   92d88e8a7adc vxlan: fix use-after-free on deletion
   f4c645f67e72 tcp: disallow cwnd undo when switching congestion control
   03994b4b858f cxgb4: avoid enabling napi twice to the same queue
   491809d0f8d8 ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
   d02f4c962d35 bnx2x: Fix Multi-Cos

(From OE-Core rev: 32df1b2db46f6cf53a59eeca07a2c442f71bab55)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit ab2721fca72ed28f865b1ee3b7e33d9d09515d87)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
5d5d7c2f05 kernel-yocto/meta: smp configuration changes
Integrating the following kernel configuration changes to
clean up the SMP configuration fragments and fix a configuration
audit warning.

  d0e5ea0e199b smp: Separate smp into 32 and 64 bit versions to avoid kernel warnings
  f1369c1d817e bsp/mohonpeak: smp gets added by default, remove unnecessary include
  6fc22aa1200b bsp/rangeley: smp gets added by default, remove unnecessary include

[YOCTO #11743]

(From OE-Core rev: e418a0652ef021d84db46ccee106ec91658b3e61)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 6bd4f855cfc95c82d6bf5b00531f1aad752002ee)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
2fd84d63a5 linux-yocto/4.4: update to v4.4.71
Updating the the latest 4.4 -stable release which comprises the
following commits:

4bbbc7696405 Linux 4.4.71
9d65be36a7cc xfs: only return -errno or success from attr ->put_listent
1b03d85a4f37 xfs: in _attrlist_by_handle, copy the cursor back to userspace
c56605c69ba6 xfs: fix unaligned access in xfs_btree_visit_blocks
9f7b5da0570f xfs: bad assertion for delalloc an extent that start at i_size
3ba13d7f5b2b xfs: fix indlen accounting error on partial delalloc conversion
1d41dd5c1fd6 xfs: wait on new inodes during quotaoff dquot release
9d97d6a15265 xfs: update ag iterator to support wait on new inodes
8e25af0dc5ad xfs: support ability to wait on new inodes
cf55c35974e1 xfs: fix up quotacheck buffer list error handling
a76647a71c8e xfs: prevent multi-fsb dir readahead from reading random blocks
8caa9a54b32b xfs: handle array index overrun in xfs_dir2_leaf_readbuf()
0ace12c11401 xfs: fix over-copying of getbmap parameters from userspace
fe705621b9b4 xfs: fix off-by-one on max nr_pages in xfs_find_get_desired_pgoff()
b9a7816997a3 xfs: Fix missed holes in SEEK_HOLE implementation
03489bfc7830 mlock: fix mlock count can not decrease in race condition
7e13bab109ea mm/migrate: fix refcount handling when !hugepage_migration_supported()
4e4b72c0ee3d drm/gma500/psb: Actually use VBT mode when it is found
14bfe118dd7d slub/memcg: cure the brainless abuse of sysfs attributes
023a8b0925be ALSA: hda - apply STAC_9200_DELL_M22 quirk for Dell Latitude D430
85ddc41a6c4a pcmcia: remove left-over %Z format
69877793e23d drm/radeon: Unbreak HPD handling for r600+
15de2e4c90b7 drm/radeon/ci: disable mclk switching for high refresh rates (v2)
3529600b1601 scsi: mpt3sas: Force request partial completion alignment
58b7cb10f6e2 HID: wacom: Have wacom_tpc_irq guard against possible NULL dereference
c0fd730b678d mmc: sdhci-iproc: suppress spurious interrupt with Multiblock read
2ca57fc82436 i2c: i2c-tiny-usb: fix buffer not being DMA capable
1b5286ba9f13 vlan: Fix tcp checksum offloads in Q-in-Q vlans
e989f9bf2a9d net: phy: marvell: Limit errata to 88m1101
605b6b2b4d8a netem: fix skb_orphan_partial()
338f665acb4b ipv4: add reference counting to metrics
97f54575ff57 sctp: fix ICMP processing if skb is non-linear
fe22b6005538 tcp: avoid fastopen API to be used on AF_UNSPEC
d7ed7fcecf20 virtio-net: enable TSO/checksum offloads for Q-in-Q vlans
8380f16d0702 be2net: Fix offload features for Q-in-Q packets
38f02f2ce0ca ipv6: fix out of bound writes in __ip6_append_data()
3a854210f9a5 bridge: start hello_timer when enabling KERNEL_STP in br_stp_start
b543ccc4f627 qmi_wwan: add another Lenovo EM74xx device ID
94c0bf3cbb99 bridge: netlink: check vlan_default_pvid range
f76d54a8882e ipv6: Check ip6_find_1stfragopt() return value properly.
017fabead5c2 ipv6: Prevent overrun when parsing v6 header options
640bfcf232a9 net: Improve handling of failures on link and route dumps
7ede5c90fcdd tcp: eliminate negative reordering in tcp_clean_rtx_queue
ffa551def59c sctp: do not inherit ipv6_{mc|ac|fl}_list from parent
704e6c6b8651 sctp: fix src address selection if using secondary addresses for ipv6
90e3f8a55871 tcp: avoid fragmenting peculiar skbs in SACK
182abc4e74a1 s390/qeth: avoid null pointer dereference on OSN
21b871582375 s390/qeth: unbreak OSM and OSN support
2ac37098ee3d s390/qeth: handle sysfs error during initialization
d1428ee54073 ipv6/dccp: do not inherit ipv6_mc_list from parent
5f67a1663c03 dccp/tcp: do not inherit mc_list from parent
b9978c27454c sparc: Fix -Wstringop-overflow warning
b409ba3b0535 Linux 4.4.70
837bfdb41337 drivers: char: mem: Check for address space wraparound with mmap()
52cf24769487 nfsd: encoders mustn't use unitialized values in error cases
da922dc48dcf drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2
bc428e94070e PCI: Freeze PME scan before suspending devices
5f36c8b4e4a3 PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
6384f782a69c tracing/kprobes: Enforce kprobes teardown after testing
d5fb96b955ff osf_wait4(): fix infoleak
e07db0d720d3 genirq: Fix chained interrupt data ordering
1736f2b3de62 uwb: fix device quirk on big-endian hosts
ca19dd15e7bb metag/uaccess: Check access_ok in strncpy_from_user
2d9b2e780832 metag/uaccess: Fix access_ok()
98d5e84363ea iommu/vt-d: Flush the IOTLB to get rid of the initial kdump mappings
cb89b1f9dff9 staging: rtl8192e: rtl92e_get_eeprom_size Fix read size of EPROM_CMD.
427907e599fa staging: rtl8192e: fix 2 byte alignment of register BSSIDR.
8b26f53bf026 mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp
f03484fd5a3a xc2028: Fix use-after-free bug properly
e0188a556da6 arm64: documentation: document tagged pointer stack constraints
06dd8281a7d3 arm64: uaccess: ensure extension of access_ok() addr
c23fee69f5b5 arm64: xchg: hazard against entire exchange variable
acbab784a9b6 ARM: dts: at91: sama5d3_xplained: not all ADC channels are available
6ae3be7167b7 ARM: dts: at91: sama5d3_xplained: fix ADC vref
1ab43a598996 powerpc/64e: Fix hang when debugging programs with relocated kernel
33c0c0f8edb9 powerpc/pseries: Fix of_node_put() underflow during DLPAR remove
a86b9ecf1158 powerpc/book3s/mce: Move add_taint() later in virtual mode
f3ffc64bf3dd cx231xx-cards: fix NULL-deref at probe
3208e455284b cx231xx-audio: fix NULL-deref at probe
bd14c18861c7 cx231xx-audio: fix init error path
f7c778fa707d dvb-frontends/cxd2841er: define symbol_rate_min/max in T/C fe-ops
e5a9ebb4387a zr364xx: enforce minimum size when reading header
a6e0caa34715 dib0700: fix NULL-deref at probe
a896652f6ad3 s5p-mfc: Fix unbalanced call to clock management
fc9753aa6ce9 gspca: konica: add missing endpoint sanity check
04f522476a26 ceph: fix recursion between ceph_set_acl() and __ceph_setattr()
0e9e19a66530 iio: proximity: as3935: fix as3935_write
8a5b15e198f1 ipx: call ipxitf_put() in ioctl error path
4ae1efc7cc98 USB: hub: fix non-SS hub-descriptor handling
af4e23402409 USB: hub: fix SS hub-descriptor handling
1e6e9c4c36f9 USB: serial: io_ti: fix div-by-zero in set_termios
4be0ae3d314c USB: serial: mct_u232: fix big-endian baud-rate handling
704f23f20c5e USB: serial: qcserial: add more Lenovo EM74xx device IDs
1c7f99aa2979 usb: serial: option: add Telit ME910 support
319be2ab4731 USB: iowarrior: fix info ioctl on big-endian hosts
1beae7405705 usb: musb: tusb6010_omap: Do not reset the other direction's packet size
5cbfae4ad360 ttusb2: limit messages to buffer size
9737909ff9d4 mceusb: fix NULL-deref at probe
f05c0dfd394f usbvision: fix NULL-deref at probe
14d0cafd3f95 net: irda: irda-usb: fix firmware name on big-endian hosts
ec0b553bd8df usb: host: xhci-mem: allocate zeroed Scratchpad Buffer
c0791b605fac xhci: apply PME_STUCK_QUIRK and MISSING_CAS quirk for Denverton
65ba07489dcd usb: host: xhci-plat: propagate return value of platform_get_irq()
ada79b5ecda7 sched/fair: Initialize throttle_count for new task-groups lazily
f01ae9cb0de2 sched/fair: Do not announce throttled next buddy in dequeue_task_fair()
ae3d7b8931eb fscrypt: avoid collisions when presenting long encrypted filenames
129a883b0191 f2fs: check entire encrypted bigname when finding a dentry
269d8211c400 fscrypt: fix context consistency check when key(s) unavailable
0aa3b8ef6975 net: qmi_wwan: Add SIMCom 7230E
22823e95193a ext4 crypto: fix some error handling
0a76f023e6f2 ext4 crypto: don't let data integrity writebacks fail with ENOMEM
f0486aa7bc80 USB: serial: ftdi_sio: add Olimex ARM-USB-TINY(H) PIDs
16ac61cf707c USB: serial: ftdi_sio: fix setting latency for unprivileged users
6a70a5833ecc pid_ns: Fix race between setns'ed fork() and zap_pid_ns_processes()
ddf9b92f12dd pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes
060d2642682e iio: dac: ad7303: fix channel description
14323b731072 of: fix sparse warning in of_pci_range_parser_one
000959316365 proc: Fix unbalanced hard link numbers
d22b933fb8eb cdc-acm: fix possible invalid access when processing notification
e4add1cf6b41 drm/nouveau/tmr: handle races with hw when updating the next alarm time
9d78e40f5f41 drm/nouveau/tmr: avoid processing completed alarms when adding a new one
5e07724c28f4 drm/nouveau/tmr: fix corruption of the pending list when rescheduling an alarm
27f82df2f026 drm/nouveau/tmr: ack interrupt before processing alarms
3819271d8a5f drm/nouveau/therm: remove ineffective workarounds for alarm bugs
7d2d6022807a drm/amdgpu: Make display watermark calculations more accurate
349666cfbe76 drm/amdgpu: Avoid overflows/divide-by-zero in latency_watermark calculations.
670a7c5db22e ath9k_htc: fix NULL-deref at probe
8431037ba10b ath9k_htc: Add support of AirTies 1eda:2315 AR9271 device
c26190b5378d s390/cputime: fix incorrect system time
d1f8ea3bd095 s390/kdump: Add final note
de74aedd71c0 regulator: tps65023: Fix inverted core enable logic.
6d380f50113c KVM: X86: Fix read out-of-bounds vulnerability in kvm pio emulation
e9c9e7588ef5 KVM: x86: Fix load damaged SSEx MXCSR register
08e589a97d38 ima: accept previously set IMA_NEW_FILE
0c99c8a22cc4 mwifiex: pcie: fix cmd_buf use-after-free in remove/reset
e367d1b00f81 rtlwifi: rtl8821ae: setup 8812ae RFE according to device type
c5ff397f075e md: update slab_cache before releasing new stripes when stripes resizing
d3df9403c075 dm space map disk: fix some book keeping in the disk space map
1dc9fb3cc12e dm thin metadata: call precommit before saving the roots
ea4889d6f39d dm bufio: make the parameter "retain_bytes" unsigned long
4a9631ffe520 dm cache metadata: fail operations if fail_io mode has been established
8d8fb01a62f2 dm bufio: check new buffer allocation watermark every 30 seconds
5d1df36c9d2c dm bufio: avoid a possible ABBA deadlock
4df4bf1df916 dm raid: select the Kconfig option CONFIG_MD_RAID0
fa499b361bd4 dm btree: fix for dm_btree_find_lowest_key()
c04397351fe5 infiniband: call ipv6 route lookup via the stub interface
63450e38efe3 tpm_crb: check for bad response size
025e33ee387a ARM: tegra: paz00: Mark panel regulator as enabled on boot
b171ce6c5e41 USB: core: replace %p with %pK
cda5c7e625ce char: lp: fix possible integer overflow in lp_setup()
ea99c2248495 watchdog: pcwd_usb: fix NULL-deref at probe
ca157f64dc9c USB: ene_usb6250: fix DMA to the stack
b572de59915e usb: misc: legousbtower: Fix memory leak
8a7f9dfbd4ae usb: misc: legousbtower: Fix buffers on stack
bb56ca291305 Linux 4.4.69
35df2085ec02 ipmi: Fix kernel panic at ipmi_ssif_thread()
d4392269f7ce wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event
4b86b46ef410 wlcore: Pass win_size taken from ieee80211_sta to FW
8ef67e0078b3 mac80211: RX BA support for sta max_rx_aggregation_subframes
d13333edbcc7 mac80211: pass block ack session timeout to to driver
0fe94dd915fd mac80211: pass RX aggregation window size to driver
f85e0c5f592c Bluetooth: hci_intel: add missing tty-device sanity check
bf3feec82ce3 Bluetooth: hci_bcm: add missing tty-device sanity check
ff1c4cf24642 Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
9bd2cc56a089 tty: pty: Fix ldisc flush after userspace become aware of the data already
814c2bac9032 serial: omap: suspend device on probe errors
a52e1012585f serial: omap: fix runtime-pm handling on unbind
605fa1a2aa03 serial: samsung: Use right device for DMA-mapping calls
db467fee7ffb arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
f08bc4d63377 padata: free correct variable
9f4ba9062c2c CIFS: add misssing SFM mapping for doublequote
9a4050669919 cifs: fix CIFS_IOC_GET_MNT_INFO oops
a8900a64eabf CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
b85fa4129e7a SMB3: Work around mount failure when using SMB3 dialect to Macs
89d23005fd63 Set unicode flag on cifs echo request to avoid Mac error
7aad381af8c3 fs/block_dev: always invalidate cleancache in invalidate_bdev()
bb7031c7e50f ceph: fix memory leak in __ceph_setxattr()
eb04a7344c83 fs/xattr.c: zero out memory copied to userspace in getxattr
a3e6be0e9447 ext4: evict inline data when writing to memory map
ab7ebca418bb IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level
1ad689bdc12d IB/mlx4: Fix ib device initialization error flow
1360f4301c78 IB/IPoIB: ibX: failed to create mcg debug file
1549c883d39b IB/core: Fix sysfs registration error flow
d96bb545d6ff vfio/type1: Remove locked page accounting workqueue
341adf516842 dm era: save spacemap metadata root after the pre-commit
dcd4004ae521 crypto: algif_aead - Require setkey before accept(2)
21cb4dc57b3c block: fix blk_integrity_register to use template's interval_exp if not 0
cbaeca8251bb KVM: arm/arm64: fix races in kvm_psci_vcpu_on
7b268351860c KVM: x86: fix user triggerable warning in kvm_apic_accept_events()
a2d5dcf338ea um: Fix PTRACE_POKEUSER on x86_64
b8cd9dd513bf x86, pmem: Fix cache flushing for iovec write < 8 bytes
d34ecdc9712c selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
e89233f53e3d x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
3d3ca81d5e35 usb: hub: Do not attempt to autosuspend disconnected devices
0b4dad7c2cf4 usb: hub: Fix error loop seen after hub communication errors
7cad8a47ca94 usb: Make sure usb/phy/of gets built-in
6c3785cca656 usb: misc: add missing continue in switch
d3c04901f750 staging: comedi: jr3_pci: cope with jiffies wraparound
7fc6659b19a2 staging: comedi: jr3_pci: fix possible null pointer dereference
5ac489a80ffb staging: gdm724x: gdm_mux: fix use-after-free on module unload
265500bf9802 staging: vt6656: use off stack for out buffer USB transfers.
9d3c45786f27 staging: vt6656: use off stack for in buffer USB transfers.
de9d2d297ebe USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously
fcd9a083cd22 USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
af3c8bf0e06b usb: host: xhci: print correct command ring address
8e1a740a5d66 iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
6cd0200a9554 target: Convert ACL change queue_depth se_session reference usage
de41b0e12d6e target/fileio: Fix zero-length READ and WRITE handling
a1c2b01c310a target: Fix compare_and_write_callback handling for non GOOD status
8e209a07b106 xen: adjust early dom0 p2m handling to xen hypervisor behavior

(From OE-Core rev: e49b3ca1633db277de1e30e8ccfae23c3babf863)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 2e7d1a42b14de6f47543186f7855658a2ec36397)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
c78d6743db linux-yocto/4.9: update to 4.9.31
Updating to the latest 4.9 -stable which comprises the following
commits:

   f1aa865ae5d4 Linux 4.9.31
   11214bd292ec xfs: Fix off-by-in in loop termination in xfs_find_get_desired_pgoff()
   75c5afd58d46 xfs: fix unaligned access in xfs_btree_visit_blocks
   7fb8ab8f0a38 xfs: avoid mount-time deadlock in CoW extent recovery
   e40c145c023d xfs: xfs_trans_alloc_empty
   0e542792a046 xfs: bad assertion for delalloc an extent that start at i_size
   f60d76efa91a xfs: BMAPX shouldn't barf on inline-format directories
   53c44c236f21 xfs: fix indlen accounting error on partial delalloc conversion
   54894ea3c542 xfs: fix use-after-free in xfs_finish_page_writeback
   d457f822817f xfs: reserve enough blocks to handle btree splits when remapping
   0ba833fe73d2 xfs: wait on new inodes during quotaoff dquot release
   2ea882d8ebc7 xfs: update ag iterator to support wait on new inodes
   e86b616b5b9e xfs: support ability to wait on new inodes
   10f0b2c3c225 xfs: fix up quotacheck buffer list error handling
   95487d4be1e9 xfs: prevent multi-fsb dir readahead from reading random blocks
   93bd169845e5 xfs: handle array index overrun in xfs_dir2_leaf_readbuf()
   99226b890d63 xfs: fix integer truncation in xfs_bmap_remap_alloc
   4e2762878a59 xfs: drop iolock from reclaim context to appease lockdep
   4e8163fc8159 xfs: actually report xattr extents via iomap
   de417ea6b0a6 xfs: fix over-copying of getbmap parameters from userspace
   c2ad2dc3d264 xfs: use dedicated log worker wq to avoid deadlock with cil wq
   3890d83805fe xfs: fix kernel memory exposure problems
   ca659e086fb7 xfs: rework the inline directory verifiers
   815414e7648b xfs: verify inline directory data forks
   11b485477285 xfs: fix off-by-one on max nr_pages in xfs_find_get_desired_pgoff()
   9c795fff53f9 xfs: use ->b_state to fix buffer I/O accounting release race
   c9eab63b9e62 xfs: Fix missed holes in SEEK_HOLE implementation
   670821b9482d drm/gma500/psb: Actually use VBT mode when it is found
   74b416367b4e mm/slub.c: trace free objects at KERN_INFO
   c1bb2a899b5f slub/memcg: cure the brainless abuse of sysfs attributes
   873f3b0ebbfe ksm: prevent crash after write_protect_page fails
   d5ecb4ca0da7 x86/boot: Use CROSS_COMPILE prefix for readelf
   d1cff2222071 RDMA/qib,hfi1: Fix MR reference count leak on write with immediate
   292f70cd9649 mm: consider memblock reservations for deferred memory initialization sizing
   1163e785b150 mlock: fix mlock count can not decrease in race condition
   d494cab70697 mm/migrate: fix refcount handling when !hugepage_migration_supported()
   7d8ef0e0bc1e ALSA: hda - apply STAC_9200_DELL_M22 quirk for Dell Latitude D430
   da856d05645c pcmcia: remove left-over %Z format
   ebd4c110fd0b drm/radeon: Fix vram_size/visible values in DRM_RADEON_GEM_INFO ioctl
   acc771fdaec7 drm/radeon: Unbreak HPD handling for r600+
   c8d25fcb5980 drm/radeon/ci: disable mclk switching for high refresh rates (v2)
   9869fb485cc6 scsi: mpt3sas: Force request partial completion alignment
   21f33b157721 nvme: avoid to use blk_mq_abort_requeue_list()
   510b0ec7f60f nvme: use blk_mq_start_hw_queues() in nvme_kill_queues()
   ae0578089242 nvme-rdma: support devices with queue size < 32
   34808d76dd77 HID: wacom: Have wacom_tpc_irq guard against possible NULL dereference
   69b1d90e6a0f ibmvscsis: Fix the incorrect req_lim_delta
   80569d0e09ad ibmvscsis: Clear left-over abort_cmd pointers
   49d33fd10070 iscsi-target: Always wait for kthread_should_stop() before kthread exit
   ecbf0f48d65e mmc: sdhci-iproc: suppress spurious interrupt with Multiblock read
   8735cf2291cd Revert "ACPI / button: Change default behavior to lid_init_state=open"
   32d8077f1e9b acpi, nfit: Fix the memory error check in nfit_handle_mce()
   68c83a379106 x86/MCE: Export memory_error()
   4472887cbd13 crypto: skcipher - Add missing API setkey checks
   63399974effb i2c: i2c-tiny-usb: fix buffer not being DMA capable
   d3b2d9ca90c2 drivers/tty: 8250: only call fintek_8250_probe when doing port I/O
   1d74fc36f3ec powerpc/spufs: Fix hash faults for kernel regions
   68a056175512 fs/ufs: Set UFS default maximum bytes per file
   1a658771d5e1 sparc/ftrace: Fix ftrace graph time measurement
   45ceb845ef34 sparc: Fix -Wstringop-overflow warning
   c1133c671a04 bpf: add bpf_clone_redirect to bpf_helper_changes_pkt_data
   988b9792b856 ipv4: add reference counting to metrics
   1de51502a025 sctp: fix ICMP processing if skb is non-linear
   4b81271ed1c3 tcp: avoid fastopen API to be used on AF_UNSPEC
   9e056584770b virtio-net: enable TSO/checksum offloads for Q-in-Q vlans
   9c6cfd5811bd be2net: Fix offload features for Q-in-Q packets
   5f595d529796 vlan: Fix tcp checksum offloads in Q-in-Q vlans
   cc6773b51bf3 net: phy: marvell: Limit errata to 88m1101
   4fb5fd27dec0 net/mlx5: Avoid using pending command interface slots
   1730a2b9e5b5 bonding: fix accounting of active ports in 3ad
   304b41014acb ipv6: fix out of bound writes in __ip6_append_data()
   ee72e7e5c2b4 bridge: start hello_timer when enabling KERNEL_STP in br_stp_start
   0d10ebbc835f qmi_wwan: add another Lenovo EM74xx device ID
   2ea4221eb4ae bridge: netlink: check vlan_default_pvid range
   3fa202ef74c8 ipv6: Check ip6_find_1stfragopt() return value properly.
   a2c845e51a82 ipv6: Prevent overrun when parsing v6 header options
   68647616fd53 net: Improve handling of failures on link and route dumps
   0174b07408f2 tcp: eliminate negative reordering in tcp_clean_rtx_queue
   ac3735bf97f0 net/mlx5e: Fix ethtool pause support and advertise reporting
   1594973b8e07 net/mlx5e: Use the correct pause values for ethtool advertising
   f79d3307c035 net/packet: fix missing net_device reference release
   5e7d9f0b3f72 sctp: do not inherit ipv6_{mc|ac|fl}_list from parent
   eb7f6d6989ad sctp: fix src address selection if using secondary addresses for ipv6
   8d625242e86b tcp: avoid fragmenting peculiar skbs in SACK
   a5db124dc2a4 net: fix compile error in skb_orphan_partial()
   5d165daafc44 netem: fix skb_orphan_partial()
   21e3113298f9 bpf, arm64: fix faulty emission of map access in tail calls
   c1f3f197d650 s390/qeth: add missing hash table initializations
   96a81eb6ad5a s390/qeth: avoid null pointer dereference on OSN
   b68c2e387a23 s390/qeth: unbreak OSM and OSN support
   25c1a1e4d891 s390/qeth: handle sysfs error during initialization
   4bd8f5e38e5a ipv6/dccp: do not inherit ipv6_mc_list from parent
   8f1f08be3974 driver: vrf: Fix one possible use-after-free issue
   4eed44029507 dccp/tcp: do not inherit mc_list from parent
   db3fd4527ed3 Linux 4.9.30
   5a597b225d48 drm/i915/gvt: Disable access to stolen memory as a guest
   1489183c2005 drivers: char: mem: Check for address space wraparound with mmap()
   51d9c51523ec nfsd: encoders mustn't use unitialized values in error cases
   ea465551af30 nfsd: fix undefined behavior in nfsd4_layout_verify
   f2b6f508c541 NFS: Use GFP_NOIO for two allocations in writeback
   a8c35e5c88de NFS: Fix use after free in write error path
   88ac6b7e0c82 NFSv4: Fix a hang in OPEN related to server reboot
   5438f8952906 drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2
   5956b2815f90 mtd: nand: add ooblayout for old hamming layout
   6639b27f5a4c mtd: nand: omap2: Fix partition creation via cmdline mtdparts
   e437af936a49 mtd: nand: orion: fix clk handling
   db6636416195 PCI: Freeze PME scan before suspending devices
   9ad81ecb28d6 PCI: Only allow WC mmap on prefetchable resources
   6bec009a2f69 PCI: Fix another sanity check bug in /proc/pci mmap
   fa3bbb1c7f06 PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
   87e7dc97c8a0 PCI: hv: Specify CPU_AFFINITY_ALL for MSI affinity when >= 32 CPUs
   d1d63f97dd76 PCI: hv: Allocate interrupt descriptors with GFP_ATOMIC
   dd0023d7105c tracing/kprobes: Enforce kprobes teardown after testing
   cc0aa21de47c um: Fix to call read_initrd after init_bootmem
   541c67844198 osf_wait4(): fix infoleak
   07d8aabff490 MIPS: Loongson-3: Select MIPS_L1_CACHE_SHIFT_6
   6d6a43a08611 nvme: unmap CMB and remove sysfs file in reset path
   423f1752a028 genirq: Fix chained interrupt data ordering
   3fe116563d5d uwb: fix device quirk on big-endian hosts
   f157261b55a4 stackprotector: Increase the per-task stack canary's random range from 32 bits to 64 bits on 64-bit platforms
   e8a8a6972c50 metag/uaccess: Check access_ok in strncpy_from_user
   9fefcb947ec2 metag/uaccess: Fix access_ok()
   21f2950f91ff iommu/vt-d: Flush the IOTLB to get rid of the initial kdump mappings
   58e36d6f7f11 staging: rtl8192e: GetTs Fix invalid TID 7 warning.
   93a46fe4eb41 staging: rtl8192e: rtl92e_get_eeprom_size Fix read size of EPROM_CMD.
   d0226f9adaf8 staging: rtl8192e: fix 2 byte alignment of register BSSIDR.
   f4205502948b staging: rtl8192e: rtl92e_fill_tx_desc fix write to mapped out memory.
   e6b8f5ade305 arm64: documentation: document tagged pointer stack constraints
   e817a7fb2f31 arm64: uaccess: ensure extension of access_ok() addr
   4775fbcc92d7 arm64: armv8_deprecated: ensure extension of addr
   f2e4f4e538f0 arm64: ensure extension of smp_store_release value
   88675139a81d arm64: xchg: hazard against entire exchange variable
   31a331c8cf26 arm64: dts: hi6220: Reset the mmc hosts
   5ee1c675ab92 ARM: dts: imx6sx-sdb: Remove OPP override
   03d8b264bcb9 ARM: dts: at91: sama5d3_xplained: not all ADC channels are available
   086ea4b9510c ARM: dts: at91: sama5d3_xplained: fix ADC vref
   9f6cea2e3bbd ARM: 8670/1: V7M: Do not corrupt vector table around v7m_invalidate_l1 call
   3304f5a1cb87 ARM: 8662/1: module: split core and init PLT sections
   ee773459557d KVM: arm: plug potential guest hardware debug leakage
   0ba7e8e34193 arm: KVM: Do not use stack-protector to compile HYP code
   d0fb4b7d00bb arm64: KVM: Do not use stack-protector to compile EL2 code
   a685601f8533 powerpc/tm: Fix FP and VMX register corruption
   018b91870856 powerpc/64e: Fix hang when debugging programs with relocated kernel
   3915c566ea94 powerpc/iommu: Do not call PageTransHuge() on tail pages
   5ba5685a26b1 powerpc/pseries: Fix of_node_put() underflow during DLPAR remove
   a0da3e00df38 powerpc/book3s/mce: Move add_taint() later in virtual mode
   222f1d668d00 powerpc/eeh: Avoid use after free in eeh_handle_special_event()
   690f09eb52bc powerpc/mm: Ensure IRQs are off in switch_mm()
   2338de43e234 cx231xx-cards: fix NULL-deref at probe
   8ebb884009b6 cx231xx-audio: fix NULL-deref at probe
   1b24b8c07023 cx231xx-audio: fix init error path
   40616929f87e dw2102: limit messages to buffer size
   e42a6715d26b digitv: limit messages to buffer size
   28590f1bb601 dvb-frontends/cxd2841er: define symbol_rate_min/max in T/C fe-ops
   64579fcc57fd zr364xx: enforce minimum size when reading header
   466b45af50fd dib0700: fix NULL-deref at probe
   074912daab55 s5p-mfc: Fix unbalanced call to clock management
   4a9c54250492 gspca: konica: add missing endpoint sanity check
   e2f95f88106f s5p-mfc: Fix race between interrupt routine and device functions
   6bee0b1fe4ed iio: hid-sensor: Store restore poll and hysteresis on S3
   a99462b13dff iio: proximity: as3935: fix as3935_write
   820adccd0e3b ipx: call ipxitf_put() in ioctl error path
   c67e87a22dd8 USB: hub: fix non-SS hub-descriptor handling
   3e4a4e68df08 USB: hub: fix SS hub-descriptor handling
   f9cd79e0ad1f USB: serial: io_ti: fix div-by-zero in set_termios
   c3e024ff9180 USB: serial: mct_u232: fix big-endian baud-rate handling
   d8fc44d67488 USB: serial: qcserial: add more Lenovo EM74xx device IDs
   7e5407600663 usb: serial: option: add Telit ME910 support
   ee0f3a89842e USB: iowarrior: fix info ioctl on big-endian hosts
   dbb127332abf usb: musb: Fix trying to suspend while active for OTG configurations
   08c735a15d5b usb: musb: tusb6010_omap: Do not reset the other direction's packet size
   ff9177b158c3 usb: dwc3: gadget: Prevent losing events in event cache
   653cd31a2ca5 dvb-usb-dibusb-mc-common: Add MODULE_LICENSE
   4f93054d9b45 ttusb2: limit messages to buffer size
   c71b5040632f mceusb: fix NULL-deref at probe
   736f41a47442 usbvision: fix NULL-deref at probe
   a3adb4721ae2 net: irda: irda-usb: fix firmware name on big-endian hosts
   1046d6a51f57 usb: host: xhci-mem: allocate zeroed Scratchpad Buffer
   219628bb0c05 xhci: apply PME_STUCK_QUIRK and MISSING_CAS quirk for Denverton
   1a926919364f usb: host: xhci-plat: propagate return value of platform_get_irq()
   374a3fb5c3b0 xhci: remove GFP_DMA flag from allocation
   fa313fd6673e libnvdimm: fix clear length of nvdimm_forget_poison()
   af9bd5218855 fscrypt: avoid collisions when presenting long encrypted filenames
   8daed21dbce1 f2fs: check entire encrypted bigname when finding a dentry
   b9c0da6219e1 USB: chaoskey: fix Alea quirk on big-endian hosts
   545a3171d37f USB: serial: ftdi_sio: add Olimex ARM-USB-TINY(H) PIDs
   038ccaa5d50e USB: serial: ftdi_sio: fix setting latency for unprivileged users
   2ea2f891fa85 pid_ns: Fix race between setns'ed fork() and zap_pid_ns_processes()
   6dc6a2700b6a pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes
   5e40ac3fbd0d IB/hfi1: Fix a subcontext memory leak
   b894ea8263ca IB/hfi1: Return an error on memory allocation failure
   dfb450b2b66e IIO: bmp280-core.c: fix error in humidity calculation
   a03176f92a02 iio: dac: ad7303: fix channel description
   05a36277a195 ibmvscsis: Do not send aborted task response
   9907c838fc07 of: fdt: add missing allocation-failure check
   80cdf2065bf0 of: fix "/cpus" reference leak in of_numa_parse_cpu_nodes()
   ae5074ba9ef8 of: fix sparse warning in of_pci_range_parser_one
   d10b21d6e562 proc: Fix unbalanced hard link numbers
   168b2bfaa235 cxl: Route eeh events to all drivers in cxl_pci_error_detected()
   393531299547 cxl: Force context lock during EEH flow
   fc6b678ab1d4 ohci-pci: add qemu quirk
   809ae061d998 cdc-acm: fix possible invalid access when processing notification
   198ab4031873 gpio: omap: return error if requested debounce time is not possible
   b77adf29b856 drm/nouveau/tmr: handle races with hw when updating the next alarm time
   1ec3c712e231 drm/nouveau/tmr: avoid processing completed alarms when adding a new one
   6445a49a8c59 drm/nouveau/tmr: fix corruption of the pending list when rescheduling an alarm
   16e10490d260 drm/nouveau/tmr: ack interrupt before processing alarms
   e8ee63059196 drm/nouveau/therm: remove ineffective workarounds for alarm bugs
   d1f006efde1f drm/amdgpu: Add missing lb_vblank_lead_lines setup to DCE-6 path.
   b334b3492888 drm/amdgpu: Avoid overflows/divide-by-zero in latency_watermark calculations.
   ebf3cf5b9a67 drm/amdgpu: Make display watermark calculations more accurate
   adc6647c4f0f ath9k_htc: fix NULL-deref at probe
   c39bafb9ee7a ath9k_htc: Add support of AirTies 1eda:2315 AR9271 device
   768ae64b2ab2 s390/cputime: fix incorrect system time
   8c5157c1967e s390/kdump: Add final note
   c849b4fa8e10 regulator: tps65023: Fix inverted core enable logic.
   5b00d6c85a92 regulator: rk808: Fix RK818 LDO2
   ae382caa96f7 x86: fix 32-bit case of __get_user_asm_u64()
   54e385430e12 KVM: X86: Fix read out-of-bounds vulnerability in kvm pio emulation
   c996ad7568c0 KVM: x86: Fix potential preemption when get the current kvmclock timestamp
   b64ecb25b1d5 KVM: x86: Fix load damaged SSEx MXCSR register
   91034255e42f ima: accept previously set IMA_NEW_FILE
   ce7146cf9bdf mwifiex: pcie: fix cmd_buf use-after-free in remove/reset
   385eb9b33e1d mwifiex: MAC randomization should not be persistent
   444df795edf4 rtlwifi: rtl8821ae: setup 8812ae RFE according to device type
   7e7897878783 md: MD_CLOSING needs to be cleared after called md_set_readonly or do_md_stop
   fa9a4a9c6d6f md: update slab_cache before releasing new stripes when stripes resizing
   f2bb8bcbc09d dm space map disk: fix some book keeping in the disk space map
   cc681811a92c dm thin metadata: call precommit before saving the roots
   eeaf13394d32 dm bufio: make the parameter "retain_bytes" unsigned long
   e69242436b6b dm cache metadata: fail operations if fail_io mode has been established
   042d8dbf69c6 dm mpath: split and rename activate_path() to prepare for its expanded use
   e08047c90c8a dm bufio: check new buffer allocation watermark every 30 seconds
   98e7b9d45bf4 dm bufio: avoid a possible ABBA deadlock
   c5066c4c1b7e dm raid: select the Kconfig option CONFIG_MD_RAID0
   4de8eceefbea dm btree: fix for dm_btree_find_lowest_key()
   5db8f42b62da infiniband: call ipv6 route lookup via the stub interface
   cb5cf8aaba2e mlx5: Fix mlx5_ib_map_mr_sg mr length
   ece453e8b0ca ASoC: cs4271: configure reset GPIO as output
   cc15d340ec6a tpm_crb: check for bad response size
   0c150305212b tpm: add sleep only for retry in i2c_nuvoton_write_status()
   40ca1fd38e11 tpm: msleep() delays - replace with usleep_range() in i2c nuvoton driver
   568ea0dcc27e tpm_tis_spi: Add small delay after last transfer
   c4b3779c9783 tpm_tis_spi: Remove limitation of transfers to MAX_SPI_FRAMESIZE bytes
   d513cf24e240 tpm_tis_spi: Check correct byte for wait state indicator
   daa432c1a65a tpm_tis_spi: Abort transfer when too many wait states are signaled
   aad1e5c81cbb tpm_tis_spi: Use single function to transfer data
   cc0f994c205d fanotify: don't expose EOPENSTALE to userspace
   e8b6d43ce3ea ARM: tegra: paz00: Mark panel regulator as enabled on boot
   0251f6affb11 ALSA: hda: Fix cpu lockup when stopping the cmd dmas
   5c1bd0cb4992 tpm_tis_core: Choose appropriate timeout for reading burstcount
   3888f62943bb USB: core: replace %p with %pK
   5d263d94a870 char: lp: fix possible integer overflow in lp_setup()
   7a2b8471ab12 watchdog: pcwd_usb: fix NULL-deref at probe
   6e2078c10092 USB: ene_usb6250: fix DMA to the stack
   7d96e4a404c1 usb: misc: legousbtower: Fix memory leak
   810b7c559954 usb: misc: legousbtower: Fix buffers on stack
   f5eea276d8de Linux 4.9.29
   9ee8502bd2cc pstore: Shut down worker when unregistering
   a4de93008625 pstore: Fix flags to enable dumps on powerpc
   1a1029507258 libnvdimm, pfn: fix 'npfns' vs section alignment
   c171b24fe508 libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
   5b6e7f353290 libnvdimm, region: fix flush hint detection crash
   46ba11b007c1 ipmi: Fix kernel panic at ipmi_ssif_thread()
   6e7de39ef9a4 Bluetooth: hci_intel: add missing tty-device sanity check
   f2f6d77fabe2 Bluetooth: hci_bcm: add missing tty-device sanity check
   518ca84479d7 Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
   89c91ea37581 tty: pty: Fix ldisc flush after userspace become aware of the data already
   e38a4c3b0b4a serial: omap: suspend device on probe errors
   f8d2751b0012 serial: omap: fix runtime-pm handling on unbind
   c5689e0ab6e1 serial: samsung: Use right device for DMA-mapping calls
   64a599ac5dcc fscrypt: fix context consistency check when key(s) unavailable
   8dd114ef78c8 device-dax: fix cdev leak
   6240377c574b padata: free correct variable
   1c5d8b377e58 CIFS: add misssing SFM mapping for doublequote
   6f3b2eed8c9a cifs: fix CIFS_IOC_GET_MNT_INFO oops
   f13d96bf98c2 CIFS: fix oplock break deadlocks
   411346640ccd cifs: fix CIFS_ENUMERATE_SNAPSHOTS oops
   449a74439d15 cifs: fix leak in FSCTL_ENUM_SNAPS response handling
   87c0604d860f CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
   8dd4e3ff1bfb SMB3: Work around mount failure when using SMB3 dialect to Macs
   2ac2ad9fb045 Set unicode flag on cifs echo request to avoid Mac error
   4f5e1c48e80b Fix match_prepath()
   4e434d4fe28a mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC
   945d0ecdd9bd fs/block_dev: always invalidate cleancache in invalidate_bdev()
   091784ae9738 ceph: fix memory leak in __ceph_setxattr()
   9a6bb7b5637e fs/xattr.c: zero out memory copied to userspace in getxattr
   1777e888bd40 orangefs: do not check possibly stale size on truncate
   63907bb781e7 orangefs: do not set getattr_time on orangefs_lookup
   59f496104112 orangefs: clean up oversize xattr validation
   127adc188c62 orangefs: fix bounds check for listxattr
   b2764f851db6 ext4: evict inline data when writing to memory map
   7929b50dedd1 perf auxtrace: Fix no_size logic in addr_filter__resolve_kernel_syms()
   e3cea38357ea IB/hfi1: Prevent kernel QP post send hard lockups
   43c54927f6f4 IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level
   9ae6b33dcbb4 IB/mlx4: Fix ib device initialization error flow
   d20bfe223d3e IB/IPoIB: ibX: failed to create mcg debug file
   7a227630ab89 IB/core: For multicast functions, verify that LIDs are multicast LIDs
   ecb0ab0f89c7 IB/core: Fix sysfs registration error flow
   377178321690 iov_iter: don't revert iov buffer if csum error
   9f43f70dcc56 vfio/type1: Remove locked page accounting workqueue
   1773131ec4b9 dm thin: fix a memory leak when passing discard bio down
   f32e35bc3d54 dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue()
   f6ec18eb7425 dm era: save spacemap metadata root after the pre-commit
   f8d05099ec72 crypto: ccp - Change ISR handler method for a v5 CCP
   a0a232489c0f crypto: ccp - Change ISR handler method for a v3 CCP
   93424b2b63e0 crypto: ccp - Disable interrupts early on unload
   36dffff240d9 crypto: ccp - Use only the relevant interrupt bits
   bcc70358396a crypto: algif_aead - Require setkey before accept(2)
   9b2fb8ad5ba1 block: fix blk_integrity_register to use template's interval_exp if not 0
   884ba252f3f1 arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
   7b0d4391d0f4 KVM: arm/arm64: fix races in kvm_psci_vcpu_on
   bdf1d5b4c129 KVM: x86: fix user triggerable warning in kvm_apic_accept_events()
   f99985cdee64 perf/x86: Fix Broadwell-EP DRAM RAPL events
   0750e8b865ee um: Fix PTRACE_POKEUSER on x86_64
   e0c871792cc6 x86, pmem: Fix cache flushing for iovec write < 8 bytes
   e65c6aa10860 selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
   acb6dc6aa744 x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
   219a99dd2198 usb: hub: Do not attempt to autosuspend disconnected devices
   181b0de7f7cc usb: hub: Fix error loop seen after hub communication errors
   5a001a687f7c usb: Make sure usb/phy/of gets built-in
   5c51e4b65fca usb: gadget: legacy gadgets are optional
   af534bf9540e usb: misc: add missing continue in switch
   a54ab7420ac7 staging: comedi: jr3_pci: cope with jiffies wraparound
   2bdc2e8c29e9 staging: comedi: jr3_pci: fix possible null pointer dereference
   55f9811b98f2 staging: gdm724x: gdm_mux: fix use-after-free on module unload
   83f66c9a6026 staging: vt6656: use off stack for out buffer USB transfers.
   3eff228fdd43 staging: vt6656: use off stack for in buffer USB transfers.
   6312a84dc8b5 USB: Revert "cdc-wdm: fix "out-of-sync" due to missing notifications"
   5ffe717f351d USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously
   c31ff3ceb326 USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
   91cd8f900c75 usb: host: xhci: print correct command ring address
   853469d53e86 usb: xhci: bInterval quirk for TI TUSB73x0
   bb1f06f53bcb iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
   f788fa43d87a target/fileio: Fix zero-length READ and WRITE handling
   a4e52cc7d81b target: Fix compare_and_write_callback handling for non GOOD status
   f2b8de98f737 xen: adjust early dom0 p2m handling to xen hypervisor behavior
   58cd97ff374b Linux 4.9.28
   6a7620744e89 block: get rid of blk_integrity_revalidate()
   48d9fa1ece5e drm/ttm: fix use-after-free races in vm fault handling
   347d07bf3add wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event
   bbd839a40dde wlcore: Pass win_size taken from ieee80211_sta to FW
   5d7ab8339a9a xen: Revert commits da72ff5bfcb0 and 72a9b186292d
   93862955cbf4 f2fs: sanity check segment count
   265d382cc8db net: mdio-mux: bcm-iproc: call mdiobus_free() in error path
   ced0a31e667f bpf: don't let ldimm64 leak map addresses on unprivileged
   e37aab9c63b8 bnxt_en: allocate enough space for ->ntp_fltr_bmap
   8795ee7bed24 ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
   ecbd3ed2ddfe ipv6: initialize route null entry in addrconf_init()
   5d8e07740c69 rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
   f19065308601 ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
   747a00193f26 tcp: do not inherit fastopen_req from parent
   78f032b071c1 net: usb: qmi_wwan: add Telit ME910 support
   0f4ac291a768 net: ipv6: Do not duplicate DAD on link up
   91260baa9d67 tcp: fix wraparound issue in tcp_lp
   493d0a7be31c bpf, arm64: fix jit branch offset related to ldimm64
   7bca0a9702ed bpf: enhance verifier to understand stack pointer arithmetic
   f3235cbd5be1 tcp: do not underestimate skb->truesize in tcp_trim_head()
   3b0129d4111e macsec: dynamically allocate space for sglist
   22d6b013ffcf sparc64: fix fault handling in NGbzero.S and GENbzero.S
   7aa0e14336d9 ALSA: hda - Fix deadlock of controller device lock at unbinding
   170e0abd886b staging: emxx_udc: remove incorrect __init annotations
   d8e94d091376 staging: wlan-ng: add missing byte order conversion
   47b7257fc20f staging/lustre/llite: move root_squash from sysfs to debugfs
   0b77c687d4e0 brcmfmac: Make skb header writable before use
   f73dfc29afa6 brcmfmac: Ensure pointer correctly set if skb data location changes
   b0e2e3acfe8e MIPS: R2-on-R6 MULTU/MADDU/MSUBU emulation bugfix
   2d652d0abd3c scsi: smartpqi: fix time handling
   a46d03e35179 scsi: mac_scsi: Fix MAC_SCSI=m option when SCSI=m
   76aa65a2c0fd scsi: qla2xxx: Fix crash in qla2xxx_eh_abort on bad ptr
   71fd9a94bd3f serial: 8250_omap: Fix probe and remove for PM runtime
   115fb7ec22b5 phy: qcom-usb-hs: Add depends on EXTCON
   52dd14d76812 clk: rockchip: add "," to mux_pll_src_apll_dpll_gpll_usb480m_p on rk3036
   6fa44d4ba212 USB: serial: io_edgeport: fix descriptor error handling
   62b8b773ebde USB: serial: mct_u232: fix modem-status error handling
   e17c48c3280e USB: serial: quatech2: fix control-message error handling
   594c9b4b0acb USB: serial: ftdi_sio: fix latency-timer error handling
   ca4e6525df05 USB: serial: ark3116: fix open error handling
   94bbbfe21b5a USB: serial: ti_usb_3410_5052: fix control-message error handling
   b07e930d1f49 USB: serial: io_edgeport: fix epic-descriptor handling
   4d32e36d6262 USB: serial: ssu100: fix control-message error handling
   9ca301067502 USB: serial: digi_acceleport: fix incomplete rx sanity check
   84443215cf54 USB: serial: keyspan_pda: fix receive sanity checks
   b6c17077e056 usb: chipidea: Handle extcon events properly
   8eb8c9b16fdd usb: chipidea: Only read/write OTGSC from one place
   4a36b6a7ee88 usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   8f50cb88d862 usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   30643b5ac754 usb: dwc2: host: use msleep() for long delay
   d0ee36354f77 KVM: nVMX: do not leak PML full vmexit to L1
   560a979735f4 KVM: nVMX: initialize PML fields in vmcs02
   39058adebbb1 Revert "KVM: nested VMX: disable perf cpuid reporting"
   b6cd52a0eeaf x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
   1eae95d4bc03 kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
   c9f617223904 clk: Make x86/ conditional on CONFIG_COMMON_CLK
   1f0c69cfb2ad x86/mpx: Re-add MPX to selftests Makefile
   56e524a8c305 x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
   5ed26fad2d08 x86/ioapic: Restore IO-APIC irq_chip retrigger callback
   3b141e2965a7 iwlwifi: mvm: writing zero bytes to debugfs causes a crash
   1fb264cf7d54 iwlwifi: mvm: synchronize firmware DMA paging memory
   495f91630205 iwlwifi: mvm: fix references to first_agg_queue in DQA mode
   4d6f2ac95bc5 iwlwifi: mvm: fix pending frame counter calculation
   48aa5ec292f3 iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
   04dd401a5145 iwlwifi: mvm: Use aux queue for offchannel frames in dqa
   a6fe39262c51 iwlwifi: mvm: fix reorder timer re-arming
   20a9de99a0da iwlwifi: pcie: fix the set of DMA memory mask
   562c868d94a8 iwlwifi: pcie: trans: Remove unused 'shift_param'
   9c8655c0a860 iwlwifi: pcie: don't increment / decrement a bool
   948634492b40 iwlwifi: mvm: overwrite skb info later
   45dad03aca55 iwlwifi: mvm: don't restart HW if suspend fails with unified image
   d0a8075ffe05 iwlwifi: fix MODULE_FIRMWARE for 6030
   9291cabe094b mwifiex: Avoid skipping WEP key deletion for AP
   dcdeaa743342 mwifiex: remove redundant dma padding in AMSDU
   525fda9221a8 mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
   1d61da618969 ARM: dts: sun7i: lamobo-r1: Fix CPU port RGMII settings
   ebae7681697d ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build
   f4bff2c44dc9 ARM: dts: NSP: GPIO reboot open-source
   329607b4864d leds: ktd2692: avoid harmless maybe-uninitialized warning
   f46fdb8a2611 arm64: Improve detection of user/non-user mappings in set_pte(_at)
   aadb7e073e81 arm: dts: qcom: Fix ipq board clock rates
   e33fb57428a1 arm64: dts: r8a7795: Mark EthernetAVB device node disabled
   e7b34f4a74f6 power: supply: bq24190_charger: Handle fault before status on interrupt
   7f2b4ad9c07a power: supply: bq24190_charger: Don't read fault register outside irq_handle_thread()
   4b7dac0a23b7 power: supply: bq24190_charger: Call power_supply_changed() for relevant component
   63e1acc84d28 power: supply: bq24190_charger: Install irq_handler_thread() at end of probe()
   20e448f2251c power: supply: bq24190_charger: Call set_mode_host() on pm_resume()
   d8d6aedd54ce power: supply: bq24190_charger: Fix irq trigger to IRQF_TRIGGER_FALLING
   89e8bd3add69 perf/x86/intel/pt: Add format strings for PTWRITE and power event tracing
   1641bb14e8be powerpc: Correctly disable latent entropy GCC plugin on prom_init.o
   b47a6b40655b powerpc/ftrace: Fix confusing help text for DISABLE_MPROFILE_KERNEL
   50e027728915 powerpc/powernv: Fix opal_exit tracepoint opcode
   754a2bcfd8b1 powerpc/mm: Fixup wrong LPCR_VRMASD value
   a19718bd0b19 cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
   4f39fcce99d7 power: supply: lp8788: prevent out of bounds array access
   ccef31d22e80 crypto: caam - fix error path for ctx_dma mapping failure
   819e3601d3c5 tmp: use pdev for parent device in tpm_chip_alloc
   326f9b0a39d3 tpm: fix RC value check in tpm2_seal_trusted
   a941f261c8f1 hwmon: (it87) Fix pwm4 detection for IT8620 and IT8628
   898c6bbfc88d drm/sti: fix GDP size to support up to UHD resolution
   f5ca890f138d 9p: fix a potential acl leak

(From OE-Core rev: 527f77e3c3c8fcb6b8dc7c88ecbf87d1b450bc2b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit d26a362b6bcee7e5e745b76bd6fb5ef94697bf22)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
23dd1b79bf linux-yocto/4.10: update to v4.10.17
Updating to the latest 4.10 -stable releases, which comprise the
following changes:

   17a4d4803381 Linux 4.10.17
   291e716bb382 pstore: Shut down worker when unregistering
   e5590e3d9275 pstore: Fix flags to enable dumps on powerpc
   e3d4daa7f6d4 libnvdimm, pfn: fix 'npfns' vs section alignment
   116ada1a98ab libnvdimm: fix nvdimm_bus_lock() vs device_lock() ordering
   f92a2fe7cdb1 libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
   72393c00f00a libnvdimm, region: fix flush hint detection crash
   b821a605977e ipmi: Fix kernel panic at ipmi_ssif_thread()
   c8e4805dd634 Bluetooth: hci_intel: add missing tty-device sanity check
   a8620f066675 Bluetooth: hci_bcm: add missing tty-device sanity check
   9a3054df3cf6 Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
   58d479441029 tty: pty: Fix ldisc flush after userspace become aware of the data already
   9e3b9909bce3 serial: omap: suspend device on probe errors
   c1ce1f427e0a serial: omap: fix runtime-pm handling on unbind
   2578dd75ad12 serial: samsung: Use right device for DMA-mapping calls
   a78ddcd2a858 fscrypt: fix context consistency check when key(s) unavailable
   659ccd97668a f2fs: fix fs corruption due to zero inode page
   717946b469cf mm: fix data corruption due to stale mmap reads
   35223d76e2cf dax: prevent invalidation of mapped DAX entries
   fa7043b3a2e0 device-dax: fix sysfs attribute deadlock
   e1a19ef52919 device-dax: fix cdev leak
   81845f520179 md/raid1: avoid reusing a resync bio after error handling.
   23ebf6aa650d padata: free correct variable
   586aa5a6537f ovl: do not set overlay.opaque on non-dir create
   cf95696518f5 CIFS: add misssing SFM mapping for doublequote
   582fb96084c3 cifs: fix CIFS_IOC_GET_MNT_INFO oops
   4452b80eaef8 CIFS: fix oplock break deadlocks
   cd01b999953b cifs: fix CIFS_ENUMERATE_SNAPSHOTS oops
   6ec05086dca9 cifs: fix leak in FSCTL_ENUM_SNAPS response handling
   b1b295efad9f CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
   ae6c2182b853 SMB3: Work around mount failure when using SMB3 dialect to Macs
   6716949b0029 Set unicode flag on cifs echo request to avoid Mac error
   b7174f403828 Fix match_prepath()
   93697e1e5099 mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC
   3302d94ab6f9 fs/block_dev: always invalidate cleancache in invalidate_bdev()
   f174092ec373 ceph: fix memory leak in __ceph_setxattr()
   594d4eca1c49 fs/xattr.c: zero out memory copied to userspace in getxattr
   49302d531325 orangefs: do not check possibly stale size on truncate
   42d86d92af64 orangefs: do not set getattr_time on orangefs_lookup
   d2c326c7ff6d orangefs: clean up oversize xattr validation
   4af222e1d681 orangefs: fix bounds check for listxattr
   e3e77f8ba5f6 ext4: evict inline data when writing to memory map
   fd469456ad6d jbd2: fix dbench4 performance regression for 'nobarrier' mounts
   e2e596f2888c perf annotate s390: Implement jump types for perf annotate
   d122da54d33e perf annotate s390: Fix perf annotate error -95 (4.10 regression)
   ba6006004353 perf auxtrace: Fix no_size logic in addr_filter__resolve_kernel_syms()
   d187c9e135d3 IB/hfi1: Prevent kernel QP post send hard lockups
   04692adb3aac IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level
   e4e17bce1672 IB/mlx4: Fix ib device initialization error flow
   5d691b80ca4d IB/IPoIB: ibX: failed to create mcg debug file
   53bd2ccebd51 IB/core: For multicast functions, verify that LIDs are multicast LIDs
   b40c7a502b1e IB/core: Fix sysfs registration error flow
   f269df7bad86 iov_iter: don't revert iov buffer if csum error
   fc483680829a vfio/type1: Remove locked page accounting workqueue
   c85990cf511d dm thin: fix a memory leak when passing discard bio down
   bd0db3b70b59 dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue()
   5d953aa1cd2e dm era: save spacemap metadata root after the pre-commit
   4c1dad842bfc dm crypt: rewrite (wipe) key in crypto layer using random data
   bce0767157c3 crypto: ccp - Change ISR handler method for a v5 CCP
   f106cd8575c4 crypto: ccp - Change ISR handler method for a v3 CCP
   595c7ad3c64b crypto: ccp - Disable interrupts early on unload
   e1adc5e04af5 crypto: ccp - Use only the relevant interrupt bits
   7ae1df9048db crypto: algif_aead - Require setkey before accept(2)
   fe51605c9512 crypto: s5p-sss - Close possible race for completed requests
   635aff41e59a block: fix blk_integrity_register to use template's interval_exp if not 0
   5c5d86be4f3f arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
   8348ffba88e5 KVM: arm/arm64: fix races in kvm_psci_vcpu_on
   74cbcb5afa75 KVM: x86: fix user triggerable warning in kvm_apic_accept_events()
   f22d13c45f2d perf/x86: Fix Broadwell-EP DRAM RAPL events
   29d07bb20ee5 um: Fix PTRACE_POKEUSER on x86_64
   efbd8cc8f6f8 x86, pmem: Fix cache flushing for iovec write < 8 bytes
   f0896a0d1e6d selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
   c4b0426385ea x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
   b1a8c141c88c usb: hub: Do not attempt to autosuspend disconnected devices
   5830c376e3af usb: hub: Fix error loop seen after hub communication errors
   19c9dacddf7d usb: Make sure usb/phy/of gets built-in
   934c4e338e7e usb: gadget: legacy gadgets are optional
   7f7a4b58e257 usb: misc: add missing continue in switch
   34006e9621c7 staging: comedi: jr3_pci: cope with jiffies wraparound
   acb79180c55e staging: comedi: jr3_pci: fix possible null pointer dereference
   7a6b4c372118 staging: wilc1000: Fix problem with wrong vif index
   4097eda73b4c staging: gdm724x: gdm_mux: fix use-after-free on module unload
   808dc8810896 staging: vt6656: use off stack for out buffer USB transfers.
   4f19197ce58d staging: vt6656: use off stack for in buffer USB transfers.
   5b92090a53eb USB: Revert "cdc-wdm: fix "out-of-sync" due to missing notifications"
   32dd9987fbd9 USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously
   e349a5723322 USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
   dffe5d4b0511 usb: host: xhci: print correct command ring address
   a561f35aeaa9 usb: xhci: bInterval quirk for TI TUSB73x0
   b3e01cd15d17 iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
   d39ebfe9a1b7 target/fileio: Fix zero-length READ and WRITE handling
   f78392c0160c target: Fix compare_and_write_callback handling for non GOOD status
   8fe6ee0b6e69 xen: adjust early dom0 p2m handling to xen hypervisor behavior
   6e8e99586919 Linux 4.10.16
   2262a51b515a block: get rid of blk_integrity_revalidate()
   f89d35abea21 drm/ttm: fix use-after-free races in vm fault handling
   2f6aeeae43bb drm: mxsfb: drm_dev_alloc() returns error pointers
   9302f2b14af1 drm/hisilicon/hibmc: Fix wrong pointer passed to PTR_ERR()
   4a66b610a821 xen: Revert commits da72ff5bfcb0 and 72a9b186292d
   6442a7f5d793 f2fs: sanity check segment count
   853151191ef2 openvswitch: Set internal device max mtu to ETH_MAX_MTU.
   8656ebcc28bc net: mdio-mux: bcm-iproc: call mdiobus_free() in error path
   c35107a3bec2 bpf: don't let ldimm64 leak map addresses on unprivileged
   ddbb020a01ec bnxt_en: allocate enough space for ->ntp_fltr_bmap
   912bec79fb2a ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
   062e49d89f68 ipv6: initialize route null entry in addrconf_init()
   d3081680506f rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
   df6f3bcd6667 ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
   929575fd0dfd tcp: do not inherit fastopen_req from parent
   3006794169a1 net: usb: qmi_wwan: add Telit ME910 support
   0735252265e5 net: ipv6: Do not duplicate DAD on link up
   ae2f8e28b40e tcp: fix wraparound issue in tcp_lp
   38904075d9bc bpf, arm64: fix jit branch offset related to ldimm64
   b3468d7ea8c9 bpf: enhance verifier to understand stack pointer arithmetic
   ec2f9263d6a5 geneve: fix incorrect setting of UDP checksum flag
   9cd3670409a9 net: macb: fix phy interrupt parsing
   99975dd43461 net: adjust skb->truesize in ___pskb_trim()
   748838198f1e tcp: do not underestimate skb->truesize in tcp_trim_head()
   8743096ed3f0 macsec: dynamically allocate space for sglist
   e288821b3842 sparc64: fix fault handling in NGbzero.S and GENbzero.S
   01995a54c747 ALSA: hda - Fix deadlock of controller device lock at unbinding
   9576fcd1d931 staging: lustre: ptlrpc: avoid warning on missing return
   e7d743d68744 staging: emxx_udc: remove incorrect __init annotations
   e368150f2942 staging: wlan-ng: add missing byte order conversion
   debb50cbeda5 staging/lustre/llite: move root_squash from sysfs to debugfs
   9663ece4a734 brcmfmac: Make skb header writable before use
   d67be3c4b852 brcmfmac: Ensure pointer correctly set if skb data location changes
   cbd7c3465eec MIPS: R2-on-R6 MULTU/MADDU/MSUBU emulation bugfix
   2523b0855c42 scsi: smartpqi: fix time handling
   a538d5f72454 scsi: mac_scsi: Fix MAC_SCSI=m option when SCSI=m
   7f3f10d2150f scsi: qla2xxx: Fix crash in qla2xxx_eh_abort on bad ptr
   463232f51f91 scsi: qedi: fix build error without DEBUG_FS
   5102b4022080 scsi: qedi: Fix possible memory leak in qedi_iscsi_update_conn()
   eb1ef03d9033 serial: 8250_omap: Fix probe and remove for PM runtime
   8b62d12c1a53 phy: qcom-usb-hs: Add depends on EXTCON
   c6a6118496c8 clk: rockchip: add "," to mux_pll_src_apll_dpll_gpll_usb480m_p on rk3036
   bc6e823fdcf2 USB: serial: io_edgeport: fix descriptor error handling
   1077176a2456 USB: serial: ch341: fix modem-status handling
   e40bbb397074 USB: serial: mct_u232: fix modem-status error handling
   f665109e63c1 USB: serial: quatech2: fix control-message error handling
   aa0b4b2ff04e USB: serial: ftdi_sio: fix latency-timer error handling
   44d7d23192fe USB: serial: ark3116: fix open error handling
   39581ca08fb9 USB: serial: ti_usb_3410_5052: fix control-message error handling
   c5cd729ca100 USB: serial: io_edgeport: fix epic-descriptor handling
   d75ac2f21f53 USB: serial: ssu100: fix control-message error handling
   7db2c56df28a USB: serial: digi_acceleport: fix incomplete rx sanity check
   cfbe048303d2 USB: serial: keyspan_pda: fix receive sanity checks
   7916a663940b usb: chipidea: Handle extcon events properly
   7a93680fe259 usb: chipidea: Only read/write OTGSC from one place
   cc771fa1d711 usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   d286acdd40ed usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
   5605e5c50f34 usb: dwc2: host: use msleep() for long delay
   69a09d73e8bd KVM: nVMX: do not leak PML full vmexit to L1
   22e025bc1af9 KVM: nVMX: initialize PML fields in vmcs02
   4897ec5ece6c Revert "KVM: nested VMX: disable perf cpuid reporting"
   78a43e2c2c98 KVM: PPC: Book3S HV: Don't try to signal cpu -1
   f82a54b53ca2 x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
   743cfeb7bcdd kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
   d696d9cfea73 platform/x86: intel_pmc_core: fix out-of-bounds accesses on stack
   5e10d8dc0003 clk: Make x86/ conditional on CONFIG_COMMON_CLK
   4a8fa15cec03 x86/mpx: Re-add MPX to selftests Makefile
   d4462702edd1 x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
   679dd20cc34e x86/ioapic: Restore IO-APIC irq_chip retrigger callback
   6e4623e517db iwlwifi: mvm: fix accessing fw_id_to_mac_id
   bcb28cb39930 iwlwifi: mvm: writing zero bytes to debugfs causes a crash
   bd78746f3225 iwlwifi: mvm: synchronize firmware DMA paging memory
   39e4ab1d46fa iwlwifi: mvm: fix references to first_agg_queue in DQA mode
   82e158e12443 iwlwifi: mvm: fix pending frame counter calculation
   fa251bac1869 iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
   441f52f19435 iwlwifi: mvm: Use aux queue for offchannel frames in dqa
   ab735bec18d4 iwlwifi: mvm: fix reorder timer re-arming
   7478a09f262c iwlwifi: pcie: fix the set of DMA memory mask
   0633d3269a69 iwlwifi: pcie: trans: Remove unused 'shift_param'
   e864e9686442 iwlwifi: pcie: don't increment / decrement a bool
   7e375d6d6056 iwlwifi: mvm: overwrite skb info later
   827181091199 iwlwifi: mvm: don't restart HW if suspend fails with unified image
   3aff5ebef0b4 iwlwifi: fix MODULE_FIRMWARE for 6030
   e9a20a152598 iwlwifi: mvm: properly check for transport data in dump
   47b8d37b4c62 mwifiex: set adapter->dev before starting to use mwifiex_dbg()
   219083c89725 mwifiex: don't enable/disable IRQ 0 during suspend/resume
   33d8a1d4086e mwifiex: Avoid skipping WEP key deletion for AP
   6a9d22e988c3 mwifiex: remove redundant dma padding in AMSDU
   4b8badac6525 mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
   ed65aff890b9 ARM: dts: sun7i: lamobo-r1: Fix CPU port RGMII settings
   c78c87249cd6 ARM: dts: am57xx-idk: tpic2810 is on I2C bus, not SPI
   8848163aa114 ARM: OMAP3: Fix smartreflex platform data regression
   097336fc693d ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build
   98fa203aa7cd ARM: dts: imx6sx-udoo-neo: Fix reboot hang
   32b0a3d44419 ARM: dts: NSP: GPIO reboot open-source
   96b61a1bad47 ARM: pxa: ezx: fix a910 camera data
   baebaada5f01 leds: ktd2692: avoid harmless maybe-uninitialized warning
   359ccd6e3667 spi: armada-3700: Remove spi_master_put in a3700_spi_remove()
   0136fa36c8af arm64: Improve detection of user/non-user mappings in set_pte(_at)
   a0435d6cdccc arm64: remove wrong CONFIG_PROC_SYSCTL ifdef
   e60a59f80b96 arm: dts: qcom: Fix ipq board clock rates
   3e1418c687ac arm64: dts: r8a7795: Mark EthernetAVB device node disabled
   12f072e19606 power: supply: bq24190_charger: Handle fault before status on interrupt
   c963edc736f7 power: supply: bq24190_charger: Don't read fault register outside irq_handle_thread()
   9e9cd6500d2c power: supply: bq24190_charger: Call power_supply_changed() for relevant component
   34ba5925c01e power: supply: bq24190_charger: Install irq_handler_thread() at end of probe()
   8c94da036756 power: supply: bq24190_charger: Call set_mode_host() on pm_resume()
   d6ea2f1dd259 power: supply: bq24190_charger: Fix irq trigger to IRQF_TRIGGER_FALLING
   b7634bdbb695 perf/x86/intel/pt: Add format strings for PTWRITE and power event tracing
   ce6f9a237a6c powerpc: Correctly disable latent entropy GCC plugin on prom_init.o
   803969dd92f1 powerpc/ftrace: Fix confusing help text for DISABLE_MPROFILE_KERNEL
   d0addb34980a powerpc/mm: Fix build break when CMA=n && SPAPR_TCE_IOMMU=y
   690bba9d641a powerpc/powernv: Fix opal_exit tracepoint opcode
   3ead745aef02 powerpc/mm: Fixup wrong LPCR_VRMASD value
   72cd64df59f3 powerpc/perf: Avoid FAB_*_MATCH checks for power9
   8c34e65205b7 powerpc/perf: Handle sdar_mode for marked event in power9
   d2264474c9c2 powerpc/perf: Fix perf_get_data_addr() for power9 DD1
   0587b73378b2 cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
   bfa87eca09ce power: supply: lp8788: prevent out of bounds array access
   8a4963a05118 crypto: caam - don't dma_map key for hash algorithms
   3e871381811a crypto: caam - fix error path for ctx_dma mapping failure
   93bb6661baf0 tmp: use pdev for parent device in tpm_chip_alloc
   c61315284309 tpm: fix RC value check in tpm2_seal_trusted
   c5f7ba5f5911 mtd: nand: Add OX820 NAND hardware dependency
   2586f8f02455 hwmon: (it87) Fix pwm4 detection for IT8620 and IT8628
   5e7b84228b51 drm/sti: fix GDP size to support up to UHD resolution
   206472df12f1 9p: fix a potential acl leak

(From OE-Core rev: a64e8c09f975c8457e7743a61ee35fb561ffd430)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit de5b0d918f49733f902797d41da05681d17d8db0)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
835265b65b linux-yocto-rt: 4.9-rt18
Integrating the 4.9-rt18 port that Paul Gortmaker has prepared:

 f458d12de7f1 v4.9.27-rt18
 82fcbd9f7e1f futex/rtmutex: Cure RT double blocking issue
 b4352b9fb961 futex: backported patches
 0874a0a35318 random: avoid preempt_disable()ed section
 07481e7a0e04 v4.9.27-rt17
 76c86c0787fe v4.9.20-rt16
 d394d677d188 rwsem/rt: Lift single reader restriction
 ad7b0ccf9f1f rtmutex: Provide locked slowpath
 f363d238326d rtmutex: Provide rt_mutex_lock_state()
 b3b4c3aa793e rtmutex: Make lock_killable work
 e3fa9e78c860 v4.9.20-rt15
 1e458a1a876d v4.9.18-rt14
 f57fd2fcd3e2 Add the rtmutex rework
 3829b7532ca9 lockdep: Fix per-cpu static objects
 bc1065b64955 v4.9.18-rt13
 095698fd99b4 Merge branch 'standard/base' into standard/preempt-rt/base

(From OE-Core rev: 68e9381210875588b7f28cff5ed90a2817427d08)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 9d400224f7bba64470a0e68c53e2469b70ca1e05)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
3d10ba1b30 linux-yocto/meta: configuration changes (wifi, kexec and nft)
Making the following kernel configuration fragment changes available:

  c9f07d79f01d nftables: add more configuration options.
  8d3cf0ad6c0c common-pc-wifi.cfg: add CONFIG_MT7601U module
  55c9bf749c6d ktypes/developer: Enable CONFIG_KEXEC in config

(From OE-Core rev: 6ddb062c5b434446c7c5140ab01b970ad501f1d1)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit a0d24f69425716ffd2439b1fb9170c343eaca453)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
07a9b6a4fb kernel/meta: add virtualbox configuration fragment
As suggested by Khem, we can create a virtualbox configuration
fragment that helps to run XFCE under virtualization.

This can be enabled via KERNEL_FEATURES for targest that
require it, and may be enabled by default in the future.

(From OE-Core rev: a5b42c0702a216e1a75c89aaa918c5e166a9e13e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a256addb330ec7b781c381894cc72cbd4a5005dd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
47321834f1 linux-yocto/meta: smp: Add config X86_BIGSMP since its needed when NR_CPUS > 8
Updating the kernel meta data with the following configuration change:

  When we set NR_CPUS to something > than 8, we also need to set
  X86_BIGSMP
  according to Kconfig:

  config X86_BIGSMP
        bool "Support for big SMP systems with more than 8 CPUs"

  otherwise NR_CPU will end up being reset to 8

[YOCTO #10362]

(From OE-Core rev: 36b594160c6ca12f0a0d06a2809e4dbea1fa53ca)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 98278549d960a84605f01fec73aefe5d8792d4bb)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
728038c3a6 linux-yocto/meta: bluetooth: Adds BT_BREDR and BT_LE, which are needed as dependencies
Updating the kernel meta-data to pick up a bluetooth configuration change:

  BT_LE is nedded by BT_6LOWPAN

  BT_BREDR is needed by:
  BT_RFCOMM, BT_RFCOMM_TTY (secondary),
  BT_BNEP, BT_BNEP_MC_FILTER (secondary), BNEP_PROTO_FILTER (secondary),
  BT_CMTP, BT_HIDP

[YOCTO #10425]

(From OE-Core rev: 6c2e2afe9dbc43554e552e5a293ca7ffeb669f35)

Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0457f08cce73ab8646f8a44e88884371e09f35b4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
ffe109c38b linux-yocto/4.1: fix gcc7 compilation and v4.1.39
Porting the mainline commit, to fix gcc7 builds:

  474c90156c [give up on gcc ilog2() constant optimizations]

We also integrate the 4.1.39 -stable update to pick up additional
fixes.

(From OE-Core rev: 774e0d3f429d383c55e9f54ab095f13694e1d8e6)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit f0effea8716faae749a7d15003647d68fa0cabf7)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
e2633fecbf linux-yocto/4.9: update to v4.9.27
Integrating the korg v4.9.22 -> .27 releases with the following shortlog
summary:

   89f3b8d5f264 Linux 4.9.27
   a0d50c80a29e dm ioctl: prevent stack leak in dm ioctl call
   7ad6de43deda cpu/hotplug: Serialize callback invocations proper
   e99b0ea39354 ceph: try getting buffer capability for readahead/fadvise
   1bf9bc481338 8250_pci: Fix potential use-after-free in error path
   3fbd2ba1da3f hwmon: (it87) Avoid registering the same chip on both SIO addresses
   d24261e567e1 scsi: storvsc: Workaround for virtual DVD SCSI version
   1b7f385e049c tpm_tis: use default timeout value if chip reports it as zero
   d8fd99d4721d Handle mismatched open calls
   00cca9768ebe timerfd: Protect the might cancel mechanism proper
   d071951e08ee Linux 4.9.26
   6d10a6cfe85e ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram
   9cbf4337a51d ARCv2: save r30 on kernel entry as gcc uses it for code-gen
   4684be169a67 net: can: usb: gs_usb: Fix buffer on stack
   07389a140f48 macsec: avoid heap overflow in skb_to_sgvec
   36e0be3187c2 ceph: fix recursion between ceph_set_acl() and __ceph_setattr()
   d7809b9e99bb nfsd: stricter decoding of write-like NFSv2/v3 ops
   8ed0797966fd nfsd4: minor NFSv2/v3 write decoding cleanup
   fc6445df466f nfsd: check for oversized NFSv2/v3 arguments
   b88e4113250d Input: i8042 - add Clevo P650RS to the i8042 reset list
   990afef90e08 ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
   b2b93bbeec2d p9_client_readdir() fix
   92f0ddece7da MIPS: Avoid BUG warning in arch_check_elf
   6fbb6c02df30 MIPS: cevt-r4k: Fix out-of-bounds array access
   4805f8a8a2f6 MIPS: KGDB: Use kernel context for sleeping threads
   563300b9ff7f ARC: [plat-eznps] Fix build error
   59f83369d44c ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
   26b9b1565baf ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type
   827faa2e4ef7 ALSA: oxfw: fix regression to handle Stanton SCS.1m/1d
   b1fc1b057b8e ipv6: check raw payload size correctly in ioctl
   1dc1b7b50866 tcp: memset ca_priv data to 0 properly
   df1926123f0c ipv6: check skb->protocol before lookup for nexthop
   ae6a762dcdf0 net: phy: fix auto-negotiation stall due to unavailable interrupt
   62817c314af3 net: ipv6: regenerate host route if moved to gc list
   ae88c43c019f macvlan: Fix device ref leak when purging bc_queue
   7bf657201c21 net/mlx5e: Fix ETHTOOL_GRXCLSRLALL handling
   c3215c31ef5c net/mlx5e: Fix small packet threshold
   03641c4ded85 net/mlx5: Fix driver load bad flow when having fw initializing timeout
   b2440a5d3e25 ip6mr: fix notification device destruction
   291e60458ddf netpoll: Check for skb->queue_mapping
   94e5670c933d net: ipv6: RTF_PCPU should not be settable from userspace
   7ab89b176b7a gso: Validate assumption of frag_list segementation
   fcbf5a71a646 dp83640: don't recieve time stamps twice
   e344e97fb359 sh_eth: unmap DMA buffers when freeing rings
   b4580d6f10a3 net: vrf: Fix setting NLM_F_EXCL flag when adding l3mdev rule
   8c04e2acd537 net-timestamp: avoid use-after-free in ip_recv_error
   c86872a43400 ipv6: Fix idev->addr_list corruption
   479beb4c6554 tcp: clear saved_syn in tcp_disconnect()
   02f04309673e sctp: listen on the sock only when it's state is listening or closed
   dbaaa5890df7 net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
   425cc775d18a l2tp: fix PPP pseudo-wire auto-loading
   b7902607693f l2tp: take reference on sessions being dumped
   1f49c8cd2c9a net/packet: fix overflow in check for tp_reserve
   10452124bac3 net/packet: fix overflow in check for tp_frame_nr
   3ae0fc950603 l2tp: purge socket queues in the .destruct() callback
   59bc404b3829 l2tp: hold tunnel socket when handling control frames in l2tp_ip and l2tp_ip6
   501299e64381 net/mlx5: Avoid dereferencing uninitialized pointer
   0ea3c235779a bpf: improve verifier packet range checks
   d60d4e8c1b73 kcm: return immediately after copy_from_user() failure
   c63d6180076b net: phy: handle state correctly in phy_stop_machine
   4f99161f2ec5 net: neigh: guard against NULL solicit() method
   512d211207df sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
   24870a79dad6 sparc64: kern_addr_valid regression
   e88a8e0a23c2 ping: implement proper locking
   7c80a91b8877 Revert "mmc: sdhci-msm: Enable few quirks"
   a8c90ef62281 Linux 4.9.25
   c36eaa6ca346 device-dax: switch to srcu, fix rcu_read_lock() vs pte allocation
   f8bc0881fe95 x86/mce: Make the MCE notifier a blocking one
   6966a6579e1b x86/mce/AMD: Give a name to MCA bank 3 when accessed with legacy MSRs
   1bd55ab13039 powerpc/kprobe: Fix oops when kprobed on 'stdu' instruction
   790b2b5a01ce ubi/upd: Always flush after prepared for an update
   87cfeaa5e5a1 mac80211: fix MU-MIMO follow-MAC mode
   e0411f1eb549 mac80211: reject ToDS broadcast data frames
   b93858556fd1 ubifs: Fix O_TMPFILE corner case in ubifs_link()
   a260ff509b4d ubifs: Fix RENAME_WHITEOUT support
   9fc131428536 mmc: sdhci-esdhc-imx: increase the pad I/O drive strength for DDR50 card
   4420e5f323c4 ACPI / power: Avoid maybe-uninitialized warning
   11ba522d7929 Input: elantech - add Fujitsu Lifebook E547 to force crc_enabled
   3d42ca46f47a s390/mm: fix CMMA vs KSM vs others
   f79ef57911ee CIFS: remove bad_network_name flag
   0b7c97066341 cifs: Do not send echoes before Negotiate is complete
   c0a602ad31ee mm: prevent NR_ISOLATE_* stats from going negative
   d80e90712a50 ring-buffer: Have ring_buffer_iter_empty() return true when empty
   d4decac1edaa tracing: Allocate the snapshot buffer before enabling probe
   174a74dbca2d KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings
   b2dd90e812f3 KEYS: Change the name of the dead type to ".dead" to prevent user access
   a5c6e0a76817 KEYS: Disallow keyrings beginning with '.' to be joined as session keyrings
   2f5e58ec793f Linux 4.9.24
   35b9d61ea910 sctp: deny peeloff operation on asocs with threads sleeping on it
   c67c2be735b1 net: ipv6: check route protocol when deleting routes
   86c6667f6a5f virtio-console: avoid DMA from stack
   fb00319317c1 cxusb: Use a dma capable buffer also for reading
   28d1e8b7ef81 dvb-usb-firmware: don't do DMA on stack
   36b62c08e72b dvb-usb: don't use stack for firmware load
   2c0ad235ac77 mm: Tighten x86 /dev/mem with zeroing reads
   ef793e6e1134 rtc: tegra: Implement clock handling
   0dd962118a20 ACPI / EC: Use busy polling mode when GPE is not enabled
   c07479f4b10a x86/xen: Fix APIC id mismatch warning on Intel
   03470ba96a96 platform/x86: acer-wmi: setup accelerometer when machine has appropriate notify event
   a6ca4946676b ASoC: Intel: select DW_DMAC_CORE since it's mandatory
   25640e792f1a nbd: fix 64-bit division
   7599166d7855 nbd: use loff_t for blocksize and nbd_set_size args
   9c0c43527263 drm/nouveau/disp/mcp7x: disable dptmds workaround
   754ae7efb383 mm: memcontrol: use special workqueue for creating per-memcg caches
   b1574caf9664 ext4: fix inode checksum calculation problem if i_extra_size is small
   1992564156b5 dvb-usb-v2: avoid use-after-free
   de75264ee112 ath9k: fix NULL pointer dereference
   a28acecbaf25 parisc: Fix get_user() for 64-bit value on 32-bit kernel
   c10479591869 crypto: ahash - Fix EINPROGRESS notification callback
   64ba06dc8a1d crypto: algif_aead - Fix bogus request dereference in completion function
   7da0f8e547c2 ftrace: Fix function pid filter on instances
   e3c7258bb4fe zram: do not use copy_page with non-page aligned address
   75465e71ec31 kvm: fix page struct leak in handle_vmon
   5a4c0738998a Revert "MIPS: Lantiq: Fix cascaded IRQ setup"
   a9da1ac37ccf char: lack of bool string made CONFIG_DEVPORT always on
   666452ffdbf7 ftrace: Fix removing of second function probe
   fdaa36c75c5a irqchip/irq-imx-gpcv2: Fix spinlock initialization
   5dda157006bc cpufreq: Bring CPUs up even if cpufreq_online() failed
   5f48cacaa72c pwm: rockchip: State of PWM clock should synchronize with PWM enabled state
   088e5800500e can: ifi: use correct register to read rx status
   5ac50e714f60 libnvdimm: fix reconfig_mutex, mmap_sem, and jbd2_handle lockdep splat
   5f377c4ad271 libnvdimm: fix blk free space accounting
   0c6172ccbb59 make skb_copy_datagram_msg() et.al. preserve ->msg_iter on error
   ff76ab9e03a5 new privimitive: iov_iter_revert()
   e485875dff38 xen, fbfront: fix connecting to backend
   92f8aa7bb825 target: Avoid mappedlun symlink creation during lun shutdown
   08383b004426 scsi: sd: Fix capacity calculation with 32-bit sector_t
   64e746983c4c scsi: qla2xxx: Add fix to read correct register value for ISP82xx.
   82d181d7540f scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable
   c80c158bfe61 scsi: sr: Sanity check returned mode data
   281e36cbaf43 iscsi-target: Drop work-around for legacy GlobalSAN initiator
   0ae3c95e3a31 iscsi-target: Fix TMR reference leak during session shutdown
   eff58f9084a0 efi/fb: Avoid reconfiguration of BAR that covers the framebuffer
   60174fb3eaa6 efi/libstub: Skip GOP with PIXEL_BLT_ONLY format
   1681bab7c450 parisc: fix bugs in pa_memcpy
   6ef2f0178649 ACPI / scan: Set the visited flag for all enumerated devices
   0b914aa8cdc6 acpi, nfit, libnvdimm: fix interleave set cookie calculation (64-bit comparison)
   5e29a45f1ef0 x86/vdso: Plug race between mapping and ELF header setup
   ec980b6f7dcc x86/vdso: Ensure vdso32_enabled gets set to valid values only
   a9826aa4860a x86, pmem: fix broken __copy_user_nocache cache-bypass assumptions
   59bf23088953 x86/signals: Fix lower/upper bound reporting in compat siginfo
   41d8b02f6448 x86/efi: Don't try to reserve runtime regions
   085656dad4b0 perf/x86: Avoid exposing wrong/stale data in intel_pmu_lbr_read_32()
   0ea2dcf1f9e6 Input: xpad - add support for Razer Wildcat gamepad
   730fecb3401f CIFS: store results of cifs_reopen_file to avoid infinite wait
   3d8d2f234476 CIFS: reconnect thread reschedule itself
   fd3be7eaff14 drm/etnaviv: fix missing unlock on error in etnaviv_gpu_submit()
   e6bcbdc59356 drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one
   b29a17524bc1 drm/nouveau/mpeg: mthd returns true on success now
   975a7ea950c6 orangefs: free superblock when mount fails
   d19f745ea3a9 zsmalloc: expand class bit
   5c9d08320229 thp: fix MADV_DONTNEED vs clear soft dirty race
   f584803c4942 thp: fix MADV_DONTNEED vs. MADV_FREE race
   5ef6f4dec559 tcmu: Skip Data-Out blocks before gathering Data-In buffer for BIDI case
   890aec8eae09 tcmu: Fix wrongly calculating of the base_command_size
   ef599fa52429 tcmu: Fix possible overwrite of t_data_sg's last iov[]
   f44236a1b05b cgroup, kthread: close race window where new kthreads can be migrated to non-root cgroups
   c3582cc56eac Linux 4.9.23
   0ade21a2ed74 dma-buf: add support for compat ioctl
   27dedde6895c net/mlx4_core: Fix when to save some qp context flags for dynamic VST to VGT transitions
   48b2f1dd5787 net/mlx4_core: Fix racy CQ (Completion Queue) free
   cee26997a604 net/mlx4_en: Fix bad WQE issue
   ec0c5f06dba4 usb: hub: Wait for connection to be reestablished after port reset
   d7045cbf4a06 blk-mq: Avoid memory reclaim when remapping queues
   16fc98c2479f net/packet: fix overflow in check for priv area size
   0ee72d8f9b8e Revert "drm/i915/execlists: Reset RING registers upon resume"
   69fbc505c87b crypto: caam - fix invalid dereference in caam_rsa_init_tfm()
   75964d0f1914 crypto: caam - fix RNG deinstantiation error checking
   91f9f51b1836 MIPS: IRQ Stack: Fix erroneous jal to plat_irq_dispatch
   aa05503149b3 MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK
   e8fa51d31aee MIPS: Switch to the irq_stack in interrupts
   aa6b1dac465e MIPS: Only change $28 to thread_info if coming from user mode
   86b54e48c468 MIPS: Stack unwinding while on IRQ stack
   742817bb77f9 MIPS: Introduce irq_stack
   760327cb080b mtd: bcm47xxpart: fix parsing first block after aligned TRX
   31c576a5fe50 rt2x00: Fix incorrect usage of CONFIG_RT2X00_LIB_USB
   f0df317b2bb3 rt2x00usb: do not anchor rx and tx urb's
   cb794d57931b rt2x00usb: fix anchor initialization
   938f8e856064 i2c: bcm2835: Fix hang for writing messages larger than 16 bytes
   f7513c9165bf orangefs: fix buffer size mis-match between kernel space and user space.
   1b9921866dc5 orangefs: Dan Carpenter influenced cleanups...
   dcac0d18e7e1 orangefs: fix memory leak of string 'new' on exit path
   17fda94d181c drm/i915: Avoid rcu_barrier() from reclaim paths (shrinker)
   82dafcb93b0f drm/i915: Stop using RP_DOWN_EI on Baytrail
   954ce087072c drm/i915: Drop support for I915_EXEC_CONSTANTS_* execbuf parameters.
   1cbf6296fb35 drm/i915: Only enable hotplug interrupts if the display interrupts are enabled
   1435e12e4af9 drm/i915: Avoid tweaking evaluation thresholds on Baytrail v3
   988028e55b88 drm/i915: Nuke debug messages from the pipe update critical section
   8ac9915c3f86 drm/i915/gen9: Increase PCODE request timeout to 50ms
   cf2586e60ede Linux 4.9.22
   7eae64f9195c x86/reboot/quirks: Fix typo in ASUS EeeBook X205TA reboot quirk
   af11789a0548 usb-storage: Add ignore-residue quirk for Initio INIC-3619
   e5525c7419f1 x86/reboot/quirks: Add ASUS EeeBook X205TA/W reboot quirk
   0605fff95d33 x86/reboot/quirks: Add ASUS EeeBook X205TA reboot quirk
   7c6b1ad9deb5 platform/x86: asus-wmi: Detect quirk_no_rfkill from the DSDT
   71f38c11cdb8 platform/x86: asus-wmi: Set specified XUSB2PR value for X550LB
   4dc1eb47fbea watchdog: s3c2410: Fix infinite interrupt in soft mode
   b18877ff66cf PCI: Add ACS quirk for Qualcomm QDF2400 and QDF2432
   5feac34f670c PCI: Sort the list of devices with D3 delay quirk by ID
   6b69d1f64499 mmc: sdhci-of-esdhc: remove default broken-cd for ARM
   0ddf07d2a130 PCI: Disable MSI for HiSilicon Hip06/Hip07 Root Ports
   28dd2313a6e4 PCI: Add Broadcom Northstar2 PAXC quirk for device class and MPSS
   35b366d584da ARM: smccc: Update HVC comment to describe new quirk parameter
   25bdb190ade0 drm/msm/adreno: move function declarations to header file
   bec9918bb4da firmware: qcom: scm: Fix interrupted SCM calls
   007f0a2f2c0f arm: kernel: Add SMC structure parameter
   703f48a1c302 HID: wacom: don't apply generic settings to old devices
   abb640893830 ASoC: sun4i-i2s: Add quirks to handle a31 compatible
   3d2f06d8d180 ACPI: save NVS memory for Lenovo G50-45
   09f78f116c03 ASoC: Intel: cht_bsw_rt5645: add Baytrail MCLK support
   584f4318f923 ASoC: Intel: cht_bsw_rt5645: harden ACPI device detection
   4060a32e9d24 ASoC: Intel: Baytrail: add quirk for Lenovo Thinkpad 10
   d572cfb66264 ASoC: codecs: rt5670: add quirk for Lenovo Thinkpad 10
   58153cca226f ASoC: rt5670: Add missing 10EC5072 ACPI ID
   e4ae51e44b89 ACPI / button: Change default behavior to lid_init_state=open
   b369fd719fa4 sata: ahci-da850: implement a workaround for the softreset quirk
   f36d3f1fe79e PCI: Add ACS quirk for Intel Union Point
   a452e4eb6ee2 ARM: dts: STiH407-family: set snps,dis_u3_susphy_quirk
   9ec57c921b9d drm/mga: remove device_is_agp callback
   ae3a3e209ef1 usb: dwc3: host: pass quirk-broken-port-ped property for known broken revisions
   7bdf7bebbbed usb: host: xhci-plat: enable BROKEN_PED quirk if platform requested
   15159247d25b usb: xhci: add quirk flag for broken PED bits
   660b38eab885 ARM: davinci: PM: support da8xx DT platforms
   db7c1706fa6d Input: gpio_keys - add support for GPIO descriptors
   80b0d7e623d1 serial: 8250_omap: Add OMAP_DMA_TX_KICK quirk for AM437x
   6b8deb108273 usb: chipidea: msm: Rely on core to override AHBBURST
   c5fc946a15dc scsi: ufs: issue link starup 2 times if device isn't active
   a17bddc4a781 scsi: ufs: introduce a new ufshcd_statea UFSHCD_STATE_EH_SCHEDULED
   e94ed347105d ASoC: Intel: bytcr_rt5640: quirks for Insyde devices
   0ed0810b8b02 drm/i915: actually drive the BDW reserved IDs
   70797929ee36 drm/i915: more .is_mobile cleanups for BDW
   0b348464eea0 drm/i915: fix INTEL_BDW_IDS definition
   14ec1cf414cf drm/edid: constify edid quirk list
   f188ee38d4cb HID: usbhid: Add quirk for Mayflash/Dragonrise DolphinBar.
   7fd75759ba07 HID: usbhid: Add quirk for the Futaba TOSD-5711BB VFD
   c1e94148f93c ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding
   43cfff65c989 nvme: simplify stripe quirk
   8d620dff40ba platform/x86: acer-wmi: Only supports AMW0_GUID1 on acer family
   2bd6cc1cce47 ALSA: usb-audio: Add native DSD support for TEAC 501/503 DAC
   8ae7242fea54 PCI: Expand "VPD access disabled" quirk message
   c0aac1bbb5d8 ALSA: usb-audio: add implicit fb quirk for Axe-Fx II
   bedc629494cd scsi: ufs: add quirk to increase host PA_SaveConfigTime
   5c6b8ad1ab25 PCI: thunder-pem: Factor out resource lookup
   5582c1980eac arm64: PCI: Add local struct device pointers
   cc49b39f3f2d arm64: PCI: Manage controller-specific data on per-controller basis
   625fd9d1af70 x86/intel_idle: Add CPU model 0x4a (Atom Z34xx series)
   607ca1dccbbd svcauth_gss: Close connection when dropping an incoming message
   3a87bcdebf6e scsi: ufs: ensure that host pa_tactivate is higher than device
   d84be51d1c1d mmc: sdhci-msm: Enable few quirks
   c6e3c6628dfb HID: multitouch: do not retrieve all reports for all devices
   68a83be38135 HID: multitouch: enable the Surface 3 Type Cover to report multitouch data
   c5fcc6332ddb HID: sensor-hub: add quirk for Microchip MM7150
   39f3c9291d69 HID: sensor-hub add quirk for Microsoft Surface 3
   9b41ed79ec78 scsi: ufs: introduce UFSHCD_QUIRK_PRDT_BYTE_GRAN quirk
   26cbe162df3d clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend
   d2f1000c3ae3 net/mlx4_core: Use device ID defines
   dcc4c6758100 arm64: dts: hisi: fix hip06 sas am-max-trans quirk
   b340c9648c2f ASoC: Intel: bytct_rt5640: change default capture settings
   d9a97dcdf5c2 usb: dwc3: gadget: delay unmap of bounced requests
   ee670af5feed HID: i2c-hid: add a simple quirk to fix device defects
   d640c41bced6 HID: usbhid: Add quirks for Mayflash/Dragonrise GameCube and PS3 adapters
   e02a5d1d5a05 clk: lpc32xx: add a quirk for PWM and MS clock dividers
   666d5f34d897 drm/sun4i: Add compatible string for A31/A31s TCON (timing controller)
   6af7e1cae445 drm/sun4i: Add compatible strings for A31/A31s display pipelines
   06a2bb472f71 drm/sun4i: tcon: Move SoC specific quirks to a DT matched data structure
   7c0361334466 random: use chacha20 for get_random_int/long
   cddab768d134 mm/mempolicy.c: fix error handling in set_mempolicy and mbind.
   24317cb6b400 Documentation: stable-kernel-rules: fix stable-tag format
   be56f92cc0a9 MIPS: c-r4k: Fix Loongson-3's vcache/scache waysize calculation
   59b8725f2b1e MIPS: Flush wrong invalid FTLB entry for huge page
   186fb3c52e39 MIPS: Add MIPS_CPU_FTLB for Loongson-3A R2
   3d5e13d891b0 MIPS: Check TLB before handle_ri_rdhwr() for Loongson-3
   c7f6633f7657 MIPS: Lantiq: fix missing xbar kernel panic
   1e7deb9da033 MIPS: End spinlocks with .insn
   19aa26f5be49 MIPS: ralink: Fix typos in rt3883 pinctrl
   9dcb21e63b2e MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels
   7b68273f79e8 s390/uaccess: get_user() should zero on failure (again)
   f4938792af38 s390/decompressor: fix initrd corruption caused by bss clear
   6a776f6ae3f8 xtensa: make __pa work with uncached KSEG addresses
   c1dcea123655 nios2: reserve boot memory for device tree
   27d382fb6afe dm raid: fix NULL pointer dereference for raid1 without bitmap
   abbf0fd436a9 powerpc/crypto/crc32c-vpmsum: Fix missing preempt_disable()
   45c2ed941c08 powerpc: Don't try to fix up misaligned load-with-reservation instructions
   fba7546bbe65 powerpc/64: Fix flush_(d|i)cache_range() called from modules
   24d945d4791f powerpc/mm: Add missing global TLB invalidate if cxl is active
   6fbf84b5da23 powerpc: Disable HFSCR[TM] if TM is not supported
   a1db9b2c1b12 metag/usercopy: Add missing fixups
   ce154d517ae4 metag/usercopy: Fix src fixup in from user rapf loops
   4f3f0dd2a75b metag/usercopy: Set flags before ADDZ
   3dc0fe517a9f metag/usercopy: Zero rest of buffer from copy_from_user
   4a93ac814ddc metag/usercopy: Add early abort to copy_to_user
   49a292dcd86b metag/usercopy: Fix alignment error checking
   2bb52b47e7f4 metag/usercopy: Drop unused macros
   9afc076d2812 brcmfmac: use local iftype avoiding use-after-free of virtual interface
   c0321505df2e mac80211: unconditionally start new netdev queues with iTXQ support
   703cebf6e978 ring-buffer: Fix return value check in test_ringbuffer()
   f7db18998e9c xfs: Honor FALLOC_FL_KEEP_SIZE when punching ends of files
   dc62935ce0fb orangefs: move features validation to fix filesystem hang
   c4fe79a44a5d Kbuild: use cc-disable-warning consistently for maybe-uninitialized
   e4a62348935e ACPI / gpio: do not fall back to parsing _CRS when we get a deferral
   ab83597b9d40 dm verity fec: fix bufio leaks
   2ff087642643 dm verity fec: limit error correction recursion
   d9fa4351037b ptrace: fix PTRACE_LISTEN race corrupting task->state
   e3b08ebe4773 mm/page_alloc.c: fix print order in show_free_areas()
   8446cb1adf95 Reset TreeId to zero on SMB2 TREE_CONNECT
   57e1e90dda74 cfg80211: check rdev resume callback only for registered wiphy
   3715dbf77f3b arm64: mm: unaligned access by user-land should be received as SIGBUS
   71b44ef83d2a iio: bmg160: reset chip when probing
   ac303c64cdb8 kvm: arm/arm64: Fix locking for kvm_free_stage2_pgd
   a1ea31893684 arm/arm64: KVM: Take mmap_sem in kvm_arch_prepare_memory_region
   48f2825abc65 arm/arm64: KVM: Take mmap_sem in stage2_unmap_vm
   8f8de8d2bf6c staging: android: ashmem: lseek failed due to no FMODE_LSEEK.
   d9eedab38395 sysfs: be careful of error returns from ops->show()
   4ddd24d54fed drm/vmwgfx: fix integer overflow in vmw_surface_define_ioctl()
   28c84df739e3 drm/vmwgfx: Remove getparam error message
   b116797b81e5 drm/ttm, drm/vmwgfx: Relax permission checking when opening surfaces
   604d2eac67cb drm/vmwgfx: avoid calling vzalloc with a 0 size in vmw_get_cap_3d_ioctl()
   73ab72517b61 drm/vmwgfx: NULL pointer dereference in vmw_surface_define_ioctl()
   92cc48166e49 drm/vmwgfx: Type-check lookups of fence objects
   9c2b46e720d5 ppdev: fix registering same device name
   bf5202b58f61 ppdev: check before attaching port

(From OE-Core rev: dcaa696022f8891d4db8733272eabf40f595b89b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4af605ae6f5ca763c65b3dca10b7ffb60f5ffa2e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
8aaf737d8b linux-yocto/4.4: update to v4.4.67
Integrating the korg v4.4.61 -> 4.4.67 releases with the following
commit summary:

   dec1dc2a0ee8 Linux 4.4.67
   3b9983bb354e dm ioctl: prevent stack leak in dm ioctl call
   da1ce38aaac7 nfsd: stricter decoding of write-like NFSv2/v3 ops
   35e13333c217 nfsd4: minor NFSv2/v3 write decoding cleanup
   16fb859f9b2b ext4/fscrypto: avoid RCU lookup in d_revalidate
   41948f88a521 ext4 crypto: use dget_parent() in ext4_d_revalidate()
   2faff9d1dfc5 ext4 crypto: revalidate dentry after adding or removing the key
   e2968fb8e798 ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY
   fee1f42b961e IB/ehca: fix maybe-uninitialized warnings
   56cd2ed3e25a IB/qib: rename BITS_PER_PAGE to RVT_BITS_PER_PAGE
   a8d47b4b3cb6 netlink: Allow direct reclaim for fallback allocation
   35c9bfa51154 8250_pci: Fix potential use-after-free in error path
   6f81dea4037c scsi: cxlflash: Improve EEH recovery time
   24d17d7853fa scsi: cxlflash: Fix to avoid EEH and host reset collisions
   69a9e016f0cc scsi: cxlflash: Scan host only after the port is ready for I/O
   ec2170f98f9a net: tg3: avoid uninitialized variable warning
   fd79e4363258 mtd: avoid stack overflow in MTD CFI code
   ee6b88767e87 drbd: avoid redefinition of BITS_PER_PAGE
   938206b8d798 ALSA: ppc/awacs: shut up maybe-uninitialized warning
   a2b3b19acfde ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
   6c106b55eb47 Handle mismatched open calls
   911bd54922cd timerfd: Protect the might cancel mechanism proper
   0c49a2c16ca9 Linux 4.4.66
   9c4a4755d9c5 ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram
   1aefe328a68d ARCv2: save r30 on kernel entry as gcc uses it for code-gen
   82a0d8aabe04 nfsd: check for oversized NFSv2/v3 arguments
   2032eebe2384 Input: i8042 - add Clevo P650RS to the i8042 reset list
   91ce8d13faeb p9_client_readdir() fix
   3bf0809930b8 MIPS: Avoid BUG warning in arch_check_elf
   1c26c382c9e7 MIPS: KGDB: Use kernel context for sleeping threads
   555f77106f77 ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
   8cbaf11c5026 ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type
   5e52fffbb11c ipv6: check raw payload size correctly in ioctl
   befb92542439 ipv6: check skb->protocol before lookup for nexthop
   114f0c66dab4 macvlan: Fix device ref leak when purging bc_queue
   bdeb026dfd9f ip6mr: fix notification device destruction
   25c104023372 netpoll: Check for skb->queue_mapping
   f6b94906b414 net: ipv6: RTF_PCPU should not be settable from userspace
   f6b34b1709ac dp83640: don't recieve time stamps twice
   78c4e3d4848d tcp: clear saved_syn in tcp_disconnect()
   52e33b4e505d sctp: listen on the sock only when it's state is listening or closed
   cc5a5c09d32b net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
   593e185eaade l2tp: fix PPP pseudo-wire auto-loading
   f710dbd92b27 l2tp: take reference on sessions being dumped
   25adf4e32a89 net/packet: fix overflow in check for tp_reserve
   cf71bd41f809 net/packet: fix overflow in check for tp_frame_nr
   8625dfcfd338 l2tp: purge socket queues in the .destruct() callback
   0e9eeb4676a7 net: phy: handle state correctly in phy_stop_machine
   428b3cefab22 net: neigh: guard against NULL solicit() method
   592d0e60a2b7 sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
   80ec183214e8 sparc64: kern_addr_valid regression
   c583862e95d2 xen/x86: don't lose event interrupts
   5709321fd962 usb: gadget: f_midi: Fixed a bug when buflen was smaller than wMaxPacketSize
   3e19487b9bf5 regulator: core: Clear the supply pointer if enabling fails
   804605eae410 RDS: Fix the atomicity for congestion map update
   b9baa0aa66ce net_sched: close another race condition in tcf_mirred_release()
   1d1cb762524f net: cavium: liquidio: Avoid dma_unmap_single on uninitialized ndata
   2907c91c9f9a MIPS: Fix crash registers on non-crashing CPUs
   49b2fe4b0207 md:raid1: fix a dead loop when read from a WriteMostly disk
   28320756e78b ext4: check if in-inode xattr is corrupted in ext4_expand_extra_isize_ea()
   99e96ce5e315 drm/amdgpu: fix array out of bounds
   10fc325c03d2 crypto: testmgr - fix out of bound read in __test_aead()
   40a55e4f9401 clk: sunxi: Add apb0 gates for H3
   531be60fc580 ARM: OMAP2+: timer: add probe for clocksources
   bd2d6cb00d1a xc2028: unlock on error in xc2028_set_config()
   716bcfeb12b8 f2fs: do more integrity verification for superblock
   418b99042b87 Linux 4.4.65
   416bd4a366f3 perf/core: Fix concurrent sys_perf_event_open() vs. 'move_group' race
   b7f47c794bc4 ping: implement proper locking
   a7544fdd1626 staging/android/ion : fix a race condition in the ion driver
   d23ef85b123d vfio/pci: Fix integer overflows, bitmask check
   65d30f7545ff tipc: check minimum bearer MTU
   9540baadb61b netfilter: nfnetlink: correctly validate length of batch messages
   0d9dac5d7cc3 xc2028: avoid use after free
   c50fd34e1089 mnt: Add a per mount namespace limit on the number of mounts
   59e0cd110fb9 tipc: fix socket timer deadlock
   abc025d1e88a tipc: fix random link resets while adding a second bearer
   d39cb4a59729 gfs2: avoid uninitialized variable warning
   9a35bc2ae545 hostap: avoid uninitialized variable use in hfa384x_get_rid
   58f80ccf09c4 tty: nozomi: avoid a harmless gcc warning
   2847736f563d tipc: correct error in node fsm
   76ca3053f32c tipc: re-enable compensation for socket receive buffer double counting
   3f3155904308 tipc: make dist queue pernet
   44b3b7e06887 tipc: make sure IPv6 header fits in skb headroom
   12f4e1f54a13 Linux 4.4.64
   6862fa9077de tipc: fix crash during node removal
   6ddbac9aa800 block: fix del_gendisk() vs blkdev_ioctl crash
   d1cc3cdd39e9 x86, pmem: fix broken __copy_user_nocache cache-bypass assumptions
   5693f3fb5a66 hv: don't reset hv_context.tsc_page on crash
   03e2fb9b5ce8 Drivers: hv: balloon: account for gaps in hot add regions
   8e7a6dbc3b71 Drivers: hv: balloon: keep track of where ha_region starts
   397488e09bf2 Tools: hv: kvp: ensure kvp device fd is closed on exec
   2a60bb635236 kvm: arm/arm64: Fix locking for kvm_free_stage2_pgd
   e2587fba9911 x86/mce/AMD: Give a name to MCA bank 3 when accessed with legacy MSRs
   6c107bba66dc powerpc/kprobe: Fix oops when kprobed on 'stdu' instruction
   38be91ce7ea8 ubi/upd: Always flush after prepared for an update
   b812c69019e4 mac80211: reject ToDS broadcast data frames
   b74ba9dd91e5 mmc: sdhci-esdhc-imx: increase the pad I/O drive strength for DDR50 card
   6986d0d29f3c ACPI / power: Avoid maybe-uninitialized warning
   cdede60d6a30 Input: elantech - add Fujitsu Lifebook E547 to force crc_enabled
   8d5ed79fb2d7 VSOCK: Detach QP check should filter out non matching QPs.
   f803416632b5 Drivers: hv: vmbus: Reduce the delay between retries in vmbus_post_msg()
   567dd48c4e71 Drivers: hv: get rid of timeout in vmbus_open()
   5ab982a01201 Drivers: hv: don't leak memory in vmbus_establish_gpadl()
   702db976b857 s390/mm: fix CMMA vs KSM vs others
   859d615b5be1 CIFS: remove bad_network_name flag
   f8fe51c86583 cifs: Do not send echoes before Negotiate is complete
   a2a67e53f92f ring-buffer: Have ring_buffer_iter_empty() return true when empty
   1dfb1c7bd63f tracing: Allocate the snapshot buffer before enabling probe
   c9460fbceb2f KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings
   eb78d9877579 KEYS: Change the name of the dead type to ".dead" to prevent user access
   b5737b92560e KEYS: Disallow keyrings beginning with '.' to be joined as session keyrings
   81af21fe95ba Linux 4.4.63
   d00557976676 MIPS: fix Select HAVE_IRQ_EXIT_ON_IRQ_STACK patch.
   e2f5fb9207a6 sctp: deny peeloff operation on asocs with threads sleeping on it
   f00f18ebb3b2 net: ipv6: check route protocol when deleting routes
   990a142ee0d3 tty/serial: atmel: RS485 half duplex w/DMA: enable RX after TX is done
   8dc821b9f67d SUNRPC: fix refcounting problems with auth_gss messages.
   403a728d1a35 ibmveth: calculate gso_segs for large packets
   65596042c3af catc: Use heap buffer for memory size test
   40531b26bade catc: Combine failure cleanup code in catc_probe()
   a90604be51de rtl8150: Use heap buffers for all register access
   be570e556dee pegasus: Use heap buffers for all register access
   eb5267657d85 virtio-console: avoid DMA from stack
   6be431f91632 dvb-usb-firmware: don't do DMA on stack
   502157457f52 dvb-usb: don't use stack for firmware load
   6739cc12f3db mm: Tighten x86 /dev/mem with zeroing reads
   ba02781392fa rtc: tegra: Implement clock handling
   ccf0904c49b1 platform/x86: acer-wmi: setup accelerometer when machine has appropriate notify event
   51f8d95c89b4 ext4: fix inode checksum calculation problem if i_extra_size is small
   0cb03b6e7086 dvb-usb-v2: avoid use-after-free
   ea6d8d67001a ath9k: fix NULL pointer dereference
   2673d1c5122e crypto: ahash - Fix EINPROGRESS notification callback
   70e55aaf9f8c powerpc: Disable HFSCR[TM] if TM is not supported
   9286385a3452 zram: do not use copy_page with non-page aligned address
   c1fc1d2f214e kvm: fix page struct leak in handle_vmon
   98c953a0a51f Revert "MIPS: Lantiq: Fix cascaded IRQ setup"
   a32c5331b462 char: lack of bool string made CONFIG_DEVPORT always on
   0a6aa0d1cf27 char: Drop bogus dependency of DEVPORT on !M68K
   7fe57118a7c0 ftrace: Fix removing of second function probe
   c51451e43bf1 irqchip/irq-imx-gpcv2: Fix spinlock initialization
   66b531d3ff11 libnvdimm: fix reconfig_mutex, mmap_sem, and jbd2_handle lockdep splat
   6058cf9929d9 xen, fbfront: fix connecting to backend
   b689dfbed8c8 scsi: sd: Fix capacity calculation with 32-bit sector_t
   448961955592 scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable
   925adae6664c scsi: sr: Sanity check returned mode data
   1e1de2e841e1 iscsi-target: Drop work-around for legacy GlobalSAN initiator
   05c5dd75d77c iscsi-target: Fix TMR reference leak during session shutdown
   074bcc1302fd acpi, nfit, libnvdimm: fix interleave set cookie calculation (64-bit comparison)
   ec3978e10ecc x86/vdso: Plug race between mapping and ELF header setup
   f1c5d0163586 x86/vdso: Ensure vdso32_enabled gets set to valid values only
   f42be33fe976 perf/x86: Avoid exposing wrong/stale data in intel_pmu_lbr_read_32()
   a5e2f803b891 Input: xpad - add support for Razer Wildcat gamepad
   f0899d0e1e9e CIFS: store results of cifs_reopen_file to avoid infinite wait
   a11ab9dd4b78 drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one
   a737abe4d09a drm/nouveau/mpeg: mthd returns true on success now
   ef4c962825c0 thp: fix MADV_DONTNEED vs clear soft dirty race
   3144d81a7735 cgroup, kthread: close race window where new kthreads can be migrated to non-root cgroups
   a80c068fbf43 Linux 4.4.62
   7d170f270a95 ibmveth: set correct gso_size and gso_type
   ac0cbfbb1e4b net/mlx4_core: Fix when to save some qp context flags for dynamic VST to VGT transitions
   710f793a15de net/mlx4_core: Fix racy CQ (Completion Queue) free
   f1e6b1149e49 net/mlx4_en: Fix bad WQE issue
   0a007f74b826 usb: hub: Wait for connection to be reestablished after port reset
   f4522e36edaa blk-mq: Avoid memory reclaim when remapping queues
   d35f8fa0b93e net/packet: fix overflow in check for priv area size
   fd8bae310684 crypto: caam - fix RNG deinstantiation error checking
   ba7681e4eee6 MIPS: IRQ Stack: Fix erroneous jal to plat_irq_dispatch
   f017e58da4ab MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK
   b39b26381668 MIPS: Switch to the irq_stack in interrupts
   93a82f8dbef8 MIPS: Only change $28 to thread_info if coming from user mode
   336365351285 MIPS: Stack unwinding while on IRQ stack
   d8b8b5528ea5 MIPS: Introduce irq_stack
   5a527d80836e mtd: bcm47xxpart: fix parsing first block after aligned TRX
   297f55bcb62a usb: dwc3: gadget: delay unmap of bounced requests
   8cfaf0ae1f56 drm/i915: Stop using RP_DOWN_EI on Baytrail
   cb0a2cba62d5 drm/i915: Avoid tweaking evaluation thresholds on Baytrail v3

(From OE-Core rev: 2a427e642027cdd2e222ded8df252d74a7427159)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 34e53af8ed9d27ab010e57bcc08dee6f333da9fd)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
49495c60c5 linux-yocto/4.10: update to v4.10.15
Merging the korg stable releases 4.10.10 -> 4.10.15 with the following
shortlog summary:

    b1cff0b2ed20 Linux 4.10.15
    de7b7a35c99e dm ioctl: prevent stack leak in dm ioctl call
    8dee04de5def hwmon: (it87) Avoid registering the same chip on both SIO addresses
    ad66b968a0e5 scsi: storvsc: Workaround for virtual DVD SCSI version
    fc08ba650a2b Handle mismatched open calls
    43c1696e5e91 timerfd: Protect the might cancel mechanism proper
    d08276658dee Linux 4.10.14
    3adeab312a65 ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram
    13d970940217 cpu/hotplug: Serialize callback invocations proper
    bd7c4f5e1d25 net: can: usb: gs_usb: Fix buffer on stack
    43a35e671f8f macsec: avoid heap overflow in skb_to_sgvec
    e4720b009def ceph: fix recursion between ceph_set_acl() and __ceph_setattr()
    43e360377b09 nfsd: stricter decoding of write-like NFSv2/v3 ops
    144180dc4736 nfsd4: minor NFSv2/v3 write decoding cleanup
    86eb1d0aab0d nfsd: check for oversized NFSv2/v3 arguments
    b98d12a15ed1 Input: i8042 - add Clevo P650RS to the i8042 reset list
    2f680d46a0b5 ASoC: intel: Fix PM and non-atomic crash in bytcr drivers
    bec0749254e7 p9_client_readdir() fix
    67355b67b41c MIPS: Avoid BUG warning in arch_check_elf
    7cb5877dc20e MIPS: cevt-r4k: Fix out-of-bounds array access
    09c953f73ff0 MIPS: KGDB: Use kernel context for sleeping threads
    4a71345ea6f8 ARC: [plat-eznps] Fix build error
    47dbabb85ef7 scsi: return correct blkprep status code in case scsi_init_io() fails.
    dcb730f79d33 ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
    7b2b791c65d2 ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type
    a33e886d3f19 ALSA: oxfw: fix regression to handle Stanton SCS.1m/1d
    f62c45868079 ipv6: check raw payload size correctly in ioctl
    466dfcd1d81a tcp: memset ca_priv data to 0 properly
    04630e2ed834 ipv6: check skb->protocol before lookup for nexthop
    683f8d60761c net: phy: fix auto-negotiation stall due to unavailable interrupt
    f9a8970e9eee net: ipv6: regenerate host route if moved to gc list
    e2ae71739253 macvlan: Fix device ref leak when purging bc_queue
    b073c2c3d40c tcp: mark skbs with SCM_TIMESTAMPING_OPT_STATS
    cdaf15b43bd3 tcp: fix SCM_TIMESTAMPING_OPT_STATS for normal skbs
    df4c4820a0b0 net/mlx5e: Fix ETHTOOL_GRXCLSRLALL handling
    cce19108367e net/mlx5e: Fix small packet threshold
    3faae16bf93e net/mlx5: E-Switch, Correctly deal with inline mode on ConnectX-5
    82aa6b2c1f19 net/mlx5: Fix driver load bad flow when having fw initializing timeout
    ff247bdf248a ip6mr: fix notification device destruction
    9db670f71b6a netpoll: Check for skb->queue_mapping
    5e54291edfb9 net: ipv6: RTF_PCPU should not be settable from userspace
    ee1f368e99ba gso: Validate assumption of frag_list segementation
    03940f08b972 ipv6: fix source routing
    c52ac0687247 ipv6: sr: fix double free of skb after handling invalid SRH
    3b600a30d126 dp83640: don't recieve time stamps twice
    a024074740e7 ipv6: sr: fix out-of-bounds access in SRH validation
    7e793ce3b3e1 sh_eth: unmap DMA buffers when freeing rings
    c526d0869a3a net: vrf: Fix setting NLM_F_EXCL flag when adding l3mdev rule
    9ca5d7e426dd net-timestamp: avoid use-after-free in ip_recv_error
    0d8ef98cefae ipv6: Fix idev->addr_list corruption
    29dc163a721e tcp: clear saved_syn in tcp_disconnect()
    1ebfe5cf3727 sctp: listen on the sock only when it's state is listening or closed
    280a7e34a987 net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
    c747d66b6c6f l2tp: fix PPP pseudo-wire auto-loading
    2ba7cfd4f6a9 l2tp: take reference on sessions being dumped
    0fbdeb789013 openvswitch: Fix ovs_flow_key_update()
    f9bd6b937de6 net/packet: fix overflow in check for tp_reserve
    57a88382a969 net/packet: fix overflow in check for tp_frame_nr
    5894337297ad l2tp: purge socket queues in the .destruct() callback
    7d5eb39c0d8c l2tp: hold tunnel socket when handling control frames in l2tp_ip and l2tp_ip6
    63ae30d5caa7 net/mlx5: Avoid dereferencing uninitialized pointer
    4f45e887a632 bpf: improve verifier packet range checks
    443fac9f2618 secure_seq: downgrade to per-host timestamp offsets
    a35c14672325 kcm: return immediately after copy_from_user() failure
    c79db30fd1b0 net: phy: handle state correctly in phy_stop_machine
    693d7da388c2 net: neigh: guard against NULL solicit() method
    2ec8024c5672 sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
    1797e172bf10 sparc64: kern_addr_valid regression
    7cf480444103 ping: implement proper locking
    b957be36d793 Linux 4.10.13
    9254ada03382 device-dax: switch to srcu, fix rcu_read_lock() vs pte allocation
    7d1c1be6c8d3 x86/mce/AMD: Give a name to MCA bank 3 when accessed with legacy MSRs
    1136723a6cf0 powerpc/kprobe: Fix oops when kprobed on 'stdu' instruction
    a6db433483db ubi/upd: Always flush after prepared for an update
    a32ff3f07f9b x86/mce: Make the MCE notifier a blocking one
    c77e7d37ac50 mac80211: fix MU-MIMO follow-MAC mode
    ee9b489925a0 mac80211: reject ToDS broadcast data frames
    71a3e3679e30 ubifs: Fix O_TMPFILE corner case in ubifs_link()
    c1cadf6af8b7 ubifs: Fix RENAME_WHITEOUT support
    2745665258c3 mmc: sdhci-esdhc-imx: increase the pad I/O drive strength for DDR50 card
    b478c19f3de4 mmc: dw_mmc: Don't allow Runtime PM for SDIO cards
    9b02ecd10cff ACPI / power: Avoid maybe-uninitialized warning
    7010e15d1d22 Input: elantech - add Fujitsu Lifebook E547 to force crc_enabled
    0cb760dfc75b s390/mm: fix CMMA vs KSM vs others
    71766b913996 mmc: dw_mmc: silent verbose log when calling from PM context
    9f8296778b61 CIFS: remove bad_network_name flag
    5cd77ebf2254 cifs: Do not send echoes before Negotiate is complete
    63ad4051e89c mm: prevent NR_ISOLATE_* stats from going negative
    64d253367ae0 ring-buffer: Have ring_buffer_iter_empty() return true when empty
    eff248618a59 HID: wacom: Treat HID_DG_TOOLSERIALNUMBER as unsigned
    838a281c4a17 tracing: Allocate the snapshot buffer before enabling probe
    523ae2e9e39a KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings
    cc4f98410688 KEYS: Change the name of the dead type to ".dead" to prevent user access
    4cbbfd6aafe1 KEYS: Disallow keyrings beginning with '.' to be joined as session keyrings
    055c0a94117c Linux 4.10.12
    e5349c13c7a8 virtio-console: avoid DMA from stack
    e0116f4d9a9a cxusb: Use a dma capable buffer also for reading
    b1bfb5083bfa mm: Tighten x86 /dev/mem with zeroing reads
    2c4d8f20cc29 rtc: tegra: Implement clock handling
    a16534a33305 ACPI / EC: Use busy polling mode when GPE is not enabled
    8a73a223fb70 x86/xen: Fix APIC id mismatch warning on Intel
    e765ef79fdf3 platform/x86: acer-wmi: setup accelerometer when machine has appropriate notify event
    35549ee08285 ASoC: Intel: select DW_DMAC_CORE since it's mandatory
    765c74b9cc27 dvb-usb-v2: avoid use-after-free
    ce5fe5a547d8 parisc: Fix get_user() for 64-bit value on 32-bit kernel
    aa7ca04fb26c crypto: lrw - Fix use-after-free on EINPROGRESS
    cb0567fc5114 crypto: ahash - Fix EINPROGRESS notification callback
    102da3a73f9a crypto: xts - Fix use-after-free on EINPROGRESS
    25308983eda6 crypto: algif_aead - Fix bogus request dereference in completion function
    a0a1e90f5057 ftrace: Fix function pid filter on instances
    58bc856c41fb zram: do not use copy_page with non-page aligned address
    9bf69094c2ad Revert "MIPS: Lantiq: Fix cascaded IRQ setup"
    1cb293ab0236 char: lack of bool string made CONFIG_DEVPORT always on
    ebe4deab5c80 drm/i915/gvt: set the correct default value of CTX STATUS PTR
    4bf7df7b3bd7 ftrace: Fix removing of second function probe
    9b35ab51a0b4 irqchip/irq-imx-gpcv2: Fix spinlock initialization
    b648679070a9 cpufreq: Bring CPUs up even if cpufreq_online() failed
    26052e29d6a2 pwm: rockchip: State of PWM clock should synchronize with PWM enabled state
    96b121b50683 can: ifi: use correct register to read rx status
    5b750d3c56e3 libnvdimm: band aid btt vs clear poison locking
    f0f306710e24 libnvdimm: fix reconfig_mutex, mmap_sem, and jbd2_handle lockdep splat
    e0d47228949e libnvdimm: fix blk free space accounting
    66481ca0750d make skb_copy_datagram_msg() et.al. preserve ->msg_iter on error
    a99a9ff2374a new privimitive: iov_iter_revert()
    939707c50352 xen, fbfront: fix connecting to backend
    22113847cd11 target: Avoid mappedlun symlink creation during lun shutdown
    53204334cca0 scsi: sd: Fix capacity calculation with 32-bit sector_t
    24c01b369765 scsi: qla2xxx: Add fix to read correct register value for ISP82xx.
    8b30ed56fa89 scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable
    01fb9440938a scsi: sr: Sanity check returned mode data
    c8270f29214c iscsi-target: Drop work-around for legacy GlobalSAN initiator
    510152205d41 iscsi-target: Fix TMR reference leak during session shutdown
    c100de410c1e efi/fb: Avoid reconfiguration of BAR that covers the framebuffer
    6b8a0080915d efi/libstub: Skip GOP with PIXEL_BLT_ONLY format
    ca3e0b6d6b25 parisc: fix bugs in pa_memcpy
    87ad80ecdb5c ACPI / scan: Set the visited flag for all enumerated devices
    122c16ccc71b acpi, nfit, libnvdimm: fix interleave set cookie calculation (64-bit comparison)
    083d30d61a1a x86/vdso: Plug race between mapping and ELF header setup
    90dc1120444f x86/vdso: Ensure vdso32_enabled gets set to valid values only
    b8cb11e01a7f x86, pmem: fix broken __copy_user_nocache cache-bypass assumptions
    1a99658f083d x86/intel_rdt: Fix locking in rdtgroup_schemata_write()
    565194a42052 x86/signals: Fix lower/upper bound reporting in compat siginfo
    c6be568a2f24 x86/efi: Don't try to reserve runtime regions
    4ff9e6c2d86b perf/x86: Avoid exposing wrong/stale data in intel_pmu_lbr_read_32()
    535adf24d1a7 perf annotate s390: Fix perf annotate error -95 (4.10 regression)
    7869b4078ba9 Input: xpad - add support for Razer Wildcat gamepad
    3f17ee38a808 CIFS: store results of cifs_reopen_file to avoid infinite wait
    6e9b6937a923 CIFS: reconnect thread reschedule itself
    d38b12ab7b05 drm/fb-helper: Allow var->x/yres(_virtual) < fb->width/height again
    e97e515b7448 drm/etnaviv: fix missing unlock on error in etnaviv_gpu_submit()
    3287a46c7829 drm/nouveau: initial support (display-only) for GP107
    2efa4bd3b644 drm/nouveau/kms/nv50: fix double dma_fence_put() when destroying plane state
    b6b2448efe64 drm/nouveau/kms/nv50: fix setting of HeadSetRasterVertBlankDmi method
    8418bb809e55 drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one
    cc3c096855c6 drm/nouveau/mpeg: mthd returns true on success now
    5de87d225e08 orangefs: free superblock when mount fails
    5f8cde206712 zsmalloc: expand class bit
    5c7de4610825 thp: fix MADV_DONTNEED vs clear soft dirty race
    d7847a2203a1 thp: fix MADV_DONTNEED vs. MADV_FREE race
    e2083153996d tcmu: Skip Data-Out blocks before gathering Data-In buffer for BIDI case
    acbb93eb7447 tcmu: Fix wrongly calculating of the base_command_size
    1486f834e887 tcmu: Fix possible overwrite of t_data_sg's last iov[]
    e8339b9ddfe6 audit: make sure we don't let the retry queue grow without bounds
    668e2d892499 cgroup, kthread: close race window where new kthreads can be migrated to non-root cgroups
    4c031101dc08 Linux 4.10.11
    2ef9c8dd6ecd dma-buf: add support for compat ioctl
    10e13823b0a9 net/packet: fix overflow in check for priv area size
    50d60091d294 crypto: caam - fix invalid dereference in caam_rsa_init_tfm()
    41889ca0002a crypto: caam - fix RNG deinstantiation error checking
    8e94a6f43dff MIPS: IRQ Stack: Fix erroneous jal to plat_irq_dispatch
    4a1fe14b16c9 MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK
    2c7235dbdd51 MIPS: Switch to the irq_stack in interrupts
    b21e28eafd17 MIPS: Only change $28 to thread_info if coming from user mode
    ece65a60793c MIPS: Stack unwinding while on IRQ stack
    6b720ff376fd MIPS: Introduce irq_stack
    612973c55404 rt2x00usb: do not anchor rx and tx urb's
    244ff096a321 rt2x00usb: fix anchor initialization
    df741f77edfa nfs: flexfiles: fix kernel OOPS if MDS returns unsupported DS type
    f536c2058420 orangefs: fix buffer size mis-match between kernel space and user space.
    f20e76a469c1 orangefs: Dan Carpenter influenced cleanups...
    b01252079ec7 drm/i915: Do .init_clock_gating() earlier to avoid it clobbering watermarks
    d5b5a4d3f77f drm/i915: Avoid rcu_barrier() from reclaim paths (shrinker)
    de3571619eeb drm/i915: Stop using RP_DOWN_EI on Baytrail
    29abfd4ee598 drm/i915: Drop support for I915_EXEC_CONSTANTS_* execbuf parameters.
    b364cf79fc37 drm/i915: Only enable hotplug interrupts if the display interrupts are enabled
    56613bca0578 drm/i915: Reject HDMI 12bpc if the sink doesn't indicate support
    dba29c1139fc drm/i915: Avoid tweaking evaluation thresholds on Baytrail v3
    fccb5940cc17 drm/i915: Nuke debug messages from the pipe update critical section
    29a9a6a329d1 drm/i915: Store a permanent error in obj->mm.pages
    432ae45238b8 drm/i915/gen9: Increase PCODE request timeout to 50ms
    b93cb4cc2eab drm/i915: Squelch any ktime/jiffie rounding errors for wait-ioctl
    ec417098e18f drm/i915/fbdev: Stop repeating tile configuration on stagnation
    4f985d41bc5f drm/i915: Move updating color management to before vblank evasion
    a8a20aecc9c1 drm/i915: Fix forcewake active domain tracking
    e6925852d5b8 Linux 4.10.10
    e6c5fe2374cd x86/reboot/quirks: Fix typo in ASUS EeeBook X205TA reboot quirk
    a148ee8f7156 usb-storage: Add ignore-residue quirk for Initio INIC-3619
    118b1ef49a33 x86/reboot/quirks: Add ASUS EeeBook X205TA/W reboot quirk
    2b0766deb008 x86/reboot/quirks: Add ASUS EeeBook X205TA reboot quirk
    3db435d09bc3 platform/x86: asus-wmi: Detect quirk_no_rfkill from the DSDT
    d0331c21a1a6 watchdog: s3c2410: Fix infinite interrupt in soft mode
    07371cd9ef21 PCI: Add ACS quirk for Qualcomm QDF2400 and QDF2432
    e90d491bcf00 PCI: Sort the list of devices with D3 delay quirk by ID
    9fd0dee94856 mmc: sdhci-of-esdhc: remove default broken-cd for ARM
    8f24ffc2f9a0 PCI: Disable MSI for HiSilicon Hip06/Hip07 Root Ports
    f2d9c08fc9b2 PCI: Add Broadcom Northstar2 PAXC quirk for device class and MPSS
    0755d2b5fe92 ARM: smccc: Update HVC comment to describe new quirk parameter
    7dd05d366148 firmware: qcom: scm: Fix interrupted SCM calls
    cc9b9deb6197 arm: kernel: Add SMC structure parameter
    2dca786b85e2 HID: wacom: don't apply generic settings to old devices
    6ac0617424d4 ASoC: sun4i-i2s: Add quirks to handle a31 compatible
    ab0b1f481fa9 ACPI: save NVS memory for Lenovo G50-45
    36426b3a31dc ASoC: Intel: cht_bsw_rt5645: add Baytrail MCLK support
    bdbe9135ead6 ASoC: Intel: cht_bsw_rt5645: harden ACPI device detection
    88f1372e28b2 ASoC: Intel: Baytrail: add quirk for Lenovo Thinkpad 10
    770049fddd84 ASoC: codecs: rt5670: add quirk for Lenovo Thinkpad 10
    8d5dd97f5556 ACPI / button: Change default behavior to lid_init_state=open
    53a898c2dc3b sata: ahci-da850: implement a workaround for the softreset quirk
    fcfd2ac4abfb PCI: xgene: Fix double free on init error
    c259b9b74ebc PCI: Add ACS quirk for Intel Union Point
    8a4b2d4ba49c drm/mga: remove device_is_agp callback
    f08ae685954e usb: dwc3: host: pass quirk-broken-port-ped property for known broken revisions
    41d6d9750ba3 usb: host: xhci-plat: enable BROKEN_PED quirk if platform requested
    9763fee4c38d usb: xhci: add quirk flag for broken PED bits
    afdb6b99f54e serial: 8250_omap: Add OMAP_DMA_TX_KICK quirk for AM437x
    99b4f57bffe5 usb: chipidea: msm: Rely on core to override AHBBURST
    f576c28172a3 ASoC: Intel: bytcr_rt5640: quirks for Insyde devices
    24fdd3f90f4c drm/i915: actually drive the BDW reserved IDs
    0325b5e1b637 drm/i915: more .is_mobile cleanups for BDW
    bb4c89250bcc drm/i915: fix INTEL_BDW_IDS definition
    d7f19357fe65 drm/edid: constify edid quirk list
    b04940e26f10 kvm: fix page struct leak in handle_vmon
    af7291601501 random: use chacha20 for get_random_int/long
    d57c764a703b mm/mempolicy.c: fix error handling in set_mempolicy and mbind.
    596c2d180a96 Documentation: stable-kernel-rules: fix stable-tag format
    813e1ac7259b usb: dwc3: gadget: delay unmap of bounced requests
    5e87a005ff57 drm/i915/kvmgt: fix suspicious rcu dereference usage
    cccf8321af1c drm/i915/gvt: Fix gvt scheduler interval time
    fba7cfc66b25 MIPS: c-r4k: Fix Loongson-3's vcache/scache waysize calculation
    42ce8ecfd141 MIPS: Flush wrong invalid FTLB entry for huge page
    a854a7975ce0 MIPS: Add MIPS_CPU_FTLB for Loongson-3A R2
    5dc665924208 MIPS: Check TLB before handle_ri_rdhwr() for Loongson-3
    464d88e8a0ad MIPS: Lantiq: fix missing xbar kernel panic
    187b957634f0 MIPS: End spinlocks with .insn
    0c4b9fe70343 MIPS: ralink: Fix typos in rt3883 pinctrl
    e09e410969ef MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels
    94f3dd6b140a s390/uaccess: get_user() should zero on failure (again)
    5d4d57697aa1 s390/decompressor: fix initrd corruption caused by bss clear
    a66f5106e710 xtensa: make __pa work with uncached KSEG addresses
    36463a76abeb nios2: reserve boot memory for device tree
    be9fe9d48988 x86/mce: Don't print MCEs when mcelog is active
    fe96b265778a dm raid: fix NULL pointer dereference for raid1 without bitmap
    5c67d5410bbb powerpc/crypto/crc32c-vpmsum: Fix missing preempt_disable()
    d625e1a1530d powerpc: Don't try to fix up misaligned load-with-reservation instructions
    b129e418406b powerpc/64: Fix flush_(d|i)cache_range() called from modules
    12502ae4c9a1 powerpc/mm: Add missing global TLB invalidate if cxl is active
    2a3134e106d4 powerpc: Disable HFSCR[TM] if TM is not supported
    be5569719b5c drm/msm: adreno: fix build error without debugfs
    169b36bef88f metag/usercopy: Add missing fixups
    191e4c735549 metag/usercopy: Fix src fixup in from user rapf loops
    e6ca39ac0c0d metag/usercopy: Set flags before ADDZ
    b03dd10e4c58 metag/usercopy: Zero rest of buffer from copy_from_user
    60a0b56ea119 metag/usercopy: Add early abort to copy_to_user
    e61ffb12b6ac metag/usercopy: Fix alignment error checking
    804453ff0993 metag/usercopy: Drop unused macros
    6d855e027553 brcmfmac: use local iftype avoiding use-after-free of virtual interface
    96499191fe6d mac80211: unconditionally start new netdev queues with iTXQ support
    ab23a82a0176 ring-buffer: Fix return value check in test_ringbuffer()
    24d108e4dfec xfs: Honor FALLOC_FL_KEEP_SIZE when punching ends of files
    1d656a4d8e87 orangefs: move features validation to fix filesystem hang
    b92a638e002b jump label: fix passing kbuild_cflags when checking for asm goto support
    7b73b72fbf82 Kbuild: use cc-disable-warning consistently for maybe-uninitialized
    52b38ad09a6c ACPI / scan: Prefer devices without _HID for _ADR matching
    e56bb92202f7 ACPI / gpio: do not fall back to parsing _CRS when we get a deferral
    1c9925e63abb dm verity fec: fix bufio leaks
    88c358b1f453 dm verity fec: limit error correction recursion
    523a19324267 dax: fix radix tree insertion race
    8bdc69ccb9f8 ptrace: fix PTRACE_LISTEN race corrupting task->state
    0666cf6c9c18 mm/page_alloc.c: fix print order in show_free_areas()
    674850494e19 Reset TreeId to zero on SMB2 TREE_CONNECT
    c793e3374981 cfg80211: check rdev resume callback only for registered wiphy
    b48b63d5f583 arm64: mm: unaligned access by user-land should be received as SIGBUS
    3d44ecc1206e iio: bmg160: reset chip when probing
    2501a0af1734 iio: st_pressure: initialize lps22hb bootime
    a16d8c4e8f77 iio: core: Fix IIO_VAL_FRACTIONAL_LOG2 for negative values
    0d50669ca41f kvm: arm/arm64: Fix locking for kvm_free_stage2_pgd
    e8c3d6542edb arm/arm64: KVM: Take mmap_sem in kvm_arch_prepare_memory_region
    fc29073a15e8 arm/arm64: KVM: Take mmap_sem in stage2_unmap_vm
    fb3ce7a85213 staging: android: ashmem: lseek failed due to no FMODE_LSEEK.
    38b4b8a0969d sysfs: be careful of error returns from ops->show()
    a709613559d6 PCI: thunder-pem: Fix legacy firmware PEM-specific resources
    f8709a9ec8ae PCI: thunder-pem: Add legacy firmware support for Cavium ThunderX host controller
    44eed6f02491 drm/vmwgfx: fix integer overflow in vmw_surface_define_ioctl()
    a2d474ab560c drm/vmwgfx: Remove getparam error message
    009eb75f7fb0 drm/ttm, drm/vmwgfx: Relax permission checking when opening surfaces
    7a392c9a4563 drm/vmwgfx: avoid calling vzalloc with a 0 size in vmw_get_cap_3d_ioctl()
    0570c0cd987f drm/vmwgfx: NULL pointer dereference in vmw_surface_define_ioctl()
    3622a033c419 drm/vmwgfx: Type-check lookups of fence objects

(From OE-Core rev: 98bce9cfbdb1bc945eb9058b9a57696f639e149f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 58063bcdb78c9434b4d36e3a73df977b64d1640f)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Bruce Ashfield
912d9f531e kernel-yocto: propagate configuration errors to bbclass
As pointed out by klapperichpaul@johndeere.com, missing configuration
fragments were being picked up twice, once by the tools and once by the
bbclass. Unfortunately, the tools error message was being detected as
configs, and hence no error was reported at all.

Rather than catching the output of the tools, we can instead check the
return code and propagate the error message from the tools directly to
the user.

[YOCTO #11649]

(From OE-Core rev: 3470a3839577b99322c10f830cdaa61128ef6b16)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 960652416e2390337df6d9734375d6829ceb6420)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Stanley Cheong Kwan, Phoong
0ffe27ffef recipetool: git reformat URI mangling & parameter stripped
recipetool seems to be mangling and stripping out the parameters for git
URI. This will fix this issue as well as resolve the conflict of
protocol parameter added by user. If a user adds their own protocol as
an argument, it'll be honored.

[YOCTO #11390]
[YOCTO #11391]

(From OE-Core rev: e3c832e49a9596537198a46075ed3d6794639953)

Signed-off-by: Stanley Cheong Kwan, Phoong <stanley.cheong.kwan.phoong@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 0cd2fc8ca278ebaa76de95545eef26a07b350c8e)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Chen Qi
182e0a290d systemd: workaround login failure on qemumips64 when 'pam' is enabled
Append " -fno-tree-switch-conversion -fno-tree-tail-merge" to
FULL_OPTIMIZATION to workaround login problem on qemumips64. Otherwise,
user cannot login onto the target even username and password are
provided.

(From OE-Core rev: 89d53c742d3538744b892237698ffde2c9c60009)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 35403ba3707c3c8dd94bcc557eef6f7c66696bc5)

Hand applied
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:45 +01:00
Ross Burton
b7e7b5e294 systemd: refuse to load units with errors (CVE-2017-1000082)
If a unit has a statement such as User=0day where the username exists but is
strictly speaking invalid, the unit will be started as the root user instead.

Backport a patch from upstream to mitigate this by refusing to start units such
as this.

(From OE-Core rev: a6eaef0f179a341c0b96bb30aaec2d80862a11d6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Patrick Ohly
bc3fa28e93 yocto-compat-layer.py: make signature check code reusable
This moves the main content of test_signature into a helper
function. It can be reused by arbitrary tests that need to do
a before/after signature comparison. Long-term this might even
be useful in oeqa itself.

(From OE-Core rev: 23939d0acb563e27a1419d3f532a47c3d6a59a3e)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Patrick Ohly
026586965a yocto-compat-layer.py: allow README with suffix
It may be useful to append a suffix denoting the file format. For
example, README.rst is rendered differently when viewed on Github, and
also helps editors to switch to a mode more suitable for the format.

The tests uses a file pattern to find the README file(s) and treats
the one with the shortest name as the main one which must not be
empty.

(From OE-Core rev: 0abc29f135d7f870168d9676395f3a4bb77174b8)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Patrick Ohly
8f20c03dd6 yocto-compat-layer.py: add test_world
"test_signatures" ignores wold build breakage for the sake of
reporting differences also when a world build is broken. Therefore we
need a dedicated test that a world build at least theoretically can
proceed without obvious parse time problems (dependencies, parse
errors, dangling .bbappends, etc.).

This is similar to the BSP test_machine_world. The difference is
that test_world doesn't change the MACHINE.

(From OE-Core rev: da18bea6808aaddf3fa3fe72ac7e2d87d7e78b95)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Patrick Ohly
14d5932c20 yocto-compat-layer.py: apply test_signatures to all layers
Software layers were previously allowed to change signatures, but
that's not desired for those layers either. The rule that a layer
which is "Yocto Compatible 2.0" must not change signatures unless
explicitly requested holds for all kinds of layers.

However, as this is something that software layers might not be able
to do right away, testing for signature changes in software layers can
be disabled. It's on by default, as that was Richard's
recommendation. Whether that should change needs further discussion as
part of finalizing "Yocto Compatible 2.0".

As it might still change, the tool now has both a with/without
parameter so that users of the tool can choose the desired behavior
without being affected by future changes to the default.

(From OE-Core rev: e4dce65ce604a74da0f09ee2742cf8b13cf96c8e)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Patrick Ohly
6d7302b53c yocto-compat-layer.py: tolerate broken world builds during signature diff
The "test_signatures" test ignored a broken world build when getting
signatures, but the code which then tried to analyze a difference
found by the test didn't, which prevented printing the difference.

(From OE-Core rev: f2190e7e81f86735510c6ab10d3ac781146113f9)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Patrick Ohly
7546daec4f yocto-compat-layer.py: avoid adding layers more than once
add_layer_dependencies() might get called more than once, or one of
the layer dependencies might already be present. The function should
not add layers again because doing so can cause warnings like:

  WARNING: Duplicate inclusion for .../meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc in .../meta-openembedded/meta-oe/conf/layer.conf

(From OE-Core rev: 9821cec1ca52deee444ae3ff14dc548c8312ba3c)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Khem Raj
8a08f866fc iptables: Apply 0001-fix-build-with-musl.patch unconditionally
This patch is generic enough, That it can be applied universally
and makes maintainence easier

(From OE-Core rev: 2df99a0cddf60944ee9e5065d693cea03f5e93b3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit f769b8389091b4ffaff8f6f8fc7e53462ce176a5)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Enrico Scholz
0ee0a238fd tzcode-native: quote ${CC}
build fails else with

| + make -j 8 -l 6 cc=ccache gcc
| make: *** No rule to make target 'gcc'.  Stop.

(From OE-Core rev: fdd3479879f83fcb0e706b3b5b1abf0e9cb789a3)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
(cherry picked from commit 5729c1563359e12ebb4451bb1ce7ba3fff4ed2d4)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Martin Kelly
a839f11d5d qemuboot.conf: make cpus match built artifacts
Currently, the qemu CPUs for are specified as generic, but the built
artifacts are not. For example, we build x86-64 artifacts targeting
core2duo but run them in qemu with generic qemu/kvm CPUs. This causes
some packages that take advantage of the host architecture to crash
because they try to use CPU features not advertised by qemu. As an
example, Qt uses ssse3. When artifacts linked against Qt and built
targeting core2duo attempt to run on a generic qemu/kvm CPU, we get
the following crash:

Incompatible processor. This Qt build requires the following features:
     ssse3

We could fix this by making packages like Qt not take advantage of CPU
features. However, we will probably keep facing similar issues over
time, so it's better to resolve them in a more enduring way.

Fix this by making the qemu -cpu arguments match the built artifacts.

(From OE-Core rev: 20b3574749420a1fef2cb2e0579584453dd4c5c5)

(From OE-Core rev: d945678264ba31dccb5b1dec973e8f3a58403ea2)

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Alexander Kanavin
d4c4708906 package_manager.py: set dnf's releasever setting from DISTRO_CODENAME
So that:

1) dnf does not complain anymore about releasever not being set and then fail
for the same reason;

2) it's possible to refer to $releasever in dnf package feed configuration
(repo paths in particular) without hardconding the release name (pyro, morty, etc.)

(From OE-Core rev: 789e3fc225adbb61f10aaa3bbc3677856f5f0238)

(From OE-Core rev: 5a97694767c76f3083e9ffeeaaa19d76ff424c83)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Khem Raj
4c78660fb4 zlib: Pass pre-calculate uname enable re-entrant flags
Fix ptest generation

(From OE-Core rev: 07f4b0f016225e2b211689a270e56b2923ecb434)

(From OE-Core rev: b99dd747eb8723010f37660de434dde329e7958b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Peter Kjellerstedt
0e80156a99 git: Add a dependency on perl for gitweb
(From OE-Core rev: db31c837b579dc64bc86553cbc95736bfca97a90)

(From OE-Core rev: 76045a1d96380e3e0a339442f3e19501c4aae5bd)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Peter Kjellerstedt
e099cb6c35 texi2html: Add a dependency on perl
(From OE-Core rev: c391547e95b1854960b90d93fd9f80f02f761e61)

(From OE-Core rev: dedba20c149798a6b45957b5abd29d18164581b2)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Peter Kjellerstedt
0f271a5eb9 linux-firmware: Avoid a dependency on python-core
Remove the check_whence.py script since it is only needed to validate
the WHENCE file, and only if explicitly running `make check`.

(From OE-Core rev: 1fc4d5a31f05970d8d80b0106ea81d486f298e33)

(From OE-Core rev: a933bd65e7a02e1faa9dc83c04cefd8205f05421)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Ross Burton
c89e7747aa libpcap: apply fix from upstream to fix build race
../libpcap-1.8.1/grammar.y:78:10:
fatal error: scanner.h: No such file or directory

(From OE-Core rev: aaed4e92d79919e40c896536fcb4ff6567c9a755)

(From OE-Core rev: d788d2649ec6b1bf3e72b3c8fcec11b6d68412cc)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Jan Kiszka
bed0997f11 tzdata: Install zone1970.tab
The modern version of zone.tab is required by tzselect e.g.

(From OE-Core rev: de467998ecfa5fa1d2e9dd43a4a3d828cf9ccade)

(From OE-Core rev: c92a783a2d42a6248fc0b982889a9cdc53e6ccd3)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Andrej Valek
9dee4e5650 libxml2: Fix CVE-2017-0663
Fix type confusion in xmlValidateOneNamespace

Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types
on namespace declarations make no practical sense anyway.

Fixes bug 780228

CVE: CVE-2017-0663
(From OE-Core rev: a965be7b6a1d730851b4a3bc8fd534b9b2334227)

(From OE-Core rev: e442e7105ba39ddaed0749614b5ee552f9df2d5a)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Andrej Valek
9d59e7d739 libxml2: Fix CVE-2017-5969
Fix NULL pointer deref in xmlDumpElementContent

Can only be triggered in recovery mode.

Fixes bug 758422

CVE: CVE-2017-5969
(From OE-Core rev: 0cae039cbe513b7998e067f4f3958af2ec65ed1a)

(From OE-Core rev: f0017a7b8b3fc4407e6596156b57aa1183937382)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Andrej Valek
93b0d29184 libxml2: Fix CVE-2017-9049 and CVE-2017-9050
Fix handling of parameter-entity references

There were two bugs where parameter-entity references could lead to an
unexpected change of the input buffer in xmlParseNameComplex and
xmlDictLookup being called with an invalid pointer.

Fixes bug 781205 and bug 781361

CVE: CVE-2017-9049 CVE-2017-9050
(From OE-Core rev: 2300762fef8fc8e3e56fb07fd4076c1deeba0a9b)

(From OE-Core rev: a409c50a09b12caa434b2b06bdcfb6beba43f67f)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Andrej Valek
b611c4c7c0 libxml2: Fix CVE-2017-9047 and CVE-2017-9048
xmlSnprintfElementContent failed to correctly check the available
buffer space in two locations.

Fixes bug 781333 and bug 781701

CVE: CVE-2017-9047 CVE-2017-9048
(From OE-Core rev: bb0af023e811907b4e641b39f654ca921ac8794a)

(From OE-Core rev: d549b8f3836b2ffda5c59a7ae4d955846c558646)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:44 +01:00
Andrej Valek
b5ea1132a6 libxml2: Avoid reparsing and simplify control flow in xmlParseStartTag2
(From OE-Core rev: 4651afdd457eca06da07331186bf28b98df2eeff)

(From OE-Core rev: 41a5ea683cca3e635565a7a289ba260addfe4b11)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:43 +01:00
Andrej Valek
3a52b52844 libxml2: Disable LeakSanitizer when running API tests
Makefile.am: Disable LeakSanitizer when running API tests

The autogenerated API tests leak memory.

Upstream-Status: Backported - [https://git.gnome.org/browse/libxml2/commit/?id=ac9a4560ee85b18811ff8ab7791ddfff7b144b0a]
(From OE-Core rev: e3985be0ddb40e8db44422092c875a4e373a6da3)

(From OE-Core rev: 008b4d1c80012dc69da2866a2d26bd1d2b736e6f)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:43 +01:00
Paul Eggleton
00a859afd0 classes/buildhistory: fix failures collecting output signatures
It's possible for tasks to stage symlinks that point to non-existent
files; an example is ncurses-native.do_populate_sysroot. There wasn't
any error checking here so this broke the build when "task" was included
in BUILDHISTORY_FEATURES. In any case we shouldn't be following symlinks
and getting the sha256sum of the link target - we need concern ourselves
only with the target path, so check if the file is a link and sha256 the
target path instead if it is. If it's neither a regular file nor a
symlink (perhaps a pipe or a device), just skip it.

(From OE-Core rev: f60520d97f53dafe783f61eb58fe249798a1e1be)

(From OE-Core rev: 66a0d184d8f55a8da03de9fedb18d166b80b198b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-27 22:36:43 +01:00
Martin Kelly
5686f4e1fe tcf-agent: kill with USR2 in systemd stop
tcf-agent ignores SIGTERM, so upstream uses USR2 instead. This issue was noticed
by Jan Kiszka and Brian Avery around the same time:

https://patchwork.openembedded.org/patch/139546/
https://patchwork.openembedded.org/patch/139560/

However, these patches fixed only the init scripts, not the systemd service
file. This patch fixes the systemd file.

(From OE-Core rev: 4f8ed1b3bf676a58055ebe01184b3594459a4118)

(From OE-Core rev: a8d25315baf3226e2213e1cfba1d7023ec02a401)

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-20 11:00:23 +01:00
Jan Kiszka
4ba7143744 tcf-agent: Fix daemon termination
The upstream init script uses SIGUSR2 to terminate that daemon because
SIGTERM is ignored. As the killproc function does not support specifying
a signal, switch to start-stop-daemon. Drop the retry loop because
SIGUSR2 is lethal for agent.

(From OE-Core rev: b27d804dd0cbce3e4ed43e7fdfcc4e12c141e78d)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-20 11:00:23 +01:00
Ross Burton
0920b28c93 libgcrypt: fix CVE-2017-7526
Fixes CVE-2017-7526, 'flush+reload side-channel attack on RSA secret keys dubbed
"Sliding right into disaster"'.

(From OE-Core rev: 4442811291ff8b15d5562be0a68a11516183b502)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-19 11:30:22 +01:00
Ross Burton
74bfe85d5c libgcrypt: fix CVE-2017-9526
In libgcrypt before 1.7.7, an attacker who learns the EdDSA session key (from
side-channel observation during the signing process) can easily recover the
long-term secret key. 1.7.7 makes a cipher/ecc-eddsa.c change to store this
session key in secure memory, to ensure that constant-time point operations are
used in the MPI library.

(From OE-Core rev: 6039dbfd981830b5406c25a27ccfae0e5ed016e8)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-19 11:30:22 +01:00
Richard Purdie
6bd890d9e0 build-appliance-image: Update to pyro head revision
(From OE-Core rev: beab5b357cd46094b1c376c47d04e8d0de73e1e3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-12 07:06:10 +01:00
Richard Purdie
405517b429 build-appliance: Set to pyro release branch
(From OE-Core rev: 48b61abac098f180c37e11facd32f3bfa007254e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-12 07:05:56 +01:00
Richard Purdie
c2ef32ae58 build-appliance-image: Update to pyro head revision
(From OE-Core rev: 3a2b434ea95612ed52ec9edfd809d87cb5c086be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-12 00:28:38 +01:00
Kristi Rifenbark
e3ba377698 yocto-project-qs: Updated exit QEMU instructions.
Removed "poweroff" command to exit and replaced
with "Ctrl-C".

(From yocto-docs rev: 9251f7ebaf4898acbf30e4b650393a62ad16cb9a)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-12 00:28:04 +01:00
Richard Purdie
16f14397a1 poky.conf: Bump version for 2.3.1 pyro release
(From meta-yocto rev: b26cac5c21b054b2ca6ab1ae2d678ec25f709d0a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-12 00:27:46 +01:00
Saul Wold
1382d6ccce mkefidsk: fix bash/dash shell quoting problem
mkefidsk currently writes a startup.nsh with embedded control characters.
This happens because \b etc are control sequences to the shell echo
command when using dash. The resulting startup.nsh causes the bootup
to fail, and the user is dropped into the EFI shell to manually run
startup.nsh.

Patch originally provided by Troy D. Hanson <troy.hanson@jhuapl.edu>

[YOCTO #9665]

(From OE-Core rev: 359722a86580128aeccd05531eff0da4e6971721)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 008d6cb5bb4969f53a228893c502be8c9420ecb0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-12 00:26:27 +01:00
California Sullivan
7c27bf2dd8 systemd-boot.bbclass: Add configuration data to secondary EFI partition
The secondary EFI partition is used when booting in EFI mode, and
without the configuration data we don't get any boot targets.

Partial fix to [YOCTO #11503].

(From OE-Core master rev: 84aa7a00810e135fdad3f77bdb1da7d1f5fb8627)

(From OE-Core rev: 915b01258ef426392bb9052c345f952670db4450)

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-07 09:19:08 +01:00
Martin Jansa
185f4e7e6e package_manager: flush installed_pkgs file before oe-pkgdata-util uses it
* since this commit:
  commit f5a1013ffa9815f22e13989e2bcb83f966e7ce2c
  Author: Ross Burton <ross.burton@intel.com>
  Date:   Tue Apr 18 16:19:12 2017 +0100

    package_manager: don't race on a file when installing complementary
    packages

  the file isn't closed before oe-pkgdata-util uses it and this
  temporary file might look empty to oe-pkgdata-util, because it
  wasn't flushed yet. Which resulted in almost empty debugfs tarballs
  and no locale packages in regular rootfs.
* without this change:
  124K May 30 07:41 core-image-full-cmdline-raspberrypi3-64-20170530054003-dbg.rootfs.tar.gz
* with this change:
  173M May 30 07:29 core-image-full-cmdline-raspberrypi3-64-20170530052715-dbg.rootfs.tar.gz

(From OE-Core rev: 9b34200048b3d2b477a19b7ddc8d447f873adbb2)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 877d38db08aa7060d16405443cf70539c559fe82)
Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-07 09:19:08 +01:00
Max Krummenacher
cc48789276 u-boot-mkimage: fix nativesdk build
If building for nativesdk the wrong rss sysroot is used leading the
following error message.

| ERROR: oe_runmake failed
| In file included from tools/imximage.c:13:0:
| include/image.h:1024:27: fatal error: openssl/evp.h: No such file or directory
|  # include  <openssl/evp.h>

Tools needed on the build host (script/basic/fixdep) and code compiled
for the SDK machine are both built with the build host's compiler,
leading to additinal errors.

Adding CROSS_COMPILE="${HOST_PREFIX}" and using the cross-compiler for
the SDK_ARCH fixes the build error.
The resulting binary in the SDK is working.

(From OE-Core rev: aab5311f3ad9fb9f9e26b18b5fe5e54d8ec14798)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-07 09:19:08 +01:00
Richard Purdie
f0d128ea0d Revert "bitbake.conf: Add sdl-config to HOSTTOOLS if using host SDL"
This clearly wasn't tested as the correct variable is ASSUME_PROVIDED.

This reverts commit 91cee06433.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27 13:49:45 +01:00
Richard Purdie
c11f1ff584 bitbake: siggen: Make calc_taskhash match get_taskhash for file checksums
The code in these two functions is meant to be equivlanet in behaviour
but isn't. Add in code to ensure files that don't exist are handled
consistently by both functions. Users did report being able to generate
tracebacks otherwise.

(Bitbake rev: 1b66c57d0f8a9bd9f9feb2a85759e18d9a1d674b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27 13:46:50 +01:00
Joshua Lock
18341b9dc9 bitbake: fetch: fix handling of files with incorrect checksums from a premirror
Ensure that when an item fetched from a premirror has an invalid checksum the
fetcher falls back to the usual logic of trying the upstream and any configured
mirrors.

(Bitbake rev: cc52b9b12c60810142252b9cb5d4268e42371b8e)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-27 13:45:24 +01:00
Changhyeok Bae
9074fb46bc ref-manual: uClibc Replaced by musl from Yocto 2.2
(From yocto-docs rev: 859549a1dbc0b63bc04310a121600ea622509256)

Signed-off-by: Kristi Rifenbark <kristi.rifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:50 +01:00
Scott Rifenbark
9f3cde2467 dev-manual: Fixed a DocBook issue with formatting "bug-id"
I discovered a mis-placed block of DocBook text that was
causing the string "bug-id" to appear in a random spot in the
"Patch Submission Details" section.  Re-ording this block
fixed the problem.

(From yocto-docs rev: 92616f73ce31505e11f3193b1350acc875003649)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
ce2707487e sdk-manual: Updated the note for building SDK Installer
For development purposes, static libraries need to be
present only in the SDK. We do not need those static
libraries in the image for most scenarios. So, replace
IMAGE_INSTALL with TOOLCHAIN_TARGET_TASK in the documentation.

I updated the note to reflect this.

Suggested-by: Maxin B. John <maxin.john@intel.com>
(From yocto-docs rev: fd17ac96a44d08f7f2798e69cd923e0726a0754a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
a1f1b7f111 ref-manual: Updated LAYERRECOMMENDS variable
Fixes [YOCTO #11579]

I made some corrections by taking out the fact that BitBake
issues a warning or error if any version mismatches are found.

(From yocto-docs rev: e037858b95a97699c110be3b091db06633c9c44a)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
484237aa97 documentation: Prepared 2.3.1 release variables and dates
poky.ent - updated variables for 2.3.1
mega-manual.sed - exchanged "2.3.1" for "2.3" for links
<manual>.xml - updated manual revision tables to use
               "June 2017" as the release date for 2.3.1

(From yocto-docs rev: 01d60d08a0c7371b8f7476f45fca89226caec680)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
6f8a652eeb ref-manual: Updated PACKAGECONFIG_CONFARGS variable
Fixes [YOCTO #11600]

Removed the example.  It was not needed.

(From yocto-docs rev: e3610147535c259c49c3dc08289c037ba49c48a1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
bb71e194c5 ref-manual: Added warning to native.bbclass for naming convention
Fixes [YOCTO #11411]

Added a naming convention warning to the native.bbclass description
that is similar to the existing warning used in the description for
the nativesdk.bbclass.

(From yocto-docs rev: ece69399decb54045c974e9e537286eb820fde61)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
003d869116 ref-manual: Updated PACKAGECONFIG_CONFARGS variable description
Fixes [YOCTO #11600]

"configure" and "cmake" are not do_* tasks of BitBake.  I updated
the formatting of these programs and removed links that were to
the tasks in the reference manual.

(From yocto-docs rev: a53d766976ec77a2706014d114bef698d3b6f710)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
2bf0932d7b yocto-project-qs: Updated the YP Development Flow figure
The figure that Scott Garman used for an old video cast is
much more appealing to the eye than the giant, square beast
the current manual was using.  I have replaced the image.
The image is technically the same.

Because the mega-manual has to use a duplicate figure, I
put the new PNG files in the Figures directory for both the
yocto-project-qs and mega-manual books.

(From yocto-docs rev: 10985cadfecea0096412df049b3457bc0297c4bf)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
5d32c4604c dev-manual, sdk-manual: Fixed link to Eclipse section
The YP doc set was using a link to an out-dated video that
showed how to configure and run Eclipse.  The video was very
old and Jessica suggested just removing it.  So, I replaced
all occurrences of the link to the up-to-date appendix in the
SDK manual that provides information on the latest supported
version of the Eclipse IDE.

(From yocto-docs rev: a414addb427337dc76a05cf3f56bf8aeec1a7c1b)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
6edb524b26 dev-manual: Fixed broken link into the setting up Eclipse section
The link to the section on how to set up Eclipse had been broken
for a while.  I fixed the link so that it goes to the appropriate
section (appendix) in the SDK manual.

(From yocto-docs rev: ab2af9c0b237285c6989832db306a42957a6187d)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
3f4cddf4eb ref-manual: Added LAYERRECOMMENDS variable description
Fixes [YOCTO #11579]

Added a new description for the LAYERRECOMMENDS variable.

(From yocto-docs rev: 207c69e218507b384dbd017367dfe392fd45296e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
e9a2e5ae36 ref-manual: Updated LAYERDEPENDS variable description
Fixes [YOCTO #11579]

The syntax for specifying a layer version was incorrect. I
have added an explanation for the correct syntax and provided
an example.

(From yocto-docs rev: 83c97473defbbac35ebca81f4ef69289f3dd8789)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
aade3895d4 ref-manual: Updated image-live.bbclass description
Fixes [YOCTO #9001]

Updated the image-live class description to specifically mention
creating *.iso and *.hddimg images as "live" images.  Provided more
explanation about usage through the NOISO and NOHDD variables.

Also, provided a cross-referencing link back to the updated
image-live class from the EFI_PROVIDERS variable.

(From yocto-docs rev: 10c81adc26bd0a7a8952eb362f958f92566d42db)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Scott Rifenbark
4fe09a11ee ref-manual: Enhanced the glossary description for INHERIT
Fixes [YOCTO #11498]

I enhanced the description of the INHERIT variable's glossary
description to provide more detail.  I also included a link into the
section of the BB manual where INHERIT is described.

(From yocto-docs rev: ed44df6342ee20720aeee2dd8eae944db767023e)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Joshua Lock
726e26ae5a ref-manual: Fixed typo for "Installation"
(From yocto-docs rev: 7abd2ff4948a25da7de85df102fb4e54920b3072)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-22 09:18:49 +01:00
Richard Purdie
f01b909a26 package_ipk: Clean up Source entry in ipk packages
There is the potential for sensitive information to leak through the urls
there and removing it brings this into the behavior of the other package
backends since filtering it is likely error prone.

Since ipks don't appear to be generated at all if we don't set this, set
the field to the recipe name used (basename only, no paths). This avoids
information leaking. We may want to drop the field if opkg can allow that
at a future point but the recipe name is a suitable identifier for now.

Reported-by: Andrej Valek <andrej.valek@siemens.com>
(From OE-Core rev: 0b5e0d072f93a958e4211a8aeb2fd8cc3c25cc21)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-16 10:21:02 +01:00
Saul Wold
5bb92a3166 mkelfimage: Fix broken patch when building native
A change occured about a year ago that broke the native build, fix
that patch

[YOCTO #11590]

(From OE-Core rev: ccd8e2cf7157c941ebacc6be306c1dbe2ec31e86)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 11:57:47 +01:00
Marek Vasut
4ba0cc04af automake: Backport perl 5.22 fix
Backport 13f00eb4493c "automake: port to Perl 5.22 and later"
from automake upstream to fix build with perl 5.22 .

(From OE-Core rev: ab0e298ec2c155739565f1cde76639855ba7bba0)

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 11:56:49 +01:00
Jonathan Liu
91cee06433 bitbake.conf: Add sdl-config to HOSTTOOLS if using host SDL
If ASSUME_PROVIDES contains libsdl-native, we need to add sdl-config
to HOSTTOOLS to allow access to the host sdl-config.

(From OE-Core rev: ed5a602d3eb418beb2f9731fda96415ed16efff2)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 11:50:12 +01:00
Daniel Díaz
c63903443b piglit: add patches for unbuildable surfaceless Mesa test
[Backported from master.]

Some EGL implementations do not actually ship all Khronos-
extensions. As it turns out, the Mali 450 driver does not
include any of the following symbols, used by the
egl_mesa_platform_surfaceless.c spec test:
* eglGetPlatformDisplay
* eglCreatePlatformPixmapSurface
* eglCreatePlatformWindowSurface

The Right Thing To Do was to obtain the implementation of
these functions (via eglGetProcAddress), as is provided
by their EXT counterparts. These are guaranteed to exist
since they are required by EGL_EXT_platform_base.

(From OE-Core rev: 903a051d47e550553aa9d6d9c38c43737f376cfe)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-12 17:03:17 +01:00
Daniel Díaz
262af7bf2d piglit: add patch for lack of gbm_bo_map
[Backported from master.]

[Piglit Bug #100978] -- https://bugs.freedesktop.org/show_bug.cgi?id=100978

When linking against Mali 450 r6, errors like the following
can be seen:
  ../../../../lib/libpiglitutil_gl.so.0: undefined reference to `gbm_bo_unmap'
  ../../../../lib/libpiglitutil_gl.so.0: undefined reference to `gbm_bo_map'
  collect2: error: ld returned 1 exit status
  make[2]: *** [bin/point-sprite] Error 1

This is due to gbm_bo_map() and gbm_bo_unmap() being recently
added but not yet implemented by all graphics drivers.

Instead of relying on GBM's version, actually try to link
against those symbols.

(From OE-Core rev: 484db109df742aafa8efc41dc3a8d31386d9b2a3)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-12 17:03:17 +01:00
Daniel Díaz
a99c56fb6d piglit: depend on virtual/egl
[Backported from master.]

While building for Hikey using Mali 450 driver (r6p0), an
error like the following appears while linking:

  [  1%] Linking C shared library ../../../../lib/libpiglitutil.so
  [...]
  [...]/aarch64-linaro-linux/gcc/aarch64-linaro-linux/6.3.1/ld: cannot find -lEGL
  collect2: error: ld returned 1 exit status
  make[2]: *** [lib/libpiglitutil.so.0] Error 1

Mesa generally provides virtual/egl (along with virtual/libgl,
which satisfies Piglit's current DEPENDS) but that is not the
implementation to use with Mali.

(From OE-Core rev: 5bfa4ccdba64d814cc480f22ccd8c493d87d36e7)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-12 17:03:17 +01:00
Jonathan Liu
bebb3d36f8 image-vm: Avoid use of fold, tac and paste commands for DISK_SIGNATURE
These commands are not whitelisted by the HOSTTOOLS variable which
silently prevents the MBR disk signature from being written to the
image.

Reported-by: Michael Davis <michael.davis@essvote.com>
(From OE-Core rev: 5527af688f6ccaacd7ec24d29425d0c007d5341c)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-12 17:02:36 +01:00
Joshua Lock
607bd9ec39 kernel: predefine KBUILD_BUILD_USER and KBUILD_BUILD_HOST
By exporting KBUILD_BUILD_USER with a pre-defined value we improve the
reproducibility of the kernel and remove the requirement for whoami in the
HOSTTOOLS.
KBUILD_BUILD_HOST also helps improve the reproducibility of the kernel.

For more kernel reproducibility options see:
https://lwn.net/Articles/437864/

(From OE-Core rev: 357801a491efc067c6d4bd9a2bfa6fff460357aa)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-11 23:00:58 +01:00
Yuanjie Huang
fa7a1f2115 binutils: fix CVE-2017-7210
CVE: CVE-2017-7210

[BZ 21157] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21157

PR binutils/21157: Fix handling of corrupt STABS enum type strings.

(From OE-Core rev: d12a99cba6c9dc9e1f6bc3a7ca8057f07e9cb950)

(From OE-Core rev: 4ca4e781f1c62696f896d7027081f759798794aa)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:22 +01:00
Yuanjie Huang
e28778ee72 binutils: fix CVE-2017-7209 in readelf
CVE: CVE-2017-7209

[BZ 21135] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21135

PR binutils/21135: Fix invalid read of section contents whilst processing
a corrupt binary.

(From OE-Core rev: 2df642ca0a1e4a4e6616729018cf32d2108cabb2)

(From OE-Core rev: b262000162cb4e18421dd85bf5216c9fa3bdbf15)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:22 +01:00
Fan Xin
7d7ac87831 libxslt: Fix CVE-2017-5029
Backport upstream patch to fix CVE-2017-5029.

(From OE-Core rev: 5266e74c990df1cf965d162d9695eb5a698883ae)

(From OE-Core rev: 172f76a1a43921d92a385d6d123dffaf27eb368f)

Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:22 +01:00
Catalin Enache
30a1a8e448 ghostscript: CVE-2016-7977, CVE-2016-7978, CVE-2016-7979, CVE-2017-9216
Ghostscript before 9.21 might allow remote attackers to bypass the SAFER
mode protection mechanism and consequently read arbitrary files via the
use of the .libfile operator in a crafted postscript document.

Use-after-free vulnerability in Ghostscript 9.20 might allow remote
attackers to execute arbitrary code via vectors related to a reference
leak in .setdevice.

Ghostscript before 9.21 might allow remote attackers to bypass the SAFER
mode protection mechanism and consequently execute arbitrary code by
leveraging type confusion in .initialize_dsc_parser.

libjbig2dec.a in Artifex jbig2dec 0.13, as used in MuPDF and Ghostscript,
has a NULL pointer dereference in the jbig2_huffman_get function in
jbig2_huffman.c. For example, the jbig2dec utility will
crash (segmentation fault) when parsing an invalid file.

References:
https://nvd.nist.gov/vuln/detail/CVE-2016-7977
https://nvd.nist.gov/vuln/detail/CVE-2016-7978
https://nvd.nist.gov/vuln/detail/CVE-2016-7979
https://nvd.nist.gov/vuln/detail/CVE-2017-9216

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8abd22010eb4db0fb1b10e430d5f5d83e015ef70
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6f749c0c44e7b9e09737b9f29edf29925a34f0cf
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=875a0095f37626a721c7ff57d606a0f95af03913
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ebffb1d96ba0cacec23016eccb4047dab365853

(From OE-Core rev: 584dfa2f780d5785aaff01f84fbabc18b3478d76)

(From OE-Core rev: 6fed7cd6077c46ad2213226d4675fad9b10ab024)

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:22 +01:00
Catalin Enache
31e9be1981 ghostscript: CVE-2016-8602, CVE-2017-7975
The .sethalftone5 function in psi/zht2.c in Ghostscript before 9.21 allows remote
attackers to cause a denial of service (application crash) or possibly execute
arbitrary code via a crafted Postscript document that calls .sethalftone5 with an
empty operand stack.

Artifex jbig2dec 0.13, as used in Ghostscript, allows out-of-bounds writes because
of an integer overflow in the jbig2_build_huffman_table function in jbig2_huffman.c
during operations on a crafted JBIG2 file, leading to a denial of service (application
crash) or possibly execution of arbitrary code.

References:
https://nvd.nist.gov/vuln/detail/CVE-2016-8602
https://nvd.nist.gov/vuln/detail/CVE-2017-7975

Upstream patches:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f5c7555c303
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e57e483298

(From OE-Core rev: 8f919c2df47ca93132f21160d919b6ee2207d9a6)

(From OE-Core rev: 6040b8735b79397bf49a2154f81e9aab34c15413)

Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:21 +01:00
Yuanjie Huang
829e2027b6 binutils: fix CVE-2017-6969 in readelf
CVE: CVE-2017-6969
[BZ 21156] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21156

PR binutils/21156: Fix illegal memory accesses in readelf when
ing a corrupt binary.
PR binutils/21156: Fix another memory access error in readelf when
parsing a corrupt binary.

(From OE-Core rev: de04c9811f7ce5179ba261bd8eae921d7873d6cd)

(From OE-Core rev: ae0e01474623969dc193687d59fb5a65ab4d42bc)

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:21 +01:00
Fan Xin
c2c48f2645 rpcbind: Fix CVE-2017-8779
This vulnerability is also called "rpcbomb".
Backport upstream patch to fix this vulnerability.

CVE: CVE-2017-8779

(From OE-Core rev: 7936c9451eb4c376a78a0ac7461d1b2430c7f1f3)

(From OE-Core rev: bab6667d44df185b4433bcd1c283105966383844)

Signed-off-by: Fan Xin<fan.xin@jp.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:21 +01:00
Fan Xin
13f7fc4655 binutils: Fix CVE-2017-8392
Backport upsream commit to fix CVE-2017-8392

CVE: CVE-2017-8392

[BZ 21409] -- https://sourceware.org/bugzilla/show_bug.cgi?id=21409

        PR 21409, segfault in _bfd_dwarf2_find_nearest_line

        PR 21409
        * dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when
        no symbols.

(From OE-Core rev: dff01b827c87ae135a1d5511b1efbdad01c0eaee)

(From OE-Core rev: c5a5017ce710108c61dba0e0af72bb72a9419701)

Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:21 +01:00
Chen Qi
d2586b6fde cve-check.bbclass: make warning contain CVE IDs
When warning users about unpatched CVE, we'd better put CVE IDs into
the warning message, so that it would be more straight forward for the
user to know which CVEs are not patched.

So instead of:
  WARNING: gnutls-3.5.9-r0 do_cve_check: Found unpatched CVE, for more information check /path/to/workdir/cve/cve.log.
We should have:
  WARNING: gnutls-3.5.9-r0 do_cve_check: Found unpatched CVE (CVE-2017-7869), for more information check /path/to/workdir/cve/cve.log.

(From OE-Core rev: ad46069e7b58f2fba373131716f28407816fa1a6)

(From OE-Core rev: e0e1414a4574d4165a8dc5d0d9d0d5b5a660355f)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:21 +01:00
Chen Qi
bc45d3a86b cve-check-tool: backport a patch to make CVE checking work
CVE checking in OE didn't work as do_populate_cve_db failed with the following
error message.

  [snip]/downloads/CVE_CHECK/nvdcve-2.0-2002.xml is not consistent

Backport a patch to fix this error.

(From OE-Core rev: ee55b5685aaa4be92d6d51f8641a559d4e34ce64)

(From OE-Core rev: e0f0a7283c597e783b69aac2c8e8a7663b70262d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 23:30:21 +01:00
Ross Burton
f375c30a17 oeqa/selftest: lock down Meson git revision for reliability
The test_recipetool_create_github test fetches HEAD of the repository so
upstream changes can (and do) break the test.  Avoid these problems by passing
the rev= argument in the URL to lock the checkout to the same version that is
fetched in the github_tarball test.

Also pass the commands to runCmd() as a list instead of a string, the semicolon
in the URL needs more quotes if the shell is involved and passing a list
bypasses the shell entirely.

(From OE-Core rev: 5f02b4300fb2ed54270aede54d30317ba757f587)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-05 17:59:57 +01:00
Paul Eggleton
645467e03f scriptutils: fix fetch_uri() to work with RSS
Since recipe-specific sysroots were implemented, devtool add and devtool
upgrade operations that fetch from a URL that requires native sysroot
dependencies will fail to work as there is no recipe-specific sysroot
set up for them during fetching. An example was any URL pointing to a
tarball compressed with xz, e.g. devtool upgrade on gnutls.

The most expedient way to fix this is to set up a dummy recipe-specific
sysroot to use for the fetch/unpack operations. We do this in the same
manner as bitbake -b does, so we're just taking all of the sysroot
components available and creating a sysroot from those rather than
ensuring the correct dependencies are there - this means that we're
still going to have problems if e.g. xz-native hasn't been built yet,
but that issue will be trickier to solve and is tracked separately.

Fixes [YOCTO #11474].

(From OE-Core master rev: 559151e783759af78b5cdd76cdbb9ce325a391e6)

(From OE-Core rev: 9e7905c7bada1bafda661fc4a6177afeef0f5015)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-30 00:26:17 +01:00
Chang Rebecca Swee Fun
31389f8b00 cryptodev-linux: update SRC_URI
Gna! project announced that the download site from gna.org HTTP server
will soon be closing down. We have verified that the site is no longer
accessible without network proxy cache. We need to update SRC_URI to
point to new alternative (nwl.cc HTTP server) in order to avoid fetcher
issues in future.

[YOCTO #11575]

(From OE-Core rev: 3195f7e68eb5cfb2af3506fe4b0dcb2f8cd9ee10)

Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-27 14:52:29 +01:00
Zhixiong Chi
e5aa1ac236 bash: CVE-2016-0634
A vulnerability was found in a way bash expands the $HOSTNAME.
Injecting the hostname with malicious code would cause it to run
each time bash expanded \h in the prompt string.

Porting patch from <https://ftp.gnu.org/gnu/bash/bash-4.3-patches/
bash43-047> to solve CVE-2016-0634

CVE: CVE-2016-0634

(From OE-Core rev: 7dd6aa1a4bf6e9fc8a1998cda6ac5397bb5cd5cb)

(From OE-Core rev: a4b37b05140b549960baef49237ce3316e84a041)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:17:44 +01:00
Richard Purdie
abae42362a staging: Allow BB_LIMITEDDEPS to avoid BB_TASKDEPDATA
In the limited dependency case we don't use any of the data from
BB_TASKDEPDATA. Restructure the code so this variable doesn't have
to be set. This allows the function to be called from other contexts
without creating artificial constructs. There should be no functional
change, behaviour remains unchanged.

(From OE-Core rev: 71e5243e3ebadb90b45fe418dac3eaa2c1b896bd)

(From OE-Core rev: e962e257f4c124869953d1fbb3da7dbf564f818a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:17:44 +01:00
Richard Purdie
78747cc912 sstate: Ensure native/cross recipes have relocation of HOSTTOOLS_DIR
The previous change to relocate HOSTTOOLS wasn't complete as some files,
particularly in gcc stashed build directories were not being correctly
relocated. This patch addresses the issue.

(From OE-Core rev: 21dd36cc12a033b012544c5d15a6f8afd84dabc9)

(From OE-Core rev: 64c2f8acd02e0e5dca234b36a2a7097c0c16f7c2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:17:44 +01:00
Richard Purdie
d31bee70dd python.inc: Fix python2/3 hosttools path references
Both native and target versions of this file reference mkdir and install
in hosttools paths. Use the version from PATH instead.

(From OE-Core rev: 080197bf3bdf612da8104c2ae7f0b2c8dea32a0b)

(From OE-Core rev: 8e3134953edfc88bf3d135b5dc00d361f84b5f37)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:17:43 +01:00
Richard Purdie
901d3880bf rpm: Ensure macros file doesn't reference HOSTTOOLS
Currently the file encodes full paths to various host tools in the
HOSTTOOLS directory which is bad in native and target cases. We can
simply use the versions from PATH quite safely in OE.

(From OE-Core rev: be901200d94beaa35e1d05eb502b117b3b523609)

(From OE-Core rev: 2a12c159aae9877a05e0ba023de278cdca59ac45)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-18 13:17:43 +01:00
7717 changed files with 415280 additions and 447710 deletions

19
.gitignore vendored
View File

@@ -1,14 +1,12 @@
*.pyc
*.pyo
/*.patch
/.repo/
/build*/
pyshtables.py
pstage/
scripts/oe-git-proxy-socks
sources/
meta-*/
buildtools/
!meta-skeleton
!meta-selftest
hob-image-*.bb
@@ -20,19 +18,10 @@ hob-image-*.bb
!meta-yocto
!meta-yocto-bsp
!meta-yocto-imported
/documentation/*/eclipse/
/documentation/*/*.html
/documentation/*/*.pdf
/documentation/*/*.tgz
/bitbake/doc/bitbake-user-manual/bitbake-user-manual.html
/bitbake/doc/bitbake-user-manual/bitbake-user-manual.pdf
/bitbake/doc/bitbake-user-manual/bitbake-user-manual.tgz
documentation/user-manual/user-manual.html
documentation/user-manual/user-manual.pdf
documentation/user-manual/user-manual.tgz
pull-*/
bitbake/lib/toaster/contrib/tts/backlog.txt
bitbake/lib/toaster/contrib/tts/log/*
bitbake/lib/toaster/contrib/tts/.cache/*
bitbake/lib/bb/tests/runqueue-tests/bitbake-cookerdaemon.log
_toaster_clones/
downloads/
sstate-cache/
toaster.sqlite
bitbake/lib/toaster/contrib/tts/.cache/*

View File

@@ -1,2 +1,2 @@
# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf/templates/default}
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}

24
LICENSE
View File

@@ -1,20 +1,14 @@
Different components of OpenEmbedded are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
details of the individual licenses.
of MIT and GPLv2). Please see:
meta/COPYING.GPLv2 (GPLv2)
meta/COPYING.MIT (MIT)
meta-selftest/COPYING.MIT (MIT)
meta-skeleton/COPYING.MIT (MIT)
All metadata is MIT licensed unless otherwise stated. Source code
included in tree for individual recipes (e.g. patches) are under
the LICENSE stated in the associated recipe (.bb file) unless
otherwise stated.
included in tree for individual recipes is under the LICENSE stated in
the associated recipe (.bb file) unless otherwise stated.
License information for any other files is either explicitly stated
or defaults to GPL version 2 only.
Individual files contain the following style tags instead of the full license
text to identify their license:
SPDX-License-Identifier: GPL-2.0-only
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
or defaults to GPL version 2.

View File

@@ -1,288 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,25 +0,0 @@
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.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,71 +0,0 @@
OpenEmbedded-Core and Yocto Project Maintainer Information
==========================================================
OpenEmbedded and Yocto Project work jointly together to maintain the metadata,
layers, tools and sub-projects that make up their ecosystems.
The projects operate through collaborative development. This currently takes
place on mailing lists for many components as the "pull request on github"
workflow works well for single or small numbers of maintainers but we have
a large number, all with different specialisms and benefit from the mailing
list review process. Changes therefore undergo peer review through mailing
lists in many cases.
This file aims to acknowledge people with specific skills/knowledge/interest
both to recognise their contributions but also empower them to help lead and
curate those components. Where we have people with specialist knowledge in
particular areas, during review patches/feedback from these people in these
areas would generally carry weight.
This file is maintained in OE-Core but may refer to components that are separate
to it if that makes sense in the context of maintainership. The README of specific
layers and components should ultimately be definitive about the patch process and
maintainership for the component.
Recipe Maintainers
------------------
See meta/conf/distro/include/maintainers.inc
Component/Subsystem Maintainers
-------------------------------
* Kernel (inc. linux-yocto, perf): Bruce Ashfield
* Reproducible Builds: Joshua Watt
* Toaster: David Reyna
* Hash-Equivalence: Joshua Watt
* Recipe upgrade infrastructure: Alex Kanavin
* Toolchain: Khem Raj
* ptest-runner: Aníbal Limón
* opkg: Alex Stewart
* devtool: Saul Wold
* eSDK: Saul Wold
* overlayfs: Vyacheslav Yurkov
Maintainers needed
------------------
* Pseudo
* Layer Index
* recipetool
* QA framework/automated testing
* error reporting system/web UI
* wic
* Patchwork
* Patchtest
* Matchbox
* Sato
* Autobuilder
Layer Maintainers needed
------------------------
* meta-gplv2 (ideally new strategy but active maintainer welcome)
Shadow maintainers/development needed
--------------------------------------
* toaster
* bitbake

View File

@@ -1,5 +0,0 @@
Some project contributors who are sadly no longer with us:
Greg Gilbert (treke) - Ahead of his time with licensing
Thomas Wood (thos) - Creator of the original sato
Scott Rifenbark (scottrif) - Our long standing techwriter whose words live on

58
README Normal file
View File

@@ -0,0 +1,58 @@
Poky
====
Poky is an integration of various components to form a complete prepackaged
build system and development environment. It features support for building
customised embedded device style images. There are reference demo images
featuring a X11/Matchbox/GTK themed UI called Sato. The system supports
cross-architecture application development using QEMU emulation and a
standalone toolchain and SDK with IDE integration.
Additional information on the specifics of hardware that Poky supports
is available in README.hardware. Further hardware support can easily be added
in the form of layers which extend the systems capabilities in a modular way.
As an integration layer Poky consists of several upstream projects such as
BitBake, OpenEmbedded-Core, Yocto documentation and various sources of information
e.g. for the hardware support. Poky is in turn a component of the Yocto Project.
The Yocto Project has extensive documentation about the system including a
reference manual which can be found at:
http://yoctoproject.org/documentation
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.
For information about OpenEmbedded, see the OpenEmbedded website:
http://www.openembedded.org/
Where to Send Patches
=====================
As Poky is an integration repository (built using a tool called combo-layer),
patches against the various components should be sent to their respective
upstreams:
bitbake:
Git repository: http://git.openembedded.org/bitbake/
Mailing list: bitbake-devel@lists.openembedded.org
documentation:
Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/
Mailing list: yocto@yoctoproject.org
meta-poky, meta-yocto-bsp:
Git repository: http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto(-bsp)
Mailing list: poky@yoctoproject.org
Everything else should be sent to the OpenEmbedded Core mailing list. If in
doubt, check the oe-core git repository for the content you intend to modify.
Before sending, be sure the patches apply cleanly to the current oe-core git
repository.
Git repository: http://git.openembedded.org/openembedded-core/
Mailing list: openembedded-core@lists.openembedded.org
Note: The scripts directory should be treated with extra care as it is a mix of
oe-core and poky-specific files.

View File

@@ -1,33 +0,0 @@
OpenEmbedded-Core
=================
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.
For information about OpenEmbedded, see the OpenEmbedded website:
https://www.openembedded.org/
The Yocto Project has extensive documentation about OE including a reference manual
which can be found at:
https://docs.yoctoproject.org/
Contributing
------------
Please refer to our contributor guide here: https://docs.yoctoproject.org/dev/contributor-guide/
for full details on how to submit changes.
As a quick guide, patches should be sent to openembedded-core@lists.openembedded.org
The git command to do that would be:
git send-email -M -1 --to openembedded-core@lists.openembedded.org
Mailing list:
https://lists.openembedded.org/g/openembedded-core
Source code:
https://git.openembedded.org/openembedded-core/

429
README.hardware Normal file
View File

@@ -0,0 +1,429 @@
Poky Hardware README
====================
This file gives details about using Poky with the reference machines
supported out of the box. A full list of supported reference target machines
can be found by looking in the following directories:
meta/conf/machine/
meta-yocto-bsp/conf/machine/
If you are in doubt about using Poky/OpenEmbedded with your hardware, consult
the documentation for your board/device.
Support for additional devices is normally added by creating BSP layers - for
more information please see the Yocto Board Support Package (BSP) Developer's
Guide - documentation source is in documentation/bspguide or download the PDF
from:
http://yoctoproject.org/documentation
Support for physical reference hardware has now been split out into a
meta-yocto-bsp layer which can be removed separately from other layers if not
needed.
QEMU Emulation Targets
======================
To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported:
* ARM (qemuarm)
* x86 (qemux86)
* x86-64 (qemux86-64)
* PowerPC (qemuppc)
* MIPS (qemumips)
Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.
Hardware Reference Boards
=========================
The following boards are supported by the meta-yocto-bsp layer:
* Texas Instruments Beaglebone (beaglebone)
* Freescale MPC8315E-RDB (mpc8315e-rdb)
For more information see the board's section below. The appropriate MACHINE
variable value corresponding to the board is given in brackets.
Reference Board Maintenance
===========================
Send pull requests, patches, comments or questions about meta-yocto-bsps to poky@yoctoproject.org
Maintainers: Kevin Hao <kexin.hao@windriver.com>
Bruce Ashfield <bruce.ashfield@windriver.com>
Consumer Devices
================
The following consumer devices are supported by the meta-yocto-bsp layer:
* Intel x86 based PCs and devices (genericx86)
* Ubiquiti Networks EdgeRouter Lite (edgerouter)
For more information see the device's section below. The appropriate MACHINE
variable value corresponding to the device is given in brackets.
Specific Hardware Documentation
===============================
Intel x86 based PCs and devices (genericx86*)
=============================================
The genericx86 and genericx86-64 MACHINE are tested on the following platforms:
Intel Xeon/Core i-Series:
+ Intel NUC5 Series - ix-52xx Series SOC (Broadwell)
+ Intel NUC6 Series - ix-62xx Series SOC (Skylake)
+ Intel Shumway Xeon Server
Intel Atom platforms:
+ 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
addition to common PC input devices, busses, and so on.
Depending on the device, it can boot from a traditional hard-disk, a USB device,
or over the network. Writing generated images to physical media is
straightforward with a caveat for USB devices. The following examples assume the
target boot device is /dev/sdb, be sure to verify this and use the correct
device as the following commands are run as root and are not reversable.
USB Device:
1. Build a live image. This image type consists of a simple filesystem
without a partition table, which is suitable for USB keys, and with the
default setup for the genericx86 machine, this image type is built
automatically for any image you build. For example:
$ bitbake core-image-minimal
2. Use the "dd" utility to write the image to the raw block device. For
example:
# dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb
If the device fails to boot with "Boot error" displayed, or apparently
stops just after the SYSLINUX version banner, it is likely the BIOS cannot
understand the physical layout of the disk (or rather it expects a
particular layout and cannot handle anything else). There are two possible
solutions to this problem:
1. Change the BIOS USB Device setting to HDD mode. The label will vary by
device, but the idea is to force BIOS to read the Cylinder/Head/Sector
geometry from the device.
2. Use a ".wic" image with an EFI partition
a) With a default grub-efi bootloader:
# dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb
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)
=========================================
The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D
accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster
CPU, more RAM, eMMC flash and a micro HDMI port. The beaglebone MACHINE is
tested on the following platforms:
o Beaglebone Black A6
o Beaglebone A6 (the original "White" model)
The Beaglebone Black has eMMC, while the White does not. Pressing the USER/BOOT
button when powering on will temporarily change the boot order. But for the sake
of simplicity, these instructions assume you have erased the eMMC on the Black,
so its boot behavior matches that of the White and boots off of SD card. To do
this, issue the following commands from the u-boot prompt:
# mmc dev 1
# mmc erase 0 512
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:
1. Build an image. For example:
$ bitbake core-image-minimal
2. Use the "dd" utility to write the image to the SD card. For example:
# 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)
=====================================
The MPC8315 PowerPC reference platform (MPC8315E-RDB) is aimed at hardware and
software development of network attached storage (NAS) and digital media server
applications. The MPC8315E-RDB features the PowerQUICC II Pro processor, which
includes a built-in security accelerator.
(Note: you may find it easier to order MPC8315E-RDBA; this appears to be the
same board in an enclosure with accessories. In any case it is fully
compatible with the instructions given here.)
Setup instructions
------------------
You will need the following:
* NFS root setup on your workstation
* TFTP server installed on your workstation
* Straight-thru 9-conductor serial cable (DB9, M/F) connected from your
PC to UART1
* Ethernet connected to the first ethernet port on the board
--- Preparation ---
Note: if you have altered your board's ethernet MAC address(es) from the
defaults, or you need to do so because you want multiple boards on the same
network, then you will need to change the values in the dts file (patch
linux/arch/powerpc/boot/dts/mpc8315erdb.dts within the kernel source). If
you have left them at the factory default then you shouldn't need to do
anything here.
Note: To boot from USB disk you need u-boot that supports 'ext2load usb'
command. You need to setup TFTP server, load u-boot from there and
flash it to NOR flash.
Beware! Flashing bootloader is potentially dangerous operation that can
brick your device if done incorrectly. Please, make sure you understand
what below commands mean before executing them.
Load the new u-boot.bin from TFTP server to memory address 200000
=> tftp 200000 u-boot.bin
Disable flash protection
=> protect off all
Erase the old u-boot from fe000000 to fe06ffff in NOR flash.
The size is 0x70000 (458752 bytes)
=> erase fe000000 fe06ffff
Copy the new u-boot from address 200000 to fe000000
the size is 0x70000. It has to be greater or equal to u-boot.bin size
=> cp.b 200000 fe000000 70000
Enable flash protection again
=> protect on all
Reset the board
=> reset
--- Booting from USB disk ---
1. Flash partitioned image to the USB disk
# dd if=core-image-minimal-mpc8315e-rdb.wic of=/dev/sdb
2. Plug USB disk into the MPC8315 board
3. Connect the board's first serial port to your workstation and then start up
your favourite serial terminal so that you will be able to interact with
the serial console. If you don't have a favourite, picocom is suggested:
$ picocom /dev/ttyUSB0 -b 115200
4. Power up or reset the board and press a key on the terminal when prompted
to get to the U-Boot command line
5. Optional. Load the u-boot.bin from the USB disk:
=> usb start
=> ext2load usb 0:1 200000 u-boot.bin
and flash it to NOR flash as described above.
6. Set fdtaddr and loadaddr. This is not necessary if you set them before.
=> setenv fdtaddr a00000
=> setenv loadaddr 1000000
7. Load the kernel and dtb from first partition of the USB disk:
=> usb start
=> ext2load usb 0:1 $loadaddr uImage
=> ext2load usb 0:1 $fdtaddr dtb
8. Set bootargs and boot up the device
=> setenv bootargs root=/dev/sdb2 rw rootwait console=ttyS0,115200
=> bootm $loadaddr - $fdtaddr
--- Booting from NFS root ---
Load the kernel and dtb (device tree blob), and boot the system as follows:
1. Get the kernel (uImage-mpc8315e-rdb.bin) and dtb (uImage-mpc8315e-rdb.dtb)
files from the tmp/deploy directory, and make them available on your TFTP
server.
2. Connect the board's first serial port to your workstation and then start up
your favourite serial terminal so that you will be able to interact with
the serial console. If you don't have a favourite, picocom is suggested:
$ picocom /dev/ttyUSB0 -b 115200
3. Power up or reset the board and press a key on the terminal when prompted
to get to the U-Boot command line
4. Set up the environment in U-Boot:
=> setenv ipaddr <board ip>
=> setenv serverip <tftp server ip>
=> setenv bootargs root=/dev/nfs rw nfsroot=<nfsroot ip>:<rootfs path> ip=<board ip>:<server ip>:<gateway ip>:255.255.255.0:mpc8315e:eth0:off console=ttyS0,115200
5. Download the kernel and dtb, and boot:
=> tftp 1000000 uImage-mpc8315e-rdb.bin
=> tftp 2000000 uImage-mpc8315e-rdb.dtb
=> bootm 1000000 - 2000000
--- Booting from JFFS2 root ---
1. First boot the board with NFS root.
2. Erase the MTD partition which will be used as root:
$ flash_eraseall /dev/mtd3
3. Copy the JFFS2 image to the MTD partition:
$ flashcp core-image-minimal-mpc8315e-rdb.jffs2 /dev/mtd3
4. Then reboot the board and set up the environment in U-Boot:
=> setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttyS0,115200
Ubiquiti Networks EdgeRouter Lite (edgerouter)
==============================================
The EdgeRouter Lite is part of the EdgeMax series. It is a MIPS64 router
(based on the Cavium Octeon processor) with 512MB of RAM, which uses an
internal USB pendrive for storage.
Setup instructions
------------------
You will need the following:
* RJ45 -> serial ("rollover") cable connected from your PC to the CONSOLE
port on the device
* Ethernet connected to the first ethernet port on the board
If using NFS as part of the setup process, you will also need:
* NFS root setup on your workstation
* TFTP server installed on your workstation (if fetching the kernel from
TFTP, see below).
--- Preparation ---
Build an image (e.g. core-image-minimal) using "edgerouter" as the MACHINE.
In the following instruction it is based on core-image-minimal. Another target
may be similiar with it.
--- Booting from NFS root / kernel via TFTP ---
Load the kernel, and boot the system as follows:
1. Get the kernel (vmlinux) file from the tmp/deploy/images/edgerouter
directory, and make them available on your TFTP server.
2. Connect the board's first serial port to your workstation and then start up
your favourite serial terminal so that you will be able to interact with
the serial console. If you don't have a favourite, picocom is suggested:
$ picocom /dev/ttyS0 -b 115200
3. Power up or reset the board and press a key on the terminal when prompted
to get to the U-Boot command line
4. Set up the environment in U-Boot:
=> setenv ipaddr <board ip>
=> setenv serverip <tftp server ip>
5. Download the kernel and boot:
=> 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 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: 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. Flash the image.
# dd if=core-image-minimal-edgerouter.wic of=/dev/sdb
3. Insert USB disk into the edgerouter and boot it.
Type 2: NFS
-----------
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.
These boot instructions assume that you have recreated the ext3 filesystem with
128 byte inodes, you have an updated uboot or you are running and image capable
of making the filesystem on the board itself.
1. Boot from NFS root
2. Mount the USB disk partition 2 and then extract the contents of
tmp/deploy/core-image-XXXX.tar.bz2 into it.
Before starting, copy core-image-minimal-xxx.tar.bz2 and vmlinux into
rootfs path on your workstation.
and then,
# mount /dev/sda2 /media/sda2
# tar -xvjpf core-image-minimal-XXX.tar.bz2 -C /media/sda2
# cp vmlinux /media/sda2/boot/vmlinux
# umount /media/sda2
# reboot
3. Reboot the board and press a key on the terminal when prompted to get to the U-Boot
command line:
# reboot
4. Load the kernel and boot:
=> 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)

View File

@@ -1 +0,0 @@
meta-yocto-bsp/README.hardware.md

View File

@@ -1 +0,0 @@
README.poky.md

View File

@@ -1 +0,0 @@
meta-poky/README.poky.md

View File

@@ -1,15 +0,0 @@
QEMU Emulation Targets
======================
To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:
* ARM (qemuarm + qemuarm64)
* x86 (qemux86 + qemux86-64)
* PowerPC (qemuppc only)
* MIPS (qemumips + qemumips64)
Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.

View File

@@ -1,22 +0,0 @@
How to Report a Potential Vulnerability?
========================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it using the
[https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Security Security Bugzilla]
If you are dealing with a not-yet released or urgent issue, please send a
message to security AT yoctoproject DOT org, including as many details as
possible: the layer or software module affected, the recipe and its version,
and any example code, if available.
Branches maintained with security fixes
---------------------------------------
See [https://wiki.yoctoproject.org/wiki/Stable_Release_and_LTS Stable release and LTS]
for detailed info regarding the policies and maintenance of Stable branches.
The [https://wiki.yoctoproject.org/wiki/Releases Release page] contains a list of all
releases of the Yocto Project. Versions in grey are no longer actively maintained with
security patches, but well-tested patches may still be accepted for them for
significant issues.

View File

@@ -1,2 +0,0 @@
*min.js binary
*min.css binary

339
bitbake/COPYING Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

19
bitbake/HEADER Normal file
View File

@@ -0,0 +1,19 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# <one line to give the program's name and a brief idea of what it does.>
# Copyright (C) <year> <name of author>
#
# 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.

View File

@@ -1,13 +1,4 @@
BitBake is licensed under the GNU General Public License version 2.0. See
LICENSE.GPL-2.0-only for further details.
Individual files contain the following style tags instead of the full license text:
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
BitBake is licensed under the GNU General Public License version 2.0. See COPYING for further details.
The following external components are distributed with this software:
@@ -26,4 +17,3 @@ Foundation and individual contributors.
* Font Awesome fonts redistributed under the SIL Open Font License 1.1
* simplediff is distributed under the zlib license.

View File

@@ -1,288 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,25 +0,0 @@
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.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

View File

@@ -1,63 +0,0 @@
Bitbake
=======
BitBake is a generic task execution engine that allows shell and Python tasks to be run
efficiently and in parallel while working within complex inter-task dependency constraints.
One of BitBake's main users, OpenEmbedded, takes this core and builds embedded Linux software
stacks using a task-oriented approach.
For information about Bitbake, see the OpenEmbedded website:
https://www.openembedded.org/
Bitbake plain documentation can be found under the doc directory or its integrated
html version at the Yocto Project website:
https://docs.yoctoproject.org
Bitbake requires Python version 3.8 or newer.
Contributing
------------
Please refer to our contributor guide here: https://docs.yoctoproject.org/dev/contributor-guide/
for full details on how to submit changes.
As a quick guide, patches should be sent to bitbake-devel@lists.openembedded.org
The git command to do that would be:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org
If you're sending a patch related to the BitBake manual, make sure you copy
the Yocto Project documentation mailing list:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org --cc docs@lists.yoctoproject.org
Mailing list:
https://lists.openembedded.org/g/bitbake-devel
Source code:
https://git.openembedded.org/bitbake/
Testing
-------
Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions.
You can run this with "bitbake-selftest". In particular the fetcher is well covered since
it has so many corner cases. The datastore has many tests too. Testing with the testsuite is
recommended before submitting patches, particularly to the fetcher and datastore. We also
appreciate new test cases and may require them for more obscure issues.
To run the tests "zstd" and "git" must be installed.
The assumption is made that this testsuite is run from an initialized OpenEmbedded build
environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the
testsuite as follows:
export PATH=$(pwd)/bin:$PATH
bin/bitbake-selftest
The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this
case, the PATH is configured automatically):
pytest

View File

@@ -1,24 +0,0 @@
How to Report a Potential Vulnerability?
========================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it using the
[https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Security Security Bugzilla].
If you have a patch ready, submit it following the same procedure as any other
patch as described in README.md.
If you are dealing with a not-yet released or urgent issue, please send a
message to security AT yoctoproject DOT org, including as many details as
possible: the layer or software module affected, the recipe and its version,
and any example code, if available.
Branches maintained with security fixes
---------------------------------------
See [https://wiki.yoctoproject.org/wiki/Stable_Release_and_LTS Stable release and LTS]
for detailed info regarding the policies and maintenance of Stable branches.
The [https://wiki.yoctoproject.org/wiki/Releases Release page] contains a list of all
releases of the Yocto Project. Versions in grey are no longer actively maintained with
security patches, but well-tested patches may still be accepted for them for
significant issues.

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
@@ -7,13 +9,21 @@
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# 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 warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),
'lib'))
@@ -25,9 +35,10 @@ except RuntimeError as exc:
from bb import cookerdata
from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
bb.utils.check_system_locale()
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__ = "2.6.0"
__version__ = "1.34.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -1,18 +1,27 @@
#!/usr/bin/env python3
# bitbake-diffsigs / bitbake-dumpsig
# BitBake task signature data dump and comparison utility
# bitbake-diffsigs
# BitBake task signature data comparison utility
#
# Copyright (C) 2012-2013, 2017 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# 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 warnings
warnings.simplefilter("default")
import fnmatch
import argparse
import logging
import pickle
@@ -23,133 +32,99 @@ import bb.tinfoil
import bb.siggen
import bb.msg
myname = os.path.basename(sys.argv[0])
logger = bb.msg.logger_create(myname)
logger = bb.msg.logger_create('bitbake-diffsigs')
is_dump = myname == 'bitbake-dumpsig'
def find_compare_task(bbhandler, pn, taskname, sig1=None, sig2=None, color=False):
""" Find the most recent signature files for the specified PN/task and compare them """
def find_siginfo(tinfoil, pn, taskname, sigs=None):
result = None
tinfoil.set_event_mask(['bb.event.FindSigInfoResult',
'logging.LogRecord',
'bb.command.CommandCompleted',
'bb.command.CommandFailed'])
ret = tinfoil.run_command('findSigInfo', pn, taskname, sigs)
if ret:
while True:
event = tinfoil.wait_event(1)
if event:
if isinstance(event, bb.command.CommandCompleted):
break
elif isinstance(event, bb.command.CommandFailed):
logger.error(str(event))
sys.exit(2)
elif isinstance(event, bb.event.FindSigInfoResult):
result = event.result
elif isinstance(event, logging.LogRecord):
logger.handle(event)
else:
logger.error('No result returned from findSigInfo command')
sys.exit(2)
return result
def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
""" Find the most recent signature files for the specified PN/task """
if not hasattr(bb.siggen, 'find_siginfo'):
logger.error('Metadata does not support finding signature data files')
sys.exit(1)
if not taskname.startswith('do_'):
taskname = 'do_%s' % taskname
if sig1 and sig2:
sigfiles = find_siginfo(bbhandler, pn, taskname, [sig1, sig2])
if not sigfiles:
sigfiles = bb.siggen.find_siginfo(pn, taskname, [sig1, sig2], bbhandler.config_data)
if len(sigfiles) == 0:
logger.error('No sigdata files found matching %s %s matching either %s or %s' % (pn, taskname, sig1, sig2))
sys.exit(1)
elif sig1 not in sigfiles:
elif not sig1 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig1))
sys.exit(1)
elif sig2 not in sigfiles:
elif not sig2 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig2))
sys.exit(1)
latestfiles = [sigfiles[sig1], sigfiles[sig2]]
else:
filedates = find_siginfo(bbhandler, pn, taskname)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
filedates = bb.siggen.find_siginfo(pn, taskname, None, bbhandler.config_data)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-3:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
elif len(latestfiles) < 2:
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (pn, taskname))
sys.exit(1)
return latestfiles
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = bb.siggen.find_siginfo(key, None, hashes, bbhandler.config_data)
recout = []
if len(hashfiles) == 0:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
elif not hash1 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
elif not hash2 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2))
else:
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb, color=color)
for change in out2:
for line in change.splitlines():
recout.append(' ' + line)
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = find_siginfo(tinfoil, key, None, hashes)
return recout
recout = []
if not hashfiles:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
elif hash1 not in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
elif hash2 not in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2))
else:
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb, color=color)
for change in out2:
for line in change.splitlines():
recout.append(' ' + line)
# Recurse into signature comparison
logger.debug("Signature file (previous): %s" % latestfiles[-2])
logger.debug("Signature file (latest): %s" % latestfiles[-1])
output = bb.siggen.compare_sigfiles(latestfiles[-2], latestfiles[-1], recursecb, color=color)
if output:
print('\n'.join(output))
sys.exit(0)
return recout
parser = argparse.ArgumentParser(
description=("Dumps" if is_dump else "Compares") + " siginfo/sigdata files written out by BitBake")
description="Compares siginfo/sigdata files written out by BitBake")
parser.add_argument('-D', '--debug',
parser.add_argument('-d', '--debug',
help='Enable debug output',
action='store_true')
if is_dump:
parser.add_argument("-t", "--task",
help="find the signature data file for the last run of the specified task",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument('--color',
help='Colorize output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
parser.add_argument("sigdatafile1",
help="Signature file to dump. Not used when using -t/--task.",
action="store", nargs='?', metavar="sigdatafile")
else:
parser.add_argument('-c', '--color',
help='Colorize the output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
parser.add_argument("-t", "--task",
help="find the signature data files for last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument('-d', '--dump',
help='Dump the last signature data instead of comparing (equivalent to using bitbake-dumpsig)',
action='store_true')
parser.add_argument("-s", "--signature",
help="With -t/--task, specify the signatures to look for instead of taking the last two",
action="store", dest="sigargs", nargs=2, metavar=('fromsig', 'tosig'))
parser.add_argument("-t", "--task",
help="find the signature data files for the last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("sigdatafile1",
help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
action="store", nargs='?')
parser.add_argument("-s", "--signature",
help="With -t/--task, specify the signatures to look for instead of taking the last two",
action="store", dest="sigargs", nargs=2, metavar=('fromsig', 'tosig'))
parser.add_argument("sigdatafile2",
help="Second signature file to compare",
action="store", nargs='?')
parser.add_argument("sigdatafile1",
help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
action="store", nargs='?')
parser.add_argument("sigdatafile2",
help="Second signature file to compare",
action="store", nargs='?')
options = parser.parse_args()
if is_dump:
options.color = 'never'
options.dump = True
options.sigdatafile2 = None
options.sigargs = None
if options.debug:
logger.setLevel(logging.DEBUG)
@@ -159,34 +134,17 @@ color = (options.color == 'always' or (options.color == 'auto' and sys.stdout.is
if options.taskargs:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
if not options.dump and options.sigargs:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0],
options.sigargs[1])
if options.sigargs:
find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0], options.sigargs[1], color=color)
else:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1])
if options.dump:
logger.debug("Signature file: %s" % files[-1])
output = bb.siggen.dump_sigfile(files[-1])
else:
if len(files) < 2:
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (
options.taskargs[0], options.taskargs[1]))
sys.exit(1)
# Recurse into signature comparison
logger.debug("Signature file (previous): %s" % files[-2])
logger.debug("Signature file (latest): %s" % files[-1])
output = bb.siggen.compare_sigfiles(files[-2], files[-1], recursecb, color=color)
find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1], color=color)
else:
if options.sigargs:
logger.error('-s/--signature can only be used together with -t/--task')
sys.exit(1)
try:
if not options.dump and options.sigdatafile1 and options.sigdatafile2:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
output = bb.siggen.compare_sigfiles(options.sigdatafile1, options.sigdatafile2, recursecb, color=color)
if options.sigdatafile1 and options.sigdatafile2:
output = bb.siggen.compare_sigfiles(options.sigdatafile1, options.sigdatafile2, color=color)
elif options.sigdatafile1:
output = bb.siggen.dump_sigfile(options.sigdatafile1)
else:
@@ -200,5 +158,5 @@ else:
logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
sys.exit(1)
if output:
print('\n'.join(output))
if output:
print('\n'.join(output))

View File

@@ -1 +0,0 @@
bitbake-diffsigs

94
bitbake/bin/bitbake-dumpsig Executable file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env python3
# bitbake-dumpsig
# BitBake task signature dump utility
#
# Copyright (C) 2013 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 warnings
import optparse
import logging
import pickle
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb.tinfoil
import bb.siggen
import bb.msg
logger = bb.msg.logger_create('bitbake-dumpsig')
def find_siginfo_task(bbhandler, pn, taskname):
""" Find the most recent signature file for the specified PN/task """
if not hasattr(bb.siggen, 'find_siginfo'):
logger.error('Metadata does not support finding signature data files')
sys.exit(1)
if not taskname.startswith('do_'):
taskname = 'do_%s' % taskname
filedates = bb.siggen.find_siginfo(pn, taskname, None, bbhandler.config_data)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-1:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
return latestfiles[0]
parser = optparse.OptionParser(
description = "Dumps siginfo/sigdata files written out by BitBake",
usage = """
%prog -t recipename taskname
%prog sigdatafile""")
parser.add_option("-D", "--debug",
help = "enable debug",
action = "store_true", dest="debug", default = False)
parser.add_option("-t", "--task",
help = "find the signature data file for the specified task",
action="store", dest="taskargs", nargs=2, metavar='recipename taskname')
options, args = parser.parse_args(sys.argv)
if options.debug:
logger.setLevel(logging.DEBUG)
if options.taskargs:
tinfoil = bb.tinfoil.Tinfoil()
tinfoil.prepare(config_only = True)
file = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1])
logger.debug("Signature file: %s" % file)
elif len(args) == 1:
parser.print_help()
sys.exit(0)
else:
file = args[1]
try:
output = bb.siggen.dump_sigfile(file)
except IOError as e:
logger.error(str(e))
sys.exit(1)
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))

View File

@@ -1,60 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2021 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import io
import os
import sys
import warnings
warnings.simplefilter("default")
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.tinfoil
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Bitbake Query Variable")
parser.add_argument("variable", help="variable name to query")
parser.add_argument("-r", "--recipe", help="Recipe name to query", default=None, required=False)
parser.add_argument('-u', '--unexpand', help='Do not expand the value (with --value)', action="store_true")
parser.add_argument('-f', '--flag', help='Specify a variable flag to query (with --value)', default=None)
parser.add_argument('--value', help='Only report the value, no history and no variable name', action="store_true")
parser.add_argument('-q', '--quiet', help='Silence bitbake server logging', action="store_true")
parser.add_argument('--ignore-undefined', help='Suppress any errors related to undefined variables', action="store_true")
args = parser.parse_args()
if not args.value:
if args.unexpand:
sys.exit("--unexpand only makes sense with --value")
if args.flag:
sys.exit("--flag only makes sense with --value")
quiet = args.quiet or args.value
with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not quiet) as tinfoil:
if args.recipe:
tinfoil.prepare(quiet=3 if quiet else 2)
d = tinfoil.parse_recipe(args.recipe)
else:
tinfoil.prepare(quiet=2, config_only=True)
d = tinfoil.config_data
value = None
if args.flag:
value = d.getVarFlag(args.variable, args.flag, expand=not args.unexpand)
if value is None and not args.ignore_undefined:
sys.exit(f"The flag '{args.flag}' is not defined for variable '{args.variable}'")
else:
value = d.getVar(args.variable, expand=not args.unexpand)
if value is None and not args.ignore_undefined:
sys.exit(f"The variable '{args.variable}' is not defined")
if args.value:
print(str(value if value is not None else ""))
else:
bb.data.emit_var(args.variable, d=d, all=True)

View File

@@ -1,189 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import hashlib
import logging
import os
import pprint
import sys
import threading
import time
import warnings
warnings.simplefilter("default")
try:
import tqdm
ProgressBar = tqdm.tqdm
except ImportError:
class ProgressBar(object):
def __init__(self, *args, **kwargs):
pass
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
pass
def update(self):
pass
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
DEFAULT_ADDRESS = 'unix://./hashserve.sock'
METHOD = 'stress.test.method'
def main():
def handle_stats(args, client):
if args.reset:
s = client.reset_stats()
else:
s = client.get_stats()
pprint.pprint(s)
return 0
def handle_stress(args, client):
def thread_main(pbar, lock):
nonlocal found_hashes
nonlocal missed_hashes
nonlocal max_time
with hashserv.create_client(args.address) as client:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
max_time = max(elapsed, max_time)
pbar.update()
max_time = 0
found_hashes = 0
missed_hashes = 0
lock = threading.Lock()
total_requests = args.clients * args.requests
start_time = time.perf_counter()
with ProgressBar(total=total_requests) as pbar:
threads = [threading.Thread(target=thread_main, args=(pbar, lock), daemon=False) for _ in range(args.clients)]
for t in threads:
t.start()
for t in threads:
t.join()
elapsed = time.perf_counter() - start_time
with lock:
print("%d requests in %.1fs. %.1f requests per second" % (total_requests, elapsed, total_requests / elapsed))
print("Average request time %.8fs" % (elapsed / total_requests))
print("Max request time was %.8fs" % max_time)
print("Found %d hashes, missed %d" % (found_hashes, missed_hashes))
if args.report:
with ProgressBar(total=args.requests) as pbar:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
outhash = hashlib.sha256()
outhash.update(args.outhash_seed.encode('utf-8'))
outhash.update(str(i).encode('utf-8'))
client.report_unihash(taskhash.hexdigest(), METHOD, outhash.hexdigest(), taskhash.hexdigest())
with lock:
pbar.update()
def handle_remove(args, client):
where = {k: v for k, v in args.where}
if where:
result = client.remove(where)
print("Removed %d row(s)" % (result["count"]))
else:
print("No query specified")
def handle_clean_unused(args, client):
result = client.clean_unused(args.max_age)
print("Removed %d rows" % (result["count"]))
return 0
parser = argparse.ArgumentParser(description='Hash Equivalence Client')
parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
subparsers = parser.add_subparsers()
stats_parser = subparsers.add_parser('stats', help='Show server stats')
stats_parser.add_argument('--reset', action='store_true',
help='Reset server stats')
stats_parser.set_defaults(func=handle_stats)
stress_parser = subparsers.add_parser('stress', help='Run stress test')
stress_parser.add_argument('--clients', type=int, default=10,
help='Number of simultaneous clients')
stress_parser.add_argument('--requests', type=int, default=1000,
help='Number of requests each client will perform')
stress_parser.add_argument('--report', action='store_true',
help='Report new hashes')
stress_parser.add_argument('--taskhash-seed', default='',
help='Include string in taskhash')
stress_parser.add_argument('--outhash-seed', default='',
help='Include string in outhash')
stress_parser.set_defaults(func=handle_stress)
remove_parser = subparsers.add_parser('remove', help="Remove hash entries")
remove_parser.add_argument("--where", "-w", metavar="KEY VALUE", nargs=2, action="append", default=[],
help="Remove entries from table where KEY == VALUE")
remove_parser.set_defaults(func=handle_remove)
clean_unused_parser = subparsers.add_parser('clean-unused', help="Remove unused database entries")
clean_unused_parser.add_argument("max_age", metavar="SECONDS", type=int, help="Remove unused entries older than SECONDS old")
clean_unused_parser.set_defaults(func=handle_clean_unused)
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
func = getattr(args, 'func', None)
if func:
with hashserv.create_client(args.address) as client:
return func(args, client)
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -1,66 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2018 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import logging
import argparse
import sqlite3
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
VERSION = "1.0.0"
DEFAULT_BIND = 'unix://./hashserve.sock'
def main():
parser = argparse.ArgumentParser(description='Hash Equivalence Reference Server. Version=%s' % VERSION,
epilog='''The bind address is the path to a unix domain socket if it is
prefixed with "unix://". Otherwise, it is an IP address
and port in form ADDRESS:PORT. To bind to all addresses, leave
the ADDRESS empty, e.g. "--bind :8686". To bind to a specific
IPv6 address, enclose the address in "[]", e.g.
"--bind [::1]:8686"'''
)
parser.add_argument('-b', '--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('-d', '--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('-l', '--log', default='WARNING', help='Set logging level')
parser.add_argument('-u', '--upstream', help='Upstream hashserv to pull hashes from')
parser.add_argument('-r', '--read-only', action='store_true', help='Disallow write operations from clients')
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
server = hashserv.create_server(args.bind, args.database, upstream=args.upstream, read_only=args.read_only)
server.serve_forever()
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -7,15 +7,24 @@
# Copyright (C) 2011 Mentor Graphics Corporation
# Copyright (C) 2011-2015 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
# 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 logging
import os
import sys
import argparse
import warnings
warnings.simplefilter("default")
import signal
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
@@ -27,13 +36,13 @@ import bb.msg
logger = bb.msg.logger_create('bitbake-layers', sys.stdout)
def main():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
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')
parser.add_argument('-F', '--force', help='Force add without recipe parse verification', action='store_true')
parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR')
global_args, unparsed_args = parser.parse_known_args()
@@ -52,9 +61,7 @@ def main():
# Need to re-run logger_create with color argument
# (will be the same logger since it has the same name)
bb.msg.logger_create('bitbake-layers', output=sys.stdout,
color=global_args.color,
level=logger.getEffectiveLevel())
bb.msg.logger_create('bitbake-layers', output=sys.stdout, color=global_args.color)
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
@@ -68,11 +75,11 @@ def main():
registered = False
for plugin in plugins:
if hasattr(plugin, 'tinfoil_init'):
plugin.tinfoil_init(tinfoil)
if hasattr(plugin, 'register_commands'):
registered = True
plugin.register_commands(subparsers)
if hasattr(plugin, 'tinfoil_init'):
plugin.tinfoil_init(tinfoil)
if not registered:
logger.error("No commands registered - missing plugins?")
@@ -82,7 +89,7 @@ def main():
if getattr(args, 'parserecipes', False):
tinfoil.config_data.disableTracking()
tinfoil.parse_recipes()
tinfoil.parseRecipes()
tinfoil.config_data.enableTracking()
return args.func(args)

View File

@@ -1,15 +1,7 @@
#!/usr/bin/env python3
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys,logging
import optparse
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
@@ -40,14 +32,12 @@ def main():
dest="host", type="string", default=PRHOST_DEFAULT)
parser.add_option("--port", help="port number(default: 8585)", action="store",
dest="port", type="int", default=PRPORT_DEFAULT)
parser.add_option("-r", "--read-only", help="open database in read-only mode",
action="store_true")
options, args = parser.parse_args(sys.argv)
prserv.init_logger(os.path.abspath(options.logfile),options.loglevel)
if options.start:
ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile), options.read_only)
ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile))
elif options.stop:
ret=prserv.serv.stop_daemon(options.host, options.port)
else:

View File

@@ -2,40 +2,35 @@
#
# Copyright (C) 2012 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
# 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, logging
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import unittest
try:
import bb
import hashserv
import layerindexlib
except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.color",
"bb.tests.cooker",
"bb.tests.cow",
"bb.tests.data",
"bb.tests.event",
"bb.tests.fetch",
"bb.tests.parse",
"bb.tests.persist_data",
"bb.tests.runqueue",
"bb.tests.siggen",
"bb.tests.utils",
"bb.tests.compression",
"hashserv.tests",
"layerindexlib.tests.layerindexobj",
"layerindexlib.tests.restapi",
"layerindexlib.tests.cooker"]
"bb.tests.utils"]
for t in tests:
t = '.'.join(t.split('.')[:3])

View File

@@ -1,55 +0,0 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2020 Richard Purdie
#
import os
import sys
import warnings
warnings.simplefilter("default")
import logging
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb
bb.utils.check_system_locale()
# Users shouldn't be running this code directly
if len(sys.argv) != 11 or not sys.argv[1].startswith("decafbad"):
print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.")
sys.exit(1)
import bb.server.process
lockfd = int(sys.argv[2])
readypipeinfd = int(sys.argv[3])
logfile = sys.argv[4]
lockname = sys.argv[5]
sockname = sys.argv[6]
timeout = float(sys.argv[7])
profile = bool(int(sys.argv[8]))
xmlrpcinterface = (sys.argv[9], int(sys.argv[10]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
so = open(logfile, 'a+')
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
logger = logging.getLogger("BitBake")
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
logger.addHandler(handler)
bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface, profile)

View File

@@ -1,14 +1,8 @@
#!/usr/bin/env python3
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
from bb import fetch2
import logging
@@ -19,12 +13,11 @@ import signal
import pickle
import traceback
import queue
import shlex
import subprocess
from multiprocessing import Lock
from threading import Thread
bb.utils.check_system_locale()
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"):
@@ -69,6 +62,7 @@ if 0:
format_str = "%(levelname)s: %(message)s"
conlogformat = bb.msg.BBLogFormatter(format_str)
consolelog = logging.FileHandler(logfilename)
bb.msg.addDefaultlogFilter(consolelog)
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
@@ -91,19 +85,19 @@ def worker_fire_prepickled(event):
worker_thread_exit = False
def worker_flush(worker_queue):
worker_queue_int = bytearray()
worker_queue_int = b""
global worker_pipe, worker_thread_exit
while True:
try:
worker_queue_int.extend(worker_queue.get(True, 1))
worker_queue_int = worker_queue_int + worker_queue.get(True, 1)
except queue.Empty:
pass
while (worker_queue_int or not worker_queue.empty()):
try:
(_, ready, _) = select.select([], [worker_pipe], [], 1)
if not worker_queue.empty():
worker_queue_int.extend(worker_queue.get())
worker_queue_int = worker_queue_int + worker_queue.get()
written = os.write(worker_pipe, worker_queue_int)
worker_queue_int = worker_queue_int[written:]
except (IOError, OSError) as e:
@@ -121,10 +115,9 @@ def worker_child_fire(event, d):
data = b"<event>" + pickle.dumps(event) + b"</event>"
try:
with bb.utils.lock_timeout(worker_pipe_lock):
while(len(data)):
written = worker_pipe.write(data)
data = data[written:]
worker_pipe_lock.acquire()
worker_pipe.write(data)
worker_pipe_lock.release()
except IOError:
sigterm_handler(None, None)
raise
@@ -143,58 +136,39 @@ def sigterm_handler(signum, frame):
os.killpg(0, signal.SIGTERM)
sys.exit()
def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
fn = runtask['fn']
task = runtask['task']
taskname = runtask['taskname']
taskhash = runtask['taskhash']
unihash = runtask['unihash']
appends = runtask['appends']
layername = runtask['layername']
taskdepdata = runtask['taskdepdata']
quieterrors = runtask['quieterrors']
def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, appends, taskdepdata, extraconfigdata, quieterrors=False, dry_run_exec=False):
# We need to setup the environment BEFORE the fork, since
# a fork() or exec*() activates PSEUDO...
envbackup = {}
fakeroot = False
fakeenv = {}
umask = None
uid = os.getuid()
gid = os.getgid()
taskdep = runtask['taskdep']
taskdep = workerdata["taskdeps"][fn]
if 'umask' in taskdep and taskname in taskdep['umask']:
umask = taskdep['umask'][taskname]
elif workerdata["umask"]:
umask = workerdata["umask"]
if umask:
# umask might come in as a number or text string..
try:
umask = int(umask, 8)
umask = int(taskdep['umask'][taskname],8)
except TypeError:
pass
umask = taskdep['umask'][taskname]
dry_run = cfg.dry_run or runtask['dry_run']
dry_run = cfg.dry_run or dry_run_exec
# We can't use the fakeroot environment in a dry run as it possibly hasn't been built
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
fakeroot = True
envvars = (runtask['fakerootenv'] or "").split()
envvars = (workerdata["fakerootenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
os.environ[key] = value
fakeenv[key] = value
fakedirs = (runtask['fakerootdirs'] or "").split()
fakedirs = (workerdata["fakerootdirs"][fn] or "").split()
for p in fakedirs:
bb.utils.mkdirhier(p)
logger.debug2('Running %s:%s under fakeroot, fakedirs: %s' %
logger.debug(2, 'Running %s:%s under fakeroot, fakedirs: %s' %
(fn, taskname, ', '.join(fakedirs)))
else:
envvars = (runtask['fakerootnoenv'] or "").split()
envvars = (workerdata["fakerootnoenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
os.environ[key] = value
@@ -218,6 +192,9 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
global worker_pipe_lock
pipein.close()
signal.signal(signal.SIGTERM, sigterm_handler)
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, sigterm_handler)
bb.utils.signal_on_parent_exit("SIGTERM")
# Save out the PID so that the event can include it the
@@ -232,11 +209,6 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
# This ensures signals sent to the controlling terminal like Ctrl+C
# don't stop the child processes.
os.setsid()
signal.signal(signal.SIGTERM, sigterm_handler)
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, sigterm_handler)
# No stdin
newsi = os.open(os.devnull, os.O_RDWR)
os.dup2(newsi, sys.stdin.fileno())
@@ -245,11 +217,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
os.umask(umask)
try:
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('BB_CURRENTTASK', taskname.replace("do_", ""))
if cfg.limited_deps:
the_data.setVar("BB_LIMITEDDEPS", "1")
the_data.setVar("BUILDNAME", workerdata["buildname"])
@@ -259,24 +231,13 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
the_data.setVar(varname, value)
bb.parse.siggen.set_taskdata(workerdata["sigdata"])
if "newhashes" in workerdata:
bb.parse.siggen.set_taskhashes(workerdata["newhashes"])
ret = 0
the_data = databuilder.parseRecipe(fn, appends, layername)
the_data.setVar('BB_TASKHASH', taskhash)
the_data.setVar('BB_UNIHASH', unihash)
bb.parse.siggen.setup_datacache_from_datastore(fn, the_data)
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"), taskname.replace("do_", "")))
if not bb.utils.to_boolean(the_data.getVarFlag(taskname, 'network')):
if bb.utils.is_local_uid(uid):
logger.debug("Attempting to disable network for %s" % taskname)
bb.utils.disable_network(uid, gid)
else:
logger.debug("Skipping disable network for %s since %s is not a local uid." % (taskname, uid))
# 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)
@@ -308,13 +269,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
try:
if dry_run:
return 0
try:
ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
finally:
if fakeroot:
fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
return ret
return bb.build.exec_task(fn, taskname, the_data, cfg.profile)
except:
os._exit(1)
if not profiling:
@@ -346,12 +301,12 @@ class runQueueWorkerPipe():
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
self.queue = bytearray()
self.queue = b""
def read(self):
start = len(self.queue)
try:
self.queue.extend(self.input.read(102400) or b"")
self.queue = self.queue + (self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
@@ -359,9 +314,7 @@ class runQueueWorkerPipe():
end = len(self.queue)
index = self.queue.find(b"</event>")
while index != -1:
msg = self.queue[:index+8]
assert msg.startswith(b"<event>") and msg.count(b"<event>") == 1
worker_fire_prepickled(msg)
worker_fire_prepickled(self.queue[:index+8])
self.queue = self.queue[index+8:]
index = self.queue.find(b"</event>")
return (end > start)
@@ -379,7 +332,7 @@ class BitbakeWorker(object):
def __init__(self, din):
self.input = din
bb.utils.nonblockingfd(self.input)
self.queue = bytearray()
self.queue = b""
self.cookercfg = None
self.databuilder = None
self.data = None
@@ -413,14 +366,13 @@ class BitbakeWorker(object):
if len(r) == 0:
# EOF on pipe, server must have terminated
self.sigterm_exception(signal.SIGTERM, None)
self.queue.extend(r)
self.queue = self.queue + r
except (OSError, IOError):
pass
if len(self.queue):
self.handle_item(b"cookerconfig", self.handle_cookercfg)
self.handle_item(b"extraconfigdata", self.handle_extraconfigdata)
self.handle_item(b"workerdata", self.handle_workerdata)
self.handle_item(b"newtaskhashes", self.handle_newtaskhashes)
self.handle_item(b"runtask", self.handle_runtask)
self.handle_item(b"finishnow", self.handle_finishnow)
self.handle_item(b"ping", self.handle_ping)
@@ -438,18 +390,14 @@ class BitbakeWorker(object):
if self.queue.startswith(b"<" + item + b">"):
index = self.queue.find(b"</" + item + b">")
while index != -1:
try:
func(self.queue[(len(item) + 2):index])
except pickle.UnpicklingError:
workerlog_write("Unable to unpickle data: %s\n" % ":".join("{:02x}".format(c) for c in self.queue))
raise
func(self.queue[(len(item) + 2):index])
self.queue = self.queue[(index + len(item) + 3):]
index = self.queue.find(b"</" + item + b">")
def handle_cookercfg(self, data):
self.cookercfg = pickle.loads(data)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.cookercfg, worker=True)
self.databuilder.parseBaseConfiguration(worker=True)
self.databuilder.parseBaseConfiguration()
self.data = self.databuilder.data
def handle_extraconfigdata(self, data):
@@ -457,17 +405,12 @@ class BitbakeWorker(object):
def handle_workerdata(self, data):
self.workerdata = pickle.loads(data)
bb.build.verboseShellLogging = self.workerdata["build_verbose_shell"]
bb.build.verboseStdoutLogging = self.workerdata["build_verbose_stdout"]
bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
bb.msg.loggerDefaultDebugLevel = self.workerdata["logdefaultdebug"]
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
for mc in self.databuilder.mcdata:
self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])
self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.workerdata["hashservaddr"])
self.databuilder.mcdata[mc].setVar("__bbclasstype", "recipe")
def handle_newtaskhashes(self, data):
self.workerdata["newhashes"] = pickle.loads(data)
def handle_ping(self, _):
workerlog_write("Handling ping\n")
@@ -482,15 +425,11 @@ class BitbakeWorker(object):
sys.exit(0)
def handle_runtask(self, data):
runtask = pickle.loads(data)
fn = runtask['fn']
task = runtask['task']
taskname = runtask['taskname']
fn, task, taskname, quieterrors, appends, taskdepdata, dry_run_exec = 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.databuilder, self.workerdata, self.extraconfigdata, runtask)
pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, appends, taskdepdata, self.extraconfigdata, quieterrors, dry_run_exec)
self.build_pids[pid] = task
self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout)
@@ -554,11 +493,10 @@ except BaseException as e:
import traceback
sys.stderr.write(traceback.format_exc())
sys.stderr.write(str(e))
finally:
worker_thread_exit = True
worker_thread.join()
workerlog_write("exiting")
if not normalexit:
sys.exit(1)
worker_thread_exit = True
worker_thread.join()
workerlog_write("exitting")
sys.exit(0)

531
bitbake/bin/bitdoc Executable file
View File

@@ -0,0 +1,531 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# 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 optparse, os, sys
# bitbake
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(__file__), 'lib'))
import bb
import bb.parse
from string import split, join
__version__ = "0.0.2"
class HTMLFormatter:
"""
Simple class to help to generate some sort of HTML files. It is
quite inferior solution compared to docbook, gtkdoc, doxygen but it
should work for now.
We've a global introduction site (index.html) and then one site for
the list of keys (alphabetical sorted) and one for the list of groups,
one site for each key with links to the relations and groups.
index.html
all_keys.html
all_groups.html
groupNAME.html
keyNAME.html
"""
def replace(self, text, *pairs):
"""
From pydoc... almost identical at least
"""
while pairs:
(a, b) = pairs[0]
text = join(split(text, a), b)
pairs = pairs[1:]
return text
def escape(self, text):
"""
Escape string to be conform HTML
"""
return self.replace(text,
('&', '&amp;'),
('<', '&lt;' ),
('>', '&gt;' ) )
def createNavigator(self):
"""
Create the navgiator
"""
return """<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="g" href="index.html">Home</a></td>
<td><a accesskey="n" href="all_groups.html">Groups</a></td>
<td><a accesskey="u" href="all_keys.html">Keys</a></td>
</tr></table>
"""
def relatedKeys(self, item):
"""
Create HTML to link to foreign keys
"""
if len(item.related()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for it in item.related():
txts.append("""<a href="key%(it)s.html">%(it)s</a>""" % vars() )
return txt + ",".join(txts)
def groups(self, item):
"""
Create HTML to link to related groups
"""
if len(item.groups()) == 0:
return ""
txt = "<p><b>See also:</b><br>"
txts = []
for group in item.groups():
txts.append( """<a href="group%s.html">%s</a> """ % (group, group) )
return txt + ",".join(txts)
def createKeySite(self, item):
"""
Create a site for a key. It contains the header/navigator, a heading,
the description, links to related keys and to the groups.
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2><span class="refentrytitle">%s</span></h2>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Related Keys</h2>
<p>
%s
</p>
</div>
<div class="refsynopsisdiv">
<h2>Groups</h2>
<p>
%s
</p>
</div>
</body>
""" % (item.name(), self.createNavigator(), item.name(),
self.escape(item.description()), self.relatedKeys(item), self.groups(item))
def createGroupsSite(self, doc):
"""
Create the Group Overview site
"""
groups = ""
sorted_groups = sorted(doc.groups())
for group in sorted_groups:
groups += """<a href="group%s.html">%s</a><br>""" % (group, group)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Groups</h2>
%s
</body>
""" % (self.createNavigator(), groups)
def createIndex(self):
"""
Create the index file
"""
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Bitbake Documentation</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Documentation Entrance</h2>
<a href="all_groups.html">All available groups</a><br>
<a href="all_keys.html">All available keys</a><br>
</body>
""" % self.createNavigator()
def createKeysSite(self, doc):
"""
Create Overview of all avilable keys
"""
keys = ""
sorted_keys = sorted(doc.doc_keys())
for key in sorted_keys:
keys += """<a href="key%s.html">%s</a><br>""" % (key, key)
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Key overview</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
<h2>Available Keys</h2>
%s
</body>
""" % (self.createNavigator(), keys)
def createGroupSite(self, gr, items, _description = None):
"""
Create a site for a group:
Group the name of the group, items contain the name of the keys
inside this group
"""
groups = ""
description = ""
# create a section with the group descriptions
if _description:
description += "<h2 Description of Grozp %s</h2>" % gr
description += _description
items.sort(lambda x, y:cmp(x.name(), y.name()))
for group in items:
groups += """<a href="key%s.html">%s</a><br>""" % (group.name(), group.name())
return """<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Group %s</title></head>
<link rel="stylesheet" href="style.css" type="text/css">
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
%s
%s
<div class="refsynopsisdiv">
<h2>Keys in Group %s</h2>
<pre class="synopsis">
%s
</pre>
</div>
</body>
""" % (gr, self.createNavigator(), description, gr, groups)
def createCSS(self):
"""
Create the CSS file
"""
return """.synopsis, .classsynopsis
{
background: #eeeeee;
border: solid 1px #aaaaaa;
padding: 0.5em;
}
.programlisting
{
background: #eeeeff;
border: solid 1px #aaaaff;
padding: 0.5em;
}
.variablelist
{
padding: 4px;
margin-left: 3em;
}
.variablelist td:first-child
{
vertical-align: top;
}
table.navigation
{
background: #ffeeee;
border: solid 1px #ffaaaa;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.navigation a
{
color: #770000;
}
.navigation a:visited
{
color: #550000;
}
.navigation .title
{
font-size: 200%;
}
div.refnamediv
{
margin-top: 2em;
}
div.gallery-float
{
float: left;
padding: 10px;
}
div.gallery-float img
{
border-style: none;
}
div.gallery-spacer
{
clear: both;
}
a
{
text-decoration: none;
}
a:hover
{
text-decoration: underline;
color: #FF0000;
}
"""
class DocumentationItem:
"""
A class to hold information about a configuration
item. It contains the key name, description, a list of related names,
and the group this item is contained in.
"""
def __init__(self):
self._groups = []
self._related = []
self._name = ""
self._desc = ""
def groups(self):
return self._groups
def name(self):
return self._name
def description(self):
return self._desc
def related(self):
return self._related
def setName(self, name):
self._name = name
def setDescription(self, desc):
self._desc = desc
def addGroup(self, group):
self._groups.append(group)
def addRelation(self, relation):
self._related.append(relation)
def sort(self):
self._related.sort()
self._groups.sort()
class Documentation:
"""
Holds the documentation... with mappings from key to items...
"""
def __init__(self):
self.__keys = {}
self.__groups = {}
def insert_doc_item(self, item):
"""
Insert the Doc Item into the internal list
of representation
"""
item.sort()
self.__keys[item.name()] = item
for group in item.groups():
if not group in self.__groups:
self.__groups[group] = []
self.__groups[group].append(item)
self.__groups[group].sort()
def doc_item(self, key):
"""
Return the DocumentationInstance describing the key
"""
try:
return self.__keys[key]
except KeyError:
return None
def doc_keys(self):
"""
Return the documented KEYS (names)
"""
return self.__keys.keys()
def groups(self):
"""
Return the names of available groups
"""
return self.__groups.keys()
def group_content(self, group_name):
"""
Return a list of keys/names that are in a specefic
group or the empty list
"""
try:
return self.__groups[group_name]
except KeyError:
return []
def parse_cmdline(args):
"""
Parse the CMD line and return the result as a n-tuple
"""
parser = optparse.OptionParser( version = "Bitbake Documentation Tool Core version %s, %%prog version %s" % (bb.__version__, __version__))
usage = """%prog [options]
Create a set of html pages (documentation) for a bitbake.conf....
"""
# Add the needed options
parser.add_option( "-c", "--config", help = "Use the specified configuration file as source",
action = "store", dest = "config", default = os.path.join("conf", "documentation.conf") )
parser.add_option( "-o", "--output", help = "Output directory for html files",
action = "store", dest = "output", default = "html/" )
parser.add_option( "-D", "--debug", help = "Increase the debug level",
action = "count", dest = "debug", default = 0 )
parser.add_option( "-v", "--verbose", help = "output more chit-char to the terminal",
action = "store_true", dest = "verbose", default = False )
options, args = parser.parse_args( sys.argv )
bb.msg.init_msgconfig(options.verbose, options.debug)
return options.config, options.output
def main():
"""
The main Method
"""
(config_file, output_dir) = parse_cmdline( sys.argv )
# right to let us load the file now
try:
documentation = bb.parse.handle( config_file, bb.data.init() )
except IOError:
bb.fatal( "Unable to open %s" % config_file )
except bb.parse.ParseError:
bb.fatal( "Unable to parse %s" % config_file )
if isinstance(documentation, dict):
documentation = documentation[""]
# Assuming we've the file loaded now, we will initialize the 'tree'
doc = Documentation()
# defined states
state_begin = 0
state_see = 1
state_group = 2
for key in bb.data.keys(documentation):
data = documentation.getVarFlag(key, "doc", False)
if not data:
continue
# The Documentation now starts
doc_ins = DocumentationItem()
doc_ins.setName(key)
tokens = data.split(' ')
state = state_begin
string= ""
for token in tokens:
token = token.strip(',')
if not state == state_see and token == "@see":
state = state_see
continue
elif not state == state_group and token == "@group":
state = state_group
continue
if state == state_begin:
string += " %s" % token
elif state == state_see:
doc_ins.addRelation(token)
elif state == state_group:
doc_ins.addGroup(token)
# set the description
doc_ins.setDescription(string)
doc.insert_doc_item(doc_ins)
# let us create the HTML now
bb.utils.mkdirhier(output_dir)
os.chdir(output_dir)
# Let us create the sites now. We do it in the following order
# Start with the index.html. It will point to sites explaining all
# keys and groups
html_slave = HTMLFormatter()
f = file('style.css', 'w')
print >> f, html_slave.createCSS()
f = file('index.html', 'w')
print >> f, html_slave.createIndex()
f = file('all_groups.html', 'w')
print >> f, html_slave.createGroupsSite(doc)
f = file('all_keys.html', 'w')
print >> f, html_slave.createKeysSite(doc)
# now for each group create the site
for group in doc.groups():
f = file('group%s.html' % group, 'w')
print >> f, html_slave.createGroupSite(group, doc.group_content(group))
# now for the keys
for key in doc.doc_keys():
f = file('key%s.html' % doc.doc_item(key).name(), 'w')
print >> f, html_slave.createKeySite(doc.doc_item(key))
if __name__ == "__main__":
main()

View File

@@ -1,173 +0,0 @@
#!/usr/bin/env python3
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""git-make-shallow: make the current git repository shallow
Remove the history of the specified revisions, then optionally filter the
available refs to those specified.
"""
import argparse
import collections
import errno
import itertools
import os
import subprocess
import sys
import warnings
warnings.simplefilter("default")
version = 1.0
def main():
if sys.version_info < (3, 4, 0):
sys.exit('Python 3.4 or greater is required')
git_dir = check_output(['git', 'rev-parse', '--git-dir']).rstrip()
shallow_file = os.path.join(git_dir, 'shallow')
if os.path.exists(shallow_file):
try:
check_output(['git', 'fetch', '--unshallow'])
except subprocess.CalledProcessError:
try:
os.unlink(shallow_file)
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
args = process_args()
revs = check_output(['git', 'rev-list'] + args.revisions).splitlines()
make_shallow(shallow_file, args.revisions, args.refs)
ref_revs = check_output(['git', 'rev-list'] + args.refs).splitlines()
remaining_history = set(revs) & set(ref_revs)
for rev in remaining_history:
if check_output(['git', 'rev-parse', '{}^@'.format(rev)]):
sys.exit('Error: %s was not made shallow' % rev)
filter_refs(args.refs)
if args.shrink:
shrink_repo(git_dir)
subprocess.check_call(['git', 'fsck', '--unreachable'])
def process_args():
# TODO: add argument to automatically keep local-only refs, since they
# can't be easily restored with a git fetch.
parser = argparse.ArgumentParser(description='Remove the history of the specified revisions, then optionally filter the available refs to those specified.')
parser.add_argument('--ref', '-r', metavar='REF', action='append', dest='refs', help='remove all but the specified refs (cumulative)')
parser.add_argument('--shrink', '-s', action='store_true', help='shrink the git repository by repacking and pruning')
parser.add_argument('revisions', metavar='REVISION', nargs='+', help='a git revision/commit')
if len(sys.argv) < 2:
parser.print_help()
sys.exit(2)
args = parser.parse_args()
if args.refs:
args.refs = check_output(['git', 'rev-parse', '--symbolic-full-name'] + args.refs).splitlines()
else:
args.refs = get_all_refs(lambda r, t, tt: t == 'commit' or tt == 'commit')
args.refs = list(filter(lambda r: not r.endswith('/HEAD'), args.refs))
args.revisions = check_output(['git', 'rev-parse'] + ['%s^{}' % i for i in args.revisions]).splitlines()
return args
def check_output(cmd, input=None):
return subprocess.check_output(cmd, universal_newlines=True, input=input)
def make_shallow(shallow_file, revisions, refs):
"""Remove the history of the specified revisions."""
for rev in follow_history_intersections(revisions, refs):
print("Processing %s" % rev)
with open(shallow_file, 'a') as f:
f.write(rev + '\n')
def get_all_refs(ref_filter=None):
"""Return all the existing refs in this repository, optionally filtering the refs."""
ref_output = check_output(['git', 'for-each-ref', '--format=%(refname)\t%(objecttype)\t%(*objecttype)'])
ref_split = [tuple(iter_extend(l.rsplit('\t'), 3)) for l in ref_output.splitlines()]
if ref_filter:
ref_split = (e for e in ref_split if ref_filter(*e))
refs = [r[0] for r in ref_split]
return refs
def iter_extend(iterable, length, obj=None):
"""Ensure that iterable is the specified length by extending with obj."""
return itertools.islice(itertools.chain(iterable, itertools.repeat(obj)), length)
def filter_refs(refs):
"""Remove all but the specified refs from the git repository."""
all_refs = get_all_refs()
to_remove = set(all_refs) - set(refs)
if to_remove:
check_output(['xargs', '-0', '-n', '1', 'git', 'update-ref', '-d', '--no-deref'],
input=''.join(l + '\0' for l in to_remove))
def follow_history_intersections(revisions, refs):
"""Determine all the points where the history of the specified revisions intersects the specified refs."""
queue = collections.deque(revisions)
seen = set()
for rev in iter_except(queue.popleft, IndexError):
if rev in seen:
continue
parents = check_output(['git', 'rev-parse', '%s^@' % rev]).splitlines()
yield rev
seen.add(rev)
if not parents:
continue
check_refs = check_output(['git', 'merge-base', '--independent'] + sorted(refs)).splitlines()
for parent in parents:
for ref in check_refs:
print("Checking %s vs %s" % (parent, ref))
try:
merge_base = check_output(['git', 'merge-base', parent, ref]).rstrip()
except subprocess.CalledProcessError:
continue
else:
queue.append(merge_base)
def iter_except(func, exception, start=None):
"""Yield a function repeatedly until it raises an exception."""
try:
if start is not None:
yield start()
while True:
yield func()
except exception:
pass
def shrink_repo(git_dir):
"""Shrink the newly shallow repository, removing the unreachable objects."""
subprocess.check_call(['git', 'reflog', 'expire', '--expire-unreachable=now', '--all'])
subprocess.check_call(['git', 'repack', '-ad'])
try:
os.unlink(os.path.join(git_dir, 'objects', 'info', 'alternates'))
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
subprocess.check_call(['git', 'prune', '--expire', 'now'])
if __name__ == '__main__':
main()

View File

@@ -3,28 +3,27 @@
# toaster - shell script to start Toaster
# Copyright (C) 2013-2015 Intel Corp.
# 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.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# 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/.
HELP="
Usage 1: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
Usage: source toaster start|stop [webport=<address:port>] [noweb]
Optional arguments:
[nobuild] Setup the environment for capturing builds with toaster but disable managed builds
[noweb] Setup the environment for capturing builds with toaster but don't start the web server
[noweb] Setup the environment for building with toaster but don't start the development server
[webport] Set the development server (default: localhost:8000)
[toasterdir] Set absolute path to be used as TOASTER_DIR (default: BUILDDIR/../)
Usage 2: source toaster manage [createsuperuser|lsupdates|migrate|makemigrations|checksettings|collectstatic|...]
"
custom_extention()
{
custom_extension=$BBBASEDIR/lib/toaster/orm/fixtures/custom_toaster_append.sh
if [ -f $custom_extension ] ; then
$custom_extension $*
fi
}
databaseCheck()
{
retval=0
@@ -33,7 +32,7 @@ databaseCheck()
$MANAGE migrate --noinput || retval=1
if [ $retval -eq 1 ]; then
echo "Failed migrations, halting system start" 1>&2
echo "Failed migrations, aborting system start" 1>&2
return $retval
fi
# Make sure that checksettings can pick up any value for TEMPLATECONF
@@ -41,7 +40,7 @@ databaseCheck()
$MANAGE checksettings --traceback || retval=1
if [ $retval -eq 1 ]; then
printf "\nError while checking settings; exiting\n"
printf "\nError while checking settings; aborting\n"
return $retval
fi
@@ -51,16 +50,11 @@ databaseCheck()
webserverKillAll()
{
local pidfile
if [ -f ${BUILDDIR}/.toastermain.pid ] ; then
custom_extention web_stop_postpend
else
custom_extention noweb_stop_postpend
fi
for pidfile in ${BUILDDIR}/.toastermain.pid ${BUILDDIR}/.runbuilds.pid; do
if [ -f ${pidfile} ]; then
pid=`cat ${pidfile}`
while kill -0 $pid 2>/dev/null; do
kill -SIGTERM $pid 2>/dev/null
kill -SIGTERM -$pid 2>/dev/null
sleep 1
done
rm ${pidfile}
@@ -83,7 +77,7 @@ webserverStartAll()
echo "Starting webserver..."
$MANAGE runserver --noreload "$ADDR_PORT" \
$MANAGE runserver "$ADDR_PORT" \
</dev/null >>${BUILDDIR}/toaster_web.log 2>&1 \
& echo $! >${BUILDDIR}/.toastermain.pid
@@ -95,7 +89,6 @@ webserverStartAll()
else
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"
custom_extention web_start_postpend $ADDR_PORT
fi
return $retval
@@ -123,14 +116,8 @@ verify_prereq() {
# Verify Django version
reqfile=$(python3 -c "import os; print(os.path.realpath('$BBBASEDIR/toaster-requirements.txt'))")
exp='s/Django\([><=]\+\)\([^,]\+\),\([><=]\+\)\(.\+\)/'
# expand version parts to 2 digits to support 1.10.x > 1.8
# (note:helper functions hard to insert in-line)
exp=$exp'import sys,django;'
exp=$exp'version=["%02d" % int(n) for n in django.get_version().split(".")];'
exp=$exp'vmin=["%02d" % int(n) for n in "\2".split(".")];'
exp=$exp'vmax=["%02d" % int(n) for n in "\4".split(".")];'
exp=$exp'sys.exit(not (version \1 vmin and version \3 vmax))'
exp=$exp'/p'
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 | python3 - ; then
req=`grep ^Django $reqfile`
echo "This program needs $req"
@@ -152,9 +139,7 @@ fi
export BBBASEDIR=`dirname $TOASTER`/..
MANAGE="python3 $BBBASEDIR/lib/toaster/manage.py"
if [ -z "$OE_ROOT" ]; then
OE_ROOT=`dirname $TOASTER`/../..
fi
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
@@ -177,19 +162,15 @@ fi
unset OE_ROOT
WEBSERVER=1
export TOASTER_BUILDSERVER=1
ADDR_PORT="localhost:8000"
TOASTERDIR=`dirname $BUILDDIR`
unset CMD
for param in $*; do
case $param in
noweb )
WEBSERVER=0
;;
nobuild )
TOASTER_BUILDSERVER=0
;;
start )
CMD=$param
;;
@@ -206,24 +187,13 @@ for param in $*; do
ADDR_PORT="localhost:$PORT"
fi
;;
toasterdir=*)
TOASTERDIR="${param#*=}"
;;
manage )
CMD=$param
manage_cmd=""
;;
--help)
echo "$HELP"
return 0
;;
*)
if [ "manage" == "$CMD" ] ; then
manage_cmd="$manage_cmd $param"
else
echo "$HELP"
exit 1
fi
echo "$HELP"
return 1
;;
esac
@@ -247,8 +217,8 @@ fi
# 2) the build dir (in build)
# 3) the sqlite db if that is being used.
# 4) pid's we need to clean up on exit/shutdown
export TOASTER_DIR=$TOASTERDIR
export BB_ENV_PASSTHROUGH_ADDITIONS="$BB_ENV_PASSTHROUGH_ADDITIONS TOASTER_DIR"
export TOASTER_DIR=`dirname $BUILDDIR`
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE TOASTER_DIR"
# Determine the action. If specified by arguments, fine, if not, toggle it
if [ "$CMD" = "start" ] ; then
@@ -265,7 +235,6 @@ fi
echo "The system will $CMD."
# Execute the commands
custom_extention toaster_prepend $CMD $ADDR_PORT
case $CMD in
start )
@@ -287,38 +256,26 @@ case $CMD in
if [ ! -f "$TOASTER_DIR/toaster.sqlite" ] ; then
if ! databaseCheck; then
echo "Failed ${CMD}."
return 4
return 4
fi
fi
custom_extention noweb_start_postpend $ADDR_PORT
fi
if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then
echo "Failed ${CMD}."
return 4
fi
export BITBAKE_UI='toasterui'
if [ $TOASTER_BUILDSERVER -eq 1 ] ; then
$MANAGE runbuilds \
</dev/null >>${BUILDDIR}/toaster_runbuilds.log 2>&1 \
& echo $! >${BUILDDIR}/.runbuilds.pid
else
echo "Toaster build server not started."
fi
$MANAGE runbuilds \
</dev/null >>${BUILDDIR}/toaster_runbuilds.log 2>&1 \
& echo $! >${BUILDDIR}/.runbuilds.pid
# set fail safe stop system on terminal exit
trap stop_system SIGHUP
echo "Successful ${CMD}."
custom_extention toaster_postpend $CMD $ADDR_PORT
return 0
;;
stop )
stop_system
echo "Successful ${CMD}."
;;
manage )
cd $BBBASEDIR/lib/toaster
$MANAGE $manage_cmd
;;
esac
custom_extention toaster_postpend $CMD $ADDR_PORT

View File

@@ -1,12 +1,25 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2014 Alex Damian
#
# SPDX-License-Identifier: GPL-2.0-only
#
# This file re-uses code spread throughout other Bitbake source files.
# As such, all other copyrights belong to their own right holders.
#
#
# 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 command takes a filename as a single parameter. The filename is read
@@ -19,8 +32,6 @@ import sys
import json
import pickle
import codecs
import warnings
warnings.simplefilter("default")
from collections import namedtuple

View File

@@ -1,13 +0,0 @@
{
"version": 1,
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
}
}
}

View File

@@ -1,89 +0,0 @@
#! /usr/bin/env python3
#
# Copyright (C) 2020 Joshua Watt <JPEWhacker@gmail.com>
#
# SPDX-License-Identifier: MIT
import argparse
import os
import random
import shutil
import signal
import subprocess
import sys
import time
def try_unlink(path):
try:
os.unlink(path)
except:
pass
def main():
def cleanup():
shutil.rmtree("tmp/cache", ignore_errors=True)
try_unlink("bitbake-cookerdaemon.log")
try_unlink("bitbake.sock")
try_unlink("bitbake.lock")
parser = argparse.ArgumentParser(
description="Bitbake parser torture test",
epilog="""
A torture test for bitbake's parser. Repeatedly interrupts parsing until
bitbake decides to deadlock.
""",
)
args = parser.parse_args()
if not "BUILDDIR" in os.environ:
print(
"'BUILDDIR' not found in the environment. Did you initialize the build environment?"
)
return 1
os.chdir(os.environ["BUILDDIR"])
run_num = 0
while True:
if run_num % 100 == 0:
print("Calibrating wait time...")
cleanup()
start_time = time.monotonic()
r = subprocess.run(["bitbake", "-p"])
max_wait_time = time.monotonic() - start_time
if r.returncode != 0:
print("Calibration run exited with %d" % r.returncode)
return 1
print("Maximum wait time is %f seconds" % max_wait_time)
run_num += 1
wait_time = random.random() * max_wait_time
print("Run #%d" % run_num)
print("Will sleep for %f seconds" % wait_time)
cleanup()
with subprocess.Popen(["bitbake", "-p"]) as proc:
time.sleep(wait_time)
proc.send_signal(signal.SIGINT)
try:
proc.wait(45)
except subprocess.TimeoutExpired:
print("Run #%d: Waited too long. Possible deadlock!" % run_num)
proc.wait()
return 1
if proc.returncode == 0:
print("Exited successfully. Timeout too long?")
else:
print("Exited with %d" % proc.returncode)
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,6 +1,8 @@
#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# Copyright (C) 2012, 2018 Wind River Systems, Inc.
# 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
@@ -16,68 +18,51 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Used for dumping the bb_cache.dat
# This is used for dumping the bb_cache.dat, the output format is:
# recipe_path PN PV PACKAGES
#
import os
import sys
import argparse
import warnings
# For importing bb.cache
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../lib'))
from bb.cache import CoreRecipeInfo
import pickle
import pickle as pickle
class DumpCache(object):
def __init__(self):
parser = argparse.ArgumentParser(
description="bb_cache.dat's dumper",
epilog="Use %(prog)s --help to get help")
parser.add_argument("-r", "--recipe",
help="specify the recipe, default: all recipes", action="store")
parser.add_argument("-m", "--members",
help = "specify the member, use comma as separator for multiple ones, default: all members", action="store", default="")
parser.add_argument("-s", "--skip",
help = "skip skipped recipes", action="store_true")
parser.add_argument("cachefile",
help = "specify bb_cache.dat", nargs = 1, action="store", default="")
def main(argv=None):
"""
Get the mapping for the target recipe.
"""
if len(argv) != 1:
print("Error, need one argument!", file=sys.stderr)
return 2
self.args = parser.parse_args()
cachefile = argv[0]
def main(self):
with open(self.args.cachefile[0], "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
while True:
try:
key = pickled.load()
val = pickled.load()
except Exception:
break
if isinstance(val, CoreRecipeInfo):
pn = val.pn
with open(cachefile, "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
while cachefile:
try:
key = pickled.load()
val = pickled.load()
except Exception:
break
if isinstance(val, CoreRecipeInfo) and (not val.skipped):
pn = val.pn
# Filter out the native recipes.
if key.startswith('virtual:native:') or pn.endswith("-native"):
continue
if self.args.recipe and self.args.recipe != pn:
continue
# 1.0 is the default version for a no PV recipe.
if "pv" in val.__dict__:
pv = val.pv
else:
pv = "1.0"
if self.args.skip and val.skipped:
continue
if self.args.members:
out = key
for member in self.args.members.split(','):
out += ": %s" % val.__dict__.get(member)
print("%s" % out)
else:
print("%s: %s" % (key, val.__dict__))
elif not self.args.recipe:
print("%s %s" % (key, val))
print("%s %s %s %s" % (key, pn, pv, ' '.join(val.packages)))
if __name__ == "__main__":
try:
dump = DumpCache()
ret = dump.main()
except Exception as esc:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)
sys.exit(main(sys.argv[1:]))

View File

@@ -1,23 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2021 Joshua Watt <JPEWhacker@gmail.com>
#
# Dockerfile to build a bitbake hash equivalence server container
#
# From the root of the bitbake repository, run:
#
# docker build -f contrib/hashserv/Dockerfile .
#
FROM alpine:3.13.1
RUN apk add --no-cache python3
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
COPY lib/bb /opt/bbhashserv/lib/bb/
COPY lib/codegen.py /opt/bbhashserv/lib/codegen.py
COPY lib/ply /opt/bbhashserv/lib/ply/
COPY lib/bs4 /opt/bbhashserv/lib/bs4/
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]

View File

@@ -1,62 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2022 Daniel Gomez <daniel@qtec.com>
#
# Dockerfile to build a bitbake PR service container
#
# From the root of the bitbake repository, run:
#
# docker build -f contrib/prserv/Dockerfile . -t prserv
#
# Running examples:
#
# 1. PR Service in RW mode, port 18585:
#
# docker run --detach --tty \
# --env PORT=18585 \
# --publish 18585:18585 \
# --volume $PWD:/var/lib/bbprserv \
# prserv
#
# 2. PR Service in RO mode, default port (8585) and custom LOGFILE:
#
# docker run --detach --tty \
# --env DBMODE="--read-only" \
# --env LOGFILE=/var/lib/bbprserv/prservro.log \
# --publish 8585:8585 \
# --volume $PWD:/var/lib/bbprserv \
# prserv
#
FROM alpine:3.14.4
RUN apk add --no-cache python3
COPY bin/bitbake-prserv /opt/bbprserv/bin/
COPY lib/prserv /opt/bbprserv/lib/prserv/
COPY lib/bb /opt/bbprserv/lib/bb/
COPY lib/codegen.py /opt/bbprserv/lib/codegen.py
COPY lib/ply /opt/bbprserv/lib/ply/
COPY lib/bs4 /opt/bbprserv/lib/bs4/
ENV PATH=$PATH:/opt/bbprserv/bin
RUN mkdir -p /var/lib/bbprserv
ENV DBFILE=/var/lib/bbprserv/prserv.sqlite3 \
LOGFILE=/var/lib/bbprserv/prserv.log \
LOGLEVEL=debug \
HOST=0.0.0.0 \
PORT=8585 \
DBMODE=""
ENTRYPOINT [ "/bin/sh", "-c", \
"bitbake-prserv \
--file=$DBFILE \
--log=$LOGFILE \
--loglevel=$LOGLEVEL \
--start \
--host=$HOST \
--port=$PORT \
$DBMODE \
&& tail -f $LOGFILE"]

View File

@@ -1,18 +0,0 @@
The MIT License (MIT)
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.

View File

@@ -6,12 +6,12 @@
"
" This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc
if &compatible || version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || version < 600
finish
endif
" .bb, .bbappend and .bbclass
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
" .inc
au BufNewFile,BufRead *.inc set filetype=bitbake

View File

@@ -1,13 +1,2 @@
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl cms< sts< sw< et< sua<"
setlocal commentstring=#\ %s
setlocal softtabstop=4 shiftwidth=4 expandtab
setlocal suffixesadd+=.bb,.bbclass
set sts=4 sw=4 et
set cms=#%s

View File

@@ -1,343 +0,0 @@
" Vim indent file
" Language: BitBake
" Copyright: Copyright (C) 2019 Agilent Technologies, Inc.
" Maintainer: Chris Laplante <chris.laplante@agilent.com>
" License: You may redistribute this under the same terms as Vim itself
if exists("b:did_indent")
finish
endif
if exists("*BitbakeIndent")
finish
endif
runtime! indent/sh.vim
unlet b:did_indent
setlocal indentexpr=BitbakeIndent(v:lnum)
setlocal autoindent nolisp
function s:is_bb_python_func_def(lnum)
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return 0
endif
let top = synIDattr(stack[0], "name")
echo top
return synIDattr(stack[0], "name") == "bbPyFuncDef"
endfunction
"""" begin modified from indent/python.vim, upstream commit 7a9bd7c1e0ce1baf5a02daf36eeae3638aa315c7
"""" This copied code is licensed the same as Vim itself.
setlocal indentkeys+=<:>,=elif,=except
let s:keepcpo= &cpo
set cpo&vim
let s:maxoff = 50 " maximum number of lines to look backwards for ()
function! GetBBPythonIndent(lnum)
" If this line is explicitly joined: If the previous line was also joined,
" line it up with that one, otherwise add two 'shiftwidth'
if getline(a:lnum - 1) =~ '\\$'
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
return indent(a:lnum - 1)
endif
return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2))
endif
" If the start of the line is in a string don't change the indent.
if has('syntax_items')
\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
return -1
endif
" Search backwards for the previous non-empty line.
let plnum = prevnonblank(v:lnum - 1)
if plnum == 0
" This is the first non-empty line, use zero indent.
return 0
endif
call cursor(plnum, 1)
" Identing inside parentheses can be very slow, regardless of the searchpair()
" timeout, so let the user disable this feature if he doesn't need it
let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0)
if disable_parentheses_indenting == 1
let plindent = indent(plnum)
let plnumstart = plnum
else
" searchpair() can be slow sometimes, limit the time to 150 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
" Trick: use the non-existing "dummy" variable to break out of the loop when
" going too far back.
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0
" We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {'
" If so, ignore it here - it will be handled later.
if s:is_bb_python_func_def(parlnum)
let parlnum = 0
let plindent = indent(plnum)
let plnumstart = plnum
else
let plindent = indent(parlnum)
let plnumstart = parlnum
endif
else
let plindent = indent(plnum)
let plnumstart = plnum
endif
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0
if s:is_bb_python_func_def(p)
" Handle first non-empty line inside a BB Python task
if p == plnum
return shiftwidth()
endif
" Handle the user actually trying to close a BitBake Python task
let line = getline(a:lnum)
if line =~ '^\s*}'
return -2
endif
" Otherwise ignore the brace
let p = 0
else
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
endif
return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
endif
if plnumstart == p
return indent(plnum)
endif
return plindent
endif
endif
endif
" Get the line and remove a trailing comment.
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let max = col
else
let min = col + 1
endif
endwhile
let pline = strpart(pline, 0, min - 1)
endif
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'
return plindent + shiftwidth()
endif
" If the previous line was a stop-execution statement...
" TODO: utilize this logic to deindent when ending a bbPyDefRegion
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\|bb\.fatal\)\>'
" See if the user has already dedented
if indent(a:lnum) > indent(plnum) - shiftwidth()
" If not, recommend one dedent
return indent(plnum) - shiftwidth()
endif
" Otherwise, trust the user
return -1
endif
" If the current line begins with a keyword that lines up with "try"
if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
let lnum = a:lnum - 1
while lnum >= 1
if getline(lnum) =~ '^\s*\(try\|except\)\>'
let ind = indent(lnum)
if ind >= indent(a:lnum)
return -1 " indent is already less than this
endif
return ind " line up with previous try or except
endif
let lnum = lnum - 1
endwhile
return -1 " no matching "try"!
endif
" If the current line begins with a header keyword, dedent
if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
" Unless the previous line was a one-liner
if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
return plindent
endif
" Or the user has already dedented
if indent(a:lnum) <= plindent - shiftwidth()
return -1
endif
return plindent - shiftwidth()
endif
" When after a () construct we probably want to go back to the start line.
" a = (b
" + c)
" here
if parlnum > 0
return plindent
endif
return -1
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
""" end of stuff from indent/python.vim
let b:did_indent = 1
setlocal indentkeys+=0\"
function! BitbakeIndent(lnum)
if !has('syntax_items')
return -1
endif
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return -1
endif
let name = synIDattr(stack[0], "name")
" TODO: support different styles of indentation for assignments. For now,
" we only support like this:
" VAR = " \
" value1 \
" value2 \
" "
"
" i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
if name == "bbVarValue"
" Quote handling is tricky. kernel.bbclass has this line for instance:
" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
" Instead of trying to handle crazy cases like that, just assume that a
" double-quote on a line by itself (following an assignment) means the
" user is closing the assignment, and de-dent.
if getline(a:lnum) =~ '^\s*"$'
return 0
endif
let prevstack = synstack(a:lnum - 1, 1)
if len(prevstack) == 0
return -1
endif
let prevname = synIDattr(prevstack[0], "name")
" Only indent if there was actually a continuation character on
" the previous line, to avoid misleading indentation.
let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
let prev_continued = prevlinelastchar == "bbContinue"
" Did the previous line introduce an assignment?
if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
if prev_continued
return shiftwidth()
endif
endif
if !prev_continued
return 0
endif
" Autoindent can take it from here
return -1
endif
if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
let ret = GetBBPythonIndent(a:lnum)
" Should normally always be indented by at least one shiftwidth; but allow
" return of -1 (defer to autoindent) or -2 (force indent to 0)
if ret == 0
return shiftwidth()
elseif ret == -2
return 0
endif
return ret
endif
" TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
" Need to submit a patch upstream to Vim to provide an extension point.
" Unlike the Python indenter, the Sh indenter is way too large to copy and
" modify here.
if name == "bbShFuncRegion"
return GetShIndent()
endif
" TODO:
" + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
" types an obvious BB keyword like addhandler or addtask, or starts
" writing a shell task. Maybe too hard to implement...
return -1
endfunction

14
bitbake/contrib/vim/plugin/newbb.vim Normal file → Executable file
View File

@@ -10,7 +10,7 @@
"
" Will try to use git to find the user name and email
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || v:version < 600
finish
endif
@@ -25,7 +25,7 @@ endfun
fun! <SID>GetUserEmail()
let l:user_email = system("git config --get user.email")
if v:shell_error
return "unknown@user.org"
return "unknow@user.org"
else
return substitute(l:user_email, "\n", "", "")
endfun
@@ -41,10 +41,6 @@ fun! BBHeader()
endfun
fun! NewBBTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
@@ -52,7 +48,7 @@ fun! NewBBTemplate()
call BBHeader()
" New the bb template
put ='SUMMARY = \"\"'
put ='DESCRIPTION = \"\"'
put ='HOMEPAGE = \"\"'
put ='LICENSE = \"\"'
put ='SECTION = \"\"'
@@ -62,7 +58,7 @@ fun! NewBBTemplate()
" Go to the first place to edit
0
/^SUMMARY =/
/^DESCRIPTION =/
exec "normal 2f\""
if paste == 1
@@ -80,7 +76,7 @@ if v:progname =~ "vimdiff"
endif
augroup NewBB
au BufNewFile,BufReadPost *.bb
au BufNewFile *.bb
\ if g:bb_create_on_empty |
\ call NewBBTemplate() |
\ endif

View File

@@ -1,46 +0,0 @@
" Vim plugin file
" Purpose: Create a template for new bbappend file
" Author: Joshua Watt <JPEWhacker@gmail.com>
" Copyright: Copyright (C) 2017 Joshua Watt <JPEWhacker@gmail.com>
"
" This file is licensed under the MIT license, see COPYING.MIT in
" this source distribution for the terms.
"
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
fun! NewBBAppendTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
" New bbappend template
0 put ='FILESEXTRAPATHS:prepend := \"${THISDIR}/${PN}:\"'
2
if paste == 1
set paste
endif
endfun
if !exists("g:bb_create_on_empty")
let g:bb_create_on_empty = 1
endif
" disable in case of vimdiff
if v:progname =~ "vimdiff"
let g:bb_create_on_empty = 0
endif
augroup NewBBAppend
au BufNewFile,BufReadPost *.bbappend
\ if g:bb_create_on_empty |
\ call NewBBAppendTemplate() |
\ endif
augroup END

View File

@@ -12,7 +12,7 @@
"
" It's an entirely new type, just has specific syntax in shell and python code
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
if &compatible || v:version < 600
finish
endif
if exists("b:current_syntax")
@@ -51,15 +51,15 @@ syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ end=+'+
syn match bbExport "^export" nextgroup=bbIdentifier skipwhite
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
syn match bbIdentifier "[a-zA-Z0-9\-_\.\/\+]\+" display contained
syn match bbVarDeref "${[a-zA-Z0-9\-_:\.\/\+]\+}" contained
syn match bbVarDeref "${[a-zA-Z0-9\-_\.\/\+]\+}" contained
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)" contained nextgroup=bbVarValue
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+][${}a-zA-Z0-9\-_:\.\/\+]*\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbOverrideOperator,bbVarDeref nextgroup=bbVarEq
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+]\+\(_[${}a-zA-Z0-9\-_\.\/\+]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue
syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python
" Vars metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
" Includes and requires
syn keyword bbInclude inherit include require contained
@@ -67,17 +67,15 @@ syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref
syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
" Add taks and similar
syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained
syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
" OE Important Functions
syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
" Generic Functions
syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions
syn keyword bbOverrideOperator append prepend remove contained
syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions
" BitBake shell metadata
syn include @shell syntax/sh.vim
@@ -85,7 +83,7 @@ if exists("b:current_syntax")
unlet b:current_syntax
endif
syn keyword bbShFakeRootFlag fakeroot contained
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_:${}\-\.]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbOverrideOperator,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell
" Python value inside shell functions
@@ -93,7 +91,7 @@ syn region shDeref start=+${@+ skip=+\\$+ excludenl end=+}+ contained co
" BitBake python metadata
syn keyword bbPyFlag python contained
syn match bbPyFuncDef "^\(fakeroot\s*\)\?\(python\)\(\s\+[0-9A-Za-z_:${}\-\.]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbPyFlag,bbFunction,bbOverrideOperator,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_${}-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python
" BitBake 'def'd python functions
@@ -124,6 +122,5 @@ hi def link bbStatement Statement
hi def link bbStatementRest Identifier
hi def link bbOEFunctions Special
hi def link bbVarPyValue PreProc
hi def link bbOverrideOperator Operator
let b:current_syntax = "bb"

View File

@@ -1 +0,0 @@
_build/

View File

@@ -1,35 +1,91 @@
# Minimal makefile for Sphinx documentation
# This is a single Makefile to handle all generated BitBake documents.
# The Makefile needs to live in the documentation directory and all figures used
# in any manuals must be .PNG files and live in the individual book's figures
# directory.
#
# The Makefile has these targets:
#
# pdf: generates a PDF version of a manual.
# html: generates an HTML version of a manual.
# tarball: creates a tarball for the doc files.
# validate: validates
# clean: removes files
#
# The Makefile generates an HTML version of every document. The
# variable DOC indicates the folder name for a given manual.
#
# To build a manual, you must invoke 'make' with the DOC argument.
#
# Examples:
#
# make DOC=bitbake-user-manual
# make pdf DOC=bitbake-user-manual
#
# The first example generates the HTML version of the User Manual.
# The second example generates the PDF version of the User Manual.
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?= -W --keep-going -j auto
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(DOC),bitbake-user-manual)
XSLTOPTS = --stringparam html.stylesheet bitbake-user-manual-style.css \
--stringparam chapter.autolabel 1 \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html tarball
TARFILES = bitbake-user-manual-style.css bitbake-user-manual.html figures/bitbake-title.png
MANUALS = $(DOC)/$(DOC).html
FIGURES = figures
STYLESHEET = $(DOC)/*.css
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI = http://docbook.sourceforge.net/release/xsl/current
XSL_XHTML_URI = $(XSL_BASE_URI)/xhtml/docbook.xsl
.PHONY: help Makefile clean publish
all: $(ALLPREQ)
publish: Makefile html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
pdf:
ifeq ($(DOC),bitbake-user-manual)
@echo " "
@echo "********** Building."$(DOC)
@echo " "
cd $(DOC); ../tools/docbook-to-pdf $(DOC).xml ../template; cd ..
endif
html:
ifeq ($(DOC),bitbake-user-manual)
# See http://www.sagehill.net/docbookxsl/HtmlOutput.html
@echo " "
@echo "******** Building "$(DOC)
@echo " "
cd $(DOC); xsltproc $(XSLTOPTS) -o $(DOC).html $(DOC)-customization.xsl $(DOC).xml; cd ..
endif
tarball: html
@echo " "
@echo "******** Creating Tarball of document files"
@echo " "
cd $(DOC); tar -cvzf $(DOC).tgz $(TARFILES); cd ..
validate:
cd $(DOC); xmllint --postvalid --xinclude --noout $(DOC).xml; cd ..
publish:
@if test -f $(DOC)/$(DOC).html; \
then \
echo " "; \
echo "******** Publishing "$(DOC)".html"; \
echo " "; \
scp -r $(MANUALS) $(STYLESHEET) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
cd $(DOC); scp -r $(FIGURES) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \
else \
echo " "; \
echo $(DOC)".html missing. Generate the file first then try again."; \
echo " "; \
fi
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
rm -rf $(MANUALS); rm $(DOC)/$(DOC).tgz;

View File

@@ -8,48 +8,32 @@ Manual Organization
Folders exist for individual manuals as follows:
* bitbake-user-manual --- The BitBake User Manual
* bitbake-user-manual - The BitBake User Manual
Each folder is self-contained regarding content and figures.
If you want to find HTML versions of the BitBake manuals on the web,
go to https://www.openembedded.org/wiki/Documentation.
go to http://www.openembedded.org/wiki/Documentation.
Sphinx
======
Makefile
========
The BitBake documentation was migrated from the original DocBook
format to Sphinx based documentation for the Yocto Project 3.2
release.
The Makefile processes manual directories to create HTML, PDF,
tarballs, etc. Details on how the Makefile work are documented
inside the Makefile. See that file for more information.
Additional information related to the Sphinx migration, and guidelines
for developers willing to contribute to the BitBake documentation can
be found in the Yocto Project Documentation README file:
To build a manual, you run the make command and pass it the name
of the folder containing the manual's contents.
For example, the following command run from the documentation directory
creates an HTML and a PDF version of the BitBake User Manual.
The DOC variable specifies the manual you are making:
https://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/tree/documentation/README
$ make DOC=bitbake-user-manual
How to build the Yocto Project documentation
============================================
template
========
Contains various templates, fonts, and some old PNG files.
Sphinx is written in Python. While it might work with Python2, for
obvious reasons, we will only support building the BitBake
documentation with Python3.
Sphinx might be available in your Linux distro packages repositories,
however it is not recommend using distro packages, as they might be
old versions, especially if you are using an LTS version of your
distro. The recommended method to install Sphinx and all required
dependencies is to use the Python Package Index (pip).
To install all required packages run:
$ pip3 install sphinx sphinx_rtd_theme pyyaml
To build the documentation locally, run:
$ cd doc
$ make html
The resulting HTML index page will be _build/html/index.html, and you
can browse your own copy of the locally generated documentation with
your browser.
tools
=====
Contains a tool to convert the DocBook files to PDF format.

View File

@@ -1,14 +0,0 @@
{% extends "!breadcrumbs.html" %}
{% block breadcrumbs %}
<li>
<span class="doctype_switcher_placeholder">{{ doctype or 'single' }}</span>
<span class="version_switcher_placeholder">{{ release }}</span>
</li>
<li> &raquo;</li>
{% for doc in parents %}
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
{% endfor %}
<li>{{ title }}</li>
{% endblock %}

View File

@@ -1,9 +0,0 @@
<footer>
<hr/>
<div role="contentinfo">
<p>&copy; Copyright {{ copyright }}
<br>Last updated on {{ last_updated }} from the <a href="https://git.openembedded.org/bitbake/">bitbake</a> git repository.
</p>
</div>
</footer>

View File

@@ -1,7 +0,0 @@
{% extends "!layout.html" %}
{% block extrabody %}
<div id="outdated-warning" style="text-align: center; background-color: #FFBABA; color: #6A0E0E;">
</div>
{% endblock %}

View File

@@ -0,0 +1,29 @@
<?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="../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" />
-->
<xsl:include href="../template/permalinks.xsl"/>
<xsl:include href="../template/section.title.xsl"/>
<xsl:include href="../template/component.title.xsl"/>
<xsl:include href="../template/division.title.xsl"/>
<xsl:include href="../template/formal.object.heading.xsl"/>
<xsl:include href="../template/gloss-permalinks.xsl"/>
<xsl:param name="html.stylesheet" select="'user-manual-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
<xsl:param name="appendix.autolabel">A</xsl:param>
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
</xsl:stylesheet>

View File

@@ -1,760 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========
Execution
=========
|
The primary purpose for running BitBake is to produce some kind of
output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem. Of course, you
can execute the ``bitbake`` command with options that cause it to
execute single tasks, compile single recipe files, capture or clear
data, or simply return information about the execution environment.
This chapter describes BitBake's execution process from start to finish
when you use it to create an image. The execution process is launched
using the following command form::
$ bitbake target
For information on
the BitBake command and its options, see ":ref:`The BitBake Command
<bitbake-user-manual-command>`" section.
.. note::
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
:term:`BB_NUMBER_THREADS` variable in
your project's ``local.conf`` configuration file.
A common method to determine this value for your build host is to run
the following::
$ grep processor /proc/cpuinfo
This command returns
the number of processors, which takes into account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely shows
eight processors, which is the value you would then assign to
:term:`BB_NUMBER_THREADS`.
A possibly simpler solution is that some Linux distributions (e.g.
Debian and Ubuntu) provide the ``ncpus`` command.
Parsing the Base Configuration Metadata
=======================================
The first thing BitBake does is parse base configuration metadata. Base
configuration metadata consists of your project's ``bblayers.conf`` file
to determine what layers BitBake needs to recognize, all necessary
``layer.conf`` files (one from each layer), and ``bitbake.conf``. The
data itself is of various types:
- **Recipes:** Details about particular pieces of software.
- **Class Data:** An abstraction of common build information (e.g. how to
build a Linux kernel).
- **Configuration Data:** Machine-specific settings, policy decisions,
and so forth. Configuration data acts as the glue to bind everything
together.
The ``layer.conf`` files are used to construct key variables such as
:term:`BBPATH` and :term:`BBFILES`.
:term:`BBPATH` is used to search for configuration and class files under the
``conf`` and ``classes`` directories, respectively. :term:`BBFILES` is used
to locate both recipe and recipe append files (``.bb`` and
``.bbappend``). If there is no ``bblayers.conf`` file, it is assumed the
user has set the :term:`BBPATH` and :term:`BBFILES` directly in the environment.
Next, the ``bitbake.conf`` file is located using the :term:`BBPATH` variable
that was just constructed. The ``bitbake.conf`` file may also include
other configuration files using the ``include`` or ``require``
directives.
Prior to parsing configuration files, BitBake looks at certain
variables, including:
- :term:`BB_ENV_PASSTHROUGH`
- :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
- :term:`BB_PRESERVE_ENV`
- :term:`BB_ORIGENV`
- :term:`BITBAKE_UI`
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution. By default, BitBake cleans
the environment variables and provides tight control over the shell
execution environment. However, through the use of these first four
variables, you can apply your control regarding the environment
variables allowed to be used by BitBake in the shell during execution of
tasks. See the
":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Environment`"
section and the information about these variables in the variable
glossary for more information on how they work and on how to use them.
The base configuration metadata is global and therefore affects all
recipes and tasks that are executed.
BitBake first searches the current working directory for an optional
``conf/bblayers.conf`` configuration file. This file is expected to
contain a :term:`BBLAYERS` variable that is a
space-delimited list of 'layer' directories. Recall that if BitBake
cannot find a ``bblayers.conf`` file, then it is assumed the user has
set the :term:`BBPATH` and :term:`BBFILES` variables directly in the
environment.
For each directory (layer) in this list, a ``conf/layer.conf`` file is
located and parsed with the :term:`LAYERDIR` variable
being set to the directory where the layer was found. The idea is these
files automatically set up :term:`BBPATH` and other
variables correctly for a given build directory.
BitBake then expects to find the ``conf/bitbake.conf`` file somewhere in
the user-specified :term:`BBPATH`. That configuration file generally has
include directives to pull in any other metadata such as files specific
to the architecture, the machine, the local environment, and so forth.
Only variable definitions and include directives are allowed in BitBake
``.conf`` files. Some variables directly influence BitBake's behavior.
These variables might have been set from the environment depending on
the environment variables previously mentioned or set in the
configuration files. The ":ref:`bitbake-user-manual/bitbake-user-manual-ref-variables:Variables Glossary`"
chapter presents a full list of
variables.
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit some
standard classes. BitBake parses a class when the inherit directive
responsible for getting that class is encountered.
The ``base.bbclass`` file is always included. Other classes that are
specified in the configuration using the
:term:`INHERIT` variable are also included. BitBake
searches for class files in a ``classes`` subdirectory under the paths
in :term:`BBPATH` in the same way as configuration files.
A good way to get an idea of the configuration files and the class files
used in your execution environment is to run the following BitBake
command::
$ bitbake -e > mybb.log
Examining the top of the ``mybb.log``
shows you the many configuration files and class files used in your
execution environment.
.. note::
You need to be aware of how BitBake parses curly braces. If a recipe
uses a closing curly brace within the function and the character has
no leading spaces, BitBake produces a parsing error. If you use a
pair of curly braces in a shell function, the closing curly brace
must not be located at the start of the line without leading spaces.
Here is an example that causes BitBake to produce a parsing error::
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
Writing the recipe this way avoids the error:
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
Locating and Parsing Recipes
============================
During the configuration phase, BitBake will have set
:term:`BBFILES`. BitBake now uses it to construct a
list of recipes to parse, along with any append files (``.bbappend``) to
apply. :term:`BBFILES` is a space-separated list of available files and
supports wildcards. An example would be::
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
BitBake parses each
recipe and append file located with :term:`BBFILES` and stores the values of
various variables into the datastore.
.. note::
Append files are applied in the order they are encountered in BBFILES.
For each file, a fresh copy of the base configuration is made, then the
recipe is parsed line by line. Any inherit statements cause BitBake to
find and then parse class files (``.bbclass``) using
:term:`BBPATH` as the search path. Finally, BitBake
parses in order any append files found in :term:`BBFILES`.
One common convention is to use the recipe filename to define pieces of
metadata. For example, in ``bitbake.conf`` the recipe name and version
are used to set the variables :term:`PN` and
:term:`PV`::
PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
In this example, a recipe called "something_1.2.3.bb" would set
:term:`PN` to "something" and :term:`PV` to "1.2.3".
By the time parsing is complete for a recipe, BitBake has a list of
tasks that the recipe defines and a set of data consisting of keys and
values as well as dependency information about the tasks.
BitBake does not need all of this information. It only needs a small
subset of the information to make decisions about the recipe.
Consequently, BitBake caches the values in which it is interested and
does not store the rest of the information. Experience has shown it is
faster to re-parse the metadata than to try and write it out to the disk
and then reload it.
Where possible, subsequent BitBake commands reuse this cache of recipe
information. The validity of this cache is determined by first computing
a checksum of the base configuration data (see
:term:`BB_HASHCONFIG_IGNORE_VARS`) and
then checking if the checksum matches. If that checksum matches what is
in the cache and the recipe and class files have not changed, BitBake is
able to use the cache. BitBake then reloads the cached information about
the recipe instead of reparsing it from scratch.
Recipe file collections exist to allow the user to have multiple
repositories of ``.bb`` files that contain the same exact package. For
example, one could easily use them to make one's own local copy of an
upstream repository, but with custom modifications that one does not
want upstream. Here is an example::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"
.. note::
The layers mechanism is now the preferred method of collecting code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
.. _bb-bitbake-providers:
Providers
=========
Assuming BitBake has been instructed to execute a target and that all
the recipe files have been parsed, BitBake starts to figure out how to
build the target. BitBake looks through the :term:`PROVIDES` list for each
of the recipes. A :term:`PROVIDES` list is the list of names by which the
recipe can be known. Each recipe's :term:`PROVIDES` list is created
implicitly through the recipe's :term:`PN` variable and
explicitly through the recipe's :term:`PROVIDES`
variable, which is optional.
When a recipe uses :term:`PROVIDES`, that recipe's functionality can be
found under an alternative name or names other than the implicit :term:`PN`
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
contained the following::
PROVIDES += "fullkeyboard"
The :term:`PROVIDES`
list for this recipe becomes "keyboard", which is implicit, and
"fullkeyboard", which is explicit. Consequently, the functionality found
in ``keyboard_1.0.bb`` can be found under two different names.
.. _bb-bitbake-preferences:
Preferences
===========
The :term:`PROVIDES` list is only part of the solution for figuring out a
target's recipes. Because targets might have multiple providers, BitBake
needs to prioritize providers by determining provider preferences.
A common example in which a target has multiple providers is
"virtual/kernel", which is on the :term:`PROVIDES` list for each kernel
recipe. Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file::
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
The default :term:`PREFERRED_PROVIDER` is the provider
with the same name as the target. BitBake iterates through each target
it needs to build and resolves them and their dependencies using this
process.
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider. BitBake
defaults to the highest version of a provider. Version comparisons are
made using the same method as Debian. You can use the
:term:`PREFERRED_VERSION` variable to
specify a particular version. You can influence the order by using the
:term:`DEFAULT_PREFERENCE` variable.
By default, files have a preference of "0". Setting
:term:`DEFAULT_PREFERENCE` to "-1" makes the recipe unlikely to be used
unless it is explicitly referenced. Setting :term:`DEFAULT_PREFERENCE` to
"1" makes it likely the recipe is used. :term:`PREFERRED_VERSION` overrides
any :term:`DEFAULT_PREFERENCE` setting. :term:`DEFAULT_PREFERENCE` is often used
to mark newer and more experimental recipe versions until they have
undergone sufficient testing to be considered stable.
When there are multiple "versions" of a given recipe, BitBake defaults
to selecting the most recent version, unless otherwise specified. If the
recipe in question has a
:term:`DEFAULT_PREFERENCE` set lower than
the other recipes (default is 0), then it will not be selected. This
allows the person or persons maintaining the repository of recipe files
to specify their preference for the default selected version.
Additionally, the user can specify their preferred version.
If the first recipe is named ``a_1.1.bb``, then the
:term:`PN` variable will be set to "a", and the
:term:`PV` variable will be set to 1.1.
Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
default. However, if you define the following variable in a ``.conf``
file that BitBake parses, you can change that preference::
PREFERRED_VERSION_a = "1.1"
.. note::
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is automatically
checked out from a source code repository that is considered more
"bleeding edge" but can be selected only explicitly.
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox, ``busybox_1.22.1.bb``, but there
is also a Git-based version, ``busybox_git.bb``, which explicitly
contains the line ::
DEFAULT_PREFERENCE = "-1"
to ensure that the
numbered, stable version is always preferred unless the developer
selects otherwise.
.. _bb-bitbake-dependencies:
Dependencies
============
Each target BitBake builds consists of multiple tasks such as ``fetch``,
``unpack``, ``patch``, ``configure``, and ``compile``. For best
performance on multi-core systems, BitBake considers each task as an
independent entity with its own set of dependencies.
Dependencies are defined through several variables. You can find
information about variables BitBake uses in the
:doc:`bitbake-user-manual-ref-variables` near the end of this manual. At a
basic level, it is sufficient to know that BitBake uses the
:term:`DEPENDS` and
:term:`RDEPENDS` variables when calculating
dependencies.
For more information on how BitBake handles dependencies, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:Dependencies`
section.
.. _ref-bitbake-tasklist:
The Task List
=============
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them. The
:ref:`bitbake-user-manual/bitbake-user-manual-execution:executing tasks`
section has more information on how BitBake chooses which task to
execute next.
The build now starts with BitBake forking off threads up to the limit
set in the :term:`BB_NUMBER_THREADS`
variable. BitBake continues to fork threads as long as there are tasks
ready to run, those tasks have all their dependencies met, and the
thread threshold has not been exceeded.
It is worth noting that you can greatly speed up the build time by
properly setting the :term:`BB_NUMBER_THREADS` variable.
As each task completes, a timestamp is written to the directory
specified by the :term:`STAMP` variable. On subsequent
runs, BitBake looks in the build directory within ``tmp/stamps`` and
does not rerun tasks that are already completed unless a timestamp is
found to be invalid. Currently, invalid timestamps are only considered
on a per recipe file basis. So, for example, if the configure stamp has
a timestamp greater than the compile timestamp for a given target, then
the compile task would rerun. Running the compile task again, however,
has no effect on other providers that depend on that target.
The exact format of the stamps is partly configurable. In modern
versions of BitBake, a hash is appended to the stamp so that if the
configuration changes, the stamp becomes invalid and the task is
automatically rerun. This hash, or signature used, is governed by the
signature policy that is configured (see the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:checksums (signatures)`
section for information). It is also
possible to append extra metadata to the stamp using the
``[stamp-extra-info]`` task flag. For example, OpenEmbedded uses this
flag to make some tasks machine-specific.
.. note::
Some tasks are marked as "nostamp" tasks. No timestamp file is
created when these tasks are run. Consequently, "nostamp" tasks are
always rerun.
For more information on tasks, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:tasks` section.
Executing Tasks
===============
Tasks can be either a shell task or a Python task. For shell tasks,
BitBake writes a shell script to
``${``\ :term:`T`\ ``}/run.do_taskname.pid`` and then
executes the script. The generated shell script contains all the
exported variables, and the shell functions with all variables expanded.
Output from the shell script goes to the file
``${``\ :term:`T`\ ``}/log.do_taskname.pid``. Looking at the expanded shell functions in
the run file and the output in the log files is a useful debugging
technique.
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal. Future versions of BitBake will
write the functions to files similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
The order in which BitBake runs the tasks is controlled by its task
scheduler. It is possible to configure the scheduler and define custom
implementations for specific use cases. For more information, see these
variables that control the behavior:
- :term:`BB_SCHEDULER`
- :term:`BB_SCHEDULERS`
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 that lists the functions to run.
.. _checksums:
Checksums (Signatures)
======================
A checksum is a unique signature of a task's inputs. The signature of a
task can be used to determine if a task needs to be run. Because it is a
change in a task's inputs that triggers running the task, BitBake needs
to detect all the inputs to a given task. For shell tasks, this turns
out to be fairly easy because BitBake generates a "run" shell script for
each task and it is possible to create a checksum that gives you a good
idea of when the task's data changes.
To complicate the problem, some things should not be included in the
checksum. First, there is the actual specific build path of a given task
- the working directory. It does not matter if the working directory
changes because it should not affect the output for target packages. The
simplistic approach for excluding the working directory is to set it to
some fixed value and create the checksum for the "run" script. BitBake
goes one step better and uses the
:term:`BB_BASEHASH_IGNORE_VARS` variable
to define a list of variables that should never be included when
generating the signatures.
Another problem results from the "run" scripts containing functions that
might or might not get called. The incremental build solution contains
code that figures out dependencies between shell functions. This code is
used to prune the "run" scripts down to the minimum set, thereby
alleviating this problem and making the "run" scripts much more readable
as a bonus.
So far we have solutions for shell scripts. What about Python tasks? The
same approach applies even though these tasks are more difficult. The
process needs to figure out what variables a Python function accesses
and what functions it calls. Again, the incremental build solution
contains code that first figures out the variable and function
dependencies, and then creates a checksum for the data used as the input
to the task.
Like the working directory case, situations exist where dependencies
should be ignored. For these cases, you can instruct the build process
to ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
This example ensures that the
``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``,
even if it does reference it.
Equally, there are cases where we need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
This example explicitly
adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies. When running in debug mode (i.e. using
``-DDD``), BitBake produces output when it discovers something for which
it cannot figure out dependencies.
Thus far, this section has limited discussion to the direct inputs into
a task. Information based on direct inputs is referred to as the
"basehash" in the code. However, there is still the question of a task's
indirect inputs --- the things that were already built and present in the
build directory. The checksum (or signature) for a particular task needs
to add the hashes of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision. However, the
effect is to generate a master checksum that combines the basehash and
the hashes of the task's dependencies.
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced. Within the BitBake
configuration file, we can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes --- variables never
included in any checksum. This example uses variables from OpenEmbedded
to help illustrate the concept::
BB_BASEHASH_IGNORE_VARS ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
The previous example excludes the work directory, which is part of
``TMPDIR``.
The rules for deciding which hashes of dependent tasks to include
through dependency chains are more complex and are generally
accomplished with a Python function. The code in
``meta/lib/oe/sstatesig.py`` shows two examples of this and also
illustrates how you can insert your own policy into the system if so
desired. This file defines the basic signature generator
OpenEmbedded-Core uses: "OEBasicHash". By default, there
is a dummy "noop" signature handler enabled in BitBake. This means that
behavior is unchanged from previous versions. ``OE-Core`` uses the
"OEBasicHash" signature handler by default through this setting in the
``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
The main feature of the "OEBasicHash" :term:`BB_SIGNATURE_HANDLER` is that
it adds the task hash to the stamp files. Thanks to this, any metadata
change will change the task hash, automatically causing the task to be run
again. This removes the need to bump :term:`PR` values, and changes to
metadata automatically ripple across the build.
It is also worth noting that the end result of signature
generators is to make some dependency and hash information available to
the build. This information includes:
- ``BB_BASEHASH_task-``\ *taskname*: The base hashes for each task in the
recipe.
- ``BB_BASEHASH_``\ *filename:taskname*: The base hashes for each
dependent task.
- :term:`BB_TASKHASH`: The hash of the currently running task.
It is worth noting that BitBake's "-S" option lets you debug BitBake's
processing of signatures. The options passed to -S allow different
debugging modes to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler itself. The
simplest parameter to pass is "none", which causes a set of signature
information to be written out into ``STAMPS_DIR`` corresponding to the
targets specified. The other currently available parameter is
"printdiff", which causes BitBake to try to establish the closest
signature match it can (e.g. in the sstate cache) and then run
``bitbake-diffsigs`` over the matches to determine the stamps and delta
where these two stamp trees diverge.
.. note::
It is likely that future versions of BitBake will provide other
signature handlers triggered through additional "-S" parameters.
You can find more information on checksum metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Setscene
========
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake the
luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
BitBake needs to have reliable data indicating whether or not an
artifact is compatible. Signatures, described in the previous section,
provide an ideal way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
If an object can be reused, the problem then becomes how to replace a
given task or set of tasks with the pre-built artifact. BitBake solves
the problem with the "setscene" process.
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets. If cached
information is available, BitBake uses this information instead of
running the main tasks.
BitBake first calls the function defined by the
:term:`BB_HASHCHECK_FUNCTION` variable
with a list of tasks and corresponding hashes it wants to build. This
function is designed to be fast and returns a list of the tasks for
which it believes in can obtain artifacts.
Next, for each of the tasks that were returned as possibilities, BitBake
executes a setscene version of the task that the possible artifact
covers. Setscene versions of a task have the string "_setscene" appended
to the task name. So, for example, the task with the name ``xxx`` has a
setscene task named ``xxx_setscene``. The setscene version of the task
executes and provides the necessary artifacts returning either success
or failure.
As previously mentioned, an artifact can cover more than one task. For
example, it is pointless to obtain a compiler if you already have the
compiled binary. To handle this, BitBake calls the
:term:`BB_SETSCENE_DEPVALID` function for
each successful setscene task to know whether or not it needs to obtain
the dependencies of that task.
You can find more information on setscene metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Logging
=======
In addition to the standard command line option to control how verbose
builds are when execute, bitbake also supports user defined
configuration of the `Python
logging <https://docs.python.org/3/library/logging.html>`__ facilities
through the :term:`BB_LOGCONFIG` variable. This
variable defines a JSON or YAML `logging
configuration <https://docs.python.org/3/library/logging.config.html>`__
that will be intelligently merged into the default configuration. The
logging configuration is merged using the following rules:
- The user defined configuration will completely replace the default
configuration if top level key ``bitbake_merge`` is set to the value
``False``. In this case, all other rules are ignored.
- The user configuration must have a top level ``version`` which must
match the value of the default configuration.
- Any keys defined in the ``handlers``, ``formatters``, or ``filters``,
will be merged into the same section in the default configuration,
with the user specified keys taking replacing a default one if there
is a conflict. In practice, this means that if both the default
configuration and user configuration specify a handler named
``myhandler``, the user defined one will replace the default. To
prevent the user from inadvertently replacing a default handler,
formatter, or filter, all of the default ones are named with a prefix
of "``BitBake.``"
- If a logger is defined by the user with the key ``bitbake_merge`` set
to ``False``, that logger will be completely replaced by user
configuration. In this case, no other rules will apply to that
logger.
- All user defined ``filter`` and ``handlers`` properties for a given
logger will be merged with corresponding properties from the default
logger. For example, if the user configuration adds a filter called
``myFilter`` to the ``BitBake.SigGen``, and the default configuration
adds a filter called ``BitBake.defaultFilter``, both filters will be
applied to the logger
As a first example, you can create a ``hashequiv.json`` user logging
configuration file to log all Hash Equivalence related messages of ``VERBOSE``
or higher priority to a file called ``hashequiv.log``::
{
"version": 1,
"handlers": {
"autobuilderlog": {
"class": "logging.FileHandler",
"formatter": "logfileFormatter",
"level": "DEBUG",
"filename": "hashequiv.log",
"mode": "w"
}
},
"formatters": {
"logfileFormatter": {
"format": "%(name)s: %(levelname)s: %(message)s"
}
},
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
}
}
}
Then set the :term:`BB_LOGCONFIG` variable in ``conf/local.conf``::
BB_LOGCONFIG = "hashequiv.json"
Another example is this ``warn.json`` file to log all ``WARNING`` and
higher priority messages to a ``warn.log`` file::
{
"version": 1,
"formatters": {
"warnlogFormatter": {
"()": "bb.msg.BBLogFormatter",
"format": "%(levelname)s: %(message)s"
}
},
"handlers": {
"warnlog": {
"class": "logging.FileHandler",
"formatter": "warnlogFormatter",
"level": "WARNING",
"filename": "warn.log"
}
},
"loggers": {
"BitBake": {
"handlers": ["warnlog"]
}
},
"@disable_existing_loggers": false
}
Note that BitBake's helper classes for structured logging are implemented in
``lib/bb/msg.py``.

View File

@@ -0,0 +1,932 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id="bitbake-user-manual-execution">
<title>Execution</title>
<para>
The primary purpose for running BitBake is to produce some kind
of output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem.
Of course, you can execute the <filename>bitbake</filename>
command with options that cause it to execute single tasks,
compile single recipe files, capture or clear data, or simply
return information about the execution environment.
</para>
<para>
This chapter describes BitBake's execution process from start
to finish when you use it to create an image.
The execution process is launched using the following command
form:
<literallayout class='monospaced'>
$ bitbake <replaceable>target</replaceable>
</literallayout>
For information on the BitBake command and its options,
see
"<link linkend='bitbake-user-manual-command'>The BitBake Command</link>"
section.
<note>
<para>
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable in your project's <filename>local.conf</filename>
configuration file.
</para>
<para>
A common method to determine this value for your build host is to run
the following:
<literallayout class='monospaced'>
$ grep processor /proc/cpuinfo
</literallayout>
This command returns the number of processors, which takes into
account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely
shows eight processors, which is the value you would then assign to
<filename>BB_NUMBER_THREADS</filename>.
</para>
<para>
A possibly simpler solution is that some Linux distributions
(e.g. Debian and Ubuntu) provide the <filename>ncpus</filename> command.
</para>
</note>
</para>
<section id='parsing-the-base-configuration-metadata'>
<title>Parsing the Base Configuration Metadata</title>
<para>
The first thing BitBake does is parse base configuration
metadata.
Base configuration metadata consists of your project's
<filename>bblayers.conf</filename> file to determine what
layers BitBake needs to recognize, all necessary
<filename>layer.conf</filename> files (one from each layer),
and <filename>bitbake.conf</filename>.
The data itself is of various types:
<itemizedlist>
<listitem><para><emphasis>Recipes:</emphasis>
Details about particular pieces of software.
</para></listitem>
<listitem><para><emphasis>Class Data:</emphasis>
An abstraction of common build information
(e.g. how to build a Linux kernel).
</para></listitem>
<listitem><para><emphasis>Configuration Data:</emphasis>
Machine-specific settings, policy decisions,
and so forth.
Configuration data acts as the glue to bind everything
together.</para></listitem>
</itemizedlist>
</para>
<para>
The <filename>layer.conf</filename> files are used to
construct key variables such as
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
and
<link linkend='var-BBFILES'><filename>BBFILES</filename></link>.
<filename>BBPATH</filename> is used to search for
configuration and class files under the
<filename>conf</filename> and <filename>classes</filename>
directories, respectively.
<filename>BBFILES</filename> is used to locate both recipe
and recipe append files
(<filename>.bb</filename> and <filename>.bbappend</filename>).
If there is no <filename>bblayers.conf</filename> file,
it is assumed the user has set the <filename>BBPATH</filename>
and <filename>BBFILES</filename> directly in the environment.
</para>
<para>
Next, the <filename>bitbake.conf</filename> file is located
using the <filename>BBPATH</filename> variable that was
just constructed.
The <filename>bitbake.conf</filename> file may also include other
configuration files using the
<filename>include</filename> or
<filename>require</filename> directives.
</para>
<para>
Prior to parsing configuration files, Bitbake looks
at certain variables, including:
<itemizedlist>
<listitem><para>
<link linkend='var-BB_ENV_WHITELIST'><filename>BB_ENV_WHITELIST</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_ENV_EXTRAWHITE'><filename>BB_ENV_EXTRAWHITE</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_PRESERVE_ENV'><filename>BB_PRESERVE_ENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_ORIGENV'><filename>BB_ORIGENV</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BITBAKE_UI'><filename>BITBAKE_UI</filename></link>
</para></listitem>
</itemizedlist>
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution.
By default, BitBake cleans the environment variables and provides tight
control over the shell execution environment.
However, through the use of these first four variables, you can
apply your control regarding the
environment variables allowed to be used by BitBake in the shell
during execution of tasks.
See the
"<link linkend='passing-information-into-the-build-task-environment'>Passing Information Into the Build Task Environment</link>"
section and the information about these variables in the
variable glossary for more information on how they work and
on how to use them.
</para>
<para>
The base configuration metadata is global
and therefore affects all recipes and tasks that are executed.
</para>
<para>
BitBake first searches the current working directory for an
optional <filename>conf/bblayers.conf</filename> configuration file.
This file is expected to contain a
<link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link>
variable that is a space-delimited list of 'layer' directories.
Recall that if BitBake cannot find a <filename>bblayers.conf</filename>
file, then it is assumed the user has set the <filename>BBPATH</filename>
and <filename>BBFILES</filename> variables directly in the environment.
</para>
<para>
For each directory (layer) in this list, a <filename>conf/layer.conf</filename>
file is located and parsed with the
<link linkend='var-LAYERDIR'><filename>LAYERDIR</filename></link>
variable being set to the directory where the layer was found.
The idea is these files automatically set up
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
and other variables correctly for a given build directory.
</para>
<para>
BitBake then expects to find the <filename>conf/bitbake.conf</filename>
file somewhere in the user-specified <filename>BBPATH</filename>.
That configuration file generally has include directives to pull
in any other metadata such as files specific to the architecture,
the machine, the local environment, and so forth.
</para>
<para>
Only variable definitions and include directives are allowed
in BitBake <filename>.conf</filename> files.
Some variables directly influence BitBake's behavior.
These variables might have been set from the environment
depending on the environment variables previously
mentioned or set in the configuration files.
The
"<link linkend='ref-variables-glos'>Variables Glossary</link>"
chapter presents a full list of variables.
</para>
<para>
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit
some standard classes.
BitBake parses a class when the inherit directive responsible
for getting that class is encountered.
</para>
<para>
The <filename>base.bbclass</filename> file is always included.
Other classes that are specified in the configuration using the
<link linkend='var-INHERIT'><filename>INHERIT</filename></link>
variable are also included.
BitBake searches for class files in a
<filename>classes</filename> subdirectory under
the paths in <filename>BBPATH</filename> in the same way as
configuration files.
</para>
<para>
A good way to get an idea of the configuration files and
the class files used in your execution environment is to
run the following BitBake command:
<literallayout class='monospaced'>
$ bitbake -e > mybb.log
</literallayout>
Examining the top of the <filename>mybb.log</filename>
shows you the many configuration files and class files
used in your execution environment.
</para>
<note>
<para>
You need to be aware of how BitBake parses curly braces.
If a recipe uses a closing curly brace within the function and
the character has no leading spaces, BitBake produces a parsing
error.
If you use a pair of curly braces in a shell function, the
closing curly brace must not be located at the start of the line
without leading spaces.
</para>
<para>
Here is an example that causes BitBake to produce a parsing
error:
<literallayout class='monospaced'>
fakeroot create_shar() {
cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
</literallayout>
Writing the recipe this way avoids the error:
<literallayout class='monospaced'>
fakeroot create_shar() {
cat &lt;&lt; "EOF" &gt; ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
######The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
</literallayout>
</para>
</note>
</section>
<section id='locating-and-parsing-recipes'>
<title>Locating and Parsing Recipes</title>
<para>
During the configuration phase, BitBake will have set
<link linkend='var-BBFILES'><filename>BBFILES</filename></link>.
BitBake now uses it to construct a list of recipes to parse,
along with any append files (<filename>.bbappend</filename>)
to apply.
<filename>BBFILES</filename> is a space-separated list of
available files and supports wildcards.
An example would be:
<literallayout class='monospaced'>
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
</literallayout>
BitBake parses each recipe and append file located
with <filename>BBFILES</filename> and stores the values of
various variables into the datastore.
<note>
Append files are applied in the order they are encountered in
<filename>BBFILES</filename>.
</note>
For each file, a fresh copy of the base configuration is
made, then the recipe is parsed line by line.
Any inherit statements cause BitBake to find and
then parse class files (<filename>.bbclass</filename>)
using
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
as the search path.
Finally, BitBake parses in order any append files found in
<filename>BBFILES</filename>.
</para>
<para>
One common convention is to use the recipe filename to define
pieces of metadata.
For example, in <filename>bitbake.conf</filename> the recipe
name and version are used to set the variables
<link linkend='var-PN'><filename>PN</filename></link> and
<link linkend='var-PV'><filename>PV</filename></link>:
<literallayout class='monospaced'>
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>
In this example, a recipe called "something_1.2.3.bb" would set
<filename>PN</filename> to "something" and
<filename>PV</filename> to "1.2.3".
</para>
<para>
By the time parsing is complete for a recipe, BitBake
has a list of tasks that the recipe defines and a set of
data consisting of keys and values as well as
dependency information about the tasks.
</para>
<para>
BitBake does not need all of this information.
It only needs a small subset of the information to make
decisions about the recipe.
Consequently, BitBake caches the values in which it is
interested and does not store the rest of the information.
Experience has shown it is faster to re-parse the metadata than to
try and write it out to the disk and then reload it.
</para>
<para>
Where possible, subsequent BitBake commands reuse this cache of
recipe information.
The validity of this cache is determined by first computing a
checksum of the base configuration data (see
<link linkend='var-BB_HASHCONFIG_WHITELIST'><filename>BB_HASHCONFIG_WHITELIST</filename></link>)
and then checking if the checksum matches.
If that checksum matches what is in the cache and the recipe
and class files have not changed, Bitbake is able to use
the cache.
BitBake then reloads the cached information about the recipe
instead of reparsing it from scratch.
</para>
<para>
Recipe file collections exist to allow the user to
have multiple repositories of
<filename>.bb</filename> files that contain the same
exact package.
For example, one could easily use them to make one's
own local copy of an upstream repository, but with
custom modifications that one does not want upstream.
Here is an example:
<literallayout class='monospaced'>
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"
</literallayout>
<note>
The layers mechanism is now the preferred method of collecting
code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
</note>
</para>
</section>
<section id='bb-bitbake-providers'>
<title>Providers</title>
<para>
Assuming BitBake has been instructed to execute a target
and that all the recipe files have been parsed, BitBake
starts to figure out how to build the target.
BitBake looks through the <filename>PROVIDES</filename> list
for each of the recipes.
A <filename>PROVIDES</filename> list is the list of names by which
the recipe can be known.
Each recipe's <filename>PROVIDES</filename> list is created
implicitly through the recipe's
<link linkend='var-PN'><filename>PN</filename></link> variable
and explicitly through the recipe's
<link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
variable, which is optional.
</para>
<para>
When a recipe uses <filename>PROVIDES</filename>, that recipe's
functionality can be found under an alternative name or names other
than the implicit <filename>PN</filename> name.
As an example, suppose a recipe named <filename>keyboard_1.0.bb</filename>
contained the following:
<literallayout class='monospaced'>
PROVIDES += "fullkeyboard"
</literallayout>
The <filename>PROVIDES</filename> list for this recipe becomes
"keyboard", which is implicit, and "fullkeyboard", which is explicit.
Consequently, the functionality found in
<filename>keyboard_1.0.bb</filename> can be found under two
different names.
</para>
</section>
<section id='bb-bitbake-preferences'>
<title>Preferences</title>
<para>
The <filename>PROVIDES</filename> list is only part of the solution
for figuring out a target's recipes.
Because targets might have multiple providers, BitBake needs
to prioritize providers by determining provider preferences.
</para>
<para>
A common example in which a target has multiple providers
is "virtual/kernel", which is on the
<filename>PROVIDES</filename> list for each kernel recipe.
Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file:
<literallayout class='monospaced'>
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
</literallayout>
The default
<link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
is the provider with the same name as the target.
Bitbake iterates through each target it needs to build and
resolves them and their dependencies using this process.
</para>
<para>
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider.
BitBake defaults to the highest version of a provider.
Version comparisons are made using the same method as Debian.
You can use the
<link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
variable to specify a particular version.
You can influence the order by using the
<link linkend='var-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link>
variable.
</para>
<para>
By default, files have a preference of "0".
Setting <filename>DEFAULT_PREFERENCE</filename> to "-1" makes the
recipe unlikely to be used unless it is explicitly referenced.
Setting <filename>DEFAULT_PREFERENCE</filename> to "1" makes it
likely the recipe is used.
<filename>PREFERRED_VERSION</filename> overrides any
<filename>DEFAULT_PREFERENCE</filename> setting.
<filename>DEFAULT_PREFERENCE</filename> is often used to mark newer
and more experimental recipe versions until they have undergone
sufficient testing to be considered stable.
</para>
<para>
When there are multiple “versions” of a given recipe,
BitBake defaults to selecting the most recent
version, unless otherwise specified.
If the recipe in question has a
<link linkend='var-DEFAULT_PREFERENCE'><filename>DEFAULT_PREFERENCE</filename></link>
set lower than the other recipes (default is 0), then
it will not be selected.
This allows the person or persons maintaining
the repository of recipe files to specify
their preference for the default selected version.
Additionally, the user can specify their preferred version.
</para>
<para>
If the first recipe is named <filename>a_1.1.bb</filename>, then the
<link linkend='var-PN'><filename>PN</filename></link> variable
will be set to “a”, and the
<link linkend='var-PV'><filename>PV</filename></link>
variable will be set to 1.1.
</para>
<para>
Thus, if a recipe named <filename>a_1.2.bb</filename> exists, BitBake
will choose 1.2 by default.
However, if you define the following variable in a
<filename>.conf</filename> file that BitBake parses, you
can change that preference:
<literallayout class='monospaced'>
PREFERRED_VERSION_a = "1.1"
</literallayout>
</para>
<note>
<para>
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is
automatically checked out from a source code repository that
is considered more "bleeding edge" but can be selected only
explicitly.
</para>
<para>
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox,
<filename>busybox_1.22.1.bb</filename>,
but there is also a Git-based version,
<filename>busybox_git.bb</filename>, which explicitly contains the line
<literallayout class='monospaced'>
DEFAULT_PREFERENCE = "-1"
</literallayout>
to ensure that the numbered, stable version is always preferred
unless the developer selects otherwise.
</para>
</note>
</section>
<section id='bb-bitbake-dependencies'>
<title>Dependencies</title>
<para>
Each target BitBake builds consists of multiple tasks such as
<filename>fetch</filename>, <filename>unpack</filename>,
<filename>patch</filename>, <filename>configure</filename>,
and <filename>compile</filename>.
For best performance on multi-core systems, BitBake considers each
task as an independent
entity with its own set of dependencies.
</para>
<para>
Dependencies are defined through several variables.
You can find information about variables BitBake uses in
the <link linkend='ref-variables-glos'>Variables Glossary</link>
near the end of this manual.
At a basic level, it is sufficient to know that BitBake uses the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link> and
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link> variables when
calculating dependencies.
</para>
<para>
For more information on how BitBake handles dependencies, see the
"<link linkend='dependencies'>Dependencies</link>" section.
</para>
</section>
<section id='ref-bitbake-tasklist'>
<title>The Task List</title>
<para>
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them.
The
"<link linkend='executing-tasks'>Executing Tasks</link>" section has more
information on how BitBake chooses which task to execute next.
</para>
<para>
The build now starts with BitBake forking off threads up to the limit set in the
<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
variable.
BitBake continues to fork threads as long as there are tasks ready to run,
those tasks have all their dependencies met, and the thread threshold has not been
exceeded.
</para>
<para>
It is worth noting that you can greatly speed up the build time by properly setting
the <filename>BB_NUMBER_THREADS</filename> variable.
</para>
<para>
As each task completes, a timestamp is written to the directory specified by the
<link linkend='var-STAMP'><filename>STAMP</filename></link> variable.
On subsequent runs, BitBake looks in the build directory within
<filename>tmp/stamps</filename> and does not rerun
tasks that are already completed unless a timestamp is found to be invalid.
Currently, invalid timestamps are only considered on a per
recipe file basis.
So, for example, if the configure stamp has a timestamp greater than the
compile timestamp for a given target, then the compile task would rerun.
Running the compile task again, however, has no effect on other providers
that depend on that target.
</para>
<para>
The exact format of the stamps is partly configurable.
In modern versions of BitBake, a hash is appended to the
stamp so that if the configuration changes, the stamp becomes
invalid and the task is automatically rerun.
This hash, or signature used, is governed by the signature policy
that is configured (see the
"<link linkend='checksums'>Checksums (Signatures)</link>"
section for information).
It is also possible to append extra metadata to the stamp using
the <filename>[stamp-extra-info]</filename> task flag.
For example, OpenEmbedded uses this flag to make some tasks machine-specific.
</para>
<note>
Some tasks are marked as "nostamp" tasks.
No timestamp file is created when these tasks are run.
Consequently, "nostamp" tasks are always rerun.
</note>
<para>
For more information on tasks, see the
"<link linkend='tasks'>Tasks</link>" section.
</para>
</section>
<section id='executing-tasks'>
<title>Executing Tasks</title>
<para>
Tasks can be either a shell task or a Python task.
For shell tasks, BitBake writes a shell script to
<filename>${</filename><link linkend='var-T'><filename>T</filename></link><filename>}/run.do_taskname.pid</filename>
and then executes the script.
The generated shell script contains all the exported variables,
and the shell functions with all variables expanded.
Output from the shell script goes to the file
<filename>${T}/log.do_taskname.pid</filename>.
Looking at the expanded shell functions in the run file and
the output in the log files is a useful debugging technique.
</para>
<para>
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal.
Future versions of BitBake will write the functions to files
similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
</para>
<para>
The order in which BitBake runs the tasks is controlled by its
task scheduler.
It is possible to configure the scheduler and define custom
implementations for specific use cases.
For more information, see these variables that control the
behavior:
<itemizedlist>
<listitem><para>
<link linkend='var-BB_SCHEDULER'><filename>BB_SCHEDULER</filename></link>
</para></listitem>
<listitem><para>
<link linkend='var-BB_SCHEDULERS'><filename>BB_SCHEDULERS</filename></link>
</para></listitem>
</itemizedlist>
It is possible to have functions run before and after a task's main
function.
This is done using the <filename>[prefuncs]</filename>
and <filename>[postfuncs]</filename> flags of the task
that lists the functions to run.
</para>
</section>
<section id='checksums'>
<title>Checksums (Signatures)</title>
<para>
A checksum is a unique signature of a task's inputs.
The signature of a task can be used to determine if a task
needs to be run.
Because it is a change in a task's inputs that triggers running
the task, BitBake needs to detect all the inputs to a given task.
For shell tasks, this turns out to be fairly easy because
BitBake generates a "run" shell script for each task and
it is possible to create a checksum that gives you a good idea of when
the task's data changes.
</para>
<para>
To complicate the problem, some things should not be included in
the checksum.
First, there is the actual specific build path of a given task -
the working directory.
It does not matter if the working directory changes because it should not
affect the output for target packages.
The simplistic approach for excluding the working directory is to set
it to some fixed value and create the checksum for the "run" script.
BitBake goes one step better and uses the
<link linkend='var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></link>
variable to define a list of variables that should never be included
when generating the signatures.
</para>
<para>
Another problem results from the "run" scripts containing functions that
might or might not get called.
The incremental build solution contains code that figures out dependencies
between shell functions.
This code is used to prune the "run" scripts down to the minimum set,
thereby alleviating this problem and making the "run" scripts much more
readable as a bonus.
</para>
<para>
So far we have solutions for shell scripts.
What about Python tasks?
The same approach applies even though these tasks are more difficult.
The process needs to figure out what variables a Python function accesses
and what functions it calls.
Again, the incremental build solution contains code that first figures out
the variable and function dependencies, and then creates a checksum for the data
used as the input to the task.
</para>
<para>
Like the working directory case, situations exist where dependencies
should be ignored.
For these cases, you can instruct the build process to ignore a dependency
by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
</literallayout>
This example ensures that the <filename>PACKAGE_ARCHS</filename> variable does not
depend on the value of <filename>MACHINE</filename>, even if it does reference it.
</para>
<para>
Equally, there are cases where we need to add dependencies BitBake
is not able to find.
You can accomplish this by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardeps] = "MACHINE"
</literallayout>
This example explicitly adds the <filename>MACHINE</filename> variable as a
dependency for <filename>PACKAGE_ARCHS</filename>.
</para>
<para>
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies.
When running in debug mode (i.e. using <filename>-DDD</filename>), BitBake
produces output when it discovers something for which it cannot figure out
dependencies.
</para>
<para>
Thus far, this section has limited discussion to the direct inputs into a task.
Information based on direct inputs is referred to as the "basehash" in the
code.
However, there is still the question of a task's indirect inputs - the
things that were already built and present in the build directory.
The checksum (or signature) for a particular task needs to add the hashes
of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision.
However, the effect is to generate a master checksum that combines the basehash
and the hashes of the task's dependencies.
</para>
<para>
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced.
Within the BitBake configuration file, we can give BitBake some extra information
to help it construct the basehash.
The following statement effectively results in a list of global variable
dependency excludes - variables never included in any checksum.
This example uses variables from OpenEmbedded to help illustrate
the concept:
<literallayout class='monospaced'>
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH 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 \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
</literallayout>
The previous example excludes the work directory, which is part of
<filename>TMPDIR</filename>.
</para>
<para>
The rules for deciding which hashes of dependent tasks to include through
dependency chains are more complex and are generally accomplished with a
Python function.
The code in <filename>meta/lib/oe/sstatesig.py</filename> shows two examples
of this and also illustrates how you can insert your own policy into the system
if so desired.
This file defines the two basic signature generators OpenEmbedded Core
uses: "OEBasic" and "OEBasicHash".
By default, there is a dummy "noop" signature handler enabled in BitBake.
This means that behavior is unchanged from previous versions.
<filename>OE-Core</filename> uses the "OEBasicHash" signature handler by default
through this setting in the <filename>bitbake.conf</filename> file:
<literallayout class='monospaced'>
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
</literallayout>
The "OEBasicHash" <filename>BB_SIGNATURE_HANDLER</filename> is the same as the
"OEBasic" version but adds the task hash to the stamp files.
This results in any metadata change that changes the task hash, automatically
causing the task to be run again.
This removes the need to bump
<link linkend='var-PR'><filename>PR</filename></link>
values, and changes to metadata automatically ripple across the build.
</para>
<para>
It is also worth noting that the end result of these signature generators is to
make some dependency and hash information available to the build.
This information includes:
<itemizedlist>
<listitem><para><filename>BB_BASEHASH_task-</filename><replaceable>taskname</replaceable>:
The base hashes for each task in the recipe.
</para></listitem>
<listitem><para><filename>BB_BASEHASH_</filename><replaceable>filename</replaceable><filename>:</filename><replaceable>taskname</replaceable>:
The base hashes for each dependent task.
</para></listitem>
<listitem><para><filename>BBHASHDEPS_</filename><replaceable>filename</replaceable><filename>:</filename><replaceable>taskname</replaceable>:
The task dependencies for each task.
</para></listitem>
<listitem><para><filename>BB_TASKHASH</filename>:
The hash of the currently running task.
</para></listitem>
</itemizedlist>
</para>
<para>
It is worth noting that BitBake's "-S" option lets you
debug Bitbake's processing of signatures.
The options passed to -S allow different debugging modes
to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler
itself.
The simplest parameter to pass is "none", which causes a
set of signature information to be written out into
<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
signature match it can (e.g. in the sstate cache) and then
run <filename>bitbake-diffsigs</filename> over the matches
to determine the stamps and delta where these two
stamp trees diverge.
<note>
It is likely that future versions of BitBake will
provide other signature handlers triggered through
additional "-S" parameters.
</note>
</para>
<para>
You can find more information on checksum metadata in the
"<link linkend='task-checksums-and-setscene'>Task Checksums and Setscene</link>"
section.
</para>
</section>
<section id='setscene'>
<title>Setscene</title>
<para>
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake
the luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
</para>
<para>
BitBake needs to have reliable data indicating whether or not an
artifact is compatible.
Signatures, described in the previous section, provide an ideal
way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
</para>
<para>
If an object can be reused, the problem then becomes how to
replace a given task or set of tasks with the pre-built artifact.
BitBake solves the problem with the "setscene" process.
</para>
<para>
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets.
If cached information is available, BitBake uses this information instead of
running the main tasks.
</para>
<para>
BitBake first calls the function defined by the
<link linkend='var-BB_HASHCHECK_FUNCTION'><filename>BB_HASHCHECK_FUNCTION</filename></link>
variable with a list of tasks and corresponding
hashes it wants to build.
This function is designed to be fast and returns a list
of the tasks for which it believes in can obtain artifacts.
</para>
<para>
Next, for each of the tasks that were returned as possibilities,
BitBake executes a setscene version of the task that the possible
artifact covers.
Setscene versions of a task have the string "_setscene" appended to the
task name.
So, for example, the task with the name <filename>xxx</filename> has
a setscene task named <filename>xxx_setscene</filename>.
The setscene version of the task executes and provides the necessary
artifacts returning either success or failure.
</para>
<para>
As previously mentioned, an artifact can cover more than one task.
For example, it is pointless to obtain a compiler if you
already have the compiled binary.
To handle this, BitBake calls the
<link linkend='var-BB_SETSCENE_DEPVALID'><filename>BB_SETSCENE_DEPVALID</filename></link>
function for each successful setscene task to know whether or not it needs
to obtain the dependencies of that task.
</para>
<para>
Finally, after all the setscene tasks have executed, BitBake calls the
function listed in
<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
of the setscene result.
</para>
<para>
You can find more information on setscene metadata in the
"<link linkend='task-checksums-and-setscene'>Task Checksums and Setscene</link>"
section.
</para>
</section>
</chapter>

View File

@@ -1,851 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=====================
File Download Support
=====================
|
BitBake's fetch module is a standalone piece of library code that deals
with the intricacies of downloading source code and files from remote
systems. Fetching source code is one of the cornerstones of building
software. As such, this module forms an important part of BitBake.
The current fetch module is called "fetch2" and refers to the fact that
it is the second major version of the API. The original version is
obsolete and has been removed from the codebase. Thus, in all cases,
"fetch" refers to "fetch2" in this manual.
The Download (Fetch)
====================
BitBake takes several steps when fetching source code or files. The
fetcher codebase deals with two distinct processes in order: obtaining
the files from somewhere (cached or otherwise) and then unpacking those
files into a specific location and perhaps in a specific way. Getting
and unpacking the files is often optionally followed by patching.
Patching, however, is not covered by this module.
The code to execute the first part of this process, a fetch, looks
something like the following::
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
This code sets up an instance of the fetch class. The instance uses a
space-separated list of URLs from the :term:`SRC_URI`
variable and then calls the ``download`` method to download the files.
The instantiation of the fetch class is usually followed by::
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
This code unpacks the downloaded files to the specified by ``WORKDIR``.
.. note::
For convenience, the naming in these examples matches the variables
used by OpenEmbedded. If you want to see the above code in action,
examine the OpenEmbedded class file ``base.bbclass``
.
The :term:`SRC_URI` and ``WORKDIR`` variables are not hardcoded into the
fetcher, since those fetcher methods can be (and are) called with
different variable names. In OpenEmbedded for example, the shared state
(sstate) code uses the fetch module to fetch the sstate files.
When the ``download()`` method is called, BitBake tries to resolve the
URLs by looking for source files in a specific search order:
- *Pre-mirror Sites:* BitBake first uses pre-mirrors to try and find
source files. These locations are defined using the
:term:`PREMIRRORS` variable.
- *Source URI:* If pre-mirrors fail, BitBake uses the original URL (e.g
from :term:`SRC_URI`).
- *Mirror Sites:* If fetch failures occur, BitBake next uses mirror
locations as defined by the :term:`MIRRORS` variable.
For each URL passed to the fetcher, the fetcher calls the submodule that
handles that particular URL type. This behavior can be the source of
some confusion when you are providing URLs for the :term:`SRC_URI` variable.
Consider the following two URLs::
https://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
In the former case, the URL is passed to the ``wget`` fetcher, which does not
understand "git". Therefore, the latter case is the correct form since the Git
fetcher does know how to use HTTP as a transport.
Here are some examples that show commonly used mirror definitions::
PREMIRRORS ?= "\
bzr://.*/.\* http://somemirror.org/sources/ \
cvs://.*/.\* http://somemirror.org/sources/ \
git://.*/.\* http://somemirror.org/sources/ \
hg://.*/.\* http://somemirror.org/sources/ \
osc://.*/.\* http://somemirror.org/sources/ \
p4://.*/.\* http://somemirror.org/sources/ \
svn://.*/.\* http://somemirror.org/sources/"
MIRRORS =+ "\
ftp://.*/.\* http://somemirror.org/sources/ \
http://.*/.\* http://somemirror.org/sources/ \
https://.*/.\* http://somemirror.org/sources/"
It is useful to note that BitBake
supports cross-URLs. It is possible to mirror a Git repository on an
HTTP server as a tarball. This is what the ``git://`` mapping in the
previous example does.
Since network accesses are slow, BitBake maintains a cache of files
downloaded from the network. Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download directory,
which is specified by the :term:`DL_DIR` variable.
File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the :term:`SRC_URI` variable with the
appropriate varflags as follows::
SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"
You can also specify the checksums as
parameters on the :term:`SRC_URI` as shown below::
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
If multiple URIs exist, you can specify the checksums either directly as
in the previous example, or you can name the URLs. The following syntax
shows how you name the URIs::
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
After a file has been downloaded and
has had its checksum checked, a ".done" stamp is placed in :term:`DL_DIR`.
BitBake uses this stamp during subsequent builds to avoid downloading or
comparing a checksum for the file again.
.. note::
It is assumed that local storage is safe from data corruption. If
this were not the case, there would be bigger issues to worry about.
If :term:`BB_STRICT_CHECKSUM` is set, any
download without a checksum triggers an error message. The
:term:`BB_NO_NETWORK` variable can be used to
make any attempted network access a fatal error, which is useful for
checking that mirrors are complete as well as other things.
If :term:`BB_CHECK_SSL_CERTS` is set to ``0`` then SSL certificate checking will
be disabled. This variable defaults to ``1`` so SSL certificates are normally
checked.
.. _bb-the-unpack:
The Unpack
==========
The unpack process usually immediately follows the download. For all
URLs except Git URLs, BitBake uses the common ``unpack`` method.
A number of parameters exist that you can specify within the URL to
govern the behavior of the unpack stage:
- *unpack:* Controls whether the URL components are unpacked. If set to
"1", which is the default, the components are unpacked. If set to
"0", the unpack stage leaves the file alone. This parameter is useful
when you want an archive to be copied in and not be unpacked.
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
- *striplevel:* Strip specified number of leading components (levels)
from file names on extraction
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
The unpack call automatically decompresses and extracts files with ".Z",
".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm". ".srpm", ".deb" and
".bz2" extensions as well as various combinations of tarball extensions.
As mentioned, the Git fetcher has its own unpack method that is
optimized to work with Git trees. Basically, this method works by
cloning the tree into the final directory. The process is completed
using references so that there is only one central copy of the Git
metadata needed.
.. _bb-fetchers:
Fetchers
========
As mentioned earlier, the URL prefix determines which fetcher submodule
BitBake uses. Each submodule can support different URL parameters, which
are described in the following sections.
.. _local-file-fetcher:
Local file fetcher (``file://``)
--------------------------------
This submodule handles URLs that begin with ``file://``. The filename
you specify within the URL can be either an absolute or relative path to
a file. If the filename is relative, the contents of the
:term:`FILESPATH` variable is used in the same way
``PATH`` is used to find executables. If the file cannot be found, it is
assumed that it is available in :term:`DL_DIR` by the
time the ``download()`` method is called.
If you specify a directory, the entire directory is unpacked.
Here are a couple of example URLs, the first relative and the second
absolute::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
.. _http-ftp-fetcher:
HTTP/FTP wget fetcher (``http://``, ``ftp://``, ``https://``)
-------------------------------------------------------------
This fetcher obtains files from web and FTP servers. Internally, the
fetcher uses the wget utility.
The executable and parameters used are specified by the
``FETCHCMD_wget`` variable, which defaults to sensible values. The
fetcher supports a parameter "downloadfilename" that allows the name of
the downloaded file to be specified. Specifying the name of the
downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
If a username and password are specified in the ``SRC_URI``, a Basic
Authorization header will be added to each request, including across redirects.
To instead limit the Authorization header to the first request, add
"redirectauth=0" to the list of parameters.
Some example URLs are as follows::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
.. note::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
Such URLs should should be modified by replacing semi-colons with '&'
characters::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
In most cases this should work. Treating semi-colons and '&' in
queries identically is recommended by the World Wide Web Consortium
(W3C). Note that due to the nature of the URL, you may have to
specify the name of the downloaded file as well::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
.. _cvs-fetcher:
CVS fetcher (``(cvs://``)
-------------------------
This submodule handles checking out files from the CVS version control
system. You can configure it using a number of different variables:
- :term:`FETCHCMD_cvs <FETCHCMD>`: The name of the executable to use when running
the ``cvs`` command. This name is usually "cvs".
- :term:`SRCDATE`: The date to use when fetching the CVS source code. A
special value of "now" causes the checkout to be updated on every
build.
- :term:`CVSDIR`: Specifies where a temporary
checkout is saved. The location is often ``DL_DIR/cvs``.
- CVS_PROXY_HOST: The name to use as a "proxy=" parameter to the
``cvs`` command.
- CVS_PROXY_PORT: The port number to use as a "proxyport="
parameter to the ``cvs`` command.
As well as the standard username and password URL syntax, you can also
configure the fetcher with various URL parameters:
The supported parameters are as follows:
- *"method":* The protocol over which to communicate with the CVS
server. By default, this protocol is "pserver". If "method" is set to
"ext", BitBake examines the "rsh" parameter and sets ``CVS_RSH``. You
can use "dir" for local directories.
- *"module":* Specifies the module to check out. You must supply this
parameter.
- *"tag":* Describes which CVS TAG should be used for the checkout. By
default, the TAG is empty.
- *"date":* Specifies a date. If no "date" is specified, the
:term:`SRCDATE` of the configuration is used to
checkout a specific date. The special value of "now" causes the
checkout to be updated on every build.
- *"localdir":* Used to rename the module. Effectively, you are
renaming the output directory to which the module is unpacked. You
are forcing the module into a special directory relative to
:term:`CVSDIR`.
- *"rsh":* Used in conjunction with the "method" parameter.
- *"scmdata":* Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep". The tarball is expanded into
the work directory. By default, the CVS metadata is removed.
- *"fullpath":* Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper paths.
- *"norecurse":* Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
- *"port":* The port to which the CVS server connects.
Some example URLs are as follows::
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
.. _svn-fetcher:
Subversion (SVN) Fetcher (``svn://``)
-------------------------------------
This fetcher submodule fetches code from the Subversion source control
system. The executable used is specified by ``FETCHCMD_svn``, which
defaults to "svn". The fetcher's temporary working directory is set by
:term:`SVNDIR`, which is usually ``DL_DIR/svn``.
The supported parameters are as follows:
- *"module":* The name of the svn module to checkout. You must provide
this parameter. You can think of this parameter as the top-level
directory of the repository data you want.
- *"path_spec":* A specific directory in which to checkout the
specified svn module.
- *"protocol":* The protocol to use, which defaults to "svn". If
"protocol" is set to "svn+ssh", the "ssh" parameter is also used.
- *"rev":* The revision of the source code to checkout.
- *"scmdata":* Causes the ".svn" directories to be available during
compile-time when set to "keep". By default, these directories are
removed.
- *"ssh":* An optional parameter used when "protocol" is set to
"svn+ssh". You can use this parameter to specify the ssh program used
by svn.
- *"transportuser":* When required, sets the username for the
transport. By default, this parameter is empty. The transport
username is different than the username used in the main URL, which
is passed to the subversion command.
Following are three examples using svn::
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
.. _git-fetcher:
Git Fetcher (``git://``)
------------------------
This fetcher submodule fetches code from the Git source control system.
The fetcher works by creating a bare clone of the remote into
:term:`GITDIR`, which is usually ``DL_DIR/git2``. This
bare clone is then cloned into the work directory during the unpack
stage when a specific tree is checked out. This is done using alternates
and by reference to minimize the amount of duplicate data on the disk
and make the unpack process fast. The executable used can be set with
``FETCHCMD_git``.
This fetcher supports the following parameters:
- *"protocol":* The protocol used to fetch the files. The default is
"git" when a hostname is set. If a hostname is not set, the Git
protocol is "file". You can also use "http", "https", "ssh" and
"rsync".
.. note::
When ``protocol`` is "ssh", the URL expected in :term:`SRC_URI` differs
from the one that is typically passed to ``git clone`` command and provided
by the Git server to fetch from. For example, the URL returned by GitLab
server for ``mesa`` when cloning over SSH is
``git@gitlab.freedesktop.org:mesa/mesa.git``, however the expected URL in
:term:`SRC_URI` is the following::
SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;branch=main;protocol=ssh;..."
Note the ``:`` character changed for a ``/`` before the path to the project.
- *"nocheckout":* Tells the fetcher to not checkout source code when
unpacking when set to "1". Set this option for the URL where there is
a custom routine to checkout code. The default is "0".
- *"rebaseable":* Indicates that the upstream Git repository can be
rebased. You should set this parameter to "1" if revisions can become
detached from branches. In this case, the source mirror tarball is
done per revision, which has a loss of efficiency. Rebasing the
upstream Git repository could cause the current revision to disappear
from the upstream repository. This option reminds the fetcher to
preserve the local cache carefully for future use. The default value
for this parameter is "0".
- *"nobranch":* Tells the fetcher to not check the SHA validation for
the branch when set to "1". The default is "0". Set this option for
the recipe that refers to the commit that is valid for any namespace
(branch, tag, ...) instead of the branch.
- *"bareclone":* Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree. Only the
raw Git metadata is provided. This parameter implies the "nocheckout"
parameter as well.
- *"branch":* The branch(es) of the Git tree to clone. Unless
"nobranch" is set to "1", this is a mandatory parameter. The number of
branch parameters must match the number of name parameters.
- *"rev":* The revision to use for the checkout. The default is
"master".
- *"tag":* Specifies a tag to use for the checkout. To correctly
resolve tags, BitBake must access the network. For that reason, tags
are often not used. As far as Git is concerned, the "tag" parameter
behaves effectively the same as the "rev" parameter.
- *"subpath":* Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
- *"destsuffix":* The name of the path in which to place the checkout.
By default, the path is ``git/``.
- *"usehead":* Enables local ``git://`` URLs to use the current branch
HEAD as the revision for use with ``AUTOREV``. The "usehead"
parameter implies no branch and only works when the transfer protocol
is ``file://``.
Here are some example URLs::
SRC_URI = "git://github.com/fronteed/icheck.git;protocol=https;branch=${PV};tag=${PV}"
SRC_URI = "git://github.com/asciidoc/asciidoc-py;protocol=https;branch=main"
SRC_URI = "git://git@gitlab.freedesktop.org/mesa/mesa.git;branch=main;protocol=ssh;..."
.. note::
When using ``git`` as the fetcher of the main source code of your software,
``S`` should be set accordingly::
S = "${WORKDIR}/git"
.. note::
Specifying passwords directly in ``git://`` urls is not supported.
There are several reasons: :term:`SRC_URI` is often written out to logs and
other places, and that could easily leak passwords; it is also all too
easy to share metadata without removing passwords. SSH keys, ``~/.netrc``
and ``~/.ssh/config`` files can be used as alternatives.
Using tags with the git fetcher may cause surprising behaviour. Bitbake needs to
resolve the tag to a specific revision and to do that, it has to connect to and use
the upstream repository. This is because the revision the tags point at can change and
we've seen cases of this happening in well known public repositories. This can mean
many more network connections than expected and recipes may be reparsed at every build.
Source mirrors will also be bypassed as the upstream repository is the only source
of truth to resolve the revision accurately. For these reasons, whilst the fetcher
can support tags, we recommend being specific about revisions in recipes.
.. _gitsm-fetcher:
Git Submodule Fetcher (``gitsm://``)
------------------------------------
This fetcher submodule inherits from the :ref:`Git
fetcher<bitbake-user-manual/bitbake-user-manual-fetching:git fetcher
(\`\`git://\`\`)>` and extends that fetcher's behavior by fetching a
repository's submodules. :term:`SRC_URI` is passed to the Git fetcher as
described in the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:git
fetcher (\`\`git://\`\`)` section.
.. note::
You must clean a recipe when switching between '``git://``' and
'``gitsm://``' URLs.
The Git Submodules fetcher is not a complete fetcher implementation.
The fetcher has known issues where it does not use the normal source
mirroring infrastructure properly. Further, the submodule sources it
fetches are not visible to the licensing and source archiving
infrastructures.
.. _clearcase-fetcher:
ClearCase Fetcher (``ccrc://``)
-------------------------------
This fetcher submodule fetches code from a
`ClearCase <http://en.wikipedia.org/wiki/Rational_ClearCase>`__
repository.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` settings. Here is an example::
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
The fetcher uses the ``rcleartool`` or
``cleartool`` remote client, depending on which one is available.
Following are options for the :term:`SRC_URI` statement:
- *vob*: The name, which must include the prepending "/" character,
of the ClearCase VOB. This option is required.
- *module*: The module, which must include the prepending "/"
character, in the selected VOB.
.. note::
The module and vob options are combined to create the load rule in the
view config spec. As an example, consider the vob and module values from
the SRC_URI statement at the start of this section. Combining those values
results in the following::
load /example_vob/example_module
- *proto*: The protocol, which can be either ``http`` or ``https``.
By default, the fetcher creates a configuration specification. If you
want this specification written to an area other than the default, use
the ``CCASE_CUSTOM_CONFIG_SPEC`` variable in your recipe to define where
the specification is written.
.. note::
the SRCREV loses its functionality if you specify this variable. However,
SRCREV is still used to label the archive after a fetch even though it does
not define what is fetched.
Here are a couple of other behaviors worth mentioning:
- When using ``cleartool``, the login of ``cleartool`` is handled by
the system. The login require no special steps.
- In order to use ``rcleartool`` with authenticated users, an
"rcleartool login" is necessary before using the fetcher.
.. _perforce-fetcher:
Perforce Fetcher (``p4://``)
----------------------------
This fetcher submodule fetches code from the
`Perforce <https://www.perforce.com/>`__ source control system. The
executable used is specified by ``FETCHCMD_p4``, which defaults to "p4".
The fetcher's temporary working directory is set by
:term:`P4DIR`, which defaults to "DL_DIR/p4".
The fetcher does not make use of a perforce client, instead it
relies on ``p4 files`` to retrieve a list of
files and ``p4 print`` to transfer the content
of those files locally.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` values. The p4 executable is able to use the
config file defined by your system's ``P4CONFIG`` 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 ``P4CONFIG``, or to explicitly set variables that
``P4CONFIG`` can contain, you can specify the ``P4PORT`` value, which is
the server's URL and port number, and you can specify a username and
password directly in your recipe within :term:`SRC_URI`.
Here is an example that relies on ``P4CONFIG`` to specify the server URL
and port, username, and password, and fetches the Head Revision::
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
Here is an example that specifies the server URL and port, username, and
password, and fetches a Revision based on a Label::
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"
.. note::
You should always set S to "${WORKDIR}/p4" in your recipe.
By default, the fetcher strips the depot location from the local file paths. In
the above example, the content of ``example-depot/main/source/`` will be placed
in ``${WORKDIR}/p4``. For situations where preserving parts of the remote depot
paths locally is desirable, the fetcher supports two parameters:
- *"module":*
The top-level depot location or directory to fetch. The value of this
parameter can also point to a single file within the depot, in which case
the local file path will include the module path.
- *"remotepath":*
When used with the value "``keep``", the fetcher will mirror the full depot
paths locally for the specified location, even in combination with the
``module`` parameter.
Here is an example use of the the ``module`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/..."
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, including the directory itself. The top-level directory will
be accesible at ``${P4DIR}/source/``.
Here is an example use of the the ``remotepath`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/...;remotepath=keep"
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, but the complete depot paths will be mirrored locally. The
top-level directory will be accessible at
``${P4DIR}/example-depot/main/source/``.
.. _repo-fetcher:
Repo Fetcher (``repo://``)
--------------------------
This fetcher submodule fetches code from ``google-repo`` source control
system. The fetcher works by initiating and syncing sources of the
repository into :term:`REPODIR`, which is usually
``${DL_DIR}/repo``.
This fetcher supports the following parameters:
- *"protocol":* Protocol to fetch the repository manifest (default:
git).
- *"branch":* Branch or tag of repository to get (default: master).
- *"manifest":* Name of the manifest file (default: ``default.xml``).
Here are some example URLs::
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
.. _az-fetcher:
Az Fetcher (``az://``)
--------------------------
This submodule fetches data from an
`Azure Storage account <https://docs.microsoft.com/en-us/azure/storage/>`__ ,
it inherits its functionality from the HTTP wget fetcher, but modifies its
behavior to accomodate the usage of a
`Shared Access Signature (SAS) <https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview>`__
for non-public data.
Such functionality is set by the variable:
- :term:`AZ_SAS`: The Azure Storage Shared Access Signature provides secure
delegate access to resources, if this variable is set, the Az Fetcher will
use it when fetching artifacts from the cloud.
You can specify the AZ_SAS variable as shown below::
AZ_SAS = "se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>"
Here is an example URL::
SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"
It can also be used when setting mirrors definitions using the :term:`PREMIRRORS` variable.
.. _gcp-fetcher:
GCP Fetcher (``gs://``)
--------------------------
This submodule fetches data from a
`Google Cloud Storage Bucket <https://cloud.google.com/storage/docs/buckets>`__.
It uses the `Google Cloud Storage Python Client <https://cloud.google.com/python/docs/reference/storage/latest>`__
to check the status of objects in the bucket and download them.
The use of the Python client makes it substantially faster than using command
line tools such as gsutil.
The fetcher requires the Google Cloud Storage Python Client to be installed, along
with the gsutil tool.
The fetcher requires that the machine has valid credentials for accessing the
chosen bucket. Instructions for authentication can be found in the
`Google Cloud documentation <https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev>`__.
If it used from the OpenEmbedded build system, the fetcher can be used for
fetching sstate artifacts from a GCS bucket by specifying the
``SSTATE_MIRRORS`` variable as shown below::
SSTATE_MIRRORS ?= "\
file://.* gs://<bucket name>/PATH \
"
The fetcher can also be used in recipes::
SRC_URI = "gs://<bucket name>/<foo_container>/<bar_file>"
However, the checksum of the file should be also be provided::
SRC_URI[sha256sum] = "<sha256 string>"
.. _crate-fetcher:
Crate Fetcher (``crate://``)
----------------------------
This submodule fetches code for
`Rust language "crates" <https://doc.rust-lang.org/reference/glossary.html?highlight=crate#crate>`__
corresponding to Rust libraries and programs to compile. Such crates are typically shared
on https://crates.io/ but this fetcher supports other crate registries too.
The format for the :term:`SRC_URI` setting must be::
SRC_URI = "crate://REGISTRY/NAME/VERSION"
Here is an example URL::
SRC_URI = "crate://crates.io/glob/0.2.11"
.. _npm-fetcher:
NPM Fetcher (``npm://``)
------------------------
This submodule fetches source code from an
`NPM <https://en.wikipedia.org/wiki/Npm_(software)>`__
Javascript package registry.
The format for the :term:`SRC_URI` setting must be::
SRC_URI = "npm://some.registry.url;ParameterA=xxx;ParameterB=xxx;..."
This fetcher supports the following parameters:
- *"package":* The NPM package name. This is a mandatory parameter.
- *"version":* The NPM package version. This is a mandatory parameter.
- *"downloadfilename":* Specifies the filename used when storing the downloaded file.
- *"destsuffix":* Specifies the directory to use to unpack the package (default: ``npm``).
Note that NPM fetcher only fetches the package source itself. The dependencies
can be fetched through the `npmsw-fetcher`_.
Here is an example URL with both fetchers::
SRC_URI = " \
npm://registry.npmjs.org/;package=cute-files;version=${PV} \
npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
"
See :yocto_docs:`Creating Node Package Manager (NPM) Packages
</dev-manual/packages.html#creating-node-package-manager-npm-packages>`
in the Yocto Project manual for details about using
:yocto_docs:`devtool <https://docs.yoctoproject.org/ref-manual/devtool-reference.html>`
to automatically create a recipe from an NPM URL.
.. _npmsw-fetcher:
NPM shrinkwrap Fetcher (``npmsw://``)
-------------------------------------
This submodule fetches source code from an
`NPM shrinkwrap <https://docs.npmjs.com/cli/v8/commands/npm-shrinkwrap>`__
description file, which lists the dependencies
of an NPM package while locking their versions.
The format for the :term:`SRC_URI` setting must be::
SRC_URI = "npmsw://some.registry.url;ParameterA=xxx;ParameterB=xxx;..."
This fetcher supports the following parameters:
- *"dev":* Set this parameter to ``1`` to install "devDependencies".
- *"destsuffix":* Specifies the directory to use to unpack the dependencies
(``${S}`` by default).
Note that the shrinkwrap file can also be provided by the recipe for
the package which has such dependencies, for example::
SRC_URI = " \
npm://registry.npmjs.org/;package=cute-files;version=${PV} \
npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
"
Such a file can automatically be generated using
:yocto_docs:`devtool <https://docs.yoctoproject.org/ref-manual/devtool-reference.html>`
as described in the :yocto_docs:`Creating Node Package Manager (NPM) Packages
</dev-manual/packages.html#creating-node-package-manager-npm-packages>`
section of the Yocto Project.
Other Fetchers
--------------
Fetch submodules also exist for the following:
- Bazaar (``bzr://``)
- Mercurial (``hg://``)
- OSC (``osc://``)
- S3 (``s3://``)
- Secure FTP (``sftp://``)
- Secure Shell (``ssh://``)
- Trees using Git Annex (``gitannex://``)
No documentation currently exists for these lesser used fetcher
submodules. However, you might find the code helpful and readable.
Auto Revisions
==============
We need to document ``AUTOREV`` and :term:`SRCREV_FORMAT` here.

View File

@@ -0,0 +1,821 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter>
<title>File Download Support</title>
<para>
BitBake's fetch module is a standalone piece of library code
that deals with the intricacies of downloading source code
and files from remote systems.
Fetching source code is one of the cornerstones of building software.
As such, this module forms an important part of BitBake.
</para>
<para>
The current fetch module is called "fetch2" and refers to the
fact that it is the second major version of the API.
The original version is obsolete and has been removed from the codebase.
Thus, in all cases, "fetch" refers to "fetch2" in this
manual.
</para>
<section id='the-download-fetch'>
<title>The Download (Fetch)</title>
<para>
BitBake takes several steps when fetching source code or files.
The fetcher codebase deals with two distinct processes in order:
obtaining the files from somewhere (cached or otherwise)
and then unpacking those files into a specific location and
perhaps in a specific way.
Getting and unpacking the files is often optionally followed
by patching.
Patching, however, is not covered by this module.
</para>
<para>
The code to execute the first part of this process, a fetch,
looks something like the following:
<literallayout class='monospaced'>
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
</literallayout>
This code sets up an instance of the fetch class.
The instance uses a space-separated list of URLs from the
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
variable and then calls the <filename>download</filename>
method to download the files.
</para>
<para>
The instantiation of the fetch class is usually followed by:
<literallayout class='monospaced'>
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
</literallayout>
This code unpacks the downloaded files to the
specified by <filename>WORKDIR</filename>.
<note>
For convenience, the naming in these examples matches
the variables used by OpenEmbedded.
If you want to see the above code in action, examine
the OpenEmbedded class file <filename>base.bbclass</filename>.
</note>
The <filename>SRC_URI</filename> and <filename>WORKDIR</filename>
variables are not hardcoded into the fetcher, since those fetcher
methods can be (and are) called with different variable names.
In OpenEmbedded for example, the shared state (sstate) code uses
the fetch module to fetch the sstate files.
</para>
<para>
When the <filename>download()</filename> method is called,
BitBake tries to resolve the URLs by looking for source files
in a specific search order:
<itemizedlist>
<listitem><para><emphasis>Pre-mirror Sites:</emphasis>
BitBake first uses pre-mirrors to try and find source files.
These locations are defined using the
<link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
variable.
</para></listitem>
<listitem><para><emphasis>Source URI:</emphasis>
If pre-mirrors fail, BitBake uses the original URL (e.g from
<filename>SRC_URI</filename>).
</para></listitem>
<listitem><para><emphasis>Mirror Sites:</emphasis>
If fetch failures occur, BitBake next uses mirror locations as
defined by the
<link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>
variable.
</para></listitem>
</itemizedlist>
</para>
<para>
For each URL passed to the fetcher, the fetcher
calls the submodule that handles that particular URL type.
This behavior can be the source of some confusion when you
are providing URLs for the <filename>SRC_URI</filename>
variable.
Consider the following two URLs:
<literallayout class='monospaced'>
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
</literallayout>
In the former case, the URL is passed to the
<filename>wget</filename> fetcher, which does not
understand "git".
Therefore, the latter case is the correct form since the
Git fetcher does know how to use HTTP as a transport.
</para>
<para>
Here are some examples that show commonly used mirror
definitions:
<literallayout class='monospaced'>
PREMIRRORS ?= "\
bzr://.*/.* http://somemirror.org/sources/ \n \
cvs://.*/.* http://somemirror.org/sources/ \n \
git://.*/.* http://somemirror.org/sources/ \n \
hg://.*/.* http://somemirror.org/sources/ \n \
osc://.*/.* http://somemirror.org/sources/ \n \
p4://.*/.* http://somemirror.org/sources/ \n \
svn://.*/.* http://somemirror.org/sources/ \n"
MIRRORS =+ "\
ftp://.*/.* http://somemirror.org/sources/ \n \
http://.*/.* http://somemirror.org/sources/ \n \
https://.*/.* http://somemirror.org/sources/ \n"
</literallayout>
It is useful to note that BitBake supports
cross-URLs.
It is possible to mirror a Git repository on an HTTP
server as a tarball.
This is what the <filename>git://</filename> mapping in
the previous example does.
</para>
<para>
Since network accesses are slow, Bitbake maintains a
cache of files downloaded from the network.
Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download
directory, which is specified by the
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
variable.
</para>
<para>
File integrity is of key importance for reproducing builds.
For non-local archive downloads, the fetcher code can verify
SHA-256 and MD5 checksums to ensure the archives have been
downloaded correctly.
You can specify these checksums by using the
<filename>SRC_URI</filename> variable with the appropriate
varflags as follows:
<literallayout class='monospaced'>
SRC_URI[md5sum] = "<replaceable>value</replaceable>"
SRC_URI[sha256sum] = "<replaceable>value</replaceable>"
</literallayout>
You can also specify the checksums as parameters on the
<filename>SRC_URI</filename> as shown below:
<literallayout class='monospaced'>
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
</literallayout>
If multiple URIs exist, you can specify the checksums either
directly as in the previous example, or you can name the URLs.
The following syntax shows how you name the URIs:
<literallayout class='monospaced'>
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
</literallayout>
After a file has been downloaded and has had its checksum checked,
a ".done" stamp is placed in <filename>DL_DIR</filename>.
BitBake uses this stamp during subsequent builds to avoid
downloading or comparing a checksum for the file again.
<note>
It is assumed that local storage is safe from data corruption.
If this were not the case, there would be bigger issues to worry about.
</note>
</para>
<para>
If
<link linkend='var-BB_STRICT_CHECKSUM'><filename>BB_STRICT_CHECKSUM</filename></link>
is set, any download without a checksum triggers an
error message.
The
<link linkend='var-BB_NO_NETWORK'><filename>BB_NO_NETWORK</filename></link>
variable can be used to make any attempted network access a fatal
error, which is useful for checking that mirrors are complete
as well as other things.
</para>
</section>
<section id='bb-the-unpack'>
<title>The Unpack</title>
<para>
The unpack process usually immediately follows the download.
For all URLs except Git URLs, BitBake uses the common
<filename>unpack</filename> method.
</para>
<para>
A number of parameters exist that you can specify within the
URL to govern the behavior of the unpack stage:
<itemizedlist>
<listitem><para><emphasis>unpack:</emphasis>
Controls whether the URL components are unpacked.
If set to "1", which is the default, the components
are unpacked.
If set to "0", the unpack stage leaves the file alone.
This parameter is useful when you want an archive to be
copied in and not be unpacked.
</para></listitem>
<listitem><para><emphasis>dos:</emphasis>
Applies to <filename>.zip</filename> and
<filename>.jar</filename> files and specifies whether to
use DOS line ending conversion on text files.
</para></listitem>
<listitem><para><emphasis>basepath:</emphasis>
Instructs the unpack stage to strip the specified
directories from the source path when unpacking.
</para></listitem>
<listitem><para><emphasis>subdir:</emphasis>
Unpacks the specific URL to the specified subdirectory
within the root directory.
</para></listitem>
</itemizedlist>
The unpack call automatically decompresses and extracts files
with ".Z", ".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm".
".srpm", ".deb" and ".bz2" extensions as well as various combinations
of tarball extensions.
</para>
<para>
As mentioned, the Git fetcher has its own unpack method that
is optimized to work with Git trees.
Basically, this method works by cloning the tree into the final
directory.
The process is completed using references so that there is
only one central copy of the Git metadata needed.
</para>
</section>
<section id='bb-fetchers'>
<title>Fetchers</title>
<para>
As mentioned earlier, the URL prefix determines which
fetcher submodule BitBake uses.
Each submodule can support different URL parameters,
which are described in the following sections.
</para>
<section id='local-file-fetcher'>
<title>Local file fetcher (<filename>file://</filename>)</title>
<para>
This submodule handles URLs that begin with
<filename>file://</filename>.
The filename you specify within the URL can be
either an absolute or relative path to a file.
If the filename is relative, the contents of the
<link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
variable is used in the same way
<filename>PATH</filename> is used to find executables.
If the file cannot be found, it is assumed that it is available in
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
by the time the <filename>download()</filename> method is called.
</para>
<para>
If you specify a directory, the entire directory is
unpacked.
</para>
<para>
Here are a couple of example URLs, the first relative and
the second absolute:
<literallayout class='monospaced'>
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
</literallayout>
</para>
</section>
<section id='http-ftp-fetcher'>
<title>HTTP/FTP wget fetcher (<filename>http://</filename>, <filename>ftp://</filename>, <filename>https://</filename>)</title>
<para>
This fetcher obtains files from web and FTP servers.
Internally, the fetcher uses the wget utility.
</para>
<para>
The executable and parameters used are specified by the
<filename>FETCHCMD_wget</filename> variable, which defaults
to sensible values.
The fetcher supports a parameter "downloadfilename" that
allows the name of the downloaded file to be specified.
Specifying the name of the downloaded file is useful
for avoiding collisions in
<link linkend='var-DL_DIR'><filename>DL_DIR</filename></link>
when dealing with multiple files that have the same name.
</para>
<para>
Some example URLs are as follows:
<literallayout class='monospaced'>
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
</literallayout>
</para>
<note>
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
</literallayout>
Such URLs should should be modified by replacing semi-colons with '&amp;' characters:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&amp;a=snapshot&amp;h=a5dd47"
</literallayout>
In most cases this should work. Treating semi-colons and '&amp;' in queries
identically is recommended by the World Wide Web Consortium (W3C).
Note that due to the nature of the URL, you may have to specify the name
of the downloaded file as well:
<literallayout class='monospaced'>
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&amp;a=snapshot&amp;h=a5dd47;downloadfilename=myfile.bz2"
</literallayout>
</note>
</section>
<section id='cvs-fetcher'>
<title>CVS fetcher (<filename>(cvs://</filename>)</title>
<para>
This submodule handles checking out files from the
CVS version control system.
You can configure it using a number of different variables:
<itemizedlist>
<listitem><para><emphasis><filename>FETCHCMD_cvs</filename>:</emphasis>
The name of the executable to use when running
the <filename>cvs</filename> command.
This name is usually "cvs".
</para></listitem>
<listitem><para><emphasis><filename>SRCDATE</filename>:</emphasis>
The date to use when fetching the CVS source code.
A special value of "now" causes the checkout to
be updated on every build.
</para></listitem>
<listitem><para><emphasis><link linkend='var-CVSDIR'><filename>CVSDIR</filename></link>:</emphasis>
Specifies where a temporary checkout is saved.
The location is often <filename>DL_DIR/cvs</filename>.
</para></listitem>
<listitem><para><emphasis><filename>CVS_PROXY_HOST</filename>:</emphasis>
The name to use as a "proxy=" parameter to the
<filename>cvs</filename> command.
</para></listitem>
<listitem><para><emphasis><filename>CVS_PROXY_PORT</filename>:</emphasis>
The port number to use as a "proxyport=" parameter to
the <filename>cvs</filename> command.
</para></listitem>
</itemizedlist>
As well as the standard username and password URL syntax,
you can also configure the fetcher with various URL parameters:
</para>
<para>
The supported parameters are as follows:
<itemizedlist>
<listitem><para><emphasis>"method":</emphasis>
The protocol over which to communicate with the CVS
server.
By default, this protocol is "pserver".
If "method" is set to "ext", BitBake examines the
"rsh" parameter and sets <filename>CVS_RSH</filename>.
You can use "dir" for local directories.
</para></listitem>
<listitem><para><emphasis>"module":</emphasis>
Specifies the module to check out.
You must supply this parameter.
</para></listitem>
<listitem><para><emphasis>"tag":</emphasis>
Describes which CVS TAG should be used for
the checkout.
By default, the TAG is empty.
</para></listitem>
<listitem><para><emphasis>"date":</emphasis>
Specifies a date.
If no "date" is specified, the
<link linkend='var-SRCDATE'><filename>SRCDATE</filename></link>
of the configuration is used to checkout a specific date.
The special value of "now" causes the checkout to be
updated on every build.
</para></listitem>
<listitem><para><emphasis>"localdir":</emphasis>
Used to rename the module.
Effectively, you are renaming the output directory
to which the module is unpacked.
You are forcing the module into a special
directory relative to
<link linkend='var-CVSDIR'><filename>CVSDIR</filename></link>.
</para></listitem>
<listitem><para><emphasis>"rsh"</emphasis>
Used in conjunction with the "method" parameter.
</para></listitem>
<listitem><para><emphasis>"scmdata":</emphasis>
Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep".
The tarball is expanded into the work directory.
By default, the CVS metadata is removed.
</para></listitem>
<listitem><para><emphasis>"fullpath":</emphasis>
Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper
paths.
</para></listitem>
<listitem><para><emphasis>"norecurse":</emphasis>
Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
</para></listitem>
<listitem><para><emphasis>"port":</emphasis>
The port to which the CVS server connects.
</para></listitem>
</itemizedlist>
Some example URLs are as follows:
<literallayout class='monospaced'>
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
</literallayout>
</para>
</section>
<section id='svn-fetcher'>
<title>Subversion (SVN) Fetcher (<filename>svn://</filename>)</title>
<para>
This fetcher submodule fetches code from the
Subversion source control system.
The executable used is specified by
<filename>FETCHCMD_svn</filename>, which defaults
to "svn".
The fetcher's temporary working directory is set by
<link linkend='var-SVNDIR'><filename>SVNDIR</filename></link>,
which is usually <filename>DL_DIR/svn</filename>.
</para>
<para>
The supported parameters are as follows:
<itemizedlist>
<listitem><para><emphasis>"module":</emphasis>
The name of the svn module to checkout.
You must provide this parameter.
You can think of this parameter as the top-level
directory of the repository data you want.
</para></listitem>
<listitem><para><emphasis>"path_spec":</emphasis>
A specific directory in which to checkout the
specified svn module.
</para></listitem>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol to use, which defaults to "svn".
If "protocol" is set to "svn+ssh", the "ssh"
parameter is also used.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision of the source code to checkout.
</para></listitem>
<listitem><para><emphasis>"scmdata":</emphasis>
Causes the “.svn” directories to be available during
compile-time when set to "keep".
By default, these directories are removed.
</para></listitem>
<listitem><para><emphasis>"ssh":</emphasis>
An optional parameter used when "protocol" is set
to "svn+ssh".
You can use this parameter to specify the ssh
program used by svn.
</para></listitem>
<listitem><para><emphasis>"transportuser":</emphasis>
When required, sets the username for the transport.
By default, this parameter is empty.
The transport username is different than the username
used in the main URL, which is passed to the subversion
command.
</para></listitem>
</itemizedlist>
Following are three examples using svn:
<literallayout class='monospaced'>
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
</literallayout>
</para>
</section>
<section id='git-fetcher'>
<title>Git Fetcher (<filename>git://</filename>)</title>
<para>
This fetcher submodule fetches code from the Git
source control system.
The fetcher works by creating a bare clone of the
remote into
<link linkend='var-GITDIR'><filename>GITDIR</filename></link>,
which is usually <filename>DL_DIR/git2</filename>.
This bare clone is then cloned into the work directory during the
unpack stage when a specific tree is checked out.
This is done using alternates and by reference to
minimize the amount of duplicate data on the disk and
make the unpack process fast.
The executable used can be set with
<filename>FETCHCMD_git</filename>.
</para>
<para>
This fetcher supports the following parameters:
<itemizedlist>
<listitem><para><emphasis>"protocol":</emphasis>
The protocol used to fetch the files.
The default is "git" when a hostname is set.
If a hostname is not set, the Git protocol is "file".
You can also use "http", "https", "ssh" and "rsync".
</para></listitem>
<listitem><para><emphasis>"nocheckout":</emphasis>
Tells the fetcher to not checkout source code when
unpacking when set to "1".
Set this option for the URL where there is a custom
routine to checkout code.
The default is "0".
</para></listitem>
<listitem><para><emphasis>"rebaseable":</emphasis>
Indicates that the upstream Git repository can be rebased.
You should set this parameter to "1" if
revisions can become detached from branches.
In this case, the source mirror tarball is done per
revision, which has a loss of efficiency.
Rebasing the upstream Git repository could cause the
current revision to disappear from the upstream repository.
This option reminds the fetcher to preserve the local cache
carefully for future use.
The default value for this parameter is "0".
</para></listitem>
<listitem><para><emphasis>"nobranch":</emphasis>
Tells the fetcher to not check the SHA validation
for the branch when set to "1".
The default is "0".
Set this option for the recipe that refers to
the commit that is valid for a tag instead of
the branch.
</para></listitem>
<listitem><para><emphasis>"bareclone":</emphasis>
Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree.
Only the raw Git metadata is provided.
This parameter implies the "nocheckout" parameter as well.
</para></listitem>
<listitem><para><emphasis>"branch":</emphasis>
The branch(es) of the Git tree to clone.
If unset, this is assumed to be "master".
The number of branch parameters much match the number of
name parameters.
</para></listitem>
<listitem><para><emphasis>"rev":</emphasis>
The revision to use for the checkout.
The default is "master".
</para></listitem>
<listitem><para><emphasis>"tag":</emphasis>
Specifies a tag to use for the checkout.
To correctly resolve tags, BitBake must access the
network.
For that reason, tags are often not used.
As far as Git is concerned, the "tag" parameter behaves
effectively the same as the "rev" parameter.
</para></listitem>
<listitem><para><emphasis>"subpath":</emphasis>
Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
</para></listitem>
<listitem><para><emphasis>"destsuffix":</emphasis>
The name of the path in which to place the checkout.
By default, the path is <filename>git/</filename>.
</para></listitem>
</itemizedlist>
Here are some example URLs:
<literallayout class='monospaced'>
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
</literallayout>
</para>
</section>
<section id='gitsm-fetcher'>
<title>Git Submodule Fetcher (<filename>gitsm://</filename>)</title>
<para>
This fetcher submodule inherits from the
<link linkend='git-fetcher'>Git fetcher</link> and extends
that fetcher's behavior by fetching a repository's submodules.
<link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
is passed to the Git fetcher as described in the
"<link linkend='git-fetcher'>Git Fetcher (<filename>git://</filename>)</link>"
section.
<note>
<title>Notes and Warnings</title>
<para>
You must clean a recipe when switching between
'<filename>git://</filename>' and
'<filename>gitsm://</filename>' URLs.
</para>
<para>
The Git Submodules fetcher is not a complete fetcher
implementation.
The fetcher has known issues where it does not use the
normal source mirroring infrastructure properly.
</para>
</note>
</para>
</section>
<section id='clearcase-fetcher'>
<title>ClearCase Fetcher (<filename>ccrc://</filename>)</title>
<para>
This fetcher submodule fetches code from a
<ulink url='http://en.wikipedia.org/wiki/Rational_ClearCase'>ClearCase</ulink>
repository.
</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> settings.
Here is an example:
<literallayout class='monospaced'>
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
</literallayout>
The fetcher uses the <filename>rcleartool</filename> or
<filename>cleartool</filename> remote client, depending on
which one is available.
</para>
<para>
Following are options for the <filename>SRC_URI</filename>
statement:
<itemizedlist>
<listitem><para><emphasis><filename>vob</filename></emphasis>:
The name, which must include the
prepending "/" character, of the ClearCase VOB.
This option is required.
</para></listitem>
<listitem><para><emphasis><filename>module</filename></emphasis>:
The module, which must include the
prepending "/" character, in the selected VOB.
<note>
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
<filename>SRC_URI</filename> statement at the start of this section.
Combining those values results in the following:
<literallayout class='monospaced'>
load /example_vob/example_module
</literallayout>
</note>
</para></listitem>
<listitem><para><emphasis><filename>proto</filename></emphasis>:
The protocol, which can be either <filename>http</filename> or
<filename>https</filename>.
</para></listitem>
</itemizedlist>
</para>
<para>
By default, the fetcher creates a configuration specification.
If you want this specification written to an area other than the default,
use the <filename>CCASE_CUSTOM_CONFIG_SPEC</filename> variable
in your recipe to define where the specification is written.
<note>
the <filename>SRCREV</filename> loses its functionality if you
specify this variable.
However, <filename>SRCREV</filename> is still used to label the
archive after a fetch even though it does not define what is
fetched.
</note>
</para>
<para>
Here are a couple of other behaviors worth mentioning:
<itemizedlist>
<listitem><para>
When using <filename>cleartool</filename>, the login of
<filename>cleartool</filename> is handled by the system.
The login require no special steps.
</para></listitem>
<listitem><para>
In order to use <filename>rcleartool</filename> with authenticated
users, an "rcleartool login" is necessary before using the fetcher.
</para></listitem>
</itemizedlist>
</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>
<para>
Fetch submodules also exist for the following:
<itemizedlist>
<listitem><para>
Bazaar (<filename>bzr://</filename>)
</para></listitem>
<listitem><para>
Trees using Git Annex (<filename>gitannex://</filename>)
</para></listitem>
<listitem><para>
Secure FTP (<filename>sftp://</filename>)
</para></listitem>
<listitem><para>
Secure Shell (<filename>ssh://</filename>)
</para></listitem>
<listitem><para>
Repo (<filename>repo://</filename>)
</para></listitem>
<listitem><para>
OSC (<filename>osc://</filename>)
</para></listitem>
<listitem><para>
Mercurial (<filename>hg://</filename>)
</para></listitem>
</itemizedlist>
No documentation currently exists for these lesser used
fetcher submodules.
However, you might find the code helpful and readable.
</para>
</section>
</section>
<section id='auto-revisions'>
<title>Auto Revisions</title>
<para>
We need to document <filename>AUTOREV</filename> and
<filename>SRCREV_FORMAT</filename> here.
</para>
</section>
</chapter>

View File

@@ -1,408 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
Hello World Example
===================
BitBake Hello World
===================
The simplest example commonly used to demonstrate any new programming
language or tool is the "`Hello
World <http://en.wikipedia.org/wiki/Hello_world_program>`__" example.
This appendix demonstrates, in tutorial form, Hello World within the
context of BitBake. The tutorial describes how to create a new project
and the applicable metadata files necessary to allow BitBake to build
it.
Obtaining BitBake
=================
See the :ref:`bitbake-user-manual/bitbake-user-manual-intro:obtaining bitbake` section for
information on how to obtain BitBake. Once you have the source code on
your machine, the BitBake directory appears as follows::
$ ls -al
total 108
drwxr-xr-x 9 fawkh 10000 4096 feb 24 12:10 .
drwx------ 36 fawkh 10000 4096 mar 2 17:00 ..
-rw-r--r-- 1 fawkh 10000 365 feb 24 12:10 AUTHORS
drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 bin
-rw-r--r-- 1 fawkh 10000 16501 feb 24 12:10 ChangeLog
drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 classes
drwxr-xr-x 2 fawkh 10000 4096 feb 24 12:10 conf
drwxr-xr-x 5 fawkh 10000 4096 feb 24 12:10 contrib
drwxr-xr-x 6 fawkh 10000 4096 feb 24 12:10 doc
drwxr-xr-x 8 fawkh 10000 4096 mar 2 16:26 .git
-rw-r--r-- 1 fawkh 10000 31 feb 24 12:10 .gitattributes
-rw-r--r-- 1 fawkh 10000 392 feb 24 12:10 .gitignore
drwxr-xr-x 13 fawkh 10000 4096 feb 24 12:11 lib
-rw-r--r-- 1 fawkh 10000 1224 feb 24 12:10 LICENSE
-rw-r--r-- 1 fawkh 10000 15394 feb 24 12:10 LICENSE.GPL-2.0-only
-rw-r--r-- 1 fawkh 10000 1286 feb 24 12:10 LICENSE.MIT
-rw-r--r-- 1 fawkh 10000 229 feb 24 12:10 MANIFEST.in
-rw-r--r-- 1 fawkh 10000 2413 feb 24 12:10 README
-rw-r--r-- 1 fawkh 10000 43 feb 24 12:10 toaster-requirements.txt
-rw-r--r-- 1 fawkh 10000 2887 feb 24 12:10 TODO
At this point, you should have BitBake cloned to a directory that
matches the previous listing except for dates and user names.
Setting Up the BitBake Environment
==================================
First, you need to be sure that you can run BitBake. Set your working
directory to where your local BitBake files are and run the following
command::
$ ./bin/bitbake --version
BitBake Build Tool Core version 2.3.1
The console output tells you what version
you are running.
The recommended method to run BitBake is from a directory of your
choice. To be able to run BitBake from any directory, you need to add
the executable binary to your binary to your shell's environment
``PATH`` variable. First, look at your current ``PATH`` variable by
entering the following::
$ echo $PATH
Next, add the directory location
for the BitBake binary to the ``PATH``. Here is an example that adds the
``/home/scott-lenovo/bitbake/bin`` directory to the front of the
``PATH`` variable::
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
You should now be able to enter the ``bitbake`` command from the command
line while working from any directory.
The Hello World Example
=======================
The overall goal of this exercise is to build a complete "Hello World"
example utilizing task and layer concepts. Because this is how modern
projects such as OpenEmbedded and the Yocto Project utilize BitBake, the
example provides an excellent starting point for understanding BitBake.
To help you understand how to use BitBake to build targets, the example
starts with nothing but the ``bitbake`` command, which causes BitBake to
fail and report problems. The example progresses by adding pieces to the
build to eventually conclude with a working, minimal "Hello World"
example.
While every attempt is made to explain what is happening during the
example, the descriptions cannot cover everything. You can find further
information throughout this manual. Also, you can actively participate
in the :oe_lists:`/g/bitbake-devel`
discussion mailing list about the BitBake build tool.
.. note::
This example was inspired by and drew heavily from
`Mailing List post - The BitBake equivalent of "Hello, World!"
<https://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html>`_.
As stated earlier, the goal of this example is to eventually compile
"Hello World". However, it is unknown what BitBake needs and what you
have to provide in order to achieve that goal. Recall that BitBake
utilizes three types of metadata files:
:ref:`bitbake-user-manual/bitbake-user-manual-intro:configuration files`,
:ref:`bitbake-user-manual/bitbake-user-manual-intro:classes`, and
:ref:`bitbake-user-manual/bitbake-user-manual-intro:recipes`.
But where do they go? How does BitBake find
them? BitBake's error messaging helps you answer these types of
questions and helps you better understand exactly what is going on.
Following is the complete "Hello World" example.
#. **Create a Project Directory:** First, set up a directory for the
"Hello World" project. Here is how you can do so in your home
directory::
$ mkdir ~/hello
$ cd ~/hello
This is the directory that
BitBake will use to do all of its work. You can use this directory
to keep all the metafiles needed by BitBake. Having a project
directory is a good way to isolate your project.
#. **Run BitBake:** At this point, you have nothing but a project
directory. Run the ``bitbake`` command and see what it does::
$ bitbake
ERROR: The BBPATH variable is not set and bitbake did not find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
When you run BitBake, it begins looking for metadata files. The
:term:`BBPATH` variable is what tells BitBake where
to look for those files. :term:`BBPATH` is not set and you need to set
it. Without :term:`BBPATH`, BitBake cannot find any configuration files
(``.conf``) or recipe files (``.bb``) at all. BitBake also cannot
find the ``bitbake.conf`` file.
#. **Setting BBPATH:** For this example, you can set :term:`BBPATH` in
the same manner that you set ``PATH`` earlier in the appendix. You
should realize, though, that it is much more flexible to set the
:term:`BBPATH` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
:term:`BBPATH` variable::
$ BBPATH="projectdirectory"
$ export BBPATH
Use your actual project directory in the command. BitBake uses that
directory to find the metadata it needs for your project.
.. note::
When specifying your project directory, do not use the tilde
("~") character as BitBake does not expand that character as the
shell would.
#. **Run BitBake:** Now that you have :term:`BBPATH` defined, run the
``bitbake`` command again::
$ bitbake
ERROR: Unable to parse /home/scott-lenovo/bitbake/lib/bb/parse/__init__.py
Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 127, in resolve_file(fn='conf/bitbake.conf', d=<bb.data_smart.DataSmart object at 0x7f22919a3df0>):
if not newfn:
> raise IOError(errno.ENOENT, "file %s not found in %s" % (fn, bbpath))
fn = newfn
FileNotFoundError: [Errno 2] file conf/bitbake.conf not found in <projectdirectory>
This sample output shows that BitBake could not find the
``conf/bitbake.conf`` file in the project directory. This file is
the first thing BitBake must find in order to build a target. And,
since the project directory for this example is empty, you need to
provide a ``conf/bitbake.conf`` file.
#. **Creating conf/bitbake.conf:** The ``conf/bitbake.conf`` includes
a number of configuration variables BitBake uses for metadata and
recipe files. For this example, you need to create the file in your
project directory and define some key BitBake variables. For more
information on the ``bitbake.conf`` file, see
https://git.openembedded.org/bitbake/tree/conf/bitbake.conf.
Use the following commands to create the ``conf`` directory in the
project directory::
$ mkdir conf
From within the ``conf`` directory,
use some editor to create the ``bitbake.conf`` so that it contains
the following::
PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
TMPDIR = "${TOPDIR}/tmp"
CACHE = "${TMPDIR}/cache"
STAMP = "${TMPDIR}/${PN}/stamps"
T = "${TMPDIR}/${PN}/work"
B = "${TMPDIR}/${PN}"
.. note::
Without a value for :term:`PN`, the variables :term:`STAMP`, :term:`T`, and :term:`B`, prevent more
than one recipe from working. You can fix this by either setting :term:`PN` to
have a value similar to what OpenEmbedded and BitBake use in the default
``bitbake.conf`` file (see previous example). Or, by manually updating each
recipe to set :term:`PN`. You will also need to include :term:`PN` as part of the :term:`STAMP`,
:term:`T`, and :term:`B` variable definitions in the ``local.conf`` file.
The ``TMPDIR`` variable establishes a directory that BitBake uses
for build output and intermediate files other than the cached
information used by the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:setscene`
process. Here, the ``TMPDIR`` directory is set to ``hello/tmp``.
.. tip::
You can always safely delete the tmp directory in order to rebuild a
BitBake target. The build process creates the directory for you when you
run BitBake.
For information about each of the other variables defined in this
example, check :term:`PN`, :term:`TOPDIR`, :term:`CACHE`, :term:`STAMP`,
:term:`T` or :term:`B` to take you to the definitions in the
glossary.
#. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file
exists, you can run the ``bitbake`` command again::
$ bitbake
ERROR: Unable to parse /home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py
Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 67, in inherit(files=['base'], fn='configuration INHERITs', lineno=0, d=<bb.data_smart.DataSmart object at 0x7fab6815edf0>):
if not os.path.exists(file):
> raise ParseError("Could not inherit file %s" % (file), fn, lineno)
bb.parse.ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
In the sample output,
BitBake could not find the ``classes/base.bbclass`` file. You need
to create that file next.
#. **Creating classes/base.bbclass:** BitBake uses class files to
provide common code and functionality. The minimally required class
for BitBake is the ``classes/base.bbclass`` file. The ``base`` class
is implicitly inherited by every recipe. BitBake looks for the class
in the ``classes`` directory of the project (i.e ``hello/classes``
in this example).
Create the ``classes`` directory as follows::
$ cd $HOME/hello
$ mkdir classes
Move to the ``classes`` directory and then create the
``base.bbclass`` file by inserting this single line::
addtask build
The minimal task that BitBake runs is the ``do_build`` task. This is
all the example needs in order to build the project. Of course, the
``base.bbclass`` can have much more depending on which build
environments BitBake is supporting.
#. **Run BitBake:** After making sure that the ``classes/base.bbclass``
file exists, you can run the ``bitbake`` command again::
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
BitBake is finally reporting
no errors. However, you can see that it really does not have
anything to do. You need to create a recipe that gives BitBake
something to do.
#. **Creating a Layer:** While it is not really necessary for such a
small example, it is good practice to create a layer in which to
keep your code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
.. note::
You can find additional information on layers in the
":ref:`bitbake-user-manual/bitbake-user-manual-intro:Layers`" section.
Minimally, you need a recipe file and a layer configuration file in
your layer. The configuration file needs to be in the ``conf``
directory inside the layer. Use these commands to set up the layer
and the ``conf`` directory::
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
Move to the ``conf`` directory and create a ``layer.conf`` file that has the
following::
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/*.bb"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
LAYERSERIES_CORENAMES = "hello_world_example"
LAYERSERIES_COMPAT_mylayer = "hello_world_example"
For information on these variables, click on :term:`BBFILES`,
:term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS`, :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>`
or :term:`LAYERSERIES_COMPAT` to go to the definitions in the glossary.
.. note::
We are setting both ``LAYERSERIES_CORENAMES`` and :term:`LAYERSERIES_COMPAT` in this particular case, because we
are using bitbake without OpenEmbedded.
You should usually just use :term:`LAYERSERIES_COMPAT` to specify the OE-Core versions for which your layer
is compatible, and add the meta-openembedded layer to your project.
You need to create the recipe file next. Inside your layer at the
top-level, use an editor and create a recipe file named
``printhello.bb`` that has the following::
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
The recipe file simply provides
a description of the recipe, the name, version, and the ``do_build``
task, which prints out "Hello World" to the console. For more
information on :term:`DESCRIPTION`, :term:`PN` or :term:`PV`
follow the links to the glossary.
#. **Run BitBake With a Target:** Now that a BitBake target exists, run
the command and provide that target::
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
We have created the layer with the recipe and
the layer configuration file but it still seems that BitBake cannot
find the recipe. BitBake needs a ``conf/bblayers.conf`` that lists
the layers for the project. Without this file, BitBake cannot find
the recipe.
#. **Creating conf/bblayers.conf:** BitBake uses the
``conf/bblayers.conf`` file to locate layers needed for the project.
This file must reside in the ``conf`` directory of the project (i.e.
``hello/conf`` for this example).
Set your working directory to the ``hello/conf`` directory and then
create the ``bblayers.conf`` file so that it contains the following::
BBLAYERS ?= " \
/home/<you>/mylayer \
"
You need to provide your own information for ``you`` in the file.
#. **Run BitBake With a Target:** Now that you have supplied the
``bblayers.conf`` file, run the ``bitbake`` command and provide the
target::
$ bitbake printhello
Loading cache: 100% |
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |##################################################################################|
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |###############################################################################|
NOTE: No setscene tasks
NOTE: Executing Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
.. note::
After the first execution, re-running bitbake printhello again will not
result in a BitBake run that prints the same console output. The reason
for this is that the first time the printhello.bb recipe's do_build task
executes successfully, BitBake writes a stamp file for the task. Thus,
the next time you attempt to run the task using that same bitbake
command, BitBake notices the stamp and therefore determines that the task
does not need to be re-run. If you delete the tmp directory or run
bitbake -c clean printhello and then re-run the build, the "Hello,
World!" message will be printed again.

View File

@@ -0,0 +1,505 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<appendix id='hello-world-example'>
<title>Hello World Example</title>
<section id='bitbake-hello-world'>
<title>BitBake Hello World</title>
<para>
The simplest example commonly used to demonstrate any new
programming language or tool is the
"<ulink url="http://en.wikipedia.org/wiki/Hello_world_program">Hello World</ulink>"
example.
This appendix demonstrates, in tutorial form, Hello
World within the context of BitBake.
The tutorial describes how to create a new project
and the applicable metadata files necessary to allow
BitBake to build it.
</para>
</section>
<section id='example-obtaining-bitbake'>
<title>Obtaining BitBake</title>
<para>
See the
"<link linkend='obtaining-bitbake'>Obtaining BitBake</link>"
section for information on how to obtain BitBake.
Once you have the source code on your machine, the BitBake directory
appears as follows:
<literallayout class='monospaced'>
$ ls -al
total 100
drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 .
drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 ..
-rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin
drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build
-rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib
-rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc
-rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore
-rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER
drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib
-rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in
-rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO
</literallayout>
</para>
<para>
At this point, you should have BitBake cloned to
a directory that matches the previous listing except for
dates and user names.
</para>
</section>
<section id='setting-up-the-bitbake-environment'>
<title>Setting Up the BitBake Environment</title>
<para>
First, you need to be sure that you can run BitBake.
Set your working directory to where your local BitBake
files are and run the following command:
<literallayout class='monospaced'>
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
</literallayout>
The console output tells you what version you are running.
</para>
<para>
The recommended method to run BitBake is from a directory of your
choice.
To be able to run BitBake from any directory, you need to add the
executable binary to your binary to your shell's environment
<filename>PATH</filename> variable.
First, look at your current <filename>PATH</filename> variable
by entering the following:
<literallayout class='monospaced'>
$ echo $PATH
</literallayout>
Next, add the directory location for the BitBake binary to the
<filename>PATH</filename>.
Here is an example that adds the
<filename>/home/scott-lenovo/bitbake/bin</filename> directory
to the front of the <filename>PATH</filename> variable:
<literallayout class='monospaced'>
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
</literallayout>
You should now be able to enter the <filename>bitbake</filename>
command from the command line while working from any directory.
</para>
</section>
<section id='the-hello-world-example'>
<title>The Hello World Example</title>
<para>
The overall goal of this exercise is to build a
complete "Hello World" example utilizing task and layer
concepts.
Because this is how modern projects such as OpenEmbedded and
the Yocto Project utilize BitBake, the example
provides an excellent starting point for understanding
BitBake.
</para>
<para>
To help you understand how to use BitBake to build targets,
the example starts with nothing but the <filename>bitbake</filename>
command, which causes BitBake to fail and report problems.
The example progresses by adding pieces to the build to
eventually conclude with a working, minimal "Hello World"
example.
</para>
<para>
While every attempt is made to explain what is happening during
the example, the descriptions cannot cover everything.
You can find further information throughout this manual.
Also, you can actively participate in the
<ulink url='http://lists.openembedded.org/mailman/listinfo/bitbake-devel'></ulink>
discussion mailing list about the BitBake build tool.
</para>
<note>
This example was inspired by and drew heavily from these sources:
<itemizedlist>
<listitem><para>
<ulink url="http://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html">Mailing List post - The BitBake equivalent of "Hello, World!"</ulink>
</para></listitem>
<listitem><para>
<ulink url="http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/">Hambedded Linux blog post - From Bitbake Hello World to an Image</ulink>
</para></listitem>
</itemizedlist>
</note>
<para>
As stated earlier, the goal of this example
is to eventually compile "Hello World".
However, it is unknown what BitBake needs and what you have
to provide in order to achieve that goal.
Recall that BitBake utilizes three types of metadata files:
<link linkend='configuration-files'>Configuration Files</link>,
<link linkend='classes'>Classes</link>, and
<link linkend='recipes'>Recipes</link>.
But where do they go?
How does BitBake find them?
BitBake's error messaging helps you answer these types of questions
and helps you better understand exactly what is going on.
</para>
<para>
Following is the complete "Hello World" example.
</para>
<orderedlist>
<listitem><para><emphasis>Create a Project Directory:</emphasis>
First, set up a directory for the "Hello World" project.
Here is how you can do so in your home directory:
<literallayout class='monospaced'>
$ mkdir ~/hello
$ cd ~/hello
</literallayout>
This is the directory that BitBake will use to do all of
its work.
You can use this directory to keep all the metafiles needed
by BitBake.
Having a project directory is a good way to isolate your
project.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
At this point, you have nothing but a project directory.
Run the <filename>bitbake</filename> command and see what
it does:
<literallayout class='monospaced'>
$ bitbake
The BBPATH variable is not set and bitbake did not
find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment:
GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP,
GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy,
XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL,
MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR,
GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID,
XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS,
_, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH,
UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS
</literallayout>
The majority of this output is specific to environment variables
that are not directly relevant to BitBake.
However, the very first message regarding the
<filename>BBPATH</filename> variable and the
<filename>conf/bblayers.conf</filename> file
is relevant.</para>
<para>
When you run BitBake, it begins looking for metadata files.
The
<link linkend='var-BBPATH'><filename>BBPATH</filename></link>
variable is what tells BitBake where to look for those files.
<filename>BBPATH</filename> is not set and you need to set it.
Without <filename>BBPATH</filename>, Bitbake cannot
find any configuration files (<filename>.conf</filename>)
or recipe files (<filename>.bb</filename>) at all.
BitBake also cannot find the <filename>bitbake.conf</filename>
file.
</para></listitem>
<listitem><para><emphasis>Setting <filename>BBPATH</filename>:</emphasis>
For this example, you can set <filename>BBPATH</filename>
in the same manner that you set <filename>PATH</filename>
earlier in the appendix.
You should realize, though, that it is much more flexible to set the
<filename>BBPATH</filename> variable up in a configuration
file for each project.</para>
<para>From your shell, enter the following commands to set and
export the <filename>BBPATH</filename> variable:
<literallayout class='monospaced'>
$ BBPATH="<replaceable>projectdirectory</replaceable>"
$ export BBPATH
</literallayout>
Use your actual project directory in the command.
BitBake uses that directory to find the metadata it needs for
your project.
<note>
When specifying your project directory, do not use the
tilde ("~") character as BitBake does not expand that character
as the shell would.
</note>
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
Now that you have <filename>BBPATH</filename> defined, run
the <filename>bitbake</filename> command again:
<literallayout class='monospaced'>
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle
abs_fn = resolve_file(fn, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file
raise IOError("file %s not found in %s" % (fn, bbpath))
IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello
ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello
</literallayout>
This sample output shows that BitBake could not find the
<filename>conf/bitbake.conf</filename> file in the project
directory.
This file is the first thing BitBake must find in order
to build a target.
And, since the project directory for this example is
empty, you need to provide a <filename>conf/bitbake.conf</filename>
file.
</para></listitem>
<listitem><para><emphasis>Creating <filename>conf/bitbake.conf</filename>:</emphasis>
The <filename>conf/bitbake.conf</filename> includes a number of
configuration variables BitBake uses for metadata and recipe
files.
For this example, you need to create the file in your project directory
and define some key BitBake variables.
For more information on the <filename>bitbake.conf</filename>,
see
<ulink url='http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#an-overview-of-bitbakeconf'></ulink>
</para>
<para>Use the following commands to create the <filename>conf</filename>
directory in the project directory:
<literallayout class='monospaced'>
$ mkdir conf
</literallayout>
From within the <filename>conf</filename> directory, use
some editor to create the <filename>bitbake.conf</filename>
so that it contains the following:
<literallayout class='monospaced'>
TMPDIR = "${<link linkend='var-TOPDIR'>TOPDIR</link>}/tmp"
<link linkend='var-CACHE'>CACHE</link> = "${TMPDIR}/cache"
<link linkend='var-STAMP'>STAMP</link> = "${TMPDIR}/stamps"
<link linkend='var-T'>T</link> = "${TMPDIR}/work"
<link linkend='var-B'>B</link> = "${TMPDIR}"
</literallayout>
The <filename>TMPDIR</filename> variable establishes a directory
that BitBake uses for build output and intermediate files (other
than the cached information used by the
<link linkend='setscene'>Setscene</link> process.
Here, the <filename>TMPDIR</filename> directory is set to
<filename>hello/tmp</filename>.
<note><title>Tip</title>
You can always safely delete the <filename>tmp</filename>
directory in order to rebuild a BitBake target.
The build process creates the directory for you
when you run BitBake.
</note></para>
<para>For information about each of the other variables defined in this
example, click on the links to take you to the definitions in
the glossary.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
After making sure that the <filename>conf/bitbake.conf</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
<literallayout class='monospaced'>
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit
include(fn, file, lineno, d, "inherit")
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
</literallayout>
In the sample output, BitBake could not find the
<filename>classes/base.bbclass</filename> file.
You need to create that file next.
</para></listitem>
<listitem><para><emphasis>Creating <filename>classes/base.bbclass</filename>:</emphasis>
BitBake uses class files to provide common code and functionality.
The minimally required class for BitBake is the
<filename>classes/base.bbclass</filename> file.
The <filename>base</filename> class is implicitly inherited by
every recipe.
BitBake looks for the class in the <filename>classes</filename>
directory of the project (i.e <filename>hello/classes</filename>
in this example).
</para>
<para>Create the <filename>classes</filename> directory as follows:
<literallayout class='monospaced'>
$ cd $HOME/hello
$ mkdir classes
</literallayout>
Move to the <filename>classes</filename> directory and then
create the <filename>base.bbclass</filename> file by inserting
this single line:
<literallayout class='monospaced'>
addtask build
</literallayout>
The minimal task that BitBake runs is the
<filename>do_build</filename> task.
This is all the example needs in order to build the project.
Of course, the <filename>base.bbclass</filename> can have much
more depending on which build environments BitBake is
supporting.
For more information on the <filename>base.bbclass</filename> file,
you can look at
<ulink url='http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#tasks'></ulink>.
</para></listitem>
<listitem><para><emphasis>Run Bitbake:</emphasis>
After making sure that the <filename>classes/base.bbclass</filename>
file exists, you can run the <filename>bitbake</filename>
command again:
<literallayout class='monospaced'>
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
</literallayout>
BitBake is finally reporting no errors.
However, you can see that it really does not have anything
to do.
You need to create a recipe that gives BitBake something to do.
</para></listitem>
<listitem><para><emphasis>Creating a Layer:</emphasis>
While it is not really necessary for such a small example,
it is good practice to create a layer in which to keep your
code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
<note>
You can find additional information on adding a layer at
<ulink url='http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/#adding-an-example-layer'></ulink>.
</note>
</para>
<para>Minimally, you need a recipe file and a layer configuration
file in your layer.
The configuration file needs to be in the <filename>conf</filename>
directory inside the layer.
Use these commands to set up the layer and the <filename>conf</filename>
directory:
<literallayout class='monospaced'>
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
</literallayout>
Move to the <filename>conf</filename> directory and create a
<filename>layer.conf</filename> file that has the following:
<literallayout class='monospaced'>
BBPATH .= ":${<link linkend='var-LAYERDIR'>LAYERDIR</link>}"
<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_RE}/"
</literallayout>
For information on these variables, click the links
to go to the definitions in the glossary.</para>
<para>You need to create the recipe file next.
Inside your layer at the top-level, use an editor and create
a recipe file named <filename>printhello.bb</filename> that
has the following:
<literallayout class='monospaced'>
<link linkend='var-DESCRIPTION'>DESCRIPTION</link> = "Prints Hello World"
<link linkend='var-PN'>PN</link> = 'printhello'
<link linkend='var-PV'>PV</link> = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
</literallayout>
The recipe file simply provides a description of the
recipe, the name, version, and the <filename>do_build</filename>
task, which prints out "Hello World" to the console.
For more information on these variables, follow the links
to the glossary.
</para></listitem>
<listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
Now that a BitBake target exists, run the command and provide
that target:
<literallayout class='monospaced'>
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
</literallayout>
We have created the layer with the recipe and the layer
configuration file but it still seems that BitBake cannot
find the recipe.
BitBake needs a <filename>conf/bblayers.conf</filename> that
lists the layers for the project.
Without this file, BitBake cannot find the recipe.
</para></listitem>
<listitem><para><emphasis>Creating <filename>conf/bblayers.conf</filename>:</emphasis>
BitBake uses the <filename>conf/bblayers.conf</filename> file
to locate layers needed for the project.
This file must reside in the <filename>conf</filename> directory
of the project (i.e. <filename>hello/conf</filename> for this
example).</para>
<para>Set your working directory to the <filename>hello/conf</filename>
directory and then create the <filename>bblayers.conf</filename>
file so that it contains the following:
<literallayout class='monospaced'>
BBLAYERS ?= " \
/home/&lt;you&gt;/mylayer \
"
</literallayout>
You need to provide your own information for
<filename>you</filename> in the file.
</para></listitem>
<listitem><para><emphasis>Run Bitbake With a Target:</emphasis>
Now that you have supplied the <filename>bblayers.conf</filename>
file, run the <filename>bitbake</filename> command and provide
the target:
<literallayout class='monospaced'>
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
</literallayout>
BitBake finds the <filename>printhello</filename> recipe and
successfully runs the task.
<note>
After the first execution, re-running
<filename>bitbake printhello</filename> again will not
result in a BitBake run that prints the same console
output.
The reason for this is that the first time the
<filename>printhello.bb</filename> recipe's
<filename>do_build</filename> task executes
successfully, BitBake writes a stamp file for the task.
Thus, the next time you attempt to run the task
using that same <filename>bitbake</filename> command,
BitBake notices the stamp and therefore determines
that the task does not need to be re-run.
If you delete the <filename>tmp</filename> directory
or run <filename>bitbake -c clean printhello</filename>
and then re-run the build, the "Hello, World!" message will
be printed again.
</note>
</para></listitem>
</orderedlist>
</section>
</appendix>

View File

@@ -1,653 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
========
Overview
========
|
Welcome to the BitBake User Manual. This manual provides information on
the BitBake tool. The information attempts to be as independent as
possible regarding systems that use BitBake, such as OpenEmbedded and
the Yocto Project. In some cases, scenarios or examples within the
context of a build system are used in the manual to help with
understanding. For these cases, the manual clearly states the context.
.. _intro:
Introduction
============
Fundamentally, BitBake is a generic task execution engine that allows
shell and Python tasks to be run efficiently and in parallel while
working within complex inter-task dependency constraints. One of
BitBake's main users, OpenEmbedded, takes this core and builds embedded
Linux software stacks using a task-oriented approach.
Conceptually, BitBake is similar to GNU Make in some regards but has
significant differences:
- BitBake executes tasks according to the provided metadata that builds up
the tasks. Metadata is stored in recipe (``.bb``) and related recipe
"append" (``.bbappend``) files, configuration (``.conf``) and
underlying include (``.inc``) files, and in class (``.bbclass``)
files. The metadata provides BitBake with instructions on what tasks
to run and the dependencies between those tasks.
- BitBake includes a fetcher library for obtaining source code from
various places such as local files, source control systems, or
websites.
- The instructions for each unit to be built (e.g. a piece of software)
are known as "recipe" files and contain all the information about the
unit (dependencies, source file locations, checksums, description and
so on).
- BitBake includes a client/server abstraction and can be used from a
command line or used as a service over XML-RPC and has several
different user interfaces.
History and Goals
=================
BitBake was originally a part of the OpenEmbedded project. It was
inspired by the Portage package management system used by the Gentoo
Linux distribution. On December 7, 2004, OpenEmbedded project team
member Chris Larson split the project into two distinct pieces:
- BitBake, a generic task executor
- OpenEmbedded, a metadata set utilized by BitBake
Today, BitBake is the primary basis of the
`OpenEmbedded <https://www.openembedded.org/>`__ project, which is being
used to build and maintain Linux distributions such as the `Poky
Reference Distribution <https://www.yoctoproject.org/software-item/poky/>`__,
developed under the umbrella of the `Yocto Project <https://www.yoctoproject.org>`__.
Prior to BitBake, no other build tool adequately met the needs of an
aspiring embedded Linux distribution. All of the build systems used by
traditional desktop Linux distributions lacked important functionality,
and none of the ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
Some important original goals for BitBake were:
- Handle cross-compilation.
- Handle inter-package dependencies (build time on target architecture,
build time on native architecture, and runtime).
- Support running any number of tasks within a given package,
including, but not limited to, fetching upstream sources, unpacking
them, patching them, configuring them, and so forth.
- Be Linux distribution agnostic for both build and target systems.
- Be architecture agnostic.
- Support multiple build and target operating systems (e.g. Cygwin, the
BSDs, and so forth).
- Be self-contained, rather than tightly integrated into the build
machine's root filesystem.
- Handle conditional metadata on the target architecture, operating
system, distribution, and machine.
- Be easy to use the tools to supply local metadata and packages
against which to operate.
- Be easy to use BitBake to collaborate between multiple projects for
their builds.
- Provide an inheritance mechanism to share common metadata between
many packages.
Over time it became apparent that some further requirements were
necessary:
- Handle variants of a base recipe (e.g. native, sdk, and multilib).
- Split metadata into layers and allow layers to enhance or override
other layers.
- Allow representation of a given set of input variables to a task as a
checksum. Based on that checksum, allow acceleration of builds with
prebuilt components.
BitBake satisfies all the original requirements and many more with
extensions being made to the basic functionality to reflect the
additional requirements. Flexibility and power have always been the
priorities. BitBake is highly extensible and supports embedded Python
code and execution of any arbitrary tasks.
.. _Concepts:
Concepts
========
BitBake is a program written in the Python language. At the highest
level, BitBake interprets metadata, decides what tasks are required to
run, and executes those tasks. Similar to GNU Make, BitBake controls how
software is built. GNU Make achieves its control through "makefiles",
while BitBake uses "recipes".
BitBake extends the capabilities of a simple tool like GNU Make by
allowing for the definition of much more complex tasks, such as
assembling entire embedded Linux distributions.
The remainder of this section introduces several concepts that should be
understood in order to better leverage the power of BitBake.
Recipes
-------
BitBake Recipes, which are denoted by the file extension ``.bb``, are
the most basic metadata files. These recipe files provide BitBake with
the following:
- Descriptive information about the package (author, homepage, license,
and so on)
- The version of the recipe
- Existing dependencies (both build and runtime dependencies)
- Where the source code resides and how to fetch it
- Whether the source code requires any patches, where to find them, and
how to apply them
- How to configure and compile the source code
- How to assemble the generated artifacts into one or more installable
packages
- Where on the target machine to install the package or packages
created
Within the context of BitBake, or any project utilizing BitBake as its
build system, files with the ``.bb`` extension are referred to as
recipes.
.. note::
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged output from
a project, it is best to maintain a single descriptive term -
"recipes". Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages". In fact, that ability is fairly common.
Configuration Files
-------------------
Configuration files, which are denoted by the ``.conf`` extension,
define various configuration variables that govern the project's build
process. These files fall into several areas that define machine
configuration, distribution configuration, possible compiler tuning,
general common configuration, and user configuration. The main
configuration file is the sample ``bitbake.conf`` file, which is located
within the BitBake source tree ``conf`` directory.
Classes
-------
Class files, which are denoted by the ``.bbclass`` extension, contain
information that is useful to share between metadata files. The BitBake
source tree currently comes with one class metadata file called
``base.bbclass``. You can find this file in the ``classes`` directory.
The ``base.bbclass`` class files is special since it is always included
automatically for all recipes and classes. This class contains
definitions for standard basic tasks such as fetching, unpacking,
configuring (empty by default), compiling (runs any Makefile present),
installing (empty by default) and packaging (empty by default). These
tasks are often overridden or extended by other classes added during the
project development process.
Layers
------
Layers allow you to isolate different types of customizations from each
other. While you might find it tempting to keep everything in one layer
when working on a single project, the more modular your metadata, the
easier it is to cope with future changes.
To illustrate how you can use layers to keep things modular, consider
customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP) layer.
Furthermore, the machine customizations should be isolated from recipes
and metadata that support a new GUI environment, for example. This
situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment. It is important to
understand, however, that the BSP layer can still make machine-specific
additions to recipes within the GUI environment layer without polluting
the GUI layer itself with those machine-specific changes. You can
accomplish this through a recipe that is a BitBake append
(``.bbappend``) file.
.. _append-bbappend-files:
Append Files
------------
Append files, which are files that have the ``.bbappend`` file
extension, extend or override information in an existing recipe file.
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file must use the
same root filename. The filenames can differ only in the file type
suffix used (e.g. ``formfactor_0.0.bb`` and
``formfactor_0.0.bbappend``).
Information in append files extends or overrides the information in the
underlying, similarly-named recipe files.
When you name an append file, you can use the "``%``" wildcard character
to allow for matching recipe names. For example, suppose you have an
append file named as follows::
busybox_1.21.%.bbappend
That append file
would match any ``busybox_1.21.``\ x\ ``.bb`` version of the recipe. So,
the append file would match the following recipe names::
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
.. note::
The use of the " % " character is limited in that it only works directly in
front of the .bbappend portion of the append file's name. You cannot use the
wildcard character in any other location of the name.
If the ``busybox`` recipe was updated to ``busybox_1.3.0.bb``, the
append name would not match. However, if you named the append file
``busybox_1.%.bbappend``, then you would have a match.
In the most general case, you could name the append file something as
simple as ``busybox_%.bbappend`` to be entirely version independent.
Obtaining BitBake
=================
You can obtain BitBake several different ways:
- **Cloning BitBake:** Using Git to clone the BitBake source code
repository is the recommended method for obtaining BitBake. Cloning
the repository makes it easy to get bug fixes and have access to
stable branches and the master branch. Once you have cloned BitBake,
you should use the latest stable branch for development since the
master branch is for BitBake development and might contain less
stable changes.
You usually need a version of BitBake that matches the metadata you
are using. The metadata is generally backwards compatible but not
forward compatible.
Here is an example that clones the BitBake repository::
$ git clone git://git.openembedded.org/bitbake
This command clones the BitBake
Git repository into a directory called ``bitbake``. Alternatively,
you can designate a directory after the ``git clone`` command if you
want to call the new directory something other than ``bitbake``. Here
is an example that names the directory ``bbdev``::
$ git clone git://git.openembedded.org/bitbake bbdev
- **Installation using your Distribution Package Management System:**
This method is not recommended because the BitBake version that is
provided by your distribution, in most cases, is several releases
behind a snapshot of the BitBake repository.
- **Taking a snapshot of BitBake:** Downloading a snapshot of BitBake
from the source code repository gives you access to a known branch or
release of BitBake.
.. note::
Cloning the Git repository, as described earlier, is the preferred
method for getting BitBake. Cloning the repository makes it easier
to update as patches are added to the stable branches.
The following example downloads a snapshot of BitBake version 1.17.0::
$ wget https://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
After extraction of the tarball using
the tar utility, you have a directory entitled ``bitbake-1.17.0``.
- **Using the BitBake that Comes With Your Build Checkout:** A final
possibility for getting a copy of BitBake is that it already comes
with your checkout of a larger BitBake-based build system, such as
Poky. Rather than manually checking out individual layers and gluing
them together yourself, you can check out an entire build system. The
checkout will already include a version of BitBake that has been
thoroughly tested for compatibility with the other components. For
information on how to check out a particular BitBake-based build
system, consult that build system's supporting documentation.
.. _bitbake-user-manual-command:
The BitBake Command
===================
The ``bitbake`` command is the primary interface to the BitBake tool.
This section presents the BitBake command syntax and provides several
execution examples.
Usage and syntax
----------------
Following is the usage and syntax for BitBake::
$ bitbake -h
Usage: bitbake [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.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue 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.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD 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.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Enable tracing of shell tasks (with 'set -x'). Also
print bb.note(...) messages to stdout (in addition to
writing them to ${T}/log.do_&lt;task&gt;).
-D, --debug Increase the debug level. You can specify this more
than once. -D sets the debug level to 1, where only
bb.debug(1, ...) messages are printed to stdout; -DD
sets the debug level to 2, where both bb.debug(1, ...)
and bb.debug(2, ...) messages are printed; etc.
Without -D, no debug messages are printed. Note that
-D only affects output to stdout. All debug messages
are written to ${T}/log.do_taskname, regardless of the
debug level.
-q, --quiet Output less log message data to the terminal. You can
specify this more than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
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.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (knotty, ncurses, taskexp or
teamcity - default knotty).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake xmlrpc server to bind
to.
-T SERVER_TIMEOUT, --idle-timeout=SERVER_TIMEOUT
Set timeout to unload bitbake server due to
inactivity, set to -1 means no unload, default:
Environment variable BB_SERVER_TIMEOUT.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--skip-setscene Skip setscene tasks if they would be executed. Tasks
previously restored from sstate will be kept, unlike
--no-setscene
--setscene-only Only run setscene tasks, don't run any real tasks.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
--runall=RUNALL Run the specified task for any recipe in the taskgraph
of the specified target (even if it wouldn't otherwise
have run).
--runonly=RUNONLY Run only the specified task within the taskgraph of
the specified targets (and any task dependencies those
tasks may have).
.. _bitbake-examples:
Examples
--------
This section presents some examples showing how to use BitBake.
.. _example-executing-a-task-against-a-single-recipe:
Executing a Task Against a Single Recipe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Executing tasks for a single recipe file is relatively simple. You
specify the file in question, and BitBake parses it and executes the
specified task. If you do not specify a task, BitBake executes the
default task, which is "build". BitBake obeys inter-task dependencies
when doing so.
The following command runs the build task, which is the default task, on
the ``foo_1.0.bb`` recipe file::
$ bitbake -b foo_1.0.bb
The following command runs the clean task on the ``foo.bb`` recipe file::
$ bitbake -b foo.bb -c clean
.. note::
The "-b" option explicitly does not handle recipe dependencies. Other
than for debugging purposes, it is instead recommended that you use
the syntax presented in the next section.
Executing Tasks Against a Set of Recipe Files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a number of additional complexities introduced when one wants
to manage multiple ``.bb`` files. Clearly there needs to be a way to
tell BitBake what files are available and, of those, which you want to
execute. There also needs to be a way for each recipe to express its
dependencies, both for build-time and runtime. There must be a way for
you to express recipe preferences when multiple recipes provide the same
functionality, or when there are multiple versions of a recipe.
The ``bitbake`` command, when not using "--buildfile" or "-b" only
accepts a "PROVIDES". You cannot provide anything else. By default, a
recipe file generally "PROVIDES" its "packagename" as shown in the
following example::
$ bitbake foo
This next example "PROVIDES" the
package name and also uses the "-c" option to tell BitBake to just
execute the ``do_clean`` task::
$ bitbake -c clean foo
Executing a List of Task and Recipe Combinations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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) ``myfirstrecipe`` and
``mysecondrecipe`` and you needed BitBake to run ``taskA`` for the first
recipe and ``taskB`` for the second recipe::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
Generating Dependency Graphs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to generate dependency graphs using the ``dot`` syntax.
You can convert these graphs into images using the ``dot`` tool from
`Graphviz <http://www.graphviz.org>`__.
When you generate a dependency graph, BitBake writes two files to the
current working directory:
- ``task-depends.dot``: Shows dependencies between tasks. These
dependencies match BitBake's internal task execution list.
- ``pn-buildlist``: Shows a simple list of targets that are to be
built.
To stop depending on common depends, use the ``-I`` depend option and
BitBake omits them from the graph. Leaving this information out can
produce more readable graphs. This way, you can remove from the graph
:term:`DEPENDS` from inherited classes such as ``base.bbclass``.
Here are two examples that create dependency graphs. The second example
omits depends common in OpenEmbedded from the graph::
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
Executing a Multiple Configuration Build
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to build multiple images or packages using a single
command where the different targets require different configurations
(multiple configuration builds). Each target, in this scenario, is
referred to as a "multiconfig".
To accomplish a multiple configuration build, you must define each
target's configuration separately using a parallel configuration file in
the build directory. The location for these multiconfig configuration
files is specific. They must reside in the current build directory in a
sub-directory of ``conf`` named ``multiconfig``. Following is an example
for two separate targets:
.. image:: figures/bb_multiconfig_files.png
:align: center
The reason for this required file hierarchy is because the :term:`BBPATH`
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.
Minimally, each configuration file must define the machine and the
temporary directory BitBake uses for the build. Suggested practice
dictates that you do not overlap the temporary directories used during
the builds.
Aside from separate configuration files for each target, you must also
enable BitBake to perform multiple configuration builds. Enabling is
accomplished by setting the
:term:`BBMULTICONFIG` variable in the
``local.conf`` configuration file. As an example, suppose you had
configuration files for ``target1`` and ``target2`` defined in the build
directory. The following statement in the ``local.conf`` file both
enables BitBake to perform multiple configuration builds and specifies
the two extra multiconfigs::
BBMULTICONFIG = "target1 target2"
Once the target configuration files are in place and BitBake has been
enabled to perform multiple configuration builds, use the following
command form to start the builds::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
Here is an example for two extra multiconfigs: ``target1`` and ``target2``::
$ bitbake mc::target mc:target1:target mc:target2:target
.. _bb-enabling-multiple-configuration-build-dependencies:
Enabling Multiple Configuration Build Dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sometimes dependencies can exist between targets (multiconfigs) in a
multiple configuration build. For example, suppose that in order to
build an image for a particular architecture, the root filesystem of
another build for a different architecture needs to exist. In other
words, the image for the first multiconfig depends on the root
filesystem of the second multiconfig. This dependency is essentially
that the task in the recipe that builds one multiconfig is dependent on
the completion of the task in the recipe that builds another
multiconfig.
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
form::
task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
To better show how to use this statement, consider an example with two
multiconfigs: ``target1`` and ``target2``::
image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task"
In this example, the
``from_multiconfig`` is "target1" and the ``to_multiconfig`` is "target2". The
task on which the image whose recipe contains image_task depends on the
completion of the rootfs_task used to build out image2, which is
associated with the "target2" multiconfig.
Once you set up this dependency, you can build the "target1" multiconfig
using a BitBake command as follows::
$ bitbake mc:target1:image1
This command executes all the tasks needed to create ``image1`` for the "target1"
multiconfig. Because of the dependency, BitBake also executes through
the ``rootfs_task`` for the "target2" multiconfig build.
Having a recipe depend on the root filesystem of another build might not
seem that useful. Consider this change to the statement in the image1
recipe::
image_task[mcdepends] = "mc:target1:target2:image2:image_task"
In this case, BitBake must create ``image2`` for the "target2" build since
the "target1" build depends on it.
Because "target1" and "target2" are enabled for multiple configuration
builds and have separate configuration files, BitBake places the
artifacts for each build in the respective temporary build directories.

View File

@@ -0,0 +1,721 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id="bitbake-user-manual-intro">
<title>Overview</title>
<para>
Welcome to the BitBake User Manual.
This manual provides information on the BitBake tool.
The information attempts to be as independent as possible regarding
systems that use BitBake, such as OpenEmbedded and the
Yocto Project.
In some cases, scenarios or examples within the context of
a build system are used in the manual to help with understanding.
For these cases, the manual clearly states the context.
</para>
<section id="intro">
<title>Introduction</title>
<para>
Fundamentally, BitBake is a generic task execution
engine that allows shell and Python tasks to be run
efficiently and in parallel while working within
complex inter-task dependency constraints.
One of BitBake's main users, OpenEmbedded, takes this core
and builds embedded Linux software stacks using
a task-oriented approach.
</para>
<para>
Conceptually, BitBake is similar to GNU Make in
some regards but has significant differences:
<itemizedlist>
<listitem><para>
BitBake executes tasks according to provided
metadata that builds up the tasks.
Metadata is stored in recipe (<filename>.bb</filename>)
and related recipe "append" (<filename>.bbappend</filename>)
files, configuration (<filename>.conf</filename>) and
underlying include (<filename>.inc</filename>) files, and
in class (<filename>.bbclass</filename>) files.
The metadata provides
BitBake with instructions on what tasks to run and
the dependencies between those tasks.
</para></listitem>
<listitem><para>
BitBake includes a fetcher library for obtaining source
code from various places such as local files, source control
systems, or websites.
</para></listitem>
<listitem><para>
The instructions for each unit to be built (e.g. a piece
of software) are known as "recipe" files and
contain all the information about the unit
(dependencies, source file locations, checksums, description
and so on).
</para></listitem>
<listitem><para>
BitBake includes a client/server abstraction and can
be used from a command line or used as a service over
XML-RPC and has several different user interfaces.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id="history-and-goals">
<title>History and Goals</title>
<para>
BitBake was originally a part of the OpenEmbedded project.
It was inspired by the Portage package management system
used by the Gentoo Linux distribution.
On December 7, 2004, OpenEmbedded project team member
Chris Larson split the project into two distinct pieces:
<itemizedlist>
<listitem><para>BitBake, a generic task executor</para></listitem>
<listitem><para>OpenEmbedded, a metadata set utilized by
BitBake</para></listitem>
</itemizedlist>
Today, BitBake is the primary basis of the
<ulink url="http://www.openembedded.org/">OpenEmbedded</ulink>
project, which is being used to build and maintain Linux
distributions such as the
<ulink url='http://www.angstrom-distribution.org/'>Angstrom Distribution</ulink>,
and which is also being used as the build tool for Linux projects
such as the
<ulink url='http://www.yoctoproject.org'>Yocto Project</ulink>.
</para>
<para>
Prior to BitBake, no other build tool adequately met the needs of
an aspiring embedded Linux distribution.
All of the build systems used by traditional desktop Linux
distributions lacked important functionality, and none of the
ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
</para>
<para>
Some important original goals for BitBake were:
<itemizedlist>
<listitem><para>
Handle cross-compilation.
</para></listitem>
<listitem><para>
Handle inter-package dependencies (build time on
target architecture, build time on native
architecture, and runtime).
</para></listitem>
<listitem><para>
Support running any number of tasks within a given
package, including, but not limited to, fetching
upstream sources, unpacking them, patching them,
configuring them, and so forth.
</para></listitem>
<listitem><para>
Be Linux distribution agnostic for both build and
target systems.
</para></listitem>
<listitem><para>
Be architecture agnostic.
</para></listitem>
<listitem><para>
Support multiple build and target operating systems
(e.g. Cygwin, the BSDs, and so forth).
</para></listitem>
<listitem><para>
Be self contained, rather than tightly
integrated into the build machine's root
filesystem.
</para></listitem>
<listitem><para>
Handle conditional metadata on the target architecture,
operating system, distribution, and machine.
</para></listitem>
<listitem><para>
Be easy to use the tools to supply local metadata and packages
against which to operate.
</para></listitem>
<listitem><para>
Be easy to use BitBake to collaborate between multiple
projects for their builds.
</para></listitem>
<listitem><para>
Provide an inheritance mechanism to share
common metadata between many packages.
</para></listitem>
</itemizedlist>
Over time it became apparent that some further requirements
were necessary:
<itemizedlist>
<listitem><para>
Handle variants of a base recipe (e.g. native, sdk,
and multilib).
</para></listitem>
<listitem><para>
Split metadata into layers and allow layers
to enhance or override other layers.
</para></listitem>
<listitem><para>
Allow representation of a given set of input variables
to a task as a checksum.
Based on that checksum, allow acceleration of builds
with prebuilt components.
</para></listitem>
</itemizedlist>
BitBake satisfies all the original requirements and many more
with extensions being made to the basic functionality to
reflect the additional requirements.
Flexibility and power have always been the priorities.
BitBake is highly extensible and supports embedded Python code and
execution of any arbitrary tasks.
</para>
</section>
<section id="Concepts">
<title>Concepts</title>
<para>
BitBake is a program written in the Python language.
At the highest level, BitBake interprets metadata, decides
what tasks are required to run, and executes those tasks.
Similar to GNU Make, BitBake controls how software is
built.
GNU Make achieves its control through "makefiles", while
BitBake uses "recipes".
</para>
<para>
BitBake extends the capabilities of a simple
tool like GNU Make by allowing for the definition of much more
complex tasks, such as assembling entire embedded Linux
distributions.
</para>
<para>
The remainder of this section introduces several concepts
that should be understood in order to better leverage
the power of BitBake.
</para>
<section id='recipes'>
<title>Recipes</title>
<para>
BitBake Recipes, which are denoted by the file extension
<filename>.bb</filename>, are the most basic metadata files.
These recipe files provide BitBake with the following:
<itemizedlist>
<listitem><para>Descriptive information about the
package (author, homepage, license, and so on)</para></listitem>
<listitem><para>The version of the recipe</para></listitem>
<listitem><para>Existing dependencies (both build
and runtime dependencies)</para></listitem>
<listitem><para>Where the source code resides and
how to fetch it</para></listitem>
<listitem><para>Whether the source code requires
any patches, where to find them, and how to apply
them</para></listitem>
<listitem><para>How to configure and compile the
source code</para></listitem>
<listitem><para>Where on the target machine to install the
package or packages created</para></listitem>
</itemizedlist>
</para>
<para>
Within the context of BitBake, or any project utilizing BitBake
as its build system, files with the <filename>.bb</filename>
extension are referred to as recipes.
<note>
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged
output from a project, it is best to maintain a single
descriptive term - "recipes".
Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages".
In fact, that ability is fairly common.
</note>
</para>
</section>
<section id='configuration-files'>
<title>Configuration Files</title>
<para>
Configuration files, which are denoted by the
<filename>.conf</filename> extension, define
various configuration variables that govern the project's build
process.
These files fall into several areas that define
machine configuration options, distribution configuration
options, compiler tuning options, general common
configuration options, and user configuration options.
The main configuration file is the sample
<filename>bitbake.conf</filename> file, which is
located within the BitBake source tree
<filename>conf</filename> directory.
</para>
</section>
<section id='classes'>
<title>Classes</title>
<para>
Class files, which are denoted by the
<filename>.bbclass</filename> extension, contain
information that is useful to share between metadata files.
The BitBake source tree currently comes with one class metadata file
called <filename>base.bbclass</filename>.
You can find this file in the
<filename>classes</filename> directory.
The <filename>base.bbclass</filename> class files is special since it
is always included automatically for all recipes
and classes.
This class contains definitions for standard basic tasks such
as fetching, unpacking, configuring (empty by default),
compiling (runs any Makefile present), installing (empty by
default) and packaging (empty by default).
These tasks are often overridden or extended by other classes
added during the project development process.
</para>
</section>
<section id='layers'>
<title>Layers</title>
<para>
Layers allow you to isolate different types of
customizations from each other.
While you might find it tempting to keep everything in one layer
when working on a single project, the more modular you organize
your metadata, the easier it is to cope with future changes.
</para>
<para>
To illustrate how you can use layers to keep things modular,
consider customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP)
Layer.
Furthermore, the machine customizations should be isolated from
recipes and metadata that support a new GUI environment, for
example.
This situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment.
It is important to understand, however, that the BSP layer can still
make machine-specific additions to recipes within
the GUI environment layer without polluting the GUI layer itself
with those machine-specific changes.
You can accomplish this through a recipe that is a BitBake append
(<filename>.bbappend</filename>) file.
</para>
</section>
<section id='append-bbappend-files'>
<title>Append Files</title>
<para>
Append files, which are files that have the
<filename>.bbappend</filename> file extension, extend or
override information in an existing recipe file.
</para>
<para>
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file
must use the same root filename.
The filenames can differ only in the file type suffix used
(e.g. <filename>formfactor_0.0.bb</filename> and
<filename>formfactor_0.0.bbappend</filename>).
</para>
<para>
Information in append files extends or
overrides the information in the underlying,
similarly-named recipe files.
</para>
<para>
When you name an append file, you can use the
wildcard character (%) to allow for matching recipe names.
For example, suppose you have an append file named
as follows:
<literallayout class='monospaced'>
busybox_1.21.%.bbappend
</literallayout>
That append file would match any <filename>busybox_1.21.x.bb</filename>
version of the recipe.
So, the append file would match the following recipe names:
<literallayout class='monospaced'>
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
</literallayout>
If the <filename>busybox</filename> recipe was updated to
<filename>busybox_1.3.0.bb</filename>, the append name would not
match.
However, if you named the append file
<filename>busybox_1.%.bbappend</filename>, then you would have a match.
</para>
<para>
In the most general case, you could name the append file something as
simple as <filename>busybox_%.bbappend</filename> to be entirely
version independent.
</para>
</section>
</section>
<section id='obtaining-bitbake'>
<title>Obtaining BitBake</title>
<para>
You can obtain BitBake several different ways:
<itemizedlist>
<listitem><para><emphasis>Cloning BitBake:</emphasis>
Using Git to clone the BitBake source code repository
is the recommended method for obtaining BitBake.
Cloning the repository makes it easy to get bug fixes
and have access to stable branches and the master
branch.
Once you have cloned BitBake, you should use
the latest stable
branch for development since the master branch is for
BitBake development and might contain less stable changes.
</para>
<para>You usually need a version of BitBake
that matches the metadata you are using.
The metadata is generally backwards compatible but
not forward compatible.</para>
<para>Here is an example that clones the BitBake repository:
<literallayout class='monospaced'>
$ git clone git://git.openembedded.org/bitbake
</literallayout>
This command clones the BitBake Git repository into a
directory called <filename>bitbake</filename>.
Alternatively, you can
designate a directory after the
<filename>git clone</filename> command
if you want to call the new directory something
other than <filename>bitbake</filename>.
Here is an example that names the directory
<filename>bbdev</filename>:
<literallayout class='monospaced'>
$ git clone git://git.openembedded.org/bitbake bbdev
</literallayout></para></listitem>
<listitem><para><emphasis>Installation using your Distribution
Package Management System:</emphasis>
This method is not
recommended because the BitBake version that is
provided by your distribution, in most cases,
is several
releases behind a snapshot of the BitBake repository.
</para></listitem>
<listitem><para><emphasis>Taking a snapshot of BitBake:</emphasis>
Downloading a snapshot of BitBake from the
source code repository gives you access to a known
branch or release of BitBake.
<note>
Cloning the Git repository, as described earlier,
is the preferred method for getting BitBake.
Cloning the repository makes it easier to update as
patches are added to the stable branches.
</note></para>
<para>The following example downloads a snapshot of
BitBake version 1.17.0:
<literallayout class='monospaced'>
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
</literallayout>
After extraction of the tarball using the tar utility,
you have a directory entitled
<filename>bitbake-1.17.0</filename>.
</para></listitem>
<listitem><para><emphasis>Using the BitBake that Comes With Your
Build Checkout:</emphasis>
A final possibility for getting a copy of BitBake is that it
already comes with your checkout of a larger Bitbake-based build
system, such as Poky or Yocto Project.
Rather than manually checking out individual layers and
gluing them together yourself, you can check
out an entire build system.
The checkout will already include a version of BitBake that
has been thoroughly tested for compatibility with the other
components.
For information on how to check out a particular BitBake-based
build system, consult that build system's supporting documentation.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id="bitbake-user-manual-command">
<title>The BitBake Command</title>
<para>
The <filename>bitbake</filename> command is the primary interface
to the BitBake tool.
This section presents the BitBake command syntax and provides
several execution examples.
</para>
<section id='usage-and-syntax'>
<title>Usage and syntax</title>
<para>
Following is the usage and syntax for BitBake:
<literallayout class='monospaced'>
$ bitbake -h
Usage: bitbake [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.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue 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.
-a, --tryaltconfigs Continue with builds by trying to use alternative
providers where possible.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD 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.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Enable tracing of shell tasks (with 'set -x').
Also print bb.note(...) messages to stdout (in
addition to writing them to ${T}/log.do_&lt;task&gt;).
-D, --debug Increase the debug level. You can specify this
more than once. -D sets the debug level to 1,
where only bb.debug(1, ...) messages are printed
to stdout; -DD sets the debug level to 2, where
both bb.debug(1, ...) and bb.debug(2, ...)
messages are printed; etc. Without -D, no debug
messages are printed. Note that -D only affects
output to stdout. All debug messages are written
to ${T}/log.do_taskname, regardless of the debug
level.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
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.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (taskexp, knotty or
ncurses - default knotty).
-t SERVERTYPE, --servertype=SERVERTYPE
Choose which server type to use (process or xmlrpc -
default process).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake server to bind to.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--setscene-only Only run setscene tasks, don't run any real tasks.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate the remote server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
</literallayout>
</para>
</section>
<section id='bitbake-examples'>
<title>Examples</title>
<para>
This section presents some examples showing how to use BitBake.
</para>
<section id='example-executing-a-task-against-a-single-recipe'>
<title>Executing a Task Against a Single Recipe</title>
<para>
Executing tasks for a single recipe file is relatively simple.
You specify the file in question, and BitBake parses
it and executes the specified task.
If you do not specify a task, BitBake executes the default
task, which is "build”.
BitBake obeys inter-task dependencies when doing
so.
</para>
<para>
The following command runs the build task, which is
the default task, on the <filename>foo_1.0.bb</filename>
recipe file:
<literallayout class='monospaced'>
$ bitbake -b foo_1.0.bb
</literallayout>
The following command runs the clean task on the
<filename>foo.bb</filename> recipe file:
<literallayout class='monospaced'>
$ bitbake -b foo.bb -c clean
</literallayout>
<note>
The "-b" option explicitly does not handle recipe
dependencies.
Other than for debugging purposes, it is instead
recommended that you use the syntax presented in the
next section.
</note>
</para>
</section>
<section id='executing-tasks-against-a-set-of-recipe-files'>
<title>Executing Tasks Against a Set of Recipe Files</title>
<para>
There are a number of additional complexities introduced
when one wants to manage multiple <filename>.bb</filename>
files.
Clearly there needs to be a way to tell BitBake what
files are available and, of those, which you
want to execute.
There also needs to be a way for each recipe
to express its dependencies, both for build-time and
runtime.
There must be a way for you to express recipe preferences
when multiple recipes provide the same functionality, or when
there are multiple versions of a recipe.
</para>
<para>
The <filename>bitbake</filename> command, when not using
"--buildfile" or "-b" only accepts a "PROVIDES".
You cannot provide anything else.
By default, a recipe file generally "PROVIDES" its
"packagename" as shown in the following example:
<literallayout class='monospaced'>
$ bitbake foo
</literallayout>
This next example "PROVIDES" the package name and also uses
the "-c" option to tell BitBake to just execute the
<filename>do_clean</filename> task:
<literallayout class='monospaced'>
$ bitbake -c clean foo
</literallayout>
</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>
<para>
BitBake is able to generate dependency graphs using
the <filename>dot</filename> syntax.
You can convert these graphs into images using the
<filename>dot</filename> tool from
<ulink url='http://www.graphviz.org'>Graphviz</ulink>.
</para>
<para>
When you generate a dependency graph, BitBake writes three files
to the current working directory:
<itemizedlist>
<listitem><para>
<emphasis><filename>recipe-depends.dot</filename>:</emphasis>
Shows dependencies between recipes (i.e. a collapsed version of
<filename>task-depends.dot</filename>).
</para></listitem>
<listitem><para>
<emphasis><filename>task-depends.dot</filename>:</emphasis>
Shows dependencies between tasks.
These dependencies match BitBake's internal task execution list.
</para></listitem>
<listitem><para>
<emphasis><filename>pn-buildlist</filename>:</emphasis>
Shows a simple list of targets that are to be built.
</para></listitem>
</itemizedlist>
</para>
<para>
To stop depending on common depends, use the "-I" depend
option and BitBake omits them from the graph.
Leaving this information out can produce more readable graphs.
This way, you can remove from the graph
<filename>DEPENDS</filename> from inherited classes
such as <filename>base.bbclass</filename>.
</para>
<para>
Here are two examples that create dependency graphs.
The second example omits depends common in OpenEmbedded from
the graph:
<literallayout class='monospaced'>
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
</literallayout>
</para>
</section>
</section>
</section>
</chapter>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,984 @@
/*
Generic XHTML / DocBook XHTML CSS Stylesheet.
Browser wrangling and typographic design by
Oyvind Kolas / pippin@gimp.org
Customised for Poky by
Matthew Allum / mallum@o-hand.com
Thanks to:
Liam R. E. Quin
William Skaggs
Jakub Steiner
Structure
---------
The stylesheet is divided into the following sections:
Positioning
Margins, paddings, width, font-size, clearing.
Decorations
Borders, style
Colors
Colors
Graphics
Graphical backgrounds
Nasty IE tweaks
Workarounds needed to make it work in internet explorer,
currently makes the stylesheet non validating, but up until
this point it is validating.
Mozilla extensions
Transparency for footer
Rounded corners on boxes
*/
/*************** /
/ Positioning /
/ ***************/
body {
font-family: Verdana, Sans, sans-serif;
min-width: 640px;
width: 80%;
margin: 0em auto;
padding: 2em 5em 5em 5em;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
.authorgroup {
background-color: transparent;
background-repeat: no-repeat;
padding-top: 256px;
background-image: url("figures/bitbake-title.png");
background-position: left top;
margin-top: -256px;
padding-right: 50px;
margin-left: 0px;
text-align: right;
width: 740px;
}
h3.author {
margin: 0em 0me 0em 0em;
padding: 0em 0em 0em 0em;
font-weight: normal;
font-size: 100%;
color: #333;
clear: both;
}
.author tt.email {
font-size: 66%;
}
.titlepage hr {
width: 0em;
clear: both;
}
.revhistory {
padding-top: 2em;
clear: both;
}
.toc,
.list-of-tables,
.list-of-examples,
.list-of-figures {
padding: 1.33em 0em 2.5em 0em;
color: #00557D;
}
.toc p,
.list-of-tables p,
.list-of-figures p,
.list-of-examples p {
padding: 0em 0em 0em 0em;
padding: 0em 0em 0.3em;
margin: 1.5em 0em 0em 0em;
}
.toc p b,
.list-of-tables p b,
.list-of-figures p b,
.list-of-examples p b{
font-size: 100.0%;
font-weight: bold;
}
.toc dl,
.list-of-tables dl,
.list-of-figures dl,
.list-of-examples dl {
margin: 0em 0em 0.5em 0em;
padding: 0em 0em 0em 0em;
}
.toc dt {
margin: 0em 0em 0em 0em;
padding: 0em 0em 0em 0em;
}
.toc dd {
margin: 0em 0em 0em 2.6em;
padding: 0em 0em 0em 0em;
}
div.glossary dl,
div.variablelist dl {
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
font-weight: normal;
width: 20em;
text-align: right;
}
.variablelist dl dt {
margin-top: 0.5em;
}
.glossary dl dd,
.variablelist dl dd {
margin-top: -1em;
margin-left: 25.5em;
}
.glossary dd p,
.variablelist dd p {
margin-top: 0em;
margin-bottom: 1em;
}
div.calloutlist table td {
padding: 0em 0em 0em 0em;
margin: 0em 0em 0em 0em;
}
div.calloutlist table td p {
margin-top: 0em;
margin-bottom: 1em;
}
div p.copyright {
text-align: left;
}
div.legalnotice p.legalnotice-title {
margin-bottom: 0em;
}
p {
line-height: 1.5em;
margin-top: 0em;
}
dl {
padding-top: 0em;
}
hr {
border: solid 1px;
}
.mediaobject,
.mediaobjectco {
text-align: center;
}
img {
border: none;
}
ul {
padding: 0em 0em 0em 1.5em;
}
ul li {
padding: 0em 0em 0em 0em;
}
ul li p {
text-align: left;
}
table {
width :100%;
}
th {
padding: 0.25em;
text-align: left;
font-weight: normal;
vertical-align: top;
}
td {
padding: 0.25em;
vertical-align: top;
}
p a[id] {
margin: 0px;
padding: 0px;
display: inline;
background-image: none;
}
a {
text-decoration: underline;
color: #444;
}
pre {
overflow: auto;
}
a:hover {
text-decoration: underline;
/*font-weight: bold;*/
}
/* This style defines how the permalink character
appears by itself and when hovered over with
the mouse. */
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
div.informalfigure,
div.informalexample,
div.informaltable,
div.figure,
div.table,
div.example {
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
div.informalfigure p.title b,
div.informalexample p.title b,
div.informaltable p.title b,
div.figure p.title b,
div.example p.title b,
div.table p.title b{
padding-top: 0em;
margin-top: 0em;
font-size: 100%;
font-weight: normal;
}
.mediaobject .caption,
.mediaobject .caption p {
text-align: center;
font-size: 80%;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
.epigraph {
padding-left: 55%;
margin-bottom: 1em;
}
.epigraph p {
text-align: left;
}
.epigraph .quote {
font-style: italic;
}
.epigraph .attribution {
font-style: normal;
text-align: right;
}
span.application {
font-style: italic;
}
.programlisting {
font-family: monospace;
font-size: 80%;
white-space: pre;
margin: 1.33em 0em;
padding: 1.33em;
}
.tip,
.warning,
.caution,
.note {
margin-top: 1em;
margin-bottom: 1em;
}
/* force full width of table within div */
.tip table,
.warning table,
.caution table,
.note table {
border: none;
width: 100%;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
padding: 0.8em 0.0em 0.0em 0.0em;
margin : 0em 0em 0em 0em;
}
.tip p,
.warning p,
.caution p,
.note p {
margin-top: 0.5em;
margin-bottom: 0.5em;
padding-right: 1em;
text-align: left;
}
.acronym {
text-transform: uppercase;
}
b.keycap,
.keycap {
padding: 0.09em 0.3em;
margin: 0em;
}
.itemizedlist li {
clear: none;
}
.filename {
font-size: medium;
font-family: Courier, monospace;
}
div.navheader, div.heading{
position: absolute;
left: 0em;
top: 0em;
width: 100%;
background-color: #cdf;
width: 100%;
}
div.navfooter, div.footing{
position: fixed;
left: 0em;
bottom: 0em;
background-color: #eee;
width: 100%;
}
div.navheader td,
div.navfooter td {
font-size: 66%;
}
div.navheader table th {
/*font-family: Georgia, Times, serif;*/
/*font-size: x-large;*/
font-size: 80%;
}
div.navheader table {
border-left: 0em;
border-right: 0em;
border-top: 0em;
width: 100%;
}
div.navfooter table {
border-left: 0em;
border-right: 0em;
border-bottom: 0em;
width: 100%;
}
div.navheader table td a,
div.navfooter table td a {
color: #777;
text-decoration: none;
}
/* normal text in the footer */
div.navfooter table td {
color: black;
}
div.navheader table td a:visited,
div.navfooter table td a:visited {
color: #444;
}
/* links in header and footer */
div.navheader table td a:hover,
div.navfooter table td a:hover {
text-decoration: underline;
background-color: transparent;
color: #33a;
}
div.navheader hr,
div.navfooter hr {
display: none;
}
.qandaset tr.question td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.qandaset tr.answer td p {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
}
.answer td {
padding-bottom: 1.5em;
}
.emphasis {
font-weight: bold;
}
/************* /
/ decorations /
/ *************/
.titlepage {
}
.part .title {
}
.subtitle {
border: none;
}
/*
h1 {
border: none;
}
h2 {
border-top: solid 0.2em;
border-bottom: solid 0.06em;
}
h3 {
border-top: 0em;
border-bottom: solid 0.06em;
}
h4 {
border: 0em;
border-bottom: solid 0.06em;
}
h5 {
border: 0em;
}
*/
.programlisting {
border: solid 1px;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example {
border: 1px solid;
}
.tip,
.warning,
.caution,
.note {
border: 1px solid;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom: 1px solid;
}
.question td {
border-top: 1px solid black;
}
.answer {
}
b.keycap,
.keycap {
border: 1px solid;
}
div.navheader, div.heading{
border-bottom: 1px solid;
}
div.navfooter, div.footing{
border-top: 1px solid;
}
/********* /
/ colors /
/ *********/
body {
color: #333;
background: white;
}
a {
background: transparent;
}
a:hover {
background-color: #dedede;
}
h1,
h2,
h3,
h4,
h5,
h6,
h7,
h8 {
background-color: transparent;
}
hr {
border-color: #aaa;
}
.tip, .warning, .caution, .note {
border-color: #fff;
}
.tip table th,
.warning table th,
.caution table th,
.note table th {
border-bottom-color: #fff;
}
.warning {
background-color: #f0f0f2;
}
.caution {
background-color: #f0f0f2;
}
.tip {
background-color: #f0f0f2;
}
.note {
background-color: #f0f0f2;
}
.glossary dl dt,
.variablelist dl dt,
.variablelist dl dt span.term {
color: #044;
}
div.figure,
div.table,
div.example,
div.informalfigure,
div.informaltable,
div.informalexample {
border-color: #aaa;
}
pre.programlisting {
color: black;
background-color: #fff;
border-color: #aaa;
border-width: 2px;
}
.guimenu,
.guilabel,
.guimenuitem {
background-color: #eee;
}
b.keycap,
.keycap {
background-color: #eee;
border-color: #999;
}
div.navheader {
border-color: black;
}
div.navfooter {
border-color: black;
}
/*********** /
/ graphics /
/ ***********/
/*
body {
background-image: url("images/body_bg.jpg");
background-attachment: fixed;
}
.navheader,
.note,
.tip {
background-image: url("images/note_bg.jpg");
background-attachment: fixed;
}
.warning,
.caution {
background-image: url("images/warning_bg.jpg");
background-attachment: fixed;
}
.figure,
.informalfigure,
.example,
.informalexample,
.table,
.informaltable {
background-image: url("images/figure_bg.jpg");
background-attachment: fixed;
}
*/
h1,
h2,
h3,
h4,
h5,
h6,
h7{
}
/*
Example of how to stick an image as part of the title.
div.article .titlepage .title
{
background-image: url("figures/white-on-black.png");
background-position: center;
background-repeat: repeat-x;
}
*/
div.preface .titlepage .title,
div.colophon .title,
div.chapter .titlepage .title,
div.article .titlepage .title
{
}
div.section div.section .titlepage .title,
div.sect2 .titlepage .title {
background: none;
}
h1.title {
background-color: transparent;
background-repeat: no-repeat;
height: 256px;
text-indent: -9000px;
overflow:hidden;
}
h2.subtitle {
background-color: transparent;
text-indent: -9000px;
overflow:hidden;
width: 0px;
display: none;
}
/*************************************** /
/ pippin.gimp.org specific alterations /
/ ***************************************/
/*
div.heading, div.navheader {
color: #777;
font-size: 80%;
padding: 0;
margin: 0;
text-align: left;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 50px;
background: url('/gfx/heading_bg.png') transparent;
background-repeat: repeat-x;
background-attachment: fixed;
border: none;
}
div.heading a {
color: #444;
}
div.footing, div.navfooter {
border: none;
color: #ddd;
font-size: 80%;
text-align:right;
width: 100%;
padding-top: 10px;
position: absolute;
bottom: 0px;
left: 0px;
background: url('/gfx/footing_bg.png') transparent;
}
*/
/****************** /
/ nasty ie tweaks /
/ ******************/
/*
div.heading, div.navheader {
width:expression(document.body.clientWidth + "px");
}
div.footing, div.navfooter {
width:expression(document.body.clientWidth + "px");
margin-left:expression("-5em");
}
body {
padding:expression("4em 5em 0em 5em");
}
*/
/**************************************** /
/ mozilla vendor specific css extensions /
/ ****************************************/
/*
div.navfooter, div.footing{
-moz-opacity: 0.8em;
}
div.figure,
div.table,
div.informalfigure,
div.informaltable,
div.informalexample,
div.example,
.tip,
.warning,
.caution,
.note {
-moz-border-radius: 0.5em;
}
b.keycap,
.keycap {
-moz-border-radius: 0.3em;
}
*/
table tr td table tr td {
display: none;
}
hr {
display: none;
}
table {
border: 0em;
}
.photo {
float: right;
margin-left: 1.5em;
margin-bottom: 1.5em;
margin-top: 0em;
max-width: 17em;
border: 1px solid gray;
padding: 3px;
background: white;
}
.seperator {
padding-top: 2em;
clear: both;
}
#validators {
margin-top: 5em;
text-align: right;
color: #777;
}
@media print {
body {
font-size: 8pt;
}
.noprint {
display: none;
}
}
.tip,
.note {
background: #f0f0f2;
color: #333;
padding: 20px;
margin: 20px;
}
.tip h3,
.note h3 {
padding: 0em;
margin: 0em;
font-size: 2em;
font-weight: bold;
color: #333;
}
.tip a,
.note a {
color: #333;
text-decoration: underline;
}
.footnote {
font-size: small;
color: #333;
}
/* Changes the announcement text */
.tip h3,
.warning h3,
.caution h3,
.note h3 {
font-size:large;
color: #00557D;
}

View File

@@ -0,0 +1,88 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id='bitbake-user-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
<bookinfo>
<mediaobject>
<imageobject>
<imagedata fileref='figures/bitbake-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</mediaobject>
<title>
BitBake User Manual
</title>
<authorgroup>
<author>
<firstname>Richard Purdie, Chris Larson, and </firstname> <surname>Phil Blundell</surname>
<affiliation>
<orgname>BitBake Community</orgname>
</affiliation>
<email>bitbake-devel@lists.openembedded.org</email>
</author>
</authorgroup>
<!--
# Add in some revision history if we want it here.
<revhistory>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
<revision>
<revnumber>x.x</revnumber>
<date>dd month year</date>
<revremark>Some relevent comment</revremark>
</revision>
</revhistory>
-->
<copyright>
<year>2004-2016</year>
<holder>Richard Purdie</holder>
<holder>Chris Larson</holder>
<holder>and Phil Blundell</holder>
</copyright>
<legalnotice>
<para>
This work is licensed under the Creative Commons Attribution License.
To view a copy of this license, visit
<ulink url="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</ulink>
or send a letter to Creative Commons, 444 Castro Street,
Suite 900, Mountain View, California 94041, USA.
</para>
</legalnotice>
</bookinfo>
<xi:include href="bitbake-user-manual-intro.xml"/>
<xi:include href="bitbake-user-manual-execution.xml"/>
<xi:include href="bitbake-user-manual-metadata.xml"/>
<xi:include href="bitbake-user-manual-fetching.xml"/>
<xi:include href="bitbake-user-manual-ref-variables.xml"/>
<xi:include href="bitbake-user-manual-hello.xml"/>
</book>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,281 @@
/* Feuille de style DocBook du projet Traduc.org */
/* DocBook CSS stylesheet of the Traduc.org project */
/* (c) Jean-Philippe Gu<47>rard - 14 ao<61>t 2004 */
/* (c) Jean-Philippe Gu<47>rard - 14 August 2004 */
/* Cette feuille de style est libre, vous pouvez la */
/* redistribuer et la modifier selon les termes de la Licence */
/* Art Libre. Vous trouverez un exemplaire de cette Licence sur */
/* http://tigreraye.org/Petit-guide-du-traducteur.html#licence-art-libre */
/* This work of art is free, you can redistribute it and/or */
/* modify it according to terms of the Free Art license. You */
/* will find a specimen of this license on the Copyleft */
/* Attitude web site: http://artlibre.org as well as on other */
/* sites. */
/* Please note that the French version of this licence as shown */
/* on http://tigreraye.org/Petit-guide-du-traducteur.html#licence-art-libre */
/* is only official licence of this document. The English */
/* is only provided to help you understand this licence. */
/* La derni<6E>re version de cette feuille de style est toujours */
/* disponible sur<75>: http://tigreraye.org/style.css */
/* Elle est <20>galement disponible sur<75>: */
/* http://www.traduc.org/docs/HOWTO/lecture/style.css */
/* The latest version of this stylesheet is available from: */
/* http://tigreraye.org/style.css */
/* It is also available on: */
/* http://www.traduc.org/docs/HOWTO/lecture/style.css */
/* N'h<>sitez pas <20> envoyer vos commentaires et corrections <20> */
/* Jean-Philippe Gu<47>rard <jean-philippe.guerard@tigreraye.org> */
/* Please send feedback and bug reports to */
/* Jean-Philippe Gu<47>rard <jean-philippe.guerard@tigreraye.org> */
/* $Id: style.css,v 1.14 2004/09/10 20:12:09 fevrier Exp fevrier $ */
/* Pr<50>sentation g<>n<EFBFBD>rale du document */
/* Overall document presentation */
body {
/*
font-family: Apolline, "URW Palladio L", Garamond, jGaramond,
"Bitstream Cyberbit", "Palatino Linotype", serif;
*/
margin: 7%;
background-color: white;
}
/* Taille du texte */
/* Text size */
* { font-size: 100%; }
/* Gestion des textes mis en relief imbriqu<71>s */
/* Embedded emphasis */
em { font-style: italic; }
em em { font-style: normal; }
em em em { font-style: italic; }
/* Titres */
/* Titles */
h1 { font-size: 200%; font-weight: 900; }
h2 { font-size: 160%; font-weight: 900; }
h3 { font-size: 130%; font-weight: bold; }
h4 { font-size: 115%; font-weight: bold; }
h5 { font-size: 108%; font-weight: bold; }
h6 { font-weight: bold; }
/* Nom de famille en petites majuscules (uniquement en fran<61>ais) */
/* Last names in small caps (for French only) */
*[class~="surname"]:lang(fr) { font-variant: small-caps; }
/* Blocs de citation */
/* Quotation blocs */
div[class~="blockquote"] {
border: solid 2px #AAA;
padding: 5px;
margin: 5px;
}
div[class~="blockquote"] > table {
border: none;
}
/* Blocs lit<69>raux<75>: fond gris clair */
/* Literal blocs: light gray background */
*[class~="literallayout"] {
background: #f0f0f0;
padding: 5px;
margin: 5px;
}
/* Programmes et captures texte<74>: fond bleu clair */
/* Listing and text screen snapshots: light blue background */
*[class~="programlisting"], *[class~="screen"] {
background: #f0f0ff;
padding: 5px;
margin: 5px;
}
/* Les textes <20> remplacer sont surlign<67>s en vert p<>le */
/* Replaceable text in highlighted in pale green */
*[class~="replaceable"] {
background-color: #98fb98;
font-style: normal; }
/* Tables<65>: fonds gris clair & bords simples */
/* Tables: light gray background and solid borders */
*[class~="table"] *[class~="title"] { width:100%; border: 0px; }
table {
border: 1px solid #aaa;
border-collapse: collapse;
padding: 2px;
margin: 5px;
}
/* Listes simples en style table */
/* Simples lists in table presentation */
table[class~="simplelist"] {
background-color: #F0F0F0;
margin: 5px;
border: solid 1px #AAA;
}
table[class~="simplelist"] td {
border: solid 1px #AAA;
}
/* Les tables */
/* Tables */
*[class~="table"] table {
background-color: #F0F0F0;
border: solid 1px #AAA;
}
*[class~="informaltable"] table { background-color: #F0F0F0; }
th,td {
vertical-align: baseline;
text-align: left;
padding: 0.1em 0.3em;
empty-cells: show;
}
/* Alignement des colonnes */
/* Colunms alignment */
td[align=center] , th[align=center] { text-align: center; }
td[align=right] , th[align=right] { text-align: right; }
td[align=left] , th[align=left] { text-align: left; }
td[align=justify] , th[align=justify] { text-align: justify; }
/* Pas de marge autour des images */
/* No inside margins for images */
img { border: 0; }
/* Les liens ne sont pas soulign<67>s */
/* No underlines for links */
:link , :visited , :active { text-decoration: none; }
/* Prudence<63>: cadre jaune et fond jaune clair */
/* Caution: yellow border and light yellow background */
*[class~="caution"] {
border: solid 2px yellow;
background-color: #ffffe0;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="caution"] th {
vertical-align: middle
}
*[class~="caution"] table {
background-color: #ffffe0;
border: none;
}
/* Note importante<74>: cadre jaune et fond jaune clair */
/* Important: yellow border and light yellow background */
*[class~="important"] {
border: solid 2px yellow;
background-color: #ffffe0;
padding: 1em 6px 1em;
margin: 5px;
}
*[class~="important"] th {
vertical-align: middle
}
*[class~="important"] table {
background-color: #ffffe0;
border: none;
}
/* Mise en <20>vidence<63>: texte l<>g<EFBFBD>rement plus grand */
/* Highlights: slightly larger texts */
*[class~="highlights"] {
font-size: 110%;
}
/* Note<74>: cadre bleu et fond bleu clair */
/* Notes: blue border and light blue background */
*[class~="note"] {
border: solid 2px #7099C5;
background-color: #f0f0ff;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="note"] th {
vertical-align: middle
}
*[class~="note"] table {
background-color: #f0f0ff;
border: none;
}
/* Astuce<63>: cadre vert et fond vert clair */
/* Tip: green border and light green background */
*[class~="tip"] {
border: solid 2px #00ff00;
background-color: #f0ffff;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="tip"] th {
vertical-align: middle;
}
*[class~="tip"] table {
background-color: #f0ffff;
border: none;
}
/* Avertissement<6E>: cadre rouge et fond rouge clair */
/* Warning: red border and light red background */
*[class~="warning"] {
border: solid 2px #ff0000;
background-color: #fff0f0;
padding: 1em 6px 1em ;
margin: 5px;
}
*[class~="warning"] th {
vertical-align: middle;
}
*[class~="warning"] table {
background-color: #fff0f0;
border: none;
}
/* Fin */
/* The End */

View File

@@ -1,101 +0,0 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import sys
import datetime
current_version = "dev"
# String used in sidebar
version = 'Version: ' + current_version
if current_version == 'dev':
version = 'Version: Current Development'
# Version seen in documentation_options.js and hence in js switchers code
release = current_version
# -- Project information -----------------------------------------------------
project = 'Bitbake'
copyright = '2004-%s, Richard Purdie, Chris Larson, and Phil Blundell' \
% datetime.datetime.now().year
author = 'Richard Purdie, Chris Larson, and Phil Blundell'
# external links and substitutions
extlinks = {
'yocto_docs': ('https://docs.yoctoproject.org%s', None),
'oe_lists': ('https://lists.openembedded.org%s', None),
}
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autosectionlabel',
'sphinx.ext.extlinks',
]
autosectionlabel_prefix_document = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# master document name. The default changed from contents to index. so better
# set it ourselves.
master_doc = 'index'
# create substitution for project configuration variables
rst_prolog = """
.. |project_name| replace:: %s
.. |copyright| replace:: %s
.. |author| replace:: %s
""" % (project, copyright, author)
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
try:
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
except ImportError:
sys.stderr.write("The Sphinx sphinx_rtd_theme HTML theme was not found.\
\nPlease make sure to install the sphinx_rtd_theme python package.\n")
sys.exit(1)
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['sphinx-static']
# Add customm CSS and JS files
html_css_files = ['theme_overrides.css']
html_js_files = ['switchers.js']
# Hide 'Created using Sphinx' text
html_show_sphinx = False
# Add 'Last updated' on each page
html_last_updated_fmt = '%b %d, %Y'
# Remove the trailing 'dot' in section numbers
html_secnumber_suffix = " "

View File

@@ -1,3 +0,0 @@
=====
Index
=====

View File

@@ -1,38 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
BitBake User Manual
===================
|
.. toctree::
:caption: Table of Contents
:numbered:
bitbake-user-manual/bitbake-user-manual-intro
bitbake-user-manual/bitbake-user-manual-execution
bitbake-user-manual/bitbake-user-manual-metadata
bitbake-user-manual/bitbake-user-manual-fetching
bitbake-user-manual/bitbake-user-manual-ref-variables
bitbake-user-manual/bitbake-user-manual-hello
.. toctree::
:maxdepth: 1
:hidden:
genindex
releases
----
.. include:: <xhtml1-lat1.txt>
| BitBake Community
| Copyright |copy| |copyright|
| <bitbake-devel@lists.openembedded.org>
This work is licensed under the Creative Commons Attribution License. To view a
copy of this license, visit http://creativecommons.org/licenses/by/2.5/ or send
a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View,
California 94041, USA.

59
bitbake/doc/poky.ent Normal file
View File

@@ -0,0 +1,59 @@
<!ENTITY DISTRO "1.4">
<!ENTITY DISTRO_NAME "tbd">
<!ENTITY YOCTO_DOC_VERSION "1.4">
<!ENTITY POKYVERSION "8.0">
<!ENTITY YOCTO_POKY "poky-&DISTRO_NAME;-&POKYVERSION;">
<!ENTITY COPYRIGHT_YEAR "2010-2013">
<!ENTITY YOCTO_DL_URL "http://downloads.yoctoproject.org">
<!ENTITY YOCTO_HOME_URL "http://www.yoctoproject.org">
<!ENTITY YOCTO_LISTS_URL "http://lists.yoctoproject.org">
<!ENTITY YOCTO_BUGZILLA_URL "http://bugzilla.yoctoproject.org">
<!ENTITY YOCTO_WIKI_URL "https://wiki.yoctoproject.org">
<!ENTITY YOCTO_AB_URL "http://autobuilder.yoctoproject.org">
<!ENTITY YOCTO_GIT_URL "http://git.yoctoproject.org">
<!ENTITY YOCTO_ADTREPO_URL "http://adtrepo.yoctoproject.org">
<!ENTITY OE_HOME_URL "http://www.openembedded.org">
<!ENTITY OE_LISTS_URL "http://lists.linuxtogo.org/cgi-bin/mailman">
<!ENTITY OE_DOCS_URL "http://docs.openembedded.org">
<!ENTITY OH_HOME_URL "http://o-hand.com">
<!ENTITY BITBAKE_HOME_URL "http://developer.berlios.de/projects/bitbake/">
<!ENTITY ECLIPSE_MAIN_URL "http://www.eclipse.org/downloads">
<!ENTITY ECLIPSE_DL_URL "http://download.eclipse.org">
<!ENTITY ECLIPSE_DL_PLUGIN_URL "&YOCTO_DL_URL;/releases/eclipse-plugin/&DISTRO;">
<!ENTITY ECLIPSE_UPDATES_URL "&ECLIPSE_DL_URL;/tm/updates/3.3">
<!ENTITY ECLIPSE_INDIGO_URL "&ECLIPSE_DL_URL;/releases/indigo">
<!ENTITY ECLIPSE_JUNO_URL "&ECLIPSE_DL_URL;/releases/juno">
<!ENTITY ECLIPSE_INDIGO_CDT_URL "&ECLIPSE_DL_URL;tools/cdt/releases/indigo">
<!ENTITY YOCTO_DOCS_URL "&YOCTO_HOME_URL;/docs">
<!ENTITY YOCTO_SOURCES_URL "&YOCTO_HOME_URL;/sources/">
<!ENTITY YOCTO_AB_PORT_URL "&YOCTO_AB_URL;:8010">
<!ENTITY YOCTO_AB_NIGHTLY_URL "&YOCTO_AB_URL;/nightly/">
<!ENTITY YOCTO_POKY_URL "&YOCTO_DL_URL;/releases/poky/">
<!ENTITY YOCTO_RELEASE_DL_URL "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;">
<!ENTITY YOCTO_TOOLCHAIN_DL_URL "&YOCTO_RELEASE_DL_URL;/toolchain/">
<!ENTITY YOCTO_ECLIPSE_DL_URL "&YOCTO_RELEASE_DL_URL;/eclipse-plugin/indigo;">
<!ENTITY YOCTO_ADTINSTALLER_DL_URL "&YOCTO_RELEASE_DL_URL;/adt_installer">
<!ENTITY YOCTO_POKY_DL_URL "&YOCTO_RELEASE_DL_URL;/&YOCTO_POKY;.tar.bz2">
<!ENTITY YOCTO_MACHINES_DL_URL "&YOCTO_RELEASE_DL_URL;/machines">
<!ENTITY YOCTO_QEMU_DL_URL "&YOCTO_MACHINES_DL_URL;/qemu">
<!ENTITY YOCTO_PYTHON-i686_DL_URL "&YOCTO_DL_URL;/releases/miscsupport/python-nativesdk-standalone-i686.tar.bz2">
<!ENTITY YOCTO_PYTHON-x86_64_DL_URL "&YOCTO_DL_URL;/releases/miscsupport/python-nativesdk-standalone-x86_64.tar.bz2">
<!ENTITY YOCTO_DOCS_QS_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/yocto-project-qs/yocto-project-qs.html">
<!ENTITY YOCTO_DOCS_ADT_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/adt-manual/adt-manual.html">
<!ENTITY YOCTO_DOCS_REF_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/ref-manual/ref-manual.html">
<!ENTITY YOCTO_DOCS_BSP_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/bsp-guide/bsp-guide.html">
<!ENTITY YOCTO_DOCS_DEV_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/dev-manual/dev-manual.html">
<!ENTITY YOCTO_DOCS_KERNEL_URL "&YOCTO_DOCS_URL;/&YOCTO_DOC_VERSION;/kernel-manual/kernel-manual.html">
<!ENTITY YOCTO_ADTPATH_DIR "/opt/poky/&DISTRO;">
<!ENTITY YOCTO_POKY_TARBALL "&YOCTO_POKY;.tar.bz2">
<!ENTITY OE_INIT_PATH "&YOCTO_POKY;/oe-init-build-env">
<!ENTITY OE_INIT_FILE "oe-init-build-env">
<!ENTITY UBUNTU_HOST_PACKAGES_ESSENTIAL "gawk wget git-core diffstat unzip texinfo \
build-essential chrpath">
<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ eglibc-devel texinfo chrpath \
ccache">
<!ENTITY OPENSUSE_HOST_PACKAGES_ESSENTIAL "python gcc gcc-c++ git chrpath make wget python-xml \
diffstat texinfo python-curses">
<!ENTITY CENTOS_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath">

View File

@@ -1,174 +0,0 @@
.. SPDX-License-Identifier: CC-BY-2.5
=================================
BitBake Supported Release Manuals
=================================
*******************************
Release Series 4.2 (mickledore)
*******************************
- :yocto_docs:`BitBake 2.4 User Manual </bitbake/2.4/>`
******************************
Release Series 4.0 (kirkstone)
******************************
- :yocto_docs:`BitBake 2.0 User Manual </bitbake/2.0/>`
****************************
Release Series 3.1 (dunfell)
****************************
- :yocto_docs:`BitBake 1.46 User Manual </bitbake/1.46/>`
================================
BitBake Outdated Release Manuals
================================
*****************************
Release Series 4.1 (langdale)
*****************************
- :yocto_docs:`BitBake 2.2 User Manual </bitbake/2.2/>`
******************************
Release Series 3.4 (honister)
******************************
- :yocto_docs:`BitBake 1.52 User Manual </bitbake/1.52/>`
******************************
Release Series 3.3 (hardknott)
******************************
- :yocto_docs:`BitBake 1.50 User Manual </bitbake/1.50/>`
*******************************
Release Series 3.2 (gatesgarth)
*******************************
- :yocto_docs:`BitBake 1.48 User Manual </bitbake/1.48/>`
*******************************************
Release Series 3.1 (dunfell first versions)
*******************************************
- :yocto_docs:`3.1 BitBake User Manual </3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.1 BitBake User Manual </3.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.2 BitBake User Manual </3.1.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.3 BitBake User Manual </3.1.3/bitbake-user-manual/bitbake-user-manual.html>`
*************************
Release Series 3.0 (zeus)
*************************
- :yocto_docs:`3.0 BitBake User Manual </3.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.1 BitBake User Manual </3.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.2 BitBake User Manual </3.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.3 BitBake User Manual </3.0.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.4 BitBake User Manual </3.0.4/bitbake-user-manual/bitbake-user-manual.html>`
****************************
Release Series 2.7 (warrior)
****************************
- :yocto_docs:`2.7 BitBake User Manual </2.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.1 BitBake User Manual </2.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.2 BitBake User Manual </2.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.3 BitBake User Manual </2.7.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.4 BitBake User Manual </2.7.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
Release Series 2.6 (thud)
*************************
- :yocto_docs:`2.6 BitBake User Manual </2.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.1 BitBake User Manual </2.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.2 BitBake User Manual </2.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.3 BitBake User Manual </2.6.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.4 BitBake User Manual </2.6.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
Release Series 2.5 (sumo)
*************************
- :yocto_docs:`2.5 Documentation </2.5>`
- :yocto_docs:`2.5.1 Documentation </2.5.1>`
- :yocto_docs:`2.5.2 Documentation </2.5.2>`
- :yocto_docs:`2.5.3 Documentation </2.5.3>`
**************************
Release Series 2.4 (rocko)
**************************
- :yocto_docs:`2.4 BitBake User Manual </2.4/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.1 BitBake User Manual </2.4.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.2 BitBake User Manual </2.4.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.3 BitBake User Manual </2.4.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.4 BitBake User Manual </2.4.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
Release Series 2.3 (pyro)
*************************
- :yocto_docs:`2.3 BitBake User Manual </2.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.1 BitBake User Manual </2.3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.2 BitBake User Manual </2.3.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.3 BitBake User Manual </2.3.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.4 BitBake User Manual </2.3.4/bitbake-user-manual/bitbake-user-manual.html>`
**************************
Release Series 2.2 (morty)
**************************
- :yocto_docs:`2.2 BitBake User Manual </2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.1 BitBake User Manual </2.2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.2 BitBake User Manual </2.2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.3 BitBake User Manual </2.2.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
Release Series 2.1 (krogoth)
****************************
- :yocto_docs:`2.1 BitBake User Manual </2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.1 BitBake User Manual </2.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.2 BitBake User Manual </2.1.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.3 BitBake User Manual </2.1.3/bitbake-user-manual/bitbake-user-manual.html>`
***************************
Release Series 2.0 (jethro)
***************************
- :yocto_docs:`1.9 BitBake User Manual </1.9/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0 BitBake User Manual </2.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.1 BitBake User Manual </2.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.2 BitBake User Manual </2.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.3 BitBake User Manual </2.0.3/bitbake-user-manual/bitbake-user-manual.html>`
*************************
Release Series 1.8 (fido)
*************************
- :yocto_docs:`1.8 BitBake User Manual </1.8/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.1 BitBake User Manual </1.8.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.2 BitBake User Manual </1.8.2/bitbake-user-manual/bitbake-user-manual.html>`
**************************
Release Series 1.7 (dizzy)
**************************
- :yocto_docs:`1.7 BitBake User Manual </1.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.1 BitBake User Manual </1.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.2 BitBake User Manual </1.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.3 BitBake User Manual </1.7.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
Release Series 1.6 (daisy)
**************************
- :yocto_docs:`1.6 BitBake User Manual </1.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.1 BitBake User Manual </1.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.2 BitBake User Manual </1.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.3 BitBake User Manual </1.6.3/bitbake-user-manual/bitbake-user-manual.html>`

View File

@@ -1,233 +0,0 @@
(function() {
'use strict';
var all_versions = {
'dev': 'dev (3.2)',
'3.1.2': '3.1.2',
'3.0.3': '3.0.3',
'2.7.4': '2.7.4',
};
var all_doctypes = {
'single': 'Individual Webpages',
'mega': "All-in-one 'Mega' Manual",
};
// Simple version comparision
// Return 1 if a > b
// Return -1 if a < b
// Return 0 if a == b
function ver_compare(a, b) {
if (a == "dev") {
return 1;
}
if (a === b) {
return 0;
}
var a_components = a.split(".");
var b_components = b.split(".");
var len = Math.min(a_components.length, b_components.length);
// loop while the components are equal
for (var i = 0; i < len; i++) {
// A bigger than B
if (parseInt(a_components[i]) > parseInt(b_components[i])) {
return 1;
}
// B bigger than A
if (parseInt(a_components[i]) < parseInt(b_components[i])) {
return -1;
}
}
// If one's a prefix of the other, the longer one is greater.
if (a_components.length > b_components.length) {
return 1;
}
if (a_components.length < b_components.length) {
return -1;
}
// Otherwise they are the same.
return 0;
}
function build_version_select(current_series, current_version) {
var buf = ['<select>'];
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series) {
if (version == current_version)
buf.push('<option value="' + version + '" selected="selected">' + title + '</option>');
else
buf.push('<option value="' + version + '">' + title + '</option>');
if (version != current_version)
buf.push('<option value="' + current_version + '" selected="selected">' + current_version + '</option>');
} else {
buf.push('<option value="' + version + '">' + title + '</option>');
}
});
buf.push('</select>');
return buf.join('');
}
function build_doctype_select(current_doctype) {
var buf = ['<select>'];
$.each(all_doctypes, function(doctype, title) {
if (doctype == current_doctype)
buf.push('<option value="' + doctype + '" selected="selected">' +
all_doctypes[current_doctype] + '</option>');
else
buf.push('<option value="' + doctype + '">' + title + '</option>');
});
if (!(current_doctype in all_doctypes)) {
// In case we're browsing a doctype that is not yet in all_doctypes.
buf.push('<option value="' + current_doctype + '" selected="selected">' +
current_doctype + '</option>');
all_doctypes[current_doctype] = current_doctype;
}
buf.push('</select>');
return buf.join('');
}
function navigate_to_first_existing(urls) {
// Navigate to the first existing URL in urls.
var url = urls.shift();
// Web browsers won't redirect file:// urls to file urls using ajax but
// its useful for local testing
if (url.startsWith("file://")) {
window.location.href = url;
return;
}
if (urls.length == 0) {
window.location.href = url;
return;
}
$.ajax({
url: url,
success: function() {
window.location.href = url;
},
error: function() {
navigate_to_first_existing(urls);
}
});
}
function get_docroot_url() {
var url = window.location.href;
var root = DOCUMENTATION_OPTIONS.URL_ROOT;
var urlarray = url.split('/');
// Trim off anything after '/'
urlarray.pop();
var depth = (root.match(/\.\.\//g) || []).length;
for (var i = 0; i < depth; i++) {
urlarray.pop();
}
return urlarray.join('/') + '/';
}
function on_version_switch() {
var selected_version = $(this).children('option:selected').attr('value');
var url = window.location.href;
var current_version = DOCUMENTATION_OPTIONS.VERSION;
var docroot = get_docroot_url()
var new_versionpath = selected_version + '/';
if (selected_version == "dev")
new_versionpath = '';
// dev versions have no version prefix
if (current_version == "dev") {
var new_url = docroot + new_versionpath + url.replace(docroot, "");
var fallback_url = docroot + new_versionpath;
} else {
var new_url = url.replace('/' + current_version + '/', '/' + new_versionpath);
var fallback_url = new_url.replace(url.replace(docroot, ""), "");
}
console.log(get_docroot_url())
console.log(url + " to url " + new_url);
console.log(url + " to fallback " + fallback_url);
if (new_url != url) {
navigate_to_first_existing([
new_url,
fallback_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
function on_doctype_switch() {
var selected_doctype = $(this).children('option:selected').attr('value');
var url = window.location.href;
if (selected_doctype == 'mega') {
var docroot = get_docroot_url()
var current_version = DOCUMENTATION_OPTIONS.VERSION;
// Assume manuals before 3.2 are using old docbook mega-manual
if (ver_compare(current_version, "3.2") < 0) {
var new_url = docroot + "mega-manual/mega-manual.html";
} else {
var new_url = docroot + "singleindex.html";
}
} else {
var new_url = url.replace("singleindex.html", "index.html")
}
if (new_url != url) {
navigate_to_first_existing([
new_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
// Returns the current doctype based upon the url
function doctype_segment_from_url(url) {
if (url.includes("singleindex") || url.includes("mega-manual"))
return "mega";
return "single";
}
$(document).ready(function() {
var release = DOCUMENTATION_OPTIONS.VERSION;
var current_doctype = doctype_segment_from_url(window.location.href);
var current_series = release.substr(0, 3);
var version_select = build_version_select(current_series, release);
$('.version_switcher_placeholder').html(version_select);
$('.version_switcher_placeholder select').bind('change', on_version_switch);
var doctype_select = build_doctype_select(current_doctype);
$('.doctype_switcher_placeholder').html(doctype_select);
$('.doctype_switcher_placeholder select').bind('change', on_doctype_switch);
if (ver_compare(release, "3.1") < 0) {
$('#outdated-warning').html('Version ' + release + ' of the project is now considered obsolete, please select and use a more recent version');
$('#outdated-warning').css('padding', '.5em');
} else if (release != "dev") {
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series && version != release) {
$('#outdated-warning').html('This document is for outdated version ' + release + ', you should select the latest release version in this series, ' + version + '.');
$('#outdated-warning').css('padding', '.5em');
}
});
}
});
})();

View File

@@ -1,162 +0,0 @@
/*
SPDX-License-Identifier: CC-BY-2.0-UK
*/
body {
font-family: Verdana, Sans, sans-serif;
margin: 0em auto;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
em {
font-weight: bold;
}
.pre {
font-size: medium;
font-family: Courier, monospace;
}
.wy-nav-content a {
text-decoration: underline;
color: #444;
background: transparent;
}
.wy-nav-content a:hover {
text-decoration: underline;
background-color: #dedede;
}
.wy-nav-content a:visited {
color: #444;
}
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
@media screen {
/* content column
*
* RTD theme's default is 800px as max width for the content, but we have
* tables with tons of columns, which need the full width of the view-port.
*/
.wy-nav-content{max-width: none; }
/* inline literal: drop the borderbox, padding and red color */
code, .rst-content tt, .rst-content code {
color: inherit;
border: none;
padding: unset;
background: inherit;
font-size: 85%;
}
.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal {
color: inherit;
}
/* Admonition should be gray, not blue or green */
.rst-content .note .admonition-title,
.rst-content .tip .admonition-title,
.rst-content .warning .admonition-title,
.rst-content .caution .admonition-title,
.rst-content .important .admonition-title {
background: #f0f0f2;
color: #00557D;
}
.rst-content .note,
.rst-content .tip,
.rst-content .important,
.rst-content .warning,
.rst-content .caution {
background: #f0f0f2;
}
/* Remove the icon in front of note/tip element, and before the logo */
.icon-home:before, .rst-content .admonition-title:before {
display: none
}
/* a custom informalexample container is used in some doc */
.informalexample {
border: 1px solid;
border-color: #aaa;
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
/* Remove the blue background in the top left corner, around the logo */
.wy-side-nav-search {
background: inherit;
}
}

1
bitbake/doc/template/Vera.xml vendored Normal file

File diff suppressed because one or more lines are too long

1
bitbake/doc/template/VeraMoBd.xml vendored Normal file

File diff suppressed because one or more lines are too long

1
bitbake/doc/template/VeraMono.xml vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="component.title">
<xsl:param name="node" select="."/>
<xsl:variable name="level">
<xsl:choose>
<xsl:when test="ancestor::d:section">
<xsl:value-of select="count(ancestor::d:section)+1"/>
</xsl:when>
<xsl:when test="ancestor::d:sect5">6</xsl:when>
<xsl:when test="ancestor::d:sect4">5</xsl:when>
<xsl:when test="ancestor::d:sect3">4</xsl:when>
<xsl:when test="ancestor::d:sect2">3</xsl:when>
<xsl:when test="ancestor::d:sect1">2</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml">
<xsl:attribute name="class">title</xsl:attribute>
<xsl:if test="$generate.id.attributes = 0">
<xsl:call-template name="anchor">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
</xsl:if>
<xsl:apply-templates select="$node" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

64
bitbake/doc/template/db-pdf.xsl vendored Normal file
View File

@@ -0,0 +1,64 @@
<?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://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" />
<!-- check project-plan.sh for how this is generated, needed to tweak
the cover page
-->
<xsl:include href="/tmp/titlepage.xsl"/>
<!-- To force a page break in document, i.e per section add a
<?hard-pagebreak?> tag.
-->
<xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-before='page' />
</xsl:template>
<!--Fix for defualt indent getting TOC all wierd..
See http://sources.redhat.com/ml/docbook-apps/2005-q1/msg00455.html
FIXME: must be a better fix
-->
<xsl:param name="body.start.indent" select="'0'"/>
<!--<xsl:param name="title.margin.left" select="'0'"/>-->
<!-- stop long-ish header titles getting wrapped -->
<xsl:param name="header.column.widths">1 10 1</xsl:param>
<!-- customise headers and footers a little -->
<xsl:template name="head.sep.rule">
<xsl:if test="$header.rule != 0">
<xsl:attribute name="border-bottom-width">0.5pt</xsl:attribute>
<xsl:attribute name="border-bottom-style">solid</xsl:attribute>
<xsl:attribute name="border-bottom-color">#cccccc</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="foot.sep.rule">
<xsl:if test="$footer.rule != 0">
<xsl:attribute name="border-top-width">0.5pt</xsl:attribute>
<xsl:attribute name="border-top-style">solid</xsl:attribute>
<xsl:attribute name="border-top-color">#cccccc</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:attribute-set name="header.content.properties">
<xsl:attribute name="color">#cccccc</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="footer.content.properties">
<xsl:attribute name="color">#cccccc</xsl:attribute>
</xsl:attribute-set>
<!-- general settings -->
<xsl:param name="fop1.extensions" select="1"></xsl:param>
<xsl:param name="paper.type" select="'A4'"></xsl:param>
<xsl:param name="section.autolabel" select="1"></xsl:param>
<xsl:param name="body.font.family" select="'verasans'"></xsl:param>
<xsl:param name="title.font.family" select="'verasans'"></xsl:param>
<xsl:param name="monospace.font.family" select="'veramono'"></xsl:param>
</xsl:stylesheet>

25
bitbake/doc/template/division.title.xsl vendored Normal file
View File

@@ -0,0 +1,25 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="division.title">
<xsl:param name="node" select="."/>
<h1>
<xsl:attribute name="class">title</xsl:attribute>
<xsl:call-template name="anchor">
<xsl:with-param name="node" select="$node"/>
<xsl:with-param name="conditional" select="0"/>
</xsl:call-template>
<xsl:apply-templates select="$node" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$node"/>
</xsl:call-template>
</h1>
</xsl:template>
</xsl:stylesheet>

58
bitbake/doc/template/fop-config.xml vendored Normal file
View File

@@ -0,0 +1,58 @@
<fop version="1.0">
<!-- Strict user configuration -->
<strict-configuration>true</strict-configuration>
<!-- Strict FO validation -->
<strict-validation>true</strict-validation>
<!--
Set the baseDir so common/openedhand.svg references in plans still
work ok. Note, relative file references to current dir should still work.
-->
<base>../template</base>
<font-base>../template</font-base>
<!-- Source resolution in dpi (dots/pixels per inch) for determining the
size of pixels in SVG and bitmap images, default: 72dpi -->
<!-- <source-resolution>72</source-resolution> -->
<!-- Target resolution in dpi (dots/pixels per inch) for specifying the
target resolution for generated bitmaps, default: 72dpi -->
<!-- <target-resolution>72</target-resolution> -->
<!-- default page-height and page-width, in case
value is specified as auto -->
<default-page-settings height="11in" width="8.26in"/>
<!-- <use-cache>false</use-cache> -->
<renderers>
<renderer mime="application/pdf">
<fonts>
<font metrics-file="VeraMono.xml"
kerning="yes"
embed-url="VeraMono.ttf">
<font-triplet name="veramono" style="normal" weight="normal"/>
</font>
<font metrics-file="VeraMoBd.xml"
kerning="yes"
embed-url="VeraMoBd.ttf">
<font-triplet name="veramono" style="normal" weight="bold"/>
</font>
<font metrics-file="Vera.xml"
kerning="yes"
embed-url="Vera.ttf">
<font-triplet name="verasans" style="normal" weight="normal"/>
<font-triplet name="verasans" style="normal" weight="bold"/>
<font-triplet name="verasans" style="italic" weight="normal"/>
<font-triplet name="verasans" style="italic" weight="bold"/>
</font>
<auto-detect/>
</fonts>
</renderer>
</renderers>
</fop>

View File

@@ -0,0 +1,21 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="d">
<xsl:template name="formal.object.heading">
<xsl:param name="object" select="."/>
<xsl:param name="title">
<xsl:apply-templates select="$object" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
</xsl:param>
<p class="title">
<b><xsl:copy-of select="$title"/></b>
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$object"/>
</xsl:call-template>
</p>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,14 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="glossentry/glossterm">
<xsl:apply-imports/>
<xsl:if test="$generate.permalink != 0">
<xsl:call-template name="permalink">
<xsl:with-param name="node" select=".."/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

25
bitbake/doc/template/permalinks.xsl vendored Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="generate.permalink" select="1"/>
<xsl:param name="permalink.text"></xsl:param>
<xsl:template name="permalink">
<xsl:param name="node"/>
<xsl:if test="$generate.permalink != '0'">
<span class="permalink">
<a alt="Permalink" title="Permalink">
<xsl:attribute name="href">
<xsl:call-template name="href.target">
<xsl:with-param name="object" select="$node"/>
</xsl:call-template>
</xsl:attribute>
<xsl:copy-of select="$permalink.text"/>
</a>
</span>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

55
bitbake/doc/template/section.title.xsl vendored Normal file
View File

@@ -0,0 +1,55 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="d">
<xsl:template name="section.title">
<xsl:variable name="section"
select="(ancestor::section |
ancestor::simplesect|
ancestor::sect1|
ancestor::sect2|
ancestor::sect3|
ancestor::sect4|
ancestor::sect5)[last()]"/>
<xsl:variable name="renderas">
<xsl:choose>
<xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
<xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
<xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
<xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
<xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
<xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="level">
<xsl:choose>
<xsl:when test="$renderas != ''">
<xsl:value-of select="$renderas"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="section.level">
<xsl:with-param name="node" select="$section"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="section.heading">
<xsl:with-param name="section" select="$section"/>
<xsl:with-param name="level" select="$level"/>
<xsl:with-param name="title">
<xsl:apply-templates select="$section" mode="object.title.markup">
<xsl:with-param name="allow-anchors" select="1"/>
</xsl:apply-templates>
<xsl:if test="$level &gt; 0">
<xsl:call-template name="permalink">
<xsl:with-param name="node" select="$section"/>
</xsl:call-template>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,51 @@
#!/bin/sh
if [ -z "$1" -o -z "$2" ]; then
echo "usage: [-v] $0 <docbook file> <templatedir>"
echo
echo "*NOTE* you need xsltproc, fop and nwalsh docbook stylesheets"
echo " installed for this to work!"
echo
exit 0
fi
FO=`echo $1 | sed s/.xml/.fo/` || exit 1
PDF=`echo $1 | sed s/.xml/.pdf/` || exit 1
TEMPLATEDIR=$2
##
# These URI should be rewritten by your distribution's xml catalog to
# match your localy installed XSL stylesheets.
XSL_BASE_URI="http://docbook.sourceforge.net/release/xsl/current"
# Creates a temporary XSL stylesheet based on titlepage.xsl
xsltproc -o /tmp/titlepage.xsl \
--xinclude \
$XSL_BASE_URI/template/titlepage.xsl \
$TEMPLATEDIR/titlepage.templates.xml || exit 1
# Creates the file needed for FOP
xsltproc --xinclude \
--stringparam hyphenate false \
--stringparam formal.title.placement "figure after" \
--stringparam ulink.show 1 \
--stringparam body.font.master 9 \
--stringparam title.font.master 11 \
--stringparam draft.watermark.image "$TEMPLATEDIR/draft.png" \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--output $FO \
$TEMPLATEDIR/db-pdf.xsl \
$1 || exit 1
# Invokes the Java version of FOP. Uses the additional configuration file common/fop-config.xml
fop -c $TEMPLATEDIR/fop-config.xml -fo $FO -pdf $PDF || exit 1
rm -f $FO
rm -f /tmp/titlepage.xsl
echo
echo " #### Success! $PDF ready. ####"
echo

View File

@@ -1,18 +1,31 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# This is a copy on write dictionary and set which abuses classes to try and be nice and fast.
#
# Copyright (C) 2006 Tim Ansell
# Copyright (C) 2006 Tim Amsell
#
# SPDX-License-Identifier: GPL-2.0-only
# 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.
#
# Please Note:
# 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.
#
#Please Note:
# Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW.
# Assign a file to __warn__ to get warnings about slow operations.
#
import copy
import types
ImmutableTypes = (
bool,
complex,
@@ -25,11 +38,9 @@ ImmutableTypes = (
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
@@ -38,15 +49,12 @@ class COWDictMeta(COWMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
copy = cow
__call__ = cow
@@ -78,9 +86,8 @@ class COWDictMeta(COWMeta):
return value
__getmarker__ = []
def __getreadonly__(cls, key, default=__getmarker__):
"""
"""\
Get a value (even if mutable) which you promise not to change.
"""
return cls.__getitem__(key, default, True)
@@ -143,33 +150,28 @@ class COWDictMeta(COWMeta):
yield value
if type == "items":
yield (key, value)
return
raise StopIteration()
def iterkeys(cls):
return cls.iter("keys")
def itervalues(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("values", readonly)
def iteritems(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("items", readonly)
class COWSetMeta(COWDictMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) -3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
def add(cls, value):
@@ -187,11 +189,131 @@ class COWSetMeta(COWDictMeta):
def iteritems(cls):
raise TypeError("sets don't have 'items'")
# These are the actual classes you use!
class COWDictBase(metaclass=COWDictMeta):
class COWDictBase(object, metaclass = COWDictMeta):
__count__ = 0
class COWSetBase(metaclass=COWSetMeta):
class COWSetBase(object, metaclass = COWSetMeta):
__count__ = 0
if __name__ == "__main__":
import sys
COWDictBase.__warn__ = sys.stderr
a = COWDictBase()
print("a", a)
a['a'] = 'a'
a['b'] = 'b'
a['dict'] = {}
b = a.copy()
print("b", b)
b['c'] = 'b'
print()
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print(x)
print()
b['dict']['a'] = 'b'
b['a'] = 'c'
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems():
print(x)
print()
try:
b['dict2']
except KeyError as e:
print("Okay!")
a['set'] = COWSetBase()
a['set'].add("o1")
a['set'].add("o1")
a['set'].add("o2")
print("a", a)
for x in a['set'].itervalues():
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print(x)
print()
b['set'].add('o3')
print("a", a)
for x in a['set'].itervalues():
print(x)
print("--")
print("b", b)
for x in b['set'].itervalues():
print(x)
print()
a['set2'] = set()
a['set2'].add("o1")
a['set2'].add("o1")
a['set2'].add("o2")
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
del b['b']
try:
print(b['b'])
except KeyError:
print("Yay! deleted key raises error")
if 'b' in b:
print("Boo!")
else:
print("Yay - has_key with delete works!")
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
b.__revertitem__('b')
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()
b.__revertitem__('dict')
print("a", a)
for x in a.iteritems():
print(x)
print("--")
print("b", b)
for x in b.iteritems(readonly=True):
print(x)
print()

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Build System Python Library
#
@@ -6,30 +8,33 @@
#
# Based on Gentoo's portage.py.
#
# SPDX-License-Identifier: GPL-2.0-only
# 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.
__version__ = "2.6.0"
__version__ = "1.34.0"
import sys
if sys.version_info < (3, 8, 0):
raise RuntimeError("Sorry, python 3.8.0 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")
if sys.version_info < (3, 10, 0):
# With python 3.8 and 3.9, we see errors of "libgcc_s.so.1 must be installed for pthread_cancel to work"
# https://stackoverflow.com/questions/64797838/libgcc-s-so-1-must-be-installed-for-pthread-cancel-to-work
# https://bugs.ams1.psf.io/issue42888
# so ensure libgcc_s is loaded early on
import ctypes
libgcc_s = ctypes.CDLL('libgcc_s.so.1')
class BBHandledException(Exception):
"""
The big dilemma for generic bitbake code is what information to give the user
when an exception occurs. Any exception inheriting this base exception class
has already provided information to the user via some 'fired' message type such as
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
will be given to the user, its assumed the earlier event provided the relevant information.
"""
pass
@@ -42,36 +47,15 @@ class NullHandler(logging.Handler):
def emit(self, record):
pass
class BBLoggerMixin(object):
def __init__(self, *args, **kwargs):
# Does nothing to allow calling super() from derived classes
pass
def setup_bblogger(self, name):
Logger = logging.getLoggerClass()
class BBLogger(Logger):
def __init__(self, name):
if name.split(".")[0] == "BitBake":
self.debug = self._debug_helper
def _debug_helper(self, *args, **kwargs):
return self.bbdebug(1, *args, **kwargs)
def debug2(self, *args, **kwargs):
return self.bbdebug(2, *args, **kwargs)
def debug3(self, *args, **kwargs):
return self.bbdebug(3, *args, **kwargs)
self.debug = self.bbdebug
Logger.__init__(self, name)
def bbdebug(self, level, msg, *args, **kwargs):
loglevel = logging.DEBUG - level + 1
if not bb.event.worker_pid:
if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
return
if loglevel < bb.msg.loggerDefaultLogLevel:
return
if not isinstance(level, int) or not isinstance(msg, str):
mainlogger.warning("Invalid arguments in bbdebug: %s" % repr((level, msg,) + args))
return self.log(loglevel, msg, *args, **kwargs)
return self.log(logging.DEBUG - level + 1, msg, *args, **kwargs)
def plain(self, msg, *args, **kwargs):
return self.log(logging.INFO + 1, msg, *args, **kwargs)
@@ -79,66 +63,15 @@ class BBLoggerMixin(object):
def verbose(self, msg, *args, **kwargs):
return self.log(logging.INFO - 1, msg, *args, **kwargs)
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
def warnonce(self, msg, *args, **kwargs):
return self.log(logging.WARNING - 1, msg, *args, **kwargs)
def erroronce(self, msg, *args, **kwargs):
return self.log(logging.ERROR - 1, msg, *args, **kwargs)
Logger = logging.getLoggerClass()
class BBLogger(Logger, BBLoggerMixin):
def __init__(self, name, *args, **kwargs):
self.setup_bblogger(name)
super().__init__(name, *args, **kwargs)
logging.raiseExceptions = False
logging.setLoggerClass(BBLogger)
class BBLoggerAdapter(logging.LoggerAdapter, BBLoggerMixin):
def __init__(self, logger, *args, **kwargs):
self.setup_bblogger(logger.name)
super().__init__(logger, *args, **kwargs)
if sys.version_info < (3, 6):
# These properties were added in Python 3.6. Add them in older versions
# for compatibility
@property
def manager(self):
return self.logger.manager
@manager.setter
def manager(self, value):
self.logger.manager = value
@property
def name(self):
return self.logger.name
def __repr__(self):
logger = self.logger
level = logger.getLevelName(logger.getEffectiveLevel())
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
logging.LoggerAdapter = BBLoggerAdapter
logger = logging.getLogger("BitBake")
logger.addHandler(NullHandler())
logger.setLevel(logging.DEBUG - 2)
mainlogger = logging.getLogger("BitBake.Main")
class PrefixLoggerAdapter(logging.LoggerAdapter):
def __init__(self, prefix, logger):
super().__init__(logger, {})
self.__msg_prefix = prefix
def process(self, msg, kwargs):
return "%s%s" %(self.__msg_prefix, msg), kwargs
# This has to be imported after the setLoggerClass, as the import of bb.msg
# can result in construction of the various loggers.
import bb.msg
@@ -155,35 +88,17 @@ def debug(lvl, *args):
mainlogger.warning("Passed invalid debug level '%s' to bb.debug", lvl)
args = (lvl,) + args
lvl = 1
mainlogger.bbdebug(lvl, ''.join(args))
mainlogger.debug(lvl, ''.join(args))
def note(*args):
mainlogger.info(''.join(args))
#
# A higher prioity note which will show on the console but isn't a warning
#
# Something is happening the user should be aware of but they probably did
# something to make it happen
#
def verbnote(*args):
mainlogger.verbnote(''.join(args))
#
# Warnings - things the user likely needs to pay attention to and fix
#
def warn(*args):
mainlogger.warning(''.join(args))
def warnonce(*args):
mainlogger.warnonce(''.join(args))
def error(*args, **kwargs):
mainlogger.error(''.join(args), extra=kwargs)
def erroronce(*args):
mainlogger.erroronce(''.join(args))
def fatal(*args, **kwargs):
mainlogger.critical(''.join(args), extra=kwargs)
raise BBHandledException()

View File

@@ -1,215 +0,0 @@
#! /usr/bin/env python3
#
# Copyright 2023 by Garmin Ltd. or its subsidiaries
#
# SPDX-License-Identifier: MIT
import sys
import ctypes
import os
import errno
import pwd
import grp
libacl = ctypes.CDLL("libacl.so.1", use_errno=True)
ACL_TYPE_ACCESS = 0x8000
ACL_TYPE_DEFAULT = 0x4000
ACL_FIRST_ENTRY = 0
ACL_NEXT_ENTRY = 1
ACL_UNDEFINED_TAG = 0x00
ACL_USER_OBJ = 0x01
ACL_USER = 0x02
ACL_GROUP_OBJ = 0x04
ACL_GROUP = 0x08
ACL_MASK = 0x10
ACL_OTHER = 0x20
ACL_READ = 0x04
ACL_WRITE = 0x02
ACL_EXECUTE = 0x01
acl_t = ctypes.c_void_p
acl_entry_t = ctypes.c_void_p
acl_permset_t = ctypes.c_void_p
acl_perm_t = ctypes.c_uint
acl_tag_t = ctypes.c_int
libacl.acl_free.argtypes = [acl_t]
def acl_free(acl):
libacl.acl_free(acl)
libacl.acl_get_file.restype = acl_t
libacl.acl_get_file.argtypes = [ctypes.c_char_p, ctypes.c_uint]
def acl_get_file(path, typ):
acl = libacl.acl_get_file(os.fsencode(path), typ)
if acl is None:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err), str(path))
return acl
libacl.acl_get_entry.argtypes = [acl_t, ctypes.c_int, ctypes.c_void_p]
def acl_get_entry(acl, entry_id):
entry = acl_entry_t()
ret = libacl.acl_get_entry(acl, entry_id, ctypes.byref(entry))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
if ret == 0:
return None
return entry
libacl.acl_get_tag_type.argtypes = [acl_entry_t, ctypes.c_void_p]
def acl_get_tag_type(entry_d):
tag = acl_tag_t()
ret = libacl.acl_get_tag_type(entry_d, ctypes.byref(tag))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return tag.value
libacl.acl_get_qualifier.restype = ctypes.c_void_p
libacl.acl_get_qualifier.argtypes = [acl_entry_t]
def acl_get_qualifier(entry_d):
ret = libacl.acl_get_qualifier(entry_d)
if ret is None:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return ctypes.c_void_p(ret)
libacl.acl_get_permset.argtypes = [acl_entry_t, ctypes.c_void_p]
def acl_get_permset(entry_d):
permset = acl_permset_t()
ret = libacl.acl_get_permset(entry_d, ctypes.byref(permset))
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return permset
libacl.acl_get_perm.argtypes = [acl_permset_t, acl_perm_t]
def acl_get_perm(permset_d, perm):
ret = libacl.acl_get_perm(permset_d, perm)
if ret < 0:
err = ctypes.get_errno()
raise OSError(err, os.strerror(err))
return bool(ret)
class Entry(object):
def __init__(self, tag, qualifier, mode):
self.tag = tag
self.qualifier = qualifier
self.mode = mode
def __str__(self):
typ = ""
qual = ""
if self.tag == ACL_USER:
typ = "user"
qual = pwd.getpwuid(self.qualifier).pw_name
elif self.tag == ACL_GROUP:
typ = "group"
qual = grp.getgrgid(self.qualifier).gr_name
elif self.tag == ACL_USER_OBJ:
typ = "user"
elif self.tag == ACL_GROUP_OBJ:
typ = "group"
elif self.tag == ACL_MASK:
typ = "mask"
elif self.tag == ACL_OTHER:
typ = "other"
r = "r" if self.mode & ACL_READ else "-"
w = "w" if self.mode & ACL_WRITE else "-"
x = "x" if self.mode & ACL_EXECUTE else "-"
return f"{typ}:{qual}:{r}{w}{x}"
class ACL(object):
def __init__(self, acl):
self.acl = acl
def __del__(self):
acl_free(self.acl)
def entries(self):
entry_id = ACL_FIRST_ENTRY
while True:
entry = acl_get_entry(self.acl, entry_id)
if entry is None:
break
permset = acl_get_permset(entry)
mode = 0
for m in (ACL_READ, ACL_WRITE, ACL_EXECUTE):
if acl_get_perm(permset, m):
mode |= m
qualifier = None
tag = acl_get_tag_type(entry)
if tag == ACL_USER or tag == ACL_GROUP:
qual = acl_get_qualifier(entry)
qualifier = ctypes.cast(qual, ctypes.POINTER(ctypes.c_int))[0]
yield Entry(tag, qualifier, mode)
entry_id = ACL_NEXT_ENTRY
@classmethod
def from_path(cls, path, typ):
acl = acl_get_file(path, typ)
return cls(acl)
def main():
import argparse
import pwd
import grp
from pathlib import Path
parser = argparse.ArgumentParser()
parser.add_argument("path", help="File Path", type=Path)
args = parser.parse_args()
acl = ACL.from_path(args.path, ACL_TYPE_ACCESS)
for entry in acl.entries():
print(str(entry))
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@@ -1,33 +0,0 @@
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import itertools
import json
# The Python async server defaults to a 64K receive buffer, so we hardcode our
# maximum chunk size. It would be better if the client and server reported to
# each other what the maximum chunk sizes were, but that will slow down the
# connection setup with a round trip delay so I'd rather not do that unless it
# is necessary
DEFAULT_MAX_CHUNK = 32 * 1024
def chunkify(msg, max_chunk):
if len(msg) < max_chunk - 1:
yield ''.join((msg, "\n"))
else:
yield ''.join((json.dumps({
'chunk-stream': None
}), "\n"))
args = [iter(msg)] * (max_chunk - 1)
for m in map(''.join, itertools.zip_longest(*args, fillvalue='')):
yield ''.join(itertools.chain(m, "\n"))
yield "\n"
from .client import AsyncClient, Client
from .serv import AsyncServer, AsyncServerConnection, ClientError, ServerError

View File

@@ -1,191 +0,0 @@
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import socket
import sys
from . import chunkify, DEFAULT_MAX_CHUNK
class AsyncClient(object):
def __init__(self, proto_name, proto_version, logger, timeout=30):
self.reader = None
self.writer = None
self.max_chunk = DEFAULT_MAX_CHUNK
self.proto_name = proto_name
self.proto_version = proto_version
self.logger = logger
self.timeout = timeout
async def connect_tcp(self, address, port):
async def connect_sock():
return await asyncio.open_connection(address, port)
self._connect_sock = connect_sock
async def connect_unix(self, path):
async def connect_sock():
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
try:
os.chdir(os.path.dirname(path))
# The socket must be opened synchronously so that CWD doesn't get
# changed out from underneath us so we pass as a sock into asyncio
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM, 0)
sock.connect(os.path.basename(path))
finally:
os.chdir(cwd)
return await asyncio.open_unix_connection(sock=sock)
self._connect_sock = connect_sock
async def setup_connection(self):
s = '%s %s\n\n' % (self.proto_name, self.proto_version)
self.writer.write(s.encode("utf-8"))
await self.writer.drain()
async def connect(self):
if self.reader is None or self.writer is None:
(self.reader, self.writer) = await self._connect_sock()
await self.setup_connection()
async def close(self):
self.reader = None
if self.writer is not None:
self.writer.close()
self.writer = None
async def _send_wrapper(self, proc):
count = 0
while True:
try:
await self.connect()
return await proc()
except (
OSError,
ConnectionError,
json.JSONDecodeError,
UnicodeDecodeError,
) as e:
self.logger.warning("Error talking to server: %s" % e)
if count >= 3:
if not isinstance(e, ConnectionError):
raise ConnectionError(str(e))
raise e
await self.close()
count += 1
async def send_message(self, msg):
async def get_line():
try:
line = await asyncio.wait_for(self.reader.readline(), self.timeout)
except asyncio.TimeoutError:
raise ConnectionError("Timed out waiting for server")
if not line:
raise ConnectionError("Connection closed")
line = line.decode("utf-8")
if not line.endswith("\n"):
raise ConnectionError("Bad message %r" % (line))
return line
async def proc():
for c in chunkify(json.dumps(msg), self.max_chunk):
self.writer.write(c.encode("utf-8"))
await self.writer.drain()
l = await get_line()
m = json.loads(l)
if m and "chunk-stream" in m:
lines = []
while True:
l = (await get_line()).rstrip("\n")
if not l:
break
lines.append(l)
m = json.loads("".join(lines))
return m
return await self._send_wrapper(proc)
async def ping(self):
return await self.send_message(
{'ping': {}}
)
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc_value, traceback):
await self.close()
class Client(object):
def __init__(self):
self.client = self._get_async_client()
self.loop = asyncio.new_event_loop()
# Override any pre-existing loop.
# Without this, the PR server export selftest triggers a hang
# when running with Python 3.7. The drawback is that there is
# potential for issues if the PR and hash equiv (or some new)
# clients need to both be instantiated in the same process.
# This should be revisited if/when Python 3.9 becomes the
# minimum required version for BitBake, as it seems not
# required (but harmless) with it.
asyncio.set_event_loop(self.loop)
self._add_methods('connect_tcp', 'ping')
@abc.abstractmethod
def _get_async_client(self):
pass
def _get_downcall_wrapper(self, downcall):
def wrapper(*args, **kwargs):
return self.loop.run_until_complete(downcall(*args, **kwargs))
return wrapper
def _add_methods(self, *methods):
for m in methods:
downcall = getattr(self.client, m)
setattr(self, m, self._get_downcall_wrapper(downcall))
def connect_unix(self, path):
self.loop.run_until_complete(self.client.connect_unix(path))
self.loop.run_until_complete(self.client.connect())
@property
def max_chunk(self):
return self.client.max_chunk
@max_chunk.setter
def max_chunk(self, value):
self.client.max_chunk = value
def close(self):
self.loop.run_until_complete(self.client.close())
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()
return False

View File

@@ -1,295 +0,0 @@
#
# Copyright BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import signal
import socket
import sys
import multiprocessing
from . import chunkify, DEFAULT_MAX_CHUNK
class ClientError(Exception):
pass
class ServerError(Exception):
pass
class AsyncServerConnection(object):
def __init__(self, reader, writer, proto_name, logger):
self.reader = reader
self.writer = writer
self.proto_name = proto_name
self.max_chunk = DEFAULT_MAX_CHUNK
self.handlers = {
'chunk-stream': self.handle_chunk,
'ping': self.handle_ping,
}
self.logger = logger
async def process_requests(self):
try:
self.addr = self.writer.get_extra_info('peername')
self.logger.debug('Client %r connected' % (self.addr,))
# Read protocol and version
client_protocol = await self.reader.readline()
if not client_protocol:
return
(client_proto_name, client_proto_version) = client_protocol.decode('utf-8').rstrip().split()
if client_proto_name != self.proto_name:
self.logger.debug('Rejecting invalid protocol %s' % (self.proto_name))
return
self.proto_version = tuple(int(v) for v in client_proto_version.split('.'))
if not self.validate_proto_version():
self.logger.debug('Rejecting invalid protocol version %s' % (client_proto_version))
return
# Read headers. Currently, no headers are implemented, so look for
# an empty line to signal the end of the headers
while True:
line = await self.reader.readline()
if not line:
return
line = line.decode('utf-8').rstrip()
if not line:
break
# Handle messages
while True:
d = await self.read_message()
if d is None:
break
await self.dispatch_message(d)
await self.writer.drain()
except ClientError as e:
self.logger.error(str(e))
finally:
self.writer.close()
async def dispatch_message(self, msg):
for k in self.handlers.keys():
if k in msg:
self.logger.debug('Handling %s' % k)
await self.handlers[k](msg[k])
return
raise ClientError("Unrecognized command %r" % msg)
def write_message(self, msg):
for c in chunkify(json.dumps(msg), self.max_chunk):
self.writer.write(c.encode('utf-8'))
async def read_message(self):
l = await self.reader.readline()
if not l:
return None
try:
message = l.decode('utf-8')
if not message.endswith('\n'):
return None
return json.loads(message)
except (json.JSONDecodeError, UnicodeDecodeError) as e:
self.logger.error('Bad message from client: %r' % message)
raise e
async def handle_chunk(self, request):
lines = []
try:
while True:
l = await self.reader.readline()
l = l.rstrip(b"\n").decode("utf-8")
if not l:
break
lines.append(l)
msg = json.loads(''.join(lines))
except (json.JSONDecodeError, UnicodeDecodeError) as e:
self.logger.error('Bad message from client: %r' % lines)
raise e
if 'chunk-stream' in msg:
raise ClientError("Nested chunks are not allowed")
await self.dispatch_message(msg)
async def handle_ping(self, request):
response = {'alive': True}
self.write_message(response)
class AsyncServer(object):
def __init__(self, logger):
self._cleanup_socket = None
self.logger = logger
self.start = None
self.address = None
self.loop = None
def start_tcp_server(self, host, port):
def start_tcp():
self.server = self.loop.run_until_complete(
asyncio.start_server(self.handle_client, host, port)
)
for s in self.server.sockets:
self.logger.debug('Listening on %r' % (s.getsockname(),))
# Newer python does this automatically. Do it manually here for
# maximum compatibility
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
# Enable keep alives. This prevents broken client connections
# from persisting on the server for long periods of time.
s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 30)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 15)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 4)
name = self.server.sockets[0].getsockname()
if self.server.sockets[0].family == socket.AF_INET6:
self.address = "[%s]:%d" % (name[0], name[1])
else:
self.address = "%s:%d" % (name[0], name[1])
self.start = start_tcp
def start_unix_server(self, path):
def cleanup():
os.unlink(path)
def start_unix():
cwd = os.getcwd()
try:
# Work around path length limits in AF_UNIX
os.chdir(os.path.dirname(path))
self.server = self.loop.run_until_complete(
asyncio.start_unix_server(self.handle_client, os.path.basename(path))
)
finally:
os.chdir(cwd)
self.logger.debug('Listening on %r' % path)
self._cleanup_socket = cleanup
self.address = "unix://%s" % os.path.abspath(path)
self.start = start_unix
@abc.abstractmethod
def accept_client(self, reader, writer):
pass
async def handle_client(self, reader, writer):
# writer.transport.set_write_buffer_limits(0)
try:
client = self.accept_client(reader, writer)
await client.process_requests()
except Exception as e:
import traceback
self.logger.error('Error from client: %s' % str(e), exc_info=True)
traceback.print_exc()
writer.close()
self.logger.debug('Client disconnected')
def run_loop_forever(self):
try:
self.loop.run_forever()
except KeyboardInterrupt:
pass
def signal_handler(self):
self.logger.debug("Got exit signal")
self.loop.stop()
def _serve_forever(self):
try:
self.loop.add_signal_handler(signal.SIGTERM, self.signal_handler)
signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGTERM])
self.run_loop_forever()
self.server.close()
self.loop.run_until_complete(self.server.wait_closed())
self.logger.debug('Server shutting down')
finally:
if self._cleanup_socket is not None:
self._cleanup_socket()
def serve_forever(self):
"""
Serve requests in the current process
"""
# Create loop and override any loop that may have existed in
# a parent process. It is possible that the usecases of
# serve_forever might be constrained enough to allow using
# get_event_loop here, but better safe than sorry for now.
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
self.start()
self._serve_forever()
def serve_as_process(self, *, prefunc=None, args=()):
"""
Serve requests in a child process
"""
def run(queue):
# Create loop and override any loop that may have existed
# in a parent process. Without doing this and instead
# using get_event_loop, at the very minimum the hashserv
# unit tests will hang when running the second test.
# This happens since get_event_loop in the spawned server
# process for the second testcase ends up with the loop
# from the hashserv client created in the unit test process
# when running the first testcase. The problem is somewhat
# more general, though, as any potential use of asyncio in
# Cooker could create a loop that needs to replaced in this
# new process.
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
try:
self.start()
finally:
queue.put(self.address)
queue.close()
if prefunc is not None:
prefunc(self, *args)
self._serve_forever()
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
queue = multiprocessing.Queue()
# Temporarily block SIGTERM. The server process will inherit this
# block which will ensure it doesn't receive the SIGTERM until the
# handler is ready for it
mask = signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGTERM])
try:
self.process = multiprocessing.Process(target=run, args=(queue,))
self.process.start()
self.address = queue.get()
queue.close()
queue.join_thread()
return self.process
finally:
signal.pthread_sigmask(signal.SIG_SETMASK, mask)

Some files were not shown because too many files have changed in this diff Show More