From a1061efbc2998ff0fc003ea611de92cfef24b2f1 Mon Sep 17 00:00:00 2001 From: NADAL Jean-Baptiste Date: Wed, 16 Nov 2016 22:07:29 +0100 Subject: [PATCH] Update buidlroot to version 2016.08.1 --- bsp/buildroot/.defconfig | 1 - bsp/buildroot/CHANGES | 328 +++ bsp/buildroot/Config.in | 355 +-- bsp/buildroot/Config.in.legacy | 260 ++- bsp/buildroot/Makefile | 57 +- bsp/buildroot/arch/Config.in | 10 +- bsp/buildroot/arch/Config.in.arm | 19 +- bsp/buildroot/arch/Config.in.bfin | 2 +- bsp/buildroot/arch/Config.in.m68k | 36 +- bsp/buildroot/arch/Config.in.x86 | 7 +- bsp/buildroot/board/altera/readme.txt | 41 +- .../ppc-ucp1020/configs/linux-4.1.x.config | 269 +++ .../0001-Arcturus-uCP1020-BSP-support.patch | 462 ++++ ...-p1020-esdhc-controller-reserved-bit.patch | 28 + .../board/arcturus/ppc-ucp1020/readme.txt | 73 + .../board/arm/foundation-v8/readme.txt | 4 +- .../board/arm/juno/linux-juno-defconfig | 2 + bsp/buildroot/board/arm/juno/readme.txt | 17 +- bsp/buildroot/board/armadeus/readme.txt | 89 + bsp/buildroot/board/atmel/readme.txt | 87 +- .../atmel/sama5d2_xplained_mmc/genimage.cfg | 33 + .../atmel/sama5d2_xplained_mmc/post-image.sh | 14 + .../atmel/sama5d3_xplained_mmc/genimage.cfg | 33 + .../atmel/sama5d3_xplained_mmc/post-image.sh | 14 + .../atmel/sama5d4_xplained_mmc/genimage.cfg | 34 + .../atmel/sama5d4_xplained_mmc/post-image.sh | 14 + bsp/buildroot/board/atmel/xplained/readme.txt | 73 - bsp/buildroot/board/avnet/microzed/readme.txt | 68 - ...microzed-specific-U-Boot-environment.patch | 41 - bsp/buildroot/board/avnet/zedboard/readme.txt | 64 - ...zedboard-specific-U-Boot-environment.patch | 45 - bsp/buildroot/board/beaglebone/genimage.cfg | 30 + bsp/buildroot/board/beaglebone/post-image.sh | 14 + bsp/buildroot/board/beaglebone/readme.txt | 32 +- .../{nitrogen6x => common}/6x_bootscript.txt | 33 +- .../{nitrogen6x => common}/6x_upgrade.txt | 2 +- .../{nitrogen6x => common}/genimage.cfg | 0 .../{nitrogen6x => common}/post-build.sh | 0 .../{nitrogen6x => common}/post-image.sh | 0 .../board/boundarydevices/common/readme.txt | 30 + .../boundarydevices/nitrogen6x/readme.txt | 13 - .../board/chromebook/snow/kernel.args | 1 + .../board/chromebook/snow/kernel.its | 37 + .../chromebook/snow/linux-4.6-dts-tpm.patch | 27 + .../board/chromebook/snow/linux-4.6.fragment | 2 + bsp/buildroot/board/chromebook/snow/mksd.sh | 69 + .../board/chromebook/snow/readme.txt | 137 ++ bsp/buildroot/board/chromebook/snow/sign.sh | 41 + .../board/cubietech/cubieboard2/genimage.cfg | 1 + .../firefly/firefly-rk3288/extlinux.conf | 6 + .../firefly/firefly-rk3288/post-build.sh | 3 + .../firefly/firefly-rk3288/post-image.sh | 20 + .../board/firefly/firefly-rk3288/readme.txt | 40 + .../board/firefly/firefly-rk3288/sd-image.cfg | 22 + .../board/freescale/imx25pdk/genimage.cfg | 41 + .../board/freescale/imx25pdk/post-image.sh | 14 + .../board/freescale/imx25pdk/readme.txt | 54 + .../board/freescale/imx51evk/genimage.cfg | 41 + .../board/freescale/imx51evk/post-image.sh | 14 + .../board/freescale/imx51evk/readme.txt | 54 + .../freescale/imx53loco/create-boot-sd.sh | 1 - .../board/freescale/imx53loco/genimage.cfg | 42 + .../board/freescale/imx53loco/post-image.sh | 14 + .../board/freescale/imx6ulevk/genimage.cfg | 4 +- .../board/freescale/imx6ulevk/post-image.sh | 5 +- .../board/freescale/imx6ulevk/readme.txt | 2 +- .../board/freescale/imx7dsdb/genimage.cfg | 41 + .../board/freescale/imx7dsdb/post-image.sh | 14 + .../board/freescale/imx7dsdb/readme.txt | 54 + .../{linux-4.2.config => linux-4.5.config} | 0 .../board/freescale/warpboard/README | 26 +- .../board/freescale/warpboard/genimage.cfg | 41 + .../board/freescale/warpboard/linux.fragment | 1 + .../patches/linux/0001-hciuart-h4.patch | 34 - .../linux/0002-replace-uart2-by-uart5.patch | 103 - .../board/freescale/warpboard/post-image.sh | 14 + .../board/gdb/bfin-bf512/linux-4.6.config | 87 + bsp/buildroot/board/gdb/bfin-bf512/readme.txt | 11 + bsp/buildroot/board/gdb/post-build.sh | 4 + .../board/hardkernel/odroidc2/boot.ini | 50 + .../board/hardkernel/odroidc2/genimage.cfg | 27 + .../board/hardkernel/odroidc2/post-image.sh | 19 + .../board/hardkernel/odroidc2/readme.txt | 53 + .../board/linksprite/pcduino/boot.cmd | 8 + .../board/linksprite/pcduino/genimage.cfg | 42 + .../linksprite/pcduino/linux-extras.config | 16 + .../board/linksprite/pcduino/post-build.sh | 11 + .../board/linksprite/pcduino/post-image.sh | 16 + .../board/linksprite/pcduino/readme.txt | 42 + .../board/minnowboard-max/post-build.sh | 2 - .../board/minnowboard-max/readme.txt | 40 - .../fs-overlay-graphical/etc/X11/Xsession | 7 + .../fs-overlay-graphical/etc/asound.conf | 4 + bsp/buildroot/board/minnowboard/genimage.cfg | 34 + .../grub-minnowboard-max.cfg} | 2 +- .../{grub.cfg => grub-minnowboard.cfg} | 0 .../linux-4.6.config} | 13 +- bsp/buildroot/board/minnowboard/post-build.sh | 12 +- bsp/buildroot/board/minnowboard/post-image.sh | 13 + bsp/buildroot/board/minnowboard/readme.txt | 42 +- .../board/olimex/a20_olinuxino/genimage.cfg | 17 + .../board/olimex/a20_olinuxino/post-image.sh | 16 + .../board/olimex/a20_olinuxino/readme.txt | 56 +- .../genimage-imx233_olinuxino.cfg | 28 + .../mxs-bootlets-01-olinuxino.patch | 122 - .../olimex/imx233_olinuxino/post-image.sh | 20 + .../board/olimex/imx233_olinuxino/readme.txt | 59 +- .../board/orangepi/orangepipc/genimage.cfg | 1 + bsp/buildroot/board/pandaboard/genimage.cfg | 26 + bsp/buildroot/board/pandaboard/post-image.sh | 16 + bsp/buildroot/board/pandaboard/readme.txt | 46 + bsp/buildroot/board/pc/genimage-bios.cfg | 24 + bsp/buildroot/board/pc/genimage-efi.cfg | 31 + bsp/buildroot/board/pc/linux-extras.config | 45 + bsp/buildroot/board/pc/post-image.sh | 35 + bsp/buildroot/board/pc/readme.txt | 37 + .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/aarch64-virt/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 5 +- .../board/qemu/arm-versatile/readme.txt | 2 +- .../board/qemu/arm-vexpress/readme.txt | 2 +- .../board/qemu/m68k-mcf5208/linux-4.7.config | 28 + .../patches/linux/m68knommu-fix-signal.patch | 45 + .../board/qemu/m68k-mcf5208/readme.txt | 7 + .../board/qemu/m68k-q800/linux-4.7.config | 26 + bsp/buildroot/board/qemu/m68k-q800/readme.txt | 8 + .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/microblazebe-mmu/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/microblazeel-mmu/readme.txt | 2 +- .../linux-4.7.config} | 0 .../{mips-malta => mips32r2-malta}/readme.txt | 2 +- .../linux-4.7.config} | 0 .../readme.txt | 2 +- .../qemu/mips32r6-malta/linux-4.7.config | 30 + .../board/qemu/mips32r6-malta/readme.txt | 7 + .../qemu/mips32r6el-malta/linux-4.7.config | 30 + .../board/qemu/mips32r6el-malta/readme.txt | 7 + .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/mips64-malta/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/mips64el-malta/readme.txt | 2 +- .../qemu/mips64r6-malta/linux-4.7.config | 34 + .../board/qemu/mips64r6-malta/readme.txt | 7 + .../qemu/mips64r6el-malta/linux-4.7.config | 34 + .../board/qemu/mips64r6el-malta/readme.txt | 7 + .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/ppc-g3beige/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/ppc-mpc8544ds/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/ppc-virtex-ml507/readme.txt | 2 +- .../board/qemu/ppc64-pseries/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 bsp/buildroot/board/qemu/sh4-r2d/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 bsp/buildroot/board/qemu/sh4eb-r2d/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/sparc-ss10/readme.txt | 2 +- .../{linux-4.4.config => linux-4.7.config} | 0 .../board/qemu/sparc64-sun4u/readme.txt | 2 +- bsp/buildroot/board/qemu/x86/linux-4.4.config | 24 - bsp/buildroot/board/qemu/x86/linux-4.7.config | 1 + bsp/buildroot/board/qemu/x86/readme.txt | 4 +- .../board/qemu/x86_64/linux-4.4.config | 24 - .../board/qemu/x86_64/linux-4.7.config | 45 + bsp/buildroot/board/qemu/x86_64/readme.txt | 4 +- .../qemu/xtensa-lx60/linux-4.7-nommu.config | 37 + .../{linux-4.4.config => linux-4.7.config} | 4 +- .../board/qemu/xtensa-lx60/readme.txt | 5 +- .../{xtensa_dc232b.tar => xtensa_dc233c.tar} | Bin 747520 -> 808960 bytes .../raspberrypi/genimage-raspberrypi0.cfg | 30 + .../raspberrypi/genimage-raspberrypi3.cfg | 30 + bsp/buildroot/board/raspberrypi/post-build.sh | 11 + bsp/buildroot/board/raspberrypi/readme.txt | 14 +- bsp/buildroot/board/raspberrypi0 | 1 + bsp/buildroot/board/raspberrypi3 | 1 + bsp/buildroot/board/roseapplepi/genimage.cfg | 43 + .../linux/0001-unbreak-xhci-trace.patch | 31 + bsp/buildroot/board/roseapplepi/post-image.sh | 18 + bsp/buildroot/board/roseapplepi/uEnv.txt | 3 + .../stmicroelectronics/stm32-post-build.sh | 8 + .../stm32f429-disco/flash.sh | 20 + ...sco-don-t-force-init-in-chosen-boota.patch | 32 + .../stm32f429-disco/readme.txt | 30 + .../stm32f469-disco/flash.sh | 20 + ...stm32-Identify-a-new-board-STM32F469.patch | 25 + ...-a-DTS-file-for-the-STM32F469-Discov.patch | 101 + ...new-config-fragment-to-change-RAM-st.patch | 28 + .../patches/openocd/0001-add-config.patch | 37 + .../patches/openocd/0002-flash-nor.patch | 37 + .../stm32f469-disco/readme.txt | 19 + .../board/technexion/imx6ulpico/genimage.cfg | 41 + .../technexion/imx6ulpico/linux.fragment | 2 + .../patches/linux/0001-picowifi.patch | 66 + .../board/technexion/imx6ulpico/post-image.sh | 14 + .../board/technexion/imx6ulpico/readme.txt | 70 + .../lib/firmware/brcm/brcmfmac4339-sdio.txt | 102 + .../board/technologic/ts4800/genimage.cfg | 37 + .../board/technologic/ts4800/linux.fragment | 3 + .../board/technologic/ts4800/post-image.sh | 19 + .../board/technologic/ts4800/readme.txt | 50 + .../fs-overlay/boot/syslinux/syslinux.cfg | 0 .../ts5x00/linux-3.17.config | 0 .../{ts => technologic}/ts5x00/readme.txt | 0 .../board/toradex/apalis-imx6/genimage.cfg | 15 + .../board/toradex/apalis-imx6/post-image.sh | 20 + .../board/toradex/apalis-imx6/readme.txt | 53 + .../board/toradex/apalis-imx6/uEnv.txt | 6 + .../board/via/imx6_vab820/post-image.sh | 3 +- bsp/buildroot/board/wandboard/post-image.sh | 3 +- bsp/buildroot/board/xilinx/zc706/readme.txt | 56 - bsp/buildroot/board/zynq/readme.txt | 52 + bsp/buildroot/boot/Config.in | 3 + ...01-Use-ld-instead-of-gcc-for-linking.patch | 61 + bsp/buildroot/boot/afboot-stm32/Config.in | 7 + .../boot/afboot-stm32/afboot-stm32.hash | 2 + .../boot/afboot-stm32/afboot-stm32.mk | 18 + .../boot/at91bootstrap/at91bootstrap.hash | 2 + .../at91dataflashboot/at91dataflashboot.hash | 2 + bsp/buildroot/boot/barebox/Config.in | 67 +- .../boot/barebox/barebox-aux/Config.in | 76 + .../boot/barebox/barebox-aux/barebox-aux.hash | 1 + .../boot/barebox/barebox-aux/barebox-aux.mk | 8 + bsp/buildroot/boot/barebox/barebox.hash | 6 +- bsp/buildroot/boot/barebox/barebox.mk | 177 +- bsp/buildroot/boot/barebox/barebox/Config.in | 82 + .../boot/barebox/barebox/barebox.hash | 1 + bsp/buildroot/boot/barebox/barebox/barebox.mk | 13 + bsp/buildroot/boot/grub/menu.lst | 2 +- ...move-gets.patch => 0001-remove-gets.patch} | 0 ...t-gettext.c-main_context-secondary_c.patch | 39 + bsp/buildroot/boot/grub2/Config.in | 4 +- bsp/buildroot/boot/grub2/grub.cfg | 2 +- bsp/buildroot/boot/grub2/grub2.mk | 7 +- .../boot/mxs-bootlets/mxs-bootlets.hash | 2 + bsp/buildroot/boot/s500-bootloader/Config.in | 17 + .../boot/s500-bootloader/s500-bootloader.hash | 2 + .../boot/s500-bootloader/s500-bootloader.mk | 34 + ...1-Fix-gcc-5-ALIGN-causing-Boot-error.patch | 76 + bsp/buildroot/boot/syslinux/Config.in | 17 +- bsp/buildroot/boot/syslinux/syslinux.mk | 4 +- bsp/buildroot/boot/ts4800-mbrboot/Config.in | 7 + .../boot/ts4800-mbrboot/ts4800-mbrboot.hash | 2 + .../boot/ts4800-mbrboot/ts4800-mbrboot.mk | 21 + bsp/buildroot/boot/uboot/Config.in | 53 +- bsp/buildroot/boot/uboot/uboot.hash | 2 +- bsp/buildroot/boot/uboot/uboot.mk | 58 +- .../acmesystems_aria_g25_128mb_defconfig | 3 +- .../acmesystems_aria_g25_256mb_defconfig | 3 +- .../acmesystems_arietta_g25_128mb_defconfig | 3 +- .../acmesystems_arietta_g25_256mb_defconfig | 3 +- bsp/buildroot/configs/altera_socdk_defconfig | 5 +- bsp/buildroot/configs/altera_sockit_defconfig | 5 +- .../configs/arcturus_ucp1020_defconfig | 31 + .../configs/arm_foundationv8_defconfig | 10 +- bsp/buildroot/configs/arm_juno_defconfig | 10 +- .../configs/armadeus_apf27_defconfig | 2 +- .../configs/armadeus_apf28_defconfig | 2 +- .../configs/armadeus_apf51_defconfig | 1 + .../configs/armadeus_apf9328_defconfig | 2 +- .../configs/at91sam9260eknf_defconfig | 4 - .../configs/at91sam9g45m10ek_defconfig | 3 +- bsp/buildroot/configs/at91sam9rlek_defconfig | 3 +- bsp/buildroot/configs/at91sam9x5ek_defconfig | 3 +- .../atmel_sama5d2_xplained_mmc_defconfig | 30 + .../atmel_sama5d2_xplained_mmc_dev_defconfig | 105 + .../configs/atmel_sama5d3_xplained_defconfig | 19 +- .../atmel_sama5d3_xplained_dev_defconfig | 101 + .../atmel_sama5d3_xplained_mmc_defconfig | 39 +- .../atmel_sama5d3_xplained_mmc_dev_defconfig | 104 + .../configs/atmel_sama5d3xek_defconfig | 3 +- .../configs/atmel_sama5d4_xplained_defconfig | 19 +- .../atmel_sama5d4_xplained_dev_defconfig | 105 + .../atmel_sama5d4_xplained_mmc_defconfig | 30 + .../atmel_sama5d4_xplained_mmc_dev_defconfig | 105 + .../configs/atmel_sama5d4ek_defconfig | 3 +- bsp/buildroot/configs/beaglebone_defconfig | 12 +- .../configs/calao_qil_a9260_defconfig | 3 +- .../configs/calao_tny_a9g20_lpw_defconfig | 4 +- .../configs/calao_usb_a9260_defconfig | 1 - .../configs/calao_usb_a9263_defconfig | 3 +- .../configs/calao_usb_a9g20_lpw_defconfig | 3 +- .../configs/chromebook_snow_defconfig | 23 + bsp/buildroot/configs/cubieboard2_defconfig | 11 +- .../configs/firefly_rk3288_defconfig | 32 + .../configs/firefly_rk3288_demo_defconfig | 40 + .../configs/freescale_imx28evk_defconfig | 1 - .../configs/freescale_imx31_3stack_defconfig | 1 - .../freescale_imx6dlsabreauto_defconfig | 9 +- .../configs/freescale_imx6dlsabresd_defconfig | 9 +- .../freescale_imx6qsabreauto_defconfig | 9 +- .../configs/freescale_imx6qsabresd_defconfig | 9 +- .../freescale_imx6sololiteevk_defconfig | 9 +- .../configs/freescale_imx6sxsabresd_defconfig | 9 +- .../configs/freescale_imx6ulevk_defconfig | 10 +- .../configs/freescale_imx7dsabresd_defconfig | 36 + .../configs/freescale_mpc8315erdb_defconfig | 10 +- .../configs/freescale_p1010rdb_pa_defconfig | 2 + bsp/buildroot/configs/galileo_defconfig | 1 + .../configs/gdb_bfin_bf512_defconfig | 34 + bsp/buildroot/configs/imx6ulpico_defconfig | 50 + bsp/buildroot/configs/kb9202_defconfig | 3 +- .../configs/linksprite_pcduino_defconfig | 62 + bsp/buildroot/configs/microzed_defconfig | 26 - bsp/buildroot/configs/minnowboard_defconfig | 10 + .../minnowboard_max-graphical_defconfig | 74 + .../configs/minnowboard_max_defconfig | 22 +- bsp/buildroot/configs/mx25pdk_defconfig | 34 + bsp/buildroot/configs/mx51evk_defconfig | 34 + bsp/buildroot/configs/mx53loco_defconfig | 25 +- bsp/buildroot/configs/nitrogen6sx_defconfig | 19 +- bsp/buildroot/configs/nitrogen6x_defconfig | 19 +- bsp/buildroot/configs/nitrogen7_defconfig | 37 + bsp/buildroot/configs/odroidc2_defconfig | 36 + .../olimex_a20_olinuxino_lime2_defconfig | 3 +- .../olimex_a20_olinuxino_lime_defconfig | 5 +- .../olimex_a20_olinuxino_lime_mali_defconfig | 3 +- .../olimex_a20_olinuxino_micro_defconfig | 17 +- .../configs/olimex_imx233_olinuxino_defconfig | 44 +- bsp/buildroot/configs/openblocks_a6_defconfig | 1 - bsp/buildroot/configs/orangepipc_defconfig | 12 +- bsp/buildroot/configs/pandaboard_defconfig | 47 +- .../configs/pc_x86_64_bios_defconfig | 62 + bsp/buildroot/configs/pc_x86_64_efi_defconfig | 65 + .../configs/qemu_aarch64_virt_defconfig | 8 +- .../configs/qemu_arm_versatile_defconfig | 9 +- .../configs/qemu_arm_vexpress_defconfig | 7 +- .../configs/qemu_m68k_mcf5208_defconfig | 30 + .../configs/qemu_m68k_q800_defconfig | 25 + .../configs/qemu_microblazebe_mmu_defconfig | 8 +- .../configs/qemu_microblazeel_mmu_defconfig | 8 +- ...efconfig => qemu_mips32r2_malta_defconfig} | 8 +- ...config => qemu_mips32r2el_malta_defconfig} | 8 +- .../configs/qemu_mips32r6_malta_defconfig | 29 + .../configs/qemu_mips32r6el_malta_defconfig | 29 + .../configs/qemu_mips64_malta_defconfig | 8 +- .../configs/qemu_mips64el_malta_defconfig | 8 +- .../configs/qemu_mips64r6_malta_defconfig | 30 + .../configs/qemu_mips64r6el_malta_defconfig | 30 + .../configs/qemu_ppc64_pseries_defconfig | 6 +- .../configs/qemu_ppc_g3beige_defconfig | 8 +- .../configs/qemu_ppc_mpc8544ds_defconfig | 8 +- .../configs/qemu_ppc_virtex_ml507_defconfig | 8 +- bsp/buildroot/configs/qemu_sh4_r2d_defconfig | 8 +- .../configs/qemu_sh4eb_r2d_defconfig | 8 +- .../configs/qemu_sparc64_sun4u_defconfig | 8 +- .../configs/qemu_sparc_ss10_defconfig | 9 +- bsp/buildroot/configs/qemu_x86_64_defconfig | 8 +- bsp/buildroot/configs/qemu_x86_defconfig | 8 +- .../configs/qemu_xtensa_lx60_defconfig | 10 +- .../configs/qemu_xtensa_lx60_nommu_defconfig | 34 + bsp/buildroot/configs/qmx6_defconfig | 1 + bsp/buildroot/configs/raspberrypi0_defconfig | 34 + bsp/buildroot/configs/raspberrypi2_defconfig | 10 +- bsp/buildroot/configs/raspberrypi3_defconfig | 36 + bsp/buildroot/configs/raspberrypi_defconfig | 10 +- bsp/buildroot/configs/riotboard_defconfig | 1 + bsp/buildroot/configs/roseapplepi_defconfig | 40 + .../configs/s6lx9_microboard_defconfig | 2 + bsp/buildroot/configs/sheevaplug_defconfig | 9 +- bsp/buildroot/configs/snps_axs101_defconfig | 9 +- bsp/buildroot/configs/snps_axs103_defconfig | 9 +- .../configs/snps_hs38_smp_vdk_defconfig | 6 +- bsp/buildroot/configs/snps_hs38_vdk_defconfig | 19 - .../configs/stm32f429_disco_defconfig | 18 + .../configs/stm32f469_disco_defconfig | 19 + .../configs/telit_evk_pro3_defconfig | 3 - .../configs/toradex_apalis_imx6_defconfig | 24 + bsp/buildroot/configs/ts4800_defconfig | 22 + bsp/buildroot/configs/ts5x00_defconfig | 4 +- bsp/buildroot/configs/udoo_quad_defconfig | 1 + .../configs/via_imx6_vab820_defconfig | 7 +- bsp/buildroot/configs/wandboard_defconfig | 11 +- bsp/buildroot/configs/warpboard_defconfig | 30 +- bsp/buildroot/configs/zedboard_defconfig | 26 - bsp/buildroot/configs/zynq_microzed_defconfig | 27 + ...x_zc706_defconfig => zynq_zc706_defconfig} | 20 +- bsp/buildroot/configs/zynq_zed_defconfig | 27 + .../docs/manual/adding-packages-directory.txt | 6 +- .../docs/manual/adding-packages-generic.txt | 25 +- .../docs/manual/adding-packages-hooks.txt | 7 + .../docs/manual/adding-packages-python.txt | 89 + bsp/buildroot/docs/manual/configure.txt | 4 +- .../docs/manual/customize-rootfs.txt | 33 +- bsp/buildroot/docs/manual/known-issues.txt | 12 +- bsp/buildroot/docs/manual/legal-notice.txt | 11 +- bsp/buildroot/docs/manual/makedev-syntax.txt | 32 +- bsp/buildroot/docs/manual/manual.html | 178 +- bsp/buildroot/docs/manual/manual.pdf | Bin 580623 -> 601906 bytes bsp/buildroot/docs/manual/manual.text | 826 ++++++- bsp/buildroot/docs/manual/patch-policy.txt | 8 +- .../manual/using-buildroot-development.txt | 2 +- bsp/buildroot/docs/website/css/main.css | 2 +- bsp/buildroot/docs/website/download.html | 36 +- .../docs/website/images/owi-smile-logo.png | Bin 0 -> 25258 bytes bsp/buildroot/docs/website/index.html | 2 +- bsp/buildroot/docs/website/news.html | 178 +- bsp/buildroot/docs/website/sponsors.html | 39 +- bsp/buildroot/docs/website/support.html | 5 - bsp/buildroot/fs/cloop/cloop.mk | 5 +- bsp/buildroot/fs/common.mk | 14 +- bsp/buildroot/fs/jffs2/jffs2.mk | 4 +- bsp/buildroot/fs/squashfs/squashfs.mk | 3 +- bsp/buildroot/fs/tar/tar.mk | 2 +- bsp/buildroot/fs/ubifs/ubi.mk | 6 +- bsp/buildroot/linux/Config.in | 32 +- bsp/buildroot/linux/Config.tools.in | 28 + bsp/buildroot/linux/linux-tool-cpupower.mk | 4 +- bsp/buildroot/linux/linux-tool-perf.mk | 41 +- bsp/buildroot/linux/linux-tool-selftests.mk | 46 + bsp/buildroot/linux/linux.mk | 34 +- .../4th/0001-avoid-regen-during-install.patch | 17 + bsp/buildroot/package/4th/4th.hash | 2 + bsp/buildroot/package/4th/4th.mk | 70 + bsp/buildroot/package/4th/Config.in | 8 + bsp/buildroot/package/Config.in | 250 ++- bsp/buildroot/package/Config.in.host | 9 + bsp/buildroot/package/Makefile.in | 24 +- bsp/buildroot/package/a10disp/a10disp.hash | 2 + bsp/buildroot/package/acl/acl.mk | 14 +- .../acpica/0001-build-do-not-use-Werror.patch | 62 + bsp/buildroot/package/acpica/Config.in | 13 + bsp/buildroot/package/acpica/acpica.hash | 2 + bsp/buildroot/package/acpica/acpica.mk | 26 + .../0003-support-for-non-glibc-libcs.patch | 184 -- bsp/buildroot/package/acpid/acpid.hash | 5 +- bsp/buildroot/package/acpid/acpid.mk | 2 +- bsp/buildroot/package/acpitool/Config.in | 11 + bsp/buildroot/package/acpitool/acpitool.hash | 2 + bsp/buildroot/package/acpitool/acpitool.mk | 13 + .../adwaita-icon-theme.hash | 4 +- .../adwaita-icon-theme/adwaita-icon-theme.mk | 5 +- bsp/buildroot/package/aer-inject/Config.in | 12 + .../package/aer-inject/aer-inject.mk | 23 + bsp/buildroot/package/aiccu/Config.in | 3 - .../aircrack-ng/0004-fix-musl-build.patch | 53 - bsp/buildroot/package/aircrack-ng/Config.in | 3 + bsp/buildroot/package/alljoyn-base/Config.in | 51 + .../package/alljoyn-base/alljoyn-base.hash | 2 + .../package/alljoyn-base/alljoyn-base.mk | 92 + .../package/alljoyn-tcl-base/Config.in | 18 + .../alljoyn-tcl-base/alljoyn-tcl-base.hash | 2 + .../alljoyn-tcl-base/alljoyn-tcl-base.mk | 45 + bsp/buildroot/package/alljoyn-tcl/Config.in | 20 + .../package/alljoyn-tcl/alljoyn-tcl.hash | 2 + .../package/alljoyn-tcl/alljoyn-tcl.mk | 43 + ...1-UARTStreamLinux-fix-build-on-sparc.patch | 56 + bsp/buildroot/package/alljoyn/Config.in | 25 + bsp/buildroot/package/alljoyn/alljoyn.hash | 2 + bsp/buildroot/package/alljoyn/alljoyn.mk | 69 + .../alsa-lib/0001-add-missing-include.patch | 29 - ...musl-pcm-h.patch => 0001-musl-pcm-h.patch} | 0 bsp/buildroot/package/alsa-lib/alsa-lib.hash | 2 +- bsp/buildroot/package/alsa-lib/alsa-lib.mk | 10 +- .../0001-bat-Avoid-local-signal.h-file.patch | 143 -- ...ncompatible-function-pointers-to-pth.patch | 61 - .../package/alsa-utils/alsa-utils.hash | 2 +- .../package/alsa-utils/alsa-utils.mk | 4 +- .../am335x-pru-package.hash | 2 + .../am335x-pru-package/am335x-pru-package.mk | 2 +- bsp/buildroot/package/am33x-cm3/Config.in | 1 + ...-Fix-makefiles-for-out-of-tree-build.patch | 162 ++ ...0002-Fix-adbd-for-non-Ubuntu-systems.patch | 264 +++ .../0003-Fix-build-issue-with-uclibc.patch | 36 + .../0004-Fix-build-issue-with-musl.patch | 54 + .../0005-fix-static-link-zlib.patch | 36 + .../0006-fix-big-endian-build.patch | 61 + .../0007-include-cdefs-h-when-needed.patch | 41 + bsp/buildroot/package/android-tools/Config.in | 82 + .../package/android-tools/Config.in.host | 26 + .../package/android-tools/android-tools.hash | 3 + .../package/android-tools/android-tools.mk | 85 + bsp/buildroot/package/angularjs/Config.in | 75 +- bsp/buildroot/package/angularjs/angularjs.mk | 20 +- bsp/buildroot/package/apache/apache.hash | 4 +- bsp/buildroot/package/apache/apache.mk | 2 +- bsp/buildroot/package/apitrace/Config.in | 2 +- bsp/buildroot/package/apitrace/apitrace.hash | 2 + bsp/buildroot/package/argparse/Config.in | 10 + bsp/buildroot/package/argparse/argparse.hash | 2 + bsp/buildroot/package/argparse/argparse.mk | 13 + bsp/buildroot/package/armadillo/Config.in | 4 +- bsp/buildroot/package/assimp/Config.in | 5 + bsp/buildroot/package/assimp/assimp.hash | 2 + bsp/buildroot/package/assimp/assimp.mk | 7 +- bsp/buildroot/package/atk/atk.hash | 4 +- bsp/buildroot/package/atk/atk.mk | 2 +- bsp/buildroot/package/attr/attr.mk | 21 +- .../0002-cast-to-unsigned-gcc6.patch | 28 + bsp/buildroot/package/audit/Config.in | 2 +- bsp/buildroot/package/audit/audit.hash | 2 +- bsp/buildroot/package/audit/audit.mk | 12 +- ...ild-check-for-clock_gettime-in-librt.patch | 62 + ...che-variable-for-Linux-proc-filesyst.patch | 47 + bsp/buildroot/package/autofs/Config.in | 6 +- bsp/buildroot/package/autofs/autofs.hash | 2 +- bsp/buildroot/package/autofs/autofs.mk | 12 +- .../avahi/0004-no-gtk-deprecations.patch | 30 - bsp/buildroot/package/avahi/avahi.hash | 2 +- bsp/buildroot/package/avahi/avahi.mk | 6 +- bsp/buildroot/package/avrdude/Config.in | 2 +- bsp/buildroot/package/avrdude/avrdude.hash | 2 + bsp/buildroot/package/avrdude/avrdude.mk | 2 +- bsp/buildroot/package/axel/axel.mk | 5 +- .../package/axfsutils/axfsutils.hash | 2 +- bsp/buildroot/package/axfsutils/axfsutils.mk | 4 +- ...nk.c-don-t-include-linux-if_bridge.h.patch | 78 + bsp/buildroot/package/babeld/Config.in | 8 + bsp/buildroot/package/babeld/S50babeld | 40 + bsp/buildroot/package/babeld/babeld.hash | 2 + bsp/buildroot/package/babeld/babeld.mk | 35 + bsp/buildroot/package/babeld/babeld.service | 10 + .../package/bandwidthd/bandwidthd.hash | 2 + .../package/bash/0043-patchlevel-43.patch | 63 + .../package/bash/0044-patchlevel-44.patch | 52 + .../package/bash/0045-patchlevel-45.patch | 56 + .../package/bash/0046-patchlevel-46.patch | 59 + bsp/buildroot/package/bash/Config.in | 1 + bsp/buildroot/package/bash/bash.mk | 4 - bsp/buildroot/package/batctl/batctl.hash | 6 +- bsp/buildroot/package/batctl/batctl.mk | 2 +- bsp/buildroot/package/batman-adv/Config.in | 35 + .../package/batman-adv/batman-adv.hash | 2 + .../package/batman-adv/batman-adv.mk | 35 + ...-the-non-standard-sys-cdefs.h-header.patch | 48 - ...-requires-inclusion-of-sys-select.h.patch} | 0 ...0004-configure-match-uclinux-pattern.patch | 32 + bsp/buildroot/package/bdwgc/bdwgc.mk | 1 + bsp/buildroot/package/beecrypt/beecrypt.mk | 10 + ...Fix-LibreSSL-compatibility.-RT-40977.patch | 129 -- bsp/buildroot/package/bind/bind.hash | 4 +- bsp/buildroot/package/bind/bind.mk | 2 +- .../package/binutils/2.23.2/120-sh-conf.patch | 29 - .../2.23.2/300-001_ld_makefile_patch.patch | 24 - .../300-012_check_ldrunpath_length.patch | 21 - .../2.23.2/900-xtensa-trampolines.patch | 846 ------- .../901-xtensa-gas-first-frag-alignment.patch | 51 - ...xtensa-gas-ld-diff-relocation-signed.patch | 133 -- ...-segfault-when-linking-linux-modules.patch | 47 - ...et-out-of-range-xtensa-ld-relaxation.patch | 79 - ...search-code-for-conditional-branches.patch | 90 - ...ized-symbol-refcounting-with-gc-sect.patch | 57 - ...-segfault-with-text-section-literals.patch | 56 - ...sa-fix-signedness-of-gas-relocations.patch | 47 - .../binutils/2.26.1/0120-sh-conf.patch | 46 + .../binutils/2.26.1/0300-ld-makefile.patch | 41 + .../2.26.1/0301-check-ldrunpath-length.patch | 36 + .../0500-add-sysroot-fix-from-bug-3049.patch} | 19 +- .../0600-poison-system-directories.patch} | 215 +- ...orrect-nios2-_gp-address-computation.patch | 108 + ...duce-number-of-messages-about-FDE-en.patch | 67 + ...sa-fix-signedness-of-gas-relocations.patch | 101 + ...nsa-fix-.init-.fini-literals-moving.patch} | 85 +- .../2.26.1/0904-bfin-fdpic-upstream.patch | 30 + .../2.26.1/0905-bfin-rofixup-bug.patch | 21 + bsp/buildroot/package/binutils/Config.in | 4 +- bsp/buildroot/package/binutils/Config.in.host | 24 +- .../arc-2015.12/0001-PR-other-56780.patch | 236 -- .../arc-2016.09-eng010/0300-ld-makefile.patch | 41 + .../0301-check-ldrunpath-length.patch | 36 + .../0500-add-sysroot-fix-from-bug-3049.patch | 52 + .../0600-poison-system-directories.patch} | 217 +- bsp/buildroot/package/binutils/binutils.hash | 8 +- bsp/buildroot/package/binutils/binutils.mk | 31 +- bsp/buildroot/package/blktrace/Config.in | 3 +- ...01-tools-avinfo-Fix-big-endian-build.patch | 39 - ...-Remove-include-linux-if_bridge.h-to.patch | 45 + .../package/bluez5_utils/bluez5_utils.hash | 2 +- .../package/bluez5_utils/bluez5_utils.mk | 13 +- .../package/bluez_utils/bluez_utils.mk | 4 + bsp/buildroot/package/bmon/Config.in | 2 +- bsp/buildroot/package/bmon/bmon.hash | 2 +- bsp/buildroot/package/bmon/bmon.mk | 2 +- bsp/buildroot/package/boa/boa.conf | 2 +- bsp/buildroot/package/boost/0003-fenv.patch | 37 + .../boost/0003-fix-libquadmath-issue.patch | 91 - ...4-fix-declaration-error-with-gcc-4-4.patch | 50 - ...etchar-with-uclibc-and-gcc-bug-58952.patch | 45 + .../boost/0005-fix-undeclared-isnan.patch | 32 - .../package/boost/0006-uclibc-fenv.patch | 26 - bsp/buildroot/package/boost/Config.in | 20 +- bsp/buildroot/package/boost/boost.hash | 6 +- bsp/buildroot/package/boost/boost.mk | 9 +- bsp/buildroot/package/bootutils/Config.in | 1 + bsp/buildroot/package/botan/botan.hash | 2 +- bsp/buildroot/package/botan/botan.mk | 4 +- ...all-static-library-and-headers-in-in.patch | 45 + .../package/btrfs-progs/btrfs-progs.mk | 2 + bsp/buildroot/package/bullet/bullet.hash | 2 + ...rip-non-l-arguments-returned-by-pkg.patch} | 0 .../package/busybox/0002-unzip.patch | 111 - .../0003-g-unzip-fix-recent-breakage.patch | 134 -- bsp/buildroot/package/busybox/0003-gzip.patch | 18 + bsp/buildroot/package/busybox/0004-ip.patch | 18 + .../busybox/0004-truncate-open-mode.patch | 74 - bsp/buildroot/package/busybox/0005-ntpd.patch | 20 + ...ve-free-prev_hist-out-of-signal-path.patch | 48 + bsp/buildroot/package/busybox/Config.in | 9 +- bsp/buildroot/package/busybox/S01logging | 8 +- bsp/buildroot/package/busybox/S10mdev | 2 + .../package/busybox/busybox-minimal.config | 1070 +++++++++ bsp/buildroot/package/busybox/busybox.config | 129 +- bsp/buildroot/package/busybox/busybox.hash | 6 +- bsp/buildroot/package/busybox/busybox.mk | 18 +- bsp/buildroot/package/busybox/mdev.conf | 4 + bsp/buildroot/package/busybox/udhcpc.script | 11 +- bsp/buildroot/package/c-ares/c-ares.hash | 2 +- bsp/buildroot/package/c-ares/c-ares.mk | 2 +- .../c-icap-modules/c-icap-modules.hash | 6 +- .../package/c-icap-modules/c-icap-modules.mk | 2 +- bsp/buildroot/package/c-icap/c-icap.hash | 2 +- bsp/buildroot/package/c-icap/c-icap.mk | 12 +- .../package/c-periphery/c-periphery.hash | 2 + .../ca-certificates/ca-certificates.hash | 4 +- .../ca-certificates/ca-certificates.mk | 10 +- bsp/buildroot/package/cairo/cairo.hash | 6 +- bsp/buildroot/package/cairo/cairo.mk | 19 +- .../package/can-utils/can-utils.hash | 2 + bsp/buildroot/package/can-utils/can-utils.mk | 2 +- bsp/buildroot/package/canfestival/Config.in | 2 +- bsp/buildroot/package/cannelloni/Config.in | 17 + .../package/cannelloni/cannelloni.hash | 2 + .../package/cannelloni/cannelloni.mk | 19 + .../package/cantarell/cantarell.hash | 4 +- bsp/buildroot/package/cantarell/cantarell.mk | 2 +- .../package/cbootimage/Config.in.host | 9 + .../package/cbootimage/cbootimage.hash | 2 + .../package/cbootimage/cbootimage.mk | 13 + bsp/buildroot/package/cc-tool/Config.in | 2 - bsp/buildroot/package/ccache/ccache.hash | 4 +- bsp/buildroot/package/ccache/ccache.mk | 2 +- bsp/buildroot/package/cdrkit/Config.in | 5 - bsp/buildroot/package/cdrkit/cdrkit.mk | 1 + .../package/cgroupfs-mount/Config.in | 19 + .../package/cgroupfs-mount/S30cgroupfs | 34 + .../cgroupfs-mount/cgroupfs-mount.hash | 2 + .../package/cgroupfs-mount/cgroupfs-mount.mk | 23 + .../package/checkpolicy/checkpolicy.hash | 2 +- .../package/checkpolicy/checkpolicy.mk | 4 +- ...onfigure-Switch-to-pkg-config-macros.patch | 217 ++ .../package/chocolate-doom/chocolate-doom.mk | 8 +- bsp/buildroot/package/chrony/chrony.hash | 6 +- bsp/buildroot/package/chrony/chrony.mk | 2 +- bsp/buildroot/package/chrony/chrony.service | 2 +- ....c-include-paths.h-for-_PATH_MOUNTED.patch | 31 - .../package/cifs-utils/cifs-utils.hash | 2 +- .../package/cifs-utils/cifs-utils.mk | 4 +- bsp/buildroot/package/circus/Config.in | 21 + bsp/buildroot/package/circus/circus.hash | 3 + bsp/buildroot/package/circus/circus.mk | 14 + bsp/buildroot/package/civetweb/civetweb.hash | 2 + bsp/buildroot/package/clamav/clamav.hash | 6 +- bsp/buildroot/package/clamav/clamav.mk | 4 +- bsp/buildroot/package/clapack/Config.in | 4 +- bsp/buildroot/package/cloog/cloog.mk | 2 +- bsp/buildroot/package/cmake/cmake.hash | 4 +- bsp/buildroot/package/cmake/cmake.mk | 17 +- bsp/buildroot/package/collectd/Config.in | 7 +- bsp/buildroot/package/collectd/collectd.hash | 2 +- bsp/buildroot/package/collectd/collectd.mk | 12 +- .../package/collectd/collectd.service | 17 + bsp/buildroot/package/connman-gtk/Config.in | 22 + .../package/connman-gtk/connman-gtk.hash | 2 + .../package/connman-gtk/connman-gtk.mk | 15 + .../0001-configure-check-for-execinfo.h.patch | 65 - .../connman/0002-nat-build-failure.patch | 30 + bsp/buildroot/package/connman/Config.in | 11 +- bsp/buildroot/package/connman/connman.hash | 2 +- bsp/buildroot/package/connman/connman.mk | 2 +- bsp/buildroot/package/copas/copas.hash | 2 +- bsp/buildroot/package/copas/copas.mk | 4 +- bsp/buildroot/package/coreutils/Config.in | 2 + bsp/buildroot/package/cosmo/cosmo.hash | 2 + .../package/cpio/0001-fix-CVE-2016-2037.patch | 51 + bsp/buildroot/package/cppcms/Config.in | 1 + bsp/buildroot/package/cppzmq/cppzmq.hash | 2 + bsp/buildroot/package/cppzmq/cppzmq.mk | 2 +- bsp/buildroot/package/cpuload/cpuload.hash | 2 + bsp/buildroot/package/cramfs/cramfs.mk | 1 + ...allow-to-override-python-interpreter.patch | 34 - ...support-python-3-in-utils-key2pub.py.patch | 271 +++ .../package/crda/0003-drop-werror.patch | 37 + bsp/buildroot/package/crda/Config.in | 4 +- bsp/buildroot/package/crda/crda.mk | 9 +- bsp/buildroot/package/crudini/Config.in | 9 + bsp/buildroot/package/crudini/crudini.hash | 3 + bsp/buildroot/package/crudini/crudini.mk | 14 + bsp/buildroot/package/cryptopp/cryptopp.hash | 3 + bsp/buildroot/package/cryptopp/cryptopp.mk | 32 + bsp/buildroot/package/cryptsetup/Config.in | 3 - .../package/cryptsetup/cryptsetup.hash | 2 +- .../package/cryptsetup/cryptsetup.mk | 2 +- ...move-man-from-BUILDDIRS-in-configure.patch | 25 +- ...0004-Remove-PIE-flags-from-the-build.patch | 30 + .../0005-Fix-static-linking-with-GnuTLS.patch | 39 + bsp/buildroot/package/cups/cups.hash | 2 +- bsp/buildroot/package/cups/cups.mk | 13 +- bsp/buildroot/package/czmq/czmq.hash | 2 + bsp/buildroot/package/czmq/czmq.mk | 2 +- .../dante/0001-fix-sparc-compile.patch | 24 + ...002-compiler.m4-do-not-remove-g-flag.patch | 42 + bsp/buildroot/package/dante/Config.in | 11 + bsp/buildroot/package/dante/S50dante | 40 + bsp/buildroot/package/dante/dante.hash | 2 + bsp/buildroot/package/dante/dante.mk | 34 + bsp/buildroot/package/dante/dante.service | 15 + bsp/buildroot/package/dash/Config.in | 1 + bsp/buildroot/package/dawgdic/dawgdic.hash | 2 + bsp/buildroot/package/dbus-cpp/Config.in | 2 +- .../package/dbus-python/dbus-python.hash | 2 +- .../package/dbus-python/dbus-python.mk | 2 +- bsp/buildroot/package/dbus/Config.in | 1 - bsp/buildroot/package/dbus/dbus.hash | 2 +- bsp/buildroot/package/dbus/dbus.mk | 7 +- bsp/buildroot/package/dcron/Config.in | 1 + bsp/buildroot/package/dcron/dcron.mk | 4 +- bsp/buildroot/package/debianutils/Config.in | 1 + .../package/debianutils/debianutils.hash | 4 +- .../package/debianutils/debianutils.mk | 4 +- bsp/buildroot/package/devmem2/Config.in | 1 + bsp/buildroot/package/dfu-util/dfu-util.hash | 7 +- bsp/buildroot/package/dfu-util/dfu-util.mk | 2 +- .../dhcp/0001-dhcp-cross-compile.patch | 34 + .../dhcp/0002-bind-cross-compile.patch | 24 + .../package/dhcp/0003-bind-host-cc.patch | 40 + bsp/buildroot/package/dhcp/Config.in | 1 + bsp/buildroot/package/dhcp/dhcp.hash | 4 +- bsp/buildroot/package/dhcp/dhcp.mk | 28 +- bsp/buildroot/package/dhcpcd/dhcpcd.hash | 2 +- bsp/buildroot/package/dhcpcd/dhcpcd.mk | 2 +- bsp/buildroot/package/diffutils/Config.in | 2 + bsp/buildroot/package/directfb/Config.in | 6 +- bsp/buildroot/package/dmalloc/dmalloc.mk | 8 +- .../dmidecode/0001-build-system-fixes.patch | 6 +- .../package/dmidecode/dmidecode.hash | 4 +- bsp/buildroot/package/dmidecode/dmidecode.mk | 3 +- bsp/buildroot/package/dmraid/Config.in | 4 - bsp/buildroot/package/dnsmasq/dnsmasq.hash | 2 +- bsp/buildroot/package/dnsmasq/dnsmasq.mk | 4 +- bsp/buildroot/package/doc-asciidoc.mk | 3 +- .../package/docker-containerd/Config.in | 23 + .../docker-containerd/docker-containerd.hash | 2 + .../docker-containerd/docker-containerd.mk | 47 + ...es-with-tailing-rotated-jsonlog-file.patch | 297 +++ bsp/buildroot/package/docker-engine/Config.in | 64 + .../package/docker-engine/docker-engine.hash | 2 + .../package/docker-engine/docker-engine.mk | 107 + ...heck-for-detecting-header-execinfo.h.patch | 58 + bsp/buildroot/package/domoticz/Config.in | 31 + bsp/buildroot/package/domoticz/S99domoticz | 38 + bsp/buildroot/package/domoticz/domoticz.hash | 2 + bsp/buildroot/package/domoticz/domoticz.mk | 77 + .../package/domoticz/domoticz.service | 10 + bsp/buildroot/package/dos2unix/Config.in | 1 + bsp/buildroot/package/dos2unix/dos2unix.hash | 2 +- bsp/buildroot/package/dos2unix/dos2unix.mk | 3 +- ...-32-heads-sectors-for-targets-smalle.patch | 42 + ...0001-mkfs.fat-fix-incorrect-int-type.patch | 45 - .../package/dosfstools/dosfstools.hash | 2 +- .../package/dosfstools/dosfstools.mk | 67 +- .../dovecot-pigeonhole.hash | 2 +- .../dovecot-pigeonhole/dovecot-pigeonhole.mk | 2 +- bsp/buildroot/package/dovecot/dovecot.hash | 2 +- bsp/buildroot/package/dovecot/dovecot.mk | 2 +- bsp/buildroot/package/doxygen/doxygen.mk | 2 +- bsp/buildroot/package/dropbear/dropbear.hash | 2 +- bsp/buildroot/package/dropbear/dropbear.mk | 2 +- bsp/buildroot/package/dropwatch/Config.in | 4 +- .../package/dsp-tools/dsp-tools.hash | 2 + bsp/buildroot/package/dsp-tools/dsp-tools.mk | 4 +- .../package/dt/0001-adjust-os-symlink.patch | 19 + .../dt/0002-dt-default-source-define.patch | 20 + bsp/buildroot/package/dt/Config.in | 21 + bsp/buildroot/package/dt/dt.hash | 5 + bsp/buildroot/package/dt/dt.mk | 39 + bsp/buildroot/package/dtach/dtach.hash | 2 +- bsp/buildroot/package/dtach/dtach.mk | 4 +- bsp/buildroot/package/dtc/dtc.mk | 1 + .../dtv-scan-tables/dtv-scan-tables.mk | 2 +- .../package/duma/0003-fix-C++14.patch | 65 + bsp/buildroot/package/dvblast/Config.in | 6 +- bsp/buildroot/package/dvdauthor/Config.in | 5 - bsp/buildroot/package/dvdauthor/dvdauthor.mk | 4 + bsp/buildroot/package/dvdrw-tools/Config.in | 4 - .../0002-fuse2fs-might-need-librt.patch | 63 + .../0003-fuse2fs-needs-SYSLIBS.patch | 30 + bsp/buildroot/package/e2fsprogs/Config.in | 11 +- .../package/e2fsprogs/e2fsprogs.hash | 4 +- bsp/buildroot/package/e2fsprogs/e2fsprogs.mk | 42 +- bsp/buildroot/package/e2tools/e2tools.hash | 2 + bsp/buildroot/package/e2tools/e2tools.mk | 1 + bsp/buildroot/package/efibootmgr/Config.in | 22 + .../package/efibootmgr/efibootmgr.hash | 2 + .../package/efibootmgr/efibootmgr.mk | 28 + ...01-Workaround-rename-of-linux-nvme.h.patch | 32 + ...-Make.rules-fix-build-with-make-3.81.patch | 45 + bsp/buildroot/package/efivar/Config.in | 27 + bsp/buildroot/package/efivar/efivar.hash | 2 + bsp/buildroot/package/efivar/efivar.mk | 57 + bsp/buildroot/package/efl/Config.in | 32 +- bsp/buildroot/package/efl/efl.hash | 4 +- bsp/buildroot/package/efl/efl.mk | 60 +- .../package/ejabberd/0001-remove-deps.patch | 22 - .../0001-remove-make-targets-for-deps.patch | 76 + .../ejabberd/0002-disable-rebar-deps.patch | 76 - ...emove-dependencies-from-rebar-config.patch | 85 + .../package/ejabberd/0003-disable-test.patch | 27 - .../0003-remove-checking-erlang-version.patch | 30 + .../ejabberd/0004-correct-include.patch | 56 + .../ejabberd/0004-disable-version-check.patch | 20 - ...0005-disable-ERLANG_DEPRECATED_CHECK.patch | 27 + .../package/ejabberd/0005-fix-includes.patch | 45 - ...isable-erlang-deprecated-types-check.patch | 20 - ...tch => 0006-fix-install-permissions.patch} | 43 +- ...rdctl.patch => 0007-fix-ejabberdctl.patch} | 23 +- bsp/buildroot/package/ejabberd/Config.in | 5 +- bsp/buildroot/package/ejabberd/ejabberd.hash | 6 +- bsp/buildroot/package/ejabberd/ejabberd.mk | 3 +- ...-.eo.h-files-from-includesub_HEADERS.patch | 45 + .../package/elementary/elementary.hash | 4 +- .../package/elementary/elementary.mk | 13 +- ...cation-support-for-R_ARM_TARGET-type.patch | 34 + bsp/buildroot/package/elf2flt/Config.in.host | 2 +- bsp/buildroot/package/elf2flt/elf2flt.hash | 2 + bsp/buildroot/package/elf2flt/elf2flt.mk | 8 +- .../package/elfutils/0001-argp-support.patch | 93 - .../package/elfutils/0002-disable-progs.patch | 22 +- bsp/buildroot/package/elfutils/0003-fts.patch | 26 +- ...e-werror-conditional-to-build-werror.patch | 18 +- ...-symbol-versioning-at-configure-time.patch | 139 -- bsp/buildroot/package/elfutils/Config.in | 3 +- bsp/buildroot/package/elfutils/elfutils.hash | 3 +- bsp/buildroot/package/elfutils/elfutils.mk | 18 +- .../emlog/0001-Fix-access-to-the-dentry.patch | 57 - bsp/buildroot/package/emlog/emlog.hash | 2 +- bsp/buildroot/package/emlog/emlog.mk | 2 +- ...-only-when-Wayland-support-is-enable.patch | 39 + .../package/enlightenment/enlightenment.hash | 4 +- .../package/enlightenment/enlightenment.mk | 12 +- .../erlang-goldrush/erlang-goldrush.hash | 2 + .../erlang-goldrush/erlang-goldrush.mk | 2 +- .../package/erlang-lager/erlang-lager.hash | 2 + .../package/erlang-lager/erlang-lager.mk | 3 +- .../erlang-p1-cache-tab.hash | 2 + .../erlang-p1-cache-tab.mk | 6 +- .../erlang-p1-iconv/erlang-p1-iconv.hash | 2 + .../erlang-p1-iconv/erlang-p1-iconv.mk | 2 +- .../package/erlang-p1-sip/erlang-p1-sip.hash | 2 + .../package/erlang-p1-sip/erlang-p1-sip.mk | 2 +- .../0001-Stdint-is-required-on-windows.patch | 28 + .../package/erlang-p1-stringprep/Config.in | 5 + .../erlang-p1-stringprep.hash | 2 + .../erlang-p1-stringprep.mk | 7 +- .../erlang-p1-stun/erlang-p1-stun.hash | 2 + .../package/erlang-p1-stun/erlang-p1-stun.mk | 2 +- .../package/erlang-p1-tls/erlang-p1-tls.hash | 2 + .../package/erlang-p1-tls/erlang-p1-tls.mk | 4 +- .../erlang-p1-utils/erlang-p1-utils.hash | 2 + .../erlang-p1-utils/erlang-p1-utils.mk | 4 +- bsp/buildroot/package/erlang-p1-xml/Config.in | 1 + .../package/erlang-p1-xml/erlang-p1-xml.hash | 2 + .../package/erlang-p1-xml/erlang-p1-xml.mk | 8 +- .../package/erlang-p1-yaml/Config.in | 1 + .../erlang-p1-yaml/erlang-p1-yaml.hash | 2 + .../package/erlang-p1-yaml/erlang-p1-yaml.mk | 4 +- .../erlang-p1-zlib/erlang-p1-zlib.hash | 2 + .../package/erlang-p1-zlib/erlang-p1-zlib.mk | 2 +- .../package/erlang-rebar/erlang-rebar.hash | 2 + .../package/erlang-rebar/erlang-rebar.mk | 2 +- ...ts-fix-incorrect-use-of-ac-egrep-cpp.patch | 79 - bsp/buildroot/package/erlang/Config.in | 12 +- bsp/buildroot/package/erlang/erlang.hash | 5 +- bsp/buildroot/package/erlang/erlang.mk | 26 +- bsp/buildroot/package/ethtool/ethtool.hash | 2 +- bsp/buildroot/package/ethtool/ethtool.mk | 2 +- ...ng.h-fix-getrandom-system-call-numbe.patch | 64 + bsp/buildroot/package/eudev/Config.in | 11 +- bsp/buildroot/package/eudev/eudev.hash | 4 +- bsp/buildroot/package/eudev/eudev.mk | 26 +- bsp/buildroot/package/evemu/evemu.hash | 4 +- bsp/buildroot/package/evemu/evemu.mk | 2 +- bsp/buildroot/package/evtest/evtest.hash | 2 + .../package/exfat-utils/exfat-utils.hash | 2 +- .../package/exfat-utils/exfat-utils.mk | 2 +- bsp/buildroot/package/exfat/exfat.hash | 2 +- bsp/buildroot/package/exfat/exfat.mk | 2 +- bsp/buildroot/package/exim/exim.hash | 4 +- bsp/buildroot/package/exim/exim.mk | 4 +- .../expat/0001-fix-CVE-2015-1283.patch | 76 - bsp/buildroot/package/expat/expat.hash | 7 +- bsp/buildroot/package/expat/expat.mk | 4 +- .../explorercanvas/explorercanvas.hash | 2 + ...01-configure-add-check-for-fallocate.patch | 46 - .../package/f2fs-tools/f2fs-tools.mk | 2 +- bsp/buildroot/package/faifa/faifa.hash | 2 + bsp/buildroot/package/faketime/faketime.hash | 2 + ...ROCEDURAL_OPTIMIZATION-target-proper.patch | 33 +- .../0002-Don-t-depend-on-net-if_ether.h.patch | 261 --- bsp/buildroot/package/fastd/Config.in | 4 +- bsp/buildroot/package/fastd/fastd.hash | 4 + bsp/buildroot/package/fastd/fastd.mk | 5 +- .../package/fb-test-app/fb-test-app.hash | 2 + .../package/fbset/0001-Fix-musl-compile.patch | 33 + bsp/buildroot/package/fbset/Config.in | 1 + .../fbterm/0003-C++11-compliance.patch | 93 + bsp/buildroot/package/fbterm/Config.in | 6 +- bsp/buildroot/package/fbtft/fbtft.hash | 2 + ...systemd-instead-of-libsystemd-daemon.patch | 20 + bsp/buildroot/package/fcgiwrap/Config.in | 2 +- bsp/buildroot/package/fcgiwrap/fcgiwrap.hash | 2 + bsp/buildroot/package/fcgiwrap/fcgiwrap.mk | 4 +- bsp/buildroot/package/fdk-aac/fdk-aac.mk | 3 + bsp/buildroot/package/feh/feh.hash | 4 +- bsp/buildroot/package/feh/feh.mk | 2 +- bsp/buildroot/package/fetchmail/fetchmail.mk | 10 + ...ublic-version-of-ff_read_frame_flush.patch | 53 - .../0013-bfin-disable-optimization.patch | 26 + bsp/buildroot/package/ffmpeg/Config.in | 11 +- bsp/buildroot/package/ffmpeg/ffmpeg.hash | 2 +- bsp/buildroot/package/ffmpeg/ffmpeg.mk | 24 +- bsp/buildroot/package/fftw/fftw.mk | 11 +- .../package/ficl/0001-fix-Makefile.patch | 47 + bsp/buildroot/package/ficl/Config.in | 9 + bsp/buildroot/package/ficl/ficl.hash | 2 + bsp/buildroot/package/ficl/ficl.mk | 59 + bsp/buildroot/package/file/file.hash | 2 +- bsp/buildroot/package/file/file.mk | 4 +- bsp/buildroot/package/filemq/filemq.hash | 2 + bsp/buildroot/package/filemq/filemq.mk | 2 +- bsp/buildroot/package/findutils/Config.in | 2 + ...compile-fix-for-linux-header-changes.patch | 42 - bsp/buildroot/package/fio/fio.mk | 14 +- bsp/buildroot/package/flann/Config.in | 4 + bsp/buildroot/package/flann/flann.hash | 2 + bsp/buildroot/package/flann/flann.mk | 2 +- bsp/buildroot/package/flannel/Config.in | 15 + bsp/buildroot/package/flannel/flannel.hash | 2 + bsp/buildroot/package/flannel/flannel.mk | 46 + .../package/flex/0002-fix-CVE-2016-6354.patch | 25 + bsp/buildroot/package/fmc/Config.in | 6 +- bsp/buildroot/package/fmc/fmc.hash | 2 + bsp/buildroot/package/fmc/fmc.mk | 10 +- bsp/buildroot/package/fmlib/Config.in | 38 +- bsp/buildroot/package/fmlib/fmlib.hash | 2 + bsp/buildroot/package/fmlib/fmlib.mk | 9 +- bsp/buildroot/package/font-awesome/Config.in | 7 + .../package/font-awesome/font-awesome.hash | 2 + .../package/font-awesome/font-awesome.mk | 18 + .../package/fontconfig/fontconfig.hash | 4 +- .../package/fontconfig/fontconfig.mk | 4 +- .../package/foomatic-filters/Config.in | 23 - .../foomatic-filters/foomatic-filters.mk | 22 - .../package/freerdp/0004-ffmpeg30.patch | 74 + bsp/buildroot/package/freerdp/freerdp.hash | 2 + bsp/buildroot/package/freerdp/freerdp.mk | 4 +- bsp/buildroot/package/freescale-imx/Config.in | 11 + .../firmware-imx/firmware-imx.hash | 3 +- .../firmware-imx/firmware-imx.mk | 7 +- .../freescale-imx/gpu-amd-bin-mx51/Config.in | 2 +- .../gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash | 3 + .../package/freescale-imx/imx-codec/Config.in | 13 + .../freescale-imx/imx-codec/imx-codec.hash | 2 + .../freescale-imx/imx-codec/imx-codec.mk | 40 + .../freescale-imx/imx-gpu-viv/Config.in | 8 +- .../imx-gpu-viv/imx-gpu-viv.hash | 4 +- .../freescale-imx/imx-gpu-viv/imx-gpu-viv.mk | 12 +- .../freescale-imx/imx-kobs/imx-kobs.hash | 3 +- .../freescale-imx/imx-kobs/imx-kobs.mk | 2 +- .../freescale-imx/imx-lib/imx-lib.hash | 2 +- .../package/freescale-imx/imx-lib/imx-lib.mk | 2 +- .../freescale-imx/imx-parser/Config.in | 8 + .../freescale-imx/imx-parser/imx-parser.hash | 2 + .../freescale-imx/imx-parser/imx-parser.mk | 38 + .../package/freescale-imx/imx-uuc/Config.in | 21 + .../package/freescale-imx/imx-uuc/S80imx-uuc | 27 + .../freescale-imx/imx-uuc/imx-uuc.hash | 2 + .../package/freescale-imx/imx-uuc/imx-uuc.mk | 40 + .../freescale-imx/imx-uuc/imx-uuc.service | 11 + .../package/freescale-imx/imx-vpu/Config.in | 5 + .../freescale-imx/imx-vpu/imx-vpu.hash | 2 +- .../package/freescale-imx/imx-vpu/imx-vpu.mk | 4 +- .../freescale-imx/imx-vpuwrap/Config.in | 19 + .../imx-vpuwrap/imx-vpuwrap.hash | 2 + .../freescale-imx/imx-vpuwrap/imx-vpuwrap.mk | 21 + .../kernel-module-imx-gpu-viv.hash | 2 +- .../kernel-module-imx-gpu-viv.mk | 2 +- .../package/freescale-imx/libz160/Config.in | 2 +- .../freescale-imx/libz160/libz160.hash | 2 + .../freeswitch/0001-libvpx-cross.patch | 29 + bsp/buildroot/package/freeswitch/Config.in | 35 + .../package/freeswitch/freeswitch.hash | 2 + .../package/freeswitch/freeswitch.mk | 291 +++ bsp/buildroot/package/freetype/freetype.hash | 5 +- bsp/buildroot/package/freetype/freetype.mk | 4 +- bsp/buildroot/package/fwup/Config.in | 18 + bsp/buildroot/package/fwup/Config.in.host | 7 + bsp/buildroot/package/fwup/fwup.hash | 2 + bsp/buildroot/package/fwup/fwup.mk | 17 + .../package/gadgetfs-test/gadgetfs-test.hash | 2 + ...x-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch | 39 + bsp/buildroot/package/gamin/Config.in | 2 +- bsp/buildroot/package/gawk/Config.in | 2 + bsp/buildroot/package/gawk/gawk.mk | 3 - ...werpc-link-with-math-lib.patch.conditional | 125 -- .../package/gcc/4.5.4/302-c99-snprintf.patch | 13 - .../4.5.4/305-libmudflap-susv3-legacy.patch | 49 - .../gcc/4.5.4/810-arm-softfloat-libgcc.patch | 38 - .../package/gcc/4.5.4/830-arm-pr43440.patch | 345 --- .../package/gcc/4.7.4/130-pr43538.patch | 25 + .../package/gcc/4.7.4/900-musl-support.patch | 2 +- .../gcc/4.8.5/130-fix_build_with_gcc-6.patch | 153 ++ .../package/gcc/4.8.5/130-pr43538.patch | 25 + .../874-xtensa-add-uclinux-support.patch | 174 ++ .../gcc/4.8.5/890-fix-m68k-compile.patch | 15 + .../gcc/4.8.5/891-fix-m68k-uclinux.patch | 18 + .../package/gcc/4.8.5/900-musl-support.patch | 2 +- ...libgcc-disable-split-stack-nothreads.patch | 14 + .../4.8.5/940-uclinux-enable-threads.patch | 19 + .../gcc/4.9.3/850-libstdcxx-uclibc-c99.patch | 255 --- .../920-libgcc-remove-unistd-header.patch | 12 - .../{4.9.3 => 4.9.4}/100-uclibc-conf.patch | 0 ...werpc-link-with-math-lib.patch.conditional | 28 +- .../gcc/{4.9.3 => 4.9.4}/111-pr65730.patch | 9 +- ...ix-typo-for-powerpc-e6500-cpu_is_64b.patch | 11 +- .../package/gcc/4.9.4/130-pr43538.patch | 25 + ...-Fix-build-with-_FILE_OFFSET_BITS-64.patch | 37 + .../301-missing-execinfo_h.patch | 0 .../810-arm-softfloat-libgcc.patch | 0 .../830-arm_unbreak_armv4t.patch | 0 ...0-microblaze-enable-dwarf-eh-support.patch | 39 +- .../850-libstdcxx-uclibc-c99.patch} | 65 +- .../gcc/{4.9.3 => 4.9.4}/860-cilk-wchar.patch | 0 ...870-xtensa-add-mauto-litpools-option.patch | 61 +- ...xtensa-reimplement-register-spilling.patch | 0 ...d-dw2-fde-dip-instead-of-unwind-dw2-.patch | 0 .../873-xtensa-fix-_Unwind_GetCFA.patch | 0 .../874-xtensa-add-uclinux-support.patch | 169 ++ .../4.9.4/880-nios2_legitimize_address.patch | 49 + .../gcc/4.9.4/890-fix-m68k-compile.patch | 15 + .../gcc/4.9.4/891-fix-m68k-uclinux.patch | 18 + .../{4.9.3 => 4.9.4}/900-musl-support.patch | 16 +- .../gcc/4.9.4/901-microblaze-uclibc.patch | 21 + ...libgcc-disable-split-stack-nothreads.patch | 14 + .../4.9.4/940-uclinux-enable-threads.patch | 20 + .../{5.3.0 => 5.4.0}/100-uclibc-conf.patch | 0 ...ix-typo-for-powerpc-e6500-cpu_is_64b.patch | 0 .../301-missing-execinfo_h.patch | 0 .../810-arm-softfloat-libgcc.patch | 14 +- .../830-arm_unbreak_armv4t.patch | 0 ...0-microblaze-enable-dwarf-eh-support.patch | 0 .../850-libstdcxx-uclibc-c99.patch | 0 .../gcc/{5.3.0 => 5.4.0}/860-cilk-wchar.patch | 0 ...870-xtensa-add-mauto-litpools-option.patch | 0 ...xtensa-reimplement-register-spilling.patch | 0 ...d-dw2-fde-dip-instead-of-unwind-dw2-.patch | 0 .../873-xtensa-fix-_Unwind_GetCFA.patch | 0 .../874-xtensa-add-uclinux-support.patch | 174 ++ .../gcc/5.4.0/890-fix-m68k-compile.patch | 15 + .../gcc/5.4.0/891-fix-m68k-uclinux.patch | 18 + .../gcc/5.4.0/892-microblaze-uclibc.patch | 24 + .../900-libitm-fixes-for-musl-support.patch | 0 ...-fixincludes-update-for-musl-support.patch | 0 .../902-unwind-fix-for-musl.patch | 0 ...libgfortran-gthr-workaround-for-musl.patch | 0 .../904-musl-libc-config.patch | 0 .../905-add-musl-support-to-gcc.patch | 0 .../906-mips-musl-support.patch | 0 .../907-x86-musl-support.patch | 0 .../908-arm-musl-support.patch | 0 .../909-aarch64-musl-support.patch | 0 ...libgcc-disable-split-stack-nothreads.patch | 14 + .../5.4.0/940-uclinux-enable-threads.patch | 19 + .../{4.5.4 => 6.1.0}/100-uclibc-conf.patch | 8 +- .../301-missing-execinfo_h.patch | 10 +- .../gcc/6.1.0/810-arm-softfloat-libgcc.patch | 30 + .../830-arm_unbreak_armv4t.patch} | 9 +- .../package/gcc/6.1.0/860-cilk-wchar.patch | 56 + .../gcc/6.1.0/890-fix-m68k-compile.patch | 15 + .../gcc/6.1.0/891-fix-m68k-uclinux.patch | 18 + ...mkmap-symver-support-skip_underscore.patch | 74 + ...in-use-the-generic-linker-version-in.patch | 1962 +++++++++++++++++ ...DWARF-compilation-with-FDPIC-targets.patch | 73 + .../6.1.0/940-uclinux-enable-threads.patch | 19 + bsp/buildroot/package/gcc/Config.in.host | 76 +- .../gcc/arc-2015.12/851-PR-other-56780.patch | 244 -- ...PDATE-Fix-handling-complex-PIC-moves.patch | 103 - ...DATE1-Fix-handling-complex-PIC-moves.patch | 83 - ...on-t-allow-mcompact-casesi-for-ARCv2.patch | 100 - .../301-missing-execinfo_h.patch | 13 + .../arc-2016.09-eng010/860-cilk-wchar.patch | 56 + .../940-uclinux-enable-threads.patch | 19 + .../package/gcc/gcc-final/gcc-final.mk | 25 +- bsp/buildroot/package/gcc/gcc.hash | 15 +- bsp/buildroot/package/gcc/gcc.mk | 87 +- bsp/buildroot/package/gcr/Config.in | 1 + bsp/buildroot/package/gcr/gcr.hash | 4 +- bsp/buildroot/package/gcr/gcr.mk | 2 +- ...> 0002-gd_bmp-fix-build-with-uClibc.patch} | 0 bsp/buildroot/package/gd/0002-no-zlib.patch | 51 - bsp/buildroot/package/gd/0004-webp-pre.patch | 37 - bsp/buildroot/package/gd/0005-webp.patch | 418 ---- bsp/buildroot/package/gd/Config.in | 8 +- bsp/buildroot/package/gd/gd.hash | 2 +- bsp/buildroot/package/gd/gd.mk | 5 +- ...-Add-some-casts-for-building-on-musl.patch | 90 + ...Move-W_STOPCODE-to-common-gdb_wait-h.patch | 63 + .../gdb/7.10.1/0003-move-__SIGRTMIN.patch | 58 + .../0004-xtensa-implement-NPTL-helpers.patch | 267 +++ .../0005-target.h-include-sys-types.h.patch | 30 + ...-Revert-sim-unify-SIM_CPU-definition.patch | 372 ++++ ...-Revert-sim-unify-SIM_CPU-definition.patch | 355 +++ ...asm-ptrace.h-for-linux-aarch64-low.c.patch | 36 - ...-asm-ptrace.h-in-aarch64-linux-nat.c.patch | 37 - ...01-gdbserver-fix-uClibc-whithout-MMU.patch | 34 - ...rver-xtensa-drop-xtensa_usrregs_info.patch | 47 - ...-xtensa-fix-typo-in-XCHAL_HAVE_LOOPS.patch | 46 - ...-Add-some-casts-for-building-on-musl.patch | 70 + ...Move-W_STOPCODE-to-common-gdb_wait-h.patch | 63 + .../gdb/7.9.1/0007-move-__SIGRTMIN.patch | 58 + bsp/buildroot/package/gdb/Config.in.host | 27 +- bsp/buildroot/package/gdb/gdb.hash | 10 +- bsp/buildroot/package/gdb/gdb.mk | 58 +- bsp/buildroot/package/gdbm/gdbm.hash | 5 +- bsp/buildroot/package/gdbm/gdbm.mk | 2 +- .../package/gdk-pixbuf/S26gdk-pixbuf | 19 - .../package/gdk-pixbuf/gdk-pixbuf.hash | 4 +- .../package/gdk-pixbuf/gdk-pixbuf.mk | 42 +- bsp/buildroot/package/genimage/genimage.mk | 2 +- bsp/buildroot/package/getent/getent.mk | 4 - bsp/buildroot/package/gettext/gettext.hash | 6 +- bsp/buildroot/package/gettext/gettext.mk | 18 +- bsp/buildroot/package/gflags/gflags.hash | 4 +- bsp/buildroot/package/giflib/giflib.hash | 4 +- bsp/buildroot/package/giflib/giflib.mk | 2 +- bsp/buildroot/package/git/git.hash | 2 +- bsp/buildroot/package/git/git.mk | 2 +- .../glib-networking/glib-networking.hash | 4 +- .../glib-networking/glib-networking.mk | 6 +- .../0001-CVE-2014-7817-eglibc.patch | 174 -- .../2.18-svnr23787/0002-accept-make4.patch | 33 - .../2.18-svnr23787/0003-CVE-2014-6040.patch | 141 -- .../2.18-svnr23787/0004-CVE-2014-9402.patch | 20 - .../2.18-svnr23787/0005-CVE-2015-1472.patch | 88 - .../0001-CVE-2014-7817-eglibc.patch | 174 -- .../2.19-svnr25243/0002-CVE-2014-6040.patch | 141 -- .../2.19-svnr25243/0003-CVE-2014-9402.patch | 20 - .../2.19-svnr25243/0004-CVE-2015-1472.patch | 88 - .../glibc/2.21/0001-fix-CVE-2015-7547.patch | 236 -- .../glibc/2.21/0002-fix-CVE-2015-1781.patch | 32 - .../glibc/2.21/0003-fix-CVE-2014-8121.patch | 176 -- ...002-microblaze-include-unix-sysdep.h.patch | 43 + .../glibc/2.22/0003-fix-CVE-2016-3075.patch | 44 + .../glibc/2.23/0001-fix-CVE-2016-3075.patch | 47 + .../package/glibc/2.23/0002-gcc6.patch | 88 + bsp/buildroot/package/glibc/Config.in | 45 +- bsp/buildroot/package/glibc/glibc.hash | 7 +- bsp/buildroot/package/glibc/glibc.mk | 16 +- bsp/buildroot/package/glibmm/glibmm.hash | 4 +- bsp/buildroot/package/glibmm/glibmm.mk | 4 +- bsp/buildroot/package/glm/glm.hash | 2 + bsp/buildroot/package/glmark2/Config.in | 5 +- bsp/buildroot/package/glmark2/glmark2.hash | 2 + bsp/buildroot/package/glmark2/glmark2.mk | 2 +- bsp/buildroot/package/glog/glog.hash | 4 +- bsp/buildroot/package/gmock/gmock.mk | 2 + bsp/buildroot/package/gmock/gmock.pc | 11 + bsp/buildroot/package/gmp/gmp.hash | 2 +- bsp/buildroot/package/gmp/gmp.mk | 12 +- .../package/gmrender-resurrect/Config.in | 19 + .../gmrender-resurrect.hash | 2 + .../gmrender-resurrect/gmrender-resurrect.mk | 16 + bsp/buildroot/package/gnupg/gnupg.hash | 6 +- bsp/buildroot/package/gnupg/gnupg.mk | 7 +- bsp/buildroot/package/gnupg2/Config.in | 1 + bsp/buildroot/package/gnupg2/gnupg2.hash | 6 +- bsp/buildroot/package/gnupg2/gnupg2.mk | 2 +- bsp/buildroot/package/gnuplot/gnuplot.mk | 5 + ...001-suppress-boost_unitest-detection.patch | 29 +- .../0002-fix_cmake_3_5_0_build_failure.patch | 175 ++ .../0002-types_t-is-need-for-mode_t.patch | 19 - .../0003-fix_compilation_in_gcc-6.patch | 36 + bsp/buildroot/package/gnuradio/Config.in | 25 +- bsp/buildroot/package/gnuradio/gnuradio.hash | 7 +- bsp/buildroot/package/gnuradio/gnuradio.mk | 29 +- bsp/buildroot/package/gnutls/gnutls.hash | 2 +- bsp/buildroot/package/gnutls/gnutls.mk | 10 +- .../package/go-bootstrap/go-bootstrap.hash | 2 + .../package/go-bootstrap/go-bootstrap.mk | 48 + bsp/buildroot/package/go/Config.in.host | 17 + bsp/buildroot/package/go/go.hash | 2 + bsp/buildroot/package/go/go.mk | 120 + .../package/google-breakpad/Config.in | 2 +- .../google-breakpad/google-breakpad.mk | 6 +- .../google-material-design-icons.hash | 2 +- .../google-material-design-icons.mk | 4 +- .../googlefontdirectory.hash | 2 + bsp/buildroot/package/gpsd/Config.in | 25 +- bsp/buildroot/package/gptfdisk/Config.in.host | 12 +- bsp/buildroot/package/gr-osmosdr/Config.in | 37 + .../package/gr-osmosdr/gr-osmosdr.hash | 2 + .../package/gr-osmosdr/gr-osmosdr.mk | 55 + bsp/buildroot/package/granite/Config.in | 18 + bsp/buildroot/package/granite/granite.hash | 4 + bsp/buildroot/package/granite/granite.mk | 16 + bsp/buildroot/package/grantlee/Config.in | 16 +- bsp/buildroot/package/grantlee/grantlee.hash | 3 +- bsp/buildroot/package/grantlee/grantlee.mk | 14 +- .../package/graphite2/graphite2.hash | 4 +- bsp/buildroot/package/graphite2/graphite2.mk | 2 +- bsp/buildroot/package/grep/Config.in | 2 + bsp/buildroot/package/grep/grep.hash | 2 +- bsp/buildroot/package/grep/grep.mk | 2 +- .../gsettings-desktop-schemas/Config.in | 16 + .../gsettings-desktop-schemas.hash | 2 + .../gsettings-desktop-schemas.mk | 16 + bsp/buildroot/package/gssdp/gssdp.hash | 4 +- bsp/buildroot/package/gssdp/gssdp.mk | 4 +- .../package/gstreamer/gst-dsp/gst-dsp.hash | 2 + .../package/gstreamer/gst-dsp/gst-dsp.mk | 4 +- .../package/gstreamer/gst-ffmpeg/Config.in | 5 + .../gstreamer/gst-fsl-plugins/Config.in | 11 +- .../gst-fsl-plugins/gst-fsl-plugins.mk | 6 +- .../gstreamer/gst-omapfb/gst-omapfb.hash | 2 + .../gstreamer/gst-omapfb/gst-omapfb.mk | 4 +- .../gstreamer/gst-plugin-x170/Config.in | 2 +- .../gst-plugin-x170/gst-plugin-x170.hash | 2 + .../gstreamer/gstreamer/gstreamer.hash | 2 + .../package/gstreamer1/gst-omx/gst-omx.hash | 2 + ...2src-Add-V4L2_PIX_FMT_XRGB555X-check.patch | 33 + .../package/gstreamer1/gst1-imx/Config.in | 31 +- .../package/gstreamer1/gst1-imx/gst1-imx.hash | 2 + .../package/gstreamer1/gst1-imx/gst1-imx.mk | 33 +- .../package/gstreamer1/gst1-libav/Config.in | 6 + .../gstreamer1/gst1-libav/gst1-libav.hash | 4 +- .../gstreamer1/gst1-libav/gst1-libav.mk | 78 +- .../0001-use-gettext-0.18.patch | 17 - .../gstreamer1/gst1-plugins-bad/Config.in | 116 +- .../gst1-plugins-bad/gst1-plugins-bad.hash | 4 +- .../gst1-plugins-bad/gst1-plugins-bad.mk | 140 +- .../gstreamer1/gst1-plugins-base/Config.in | 7 + .../gst1-plugins-base/gst1-plugins-base.hash | 4 +- .../gst1-plugins-base/gst1-plugins-base.mk | 9 +- .../gstreamer1/gst1-plugins-good/Config.in | 8 + .../gst1-plugins-good/gst1-plugins-good.hash | 4 +- .../gst1-plugins-good/gst1-plugins-good.mk | 11 +- .../gstreamer1/gst1-plugins-ugly/Config.in | 10 +- .../gst1-plugins-ugly/gst1-plugins-ugly.hash | 4 +- .../gst1-plugins-ugly/gst1-plugins-ugly.mk | 13 +- .../gst1-validate/gst1-validate.hash | 4 +- .../gstreamer1/gst1-validate/gst1-validate.mk | 2 +- .../package/gstreamer1/gstreamer1/Config.in | 2 +- .../gstreamer1/gstreamer1/gstreamer1.hash | 4 +- .../gstreamer1/gstreamer1/gstreamer1.mk | 2 +- bsp/buildroot/package/gtest/gtest.mk | 2 + bsp/buildroot/package/gtest/gtest.pc | 11 + bsp/buildroot/package/gtkmm3/Config.in | 15 +- bsp/buildroot/package/gtkmm3/gtkmm3.hash | 4 +- bsp/buildroot/package/gtkmm3/gtkmm3.mk | 15 +- bsp/buildroot/package/gtksourceview/Config.in | 12 + .../package/gtksourceview/gtksourceview.hash | 2 + .../package/gtksourceview/gtksourceview.mk | 17 + bsp/buildroot/package/guile/Config.in | 2 +- bsp/buildroot/package/gupnp-av/gupnp-av.hash | 4 +- bsp/buildroot/package/gupnp-av/gupnp-av.mk | 4 +- bsp/buildroot/package/gupnp-dlna/Config.in | 17 + .../package/gupnp-dlna/gupnp-dlna.hash | 2 + .../package/gupnp-dlna/gupnp-dlna.mk | 32 + bsp/buildroot/package/gupnp-tools/Config.in | 21 + .../package/gupnp-tools/gupnp-tools.hash | 2 + .../package/gupnp-tools/gupnp-tools.mk | 35 + bsp/buildroot/package/gupnp/gupnp.hash | 4 +- bsp/buildroot/package/gupnp/gupnp.mk | 4 +- ...t-olympus.c-fix-endianness-detection.patch | 33 + ...w-USB-backends-to-be-built-if-CUPS-i.patch | 41 + bsp/buildroot/package/gutenprint/Config.in | 2 - .../package/gutenprint/gutenprint.hash | 2 +- .../package/gutenprint/gutenprint.mk | 10 +- bsp/buildroot/package/gvfs/gvfs.hash | 4 +- bsp/buildroot/package/gvfs/gvfs.mk | 2 +- bsp/buildroot/package/gzip/Config.in | 2 + bsp/buildroot/package/gzip/gzip.hash | 2 +- bsp/buildroot/package/gzip/gzip.mk | 2 +- bsp/buildroot/package/harfbuzz/harfbuzz.hash | 4 +- bsp/buildroot/package/harfbuzz/harfbuzz.mk | 2 +- bsp/buildroot/package/hdparm/Config.in | 1 + bsp/buildroot/package/heimdal/heimdal.mk | 2 +- bsp/buildroot/package/hiawatha/hiawatha.hash | 2 +- bsp/buildroot/package/hiawatha/hiawatha.mk | 2 +- ...se-a-C-source-file-since-it-s-pure-C.patch | 416 +++- bsp/buildroot/package/hidapi/Config.in | 6 +- bsp/buildroot/package/hidapi/hidapi.hash | 2 +- bsp/buildroot/package/hidapi/hidapi.mk | 2 +- .../0003-vlan-fix-musl-build-error.patch | 60 + ...bc-conflict-with-Linux-kernel-header.patch | 60 + ...a-Credential-with-invalid-passphrase.patch | 85 + bsp/buildroot/package/hostapd/hostapd.mk | 2 + bsp/buildroot/package/hplip/Config.in | 6 +- bsp/buildroot/package/hplip/hplip.mk | 3 + .../package/htop/0001-native-affinity.patch | 25 - bsp/buildroot/package/htop/htop.hash | 5 +- bsp/buildroot/package/htop/htop.mk | 7 +- bsp/buildroot/package/i2c-tools/Config.in | 1 + .../package/i2c-tools/i2c-tools.hash | 2 - bsp/buildroot/package/i2c-tools/i2c-tools.mk | 11 +- bsp/buildroot/package/i7z/Config.in | 17 + bsp/buildroot/package/i7z/i7z.hash | 2 + bsp/buildroot/package/i7z/i7z.mk | 22 + ...ting-memory-for-pkgDataFlags.-compil.patch | 34 - bsp/buildroot/package/icu/icu.hash | 6 +- bsp/buildroot/package/icu/icu.mk | 11 +- bsp/buildroot/package/ifplugd/Config.in | 1 + bsp/buildroot/package/ifupdown/Config.in | 4 +- bsp/buildroot/package/ifupdown/ifupdown.hash | 4 +- bsp/buildroot/package/ifupdown/ifupdown.mk | 13 +- .../package/igd2-for-linux/Config.in | 25 + bsp/buildroot/package/igd2-for-linux/S99upnpd | 67 + .../igd2-for-linux/igd2-for-linux.hash | 2 + .../package/igd2-for-linux/igd2-for-linux.mk | 48 + .../package/igd2-for-linux/upnpd.service | 22 + .../package/igmpproxy/0001-uclinux.patch | 16 - bsp/buildroot/package/igmpproxy/Config.in | 2 + .../package/igmpproxy/igmpproxy.hash | 2 +- bsp/buildroot/package/igmpproxy/igmpproxy.mk | 5 +- .../package/imagemagick/imagemagick.hash | 2 +- .../package/imagemagick/imagemagick.mk | 37 +- ...-GIF-loader-Fix-for-libgif-version-5.patch | 43 - ...2-GIF-loader-Simplify-error-handling.patch | 175 -- ...nfig-delete-old-reference-to-my_libs.patch | 28 - ...SSING-redefined-warnings-when-X-is-d.patch | 75 - ...-link-with-X-libs-when-X-is-disabled.patch | 29 - ...IF-loader-Fix-for-libgif-version-5.1.patch | 44 - ...007-fix-compilation-issues-with-musl.patch | 31 - bsp/buildroot/package/imlib2/imlib2.hash | 5 +- bsp/buildroot/package/imlib2/imlib2.mk | 3 +- .../package/imx-usb-loader/Config.in.host | 2 +- .../imx-usb-loader/imx-usb-loader.hash | 2 + .../package/imx-usb-loader/imx-usb-loader.mk | 2 +- .../package/initscripts/init.d/S40network | 6 +- .../package/initscripts/initscripts.mk | 3 - .../package/inotify-tools/0001-gcc6.patch | 49 + .../package/inotify-tools/inotify-tools.hash | 2 + .../package/inotify-tools/inotify-tools.mk | 2 +- .../input-event-daemon.hash | 2 + .../package/iozone/0002-no-nptl-support.patch | 37 - bsp/buildroot/package/iozone/Config.in | 6 +- bsp/buildroot/package/iozone/iozone.hash | 2 +- bsp/buildroot/package/iozone/iozone.mk | 7 +- ...01-util.h-add-missing-stdbool-header.patch | 54 + ...0002-fix-speed-display-in-csv-report.patch | 39 + bsp/buildroot/package/iperf/Config.in | 2 +- bsp/buildroot/package/iperf/iperf.hash | 4 +- bsp/buildroot/package/iperf/iperf.mk | 10 +- bsp/buildroot/package/iperf3/iperf3.hash | 4 +- bsp/buildroot/package/iperf3/iperf3.mk | 5 +- .../package/ipkg/0002-fix-nommu.patch | 24 + bsp/buildroot/package/ipkg/Config.in | 1 + bsp/buildroot/package/ipkg/ipkg.hash | 2 + ...-Make-the-package-autoreconfigurable.patch | 38 + .../0002-Avoid-wchar_t-redefinition.patch | 60 + ...missing-linux-param.h-header-include.patch | 39 + .../0004-Fix-missing-stddef.h-include.patch | 37 + bsp/buildroot/package/ipmitool/Config.in | 7 + bsp/buildroot/package/ipmitool/ipmitool.hash | 2 +- bsp/buildroot/package/ipmitool/ipmitool.mk | 13 +- ...-lib-Makefile.am-fix-lanplus-disable.patch | 38 - ...onfigure.ac-fix-stack-protector-test.patch | 45 - bsp/buildroot/package/ipmiutil/ipmiutil.hash | 4 +- bsp/buildroot/package/ipmiutil/ipmiutil.mk | 4 +- .../0001-Avoid-in6_addr-redefinition.patch | 22 +- ...0003-iproute2-fix-building-with-musl.patch | 33 - ...c_bpf.c-fix-building-with-musl-libc..patch | 37 + .../iproute2/0004-iproute-no-iptables.patch | 48 + bsp/buildroot/package/iproute2/iproute2.hash | 2 +- bsp/buildroot/package/iproute2/iproute2.mk | 10 +- bsp/buildroot/package/iprutils/Config.in | 1 + bsp/buildroot/package/ipsec-tools/Config.in | 3 +- ...003-extensions-added-AR-substitution.patch | 33 + bsp/buildroot/package/iptables/Config.in | 6 +- bsp/buildroot/package/iptables/iptables.mk | 1 + bsp/buildroot/package/iptraf-ng/iptraf-ng.mk | 6 +- .../iputils/0001-ping-link-against-libm.patch | 29 - bsp/buildroot/package/iputils/Config.in | 1 - bsp/buildroot/package/iputils/iputils.hash | 2 +- bsp/buildroot/package/iputils/iputils.mk | 32 +- .../package/irqbalance/irqbalance.hash | 2 + ...0001-Fix-quote-around-macro-argument.patch | 46 - bsp/buildroot/package/irssi/irssi.hash | 2 +- bsp/buildroot/package/irssi/irssi.mk | 7 +- bsp/buildroot/package/isl/isl.mk | 2 +- bsp/buildroot/package/iw/iw.hash | 2 +- bsp/buildroot/package/iw/iw.mk | 4 +- .../jack2/0001-Add-support-for-nios2.patch | 34 + ...upport-depends-on-execinfo.h-existen.patch | 67 + ...003-tests-define-__STDC_LIMIT_MACROS.patch | 41 + bsp/buildroot/package/jack2/Config.in | 26 + bsp/buildroot/package/jack2/jack2.hash | 3 + bsp/buildroot/package/jack2/jack2.mk | 25 + ...-Use-fenv.h-instead-of-fpu_control.h.patch | 86 + bsp/buildroot/package/jamvm/Config.in | 5 +- .../janus-gateway/0001-disable-ssp.patch | 6 +- ...dd-test-for-Wunused-but-set-variable.patch | 8 +- bsp/buildroot/package/janus-gateway/Config.in | 3 +- .../package/janus-gateway/janus-gateway.hash | 2 + .../package/janus-gateway/janus-gateway.mk | 6 +- .../jasper/0008-fix-CVE-2016-2116.patch | 18 + .../jasper/0009-fix-CVE-2016-1577.patch | 18 + .../jasper/0010-fix-CVE-2016-1867.patch | 16 + .../jasper/0011-fix-CVE-2015-5221.patch | 23 + .../jasper/0012-fix-CVE-2015-5203.patch | 187 ++ ...ix-LG_QUANTUM-definition-for-sparc64.patch | 30 + bsp/buildroot/package/jemalloc/Config.in | 24 + bsp/buildroot/package/jemalloc/jemalloc.hash | 2 + bsp/buildroot/package/jemalloc/jemalloc.mk | 15 + .../jquery-datetimepicker.hash | 2 + .../jquery-keyboard/jquery-keyboard.hash | 2 + .../package/jquery-mobile/jquery-mobile.hash | 2 + .../jquery-sparkline/jquery-sparkline.hash | 2 + .../jquery-ui-themes/jquery-ui-themes.hash | 2 + .../package/jquery-ui/jquery-ui.hash | 2 + bsp/buildroot/package/jsmin/Config.in.host | 11 + bsp/buildroot/package/jsmin/jsmin.hash | 2 + bsp/buildroot/package/json-c/json-c.hash | 2 + .../package/json-glib/json-glib.hash | 4 +- bsp/buildroot/package/json-glib/json-glib.mk | 4 +- .../json-javascript/json-javascript.hash | 2 + ...reat-conversion-warning-as-error-onl.patch | 37 + .../package/jsoncpp/0001-Remove-Werror.patch | 39 - ...2-Add-option-JSONCPP_WITH_STRICT_ISO.patch | 68 - bsp/buildroot/package/jsoncpp/jsoncpp.hash | 2 + bsp/buildroot/package/jsoncpp/jsoncpp.mk | 2 +- bsp/buildroot/package/kbd/kbd.mk | 2 +- bsp/buildroot/package/kexec-lite/Config.in | 2 +- ...0001-vmcore-dmesg-Define-_GNU_SOURCE.patch | 38 + ...don-t-include-linux-if_tun.h-kernel-.patch | 51 + bsp/buildroot/package/kismet/kismet.hash | 2 + bsp/buildroot/package/kmod/kmod.hash | 2 +- bsp/buildroot/package/kmod/kmod.mk | 2 +- ...ix-LTO-support-for-cross-compilation.patch | 45 + bsp/buildroot/package/kmsxx/Config.in | 26 + bsp/buildroot/package/kmsxx/kmsxx.hash | 2 + bsp/buildroot/package/kmsxx/kmsxx.mk | 54 + .../package/kodi-addon-xvdr/Config.in | 2 + .../kodi-addon-xvdr/kodi-addon-xvdr.hash | 2 + .../kodi-addon-xvdr/kodi-addon-xvdr.mk | 4 +- .../package/kodi-adsp-basic/Config.in | 12 + .../kodi-adsp-basic/kodi-adsp-basic.hash | 2 + .../kodi-adsp-basic/kodi-adsp-basic.mk | 13 + .../package/kodi-adsp-freesurround/Config.in | 11 + .../kodi-adsp-freesurround.hash | 2 + .../kodi-adsp-freesurround.mk | 13 + .../kodi-audiodecoder-modplug.hash | 2 + .../kodi-audiodecoder-modplug.mk | 2 +- .../kodi-audiodecoder-nosefart.hash | 2 + .../kodi-audiodecoder-nosefart.mk | 2 +- .../package/kodi-audiodecoder-opus/Config.in | 10 + .../kodi-audiodecoder-opus.hash | 2 + .../kodi-audiodecoder-opus.mk | 13 + .../kodi-audiodecoder-sidplay.hash | 2 + .../kodi-audiodecoder-sidplay.mk | 2 +- .../kodi-audiodecoder-snesapu.hash | 2 + .../kodi-audiodecoder-snesapu.mk | 2 +- .../kodi-audiodecoder-stsound.hash | 2 + .../kodi-audiodecoder-stsound.mk | 2 +- .../kodi-audiodecoder-timidity.hash | 2 + .../kodi-audiodecoder-timidity.mk | 2 +- .../kodi-audiodecoder-vgmstream.hash | 2 + .../kodi-audiodecoder-vgmstream.mk | 2 +- .../kodi-audioencoder-flac.hash | 2 + .../kodi-audioencoder-flac.mk | 2 +- .../kodi-audioencoder-lame.hash | 2 + .../kodi-audioencoder-lame.mk | 2 +- .../kodi-audioencoder-vorbis.hash | 2 + .../kodi-audioencoder-vorbis.mk | 2 +- .../kodi-audioencoder-wav.hash | 2 + .../kodi-audioencoder-wav.mk | 2 +- .../package/kodi-platform/kodi-platform.hash | 2 + .../package/kodi-platform/kodi-platform.mk | 2 +- ...entation-of-char_class_e-in-struct-t.patch | 45 - .../package/kodi-pvr-argustv/Config.in | 4 - .../kodi-pvr-argustv/kodi-pvr-argustv.hash | 2 + .../kodi-pvr-argustv/kodi-pvr-argustv.mk | 4 +- .../kodi-pvr-dvblink/kodi-pvr-dvblink.hash | 2 + .../kodi-pvr-dvblink/kodi-pvr-dvblink.mk | 4 +- .../kodi-pvr-dvbviewer.hash | 2 + .../kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk | 4 +- .../package/kodi-pvr-filmon/Config.in | 4 - .../kodi-pvr-filmon/kodi-pvr-filmon.hash | 2 + .../kodi-pvr-filmon/kodi-pvr-filmon.mk | 4 +- .../package/kodi-pvr-hdhomerun/Config.in | 9 + .../kodi-pvr-hdhomerun.hash | 2 + .../kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk | 15 + .../package/kodi-pvr-hts/kodi-pvr-hts.hash | 2 + .../package/kodi-pvr-hts/kodi-pvr-hts.mk | 4 +- .../kodi-pvr-iptvsimple.hash | 2 + .../kodi-pvr-iptvsimple.mk | 4 +- ...entation-of-char_class_e-in-struct-t.patch | 42 - .../kodi-pvr-mediaportal-tvserver.hash | 2 + .../kodi-pvr-mediaportal-tvserver.mk | 4 +- .../kodi-pvr-mythtv/kodi-pvr-mythtv.hash | 2 + .../kodi-pvr-mythtv/kodi-pvr-mythtv.mk | 4 +- .../kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash | 2 + .../kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk | 4 +- .../package/kodi-pvr-njoy/kodi-pvr-njoy.hash | 2 + .../package/kodi-pvr-njoy/kodi-pvr-njoy.mk | 4 +- bsp/buildroot/package/kodi-pvr-pctv/Config.in | 4 - .../package/kodi-pvr-pctv/kodi-pvr-pctv.hash | 2 + .../package/kodi-pvr-pctv/kodi-pvr-pctv.mk | 4 +- .../package/kodi-pvr-stalker/Config.in | 4 - .../kodi-pvr-stalker/kodi-pvr-stalker.hash | 2 + .../kodi-pvr-stalker/kodi-pvr-stalker.mk | 4 +- .../package/kodi-pvr-vbox/kodi-pvr-vbox.hash | 2 + .../package/kodi-pvr-vbox/kodi-pvr-vbox.mk | 4 +- .../kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash | 2 + .../kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk | 4 +- .../kodi-pvr-vuplus/kodi-pvr-vuplus.hash | 2 + .../kodi-pvr-vuplus/kodi-pvr-vuplus.mk | 4 +- .../package/kodi-pvr-wmc/kodi-pvr-wmc.hash | 2 + .../package/kodi-pvr-wmc/kodi-pvr-wmc.mk | 4 +- .../kodi-screensaver-asteroids/Config.in | 6 +- .../kodi-screensaver-asteroids.hash | 2 + .../kodi-screensaver-asteroids.mk | 2 +- .../kodi-screensaver-asterwave/Config.in | 12 + .../kodi-screensaver-asterwave.hash | 2 + .../kodi-screensaver-asterwave.mk | 11 + .../kodi-screensaver-biogenesis/Config.in | 6 +- .../kodi-screensaver-biogenesis.hash | 2 + .../kodi-screensaver-biogenesis.mk | 2 +- .../kodi-screensaver-cpblobs/Config.in | 11 + .../kodi-screensaver-cpblobs.hash | 2 + .../kodi-screensaver-cpblobs.mk | 13 + .../kodi-screensaver-crystalmorph/Config.in | 6 +- .../kodi-screensaver-crystalmorph.hash | 2 + .../kodi-screensaver-greynetic/Config.in | 6 +- .../kodi-screensaver-greynetic.hash | 2 + .../kodi-screensaver-greynetic.mk | 2 +- .../kodi-screensaver-matrixtrails/Config.in | 11 + .../kodi-screensaver-matrixtrails.hash | 2 + .../kodi-screensaver-matrixtrails.mk | 14 + .../kodi-screensaver-pingpong/Config.in | 6 +- .../kodi-screensaver-pingpong.hash | 2 + .../kodi-screensaver-pingpong.mk | 2 +- .../kodi-screensaver-planestate/Config.in | 11 + .../kodi-screensaver-planestate.hash | 2 + .../kodi-screensaver-planestate.mk | 11 + .../package/kodi-screensaver-pyro/Config.in | 6 +- .../kodi-screensaver-pyro.hash | 2 + .../kodi-screensaver-pyro.mk | 2 +- .../0001-cross-compile.patch | 37 + .../package/kodi-screensaver-rsxs/Config.in | 12 + .../kodi-screensaver-rsxs.hash | 2 + .../kodi-screensaver-rsxs.mk | 14 + .../package/kodi-screensaver-stars/Config.in | 6 +- .../kodi-screensaver-stars.hash | 2 + .../kodi-screensaver-stars.mk | 2 +- .../kodi-visualisation-fishbmc/Config.in | 10 + .../kodi-visualisation-fishbmc.hash | 2 + .../kodi-visualisation-fishbmc.mk | 13 + .../kodi-visualisation-fountain/Config.in | 11 + .../kodi-visualisation-fountain.hash | 2 + .../kodi-visualisation-fountain.mk | 11 + .../0001-cross-compile.patch | 32 + .../package/kodi-visualisation-goom/Config.in | 10 + .../kodi-visualisation-goom.hash | 2 + .../kodi-visualisation-goom.mk | 14 + ...-also-search-for-egl-with-pkg-config.patch | 14 +- .../kodi-visualisation-shadertoy/Config.in | 2 + .../kodi-visualisation-shadertoy.hash | 2 + .../kodi-visualisation-shadertoy.mk | 8 +- .../kodi-visualisation-spectrum.hash | 2 + .../kodi-visualisation-spectrum.mk | 2 +- .../kodi-visualisation-waveforhue.hash | 2 + .../kodi-visualisation-waveform.hash | 2 + .../kodi-visualisation-waveform.mk | 2 +- ...e-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch | 21 +- ...ePacker-fix-compilation-with-gcc-4.6.patch | 53 + .../package/kodi/0006-ffmpeg30.patch | 646 ++++++ ...-of-memory-errors-with-large-numbers.patch | 45 + ...issue-when-reading-certain-id3v1-tag.patch | 82 + ...ximage-6.0-fix-compilation-with-gcc6.patch | 1438 ++++++++++++ ...rl-support-version-7.5.0-and-upwards.patch | 34 + bsp/buildroot/package/kodi/Config.in | 127 +- bsp/buildroot/package/kodi/kodi.hash | 2 +- bsp/buildroot/package/kodi/kodi.mk | 122 +- bsp/buildroot/package/ktap/ktap.hash | 2 + bsp/buildroot/package/kvmtool/Config.in | 4 +- bsp/buildroot/package/lapack/Config.in | 21 + bsp/buildroot/package/lapack/lapack.hash | 2 + bsp/buildroot/package/lapack/lapack.mk | 21 + .../package/latencytop/latencytop.hash | 2 + ...Remove-installation-of-docs-examples.patch | 39 - bsp/buildroot/package/lcdapi/lcdapi.hash | 2 + bsp/buildroot/package/lcdapi/lcdapi.mk | 2 +- bsp/buildroot/package/less/Config.in | 1 + bsp/buildroot/package/leveldb/leveldb.hash | 2 + bsp/buildroot/package/lft/Config.in | 10 + bsp/buildroot/package/lft/lft.hash | 2 + bsp/buildroot/package/lft/lft.mk | 19 + .../0001-fix-static-link-with-readline.patch | 40 + bsp/buildroot/package/lftp/lftp.hash | 2 +- bsp/buildroot/package/lftp/lftp.mk | 10 +- bsp/buildroot/package/libaacs/Config.in | 15 + bsp/buildroot/package/libaacs/libaacs.hash | 2 + bsp/buildroot/package/libaacs/libaacs.mk | 24 + .../package/libaio/0001-arches.patch | 454 +--- ...-ENABLE_SHARED-boolean-to-allow-stat.patch | 56 + bsp/buildroot/package/libaio/Config.in | 2 +- bsp/buildroot/package/libaio/libaio.hash | 4 +- bsp/buildroot/package/libaio/libaio.mk | 20 +- .../0001-Include-stdint.h-where-needed.patch | 47 + bsp/buildroot/package/libamcodec/Config.in | 14 + .../package/libamcodec/libamcodec.hash | 2 + .../package/libamcodec/libamcodec.mk | 36 + bsp/buildroot/package/libarchive/Config.in | 6 + .../package/libarchive/libarchive.hash | 2 +- .../package/libarchive/libarchive.mk | 33 +- ...1-Fix-linux-detection-with-buildroot.patch | 31 - bsp/buildroot/package/libasplib/Config.in | 5 +- .../package/libasplib/libasplib.hash | 2 +- bsp/buildroot/package/libasplib/libasplib.mk | 4 +- bsp/buildroot/package/libass/libass.hash | 2 +- bsp/buildroot/package/libass/libass.mk | 2 +- bsp/buildroot/package/libassuan/Config.in | 1 + .../package/libassuan/libassuan.hash | 2 +- bsp/buildroot/package/libassuan/libassuan.mk | 2 +- .../package/libatomic_ops/libatomic_ops.hash | 2 + bsp/buildroot/package/libbdplus/Config.in | 20 + .../package/libbdplus/libbdplus.hash | 2 + bsp/buildroot/package/libbdplus/libbdplus.mk | 31 + bsp/buildroot/package/libbluray/Config.in | 3 +- .../package/libbluray/libbluray.hash | 4 +- bsp/buildroot/package/libbluray/libbluray.mk | 2 +- ...build-clock_gettime-might-need-librt.patch | 49 - bsp/buildroot/package/libbsd/Config.in | 2 +- bsp/buildroot/package/libbsd/libbsd.hash | 2 +- bsp/buildroot/package/libbsd/libbsd.mk | 4 +- bsp/buildroot/package/libcap-ng/Config.in | 1 - .../package/libcap-ng/libcap-ng.hash | 2 +- bsp/buildroot/package/libcap-ng/libcap-ng.mk | 2 +- ...d-system-fixes-for-cross-compilation.patch | 53 + .../package/libcap/0001-build-system.patch | 54 - ...tall-into-install-shared-install-sta.patch | 48 + .../0002-split-static-shared-install.patch | 30 - ...he-location-we-include-linux-xattr.h.patch | 46 - ....c-fix-build-with-old-kernel-headers.patch | 51 + bsp/buildroot/package/libcap/Config.in | 4 - bsp/buildroot/package/libcap/libcap.hash | 2 +- bsp/buildroot/package/libcap/libcap.mk | 24 +- ...rate-an-invalid-env.h-when-not-built.patch | 31 - bsp/buildroot/package/libcec/libcec.hash | 2 + bsp/buildroot/package/libcec/libcec.mk | 2 +- bsp/buildroot/package/libcgroup/Config.in | 2 +- bsp/buildroot/package/libcli/libcli.hash | 2 + ...dd-Wunused-result-if-supported-by-th.patch | 38 + bsp/buildroot/package/libcoap/Config.in | 10 + bsp/buildroot/package/libcoap/libcoap.hash | 2 + bsp/buildroot/package/libcoap/libcoap.mk | 15 + bsp/buildroot/package/libcofi/Config.in | 6 + bsp/buildroot/package/libcofi/libcofi.hash | 2 + .../package/libconfuse/libconfuse.hash | 5 +- .../package/libconfuse/libconfuse.mk | 7 +- bsp/buildroot/package/libcroco/libcroco.mk | 1 + bsp/buildroot/package/libcrossguid/Config.in | 2 +- .../package/libcrossguid/libcrossguid.hash | 2 + bsp/buildroot/package/libcurl/libcurl.hash | 2 +- bsp/buildroot/package/libcurl/libcurl.mk | 8 +- .../package/libdcadec/libdcadec.hash | 2 + bsp/buildroot/package/libdcadec/libdcadec.mk | 2 +- bsp/buildroot/package/libdri2/libdri2.hash | 2 + .../0001-Add-ARM-support-into-xf86drm.h.patch | 56 + .../package/libdrm/0001-update-arm.patch | 37 - ...require-CAS-support-in-libatomic_ops.patch | 32 + ...e-limits.h-to-fix-build-error-on-Sol.patch | 31 - bsp/buildroot/package/libdrm/Config.in | 40 +- bsp/buildroot/package/libdrm/libdrm.hash | 4 +- bsp/buildroot/package/libdrm/libdrm.mk | 17 +- bsp/buildroot/package/libdvdcss/Config.in | 7 + .../package/libdvdcss/libdvdcss.hash | 2 + bsp/buildroot/package/libdvdcss/libdvdcss.mk | 14 + .../0001-do-not-match-nios2-as-os2.patch | 16 + .../libdvdnav/0001-fix-os2-support.patch | 32 - bsp/buildroot/package/libdvdnav/Config.in | 5 +- .../package/libdvdnav/libdvdnav.hash | 4 +- bsp/buildroot/package/libdvdnav/libdvdnav.mk | 15 +- .../libdvdread/0001-fix-os2-support.patch | 31 - bsp/buildroot/package/libdvdread/Config.in | 5 +- .../package/libdvdread/libdvdread.hash | 4 +- .../package/libdvdread/libdvdread.mk | 11 +- ...01-use-pkg-config-to-detect-openssl.patch} | 0 .../package/libeXosip2/libeXosip2.hash | 2 + bsp/buildroot/package/libebml/libebml.hash | 2 +- bsp/buildroot/package/libebml/libebml.mk | 2 +- bsp/buildroot/package/libebur128/Config.in | 14 + .../package/libebur128/libebur128.mk | 14 + bsp/buildroot/package/libenca/libenca.hash | 2 + ...forms-based-on-configuration-results.patch | 125 ++ ...add-an-option-to-disable-glx-support.patch | 39 + ...glx-actually-work-on-osx-and-windows.patch | 67 + ...-use-glx-instead-of-opengl-framework.patch | 95 + ...005-Forward-egl-cflags-into-epoxy.pc.patch | 45 + .../libepoxy/0006-Make-egl-conditional.patch | 59 + bsp/buildroot/package/libepoxy/Config.in | 12 + bsp/buildroot/package/libepoxy/libepoxy.hash | 2 + .../package/{x11r7 => }/libepoxy/libepoxy.mk | 18 +- .../libevas-generic-loaders.hash | 4 +- .../libevas-generic-loaders.mk | 2 +- bsp/buildroot/package/libevdev/libevdev.hash | 4 +- bsp/buildroot/package/libevdev/libevdev.mk | 2 +- .../0001-fix-missing-config.h.patch | 29 + .../0002-m4-fix-detection-of-atomics.patch | 86 + bsp/buildroot/package/libfastjson/Config.in | 16 + .../package/libfastjson/libfastjson.hash | 2 + .../package/libfastjson/libfastjson.mk | 15 + ...004-m68k-support-ISA-A-Coldfire-CPUs.patch | 77 + bsp/buildroot/package/libfm-extra/Config.in | 2 +- .../package/libfm-extra/libfm-extra.hash | 5 +- .../package/libfm-extra/libfm-extra.mk | 2 +- bsp/buildroot/package/libfm/Config.in | 2 +- bsp/buildroot/package/libfm/libfm.hash | 5 +- bsp/buildroot/package/libfm/libfm.mk | 12 +- .../package/libfreeimage/0004-fix-gcc-6.patch | 31 + bsp/buildroot/package/libfslcodec/Config.in | 13 - .../package/libfslcodec/libfslcodec.hash | 2 - .../package/libfslcodec/libfslcodec.mk | 23 - bsp/buildroot/package/libfslparser/Config.in | 8 - .../package/libfslparser/libfslparser.hash | 2 - .../package/libfslparser/libfslparser.mk | 23 - bsp/buildroot/package/libfslvpuwrap/Config.in | 15 - .../package/libfslvpuwrap/libfslvpuwrap.hash | 2 - .../package/libfslvpuwrap/libfslvpuwrap.mk | 21 - bsp/buildroot/package/libftdi/Config.in | 2 - bsp/buildroot/package/libftdi/libftdi.mk | 1 + bsp/buildroot/package/libftdi1/Config.in | 2 - bsp/buildroot/package/libftdi1/libftdi1.hash | 2 +- bsp/buildroot/package/libftdi1/libftdi1.mk | 2 +- bsp/buildroot/package/libfuse/libfuse.hash | 2 +- bsp/buildroot/package/libfuse/libfuse.mk | 4 +- bsp/buildroot/package/libgcrypt/Config.in | 1 + .../package/libgcrypt/libgcrypt.hash | 6 +- bsp/buildroot/package/libgcrypt/libgcrypt.mk | 7 +- bsp/buildroot/package/libgee/Config.in | 15 + bsp/buildroot/package/libgee/libgee.hash | 2 + bsp/buildroot/package/libgee/libgee.mk | 16 + bsp/buildroot/package/libglib2/Config.in | 3 +- bsp/buildroot/package/libglib2/libglib2.hash | 4 +- bsp/buildroot/package/libglib2/libglib2.mk | 57 +- bsp/buildroot/package/libglu/libglu.hash | 2 + .../0001-avoid-breakage-with-gcc-5.patch | 56 - bsp/buildroot/package/libgpg-error/Config.in | 44 +- .../package/libgpg-error/libgpg-error.hash | 2 +- .../package/libgpg-error/libgpg-error.mk | 22 +- bsp/buildroot/package/libgpgme/Config.in | 1 + bsp/buildroot/package/libgpgme/libgpgme.mk | 4 +- bsp/buildroot/package/libgtk2/libgtk2.hash | 4 +- bsp/buildroot/package/libgtk2/libgtk2.mk | 3 +- ...4-Fix-undefined-reference-to-get_xkb.patch | 33 - ...endency-from-gtk-encode-symbolic-svg.patch | 105 + .../0005-do-not-build-extract-strings.patch | 47 - bsp/buildroot/package/libgtk3/Config.in | 91 +- bsp/buildroot/package/libgtk3/libgtk3.hash | 4 +- bsp/buildroot/package/libgtk3/libgtk3.mk | 37 +- bsp/buildroot/package/libgudev/Config.in | 3 - bsp/buildroot/package/libhid/libhid.hash | 2 + bsp/buildroot/package/libical/Config.in | 1 + bsp/buildroot/package/libical/libical.mk | 2 + bsp/buildroot/package/libidn/libidn.hash | 6 +- bsp/buildroot/package/libidn/libidn.mk | 2 +- ...tection-try-first-the-CMake-module-f.patch | 42 - ...lude-pthread.h-if-NO_THREADS-is-defi.patch | 26 + .../0002-CMake-Link-with-librt-if-found.patch | 30 + ...ix-build-on-unix-systems-without-cpp.patch | 36 - bsp/buildroot/package/libiio/Config.in | 39 +- bsp/buildroot/package/libiio/libiio.hash | 4 +- bsp/buildroot/package/libiio/libiio.mk | 32 +- bsp/buildroot/package/libimxvpuapi/Config.in | 16 + .../package/libimxvpuapi/libimxvpuapi.hash | 2 + .../package/libimxvpuapi/libimxvpuapi.mk | 35 + ...1-rename-log_msg-to-libinput_log_msg.patch | 77 - bsp/buildroot/package/libinput/libinput.hash | 4 +- bsp/buildroot/package/libinput/libinput.mk | 17 +- bsp/buildroot/package/libiqrf/libiqrf.hash | 2 + bsp/buildroot/package/libksba/Config.in | 1 + bsp/buildroot/package/libksba/libksba.hash | 2 +- bsp/buildroot/package/libksba/libksba.mk | 2 +- ...fix-548-Double-free-for-answers-4096.patch | 28 + ...le-free-for-answers-bigger-than-4096.patch | 25 - ...02-whitespace-bug-in-ldns-read-zone.patch} | 30 +- ...rse-output-manpage-generation-issues.patch | 116 + .../0004-Comment-out-debugging-remnants.patch | 31 + ...ge-content-nondeterminicity-warnings.patch | 429 ++++ bsp/buildroot/package/libllcp/libllcp.hash | 2 + .../liblog4c-localtime.hash | 2 + bsp/buildroot/package/liblogging/Config.in | 1 - .../package/libmatroska/libmatroska.hash | 2 +- .../package/libmatroska/libmatroska.mk | 2 +- bsp/buildroot/package/libmbim/libmbim.hash | 2 +- bsp/buildroot/package/libmbim/libmbim.mk | 2 +- .../package/libmemcached/libmemcached.mk | 4 +- bsp/buildroot/package/libmicrohttpd/Config.in | 4 +- .../package/libmicrohttpd/libmicrohttpd.hash | 4 +- .../package/libmicrohttpd/libmicrohttpd.mk | 13 +- bsp/buildroot/package/libminiupnpc/Config.in | 20 + .../package/libminiupnpc/libminiupnpc.hash | 2 + .../package/libminiupnpc/libminiupnpc.mk | 14 + bsp/buildroot/package/libnatpmp/Config.in | 16 + .../package/libnatpmp/libnatpmp.hash | 2 + bsp/buildroot/package/libnatpmp/libnatpmp.mk | 31 + bsp/buildroot/package/libndp/libndp.hash | 2 + bsp/buildroot/package/libnet/Config.in | 2 +- bsp/buildroot/package/libnfs/libnfs.hash | 2 +- bsp/buildroot/package/libnfs/libnfs.mk | 8 +- ...libnftnl_xfree-to-avoid-symbol-namin.patch | 256 ++- bsp/buildroot/package/libnftnl/Config.in | 6 +- bsp/buildroot/package/libnftnl/libnftnl.hash | 4 +- bsp/buildroot/package/libnftnl/libnftnl.mk | 2 +- ...internal-getproto-functions-for-musl.patch | 35 - bsp/buildroot/package/libnspr/libnspr.hash | 4 +- bsp/buildroot/package/libnspr/libnspr.mk | 2 +- bsp/buildroot/package/libnss/libnss.hash | 4 +- bsp/buildroot/package/libnss/libnss.mk | 2 +- .../package/libopenh264/libopenh264.hash | 2 + .../package/libopenh264/libopenh264.mk | 2 +- ...onfigure-also-check-for-clockgettime.patch | 39 + bsp/buildroot/package/liboping/liboping.hash | 2 +- bsp/buildroot/package/liboping/liboping.mk | 5 +- .../libpam-tacplus/libpam-tacplus.hash | 2 + .../package/libphidget/libphidget.hash | 2 + ...compatible-with-musl-fixes-musl-buil.patch | 53 + ...priority-with-sched_priority-fixes-m.patch | 82 + bsp/buildroot/package/libpjsip/Config.in | 14 + bsp/buildroot/package/libpjsip/libpjsip.hash | 5 + bsp/buildroot/package/libpjsip/libpjsip.mk | 50 + .../package/libplatform/libplatform.hash | 2 + .../package/libplatform/libplatform.mk | 2 +- bsp/buildroot/package/libplayer/Config.in | 8 +- ...0001-Disable-pngfix-and-png-fix-itxt.patch | 44 + .../package/libpng/0001-disable-tools.patch | 30 - ...x-to-symbol-names-in-version-script.patch} | 29 +- bsp/buildroot/package/libpng/libpng.hash | 6 +- bsp/buildroot/package/libpng/libpng.mk | 3 +- bsp/buildroot/package/libpqxx/Config.in | 13 + bsp/buildroot/package/libpqxx/libpqxx.hash | 4 + bsp/buildroot/package/libpqxx/libpqxx.mk | 16 + bsp/buildroot/package/libqmi/libqmi.hash | 2 +- bsp/buildroot/package/libqmi/libqmi.mk | 2 +- bsp/buildroot/package/libraw/libraw.hash | 1 + bsp/buildroot/package/libraw/libraw.mk | 3 + bsp/buildroot/package/librsvg/librsvg.hash | 4 +- bsp/buildroot/package/librsvg/librsvg.mk | 2 +- bsp/buildroot/package/librtas/Config.in | 2 +- .../package/librtlsdr/librtlsdr.hash | 2 + .../package/libseccomp/0002-musl.patch | 28 - bsp/buildroot/package/libseccomp/Config.in | 3 +- .../package/libseccomp/libseccomp.hash | 2 + .../package/libseccomp/libseccomp.mk | 2 +- .../package/libsecret/libsecret.hash | 4 +- bsp/buildroot/package/libsecret/libsecret.mk | 2 +- .../libselinux/0003-revert-ln-relative.patch | 24 + bsp/buildroot/package/libselinux/Config.in | 7 +- .../package/libselinux/libselinux.hash | 2 +- .../package/libselinux/libselinux.mk | 6 +- .../0001-execption-lib-path-fix.patch | 14 - ...h => 0001-workaround-blackfin-issue.patch} | 5 +- bsp/buildroot/package/libsemanage/Config.in | 12 +- .../package/libsemanage/libsemanage.hash | 2 +- .../package/libsemanage/libsemanage.mk | 8 +- .../libsepol/0001-support-static-only.patch | 20 +- .../0002-workaround-blackfin-issue.patch | 8 +- .../libsepol/0003-add-stdarg-include.patch | 18 + .../libsepol/0004-revert-ln-relative.patch | 24 + bsp/buildroot/package/libsepol/libsepol.hash | 2 +- bsp/buildroot/package/libsepol/libsepol.mk | 6 +- bsp/buildroot/package/libserial/Config.in | 2 - .../0001-uclinux-detection.patch | 26 + .../package/libserialport/libserialport.mk | 1 + bsp/buildroot/package/libsha1/libsha1.hash | 2 + .../package/libshairplay/libshairplay.hash | 2 + .../package/libshairplay/libshairplay.mk | 2 +- .../0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch | 45 + ...sure-SHOUT_REQUIRES-contains-OpenSSL.patch | 55 + bsp/buildroot/package/libshout/libshout.hash | 5 +- bsp/buildroot/package/libshout/libshout.mk | 12 +- .../package/libsidplay2/0003-gcc6.patch | 44 + bsp/buildroot/package/libsigc/libsigc.hash | 4 +- bsp/buildroot/package/libsigc/libsigc.mk | 4 +- bsp/buildroot/package/libsigsegv/Config.in | 24 +- .../package/libsndfile/libsndfile.hash | 2 +- .../package/libsndfile/libsndfile.mk | 2 +- bsp/buildroot/package/libsoc/libsoc.hash | 4 +- bsp/buildroot/package/libsoc/libsoc.mk | 16 +- .../package/libsodium/libsodium.hash | 2 +- bsp/buildroot/package/libsodium/libsodium.mk | 5 +- bsp/buildroot/package/libsoup/libsoup.hash | 4 +- bsp/buildroot/package/libsoup/libsoup.mk | 6 +- ...tions-to-avoid-conflicts-with-downst.patch | 396 ++++ bsp/buildroot/package/libsrtp/libsrtp.hash | 2 + bsp/buildroot/package/libsrtp/libsrtp.mk | 2 +- bsp/buildroot/package/libssh/Config.in | 1 + bsp/buildroot/package/libssh2/Config.in | 3 +- .../package/libstrophe/libstrophe.hash | 3 + bsp/buildroot/package/libtasn1/libtasn1.hash | 2 +- bsp/buildroot/package/libtasn1/libtasn1.mk | 2 +- bsp/buildroot/package/libtomcrypt/Config.in | 11 + .../package/libtomcrypt/libtomcrypt.hash | 2 + .../package/libtomcrypt/libtomcrypt.mk | 27 + bsp/buildroot/package/libtommath/Config.in | 7 + .../package/libtommath/libtommath.hash | 2 + .../package/libtommath/libtommath.mk | 23 + bsp/buildroot/package/libtool/libtool.mk | 1 + bsp/buildroot/package/libtpl/libtpl.hash | 2 + bsp/buildroot/package/libuci/libuci.mk | 3 +- bsp/buildroot/package/libucl/libucl.hash | 2 + bsp/buildroot/package/libuecc/libuecc.hash | 4 + bsp/buildroot/package/libuecc/libuecc.mk | 5 +- ...0001-configure-remove-po-Makefile.in.patch | 26 + .../libuio/0002-fix-build-with-musl.patch | 57 + bsp/buildroot/package/libuio/Config.in | 9 + bsp/buildroot/package/libuio/libuio.hash | 2 + bsp/buildroot/package/libuio/libuio.mk | 36 + bsp/buildroot/package/libump/Config.in | 2 +- bsp/buildroot/package/libump/libump.hash | 2 + bsp/buildroot/package/libunwind/Config.in | 9 +- bsp/buildroot/package/libupnp/libupnp.hash | 2 +- bsp/buildroot/package/libupnp/libupnp.mk | 2 +- bsp/buildroot/package/libupnpp/Config.in | 3 - bsp/buildroot/package/libupnpp/libupnpp.hash | 4 +- bsp/buildroot/package/libupnpp/libupnpp.mk | 2 +- .../package/libusb-compat/libusb-compat.mk | 1 + bsp/buildroot/package/libusbgx/Config.in | 12 + bsp/buildroot/package/libusbgx/libusbgx.hash | 2 + bsp/buildroot/package/libusbgx/libusbgx.mk | 15 + .../0001-unix-fix-support-for-uClibc-ng.patch | 30 - bsp/buildroot/package/libuv/libuv.hash | 2 +- bsp/buildroot/package/libuv/libuv.mk | 2 +- ...keytable-fix-missing-libintl-linking.patch | 57 - ...-priv.h-Use-off_t-instead-of-__off_t.patch | 111 - ...se-ENABLE_NLS-for-locale-related-cod.patch | 110 - ...ly-expose-jpeg_mem_-protoypes-when-J.patch | 56 - bsp/buildroot/package/libv4l/libv4l.hash | 2 +- bsp/buildroot/package/libv4l/libv4l.mk | 20 +- .../libva-intel-driver.hash | 4 +- .../libva-intel-driver/libva-intel-driver.mk | 2 +- bsp/buildroot/package/libva/libva.hash | 4 +- bsp/buildroot/package/libva/libva.mk | 2 +- .../0001-missing-configh-include.patch | 29 + .../libvdpau/0002-link-with-libx11.patch | 33 + .../0003-vdpau-module-searchpath.patch | 48 + bsp/buildroot/package/libvdpau/Config.in | 17 + bsp/buildroot/package/libvdpau/libvdpau.hash | 4 + bsp/buildroot/package/libvdpau/libvdpau.mk | 28 + ...px_mem.h-Fix-compilation-with-uClibc.patch | 30 + bsp/buildroot/package/libvpx/libvpx.hash | 2 +- bsp/buildroot/package/libvpx/libvpx.mk | 2 +- .../package/libwebsock/libwebsock.hash | 2 + ...ared-library-build-when-BUILD_SHARED.patch | 107 - .../package/libwebsockets/libwebsockets.hash | 2 +- .../package/libwebsockets/libwebsockets.mk | 36 +- .../package/libxkbcommon/libxkbcommon.hash | 5 +- .../package/libxkbcommon/libxkbcommon.mk | 5 +- .../libxml-parser-perl/libxml-parser-perl.mk | 2 +- bsp/buildroot/package/libxml2/libxml2.hash | 2 +- bsp/buildroot/package/libxml2/libxml2.mk | 7 +- .../package/libxmlrpc/0006-narrowing.patch | 20 + .../0001-Make-maxvars-option-work.patch | 30 - bsp/buildroot/package/libxslt/libxslt.hash | 4 +- bsp/buildroot/package/libxslt/libxslt.mk | 5 +- bsp/buildroot/package/lightning/Config.in | 4 +- .../lighttpd/0002-compat-latest-lua.patch | 1398 ------------ bsp/buildroot/package/lighttpd/lighttpd.hash | 2 +- bsp/buildroot/package/lighttpd/lighttpd.mk | 10 +- .../package/linenoise/linenoise.hash | 2 + .../0001-fix-static-build-with-mysql.patch | 47 + ...c-suncalc.cpp-fix-build-with-gcc-6.x.patch | 42 + bsp/buildroot/package/linknx/Config.in | 2 + bsp/buildroot/package/linknx/linknx.mk | 21 +- bsp/buildroot/package/links/links.mk | 3 + bsp/buildroot/package/linphone/Config.in | 6 +- bsp/buildroot/package/linphone/linphone.hash | 4 + bsp/buildroot/package/linphone/linphone.mk | 28 +- .../linux-backports/linux-backports.hash | 4 +- .../linux-backports/linux-backports.mk | 2 +- .../package/linux-firmware/Config.in | 67 +- .../package/linux-firmware/linux-firmware.mk | 46 +- .../package/linux-headers/Config.in.host | 74 +- .../package/linux-pam/0001-configure.patch | 19 - ...le-am.patch => 0001-doc-makefile-am.patch} | 3 + ...lly-compile-per-ruserok-availability.patch | 49 + ...lly-compile-per-innetgr-availability.patch | 84 + .../package/linux-pam/0003-group.patch | 26 - .../package/linux-pam/0004-mkdir.patch | 17 - .../package/linux-pam/0005-succeed.patch | 31 - .../package/linux-pam/0006-time.patch | 26 - .../package/linux-pam/0007-rhosts.patch | 24 - .../linux-pam/0008-fix-CVE-2014-2583.patch | 53 - .../linux-pam/0009-fix-CVE-2013-7041.patch | 50 - bsp/buildroot/package/linux-pam/Config.in | 3 +- .../package/linux-pam/linux-pam.hash | 2 +- bsp/buildroot/package/linux-pam/linux-pam.mk | 20 +- .../{util-linux => linux-pam}/login.pam | 0 ...fig-parse.y-add-missing-time.h-inclu.patch | 43 + ...configure.ac-use-AC_CONFIG_MACRO_DIR.patch | 45 - bsp/buildroot/package/liquid-dsp/Config.in | 5 +- .../package/liquid-dsp/liquid-dsp.hash | 2 +- .../package/liquid-dsp/liquid-dsp.mk | 2 +- ...inking-method-to-avoid-parallel-buil.patch | 46 + ...Make-make_rel_symlink.py-use-python3.patch | 46 - ...d-commandir-unless-we-have-usb.h-191.patch | 54 + ...edefinition-in-static-library-builds.patch | 49 - ...ure-check-for-clock_gettime-in-librt.patch | 54 + bsp/buildroot/package/lirc-tools/Config.in | 5 +- .../package/lirc-tools/lirc-tools.hash | 5 +- .../package/lirc-tools/lirc-tools.mk | 26 +- bsp/buildroot/package/live555/live555.hash | 4 +- bsp/buildroot/package/live555/live555.mk | 2 +- .../package/ljsyscall/ljsyscall.hash | 2 + bsp/buildroot/package/lksctp-tools/Config.in | 17 + .../package/lksctp-tools/lksctp-tools.hash | 3 + .../package/lksctp-tools/lksctp-tools.mk | 22 + ...ation-of-atom-glue-compatible-with-o.patch | 43 + ...02-configure-do-not-check-for-libbsd.patch | 61 + bsp/buildroot/package/lldpd/S60lldpd | 25 + bsp/buildroot/package/lldpd/lldpd.hash | 2 +- bsp/buildroot/package/lldpd/lldpd.mk | 17 +- .../log4cpp/0001-Fix-musl-compile.patch | 34 + bsp/buildroot/package/log4cpp/Config.in | 14 + bsp/buildroot/package/log4cpp/log4cpp.hash | 3 + bsp/buildroot/package/log4cpp/log4cpp.mk | 33 + ...conf-checks-for-strndup-and-asprintf.patch | 61 + .../package/logrotate/logrotate.hash | 3 +- bsp/buildroot/package/logrotate/logrotate.mk | 5 +- .../package/lpc3250loader/lpc3250loader.hash | 2 + ...kefile-allow-to-pass-additional-LIBS.patch | 44 + .../package/lshw/0001-add-LIBS.patch | 30 - ...x-musl-build-basename-is-in-libgen.h.patch | 78 + .../lshw/0003-Fix-use-of-LONG_BIT.patch | 36 + bsp/buildroot/package/lshw/lshw.hash | 5 +- bsp/buildroot/package/lshw/lshw.mk | 6 +- bsp/buildroot/package/lsof/Config.in | 1 + .../0001-fix-build-on-uClibc-exp10.patch | 22 - .../ltp-testsuite/0001-fix-uClibc-build.patch | 51 + .../0003-disable-profil-on-uClibc.patch | 27 + .../0004-disable-ustat-on-uClibc.patch | 70 + .../ltp-testsuite/0005-rpc-fix-uClibc.patch | 125 ++ .../package/ltp-testsuite/ltp-testsuite.hash | 8 +- .../package/ltp-testsuite/ltp-testsuite.mk | 25 +- bsp/buildroot/package/ltrace/Config.in | 2 +- bsp/buildroot/package/ltris/ltris.mk | 14 +- ...id-support-detection-on-static-build.patch | 63 + .../lttng-babeltrace/lttng-babeltrace.mk | 7 +- .../package/lttng-libust/lttng-libust.hash | 4 + .../package/lttng-libust/lttng-libust.mk | 4 + ...ilure-when-__GLIBC_PREREQ-is-missing.patch | 55 + ...2-Fix-add-missing-sys-types.h-header.patch | 29 + .../package/lttng-tools/lttng-tools.mk | 2 + bsp/buildroot/package/lua-ev/lua-ev.hash | 2 + .../lua-messagepack/lua-messagepack.hash | 4 +- .../lua-messagepack/lua-messagepack.mk | 2 +- .../lua-msgpack-native.hash | 2 + .../lua/{5.3.2 => 5.3.3}/0001-root-path.patch | 0 .../0002-shared-libs-for-lua.patch | 0 .../lua/{5.3.2 => 5.3.3}/0004-lua-pc.patch | 4 +- .../lua/{5.3.2 => 5.3.3}/0011-linenoise.patch | 0 .../lua/5.3.3/0012-fix-loop-parser.patch | 31 + bsp/buildroot/package/lua/lua.hash | 4 +- bsp/buildroot/package/lua/lua.mk | 5 +- .../package/luaexpatutils/luaexpatutils.hash | 2 + bsp/buildroot/package/luajit/Config.in | 3 +- bsp/buildroot/package/luajit/luajit.mk | 7 +- ...-glibc-_POSIX_PRIORITY_SCHEDULING-bu.patch | 59 - bsp/buildroot/package/luaposix/Config.in | 12 +- bsp/buildroot/package/luaposix/luaposix.hash | 2 + bsp/buildroot/package/luaposix/luaposix.mk | 6 +- bsp/buildroot/package/luarocks/luarocks.mk | 3 +- bsp/buildroot/package/luv/luv.hash | 2 +- bsp/buildroot/package/luv/luv.mk | 2 +- bsp/buildroot/package/luvi/luvi.hash | 2 +- bsp/buildroot/package/luvi/luvi.mk | 2 +- bsp/buildroot/package/lvm2/lvm2.hash | 2 +- bsp/buildroot/package/lvm2/lvm2.mk | 4 +- ...-Fix-redefinition-of-struct-in6_addr.patch | 43 + bsp/buildroot/package/lxc/Config.in | 5 +- bsp/buildroot/package/lz4/lz4.hash | 2 + bsp/buildroot/package/lz4/lz4.mk | 19 +- bsp/buildroot/package/lzlib/Config.in | 4 +- bsp/buildroot/package/lzlib/lzlib.hash | 2 +- bsp/buildroot/package/lzlib/lzlib.mk | 8 +- .../package/lzop/0001-build-with-gcc6.patch | 37 + bsp/buildroot/package/lzop/lzop.mk | 1 + ...0001-Fix-missing-include-for-caddr_t.patch | 35 + .../package/macchanger/macchanger.hash | 2 +- .../package/macchanger/macchanger.mk | 6 +- bsp/buildroot/package/make/make.hash | 4 +- bsp/buildroot/package/make/make.mk | 2 +- bsp/buildroot/package/makedevs/makedevs.c | 72 +- bsp/buildroot/package/makedevs/makedevs.mk | 18 +- bsp/buildroot/package/mali-t76x/Config.in | 28 + bsp/buildroot/package/mali-t76x/egl.pc | 11 + bsp/buildroot/package/mali-t76x/glesv2.pc | 11 + .../package/mali-t76x/mali-t76x.hash | 2 + bsp/buildroot/package/mali-t76x/mali-t76x.mk | 27 + bsp/buildroot/package/mbedtls/mbedtls.mk | 3 + bsp/buildroot/package/mc/mc.hash | 4 +- bsp/buildroot/package/mc/mc.mk | 2 +- .../mediastreamer/0001-misc-fixes.patch | 156 -- .../package/mediastreamer/mediastreamer.hash | 4 +- .../package/mediastreamer/mediastreamer.mk | 2 +- .../package/memcached/memcached.hash | 6 +- bsp/buildroot/package/memcached/memcached.mk | 2 +- .../package/menu-cache/menu-cache.hash | 5 +- .../package/menu-cache/menu-cache.mk | 2 +- .../package/mesa3d-headers/mesa3d-headers.mk | 2 +- .../0002-Fix-runtime-error-with-uClibc.patch | 4 +- bsp/buildroot/package/mesa3d/Config.in | 27 +- bsp/buildroot/package/mesa3d/mesa3d.hash | 4 +- bsp/buildroot/package/mesa3d/mesa3d.mk | 32 +- .../midori/0001-disable-libnotify.patch | 43 - .../package/midori/0001-fix-bug-1492932.patch | 44 + .../midori/0002-gcr-for-x11-only.patch | 32 + .../package/midori/0002-new-vala.patch | 26 - bsp/buildroot/package/midori/Config.in | 38 +- bsp/buildroot/package/midori/midori.hash | 2 +- bsp/buildroot/package/midori/midori.mk | 32 +- bsp/buildroot/package/minidlna/Config.in | 10 +- bsp/buildroot/package/minidlna/minidlna.mk | 9 - bsp/buildroot/package/minissdpd/Config.in | 9 + bsp/buildroot/package/minissdpd/S50minissdpd | 47 + .../package/minissdpd/minissdpd.hash | 2 + bsp/buildroot/package/minissdpd/minissdpd.mk | 40 + .../package/minissdpd/minissdpd.service | 12 + bsp/buildroot/package/minizip/minizip.hash | 2 +- bsp/buildroot/package/minizip/minizip.mk | 2 +- .../package/miraclecast/miraclecast.hash | 2 +- .../package/miraclecast/miraclecast.mk | 2 +- .../package/mjpg-streamer/mjpg-streamer.mk | 7 +- bsp/buildroot/package/mke2img/mke2img.mk | 1 - bsp/buildroot/package/mkpasswd/mkpasswd.mk | 3 - bsp/buildroot/package/mkpimage/mkpimage.c | 287 +++ bsp/buildroot/package/mkpimage/mkpimage.mk | 21 + bsp/buildroot/package/moarvm/Config.in | 7 +- bsp/buildroot/package/moarvm/moarvm.hash | 2 +- bsp/buildroot/package/moarvm/moarvm.mk | 5 +- .../package/modem-manager/modem-manager.hash | 2 +- .../package/modem-manager/modem-manager.mk | 2 +- bsp/buildroot/package/mongodb/Config.in | 2 +- bsp/buildroot/package/mongodb/mongodb.hash | 2 +- bsp/buildroot/package/mongodb/mongodb.mk | 2 +- bsp/buildroot/package/mongrel2/Config.in | 2 +- bsp/buildroot/package/monit/monit.hash | 4 +- bsp/buildroot/package/monit/monit.mk | 2 +- ...checking-for-locale_charset-function.patch | 28 - ...ixing-wrong-MonoPosixHelper-location.patch | 28 - ...ix-musl-incorrect-sigcontext-include.patch | 44 + bsp/buildroot/package/mono/Config.in | 2 +- bsp/buildroot/package/mono/mono.hash | 2 +- bsp/buildroot/package/mono/mono.mk | 2 +- bsp/buildroot/package/monolite/monolite.hash | 2 +- bsp/buildroot/package/monolite/monolite.mk | 4 +- bsp/buildroot/package/mosh/Config.in | 5 +- bsp/buildroot/package/mosquitto/Config.in | 3 - .../package/mosquitto/mosquitto.hash | 4 +- bsp/buildroot/package/mosquitto/mosquitto.mk | 2 +- bsp/buildroot/package/mpc/mpc.mk | 1 + ...ure.ac-check-if-libatomic-is-needed.patch} | 0 ...-notify-Don-t-use-constexpr-on-Haiku.patch | 28 - ...notify-use-constexpr-only-with-glibc.patch | 31 - ...e-include-stdio.h-for-prctl-as-well.patch} | 0 ...ex-Cond-use-constexpr-only-with-glib.patch | 97 - bsp/buildroot/package/mpd/Config.in | 12 +- bsp/buildroot/package/mpd/mpd.hash | 2 +- bsp/buildroot/package/mpd/mpd.mk | 9 +- bsp/buildroot/package/mpfr/mpfr.hash | 2 +- bsp/buildroot/package/mpfr/mpfr.mk | 3 +- bsp/buildroot/package/mpg123/mpg123.hash | 5 +- bsp/buildroot/package/mpg123/mpg123.mk | 2 +- .../mplayer/0003-configure-armv8.patch | 43 + .../package/mplayer/0004-configure-zlib.patch | 30 + .../package/mplayer/0005-tremor-ogg.patch | 29 + bsp/buildroot/package/mplayer/Config.in | 4 +- bsp/buildroot/package/mplayer/mplayer.hash | 8 +- bsp/buildroot/package/mplayer/mplayer.mk | 89 +- ...don-t-check-for-fork-on-POSIX-checks.patch | 31 + ...0002-wscript-improve-stdatomic-check.patch | 47 + bsp/buildroot/package/mpv/Config.in | 21 + bsp/buildroot/package/mpv/mpv.hash | 3 + bsp/buildroot/package/mpv/mpv.mk | 262 +++ bsp/buildroot/package/mraa/mraa.hash | 2 + bsp/buildroot/package/mrouted/mrouted.hash | 2 + bsp/buildroot/package/msmtp/msmtp.hash | 6 +- bsp/buildroot/package/msmtp/msmtp.mk | 2 +- bsp/buildroot/package/msr-tools/Config.in | 14 + .../package/msr-tools/msr-tools.hash | 2 + bsp/buildroot/package/msr-tools/msr-tools.mk | 21 + ...e-Always-return-error-code-at-least-.patch | 64 + ...-execinfo.h-when-INTEGCK_DEBUG-is-en.patch | 62 + ...ty-don-t-include-header-bits-stdio_l.patch | 45 + bsp/buildroot/package/mtd/Config.in | 6 + bsp/buildroot/package/mtd/mtd.mk | 15 + .../package/mtdev2tuio/mtdev2tuio.hash | 2 + bsp/buildroot/package/mtools/mtools.mk | 12 +- bsp/buildroot/package/mtr/Config.in | 1 + bsp/buildroot/package/mtr/mtr.hash | 2 + bsp/buildroot/package/mtr/mtr.mk | 12 +- .../multicat/0001-Fix-missing-pthread.patch | 20 + .../multicat/0002-Fix-musl-build.patch | 47 + ...Fix-have-clock-nanosleep-with-uclibc.patch | 24 + bsp/buildroot/package/multicat/Config.in | 11 + bsp/buildroot/package/multicat/multicat.hash | 4 + bsp/buildroot/package/multicat/multicat.mk | 25 + .../package/musl-compat-headers/Config.in | 2 + .../package/musl-compat-headers/cdefs.h | 51 + .../musl-compat-headers.hash} | 0 .../musl-compat-headers.mk | 34 + ...ssion-in-tcsetattr-on-all-mips-archs.patch | 67 + bsp/buildroot/package/musl/Config.in | 4 +- bsp/buildroot/package/musl/musl.hash | 2 +- bsp/buildroot/package/musl/musl.mk | 18 +- bsp/buildroot/package/mutt/mutt.hash | 2 +- bsp/buildroot/package/mutt/mutt.mk | 2 +- bsp/buildroot/package/mxsldr/Config.in.host | 9 + bsp/buildroot/package/mxsldr/mxsldr.mk | 21 + bsp/buildroot/package/nano/nano.hash | 2 +- bsp/buildroot/package/nano/nano.mk | 6 +- bsp/buildroot/package/nasm/nasm.hash | 2 +- bsp/buildroot/package/nasm/nasm.mk | 2 +- bsp/buildroot/package/ncdu/Config.in | 1 + bsp/buildroot/package/ncdu/ncdu.hash | 6 +- bsp/buildroot/package/ncdu/ncdu.mk | 2 +- bsp/buildroot/package/ncftp/Config.in | 14 +- .../ncurses/0003-recognise-uclinux.patch | 30 + bsp/buildroot/package/ncurses/ncurses.mk | 82 +- bsp/buildroot/package/ne10/ne10.hash | 2 + bsp/buildroot/package/neardal/neardal.hash | 2 + bsp/buildroot/package/neon/neon.mk | 2 +- ...-fix-static-linking-issue-with-lintl.patch | 79 + bsp/buildroot/package/net-tools/Config.in | 1 + bsp/buildroot/package/net-tools/net-tools.mk | 7 +- bsp/buildroot/package/netatalk/Config.in | 1 + bsp/buildroot/package/netbsd-queue/Config.in | 2 - .../package/netbsd-queue/netbsd-queue.mk | 24 - .../package/netcat-openbsd/Config.in | 5 +- bsp/buildroot/package/netcat/Config.in | 1 + .../0002-add-missing-time-include.patch | 20 + .../netplug/0003-remove-assert-fail.patch | 51 + bsp/buildroot/package/netsniff-ng/Config.in | 2 +- .../package/netsniff-ng/netsniff-ng.hash | 2 +- .../package/netsniff-ng/netsniff-ng.mk | 2 +- bsp/buildroot/package/netsnmp/S59snmpd | 116 +- bsp/buildroot/package/netsnmp/netsnmp.mk | 5 + .../nettle/0002-fix-CVE-2016-6489.patch | 181 ++ bsp/buildroot/package/nettle/nettle.mk | 4 +- .../0002-accept-auto-mode-interfaces.patch | 26 + .../package/network-manager/Config.in | 8 +- .../network-manager/network-manager.hash | 4 +- .../network-manager/network-manager.mk | 2 +- bsp/buildroot/package/nfs-utils/Config.in | 4 - bsp/buildroot/package/nfs-utils/S60nfs | 62 +- bsp/buildroot/package/nftables/Config.in | 6 +- bsp/buildroot/package/nftables/nftables.hash | 4 +- bsp/buildroot/package/nftables/nftables.mk | 2 +- bsp/buildroot/package/nginx-naxsi/Config.in | 26 + .../package/nginx-naxsi/nginx-naxsi.hash | 2 + .../package/nginx-naxsi/nginx-naxsi.mk | 12 + bsp/buildroot/package/nginx-upload/Config.in | 9 + .../package/nginx-upload/nginx-upload.hash | 2 + .../package/nginx-upload/nginx-upload.mk | 13 + ...-rework-autotest-to-be-cross-compila.patch | 13 +- ...-mechanism-allowing-to-force-feature.patch | 2 +- ...ture_run_force_result-for-each-featu.patch | 2 +- ...-conf-allow-to-override-ngx_feature_.patch | 42 - ...auto-lib-libxslt-conf-use-pkg-config.patch | 31 + ...ake-sys_nerr-guessing-cross-friendly.patch | 2 +- ...auto-lib-openssl-conf-use-pkg-config.patch | 31 + ...7-auto-lib-libgd-conf-use-pkg-config.patch | 31 + ...linux_config.h-only-include-dlfcn.h-.patch | 33 + bsp/buildroot/package/nginx/Config.in | 63 +- bsp/buildroot/package/nginx/nginx.hash | 2 +- bsp/buildroot/package/nginx/nginx.mk | 64 +- bsp/buildroot/package/nginx/nginx.service | 3 +- bsp/buildroot/package/ninja/ninja.hash | 2 + bsp/buildroot/package/ninja/ninja.mk | 22 + bsp/buildroot/package/nload/Config.in | 16 + bsp/buildroot/package/nload/nload.hash | 3 + bsp/buildroot/package/nload/nload.mk | 13 + bsp/buildroot/package/nmap/nmap.hash | 4 +- bsp/buildroot/package/nmap/nmap.mk | 2 +- .../0.10.42/0003-use-python-variable.patch | 43 - .../0001-remove-python-bz2-dependency.patch | 0 ...02-gyp-force-link-command-to-use-CXX.patch | 0 .../0003-fix-musl-USE-MISC-build-issue.patch} | 0 .../0004-Fix-support-for-uClibc-ng.patch} | 0 ...move-dependency-on-Python-bz2-module.patch | 31 - ...ariable-instead-of-hardcoding-Python.patch | 112 - .../5.5.0/0004-Fix-va_list-not-declared.patch | 39 - .../0005-Fix-support-for-uClibc-ng.patch | 33 - ...1-gyp-force-link-command-to-use-CXX.patch} | 0 bsp/buildroot/package/nodejs/Config.in | 8 +- bsp/buildroot/package/nodejs/nodejs.hash | 8 +- bsp/buildroot/package/nodejs/nodejs.mk | 50 +- bsp/buildroot/package/nodm/Config.in | 26 + bsp/buildroot/package/nodm/S90nodm | 49 + bsp/buildroot/package/nodm/nodm.hash | 2 + bsp/buildroot/package/nodm/nodm.mk | 34 + bsp/buildroot/package/nodm/nodm.pam | 14 + .../norm/0001-fix-bigendian-build.patch | 17 + ...02-protolib-drop-linux-version-check.patch | 38 + ...move-kernel-headers-include-musl-fix.patch | 55 + bsp/buildroot/package/norm/Config.in | 15 + bsp/buildroot/package/norm/norm.hash | 2 + bsp/buildroot/package/norm/norm.mk | 46 + bsp/buildroot/package/nss-mdns/Config.in | 2 +- bsp/buildroot/package/nss-pam-ldapd/Config.in | 2 +- ...use-util-include-paths.h-when-needed.patch | 43 + bsp/buildroot/package/ntfs-3g/Config.in | 1 + bsp/buildroot/package/ntfs-3g/ntfs-3g.hash | 2 +- bsp/buildroot/package/ntfs-3g/ntfs-3g.mk | 2 +- bsp/buildroot/package/ntp/Config.in | 6 + bsp/buildroot/package/ntp/ntp.hash | 6 +- bsp/buildroot/package/ntp/ntp.mk | 9 +- bsp/buildroot/package/nvidia-driver/Config.in | 2 +- .../package/nvidia-driver/nvidia-driver.mk | 2 +- .../package/nvidia-tegra23/Config.in | 2 +- bsp/buildroot/package/nvme/Config.in | 7 + bsp/buildroot/package/nvme/nvme.hash | 2 + bsp/buildroot/package/nvme/nvme.mk | 32 + bsp/buildroot/package/odhcp6c/odhcp6c.hash | 2 +- bsp/buildroot/package/odhcp6c/odhcp6c.mk | 2 +- bsp/buildroot/package/odroid-mali/Config.in | 25 + .../package/odroid-mali/odroid-mali.hash | 2 + .../package/odroid-mali/odroid-mali.mk | 36 + .../package/odroid-scripts/Config.in | 9 + .../package/odroid-scripts/S50odroidc2_fb | 20 + .../odroid-scripts/odroid-scripts.hash | 2 + .../package/odroid-scripts/odroid-scripts.mk | 36 + bsp/buildroot/package/ofono/Config.in | 2 - bsp/buildroot/package/ola/Config.in | 15 +- .../omap-u-boot-utils/omap-u-boot-utils.hash | 2 + .../0001-fix-unistd-sys-time-includes.patch | 61 + .../omniorb/0001-uclinux-is-also-linux.patch | 19 - bsp/buildroot/package/omniorb/omniorb.hash | 6 +- bsp/buildroot/package/omniorb/omniorb.mk | 5 +- .../0001-Makefiles-clean-up-the-cruft.patch | 67 + bsp/buildroot/package/omxplayer/Config.in | 33 + .../package/omxplayer/omxplayer.hash | 3 + bsp/buildroot/package/omxplayer/omxplayer.mk | 46 + bsp/buildroot/package/on2-8170-libs/Config.in | 2 +- .../package/on2-8170-libs/on2-8170-libs.hash | 2 + .../on2-8170-modules/on2-8170-modules.hash | 2 + .../open-plc-utils/open-plc-utils.hash | 2 + .../package/open-plc-utils/open-plc-utils.mk | 2 +- bsp/buildroot/package/open2300/open2300.mk | 4 + ...01-Complete-support-for-MIPS-n32-ABI.patch | 116 + ...0002-Makefile.arm-remove-march-flags.patch | 73 + bsp/buildroot/package/openblas/Config.in | 75 + bsp/buildroot/package/openblas/openblas.hash | 2 + bsp/buildroot/package/openblas/openblas.mk | 69 + .../package/opencv/0001-atomic.patch | 229 ++ ...01-core-fix-x86-PIC-code-compilation.patch | 49 - .../package/opencv/0002-avoid-sysctl_h.patch | 31 + ...turn-type-value-VideoFrameSource_GPU.patch | 40 - ...kgconfig.cmake-rework-opencv.pc-gene.patch | 156 -- bsp/buildroot/package/opencv/Config.in | 70 +- bsp/buildroot/package/opencv/opencv.hash | 2 + bsp/buildroot/package/opencv/opencv.mk | 2 +- ...ad-based-parallel_for-with-gcc-4.4.3.patch | 62 - ...ix-support-for-pthreads-parallel_for.patch | 212 -- bsp/buildroot/package/opencv3/Config.in | 8 +- bsp/buildroot/package/opencv3/opencv3.hash | 2 + bsp/buildroot/package/opencv3/opencv3.mk | 11 +- bsp/buildroot/package/openipmi/Config.in | 6 +- bsp/buildroot/package/openjpeg/openjpeg.hash | 2 +- bsp/buildroot/package/openjpeg/openjpeg.mk | 34 +- bsp/buildroot/package/openldap/openldap.hash | 8 +- bsp/buildroot/package/openldap/openldap.mk | 2 +- bsp/buildroot/package/openmpi/Config.in | 20 + .../openmpi/openmpi-mips32-fortran.cache | 51 + .../openmpi/openmpi-mips64-fortran.cache | 60 + bsp/buildroot/package/openmpi/openmpi.hash | 3 + bsp/buildroot/package/openmpi/openmpi.mk | 41 + bsp/buildroot/package/openntpd/openntpd.hash | 4 +- bsp/buildroot/package/openntpd/openntpd.mk | 4 +- ...includes-to-fix-build-with-musl-libc.patch | 55 + bsp/buildroot/package/openpgm/Config.in | 6 +- ...-stack-libraries-to-lib-subdirectory.patch | 47 +- ...002-cmake-install-oplk-headers-files.patch | 14 +- ...> 0003-Add-top-level-CMakeLists.txt.patch} | 57 +- ...AKE_CURRENT_SOURCE_DIR-instead-of-CM.patch | 154 -- ...T_NAME-instead-of-CMAKE_PROJECT_NAME.patch | 125 -- bsp/buildroot/package/openpowerlink/Config.in | 16 + .../package/openpowerlink/openpowerlink.hash | 8 +- .../package/openpowerlink/openpowerlink.mk | 33 +- bsp/buildroot/package/openssh/openssh.hash | 4 +- bsp/buildroot/package/openssh/openssh.mk | 9 +- bsp/buildroot/package/openssl/openssl.hash | 4 +- bsp/buildroot/package/openssl/openssl.mk | 18 +- bsp/buildroot/package/openswan/Config.in | 6 +- bsp/buildroot/package/openswan/openswan.mk | 4 +- .../opentyrian-data/opentyrian-data.hash | 2 + bsp/buildroot/package/openvmtools/Config.in | 4 +- .../package/openvmtools/openvmtools.hash | 2 + bsp/buildroot/package/openvpn/Config.in | 21 +- bsp/buildroot/package/openvpn/openvpn.hash | 2 +- bsp/buildroot/package/openvpn/openvpn.mk | 15 +- ...rning-on-wcsdup-implicit-declaration.patch | 29 + ...2-Ensure-correct-git-repository-path.patch | 29 + bsp/buildroot/package/openzwave/Config.in | 17 + .../package/openzwave/openzwave.hash | 2 + bsp/buildroot/package/openzwave/openzwave.mk | 51 + bsp/buildroot/package/opkg/Config.in | 1 + bsp/buildroot/package/opkg/opkg.mk | 2 +- bsp/buildroot/package/oprofile/Config.in | 15 +- bsp/buildroot/package/opus/opus.mk | 7 +- bsp/buildroot/package/opusfile/opusfile.hash | 2 +- bsp/buildroot/package/opusfile/opusfile.mk | 2 +- bsp/buildroot/package/orc/orc.hash | 4 +- bsp/buildroot/package/orc/orc.mk | 2 +- bsp/buildroot/package/ortp/ortp.hash | 4 +- bsp/buildroot/package/ortp/ortp.mk | 6 +- ...1-configure.ac-check-for-localtime_r.patch | 33 + ...nly-include-compat_netdb.h-if-needed.patch | 58 + bsp/buildroot/package/owfs/Config.in | 16 + bsp/buildroot/package/owfs/S25owserver | 31 + bsp/buildroot/package/owfs/S30owfs | 33 + bsp/buildroot/package/owfs/owfs.hash | 4 + bsp/buildroot/package/owfs/owfs.mk | 84 + .../package/owl-linux/owl-linux.hash | 2 + bsp/buildroot/package/p7zip/0001-bfin.patch | 19 + bsp/buildroot/package/p7zip/Config.in | 15 + bsp/buildroot/package/p7zip/p7zip.hash | 3 + bsp/buildroot/package/p7zip/p7zip.mk | 27 + bsp/buildroot/package/pango/pango.hash | 4 +- bsp/buildroot/package/pango/pango.mk | 2 +- bsp/buildroot/package/pangomm/pangomm.hash | 4 +- bsp/buildroot/package/pangomm/pangomm.mk | 4 +- bsp/buildroot/package/patch/Config.in | 2 + bsp/buildroot/package/pax-utils/pax-utils.mk | 36 +- bsp/buildroot/package/pciutils/pciutils.hash | 2 +- bsp/buildroot/package/pciutils/pciutils.mk | 2 +- bsp/buildroot/package/pcmanfm/Config.in | 7 +- bsp/buildroot/package/pcmanfm/pcmanfm.hash | 5 +- bsp/buildroot/package/pcmanfm/pcmanfm.mk | 12 +- ...tch => 0001-Kill-compatibility-bits.patch} | 24 +- ....patch => 0002-Disable-C-unit-tests.patch} | 25 +- bsp/buildroot/package/pcre/pcre.hash | 2 +- bsp/buildroot/package/pcre/pcre.mk | 5 +- .../package/pcsc-lite/pcsc-lite.hash | 2 + bsp/buildroot/package/pdbg/Config.in | 10 + bsp/buildroot/package/pdbg/pdbg.hash | 2 + bsp/buildroot/package/pdbg/pdbg.mk | 13 + .../package/perl-datetime-tiny/Config.in | 4 +- .../perl-datetime-tiny.hash | 4 +- .../perl-datetime-tiny/perl-datetime-tiny.mk | 4 +- .../package/perl-html-parser/Config.in | 5 +- .../perl-html-parser/perl-html-parser.hash | 4 +- .../perl-html-parser/perl-html-parser.mk | 2 +- .../perl-module-build/perl-module-build.hash | 4 +- .../perl-module-build/perl-module-build.mk | 2 +- .../package/perl-mojolicious/Config.in | 2 +- .../perl-mojolicious/perl-mojolicious.hash | 4 +- .../perl-mojolicious/perl-mojolicious.mk | 2 +- bsp/buildroot/package/perl-try-tiny/Config.in | 2 +- .../package/perl-try-tiny/perl-try-tiny.hash | 4 +- .../package/perl-try-tiny/perl-try-tiny.mk | 6 +- .../package/perl-xml-libxml/Config.in | 3 +- .../perl-xml-libxml/perl-xml-libxml.hash | 4 +- .../perl-xml-libxml/perl-xml-libxml.mk | 4 +- bsp/buildroot/package/perl/perl.hash | 8 +- bsp/buildroot/package/perl/perl.mk | 13 +- .../phidgetwebservice/phidgetwebservice.hash | 2 + .../package/php-geoip/php-geoip.hash | 2 +- bsp/buildroot/package/php-geoip/php-geoip.mk | 8 +- bsp/buildroot/package/php-gnupg/Config.in | 1 + .../package/php-gnupg/php-gnupg.hash | 2 +- bsp/buildroot/package/php-gnupg/php-gnupg.mk | 5 +- .../package/php-imagick/php-imagick.hash | 2 +- .../package/php-imagick/php-imagick.mk | 5 +- .../package/php-memcached/php-memcached.hash | 2 +- .../package/php-memcached/php-memcached.mk | 6 +- bsp/buildroot/package/php-ssh2/Config.in | 4 +- bsp/buildroot/package/php-ssh2/php-ssh2.hash | 2 +- bsp/buildroot/package/php-ssh2/php-ssh2.mk | 6 +- bsp/buildroot/package/php-yaml/php-yaml.hash | 2 +- bsp/buildroot/package/php-yaml/php-yaml.mk | 5 +- bsp/buildroot/package/php-zmq/php-zmq.hash | 2 +- bsp/buildroot/package/php-zmq/php-zmq.mk | 5 +- ...-acinclude.m4-don-t-unset-variables.patch} | 22 +- ...=> 0002-iconv-tweak-iconv-detection.patch} | 30 +- ...003-configure-disable-the-phar-tool.patch} | 22 +- ...hanism-is-obviously-linux-so-force-.patch} | 22 +- .../php/0005-ac-cache-strcasestr.patch | 24 - ...fig.m4-allow-cache-answer-for-strcas.patch | 35 + ...atch => 0006-Fix-php-fpm.service.in.patch} | 4 +- ...close-phpdbg_load_module_or_extensio.patch | 47 + bsp/buildroot/package/php/Config.ext | 10 - bsp/buildroot/package/php/Config.in | 4 +- bsp/buildroot/package/php/php.hash | 2 +- bsp/buildroot/package/php/php.mk | 11 +- bsp/buildroot/package/pifmrds/pifmrds.hash | 2 + bsp/buildroot/package/pinentry/Config.in | 4 + bsp/buildroot/package/pinentry/pinentry.mk | 7 + bsp/buildroot/package/pixman/pixman.mk | 23 +- bsp/buildroot/package/pkg-autotools.mk | 17 +- bsp/buildroot/package/pkg-cmake.mk | 22 +- bsp/buildroot/package/pkg-download.mk | 4 +- bsp/buildroot/package/pkg-generic.mk | 113 +- bsp/buildroot/package/pkg-kconfig.mk | 53 +- bsp/buildroot/package/pkg-python.mk | 17 +- bsp/buildroot/package/pkg-rebar.mk | 16 +- bsp/buildroot/package/pkg-utils.mk | 37 + bsp/buildroot/package/pkg-virtual.mk | 19 +- .../0002-fix-m68k-double-conv-detect.patch | 19 + ...002-poco-don-t-build-debug-libraries.patch | 33 - ...ting-declaration-with-unbundled-pcre.patch | 56 - .../poco/0004-fix-unbundled-pcre-usage.patch | 72 - ...005-add-missing-LIBPREFIX-definition.patch | 29 - bsp/buildroot/package/poco/poco.hash | 3 + bsp/buildroot/package/poco/poco.mk | 22 +- bsp/buildroot/package/poppler/Config.in | 4 + bsp/buildroot/package/poppler/poppler.mk | 5 +- ...ompiler-output-with-their-default-ou.patch | 56 - .../package/postgresql/postgresql.hash | 4 +- .../package/postgresql/postgresql.mk | 5 +- bsp/buildroot/package/pound/Config.in | 18 + bsp/buildroot/package/pound/pound.hash | 2 + bsp/buildroot/package/pound/pound.mk | 24 + bsp/buildroot/package/powerpc-utils/Config.in | 5 +- .../package/powerpc-utils/powerpc-utils.hash | 5 +- .../package/powerpc-utils/powerpc-utils.mk | 9 +- bsp/buildroot/package/pppd/Config.in | 5 +- .../package/pps-tools/pps-tools.hash | 2 + bsp/buildroot/package/prboom/Config.in | 4 +- bsp/buildroot/package/privoxy/Config.in | 12 + bsp/buildroot/package/privoxy/privoxy.hash | 3 + bsp/buildroot/package/privoxy/privoxy.mk | 16 + ...-include-dlfcn.h-only-when-necessary.patch | 32 + bsp/buildroot/package/procps-ng/Config.in | 1 + bsp/buildroot/package/procps-ng/procps-ng.mk | 12 +- .../package/procrank_linux/Config.in | 7 + .../procrank_linux/procrank_linux.hash | 2 + .../package/procrank_linux/procrank_linux.mk | 21 + bsp/buildroot/package/proftpd/proftpd.hash | 6 +- bsp/buildroot/package/proftpd/proftpd.mk | 2 +- ...ROTOBUF_ATOMICOPS_ERROR-syntax-error.patch | 61 + ...gure.ac-check-if-libatomic-is-needed.patch | 34 + bsp/buildroot/package/protobuf/Config.in | 22 +- bsp/buildroot/package/psmisc/Config.in | 1 + bsp/buildroot/package/psplash/psplash.mk | 4 +- ...-is-only-required-for-WebRTC-support.patch | 41 + .../package/pulseaudio/pulseaudio.hash | 6 +- .../package/pulseaudio/pulseaudio.mk | 30 +- ...for-explicit-linking-against-libatom.patch | 117 + bsp/buildroot/package/pulseview/Config.in | 2 - bsp/buildroot/package/pure-ftpd/pure-ftpd.mk | 2 +- .../putty/0001-uxcons-Fix-on-musl-libc.patch | 29 + ...x-__uint128_t-compile-error-on-MinGW.patch | 30 + bsp/buildroot/package/putty/Config.in | 9 + bsp/buildroot/package/putty/putty.hash | 3 + bsp/buildroot/package/putty/putty.mk | 22 + .../pv/0001-add-lstat64-to-64-emulation.patch | 22 - bsp/buildroot/package/pv/pv.hash | 2 +- bsp/buildroot/package/pv/pv.mk | 2 +- bsp/buildroot/package/python-argh/Config.in | 6 + .../package/python-argh/python-argh.hash | 4 + .../package/python-argh/python-argh.mk | 14 + .../package/python-autobahn/Config.in | 9 + .../python-autobahn/python-autobahn.hash | 3 + .../python-autobahn/python-autobahn.mk | 14 + .../package/python-backports-abc/Config.in | 1 + .../python-certifi/python-certifi.hash | 5 +- .../package/python-certifi/python-certifi.mk | 2 +- .../package/python-cffi/python-cffi.hash | 6 +- .../package/python-cffi/python-cffi.mk | 4 +- .../package/python-characteristic/Config.in | 6 + .../python-characteristic.hash | 3 + .../python-characteristic.mk | 14 + .../package/python-click/python-click.hash | 6 +- .../package/python-click/python-click.mk | 2 +- .../0001-Fix-twisted-detection.patch | 29 + .../python-configshell-fb.hash | 2 + .../package/python-crc16/python-crc16.hash | 2 + .../0001-Avoid-intentional-syntax-error.patch | 29 + .../package/python-crossbar/Config.in | 43 + .../python-crossbar/python-crossbar.hash | 3 + .../python-crossbar/python-crossbar.mk | 14 + .../package/python-cryptography/Config.in | 23 + .../python-cryptography.hash | 4 + .../python-cryptography.mk | 15 + .../python-cssselect/python-cssselect.hash | 6 +- .../python-cssselect/python-cssselect.mk | 4 +- .../package/python-daemon/python-daemon.hash | 2 + .../package/python-dataproperty/Config.in | 9 + .../python-dataproperty.hash | 4 + .../python-dataproperty.mk | 14 + .../package/python-dateutil/Config.in | 7 + .../python-dateutil/python-dateutil.hash | 4 + .../python-dateutil/python-dateutil.mk | 14 + .../package/python-dialog3/Config.in | 10 + .../python-dialog3/python-dialog3.hash | 3 + .../package/python-dialog3/python-dialog3.mk | 15 + .../package/python-dicttoxml/Config.in | 9 + .../python-dicttoxml/python-dicttoxml.hash | 3 + .../python-dicttoxml/python-dicttoxml.mk | 14 + .../package/python-docopt/python-docopt.hash | 2 + .../package/python-dominate/Config.in | 7 + .../python-dominate/python-dominate.hash | 2 + .../python-dominate/python-dominate.mk | 13 + .../package/python-dpkt/python-dpkt.hash | 2 + .../package/python-engineio/Config.in | 9 + .../python-engineio/python-engineio.hash | 4 + .../python-engineio/python-engineio.mk | 14 + .../package/python-flask-jsonrpc/Config.in | 8 + .../python-flask-jsonrpc.hash | 3 + .../python-flask-jsonrpc.mk | 14 + .../package/python-flask-login/Config.in | 8 + .../python-flask-login.hash | 3 + .../python-flask-login/python-flask-login.mk | 14 + bsp/buildroot/package/python-flask/Config.in | 9 +- .../package/python-flask/python-flask.hash | 6 +- .../package/python-flask/python-flask.mk | 5 +- .../package/python-humanize/Config.in | 9 + .../python-humanize/python-humanize.hash | 3 + .../python-humanize/python-humanize.mk | 14 + .../package/python-idna/python-idna.hash | 6 +- .../package/python-idna/python-idna.mk | 2 +- .../package/python-iniparse/Config.in | 11 + .../python-iniparse/python-iniparse.hash | 4 + .../python-iniparse/python-iniparse.mk | 14 + bsp/buildroot/package/python-iowait/Config.in | 6 + .../package/python-iowait/python-iowait.hash | 4 + .../package/python-iowait/python-iowait.mk | 14 + .../package/python-ipy/python-ipy.hash | 2 + .../python-ipython/python-ipython.hash | 2 + .../python-itsdangerous.hash | 2 + .../python-json-schema-validator.hash | 2 + .../python-keyring/python-keyring.hash | 2 + .../package/python-libconfig/Config.in | 2 - .../python-libconfig/python-libconfig.hash | 2 + bsp/buildroot/package/python-lmdb/Config.in | 7 + .../package/python-lmdb/python-lmdb.hash | 2 + .../package/python-lmdb/python-lmdb.mk | 14 + .../package/python-lxml/python-lxml.hash | 2 +- .../package/python-lxml/python-lxml.mk | 2 +- ...ld-with-SSLv2-when-it-is-not-availab.patch | 36 - .../python-m2crypto/python-m2crypto.hash | 2 - .../python-m2crypto/python-m2crypto.mk | 28 - .../package/python-mad/python-mad.hash | 2 + .../package/python-mako/python-mako.hash | 7 +- .../package/python-mako/python-mako.mk | 4 +- .../python-markdown/python-markdown.hash | 2 + bsp/buildroot/package/python-meld3/Config.in | 4 +- .../package/python-meld3/python-meld3.hash | 3 + .../package/python-meld3/python-meld3.mk | 6 +- .../python-mistune/python-mistune.hash | 6 +- .../package/python-mistune/python-mistune.mk | 2 +- .../package/python-msgpack/Config.in | 1 - bsp/buildroot/package/python-pam/Config.in | 3 +- .../package/python-pam/python-pam.hash | 2 + .../package/python-pathtools/Config.in | 6 + .../python-pathtools/python-pathtools.hash | 4 + .../python-pathtools/python-pathtools.mk | 14 + .../package/python-pathvalidate/Config.in | 8 + .../python-pathvalidate.hash | 4 + .../python-pathvalidate.mk | 14 + .../package/python-pexpect/Config.in | 12 + .../python-pexpect/python-pexpect.hash | 3 + .../package/python-pexpect/python-pexpect.mk | 24 + bsp/buildroot/package/python-pillow/Config.in | 13 + .../package/python-pillow/python-pillow.hash | 4 + .../package/python-pillow/python-pillow.mk | 73 + .../python-posix-ipc/python-posix-ipc.hash | 2 + .../package/python-prompt-toolkit/Config.in | 9 + .../python-prompt-toolkit.hash | 3 + .../python-prompt-toolkit.mk | 14 + .../python-protobuf/python-protobuf.hash | 2 + .../package/python-psutil/python-psutil.hash | 6 +- .../package/python-psutil/python-psutil.mk | 4 +- .../package/python-ptyprocess/Config.in | 7 + .../python-ptyprocess/python-ptyprocess.hash | 3 + .../python-ptyprocess/python-ptyprocess.mk | 14 + .../package/python-pyasn-modules/Config.in | 11 + .../python-pyasn-modules.hash | 3 + .../python-pyasn-modules.mk | 14 + .../package/python-pycparser/Config.in | 6 + .../python-pycparser/python-pycparser.mk | 1 + .../python-pycrypto/python-pycrypto.hash | 2 +- .../python-pycrypto/python-pycrypto.mk | 5 +- .../package/python-pydal/python-pydal.hash | 2 + .../python-pyftpdlib/python-pyftpdlib.hash | 6 +- .../python-pyftpdlib/python-pyftpdlib.mk | 4 +- .../package/python-pygame/python-pygame.mk | 7 +- .../package/python-pygments/Config.in | 6 + .../python-pygments/python-pygments.hash | 3 + .../python-pygments/python-pygments.mk | 14 + .../python-pyinotify/python-pyinotify.hash | 2 + .../package/python-pymysql/Config.in | 7 + .../python-pymysql/python-pymysql.hash | 4 + .../package/python-pymysql/python-pymysql.mk | 14 + bsp/buildroot/package/python-pynacl/Config.in | 9 + .../package/python-pynacl/python-pynacl.hash | 3 + .../package/python-pynacl/python-pynacl.mk | 16 + .../package/python-pyopenssl/Config.in | 12 + .../python-pyopenssl/python-pyopenssl.hash | 3 + .../python-pyopenssl/python-pyopenssl.mk | 14 + .../package/python-pypcap/python-pypcap.hash | 2 + .../package/python-pyro/python-pyro.hash | 2 + .../python-pyroute2/python-pyroute2.hash | 6 +- .../python-pyroute2/python-pyroute2.mk | 2 +- .../package/python-pysmb/python-pysmb.hash | 6 +- .../package/python-pysmb/python-pysmb.mk | 2 +- .../python-pysnmp-apps.hash | 2 + .../python-pysnmp-mibs.hash | 2 + .../package/python-pysnmp/python-pysnmp.hash | 2 + .../package/python-pysocks/Config.in | 6 + .../python-pysocks/python-pysocks.hash | 3 + .../package/python-pysocks/python-pysocks.mk | 14 + .../package/python-pytablewriter/Config.in | 13 + .../python-pytablewriter.hash | 4 + .../python-pytablewriter.mk | 14 + bsp/buildroot/package/python-pytrie/Config.in | 6 + .../package/python-pytrie/python-pytrie.hash | 3 + .../package/python-pytrie/python-pytrie.mk | 14 + bsp/buildroot/package/python-pytz/Config.in | 6 + .../package/python-pytz/python-pytz.hash | 4 + .../package/python-pytz/python-pytz.mk | 14 + .../package/python-pyusb/python-pyusb.hash | 2 + .../package/python-pyzmq/python-pyzmq.hash | 2 + .../package/python-rpi-gpio/Config.in | 7 + .../python-rpi-gpio/python-rpi-gpio.hash | 3 + .../python-rpi-gpio/python-rpi-gpio.mk | 14 + .../python-rtslib-fb/python-rtslib-fb.hash | 2 + .../package/python-scapy3k/Config.in | 9 + .../python-scapy3k/python-scapy3k.hash | 2 + .../package/python-scapy3k/python-scapy3k.mk | 12 + .../package/python-sdnotify/Config.in | 7 + .../python-sdnotify/python-sdnotify.hash | 4 + .../python-sdnotify/python-sdnotify.mk | 14 + .../package/python-serial/python-serial.hash | 6 +- .../package/python-serial/python-serial.mk | 14 +- .../package/python-service-identity/Config.in | 14 + .../python-service-identity.hash | 3 + .../python-service-identity.mk | 14 + .../package/python-setproctitle/Config.in | 6 + .../python-setproctitle.hash | 3 + .../python-setproctitle.mk | 14 + .../package/python-shutilwhich/Config.in | 7 + .../python-shutilwhich.hash | 3 + .../python-shutilwhich/python-shutilwhich.mk | 13 + .../python-simplejson/python-simplejson.hash | 2 + .../package/python-singledispatch/Config.in | 1 + .../package/python-sip/python-sip.hash | 6 +- .../package/python-sip/python-sip.mk | 2 +- .../package/python-socketio/Config.in | 8 + .../python-socketio/python-socketio.hash | 4 + .../python-socketio/python-socketio.mk | 14 + bsp/buildroot/package/python-tomako/Config.in | 9 + .../package/python-tomako/python-tomako.hash | 3 + .../package/python-tomako/python-tomako.mk | 14 + ...ckports.ssl_match_hostname-on-Python.patch | 37 + .../package/python-tornado/Config.in | 7 +- bsp/buildroot/package/python-treq/Config.in | 17 + .../package/python-treq/python-treq.hash | 3 + .../package/python-treq/python-treq.mk | 14 + .../python-twisted/python-twisted.hash | 5 +- .../package/python-twisted/python-twisted.mk | 4 +- bsp/buildroot/package/python-txaio/Config.in | 7 + .../package/python-txaio/python-txaio.hash | 3 + .../package/python-txaio/python-txaio.mk | 14 + .../package/python-u-msgpack/Config.in | 7 + .../python-u-msgpack/python-u-msgpack.hash | 4 + .../python-u-msgpack/python-u-msgpack.mk | 14 + bsp/buildroot/package/python-ubjson/Config.in | 7 + .../package/python-ubjson/python-ubjson.hash | 3 + .../package/python-ubjson/python-ubjson.mk | 14 + bsp/buildroot/package/python-ujson/Config.in | 7 + .../package/python-ujson/python-ujson.hash | 3 + .../package/python-ujson/python-ujson.mk | 13 + .../python-versiontools.hash | 2 + .../package/python-watchdog/Config.in | 9 + .../python-watchdog/python-watchdog.hash | 4 + .../python-watchdog/python-watchdog.mk | 14 + .../package/python-wcwidth/Config.in | 7 + .../python-wcwidth/python-wcwidth.hash | 3 + .../package/python-wcwidth/python-wcwidth.mk | 14 + .../python-werkzeug/python-werkzeug.hash | 6 +- .../python-werkzeug/python-werkzeug.mk | 4 +- .../package/python-wsaccel/Config.in | 6 + .../python-wsaccel/python-wsaccel.hash | 3 + .../package/python-wsaccel/python-wsaccel.mk | 13 + bsp/buildroot/package/python-xlrd/Config.in | 11 + .../package/python-xlrd/python-xlrd.hash | 4 + .../package/python-xlrd/python-xlrd.mk | 14 + .../package/python-xlsxwriter/Config.in | 8 + .../python-xlsxwriter/python-xlsxwriter.hash | 4 + .../python-xlsxwriter/python-xlsxwriter.mk | 14 + .../package/python-xlutils/Config.in | 9 + .../python-xlutils/python-xlutils.hash | 4 + .../package/python-xlutils/python-xlutils.mk | 14 + bsp/buildroot/package/python-xlwt/Config.in | 8 + .../package/python-xlwt/python-xlwt.hash | 4 + .../package/python-xlwt/python-xlwt.mk | 14 + .../python/011-remove-python-symlink.patch | 10 +- bsp/buildroot/package/python/python.hash | 6 +- bsp/buildroot/package/python/python.mk | 37 +- ...-do-not-add-invalid-header-locations.patch | 6 +- ...nstall-location-of-_sysconfigdata.py.patch | 18 +- ...ild-of-pyc-and-pyo-files-conditional.patch | 78 - ...e-the-build-of-pyc-files-conditional.patch | 54 + ...taddrinfo-configure-test-when-cross-.patch | 6 +- ...re-to-disable-the-build-of-certain-e.patch | 18 +- ...istutils-sysconfig-use-sysconfigdata.patch | 6 +- ...y-header-paths-for-cross-compilation.patch | 12 +- ...ook-in-usr-lib-termcap-for-libraries.patch | 6 +- .../0009-Don-t-add-multiarch-paths.patch | 6 +- .../0010-Abort-on-failed-module-build.patch | 10 +- .../0011-Serial-ioctl-workaround.patch | 2 +- ...e-shebang-of-Python-scripts-for-cros.patch | 2 +- ...ig.sh.in-ensure-sed-invocations-only.patch | 6 +- ...ode-invalid-path-to-ncursesw-headers.patch | 6 +- ...locale-and-set-to-default-when-addin.patch | 6 +- ...Add-importlib-fix-for-PEP-3147-issue.patch | 69 +- ...-disable-installation-of-test-module.patch | 16 +- .../0018-Add-an-option-to-disable-pydoc.patch | 20 +- ...019-Add-an-option-to-disable-lib2to3.patch | 22 +- ...option-to-disable-the-sqlite3-module.patch | 14 +- ...d-an-option-to-disable-the-tk-module.patch | 18 +- ...-option-to-disable-the-curses-module.patch | 12 +- .../0023-Add-an-option-to-disable-expat.patch | 16 +- ...-Add-an-option-to-disable-CJK-codecs.patch | 6 +- .../0025-Add-an-option-to-disable-NIS.patch | 6 +- ...Add-an-option-to-disable-unicodedata.patch | 6 +- .../0027-Add-an-option-to-disable-IDLE.patch | 18 +- ...028-Add-an-option-to-disable-decimal.patch | 10 +- ...on-to-disable-the-ossaudiodev-module.patch | 6 +- ..._BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch | 62 + bsp/buildroot/package/python3/python3.hash | 6 +- bsp/buildroot/package/python3/python3.mk | 77 +- bsp/buildroot/package/qdecoder/qdecoder.hash | 2 + bsp/buildroot/package/qemu/Config.in | 2 +- bsp/buildroot/package/qemu/Config.in.host | 32 +- bsp/buildroot/package/qemu/qemu.hash | 2 +- bsp/buildroot/package/qemu/qemu.mk | 31 +- .../qextserialport/qextserialport.hash | 2 + bsp/buildroot/package/qjson/Config.in | 5 + bsp/buildroot/package/qjson/qjson.hash | 2 + .../package/qlibc/0002-obey-destdir.patch | 154 +- bsp/buildroot/package/qlibc/qlibc.hash | 2 + bsp/buildroot/package/qlibc/qlibc.mk | 4 +- ...-socklen_t-on-other-C-libraries-than.patch | 43 + ...ldl-option-only-when-it-is-supported.patch | 116 + bsp/buildroot/package/qt/Config.in | 60 +- bsp/buildroot/package/qt/qt.hash | 1 + bsp/buildroot/package/qt/qt.mk | 31 +- bsp/buildroot/package/qt5/Config.in | 8 +- bsp/buildroot/package/qt5/qt5.mk | 4 +- bsp/buildroot/package/qt5/qt53d/Config.in | 2 + bsp/buildroot/package/qt5/qt53d/qt53d.hash | 4 +- bsp/buildroot/package/qt5/qt53d/qt53d.mk | 9 +- .../qt5base/0001-Force_egl_visual_ID_33.patch | 27 - .../qt5/qt5base/0003-xcb-egl-fixes.patch | 82 - ...005-forkd-disable-eventfd-for-uclibc.patch | 32 - ...move-libudev-dependency-from-kms.pro.patch | 33 + .../0009-fix-eglfs-for-sunxi-mali.patch | 109 - ...t-conditional-for-defining-QT_SOCKLE.patch | 40 - .../package/qt5/qt5base/qt5base.hash | 4 +- bsp/buildroot/package/qt5/qt5base/qt5base.mk | 21 +- .../package/qt5/qt5canvas3d/Config.in | 17 + .../package/qt5/qt5canvas3d/qt5canvas3d.hash | 2 + .../package/qt5/qt5canvas3d/qt5canvas3d.mk | 38 + .../package/qt5/qt5connectivity/Config.in | 12 +- .../qt5/qt5connectivity/qt5connectivity.hash | 4 +- .../qt5/qt5connectivity/qt5connectivity.mk | 41 +- .../qt5/qt5declarative/qt5declarative.hash | 4 +- .../qt5/qt5declarative/qt5declarative.mk | 4 +- .../package/qt5/qt5enginio/qt5enginio.hash | 4 +- .../package/qt5/qt5enginio/qt5enginio.mk | 8 +- .../qt5graphicaleffects.hash | 4 +- .../qt5graphicaleffects.mk | 4 +- .../qt5imageformats/0001-tvOS-support.patch | 35 + .../qt5/qt5imageformats/qt5imageformats.hash | 4 +- .../qt5/qt5imageformats/qt5imageformats.mk | 4 +- .../package/qt5/qt5location/Config.in | 10 + .../package/qt5/qt5location/qt5location.hash | 2 + .../package/qt5/qt5location/qt5location.mk | 61 + .../package/qt5/qt5multimedia/Config.in | 1 + .../qt5/qt5multimedia/qt5multimedia.hash | 4 +- .../qt5/qt5multimedia/qt5multimedia.mk | 4 +- bsp/buildroot/package/qt5/qt5quick1/Config.in | 26 - .../package/qt5/qt5quick1/qt5quick1.hash | 2 - .../package/qt5/qt5quick1/qt5quick1.mk | 41 - .../qt5quickcontrols/qt5quickcontrols.hash | 4 +- .../qt5/qt5quickcontrols/qt5quickcontrols.mk | 4 +- .../package/qt5/qt5quickcontrols2/Config.in | 17 + .../qt5quickcontrols2/qt5quickcontrols2.hash | 2 + .../qt5quickcontrols2/qt5quickcontrols2.mk | 40 + .../package/qt5/qt5script/qt5script.hash | 4 +- .../package/qt5/qt5script/qt5script.mk | 4 +- .../package/qt5/qt5sensors/qt5sensors.hash | 4 +- .../package/qt5/qt5sensors/qt5sensors.mk | 4 +- .../package/qt5/qt5serialbus/Config.in | 15 + .../qt5/qt5serialbus/qt5serialbus.hash | 2 + .../package/qt5/qt5serialbus/qt5serialbus.mk | 50 + .../qt5/qt5serialport/qt5serialport.hash | 4 +- .../qt5/qt5serialport/qt5serialport.mk | 4 +- bsp/buildroot/package/qt5/qt5svg/qt5svg.hash | 4 +- bsp/buildroot/package/qt5/qt5svg/qt5svg.mk | 4 +- bsp/buildroot/package/qt5/qt5tools/Config.in | 43 + .../package/qt5/qt5tools/qt5tools.hash | 2 + .../package/qt5/qt5tools/qt5tools.mk | 66 + .../0001-Fix-builds-without-qml-module.patch | 61 - .../qt5/qt5webchannel/qt5webchannel.hash | 4 +- .../qt5/qt5webchannel/qt5webchannel.mk | 4 +- .../qt5/qt5webkit-examples/0001-build.patch | 30 - .../package/qt5/qt5webkit-examples/Config.in | 14 - .../qt5webkit-examples.hash | 2 - .../qt5webkit-examples/qt5webkit-examples.mk | 50 - ...0001-qtwebkit-fix-QA-issue-bad-RPATH.patch | 36 + .../0002-Remove-TEXTREL-tag-in-x86.patch | 85 + ...acktrace-API-for-non-glibc-libraries.patch | 44 + bsp/buildroot/package/qt5/qt5webkit/Config.in | 13 +- .../package/qt5/qt5webkit/qt5webkit.hash | 4 +- .../package/qt5/qt5webkit/qt5webkit.mk | 40 +- .../qt5/qt5websockets/qt5websockets.hash | 4 +- .../qt5/qt5websockets/qt5websockets.mk | 4 +- .../qt5/qt5x11extras/qt5x11extras.hash | 4 +- .../package/qt5/qt5x11extras/qt5x11extras.mk | 4 +- .../qt5/qt5xmlpatterns/qt5xmlpatterns.hash | 4 +- .../qt5/qt5xmlpatterns/qt5xmlpatterns.mk | 4 +- bsp/buildroot/package/qtuio/qtuio.hash | 2 + ...y-fix-indirect-static-link-with-zlib.patch | 108 + bsp/buildroot/package/quagga/Config.in | 9 - bsp/buildroot/package/quagga/quagga.hash | 2 +- bsp/buildroot/package/quagga/quagga.mk | 39 +- bsp/buildroot/package/quagga/quagga@.service | 17 + .../package/quagga/quagga_tmpfiles.conf | 1 + bsp/buildroot/package/quazip/quazip.hash | 2 +- bsp/buildroot/package/quazip/quazip.mk | 2 +- ....patch => 0001-tools-getrpcbynumber.patch} | 0 ...ng.patch => 0002-fix-static-linking.patch} | 0 bsp/buildroot/package/quota/quota.mk | 5 + bsp/buildroot/package/qwt/Config.in | 25 +- bsp/buildroot/package/qwt/qwt.hash | 5 +- bsp/buildroot/package/qwt/qwt.mk | 10 +- .../package/rabbitmq-c/rabbitmq-c.hash | 2 +- .../package/rabbitmq-c/rabbitmq-c.mk | 4 +- bsp/buildroot/package/racehound/Config.in | 5 +- .../package/racehound/racehound.hash | 2 + bsp/buildroot/package/racehound/racehound.mk | 2 +- bsp/buildroot/package/radvd/radvd.hash | 5 +- bsp/buildroot/package/radvd/radvd.mk | 6 +- .../package/rapidjson/rapidjson.hash | 2 + ....ac-remove-conditional-lib-inclusion.patch | 21 + bsp/buildroot/package/raptor/Config.in | 11 + bsp/buildroot/package/raptor/raptor.hash | 2 + bsp/buildroot/package/raptor/raptor.mk | 43 + bsp/buildroot/package/readline/Config.in | 2 + bsp/buildroot/package/redis/Config.in | 2 + bsp/buildroot/package/redis/redis.mk | 6 + bsp/buildroot/package/rng-tools/Config.in | 1 + bsp/buildroot/package/rp-pppoe/Config.in | 9 +- bsp/buildroot/package/rp-pppoe/rp-pppoe.hash | 2 +- bsp/buildroot/package/rp-pppoe/rp-pppoe.mk | 2 +- ...0003-src-remove-use-of-the-__P-macro.patch | 243 ++ bsp/buildroot/package/rpi-firmware/Config.in | 2 +- .../package/rpi-firmware/cmdline.txt | 2 +- .../package/rpi-firmware/rpi-firmware.hash | 2 + .../package/rpi-firmware/rpi-firmware.mk | 9 +- ...vmcs.cmake-allow-to-override-VMCS_IN.patch | 27 - ...type-qualifiers-errors-when-building.patch | 23 - ...erge-add-missing-include-for-va_list.patch | 34 + .../package/rpi-userland/rpi-userland.hash | 2 + .../package/rpi-userland/rpi-userland.mk | 2 +- bsp/buildroot/package/rpm/Config.in | 7 + ...gure-option-to-disable-documentation.patch | 71 - bsp/buildroot/package/rrdtool/Config.in | 1 + bsp/buildroot/package/rrdtool/rrdtool.hash | 2 +- bsp/buildroot/package/rrdtool/rrdtool.mk | 10 +- bsp/buildroot/package/rs485conf/Config.in | 9 + .../package/rs485conf/rs485conf.hash | 2 + bsp/buildroot/package/rs485conf/rs485conf.mk | 20 + bsp/buildroot/package/rsh-redone/Config.in | 6 +- .../package/rsyslog/0001-musl-fcntl-h.patch | 30 - bsp/buildroot/package/rsyslog/Config.in | 8 +- bsp/buildroot/package/rsyslog/rsyslog.hash | 2 +- bsp/buildroot/package/rsyslog/rsyslog.mk | 11 +- ...or-issues-with-rt-tests-build-system.patch | 55 + ...002-Fix-a-build-issue-with-uClibc-ng.patch | 33 + ...-number-for-sched_-gs-etattr-for-SH4.patch | 34 + .../rt-tests/01-fix-build-system.patch | 52 - .../package/rt-tests/02-uclibc.patch | 109 - .../rt-tests/03-fix-non-nptl-buil.patch | 55 - .../04-Makefile-fix-tests-dependencies.patch | 50 - bsp/buildroot/package/rt-tests/Config.in | 15 +- bsp/buildroot/package/rt-tests/rt-tests.hash | 2 + bsp/buildroot/package/rt-tests/rt-tests.mk | 15 +- .../package/rtl8188eu/rtl8188eu.hash | 2 + bsp/buildroot/package/rtl8188eu/rtl8188eu.mk | 2 +- .../package/rtl8821au/rtl8821au.hash | 2 + bsp/buildroot/package/rtl8821au/rtl8821au.mk | 13 +- .../0001-host2ip-no-nis-on-uClibc.patch | 45 - ...e-NIS-support-for-toolchains-lacking.patch | 73 + bsp/buildroot/package/rtptools/rtptools.mk | 1 + ...ess.c-fix-rb_spawn_process-for-nommu.patch | 34 + bsp/buildroot/package/ruby/ruby.hash | 4 +- bsp/buildroot/package/ruby/ruby.mk | 2 +- bsp/buildroot/package/runc/Config.in | 15 + bsp/buildroot/package/runc/runc.hash | 2 + bsp/buildroot/package/runc/runc.mk | 50 + bsp/buildroot/package/sam-ba/sam-ba.hash | 2 + bsp/buildroot/package/sam-ba/sam-ba.mk | 4 +- .../samba/0001-fix-smbd-libs-avahi.patch | 17 - .../package/samba/0002-getaddrinfo.patch | 20 - bsp/buildroot/package/samba/Config.in | 292 --- bsp/buildroot/package/samba/S91smb | 81 - bsp/buildroot/package/samba/samba.hash | 2 - bsp/buildroot/package/samba/samba.mk | 189 -- bsp/buildroot/package/samba/simple.conf | 25 - ...-build-improve-stack-protector-check.patch | 56 - bsp/buildroot/package/samba4/Config.in | 1 - bsp/buildroot/package/samba4/samba4.hash | 4 +- bsp/buildroot/package/samba4/samba4.mk | 28 +- ...002-Add-missing-sys-types.h-includes.patch | 106 + bsp/buildroot/package/sawman/sawman.hash | 2 - bsp/buildroot/package/sconeserver/Config.in | 6 +- .../package/sconeserver/sconeserver.hash | 2 +- .../package/sconeserver/sconeserver.mk | 8 +- .../screen/0001-compiler-sanity-checks.patch | 16 +- .../screen/0002-no-memcpy-fallback.patch | 18 +- .../0003-cross-compilation-AC_TRY_RUN.patch | 34 +- ...004-cross-compilation-ignore-host-fs.patch | 30 +- .../0005-avoid-identifying-as-SVR4.patch | 14 +- bsp/buildroot/package/screen/screen.hash | 2 +- bsp/buildroot/package/screen/screen.mk | 3 +- bsp/buildroot/package/scrub/Config.in | 7 + bsp/buildroot/package/scrub/scrub.hash | 3 + bsp/buildroot/package/scrub/scrub.mk | 17 + bsp/buildroot/package/sdl/sdl.mk | 9 +- bsp/buildroot/package/sdl2_gfx/Config.in | 10 + bsp/buildroot/package/sdl2_gfx/sdl2_gfx.hash | 2 + bsp/buildroot/package/sdl2_gfx/sdl2_gfx.mk | 27 + bsp/buildroot/package/sdl2_image/Config.in | 9 + .../package/sdl2_image/sdl2_image.hash | 2 + .../package/sdl2_image/sdl2_image.mk | 58 + bsp/buildroot/package/sdl2_ttf/Config.in | 9 + bsp/buildroot/package/sdl2_ttf/sdl2_ttf.hash | 2 + bsp/buildroot/package/sdl2_ttf/sdl2_ttf.mk | 30 + bsp/buildroot/package/sdl_image/Config.in | 32 +- bsp/buildroot/package/sdl_image/sdl_image.mk | 4 +- ...ibs.private-field-to-pkg-config-file.patch | 64 + bsp/buildroot/package/sdl_mixer/sdl_mixer.mk | 5 + ...makefile-remove-host-headers-include.patch | 19 - bsp/buildroot/package/sdparm/sdparm.hash | 2 +- bsp/buildroot/package/sdparm/sdparm.mk | 5 +- bsp/buildroot/package/sed/Config.in | 2 + ...0001-Fix-TIOCSRS485-undeclared-error.patch | 65 - bsp/buildroot/package/ser2net/S50ser2net | 43 + bsp/buildroot/package/ser2net/ser2net.hash | 2 +- bsp/buildroot/package/ser2net/ser2net.mk | 7 +- ...ate-for-2015-02-02-Userspace-release.patch | 90 + bsp/buildroot/package/setools/Config.in | 6 +- bsp/buildroot/package/setools/setools.mk | 4 + bsp/buildroot/package/setserial/Config.in | 2 +- .../0001-support-uclinux-as-a-linux.patch | 16 + bsp/buildroot/package/sg3_utils/Config.in | 2 + .../package/sg3_utils/sg3_utils.hash | 2 +- bsp/buildroot/package/sg3_utils/sg3_utils.mk | 11 +- .../shairport-sync/shairport-sync.hash | 3 +- .../package/shairport-sync/shairport-sync.mk | 3 +- ...ct-dependency-from-install-data-hook.patch | 45 + .../shared-mime-info/shared-mime-info.hash | 2 +- .../shared-mime-info/shared-mime-info.mk | 13 +- ...e-disable-always-building-statically.patch | 26 + ...launcher.c-include-sys-ttydefaults.h.patch | 27 + bsp/buildroot/package/shellinabox/Config.in | 18 + .../package/shellinabox/shellinabox.hash | 2 + .../package/shellinabox/shellinabox.mk | 29 + bsp/buildroot/package/skeleton/skeleton.mk | 80 +- bsp/buildroot/package/sl/sl.hash | 2 + ...tic-do-install-pkgconfig-as-install-.patch | 31 + bsp/buildroot/package/smack/smack.hash | 2 + .../package/smartmontools/smartmontools.hash | 6 +- .../package/smartmontools/smartmontools.mk | 2 +- bsp/buildroot/package/snappy/snappy.hash | 2 + .../snowball-hdmiservice.hash | 2 + .../package/snowball-init/snowball-init.hash | 2 + .../0001-Remove-inline-keyword.patch | 90 - .../package/socketcand/socketcand.hash | 2 + .../package/socketcand/socketcand.mk | 2 +- .../package/softether/softether.hash | 4 + bsp/buildroot/package/softether/softether.mk | 2 +- bsp/buildroot/package/sphinxbase/Config.in | 13 + .../package/sphinxbase/sphinxbase.hash | 2 + .../package/sphinxbase/sphinxbase.mk | 19 + .../package/spidev_test/spidev_test.mk | 9 + .../package/sqlcipher/sqlcipher.hash | 2 + bsp/buildroot/package/sqlite/Config.in | 7 - bsp/buildroot/package/sqlite/sqlite.hash | 4 +- bsp/buildroot/package/sqlite/sqlite.mk | 11 +- bsp/buildroot/package/squashfs/squashfs.hash | 4 +- bsp/buildroot/package/squashfs/squashfs.mk | 6 +- .../package/squeezelite/0003-ffmpeg_2_9.patch | 57 + bsp/buildroot/package/squeezelite/Config.in | 8 +- bsp/buildroot/package/squid/Config.in | 5 +- bsp/buildroot/package/squid/squid.hash | 6 +- bsp/buildroot/package/squid/squid.mk | 4 +- bsp/buildroot/package/sshfs/sshfs.hash | 4 +- bsp/buildroot/package/sshfs/sshfs.mk | 5 +- bsp/buildroot/package/sstrip/Config.in | 1 + bsp/buildroot/package/sstrip/sstrip.mk | 12 - .../package/start-stop-daemon/Config.in | 1 + .../start-stop-daemon/start-stop-daemon.hash | 4 +- .../start-stop-daemon/start-stop-daemon.mk | 4 +- .../0001-Add-cross-compilation-support.patch | 29 + .../0002-Do-not-strip-when-installing.patch | 26 + ...e-Add-CXXFLAGS-for-test-compilations.patch | 44 + bsp/buildroot/package/stella/Config.in | 16 + bsp/buildroot/package/stella/stella.hash | 2 + bsp/buildroot/package/stella/stella.mk | 38 + ...-arc-metag-nios2-or1k-tile-fix-build.patch | 104 - bsp/buildroot/package/strace/strace.hash | 8 +- bsp/buildroot/package/strace/strace.mk | 6 +- bsp/buildroot/package/stress-ng/Config.in | 4 +- .../package/stress-ng/stress-ng.hash | 2 +- bsp/buildroot/package/stress-ng/stress-ng.mk | 2 +- bsp/buildroot/package/strongswan/Config.in | 3 + .../package/strongswan/strongswan.hash | 6 +- .../package/strongswan/strongswan.mk | 15 +- bsp/buildroot/package/stunnel/stunnel.hash | 4 +- bsp/buildroot/package/stunnel/stunnel.mk | 2 +- .../package/subversion/subversion.hash | 2 +- .../package/subversion/subversion.mk | 2 +- .../package/sunxi-boards/sunxi-boards.hash | 2 + bsp/buildroot/package/sunxi-cedarx/Config.in | 2 +- .../package/sunxi-cedarx/sunxi-cedarx.hash | 2 + .../package/sunxi-mali-prop/Config.in | 4 - .../sunxi-mali-prop/sunxi-mali-prop.mk | 10 - bsp/buildroot/package/sunxi-mali/Config.in | 5 +- .../package/sunxi-mali/sunxi-mali.mk | 18 +- ...rrlicht-Get-rid-of-unprefixed-cflags.patch | 34 + ...lean-return-type-for-jpeglib-s-callb.patch | 39 + bsp/buildroot/package/supertuxkart/Config.in | 34 + .../package/supertuxkart/supertuxkart.hash | 5 + .../package/supertuxkart/supertuxkart.mk | 48 + bsp/buildroot/package/swig/swig.hash | 2 +- bsp/buildroot/package/swig/swig.mk | 4 +- bsp/buildroot/package/swupdate/Config.in | 7 +- .../package/swupdate/swupdate.config | 15 +- bsp/buildroot/package/swupdate/swupdate.hash | 4 +- bsp/buildroot/package/swupdate/swupdate.mk | 26 +- bsp/buildroot/package/sysdig/sysdig.hash | 2 + bsp/buildroot/package/sysklogd/Config.in | 1 + bsp/buildroot/package/syslog-ng/Config.in | 2 + bsp/buildroot/package/syslog-ng/syslog-ng.mk | 2 +- bsp/buildroot/package/sysstat/sysstat.hash | 2 +- bsp/buildroot/package/sysstat/sysstat.mk | 2 +- ...ure-add-option-to-not-build-manpages.patch | 59 + .../package/systemd-bootchart/Config.in | 26 + .../systemd-bootchart/systemd-bootchart.hash | 2 + .../systemd-bootchart/systemd-bootchart.mk | 25 + ...sys-revert-use-of-ln-relative-option.patch | 62 +- bsp/buildroot/package/systemd/Config.in | 250 ++- bsp/buildroot/package/systemd/systemd.hash | 2 +- bsp/buildroot/package/systemd/systemd.mk | 243 +- bsp/buildroot/package/sysvinit/Config.in | 2 + bsp/buildroot/package/sysvinit/inittab | 2 +- ...andard-CMake-flag-to-drive-the-share.patch | 40 - bsp/buildroot/package/taglib/Config.in | 1 - bsp/buildroot/package/taglib/taglib.hash | 2 +- bsp/buildroot/package/taglib/taglib.mk | 2 +- .../package/tar/0001-fix-build-failure.patch | 52 - bsp/buildroot/package/tar/Config.in | 2 + bsp/buildroot/package/tar/tar.hash | 4 +- bsp/buildroot/package/tar/tar.mk | 3 +- .../package/targetcli-fb/targetcli-fb.hash | 2 + ...makedefine-HAVE_GET_CURRENT_DIR_NAME.patch | 28 + bsp/buildroot/package/taskd/Config.in | 16 + bsp/buildroot/package/taskd/taskd.hash | 4 + bsp/buildroot/package/taskd/taskd.mk | 13 + bsp/buildroot/package/tcl/tcl.hash | 2 +- bsp/buildroot/package/tcl/tcl.mk | 34 +- bsp/buildroot/package/tcpdump/tcpdump.hash | 2 +- bsp/buildroot/package/tcpdump/tcpdump.mk | 2 +- bsp/buildroot/package/tcpreplay/tcpreplay.mk | 4 + ...me-cryptopp-is-system-wide-installed.patch | 114 + bsp/buildroot/package/tegrarcm/Config.in.host | 8 + bsp/buildroot/package/tegrarcm/tegrarcm.hash | 2 + bsp/buildroot/package/tegrarcm/tegrarcm.mk | 14 + bsp/buildroot/package/tekui/Config.in | 21 + bsp/buildroot/package/tekui/tekui.hash | 2 + bsp/buildroot/package/tekui/tekui.mk | 66 + bsp/buildroot/package/terminology/Config.in | 9 + .../package/terminology/terminology.hash | 2 + .../package/terminology/terminology.mk | 16 + bsp/buildroot/package/texinfo/texinfo.hash | 2 + bsp/buildroot/package/texinfo/texinfo.mk | 13 + bsp/buildroot/package/tftpd/Config.in | 3 + bsp/buildroot/package/thrift/Config.in | 2 - bsp/buildroot/package/thrift/thrift.mk | 5 + bsp/buildroot/package/ti-gfx/Config.in | 10 +- bsp/buildroot/package/ti-sgx-demos/Config.in | 9 + .../package/ti-sgx-demos/ti-sgx-demos.hash | 2 + .../package/ti-sgx-demos/ti-sgx-demos.mk | 18 + bsp/buildroot/package/ti-sgx-km/Config.in | 49 + .../package/ti-sgx-km/ti-sgx-km.hash | 2 + bsp/buildroot/package/ti-sgx-km/ti-sgx-km.mk | 43 + bsp/buildroot/package/ti-sgx-um/Config.in | 36 + bsp/buildroot/package/ti-sgx-um/S80ti-sgx | 14 + bsp/buildroot/package/ti-sgx-um/powervr.ini | 6 + .../package/ti-sgx-um/ti-sgx-um.hash | 2 + bsp/buildroot/package/ti-sgx-um/ti-sgx-um.mk | 38 + bsp/buildroot/package/ti-utils/ti-utils.hash | 2 + .../tidsp-binaries/tidsp-binaries.hash | 2 + bsp/buildroot/package/tiff/Config.in | 6 +- bsp/buildroot/package/tiff/tiff.mk | 9 + bsp/buildroot/package/time/Config.in | 7 + bsp/buildroot/package/tinc/Config.in | 4 + bsp/buildroot/package/tinc/tinc.hash | 2 +- bsp/buildroot/package/tinc/tinc.mk | 4 +- ...-time.h-to-get-struct-timespec-proto.patch | 33 + bsp/buildroot/package/tinyalsa/tinyalsa.hash | 2 + bsp/buildroot/package/tinycbor/Config.in | 8 + bsp/buildroot/package/tinycbor/tinycbor.hash | 3 + bsp/buildroot/package/tinycbor/tinycbor.mk | 41 + ...kefile.in-to-allow-cross-compilation.patch | 170 ++ ...2-Fix-compilation-of-tests-directory.patch | 31 + bsp/buildroot/package/tinydtls/Config.in | 13 + bsp/buildroot/package/tinydtls/tinydtls.hash | 2 + bsp/buildroot/package/tinydtls/tinydtls.mk | 17 + .../package/tinymembench/tinymembench.hash | 2 + ...Use-BUILD_SHARED_LIBS-cmake-standard.patch | 65 - ...0002-Rename-test-fixed-cmake-warning.patch | 38 - bsp/buildroot/package/tinyxml2/tinyxml2.hash | 2 + bsp/buildroot/package/tinyxml2/tinyxml2.mk | 2 +- bsp/buildroot/package/tmux/Config.in | 15 +- bsp/buildroot/package/tmux/tmux.hash | 2 +- bsp/buildroot/package/tmux/tmux.mk | 2 +- bsp/buildroot/package/tor/tor.mk | 1 + bsp/buildroot/package/tovid/Config.in | 6 +- ...ace-record.c-with-non-ptrace-compile.patch | 32 + .../transmission/0003-miniupnpc-cross.patch | 31 + .../transmission/0004-fix-utp-include.patch | 46 + .../package/transmission/transmission.hash | 2 +- .../package/transmission/transmission.mk | 13 +- bsp/buildroot/package/tree/tree.hash | 2 +- bsp/buildroot/package/tree/tree.mk | 2 +- ...-correct-array-sizes-to-fix-building.patch | 66 + ...m-include-limits.h-to-fix-musl-build.patch | 29 + ...pwent_r-is-available-before-using-it.patch | 80 + bsp/buildroot/package/trousers/trousers.mk | 5 +- bsp/buildroot/package/tstools/Config.in | 5 + bsp/buildroot/package/tunctl/Config.in | 6 + bsp/buildroot/package/tunctl/tunctl.hash | 2 + bsp/buildroot/package/tunctl/tunctl.mk | 22 + bsp/buildroot/package/turbolua/Config.in | 18 + bsp/buildroot/package/turbolua/turbolua.hash | 2 + bsp/buildroot/package/turbolua/turbolua.mk | 33 + ...ert-minimum-required-version-numbers.patch | 51 + .../tvheadend/0002-remove-werror.patch | 16 - bsp/buildroot/package/tvheadend/Config.in | 6 +- bsp/buildroot/package/tvheadend/S99tvheadend | 5 + .../package/tvheadend/accesscontrol.1 | 13 - .../package/tvheadend/tvheadend.hash | 2 +- bsp/buildroot/package/tvheadend/tvheadend.mk | 18 +- bsp/buildroot/package/tz/tz.mk | 1 - bsp/buildroot/package/tzdata/tzdata.hash | 4 +- bsp/buildroot/package/tzdata/tzdata.mk | 12 +- bsp/buildroot/package/tzdump/tzdump.hash | 2 + .../0001-drop-configh-from-tools.patch | 14 +- ...-tools-only-in-no-dot-config-targets.patch | 19 +- ...003-Make-FIT-support-really-optional.patch | 96 + bsp/buildroot/package/uboot-tools/Config.in | 45 +- .../package/uboot-tools/Config.in.host | 16 + .../package/uboot-tools/uboot-tools.hash | 2 +- .../package/uboot-tools/uboot-tools.mk | 78 +- bsp/buildroot/package/ubus/Config.in | 2 +- bsp/buildroot/package/ucl/ucl.mk | 3 + .../0001-arm-fix-compile-in-thumb-mode.patch | 48 + ...db.h-Do-not-define-IDN-related-flags.patch | 54 - ...ps-fix-build-if-threads-are-disabled.patch | 59 - ...pc-Do-not-use-alloca-in-clntudp_call.patch | 59 + .../0003-ARC-Support-syscall-ABI-v4.patch | 54 + bsp/buildroot/package/uclibc/Config.in | 40 +- bsp/buildroot/package/uclibc/uClibc-ng.config | 3 + bsp/buildroot/package/uclibc/uclibc.hash | 2 +- bsp/buildroot/package/uclibc/uclibc.mk | 117 +- bsp/buildroot/package/udpcast/Config.in | 4 - ...ll-as-dummy-logfile-when-logging-to-.patch | 70 + ..._GNU_SOURCE-to-get-members-of-tcphdr.patch | 44 + .../0003-Use-stdint-types-everywhere.patch | 792 +++++++ bsp/buildroot/package/unrar/unrar.hash | 2 +- bsp/buildroot/package/unrar/unrar.mk | 2 +- bsp/buildroot/package/unscd/Config.in | 2 +- bsp/buildroot/package/unzip/Config.in | 1 + bsp/buildroot/package/upmpdcli/Config.in | 9 +- bsp/buildroot/package/upmpdcli/upmpdcli.hash | 4 +- bsp/buildroot/package/upmpdcli/upmpdcli.mk | 4 +- bsp/buildroot/package/upx/upx.mk | 1 + .../usb_modeswitch/usb_modeswitch.hash | 2 +- .../package/usb_modeswitch/usb_modeswitch.mk | 2 +- .../usb_modeswitch_data.hash | 2 +- .../usb_modeswitch_data.mk | 2 +- bsp/buildroot/package/usbredir/usbredir.hash | 2 +- bsp/buildroot/package/usbredir/usbredir.mk | 2 +- bsp/buildroot/package/ustr/Config.in | 2 + bsp/buildroot/package/ustr/ustr.mk | 2 + ...-build-sys-fix-uClibc-ng-scanf-check.patch | 34 + .../util-linux/0001-sscanf-no-ms-as.patch | 141 -- ...mkostemp-for-older-version-of-uClibc.patch | 50 - ...ipw-Remove-pre-ANSI-compiler-support.patch | 35 - .../0005-build-sys-use-REALTIME_LIBS.patch | 41 - ...ix-static-configuration-and-building.patch | 54 - .../util-linux/0007-build-sys-fix-typo.patch | 34 - bsp/buildroot/package/util-linux/Config.in | 12 +- .../package/util-linux/util-linux.hash | 4 +- .../package/util-linux/util-linux.mk | 10 +- bsp/buildroot/package/v4l2grab/v4l2grab.hash | 2 +- bsp/buildroot/package/v4l2grab/v4l2grab.mk | 2 +- bsp/buildroot/package/vala/vala-wrapper | 2 + bsp/buildroot/package/vala/vala.hash | 4 +- bsp/buildroot/package/vala/vala.mk | 17 +- bsp/buildroot/package/valgrind/Config.in | 1 + bsp/buildroot/package/valijson/Config.in | 18 + bsp/buildroot/package/valijson/valijson.hash | 2 + bsp/buildroot/package/valijson/valijson.mk | 16 + bsp/buildroot/package/vde2/vde2.mk | 26 +- bsp/buildroot/package/vim/Config.in | 2 + bsp/buildroot/package/vim/vim.hash | 2 + bsp/buildroot/package/vim/vim.mk | 3 +- ...de-and-add-required-realtime-library.patch | 40 + ...v_wrapper-use-opencv2-style-includes.patch | 36 - ...ample-add-missing-include-statements.patch | 29 - bsp/buildroot/package/vlc/vlc.hash | 4 +- bsp/buildroot/package/vlc/vlc.mk | 44 +- bsp/buildroot/package/vnstat/vnstat.mk | 3 +- ...llow-to-override-the-PREFIX-variable.patch | 31 + .../package/vpnc/0001-fix-build.patch | 71 - ...kefile-allow-to-override-the-version.patch | 41 + .../package/vpnc/0002-nomanual.patch | 15 - ...allow-passing-custom-CFLAGS-CPPFLAGS.patch | 45 + .../package/vpnc/0003-susv3-legacy.patch | 12 - ...vide-an-option-to-not-build-manpages.patch | 57 + ...assing-a-custom-path-to-libgcrypt-co.patch | 40 + ...-deprecated-SUSv3-functions-with-POS.patch | 36 + ...ssume-error.h-is-available-on-all-Li.patch | 52 + ...on-t-include-linux-if_tun.h-on-Linux.patch | 54 + ...dd-missing-sys-ttydefaults.h-include.patch | 36 + bsp/buildroot/package/vpnc/Config.in | 7 + bsp/buildroot/package/vpnc/vpnc.hash | 2 +- bsp/buildroot/package/vpnc/vpnc.mk | 19 +- bsp/buildroot/package/wavemon/Config.in | 18 + bsp/buildroot/package/wavemon/wavemon.hash | 3 + bsp/buildroot/package/wavemon/wavemon.mk | 19 + .../package/wayland-protocols/Config.in | 9 + .../wayland-protocols/wayland-protocols.hash | 2 + .../wayland-protocols/wayland-protocols.mk | 15 + ...tures-with-non-empty-__USER_LABEL_PR.patch | 57 + ...scanner-Use-uint32_t-instead-of-uint.patch | 31 + bsp/buildroot/package/wayland/Config.in | 3 +- bsp/buildroot/package/wayland/wayland.hash | 4 +- bsp/buildroot/package/wayland/wayland.mk | 19 +- bsp/buildroot/package/webkit/webkit.hash | 2 + bsp/buildroot/package/webkitgtk/Config.in | 77 + .../package/webkitgtk/webkitgtk.hash | 4 + bsp/buildroot/package/webkitgtk/webkitgtk.mk | 89 + ...se-_ABI64-instead-of-_MIPS_SIM_ABI64.patch | 46 - bsp/buildroot/package/webkitgtk24/Config.in | 33 + .../package/webkitgtk24/webkitgtk24.hash | 6 +- .../package/webkitgtk24/webkitgtk24.mk | 8 +- bsp/buildroot/package/webp/Config.in | 11 + bsp/buildroot/package/webp/webp.mk | 6 + ...figure.ac-fix-architecture-detection.patch | 84 + ...detection-of-cxxabi.h-and-execinfo.h.patch | 63 + .../package/webrtc-audio-processing/Config.in | 9 +- .../webrtc-audio-processing.hash | 2 +- .../webrtc-audio-processing.mk | 5 +- ...itor-rdp-fix-no-break-space-U-A0-U8-.patch | 34 + bsp/buildroot/package/weston/Config.in | 38 + bsp/buildroot/package/weston/weston.hash | 4 +- bsp/buildroot/package/weston/weston.mk | 122 +- bsp/buildroot/package/wf111/Config.in | 2 +- bsp/buildroot/package/wf111/wf111.mk | 19 +- bsp/buildroot/package/wget/Config.in | 2 + bsp/buildroot/package/wget/wget.hash | 2 +- bsp/buildroot/package/wget/wget.mk | 2 +- bsp/buildroot/package/which/Config.in | 1 + bsp/buildroot/package/whois/Config.in | 2 + bsp/buildroot/package/whois/whois.hash | 4 +- bsp/buildroot/package/whois/whois.mk | 4 +- .../package/wilc1000-firmware/Config.in | 6 + .../wilc1000-firmware/wilc1000-firmware.hash | 2 + .../wilc1000-firmware/wilc1000-firmware.mk | 24 + ...to-override-the-location-of-the-conf.patch | 109 - bsp/buildroot/package/wine/Config.in | 2 +- bsp/buildroot/package/wine/wine.hash | 2 +- bsp/buildroot/package/wine/wine.mk | 4 +- .../wireless-regdb/wireless-regdb.hash | 2 +- .../package/wireless-regdb/wireless-regdb.mk | 2 +- .../package/wireless_tools/wireless_tools.mk | 8 +- .../package/wireshark/wireshark.hash | 4 +- bsp/buildroot/package/wireshark/wireshark.mk | 13 +- .../0001-Adjust-for-buildroot-build.patch | 123 ++ ...m-ioctl.h-directly-for-_IOC_SIZEBITS.patch | 60 + bsp/buildroot/package/wiringpi/Config.in | 12 + bsp/buildroot/package/wiringpi/wiringpi.hash | 2 + bsp/buildroot/package/wiringpi/wiringpi.mk | 54 + ...ervice-files-according-to-dbus-inter.patch | 77 + ...a-Credential-with-invalid-passphrase.patch | 85 + ...eter-set-with-invalid-passphrase-cha.patch | 53 + ...from-wpa_supplicant-config-network-o.patch | 84 + ...commands-with-newline-characters-in-.patch | 65 + ...nds-with-newline-characters-in-the-s.patch | 53 + .../package/wpa_supplicant/Config.in | 11 + .../package/wpa_supplicant/wpa_supplicant.mk | 13 +- .../0001-fix-build-with-newer-libnl.patch | 40 + bsp/buildroot/package/wpan-tools/Config.in | 11 + .../package/wpan-tools/wpan-tools.hash | 4 + .../package/wpan-tools/wpan-tools.mk | 13 + bsp/buildroot/package/wvdial/Config.in | 2 +- bsp/buildroot/package/wvdial/wvdial.hash | 2 + bsp/buildroot/package/wvstreams/Config.in | 2 +- .../package/wvstreams/wvstreams.hash | 2 + bsp/buildroot/package/x11r7/Config.in | 3 +- .../package/x11r7/libepoxy/Config.in | 13 - .../package/x11r7/libxcb/libxcb.hash | 4 +- bsp/buildroot/package/x11r7/libxcb/libxcb.mk | 9 +- .../package/x11r7/mcookie/mcookie.mk | 2 - .../x11r7/xapp_bdftopcf/xapp_bdftopcf.mk | 1 + .../x11r7/xapp_mkfontdir/xapp_mkfontdir.mk | 1 + .../xapp_mkfontscale/xapp_mkfontscale.mk | 2 + .../x11r7/xapp_scripts/xapp_scripts.hash | 2 + .../x11r7/xapp_xcursorgen/xapp_xcursorgen.mk | 2 + .../package/x11r7/xapp_xinit/xapp_xinit.mk | 1 + .../xapp_xinput-calibrator.hash | 2 + .../x11r7/xapp_xkbcomp/xapp_xkbcomp.mk | 1 + .../x11r7/xapp_xrandr/xapp_xrandr.hash | 4 +- .../package/x11r7/xapp_xrandr/xapp_xrandr.mk | 2 +- .../x11r7/xapp_xsetmode/xapp_xsetmode.hash | 2 + .../xapp_xsetpointer/xapp_xsetpointer.hash | 2 + .../0001-Make-whitespace-use-consistent.patch | 212 ++ ...-is-a-function-and-needs-parentheses.patch | 70 + .../package/x11r7/xcb-proto/xcb-proto.hash | 4 +- .../package/x11r7/xcb-proto/xcb-proto.mk | 3 +- .../xcb-util-cursor/xcb-util-cursor.hash | 4 +- .../x11r7/xcb-util-cursor/xcb-util-cursor.mk | 2 +- .../package/x11r7/xcb-util/xcb-util.hash | 2 + .../xcursor-transparent-theme.hash | 2 + .../xdriver_xf86-input-evdev.hash | 4 +- .../xdriver_xf86-input-evdev.mk | 2 +- .../50-joystick.conf | 6 + .../xdriver_xf86-input-joystick.mk | 7 + .../xdriver_xf86-input-libinput.hash | 4 +- .../xdriver_xf86-input-libinput.mk | 2 +- .../x11r7/xdriver_xf86-input-void/Config.in | 11 - .../xdriver_xf86-input-void.hash | 2 - .../xdriver_xf86-input-void.mk | 14 - .../x11r7/xdriver_xf86-video-amdgpu/Config.in | 22 + .../xdriver_xf86-video-amdgpu.hash | 2 + .../xdriver_xf86-video-amdgpu.mk | 28 + .../xdriver_xf86-video-ast.hash | 2 +- .../xdriver_xf86-video-ast.mk | 2 +- .../x11r7/xdriver_xf86-video-ati/Config.in | 1 - .../xdriver_xf86-video-ati.hash | 4 +- .../xdriver_xf86-video-ati.mk | 4 +- .../xdriver_xf86-video-fbturbo/Config.in | 1 + .../xdriver_xf86-video-fbturbo.hash | 2 + .../xdriver_xf86-video-fbturbo.mk | 8 + .../xdriver_xf86-video-geode.hash | 4 +- .../xdriver_xf86-video-geode.mk | 2 +- ...top-using-Git-to-write-local-version.patch | 90 + .../xdriver_xf86-video-imx-viv/Config.in | 2 + .../xdriver_xf86-video-imx-viv.hash | 3 +- .../xdriver_xf86-video-imx-viv.mk | 6 +- .../x11r7/xdriver_xf86-video-imx/Config.in | 2 +- .../xdriver_xf86-video-imx.hash | 2 + .../xdriver_xf86-video-intel.mk | 8 +- .../x11r7/xdriver_xf86-video-mach64/Config.in | 5 - .../xdriver_xf86-video-mach64.mk | 4 + .../xdriver_xf86-video-mga.mk | 4 + .../xdriver_xf86-video-openchrome/Config.in | 2 + .../xdriver_xf86-video-openchrome.hash | 4 +- .../xdriver_xf86-video-openchrome.mk | 2 +- .../x11r7/xdriver_xf86-video-r128/Config.in | 4 - .../xdriver_xf86-video-r128.hash | 4 +- .../xdriver_xf86-video-r128.mk | 6 +- .../xdriver_xf86-video-savage.mk | 4 + .../xdriver_xf86-video-tdfx.mk | 15 +- .../x11r7/xfont_encodings/xfont_encodings.mk | 2 + .../xfont_font-adobe-100dpi.hash | 2 + .../xfont_font-adobe-75dpi.hash | 2 + .../xfont_font-adobe-utopia-100dpi.hash | 2 + .../xfont_font-adobe-utopia-75dpi.hash | 2 + .../xfont_font-adobe-utopia-type1.hash | 2 + .../xfont_font-alias/xfont_font-alias.hash | 2 + .../xfont_font-arabic-misc.hash | 2 + .../xfont_font-bh-100dpi.hash | 2 + .../xfont_font-bh-75dpi.hash | 2 + ...xfont_font-bh-lucidatypewriter-100dpi.hash | 2 + .../xfont_font-bh-lucidatypewriter-75dpi.hash | 2 + .../xfont_font-bh-type1.hash | 2 + .../xfont_font-bitstream-100dpi.hash | 2 + .../xfont_font-bitstream-75dpi.hash | 2 + .../xfont_font-bitstream-type1.hash | 2 + .../xfont_font-cronyx-cyrillic.hash | 2 + .../xfont_font-cursor-misc.hash | 2 + .../xfont_font-daewoo-misc.hash | 2 + .../xfont_font-dec-misc.hash | 2 + .../xfont_font-ibm-type1.hash | 2 + .../xfont_font-isas-misc.hash | 2 + .../xfont_font-jis-misc.hash | 2 + .../xfont_font-micro-misc.hash | 2 + .../xfont_font-misc-cyrillic.hash | 2 + .../xfont_font-misc-ethiopic.hash | 2 + .../xfont_font-misc-meltho.hash | 2 + .../xfont_font-misc-misc.hash | 2 + .../xfont_font-mutt-misc.hash | 2 + .../xfont_font-schumacher-misc.hash | 2 + .../x11r7/xfont_font-util/xfont_font-util.mk | 1 + .../xkeyboard-config/xkeyboard-config.hash | 4 +- .../xkeyboard-config/xkeyboard-config.mk | 2 +- .../package/x11r7/xlib_libX11/xlib_libX11.mk | 12 + .../package/x11r7/xlib_libXau/xlib_libXau.mk | 2 + .../x11r7/xlib_libXcursor/xlib_libXcursor.mk | 3 + .../x11r7/xlib_libXdmcp/xlib_libXdmcp.mk | 1 + .../x11r7/xlib_libXfixes/xlib_libXfixes.hash | 2 +- .../x11r7/xlib_libXfixes/xlib_libXfixes.mk | 5 +- .../x11r7/xlib_libXfont/xlib_libXfont.mk | 9 +- .../x11r7/xlib_libXrender/xlib_libXrender.mk | 3 + .../x11r7/xlib_libfontenc/xlib_libfontenc.mk | 1 + .../x11r7/xlib_libxkbfile/xlib_libxkbfile.mk | 1 + .../xproto_inputproto/xproto_inputproto.hash | 4 +- .../xproto_inputproto/xproto_inputproto.mk | 2 +- .../xproto_videoproto/xproto_videoproto.hash | 4 +- .../xproto_videoproto/xproto_videoproto.mk | 2 +- .../x11r7/xproto_xproto/xproto_xproto.hash | 4 +- .../x11r7/xproto_xproto/xproto_xproto.mk | 2 +- .../0001-modesettings-needs-dri2.patch | 0 .../1.18.4/0001-modesettings-needs-dri2.patch | 19 + .../x11r7/xserver_xorg-server/Config.in | 14 +- .../xserver_xorg-server.hash | 7 +- .../xserver_xorg-server.mk | 16 +- .../xutil_makedepend/xutil_makedepend.mk | 1 + bsp/buildroot/package/x264/Config.in | 1 + bsp/buildroot/package/x264/x264.mk | 2 +- bsp/buildroot/package/x265/Config.in | 2 + bsp/buildroot/package/x265/x265.hash | 2 +- bsp/buildroot/package/x265/x265.mk | 2 +- bsp/buildroot/package/xen/Config.in | 44 + bsp/buildroot/package/xen/xen.hash | 2 + bsp/buildroot/package/xen/xen.mk | 56 + bsp/buildroot/package/xenomai/Config.in | 18 +- bsp/buildroot/package/xenomai/xenomai.mk | 2 +- bsp/buildroot/package/xerces/xerces.hash | 4 +- bsp/buildroot/package/xerces/xerces.mk | 3 +- bsp/buildroot/package/xfsprogs/xfsprogs.hash | 4 +- bsp/buildroot/package/xfsprogs/xfsprogs.mk | 2 +- bsp/buildroot/package/xinetd/xinetd.hash | 2 + bsp/buildroot/package/xl2tp/xl2tp.hash | 2 + .../package/xmlstarlet/xmlstarlet.hash | 5 +- .../package/xmlstarlet/xmlstarlet.mk | 2 +- .../package/xorriso/0001-fix-musl-build.patch | 20 + bsp/buildroot/package/xorriso/Config.in | 19 +- bsp/buildroot/package/xorriso/Config.in.host | 14 + bsp/buildroot/package/xorriso/xorriso.hash | 2 +- bsp/buildroot/package/xorriso/xorriso.mk | 12 +- .../xtables-addons/xtables-addons.hash | 6 +- .../package/xtables-addons/xtables-addons.mk | 4 +- bsp/buildroot/package/xterm/xterm.hash | 2 +- bsp/buildroot/package/xterm/xterm.mk | 2 +- bsp/buildroot/package/xxhash/xxhash.hash | 2 + .../package/yaffs2utils/yaffs2utils.hash | 2 + ...nd-the-static-library-have-the-same-.patch | 34 + .../package/yajl/0001-math-link.patch | 24 - ...ared-library-build-when-BUILD_SHARED.patch | 39 +- ...ith-shared-libyajl-in-a-shared-build.patch | 127 ++ ...with-libm-when-isnan-is-not-brought-.patch | 64 + bsp/buildroot/package/yajl/yajl.hash | 3 +- bsp/buildroot/package/yajl/yajl.mk | 3 +- bsp/buildroot/package/yaml-cpp/Config.in | 2 - bsp/buildroot/package/yaml-cpp/yaml-cpp.hash | 2 + bsp/buildroot/package/yasm/yasm.mk | 8 +- bsp/buildroot/package/ympd/ympd.hash | 2 + ...n-code-of-sodium_init-is-not-checked.patch | 73 - bsp/buildroot/package/zeromq/Config.in | 16 +- bsp/buildroot/package/zeromq/zeromq.hash | 6 +- bsp/buildroot/package/zeromq/zeromq.mk | 16 +- bsp/buildroot/package/zic/zic.hash | 4 +- bsp/buildroot/package/zic/zic.mk | 2 +- bsp/buildroot/package/zip/Config.in.host | 10 + bsp/buildroot/package/zlog/zlog.hash | 2 + bsp/buildroot/package/zlog/zlog.mk | 2 +- ...lding-shared-or-static-library-only.patch} | 56 +- ...ader-to-ensure-EXIT_FAILURE-presence.patch | 30 - ...ll-static-library-for-static-builds.patch} | 17 +- bsp/buildroot/package/zmqpp/Config.in | 10 +- bsp/buildroot/package/zmqpp/zmqpp.hash | 3 +- bsp/buildroot/package/zmqpp/zmqpp.mk | 4 +- bsp/buildroot/package/znc/znc.hash | 4 +- bsp/buildroot/package/znc/znc.mk | 2 +- ...1-configure-use-user-set-pcre-config.patch | 33 + bsp/buildroot/package/zsh/Config.in | 1 + bsp/buildroot/package/zsh/zsh.mk | 2 + .../package/zxing-cpp/zxing-cpp.hash | 2 +- bsp/buildroot/package/zxing-cpp/zxing-cpp.mk | 2 +- bsp/buildroot/package/zyre/zyre.hash | 2 + bsp/buildroot/package/zyre/zyre.mk | 6 +- .../support/dependencies/check-host-cmake.mk | 7 + .../support/dependencies/check-host-cmake.sh | 30 + .../support/dependencies/dependencies.mk | 4 - bsp/buildroot/support/download/dl-wrapper | 7 +- bsp/buildroot/support/download/git | 51 +- .../support/gnuconfig/README.buildroot | 2 +- bsp/buildroot/support/gnuconfig/config.guess | 350 ++- bsp/buildroot/support/gnuconfig/config.sub | 66 +- .../support/legal-info/README.header | 15 +- bsp/buildroot/support/misc/Vagrantfile | 2 +- .../support/misc/toolchainfile.cmake.in | 5 + .../support/scripts/apply-patches.sh | 21 +- .../support/scripts/check-host-rpath | 2 +- .../support/scripts/graph-build-time | 2 +- bsp/buildroot/support/scripts/graph-depends | 2 +- .../support/scripts/hardlink-or-copy | 35 + bsp/buildroot/support/scripts/pkg-stats | 1 - bsp/buildroot/support/scripts/pycompile.py | 24 + bsp/buildroot/support/scripts/scancpan | 54 +- bsp/buildroot/support/scripts/scanpypi | 653 ++++++ bsp/buildroot/support/scripts/size-stats | 2 +- bsp/buildroot/system/Config.in | 151 +- bsp/buildroot/system/device_table_dev.txt | 1 + bsp/buildroot/system/skeleton/etc/mtab | 2 +- .../skeleton/etc/network/if-pre-up.d/.empty | 0 bsp/buildroot/toolchain/Config.in | 10 +- bsp/buildroot/toolchain/helpers.mk | 174 +- .../toolchain/toolchain-buildroot/Config.in | 47 +- bsp/buildroot/toolchain/toolchain-common.in | 98 +- .../toolchain/toolchain-external/Config.in | 281 ++- .../toolchain-external.hash | 62 +- .../toolchain-external/toolchain-external.mk | 292 +-- bsp/buildroot/toolchain/toolchain.mk | 4 +- 3636 files changed, 59539 insertions(+), 25783 deletions(-) create mode 100644 bsp/buildroot/board/arcturus/ppc-ucp1020/configs/linux-4.1.x.config create mode 100644 bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0001-Arcturus-uCP1020-BSP-support.patch create mode 100644 bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0002-p1020-esdhc-controller-reserved-bit.patch create mode 100644 bsp/buildroot/board/arcturus/ppc-ucp1020/readme.txt create mode 100644 bsp/buildroot/board/armadeus/readme.txt create mode 100644 bsp/buildroot/board/atmel/sama5d2_xplained_mmc/genimage.cfg create mode 100755 bsp/buildroot/board/atmel/sama5d2_xplained_mmc/post-image.sh create mode 100644 bsp/buildroot/board/atmel/sama5d3_xplained_mmc/genimage.cfg create mode 100755 bsp/buildroot/board/atmel/sama5d3_xplained_mmc/post-image.sh create mode 100644 bsp/buildroot/board/atmel/sama5d4_xplained_mmc/genimage.cfg create mode 100755 bsp/buildroot/board/atmel/sama5d4_xplained_mmc/post-image.sh delete mode 100644 bsp/buildroot/board/atmel/xplained/readme.txt delete mode 100644 bsp/buildroot/board/avnet/microzed/readme.txt delete mode 100644 bsp/buildroot/board/avnet/microzed/uboot/0001-zynq-Create-microzed-specific-U-Boot-environment.patch delete mode 100644 bsp/buildroot/board/avnet/zedboard/readme.txt delete mode 100644 bsp/buildroot/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch create mode 100644 bsp/buildroot/board/beaglebone/genimage.cfg rename bsp/buildroot/board/boundarydevices/{nitrogen6x => common}/6x_bootscript.txt (87%) rename bsp/buildroot/board/boundarydevices/{nitrogen6x => common}/6x_upgrade.txt (95%) rename bsp/buildroot/board/boundarydevices/{nitrogen6x => common}/genimage.cfg (100%) rename bsp/buildroot/board/boundarydevices/{nitrogen6x => common}/post-build.sh (100%) rename bsp/buildroot/board/boundarydevices/{nitrogen6x => common}/post-image.sh (100%) create mode 100644 bsp/buildroot/board/boundarydevices/common/readme.txt delete mode 100644 bsp/buildroot/board/boundarydevices/nitrogen6x/readme.txt create mode 100644 bsp/buildroot/board/chromebook/snow/kernel.args create mode 100644 bsp/buildroot/board/chromebook/snow/kernel.its create mode 100644 bsp/buildroot/board/chromebook/snow/linux-4.6-dts-tpm.patch create mode 100644 bsp/buildroot/board/chromebook/snow/linux-4.6.fragment create mode 100755 bsp/buildroot/board/chromebook/snow/mksd.sh create mode 100644 bsp/buildroot/board/chromebook/snow/readme.txt create mode 100755 bsp/buildroot/board/chromebook/snow/sign.sh create mode 100644 bsp/buildroot/board/firefly/firefly-rk3288/extlinux.conf create mode 100755 bsp/buildroot/board/firefly/firefly-rk3288/post-build.sh create mode 100755 bsp/buildroot/board/firefly/firefly-rk3288/post-image.sh create mode 100644 bsp/buildroot/board/firefly/firefly-rk3288/readme.txt create mode 100644 bsp/buildroot/board/firefly/firefly-rk3288/sd-image.cfg create mode 100644 bsp/buildroot/board/freescale/imx25pdk/genimage.cfg create mode 100755 bsp/buildroot/board/freescale/imx25pdk/post-image.sh create mode 100644 bsp/buildroot/board/freescale/imx25pdk/readme.txt create mode 100644 bsp/buildroot/board/freescale/imx51evk/genimage.cfg create mode 100755 bsp/buildroot/board/freescale/imx51evk/post-image.sh create mode 100644 bsp/buildroot/board/freescale/imx51evk/readme.txt delete mode 120000 bsp/buildroot/board/freescale/imx53loco/create-boot-sd.sh create mode 100644 bsp/buildroot/board/freescale/imx53loco/genimage.cfg create mode 100755 bsp/buildroot/board/freescale/imx53loco/post-image.sh create mode 100644 bsp/buildroot/board/freescale/imx7dsdb/genimage.cfg create mode 100755 bsp/buildroot/board/freescale/imx7dsdb/post-image.sh create mode 100644 bsp/buildroot/board/freescale/imx7dsdb/readme.txt rename bsp/buildroot/board/freescale/mpc8315erdb/{linux-4.2.config => linux-4.5.config} (100%) create mode 100644 bsp/buildroot/board/freescale/warpboard/genimage.cfg create mode 100644 bsp/buildroot/board/freescale/warpboard/linux.fragment delete mode 100644 bsp/buildroot/board/freescale/warpboard/patches/linux/0001-hciuart-h4.patch delete mode 100644 bsp/buildroot/board/freescale/warpboard/patches/linux/0002-replace-uart2-by-uart5.patch create mode 100755 bsp/buildroot/board/freescale/warpboard/post-image.sh create mode 100644 bsp/buildroot/board/gdb/bfin-bf512/linux-4.6.config create mode 100644 bsp/buildroot/board/gdb/bfin-bf512/readme.txt create mode 100755 bsp/buildroot/board/gdb/post-build.sh create mode 100644 bsp/buildroot/board/hardkernel/odroidc2/boot.ini create mode 100644 bsp/buildroot/board/hardkernel/odroidc2/genimage.cfg create mode 100755 bsp/buildroot/board/hardkernel/odroidc2/post-image.sh create mode 100644 bsp/buildroot/board/hardkernel/odroidc2/readme.txt create mode 100644 bsp/buildroot/board/linksprite/pcduino/boot.cmd create mode 100644 bsp/buildroot/board/linksprite/pcduino/genimage.cfg create mode 100644 bsp/buildroot/board/linksprite/pcduino/linux-extras.config create mode 100755 bsp/buildroot/board/linksprite/pcduino/post-build.sh create mode 100755 bsp/buildroot/board/linksprite/pcduino/post-image.sh create mode 100644 bsp/buildroot/board/linksprite/pcduino/readme.txt delete mode 100755 bsp/buildroot/board/minnowboard-max/post-build.sh delete mode 100644 bsp/buildroot/board/minnowboard-max/readme.txt create mode 100755 bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/X11/Xsession create mode 100644 bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/asound.conf create mode 100644 bsp/buildroot/board/minnowboard/genimage.cfg rename bsp/buildroot/board/{minnowboard-max/grub.cfg => minnowboard/grub-minnowboard-max.cfg} (53%) rename bsp/buildroot/board/minnowboard/{grub.cfg => grub-minnowboard.cfg} (100%) rename bsp/buildroot/board/{minnowboard-max/linux.config => minnowboard/linux-4.6.config} (78%) create mode 100755 bsp/buildroot/board/minnowboard/post-image.sh create mode 100644 bsp/buildroot/board/olimex/a20_olinuxino/genimage.cfg create mode 100755 bsp/buildroot/board/olimex/a20_olinuxino/post-image.sh create mode 100644 bsp/buildroot/board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg delete mode 100644 bsp/buildroot/board/olimex/imx233_olinuxino/mxs-bootlets/mxs-bootlets-01-olinuxino.patch create mode 100755 bsp/buildroot/board/olimex/imx233_olinuxino/post-image.sh create mode 100644 bsp/buildroot/board/pandaboard/genimage.cfg create mode 100755 bsp/buildroot/board/pandaboard/post-image.sh create mode 100644 bsp/buildroot/board/pandaboard/readme.txt create mode 100644 bsp/buildroot/board/pc/genimage-bios.cfg create mode 100644 bsp/buildroot/board/pc/genimage-efi.cfg create mode 100644 bsp/buildroot/board/pc/linux-extras.config create mode 100755 bsp/buildroot/board/pc/post-image.sh create mode 100644 bsp/buildroot/board/pc/readme.txt rename bsp/buildroot/board/qemu/aarch64-virt/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/arm-versatile/{linux-4.4.config => linux-4.7.config} (92%) create mode 100644 bsp/buildroot/board/qemu/m68k-mcf5208/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/m68k-mcf5208/patches/linux/m68knommu-fix-signal.patch create mode 100644 bsp/buildroot/board/qemu/m68k-mcf5208/readme.txt create mode 100644 bsp/buildroot/board/qemu/m68k-q800/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/m68k-q800/readme.txt rename bsp/buildroot/board/qemu/microblazebe-mmu/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/microblazeel-mmu/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/{mips-malta/linux-4.3.config => mips32r2-malta/linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/{mips-malta => mips32r2-malta}/readme.txt (93%) rename bsp/buildroot/board/qemu/{mipsel-malta/linux-4.3.config => mips32r2el-malta/linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/{mipsel-malta => mips32r2el-malta}/readme.txt (93%) create mode 100644 bsp/buildroot/board/qemu/mips32r6-malta/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/mips32r6-malta/readme.txt create mode 100644 bsp/buildroot/board/qemu/mips32r6el-malta/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/mips32r6el-malta/readme.txt rename bsp/buildroot/board/qemu/mips64-malta/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/mips64el-malta/{linux-4.4.config => linux-4.7.config} (100%) create mode 100644 bsp/buildroot/board/qemu/mips64r6-malta/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/mips64r6-malta/readme.txt create mode 100644 bsp/buildroot/board/qemu/mips64r6el-malta/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/mips64r6el-malta/readme.txt rename bsp/buildroot/board/qemu/ppc-g3beige/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/ppc-mpc8544ds/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/ppc-virtex-ml507/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/sh4-r2d/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/sh4eb-r2d/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/sparc-ss10/{linux-4.4.config => linux-4.7.config} (100%) rename bsp/buildroot/board/qemu/sparc64-sun4u/{linux-4.4.config => linux-4.7.config} (100%) delete mode 100644 bsp/buildroot/board/qemu/x86/linux-4.4.config create mode 120000 bsp/buildroot/board/qemu/x86/linux-4.7.config delete mode 100644 bsp/buildroot/board/qemu/x86_64/linux-4.4.config create mode 100644 bsp/buildroot/board/qemu/x86_64/linux-4.7.config create mode 100644 bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7-nommu.config rename bsp/buildroot/board/qemu/xtensa-lx60/{linux-4.4.config => linux-4.7.config} (91%) rename bsp/buildroot/board/qemu/xtensa-lx60/{xtensa_dc232b.tar => xtensa_dc233c.tar} (65%) create mode 100644 bsp/buildroot/board/raspberrypi/genimage-raspberrypi0.cfg create mode 100644 bsp/buildroot/board/raspberrypi/genimage-raspberrypi3.cfg create mode 100755 bsp/buildroot/board/raspberrypi/post-build.sh create mode 120000 bsp/buildroot/board/raspberrypi0 create mode 120000 bsp/buildroot/board/raspberrypi3 create mode 100644 bsp/buildroot/board/roseapplepi/genimage.cfg create mode 100644 bsp/buildroot/board/roseapplepi/patches/linux/0001-unbreak-xhci-trace.patch create mode 100755 bsp/buildroot/board/roseapplepi/post-image.sh create mode 100755 bsp/buildroot/board/roseapplepi/uEnv.txt create mode 100755 bsp/buildroot/board/stmicroelectronics/stm32-post-build.sh create mode 100755 bsp/buildroot/board/stmicroelectronics/stm32f429-disco/flash.sh create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f429-disco/patches/linux/0001-ARM-stm32f249-disco-don-t-force-init-in-chosen-boota.patch create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f429-disco/readme.txt create mode 100755 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/flash.sh create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0001-ARM-stm32-Identify-a-new-board-STM32F469.patch create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0002-ARM-stm32-Supply-a-DTS-file-for-the-STM32F469-Discov.patch create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0003-ARM-configs-Add-new-config-fragment-to-change-RAM-st.patch create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0001-add-config.patch create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0002-flash-nor.patch create mode 100644 bsp/buildroot/board/stmicroelectronics/stm32f469-disco/readme.txt create mode 100644 bsp/buildroot/board/technexion/imx6ulpico/genimage.cfg create mode 100644 bsp/buildroot/board/technexion/imx6ulpico/linux.fragment create mode 100644 bsp/buildroot/board/technexion/imx6ulpico/patches/linux/0001-picowifi.patch create mode 100755 bsp/buildroot/board/technexion/imx6ulpico/post-image.sh create mode 100644 bsp/buildroot/board/technexion/imx6ulpico/readme.txt create mode 100644 bsp/buildroot/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt create mode 100644 bsp/buildroot/board/technologic/ts4800/genimage.cfg create mode 100644 bsp/buildroot/board/technologic/ts4800/linux.fragment create mode 100755 bsp/buildroot/board/technologic/ts4800/post-image.sh create mode 100644 bsp/buildroot/board/technologic/ts4800/readme.txt rename bsp/buildroot/board/{ts => technologic}/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg (100%) rename bsp/buildroot/board/{ts => technologic}/ts5x00/linux-3.17.config (100%) rename bsp/buildroot/board/{ts => technologic}/ts5x00/readme.txt (100%) create mode 100644 bsp/buildroot/board/toradex/apalis-imx6/genimage.cfg create mode 100755 bsp/buildroot/board/toradex/apalis-imx6/post-image.sh create mode 100644 bsp/buildroot/board/toradex/apalis-imx6/readme.txt create mode 100644 bsp/buildroot/board/toradex/apalis-imx6/uEnv.txt delete mode 100644 bsp/buildroot/board/xilinx/zc706/readme.txt create mode 100644 bsp/buildroot/board/zynq/readme.txt create mode 100644 bsp/buildroot/boot/afboot-stm32/0001-Use-ld-instead-of-gcc-for-linking.patch create mode 100644 bsp/buildroot/boot/afboot-stm32/Config.in create mode 100644 bsp/buildroot/boot/afboot-stm32/afboot-stm32.hash create mode 100644 bsp/buildroot/boot/afboot-stm32/afboot-stm32.mk create mode 100644 bsp/buildroot/boot/at91bootstrap/at91bootstrap.hash create mode 100644 bsp/buildroot/boot/at91dataflashboot/at91dataflashboot.hash create mode 100644 bsp/buildroot/boot/barebox/barebox-aux/Config.in create mode 120000 bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.hash create mode 100644 bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.mk create mode 100644 bsp/buildroot/boot/barebox/barebox/Config.in create mode 120000 bsp/buildroot/boot/barebox/barebox/barebox.hash create mode 100644 bsp/buildroot/boot/barebox/barebox/barebox.mk rename bsp/buildroot/boot/grub2/{grub2-remove-gets.patch => 0001-remove-gets.patch} (100%) create mode 100644 bsp/buildroot/boot/grub2/0002-grub-core-gettext-gettext.c-main_context-secondary_c.patch create mode 100644 bsp/buildroot/boot/mxs-bootlets/mxs-bootlets.hash create mode 100644 bsp/buildroot/boot/s500-bootloader/Config.in create mode 100644 bsp/buildroot/boot/s500-bootloader/s500-bootloader.hash create mode 100644 bsp/buildroot/boot/s500-bootloader/s500-bootloader.mk create mode 100644 bsp/buildroot/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch create mode 100644 bsp/buildroot/boot/ts4800-mbrboot/Config.in create mode 100644 bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.hash create mode 100644 bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.mk create mode 100644 bsp/buildroot/configs/arcturus_ucp1020_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_dev_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d3_xplained_dev_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_dev_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d4_xplained_dev_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_defconfig create mode 100644 bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_dev_defconfig create mode 100644 bsp/buildroot/configs/chromebook_snow_defconfig create mode 100644 bsp/buildroot/configs/firefly_rk3288_defconfig create mode 100644 bsp/buildroot/configs/firefly_rk3288_demo_defconfig create mode 100644 bsp/buildroot/configs/freescale_imx7dsabresd_defconfig create mode 100644 bsp/buildroot/configs/gdb_bfin_bf512_defconfig create mode 100644 bsp/buildroot/configs/imx6ulpico_defconfig create mode 100644 bsp/buildroot/configs/linksprite_pcduino_defconfig delete mode 100644 bsp/buildroot/configs/microzed_defconfig create mode 100644 bsp/buildroot/configs/minnowboard_max-graphical_defconfig create mode 100644 bsp/buildroot/configs/mx25pdk_defconfig create mode 100644 bsp/buildroot/configs/mx51evk_defconfig create mode 100644 bsp/buildroot/configs/nitrogen7_defconfig create mode 100644 bsp/buildroot/configs/odroidc2_defconfig create mode 100644 bsp/buildroot/configs/pc_x86_64_bios_defconfig create mode 100644 bsp/buildroot/configs/pc_x86_64_efi_defconfig create mode 100644 bsp/buildroot/configs/qemu_m68k_mcf5208_defconfig create mode 100644 bsp/buildroot/configs/qemu_m68k_q800_defconfig rename bsp/buildroot/configs/{qemu_mips_malta_defconfig => qemu_mips32r2_malta_defconfig} (62%) rename bsp/buildroot/configs/{qemu_mipsel_malta_defconfig => qemu_mips32r2el_malta_defconfig} (62%) create mode 100644 bsp/buildroot/configs/qemu_mips32r6_malta_defconfig create mode 100644 bsp/buildroot/configs/qemu_mips32r6el_malta_defconfig create mode 100644 bsp/buildroot/configs/qemu_mips64r6_malta_defconfig create mode 100644 bsp/buildroot/configs/qemu_mips64r6el_malta_defconfig create mode 100644 bsp/buildroot/configs/qemu_xtensa_lx60_nommu_defconfig create mode 100644 bsp/buildroot/configs/raspberrypi0_defconfig create mode 100644 bsp/buildroot/configs/raspberrypi3_defconfig create mode 100644 bsp/buildroot/configs/roseapplepi_defconfig delete mode 100644 bsp/buildroot/configs/snps_hs38_vdk_defconfig create mode 100644 bsp/buildroot/configs/stm32f429_disco_defconfig create mode 100644 bsp/buildroot/configs/stm32f469_disco_defconfig create mode 100644 bsp/buildroot/configs/toradex_apalis_imx6_defconfig create mode 100644 bsp/buildroot/configs/ts4800_defconfig delete mode 100644 bsp/buildroot/configs/zedboard_defconfig create mode 100644 bsp/buildroot/configs/zynq_microzed_defconfig rename bsp/buildroot/configs/{xilinx_zc706_defconfig => zynq_zc706_defconfig} (50%) create mode 100644 bsp/buildroot/configs/zynq_zed_defconfig create mode 100644 bsp/buildroot/docs/website/images/owi-smile-logo.png create mode 100644 bsp/buildroot/linux/linux-tool-selftests.mk create mode 100644 bsp/buildroot/package/4th/0001-avoid-regen-during-install.patch create mode 100644 bsp/buildroot/package/4th/4th.hash create mode 100644 bsp/buildroot/package/4th/4th.mk create mode 100644 bsp/buildroot/package/4th/Config.in create mode 100644 bsp/buildroot/package/a10disp/a10disp.hash create mode 100644 bsp/buildroot/package/acpica/0001-build-do-not-use-Werror.patch create mode 100644 bsp/buildroot/package/acpica/Config.in create mode 100644 bsp/buildroot/package/acpica/acpica.hash create mode 100644 bsp/buildroot/package/acpica/acpica.mk delete mode 100644 bsp/buildroot/package/acpid/0003-support-for-non-glibc-libcs.patch create mode 100644 bsp/buildroot/package/acpitool/Config.in create mode 100644 bsp/buildroot/package/acpitool/acpitool.hash create mode 100644 bsp/buildroot/package/acpitool/acpitool.mk create mode 100644 bsp/buildroot/package/aer-inject/Config.in create mode 100644 bsp/buildroot/package/aer-inject/aer-inject.mk delete mode 100644 bsp/buildroot/package/aircrack-ng/0004-fix-musl-build.patch create mode 100644 bsp/buildroot/package/alljoyn-base/Config.in create mode 100644 bsp/buildroot/package/alljoyn-base/alljoyn-base.hash create mode 100644 bsp/buildroot/package/alljoyn-base/alljoyn-base.mk create mode 100644 bsp/buildroot/package/alljoyn-tcl-base/Config.in create mode 100644 bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.hash create mode 100644 bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.mk create mode 100644 bsp/buildroot/package/alljoyn-tcl/Config.in create mode 100644 bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.hash create mode 100644 bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.mk create mode 100644 bsp/buildroot/package/alljoyn/0001-UARTStreamLinux-fix-build-on-sparc.patch create mode 100644 bsp/buildroot/package/alljoyn/Config.in create mode 100644 bsp/buildroot/package/alljoyn/alljoyn.hash create mode 100644 bsp/buildroot/package/alljoyn/alljoyn.mk delete mode 100644 bsp/buildroot/package/alsa-lib/0001-add-missing-include.patch rename bsp/buildroot/package/alsa-lib/{0005-musl-pcm-h.patch => 0001-musl-pcm-h.patch} (100%) delete mode 100644 bsp/buildroot/package/alsa-utils/0001-bat-Avoid-local-signal.h-file.patch delete mode 100644 bsp/buildroot/package/alsa-utils/0002-bat-Don-t-pass-incompatible-function-pointers-to-pth.patch create mode 100644 bsp/buildroot/package/am335x-pru-package/am335x-pru-package.hash create mode 100644 bsp/buildroot/package/android-tools/0001-Fix-makefiles-for-out-of-tree-build.patch create mode 100644 bsp/buildroot/package/android-tools/0002-Fix-adbd-for-non-Ubuntu-systems.patch create mode 100644 bsp/buildroot/package/android-tools/0003-Fix-build-issue-with-uclibc.patch create mode 100644 bsp/buildroot/package/android-tools/0004-Fix-build-issue-with-musl.patch create mode 100644 bsp/buildroot/package/android-tools/0005-fix-static-link-zlib.patch create mode 100644 bsp/buildroot/package/android-tools/0006-fix-big-endian-build.patch create mode 100644 bsp/buildroot/package/android-tools/0007-include-cdefs-h-when-needed.patch create mode 100644 bsp/buildroot/package/android-tools/Config.in create mode 100644 bsp/buildroot/package/android-tools/Config.in.host create mode 100644 bsp/buildroot/package/android-tools/android-tools.hash create mode 100644 bsp/buildroot/package/android-tools/android-tools.mk create mode 100644 bsp/buildroot/package/apitrace/apitrace.hash create mode 100644 bsp/buildroot/package/argparse/Config.in create mode 100644 bsp/buildroot/package/argparse/argparse.hash create mode 100644 bsp/buildroot/package/argparse/argparse.mk create mode 100644 bsp/buildroot/package/assimp/assimp.hash create mode 100644 bsp/buildroot/package/audiofile/0002-cast-to-unsigned-gcc6.patch create mode 100644 bsp/buildroot/package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch create mode 100644 bsp/buildroot/package/autofs/0003-configure-add-cache-variable-for-Linux-proc-filesyst.patch delete mode 100644 bsp/buildroot/package/avahi/0004-no-gtk-deprecations.patch create mode 100644 bsp/buildroot/package/avrdude/avrdude.hash create mode 100644 bsp/buildroot/package/babeld/0001-kernel_netlink.c-don-t-include-linux-if_bridge.h.patch create mode 100644 bsp/buildroot/package/babeld/Config.in create mode 100644 bsp/buildroot/package/babeld/S50babeld create mode 100644 bsp/buildroot/package/babeld/babeld.hash create mode 100644 bsp/buildroot/package/babeld/babeld.mk create mode 100644 bsp/buildroot/package/babeld/babeld.service create mode 100644 bsp/buildroot/package/bandwidthd/bandwidthd.hash create mode 100644 bsp/buildroot/package/bash/0043-patchlevel-43.patch create mode 100644 bsp/buildroot/package/bash/0044-patchlevel-44.patch create mode 100644 bsp/buildroot/package/bash/0045-patchlevel-45.patch create mode 100644 bsp/buildroot/package/bash/0046-patchlevel-46.patch create mode 100644 bsp/buildroot/package/batman-adv/Config.in create mode 100644 bsp/buildroot/package/batman-adv/batman-adv.hash create mode 100644 bsp/buildroot/package/batman-adv/batman-adv.mk delete mode 100644 bsp/buildroot/package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch rename bsp/buildroot/package/bcusdk/{0002-fd_set-requires-inclusion-of-sys-select.h.patch => 0001-fd_set-requires-inclusion-of-sys-select.h.patch} (100%) create mode 100644 bsp/buildroot/package/bdwgc/0004-configure-match-uclinux-pattern.patch delete mode 100644 bsp/buildroot/package/bind/0001-Fix-LibreSSL-compatibility.-RT-40977.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/120-sh-conf.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/300-001_ld_makefile_patch.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/300-012_check_ldrunpath_length.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/900-xtensa-trampolines.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/901-xtensa-gas-first-frag-alignment.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/902-xtensa-gas-ld-diff-relocation-signed.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/903-xtensa-fix-ld-segfault-when-linking-linux-modules.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/904-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/905-Fix-trampolines-search-code-for-conditional-branches.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/912-xtensa-fix-gas-segfault-with-text-section-literals.patch delete mode 100644 bsp/buildroot/package/binutils/2.23.2/914-xtensa-fix-signedness-of-gas-relocations.patch create mode 100644 bsp/buildroot/package/binutils/2.26.1/0120-sh-conf.patch create mode 100644 bsp/buildroot/package/binutils/2.26.1/0300-ld-makefile.patch create mode 100644 bsp/buildroot/package/binutils/2.26.1/0301-check-ldrunpath-length.patch rename bsp/buildroot/package/binutils/{2.23.2/500-sysroot.patch => 2.26.1/0500-add-sysroot-fix-from-bug-3049.patch} (69%) rename bsp/buildroot/package/binutils/{2.23.2/600-poison-system-directories.patch => 2.26.1/0600-poison-system-directories.patch} (70%) create mode 100644 bsp/buildroot/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch create mode 100644 bsp/buildroot/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch create mode 100644 bsp/buildroot/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch rename bsp/buildroot/package/binutils/{2.23.2/915-xtensa-fix-.init-.fini-literals-moving.patch => 2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch} (50%) create mode 100644 bsp/buildroot/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch create mode 100644 bsp/buildroot/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch delete mode 100644 bsp/buildroot/package/binutils/arc-2015.12/0001-PR-other-56780.patch create mode 100644 bsp/buildroot/package/binutils/arc-2016.09-eng010/0300-ld-makefile.patch create mode 100644 bsp/buildroot/package/binutils/arc-2016.09-eng010/0301-check-ldrunpath-length.patch create mode 100644 bsp/buildroot/package/binutils/arc-2016.09-eng010/0500-add-sysroot-fix-from-bug-3049.patch rename bsp/buildroot/package/binutils/{arc-2015.12/600-poison-system-directories.patch => arc-2016.09-eng010/0600-poison-system-directories.patch} (70%) delete mode 100644 bsp/buildroot/package/bluez5_utils/0001-tools-avinfo-Fix-big-endian-build.patch create mode 100644 bsp/buildroot/package/bluez5_utils/0001-tools-bneptest.c-Remove-include-linux-if_bridge.h-to.patch create mode 100644 bsp/buildroot/package/boost/0003-fenv.patch delete mode 100644 bsp/buildroot/package/boost/0003-fix-libquadmath-issue.patch delete mode 100644 bsp/buildroot/package/boost/0004-fix-declaration-error-with-gcc-4-4.patch create mode 100644 bsp/buildroot/package/boost/0004-fix-getchar-with-uclibc-and-gcc-bug-58952.patch delete mode 100644 bsp/buildroot/package/boost/0005-fix-undeclared-isnan.patch delete mode 100644 bsp/buildroot/package/boost/0006-uclibc-fenv.patch create mode 100644 bsp/buildroot/package/btrfs-progs/0004-Makefile.in-install-static-library-and-headers-in-in.patch create mode 100644 bsp/buildroot/package/bullet/bullet.hash rename bsp/buildroot/package/busybox/{0008-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch => 0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch} (100%) delete mode 100644 bsp/buildroot/package/busybox/0002-unzip.patch delete mode 100644 bsp/buildroot/package/busybox/0003-g-unzip-fix-recent-breakage.patch create mode 100644 bsp/buildroot/package/busybox/0003-gzip.patch create mode 100644 bsp/buildroot/package/busybox/0004-ip.patch delete mode 100644 bsp/buildroot/package/busybox/0004-truncate-open-mode.patch create mode 100644 bsp/buildroot/package/busybox/0005-ntpd.patch create mode 100644 bsp/buildroot/package/busybox/0006-top-move-free-prev_hist-out-of-signal-path.patch create mode 100644 bsp/buildroot/package/busybox/busybox-minimal.config create mode 100644 bsp/buildroot/package/c-periphery/c-periphery.hash create mode 100644 bsp/buildroot/package/can-utils/can-utils.hash create mode 100644 bsp/buildroot/package/cannelloni/Config.in create mode 100644 bsp/buildroot/package/cannelloni/cannelloni.hash create mode 100644 bsp/buildroot/package/cannelloni/cannelloni.mk create mode 100644 bsp/buildroot/package/cbootimage/Config.in.host create mode 100644 bsp/buildroot/package/cbootimage/cbootimage.hash create mode 100644 bsp/buildroot/package/cbootimage/cbootimage.mk create mode 100644 bsp/buildroot/package/cgroupfs-mount/Config.in create mode 100644 bsp/buildroot/package/cgroupfs-mount/S30cgroupfs create mode 100644 bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.hash create mode 100644 bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.mk create mode 100644 bsp/buildroot/package/chocolate-doom/0004-configure-Switch-to-pkg-config-macros.patch delete mode 100644 bsp/buildroot/package/cifs-utils/0001-mtab.c-include-paths.h-for-_PATH_MOUNTED.patch create mode 100644 bsp/buildroot/package/circus/Config.in create mode 100644 bsp/buildroot/package/circus/circus.hash create mode 100644 bsp/buildroot/package/circus/circus.mk create mode 100644 bsp/buildroot/package/civetweb/civetweb.hash create mode 100644 bsp/buildroot/package/collectd/collectd.service create mode 100644 bsp/buildroot/package/connman-gtk/Config.in create mode 100644 bsp/buildroot/package/connman-gtk/connman-gtk.hash create mode 100644 bsp/buildroot/package/connman-gtk/connman-gtk.mk delete mode 100644 bsp/buildroot/package/connman/0001-configure-check-for-execinfo.h.patch create mode 100644 bsp/buildroot/package/connman/0002-nat-build-failure.patch create mode 100644 bsp/buildroot/package/cosmo/cosmo.hash create mode 100644 bsp/buildroot/package/cpio/0001-fix-CVE-2016-2037.patch create mode 100644 bsp/buildroot/package/cppzmq/cppzmq.hash create mode 100644 bsp/buildroot/package/cpuload/cpuload.hash delete mode 100644 bsp/buildroot/package/crda/0001-Makefile-allow-to-override-python-interpreter.patch create mode 100644 bsp/buildroot/package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch create mode 100644 bsp/buildroot/package/crda/0003-drop-werror.patch create mode 100644 bsp/buildroot/package/crudini/Config.in create mode 100644 bsp/buildroot/package/crudini/crudini.hash create mode 100644 bsp/buildroot/package/crudini/crudini.mk create mode 100644 bsp/buildroot/package/cryptopp/cryptopp.hash create mode 100644 bsp/buildroot/package/cryptopp/cryptopp.mk create mode 100644 bsp/buildroot/package/cups/0004-Remove-PIE-flags-from-the-build.patch create mode 100644 bsp/buildroot/package/cups/0005-Fix-static-linking-with-GnuTLS.patch create mode 100644 bsp/buildroot/package/czmq/czmq.hash create mode 100644 bsp/buildroot/package/dante/0001-fix-sparc-compile.patch create mode 100644 bsp/buildroot/package/dante/0002-compiler.m4-do-not-remove-g-flag.patch create mode 100644 bsp/buildroot/package/dante/Config.in create mode 100644 bsp/buildroot/package/dante/S50dante create mode 100644 bsp/buildroot/package/dante/dante.hash create mode 100644 bsp/buildroot/package/dante/dante.mk create mode 100644 bsp/buildroot/package/dante/dante.service create mode 100644 bsp/buildroot/package/dawgdic/dawgdic.hash create mode 100644 bsp/buildroot/package/dhcp/0001-dhcp-cross-compile.patch create mode 100644 bsp/buildroot/package/dhcp/0002-bind-cross-compile.patch create mode 100644 bsp/buildroot/package/dhcp/0003-bind-host-cc.patch create mode 100644 bsp/buildroot/package/docker-containerd/Config.in create mode 100644 bsp/buildroot/package/docker-containerd/docker-containerd.hash create mode 100644 bsp/buildroot/package/docker-containerd/docker-containerd.mk create mode 100644 bsp/buildroot/package/docker-engine/0001-Fix-issues-with-tailing-rotated-jsonlog-file.patch create mode 100644 bsp/buildroot/package/docker-engine/Config.in create mode 100644 bsp/buildroot/package/docker-engine/docker-engine.hash create mode 100644 bsp/buildroot/package/docker-engine/docker-engine.mk create mode 100644 bsp/buildroot/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch create mode 100644 bsp/buildroot/package/domoticz/Config.in create mode 100644 bsp/buildroot/package/domoticz/S99domoticz create mode 100644 bsp/buildroot/package/domoticz/domoticz.hash create mode 100644 bsp/buildroot/package/domoticz/domoticz.mk create mode 100644 bsp/buildroot/package/domoticz/domoticz.service create mode 100644 bsp/buildroot/package/dosfstools/0001-mkfs-Default-to-64-32-heads-sectors-for-targets-smalle.patch delete mode 100644 bsp/buildroot/package/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch create mode 100644 bsp/buildroot/package/dsp-tools/dsp-tools.hash create mode 100644 bsp/buildroot/package/dt/0001-adjust-os-symlink.patch create mode 100644 bsp/buildroot/package/dt/0002-dt-default-source-define.patch create mode 100644 bsp/buildroot/package/dt/Config.in create mode 100644 bsp/buildroot/package/dt/dt.hash create mode 100644 bsp/buildroot/package/dt/dt.mk create mode 100644 bsp/buildroot/package/duma/0003-fix-C++14.patch create mode 100644 bsp/buildroot/package/e2fsprogs/0002-fuse2fs-might-need-librt.patch create mode 100644 bsp/buildroot/package/e2fsprogs/0003-fuse2fs-needs-SYSLIBS.patch create mode 100644 bsp/buildroot/package/e2tools/e2tools.hash create mode 100644 bsp/buildroot/package/efibootmgr/Config.in create mode 100644 bsp/buildroot/package/efibootmgr/efibootmgr.hash create mode 100644 bsp/buildroot/package/efibootmgr/efibootmgr.mk create mode 100644 bsp/buildroot/package/efivar/0001-Workaround-rename-of-linux-nvme.h.patch create mode 100644 bsp/buildroot/package/efivar/0002-Make.rules-fix-build-with-make-3.81.patch create mode 100644 bsp/buildroot/package/efivar/Config.in create mode 100644 bsp/buildroot/package/efivar/efivar.hash create mode 100644 bsp/buildroot/package/efivar/efivar.mk delete mode 100644 bsp/buildroot/package/ejabberd/0001-remove-deps.patch create mode 100644 bsp/buildroot/package/ejabberd/0001-remove-make-targets-for-deps.patch delete mode 100644 bsp/buildroot/package/ejabberd/0002-disable-rebar-deps.patch create mode 100644 bsp/buildroot/package/ejabberd/0002-remove-dependencies-from-rebar-config.patch delete mode 100644 bsp/buildroot/package/ejabberd/0003-disable-test.patch create mode 100644 bsp/buildroot/package/ejabberd/0003-remove-checking-erlang-version.patch create mode 100644 bsp/buildroot/package/ejabberd/0004-correct-include.patch delete mode 100644 bsp/buildroot/package/ejabberd/0004-disable-version-check.patch create mode 100644 bsp/buildroot/package/ejabberd/0005-disable-ERLANG_DEPRECATED_CHECK.patch delete mode 100644 bsp/buildroot/package/ejabberd/0005-fix-includes.patch delete mode 100644 bsp/buildroot/package/ejabberd/0006-disable-erlang-deprecated-types-check.patch rename bsp/buildroot/package/ejabberd/{0007-fix-install-permissions.patch => 0006-fix-install-permissions.patch} (73%) rename bsp/buildroot/package/ejabberd/{0008-fix-ejabberdctl.patch => 0007-fix-ejabberdctl.patch} (56%) create mode 100644 bsp/buildroot/package/elementary/0001-lib-remove-.eo.h-files-from-includesub_HEADERS.patch create mode 100644 bsp/buildroot/package/elf2flt/0001-elf2flt-fix-relocation-support-for-R_ARM_TARGET-type.patch create mode 100644 bsp/buildroot/package/elf2flt/elf2flt.hash delete mode 100644 bsp/buildroot/package/elfutils/0001-argp-support.patch delete mode 100644 bsp/buildroot/package/elfutils/0007-Allow-disabling-symbol-versioning-at-configure-time.patch delete mode 100644 bsp/buildroot/package/emlog/0001-Fix-access-to-the-dentry.patch create mode 100644 bsp/buildroot/package/enlightenment/0001-E-include-uuid.h-only-when-Wayland-support-is-enable.patch create mode 100644 bsp/buildroot/package/erlang-goldrush/erlang-goldrush.hash create mode 100644 bsp/buildroot/package/erlang-lager/erlang-lager.hash create mode 100644 bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.hash create mode 100644 bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.hash create mode 100644 bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.hash create mode 100644 bsp/buildroot/package/erlang-p1-stringprep/0001-Stdint-is-required-on-windows.patch create mode 100644 bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.hash create mode 100644 bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.hash create mode 100644 bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.hash create mode 100644 bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.hash create mode 100644 bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.hash create mode 100644 bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.hash create mode 100644 bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.hash create mode 100644 bsp/buildroot/package/erlang-rebar/erlang-rebar.hash delete mode 100644 bsp/buildroot/package/erlang/0004-erts-fix-incorrect-use-of-ac-egrep-cpp.patch create mode 100644 bsp/buildroot/package/eudev/0002-src-shared-missing.h-fix-getrandom-system-call-numbe.patch create mode 100644 bsp/buildroot/package/evtest/evtest.hash delete mode 100644 bsp/buildroot/package/expat/0001-fix-CVE-2015-1283.patch create mode 100644 bsp/buildroot/package/explorercanvas/explorercanvas.hash delete mode 100644 bsp/buildroot/package/f2fs-tools/0001-configure-add-check-for-fallocate.patch create mode 100644 bsp/buildroot/package/faifa/faifa.hash create mode 100644 bsp/buildroot/package/faketime/faketime.hash delete mode 100644 bsp/buildroot/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch create mode 100644 bsp/buildroot/package/fastd/fastd.hash create mode 100644 bsp/buildroot/package/fb-test-app/fb-test-app.hash create mode 100644 bsp/buildroot/package/fbset/0001-Fix-musl-compile.patch create mode 100644 bsp/buildroot/package/fbterm/0003-C++11-compliance.patch create mode 100644 bsp/buildroot/package/fbtft/fbtft.hash create mode 100644 bsp/buildroot/package/fcgiwrap/0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch create mode 100644 bsp/buildroot/package/fcgiwrap/fcgiwrap.hash delete mode 100644 bsp/buildroot/package/ffmpeg/0013-add-public-version-of-ff_read_frame_flush.patch create mode 100644 bsp/buildroot/package/ffmpeg/0013-bfin-disable-optimization.patch create mode 100644 bsp/buildroot/package/ficl/0001-fix-Makefile.patch create mode 100644 bsp/buildroot/package/ficl/Config.in create mode 100644 bsp/buildroot/package/ficl/ficl.hash create mode 100644 bsp/buildroot/package/ficl/ficl.mk create mode 100644 bsp/buildroot/package/filemq/filemq.hash delete mode 100644 bsp/buildroot/package/fio/0001-compile-fix-for-linux-header-changes.patch create mode 100644 bsp/buildroot/package/flann/flann.hash create mode 100644 bsp/buildroot/package/flannel/Config.in create mode 100644 bsp/buildroot/package/flannel/flannel.hash create mode 100644 bsp/buildroot/package/flannel/flannel.mk create mode 100644 bsp/buildroot/package/flex/0002-fix-CVE-2016-6354.patch create mode 100644 bsp/buildroot/package/fmc/fmc.hash create mode 100644 bsp/buildroot/package/fmlib/fmlib.hash create mode 100644 bsp/buildroot/package/font-awesome/Config.in create mode 100644 bsp/buildroot/package/font-awesome/font-awesome.hash create mode 100644 bsp/buildroot/package/font-awesome/font-awesome.mk delete mode 100644 bsp/buildroot/package/foomatic-filters/Config.in delete mode 100644 bsp/buildroot/package/foomatic-filters/foomatic-filters.mk create mode 100644 bsp/buildroot/package/freerdp/0004-ffmpeg30.patch create mode 100644 bsp/buildroot/package/freerdp/freerdp.hash create mode 100644 bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash create mode 100644 bsp/buildroot/package/freescale-imx/imx-codec/Config.in create mode 100644 bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.hash create mode 100644 bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.mk create mode 100644 bsp/buildroot/package/freescale-imx/imx-parser/Config.in create mode 100644 bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.hash create mode 100644 bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.mk create mode 100644 bsp/buildroot/package/freescale-imx/imx-uuc/Config.in create mode 100644 bsp/buildroot/package/freescale-imx/imx-uuc/S80imx-uuc create mode 100644 bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.hash create mode 100644 bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.mk create mode 100644 bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.service create mode 100644 bsp/buildroot/package/freescale-imx/imx-vpuwrap/Config.in create mode 100644 bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.hash create mode 100644 bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.mk create mode 100644 bsp/buildroot/package/freescale-imx/libz160/libz160.hash create mode 100644 bsp/buildroot/package/freeswitch/0001-libvpx-cross.patch create mode 100644 bsp/buildroot/package/freeswitch/Config.in create mode 100644 bsp/buildroot/package/freeswitch/freeswitch.hash create mode 100644 bsp/buildroot/package/freeswitch/freeswitch.mk create mode 100644 bsp/buildroot/package/fwup/Config.in create mode 100644 bsp/buildroot/package/fwup/Config.in.host create mode 100644 bsp/buildroot/package/fwup/fwup.hash create mode 100644 bsp/buildroot/package/fwup/fwup.mk create mode 100644 bsp/buildroot/package/gadgetfs-test/gadgetfs-test.hash create mode 100644 bsp/buildroot/package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch delete mode 100644 bsp/buildroot/package/gcc/4.5.4/1000-powerpc-link-with-math-lib.patch.conditional delete mode 100644 bsp/buildroot/package/gcc/4.5.4/302-c99-snprintf.patch delete mode 100644 bsp/buildroot/package/gcc/4.5.4/305-libmudflap-susv3-legacy.patch delete mode 100644 bsp/buildroot/package/gcc/4.5.4/810-arm-softfloat-libgcc.patch delete mode 100644 bsp/buildroot/package/gcc/4.5.4/830-arm-pr43440.patch create mode 100644 bsp/buildroot/package/gcc/4.7.4/130-pr43538.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/130-fix_build_with_gcc-6.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/130-pr43538.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/890-fix-m68k-compile.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/891-fix-m68k-uclinux.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/930-libgcc-disable-split-stack-nothreads.patch create mode 100644 bsp/buildroot/package/gcc/4.8.5/940-uclinux-enable-threads.patch delete mode 100644 bsp/buildroot/package/gcc/4.9.3/850-libstdcxx-uclibc-c99.patch delete mode 100644 bsp/buildroot/package/gcc/4.9.3/920-libgcc-remove-unistd-header.patch rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/100-uclibc-conf.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/1000-powerpc-link-with-math-lib.patch.conditional (84%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/111-pr65730.patch (85%) rename bsp/buildroot/package/gcc/{5.3.0 => 4.9.4}/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch (87%) create mode 100644 bsp/buildroot/package/gcc/4.9.4/130-pr43538.patch create mode 100644 bsp/buildroot/package/gcc/4.9.4/140-sanitizer-Fix-build-with-_FILE_OFFSET_BITS-64.patch rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/301-missing-execinfo_h.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 4.9.4}/810-arm-softfloat-libgcc.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/830-arm_unbreak_armv4t.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/840-microblaze-enable-dwarf-eh-support.patch (81%) rename bsp/buildroot/package/gcc/{arc-2015.12/100-libstdcxx-uclibc-c99.patch => 4.9.4/850-libstdcxx-uclibc-c99.patch} (96%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/860-cilk-wchar.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 4.9.4}/870-xtensa-add-mauto-litpools-option.patch (87%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/871-xtensa-reimplement-register-spilling.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/873-xtensa-fix-_Unwind_GetCFA.patch (100%) create mode 100644 bsp/buildroot/package/gcc/4.9.4/874-xtensa-add-uclinux-support.patch create mode 100644 bsp/buildroot/package/gcc/4.9.4/880-nios2_legitimize_address.patch create mode 100644 bsp/buildroot/package/gcc/4.9.4/890-fix-m68k-compile.patch create mode 100644 bsp/buildroot/package/gcc/4.9.4/891-fix-m68k-uclinux.patch rename bsp/buildroot/package/gcc/{4.9.3 => 4.9.4}/900-musl-support.patch (99%) create mode 100644 bsp/buildroot/package/gcc/4.9.4/901-microblaze-uclibc.patch create mode 100644 bsp/buildroot/package/gcc/4.9.4/930-libgcc-disable-split-stack-nothreads.patch create mode 100644 bsp/buildroot/package/gcc/4.9.4/940-uclinux-enable-threads.patch rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/100-uclibc-conf.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 5.4.0}/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/301-missing-execinfo_h.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 5.4.0}/810-arm-softfloat-libgcc.patch (67%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/830-arm_unbreak_armv4t.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/840-microblaze-enable-dwarf-eh-support.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/850-libstdcxx-uclibc-c99.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/860-cilk-wchar.patch (100%) rename bsp/buildroot/package/gcc/{4.9.3 => 5.4.0}/870-xtensa-add-mauto-litpools-option.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/871-xtensa-reimplement-register-spilling.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/873-xtensa-fix-_Unwind_GetCFA.patch (100%) create mode 100644 bsp/buildroot/package/gcc/5.4.0/874-xtensa-add-uclinux-support.patch create mode 100644 bsp/buildroot/package/gcc/5.4.0/890-fix-m68k-compile.patch create mode 100644 bsp/buildroot/package/gcc/5.4.0/891-fix-m68k-uclinux.patch create mode 100644 bsp/buildroot/package/gcc/5.4.0/892-microblaze-uclibc.patch rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/900-libitm-fixes-for-musl-support.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/901-fixincludes-update-for-musl-support.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/902-unwind-fix-for-musl.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/903-libstdc++-libgfortran-gthr-workaround-for-musl.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/904-musl-libc-config.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/905-add-musl-support-to-gcc.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/906-mips-musl-support.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/907-x86-musl-support.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/908-arm-musl-support.patch (100%) rename bsp/buildroot/package/gcc/{5.3.0 => 5.4.0}/909-aarch64-musl-support.patch (100%) create mode 100644 bsp/buildroot/package/gcc/5.4.0/930-libgcc-disable-split-stack-nothreads.patch create mode 100644 bsp/buildroot/package/gcc/5.4.0/940-uclinux-enable-threads.patch rename bsp/buildroot/package/gcc/{4.5.4 => 6.1.0}/100-uclibc-conf.patch (66%) rename bsp/buildroot/package/gcc/{4.5.4 => 6.1.0}/301-missing-execinfo_h.patch (53%) create mode 100644 bsp/buildroot/package/gcc/6.1.0/810-arm-softfloat-libgcc.patch rename bsp/buildroot/package/gcc/{4.5.4/820-arm-unbreak-armv4t.patch => 6.1.0/830-arm_unbreak_armv4t.patch} (58%) create mode 100644 bsp/buildroot/package/gcc/6.1.0/860-cilk-wchar.patch create mode 100644 bsp/buildroot/package/gcc/6.1.0/890-fix-m68k-compile.patch create mode 100644 bsp/buildroot/package/gcc/6.1.0/891-fix-m68k-uclinux.patch create mode 100644 bsp/buildroot/package/gcc/6.1.0/892-libgcc-mkmap-symver-support-skip_underscore.patch create mode 100644 bsp/buildroot/package/gcc/6.1.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch create mode 100644 bsp/buildroot/package/gcc/6.1.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch create mode 100644 bsp/buildroot/package/gcc/6.1.0/940-uclinux-enable-threads.patch delete mode 100644 bsp/buildroot/package/gcc/arc-2015.12/851-PR-other-56780.patch delete mode 100644 bsp/buildroot/package/gcc/arc-2015.12/900-UPDATE-Fix-handling-complex-PIC-moves.patch delete mode 100644 bsp/buildroot/package/gcc/arc-2015.12/901-UPDATE1-Fix-handling-complex-PIC-moves.patch delete mode 100644 bsp/buildroot/package/gcc/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch create mode 100644 bsp/buildroot/package/gcc/arc-2016.09-eng010/301-missing-execinfo_h.patch create mode 100644 bsp/buildroot/package/gcc/arc-2016.09-eng010/860-cilk-wchar.patch create mode 100644 bsp/buildroot/package/gcc/arc-2016.09-eng010/940-uclinux-enable-threads.patch rename bsp/buildroot/package/gd/{0003-gd_bmp-fix-build-with-uClibc.patch => 0002-gd_bmp-fix-build-with-uClibc.patch} (100%) delete mode 100644 bsp/buildroot/package/gd/0002-no-zlib.patch delete mode 100644 bsp/buildroot/package/gd/0004-webp-pre.patch delete mode 100644 bsp/buildroot/package/gd/0005-webp.patch create mode 100644 bsp/buildroot/package/gdb/7.10.1/0001-Add-some-casts-for-building-on-musl.patch create mode 100644 bsp/buildroot/package/gdb/7.10.1/0002-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch create mode 100644 bsp/buildroot/package/gdb/7.10.1/0003-move-__SIGRTMIN.patch create mode 100644 bsp/buildroot/package/gdb/7.10.1/0004-xtensa-implement-NPTL-helpers.patch create mode 100644 bsp/buildroot/package/gdb/7.10.1/0005-target.h-include-sys-types.h.patch create mode 100644 bsp/buildroot/package/gdb/7.10.1/0006-Revert-sim-unify-SIM_CPU-definition.patch create mode 100644 bsp/buildroot/package/gdb/7.11.1/0001-Revert-sim-unify-SIM_CPU-definition.patch delete mode 100644 bsp/buildroot/package/gdb/7.7.1/0001-Include-asm-ptrace.h-for-linux-aarch64-low.c.patch delete mode 100644 bsp/buildroot/package/gdb/7.7.1/0002-Include-asm-ptrace.h-in-aarch64-linux-nat.c.patch delete mode 100644 bsp/buildroot/package/gdb/7.8.2/0001-gdbserver-fix-uClibc-whithout-MMU.patch delete mode 100644 bsp/buildroot/package/gdb/7.8.2/0002-gdbserver-xtensa-drop-xtensa_usrregs_info.patch delete mode 100644 bsp/buildroot/package/gdb/7.8.2/0003-gdbserver-xtensa-fix-typo-in-XCHAL_HAVE_LOOPS.patch create mode 100644 bsp/buildroot/package/gdb/7.9.1/0005-Add-some-casts-for-building-on-musl.patch create mode 100644 bsp/buildroot/package/gdb/7.9.1/0006-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch create mode 100644 bsp/buildroot/package/gdb/7.9.1/0007-move-__SIGRTMIN.patch delete mode 100644 bsp/buildroot/package/gdk-pixbuf/S26gdk-pixbuf delete mode 100644 bsp/buildroot/package/glibc/2.18-svnr23787/0001-CVE-2014-7817-eglibc.patch delete mode 100644 bsp/buildroot/package/glibc/2.18-svnr23787/0002-accept-make4.patch delete mode 100644 bsp/buildroot/package/glibc/2.18-svnr23787/0003-CVE-2014-6040.patch delete mode 100644 bsp/buildroot/package/glibc/2.18-svnr23787/0004-CVE-2014-9402.patch delete mode 100644 bsp/buildroot/package/glibc/2.18-svnr23787/0005-CVE-2015-1472.patch delete mode 100644 bsp/buildroot/package/glibc/2.19-svnr25243/0001-CVE-2014-7817-eglibc.patch delete mode 100644 bsp/buildroot/package/glibc/2.19-svnr25243/0002-CVE-2014-6040.patch delete mode 100644 bsp/buildroot/package/glibc/2.19-svnr25243/0003-CVE-2014-9402.patch delete mode 100644 bsp/buildroot/package/glibc/2.19-svnr25243/0004-CVE-2015-1472.patch delete mode 100644 bsp/buildroot/package/glibc/2.21/0001-fix-CVE-2015-7547.patch delete mode 100644 bsp/buildroot/package/glibc/2.21/0002-fix-CVE-2015-1781.patch delete mode 100644 bsp/buildroot/package/glibc/2.21/0003-fix-CVE-2014-8121.patch create mode 100644 bsp/buildroot/package/glibc/2.22/0002-microblaze-include-unix-sysdep.h.patch create mode 100644 bsp/buildroot/package/glibc/2.22/0003-fix-CVE-2016-3075.patch create mode 100644 bsp/buildroot/package/glibc/2.23/0001-fix-CVE-2016-3075.patch create mode 100644 bsp/buildroot/package/glibc/2.23/0002-gcc6.patch create mode 100644 bsp/buildroot/package/glm/glm.hash create mode 100644 bsp/buildroot/package/glmark2/glmark2.hash create mode 100644 bsp/buildroot/package/gmock/gmock.pc create mode 100644 bsp/buildroot/package/gmrender-resurrect/Config.in create mode 100644 bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.hash create mode 100644 bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.mk create mode 100644 bsp/buildroot/package/gnuradio/0002-fix_cmake_3_5_0_build_failure.patch delete mode 100644 bsp/buildroot/package/gnuradio/0002-types_t-is-need-for-mode_t.patch create mode 100644 bsp/buildroot/package/gnuradio/0003-fix_compilation_in_gcc-6.patch create mode 100644 bsp/buildroot/package/go-bootstrap/go-bootstrap.hash create mode 100644 bsp/buildroot/package/go-bootstrap/go-bootstrap.mk create mode 100644 bsp/buildroot/package/go/Config.in.host create mode 100644 bsp/buildroot/package/go/go.hash create mode 100644 bsp/buildroot/package/go/go.mk create mode 100644 bsp/buildroot/package/googlefontdirectory/googlefontdirectory.hash create mode 100644 bsp/buildroot/package/gr-osmosdr/Config.in create mode 100644 bsp/buildroot/package/gr-osmosdr/gr-osmosdr.hash create mode 100644 bsp/buildroot/package/gr-osmosdr/gr-osmosdr.mk create mode 100644 bsp/buildroot/package/granite/Config.in create mode 100644 bsp/buildroot/package/granite/granite.hash create mode 100644 bsp/buildroot/package/granite/granite.mk create mode 100644 bsp/buildroot/package/gsettings-desktop-schemas/Config.in create mode 100644 bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.hash create mode 100644 bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.mk create mode 100644 bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.hash create mode 100644 bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.hash create mode 100644 bsp/buildroot/package/gstreamer/gst-plugin-x170/gst-plugin-x170.hash create mode 100644 bsp/buildroot/package/gstreamer1/gst-omx/gst-omx.hash create mode 100644 bsp/buildroot/package/gstreamer1/gst1-imx/0001-v4l2src-Add-V4L2_PIX_FMT_XRGB555X-check.patch create mode 100644 bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.hash delete mode 100644 bsp/buildroot/package/gstreamer1/gst1-plugins-bad/0001-use-gettext-0.18.patch create mode 100644 bsp/buildroot/package/gtest/gtest.pc create mode 100644 bsp/buildroot/package/gtksourceview/Config.in create mode 100644 bsp/buildroot/package/gtksourceview/gtksourceview.hash create mode 100644 bsp/buildroot/package/gtksourceview/gtksourceview.mk create mode 100644 bsp/buildroot/package/gupnp-dlna/Config.in create mode 100644 bsp/buildroot/package/gupnp-dlna/gupnp-dlna.hash create mode 100644 bsp/buildroot/package/gupnp-dlna/gupnp-dlna.mk create mode 100644 bsp/buildroot/package/gupnp-tools/Config.in create mode 100644 bsp/buildroot/package/gupnp-tools/gupnp-tools.hash create mode 100644 bsp/buildroot/package/gupnp-tools/gupnp-tools.mk create mode 100644 bsp/buildroot/package/gutenprint/0003-print-olympus.c-fix-endianness-detection.patch create mode 100644 bsp/buildroot/package/gutenprint/0004-build-Don-t-allow-USB-backends-to-be-built-if-CUPS-i.patch create mode 100644 bsp/buildroot/package/hostapd/0003-vlan-fix-musl-build-error.patch create mode 100644 bsp/buildroot/package/hostapd/0004-vlan-fix-musl-libc-conflict-with-Linux-kernel-header.patch create mode 100644 bsp/buildroot/package/hostapd/0005-WPS-Reject-a-Credential-with-invalid-passphrase.patch delete mode 100644 bsp/buildroot/package/htop/0001-native-affinity.patch delete mode 100644 bsp/buildroot/package/i2c-tools/i2c-tools.hash create mode 100644 bsp/buildroot/package/i7z/Config.in create mode 100644 bsp/buildroot/package/i7z/i7z.hash create mode 100644 bsp/buildroot/package/i7z/i7z.mk delete mode 100644 bsp/buildroot/package/icu/0006-fix-Error-allocating-memory-for-pkgDataFlags.-compil.patch create mode 100644 bsp/buildroot/package/igd2-for-linux/Config.in create mode 100644 bsp/buildroot/package/igd2-for-linux/S99upnpd create mode 100644 bsp/buildroot/package/igd2-for-linux/igd2-for-linux.hash create mode 100644 bsp/buildroot/package/igd2-for-linux/igd2-for-linux.mk create mode 100644 bsp/buildroot/package/igd2-for-linux/upnpd.service delete mode 100644 bsp/buildroot/package/igmpproxy/0001-uclinux.patch delete mode 100644 bsp/buildroot/package/imlib2/0001-GIF-loader-Fix-for-libgif-version-5.patch delete mode 100644 bsp/buildroot/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch delete mode 100644 bsp/buildroot/package/imlib2/0003-imlib2-config-delete-old-reference-to-my_libs.patch delete mode 100644 bsp/buildroot/package/imlib2/0004-fix-X_DISPLAY_MISSING-redefined-warnings-when-X-is-d.patch delete mode 100644 bsp/buildroot/package/imlib2/0005-do-not-link-with-X-libs-when-X-is-disabled.patch delete mode 100644 bsp/buildroot/package/imlib2/0006-GIF-loader-Fix-for-libgif-version-5.1.patch delete mode 100644 bsp/buildroot/package/imlib2/0007-fix-compilation-issues-with-musl.patch create mode 100644 bsp/buildroot/package/imx-usb-loader/imx-usb-loader.hash create mode 100644 bsp/buildroot/package/inotify-tools/0001-gcc6.patch create mode 100644 bsp/buildroot/package/inotify-tools/inotify-tools.hash create mode 100644 bsp/buildroot/package/input-event-daemon/input-event-daemon.hash delete mode 100644 bsp/buildroot/package/iozone/0002-no-nptl-support.patch create mode 100644 bsp/buildroot/package/iperf/0001-util.h-add-missing-stdbool-header.patch create mode 100644 bsp/buildroot/package/iperf/0002-fix-speed-display-in-csv-report.patch create mode 100644 bsp/buildroot/package/ipkg/0002-fix-nommu.patch create mode 100644 bsp/buildroot/package/ipkg/ipkg.hash create mode 100644 bsp/buildroot/package/ipmitool/0001-Make-the-package-autoreconfigurable.patch create mode 100644 bsp/buildroot/package/ipmitool/0002-Avoid-wchar_t-redefinition.patch create mode 100644 bsp/buildroot/package/ipmitool/0003-Add-missing-linux-param.h-header-include.patch create mode 100644 bsp/buildroot/package/ipmitool/0004-Fix-missing-stddef.h-include.patch delete mode 100644 bsp/buildroot/package/ipmiutil/0002-lib-Makefile.am-fix-lanplus-disable.patch delete mode 100644 bsp/buildroot/package/ipmiutil/0003-configure.ac-fix-stack-protector-test.patch delete mode 100644 bsp/buildroot/package/iproute2/0003-iproute2-fix-building-with-musl.patch create mode 100644 bsp/buildroot/package/iproute2/0003-iproute2-tc_bpf.c-fix-building-with-musl-libc..patch create mode 100644 bsp/buildroot/package/iproute2/0004-iproute-no-iptables.patch create mode 100644 bsp/buildroot/package/iptables/0003-extensions-added-AR-substitution.patch delete mode 100644 bsp/buildroot/package/iputils/0001-ping-link-against-libm.patch create mode 100644 bsp/buildroot/package/irqbalance/irqbalance.hash delete mode 100644 bsp/buildroot/package/irssi/0001-Fix-quote-around-macro-argument.patch create mode 100644 bsp/buildroot/package/jack2/0001-Add-support-for-nios2.patch create mode 100644 bsp/buildroot/package/jack2/0002-Make-backtrace-support-depends-on-execinfo.h-existen.patch create mode 100644 bsp/buildroot/package/jack2/0003-tests-define-__STDC_LIMIT_MACROS.patch create mode 100644 bsp/buildroot/package/jack2/jack2.hash create mode 100644 bsp/buildroot/package/jamvm/0001-Use-fenv.h-instead-of-fpu_control.h.patch create mode 100644 bsp/buildroot/package/janus-gateway/janus-gateway.hash create mode 100644 bsp/buildroot/package/jasper/0008-fix-CVE-2016-2116.patch create mode 100644 bsp/buildroot/package/jasper/0009-fix-CVE-2016-1577.patch create mode 100644 bsp/buildroot/package/jasper/0010-fix-CVE-2016-1867.patch create mode 100644 bsp/buildroot/package/jasper/0011-fix-CVE-2015-5221.patch create mode 100644 bsp/buildroot/package/jasper/0012-fix-CVE-2015-5203.patch create mode 100644 bsp/buildroot/package/jemalloc/0001-Fix-LG_QUANTUM-definition-for-sparc64.patch create mode 100644 bsp/buildroot/package/jemalloc/Config.in create mode 100644 bsp/buildroot/package/jemalloc/jemalloc.hash create mode 100644 bsp/buildroot/package/jemalloc/jemalloc.mk create mode 100644 bsp/buildroot/package/jquery-datetimepicker/jquery-datetimepicker.hash create mode 100644 bsp/buildroot/package/jquery-keyboard/jquery-keyboard.hash create mode 100644 bsp/buildroot/package/jquery-mobile/jquery-mobile.hash create mode 100644 bsp/buildroot/package/jquery-sparkline/jquery-sparkline.hash create mode 100644 bsp/buildroot/package/jquery-ui-themes/jquery-ui-themes.hash create mode 100644 bsp/buildroot/package/jquery-ui/jquery-ui.hash create mode 100644 bsp/buildroot/package/jsmin/Config.in.host create mode 100644 bsp/buildroot/package/jsmin/jsmin.hash create mode 100644 bsp/buildroot/package/json-c/json-c.hash create mode 100644 bsp/buildroot/package/json-javascript/json-javascript.hash create mode 100644 bsp/buildroot/package/jsoncpp/0001-CMakeLists.txt-Treat-conversion-warning-as-error-onl.patch delete mode 100644 bsp/buildroot/package/jsoncpp/0001-Remove-Werror.patch delete mode 100644 bsp/buildroot/package/jsoncpp/0002-Add-option-JSONCPP_WITH_STRICT_ISO.patch create mode 100644 bsp/buildroot/package/jsoncpp/jsoncpp.hash create mode 100644 bsp/buildroot/package/kexec/0001-vmcore-dmesg-Define-_GNU_SOURCE.patch create mode 100644 bsp/buildroot/package/kismet/0005-dumpfile_tuntap-don-t-include-linux-if_tun.h-kernel-.patch create mode 100644 bsp/buildroot/package/kismet/kismet.hash create mode 100644 bsp/buildroot/package/kmsxx/0001-Fix-LTO-support-for-cross-compilation.patch create mode 100644 bsp/buildroot/package/kmsxx/Config.in create mode 100644 bsp/buildroot/package/kmsxx/kmsxx.hash create mode 100644 bsp/buildroot/package/kmsxx/kmsxx.mk create mode 100644 bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.hash create mode 100644 bsp/buildroot/package/kodi-adsp-basic/Config.in create mode 100644 bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.hash create mode 100644 bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.mk create mode 100644 bsp/buildroot/package/kodi-adsp-freesurround/Config.in create mode 100644 bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.hash create mode 100644 bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.mk create mode 100644 bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-opus/Config.in create mode 100644 bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.mk create mode 100644 bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.hash create mode 100644 bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.hash create mode 100644 bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.hash create mode 100644 bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.hash create mode 100644 bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.hash create mode 100644 bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.hash create mode 100644 bsp/buildroot/package/kodi-platform/kodi-platform.hash delete mode 100644 bsp/buildroot/package/kodi-pvr-argustv/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch create mode 100644 bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.hash create mode 100644 bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.hash create mode 100644 bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.hash create mode 100644 bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.hash create mode 100644 bsp/buildroot/package/kodi-pvr-hdhomerun/Config.in create mode 100644 bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.hash create mode 100644 bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk create mode 100644 bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.hash create mode 100644 bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.hash delete mode 100644 bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch create mode 100644 bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.hash create mode 100644 bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash create mode 100644 bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash create mode 100644 bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.hash create mode 100644 bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.hash create mode 100644 bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.hash create mode 100644 bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.hash create mode 100644 bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash create mode 100644 bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash create mode 100644 bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-asterwave/Config.in create mode 100644 bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.mk create mode 100644 bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-cpblobs/Config.in create mode 100644 bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.mk create mode 100644 bsp/buildroot/package/kodi-screensaver-crystalmorph/kodi-screensaver-crystalmorph.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-matrixtrails/Config.in create mode 100644 bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.mk create mode 100644 bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-planestate/Config.in create mode 100644 bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.mk create mode 100644 bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-rsxs/0001-cross-compile.patch create mode 100644 bsp/buildroot/package/kodi-screensaver-rsxs/Config.in create mode 100644 bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.hash create mode 100644 bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.mk create mode 100644 bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-fishbmc/Config.in create mode 100644 bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.mk create mode 100644 bsp/buildroot/package/kodi-visualisation-fountain/Config.in create mode 100644 bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.mk create mode 100644 bsp/buildroot/package/kodi-visualisation-goom/0001-cross-compile.patch create mode 100644 bsp/buildroot/package/kodi-visualisation-goom/Config.in create mode 100644 bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.mk create mode 100644 bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-waveforhue/kodi-visualisation-waveforhue.hash create mode 100644 bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.hash create mode 100644 bsp/buildroot/package/kodi/0005-native-TexturePacker-fix-compilation-with-gcc-4.6.patch create mode 100644 bsp/buildroot/package/kodi/0006-ffmpeg30.patch create mode 100644 bsp/buildroot/package/kodi/0007-exif-Fix-for-out-of-memory-errors-with-large-numbers.patch create mode 100644 bsp/buildroot/package/kodi/0008-Fix-nullpadding-issue-when-reading-certain-id3v1-tag.patch create mode 100644 bsp/buildroot/package/kodi/0009-lib-cximage-6.0-fix-compilation-with-gcc6.patch create mode 100644 bsp/buildroot/package/kodi/0010-curl-support-version-7.5.0-and-upwards.patch create mode 100644 bsp/buildroot/package/ktap/ktap.hash create mode 100644 bsp/buildroot/package/lapack/Config.in create mode 100644 bsp/buildroot/package/lapack/lapack.hash create mode 100644 bsp/buildroot/package/lapack/lapack.mk create mode 100644 bsp/buildroot/package/latencytop/latencytop.hash delete mode 100644 bsp/buildroot/package/lcdapi/0001-Remove-installation-of-docs-examples.patch create mode 100644 bsp/buildroot/package/lcdapi/lcdapi.hash create mode 100644 bsp/buildroot/package/leveldb/leveldb.hash create mode 100644 bsp/buildroot/package/lft/Config.in create mode 100644 bsp/buildroot/package/lft/lft.hash create mode 100644 bsp/buildroot/package/lft/lft.mk create mode 100644 bsp/buildroot/package/lftp/0001-fix-static-link-with-readline.patch create mode 100644 bsp/buildroot/package/libaacs/Config.in create mode 100644 bsp/buildroot/package/libaacs/libaacs.hash create mode 100644 bsp/buildroot/package/libaacs/libaacs.mk create mode 100644 bsp/buildroot/package/libaio/0002-src-Makefile-add-ENABLE_SHARED-boolean-to-allow-stat.patch create mode 100644 bsp/buildroot/package/libamcodec/0001-Include-stdint.h-where-needed.patch create mode 100644 bsp/buildroot/package/libamcodec/Config.in create mode 100644 bsp/buildroot/package/libamcodec/libamcodec.hash create mode 100644 bsp/buildroot/package/libamcodec/libamcodec.mk delete mode 100644 bsp/buildroot/package/libasplib/0001-Fix-linux-detection-with-buildroot.patch create mode 100644 bsp/buildroot/package/libatomic_ops/libatomic_ops.hash create mode 100644 bsp/buildroot/package/libbdplus/Config.in create mode 100644 bsp/buildroot/package/libbdplus/libbdplus.hash create mode 100644 bsp/buildroot/package/libbdplus/libbdplus.mk delete mode 100644 bsp/buildroot/package/libbsd/0001-build-clock_gettime-might-need-librt.patch create mode 100644 bsp/buildroot/package/libcap/0001-build-system-fixes-for-cross-compilation.patch delete mode 100644 bsp/buildroot/package/libcap/0001-build-system.patch create mode 100644 bsp/buildroot/package/libcap/0002-libcap-split-install-into-install-shared-install-sta.patch delete mode 100644 bsp/buildroot/package/libcap/0002-split-static-shared-install.patch delete mode 100644 bsp/buildroot/package/libcap/0003-Change-the-location-we-include-linux-xattr.h.patch create mode 100644 bsp/buildroot/package/libcap/0003-libcap-cap_file.c-fix-build-with-old-kernel-headers.patch delete mode 100644 bsp/buildroot/package/libcec/0001-fixed-don-t-generate-an-invalid-env.h-when-not-built.patch create mode 100644 bsp/buildroot/package/libcec/libcec.hash create mode 100644 bsp/buildroot/package/libcli/libcli.hash create mode 100644 bsp/buildroot/package/libcoap/0001-configure-only-add-Wunused-result-if-supported-by-th.patch create mode 100644 bsp/buildroot/package/libcoap/Config.in create mode 100644 bsp/buildroot/package/libcoap/libcoap.hash create mode 100644 bsp/buildroot/package/libcoap/libcoap.mk create mode 100644 bsp/buildroot/package/libcofi/libcofi.hash create mode 100644 bsp/buildroot/package/libcrossguid/libcrossguid.hash create mode 100644 bsp/buildroot/package/libdcadec/libdcadec.hash create mode 100644 bsp/buildroot/package/libdri2/libdri2.hash create mode 100644 bsp/buildroot/package/libdrm/0001-Add-ARM-support-into-xf86drm.h.patch delete mode 100644 bsp/buildroot/package/libdrm/0001-update-arm.patch create mode 100644 bsp/buildroot/package/libdrm/0002-xf86atomic-require-CAS-support-in-libatomic_ops.patch delete mode 100644 bsp/buildroot/package/libdrm/0002-xf86drm.c-Include-limits.h-to-fix-build-error-on-Sol.patch create mode 100644 bsp/buildroot/package/libdvdcss/Config.in create mode 100644 bsp/buildroot/package/libdvdcss/libdvdcss.hash create mode 100644 bsp/buildroot/package/libdvdcss/libdvdcss.mk create mode 100644 bsp/buildroot/package/libdvdnav/0001-do-not-match-nios2-as-os2.patch delete mode 100644 bsp/buildroot/package/libdvdnav/0001-fix-os2-support.patch delete mode 100644 bsp/buildroot/package/libdvdread/0001-fix-os2-support.patch rename bsp/buildroot/package/libeXosip2/{0002-use-pkg-config-to-detect-openssl.patch => 0001-use-pkg-config-to-detect-openssl.patch} (100%) create mode 100644 bsp/buildroot/package/libeXosip2/libeXosip2.hash create mode 100644 bsp/buildroot/package/libebur128/Config.in create mode 100644 bsp/buildroot/package/libebur128/libebur128.mk create mode 100644 bsp/buildroot/package/libenca/libenca.hash create mode 100644 bsp/buildroot/package/libepoxy/0001-select-platforms-based-on-configuration-results.patch create mode 100644 bsp/buildroot/package/libepoxy/0002-add-an-option-to-disable-glx-support.patch create mode 100644 bsp/buildroot/package/libepoxy/0003-make-enable-glx-actually-work-on-osx-and-windows.patch create mode 100644 bsp/buildroot/package/libepoxy/0004-darwin-use-glx-instead-of-opengl-framework.patch create mode 100644 bsp/buildroot/package/libepoxy/0005-Forward-egl-cflags-into-epoxy.pc.patch create mode 100644 bsp/buildroot/package/libepoxy/0006-Make-egl-conditional.patch create mode 100644 bsp/buildroot/package/libepoxy/Config.in create mode 100644 bsp/buildroot/package/libepoxy/libepoxy.hash rename bsp/buildroot/package/{x11r7 => }/libepoxy/libepoxy.mk (50%) create mode 100644 bsp/buildroot/package/libfastjson/0001-fix-missing-config.h.patch create mode 100644 bsp/buildroot/package/libfastjson/0002-m4-fix-detection-of-atomics.patch create mode 100644 bsp/buildroot/package/libfastjson/Config.in create mode 100644 bsp/buildroot/package/libfastjson/libfastjson.hash create mode 100644 bsp/buildroot/package/libfastjson/libfastjson.mk create mode 100644 bsp/buildroot/package/libffi/0004-m68k-support-ISA-A-Coldfire-CPUs.patch create mode 100644 bsp/buildroot/package/libfreeimage/0004-fix-gcc-6.patch delete mode 100644 bsp/buildroot/package/libfslcodec/Config.in delete mode 100644 bsp/buildroot/package/libfslcodec/libfslcodec.hash delete mode 100644 bsp/buildroot/package/libfslcodec/libfslcodec.mk delete mode 100644 bsp/buildroot/package/libfslparser/Config.in delete mode 100644 bsp/buildroot/package/libfslparser/libfslparser.hash delete mode 100644 bsp/buildroot/package/libfslparser/libfslparser.mk delete mode 100644 bsp/buildroot/package/libfslvpuwrap/Config.in delete mode 100644 bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.hash delete mode 100644 bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.mk create mode 100644 bsp/buildroot/package/libgee/Config.in create mode 100644 bsp/buildroot/package/libgee/libgee.hash create mode 100644 bsp/buildroot/package/libgee/libgee.mk create mode 100644 bsp/buildroot/package/libglu/libglu.hash delete mode 100644 bsp/buildroot/package/libgpg-error/0001-avoid-breakage-with-gcc-5.patch delete mode 100644 bsp/buildroot/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch create mode 100644 bsp/buildroot/package/libgtk3/0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch delete mode 100644 bsp/buildroot/package/libgtk3/0005-do-not-build-extract-strings.patch create mode 100644 bsp/buildroot/package/libhid/libhid.hash delete mode 100644 bsp/buildroot/package/libiio/0001-cmake-libxml2-detection-try-first-the-CMake-module-f.patch create mode 100644 bsp/buildroot/package/libiio/0001-lock.c-Don-t-include-pthread.h-if-NO_THREADS-is-defi.patch create mode 100644 bsp/buildroot/package/libiio/0002-CMake-Link-with-librt-if-found.patch delete mode 100644 bsp/buildroot/package/libiio/0002-cmake-fix-build-on-unix-systems-without-cpp.patch create mode 100644 bsp/buildroot/package/libimxvpuapi/Config.in create mode 100644 bsp/buildroot/package/libimxvpuapi/libimxvpuapi.hash create mode 100644 bsp/buildroot/package/libimxvpuapi/libimxvpuapi.mk delete mode 100644 bsp/buildroot/package/libinput/0001-rename-log_msg-to-libinput_log_msg.patch create mode 100644 bsp/buildroot/package/libiqrf/libiqrf.hash create mode 100644 bsp/buildroot/package/libldns/0001-bugfix-548-Double-free-for-answers-4096.patch delete mode 100644 bsp/buildroot/package/libldns/0001-fix-double-free-for-answers-bigger-than-4096.patch rename bsp/buildroot/package/libldns/{0002-fix-whitespace-bug-in-ldns-read-zone.patch => 0002-whitespace-bug-in-ldns-read-zone.patch} (61%) create mode 100644 bsp/buildroot/package/libldns/0003-let-doxyparse-output-manpage-generation-issues.patch create mode 100644 bsp/buildroot/package/libldns/0004-Comment-out-debugging-remnants.patch create mode 100644 bsp/buildroot/package/libldns/0005-Remove-manpage-content-nondeterminicity-warnings.patch create mode 100644 bsp/buildroot/package/libllcp/libllcp.hash create mode 100644 bsp/buildroot/package/liblog4c-localtime/liblog4c-localtime.hash create mode 100644 bsp/buildroot/package/libminiupnpc/Config.in create mode 100644 bsp/buildroot/package/libminiupnpc/libminiupnpc.hash create mode 100644 bsp/buildroot/package/libminiupnpc/libminiupnpc.mk create mode 100644 bsp/buildroot/package/libnatpmp/Config.in create mode 100644 bsp/buildroot/package/libnatpmp/libnatpmp.hash create mode 100644 bsp/buildroot/package/libnatpmp/libnatpmp.mk create mode 100644 bsp/buildroot/package/libndp/libndp.hash delete mode 100644 bsp/buildroot/package/libnspr/0003-enable-internal-getproto-functions-for-musl.patch create mode 100644 bsp/buildroot/package/libopenh264/libopenh264.hash create mode 100644 bsp/buildroot/package/liboping/0001-configure-also-check-for-clockgettime.patch create mode 100644 bsp/buildroot/package/libpam-tacplus/libpam-tacplus.hash create mode 100644 bsp/buildroot/package/libphidget/libphidget.hash create mode 100644 bsp/buildroot/package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch create mode 100644 bsp/buildroot/package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch create mode 100644 bsp/buildroot/package/libpjsip/Config.in create mode 100644 bsp/buildroot/package/libpjsip/libpjsip.hash create mode 100644 bsp/buildroot/package/libpjsip/libpjsip.mk create mode 100644 bsp/buildroot/package/libplatform/libplatform.hash create mode 100644 bsp/buildroot/package/libpng/0001-Disable-pngfix-and-png-fix-itxt.patch delete mode 100644 bsp/buildroot/package/libpng/0001-disable-tools.patch rename bsp/buildroot/package/libpng/{0002-ignore-symbol-prefix.patch => 0002-Don-t-append-prefix-to-symbol-names-in-version-script.patch} (64%) create mode 100644 bsp/buildroot/package/libpqxx/Config.in create mode 100644 bsp/buildroot/package/libpqxx/libpqxx.hash create mode 100644 bsp/buildroot/package/libpqxx/libpqxx.mk create mode 100644 bsp/buildroot/package/librtlsdr/librtlsdr.hash delete mode 100644 bsp/buildroot/package/libseccomp/0002-musl.patch create mode 100644 bsp/buildroot/package/libseccomp/libseccomp.hash create mode 100644 bsp/buildroot/package/libselinux/0003-revert-ln-relative.patch delete mode 100644 bsp/buildroot/package/libsemanage/0001-execption-lib-path-fix.patch rename bsp/buildroot/package/libsemanage/{0002-workaround-blackfin-issue.patch => 0001-workaround-blackfin-issue.patch} (89%) create mode 100644 bsp/buildroot/package/libsepol/0003-add-stdarg-include.patch create mode 100644 bsp/buildroot/package/libsepol/0004-revert-ln-relative.patch create mode 100644 bsp/buildroot/package/libserialport/0001-uclinux-detection.patch create mode 100644 bsp/buildroot/package/libsha1/libsha1.hash create mode 100644 bsp/buildroot/package/libshairplay/libshairplay.hash create mode 100644 bsp/buildroot/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch create mode 100644 bsp/buildroot/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch create mode 100644 bsp/buildroot/package/libsidplay2/0003-gcc6.patch create mode 100644 bsp/buildroot/package/libsrtp/0001-Rename-SHA1-functions-to-avoid-conflicts-with-downst.patch create mode 100644 bsp/buildroot/package/libsrtp/libsrtp.hash create mode 100644 bsp/buildroot/package/libstrophe/libstrophe.hash create mode 100644 bsp/buildroot/package/libtomcrypt/Config.in create mode 100644 bsp/buildroot/package/libtomcrypt/libtomcrypt.hash create mode 100644 bsp/buildroot/package/libtomcrypt/libtomcrypt.mk create mode 100644 bsp/buildroot/package/libtommath/Config.in create mode 100644 bsp/buildroot/package/libtommath/libtommath.hash create mode 100644 bsp/buildroot/package/libtommath/libtommath.mk create mode 100644 bsp/buildroot/package/libtpl/libtpl.hash create mode 100644 bsp/buildroot/package/libucl/libucl.hash create mode 100644 bsp/buildroot/package/libuecc/libuecc.hash create mode 100644 bsp/buildroot/package/libuio/0001-configure-remove-po-Makefile.in.patch create mode 100644 bsp/buildroot/package/libuio/0002-fix-build-with-musl.patch create mode 100644 bsp/buildroot/package/libuio/Config.in create mode 100644 bsp/buildroot/package/libuio/libuio.hash create mode 100644 bsp/buildroot/package/libuio/libuio.mk create mode 100644 bsp/buildroot/package/libump/libump.hash create mode 100644 bsp/buildroot/package/libusbgx/Config.in create mode 100644 bsp/buildroot/package/libusbgx/libusbgx.hash create mode 100644 bsp/buildroot/package/libusbgx/libusbgx.mk delete mode 100644 bsp/buildroot/package/libuv/0001-unix-fix-support-for-uClibc-ng.patch delete mode 100644 bsp/buildroot/package/libv4l/0002-dvb-keytable-fix-missing-libintl-linking.patch delete mode 100644 bsp/buildroot/package/libv4l/0003-libv4lsyscall-priv.h-Use-off_t-instead-of-__off_t.patch delete mode 100644 bsp/buildroot/package/libv4l/0004-utils-Properly-use-ENABLE_NLS-for-locale-related-cod.patch delete mode 100644 bsp/buildroot/package/libv4l/0005-libv4lconvert-only-expose-jpeg_mem_-protoypes-when-J.patch create mode 100755 bsp/buildroot/package/libvdpau/0001-missing-configh-include.patch create mode 100755 bsp/buildroot/package/libvdpau/0002-link-with-libx11.patch create mode 100755 bsp/buildroot/package/libvdpau/0003-vdpau-module-searchpath.patch create mode 100755 bsp/buildroot/package/libvdpau/Config.in create mode 100755 bsp/buildroot/package/libvdpau/libvdpau.hash create mode 100755 bsp/buildroot/package/libvdpau/libvdpau.mk create mode 100644 bsp/buildroot/package/libvpx/0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch create mode 100644 bsp/buildroot/package/libwebsock/libwebsock.hash delete mode 100644 bsp/buildroot/package/libwebsockets/0001-cmake-disable-shared-library-build-when-BUILD_SHARED.patch create mode 100644 bsp/buildroot/package/libxmlrpc/0006-narrowing.patch delete mode 100644 bsp/buildroot/package/libxslt/0001-Make-maxvars-option-work.patch delete mode 100644 bsp/buildroot/package/lighttpd/0002-compat-latest-lua.patch create mode 100644 bsp/buildroot/package/linenoise/linenoise.hash create mode 100644 bsp/buildroot/package/linknx/0001-fix-static-build-with-mysql.patch create mode 100644 bsp/buildroot/package/linknx/0002-src-suncalc.cpp-fix-build-with-gcc-6.x.patch delete mode 100644 bsp/buildroot/package/linux-pam/0001-configure.patch rename bsp/buildroot/package/linux-pam/{0002-doc-makefile-am.patch => 0001-doc-makefile-am.patch} (91%) create mode 100644 bsp/buildroot/package/linux-pam/0002-Conditionally-compile-per-ruserok-availability.patch create mode 100644 bsp/buildroot/package/linux-pam/0003-Conditionally-compile-per-innetgr-availability.patch delete mode 100644 bsp/buildroot/package/linux-pam/0003-group.patch delete mode 100644 bsp/buildroot/package/linux-pam/0004-mkdir.patch delete mode 100644 bsp/buildroot/package/linux-pam/0005-succeed.patch delete mode 100644 bsp/buildroot/package/linux-pam/0006-time.patch delete mode 100644 bsp/buildroot/package/linux-pam/0007-rhosts.patch delete mode 100644 bsp/buildroot/package/linux-pam/0008-fix-CVE-2014-2583.patch delete mode 100644 bsp/buildroot/package/linux-pam/0009-fix-CVE-2013-7041.patch rename bsp/buildroot/package/{util-linux => linux-pam}/login.pam (100%) create mode 100644 bsp/buildroot/package/linux-zigbee/0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch delete mode 100644 bsp/buildroot/package/liquid-dsp/0001-configure.ac-use-AC_CONFIG_MACRO_DIR.patch create mode 100644 bsp/buildroot/package/lirc-tools/0001-lib-use-proper-linking-method-to-avoid-parallel-buil.patch delete mode 100644 bsp/buildroot/package/lirc-tools/0001-tools-Make-make_rel_symlink.py-use-python3.patch create mode 100644 bsp/buildroot/package/lirc-tools/0003-Don-t-build-commandir-unless-we-have-usb.h-191.patch delete mode 100644 bsp/buildroot/package/lirc-tools/0003-Fix-loglevel-redefinition-in-static-library-builds.patch create mode 100644 bsp/buildroot/package/lirc-tools/0004-configure-check-for-clock_gettime-in-librt.patch create mode 100644 bsp/buildroot/package/ljsyscall/ljsyscall.hash create mode 100644 bsp/buildroot/package/lksctp-tools/Config.in create mode 100644 bsp/buildroot/package/lksctp-tools/lksctp-tools.hash create mode 100644 bsp/buildroot/package/lksctp-tools/lksctp-tools.mk create mode 100644 bsp/buildroot/package/lldpd/0001-build-make-generation-of-atom-glue-compatible-with-o.patch create mode 100644 bsp/buildroot/package/lldpd/0002-configure-do-not-check-for-libbsd.patch create mode 100644 bsp/buildroot/package/lldpd/S60lldpd create mode 100644 bsp/buildroot/package/log4cpp/0001-Fix-musl-compile.patch create mode 100755 bsp/buildroot/package/log4cpp/Config.in create mode 100755 bsp/buildroot/package/log4cpp/log4cpp.hash create mode 100755 bsp/buildroot/package/log4cpp/log4cpp.mk create mode 100644 bsp/buildroot/package/logrotate/0002-Use-autoconf-checks-for-strndup-and-asprintf.patch create mode 100644 bsp/buildroot/package/lpc3250loader/lpc3250loader.hash create mode 100644 bsp/buildroot/package/lshw/0001-Makefile-allow-to-pass-additional-LIBS.patch delete mode 100644 bsp/buildroot/package/lshw/0001-add-LIBS.patch create mode 100644 bsp/buildroot/package/lshw/0002-Fix-musl-build-basename-is-in-libgen.h.patch create mode 100644 bsp/buildroot/package/lshw/0003-Fix-use-of-LONG_BIT.patch delete mode 100644 bsp/buildroot/package/ltp-testsuite/0001-fix-build-on-uClibc-exp10.patch create mode 100644 bsp/buildroot/package/ltp-testsuite/0001-fix-uClibc-build.patch create mode 100644 bsp/buildroot/package/ltp-testsuite/0003-disable-profil-on-uClibc.patch create mode 100644 bsp/buildroot/package/ltp-testsuite/0004-disable-ustat-on-uClibc.patch create mode 100644 bsp/buildroot/package/ltp-testsuite/0005-rpc-fix-uClibc.patch create mode 100644 bsp/buildroot/package/lttng-babeltrace/0002-configure-fix-uuid-support-detection-on-static-build.patch create mode 100644 bsp/buildroot/package/lttng-tools/0001-Fix-build-failure-when-__GLIBC_PREREQ-is-missing.patch create mode 100644 bsp/buildroot/package/lttng-tools/0002-Fix-add-missing-sys-types.h-header.patch create mode 100644 bsp/buildroot/package/lua-ev/lua-ev.hash create mode 100644 bsp/buildroot/package/lua-msgpack-native/lua-msgpack-native.hash rename bsp/buildroot/package/lua/{5.3.2 => 5.3.3}/0001-root-path.patch (100%) rename bsp/buildroot/package/lua/{5.3.2 => 5.3.3}/0002-shared-libs-for-lua.patch (100%) rename bsp/buildroot/package/lua/{5.3.2 => 5.3.3}/0004-lua-pc.patch (97%) rename bsp/buildroot/package/lua/{5.3.2 => 5.3.3}/0011-linenoise.patch (100%) create mode 100644 bsp/buildroot/package/lua/5.3.3/0012-fix-loop-parser.patch create mode 100644 bsp/buildroot/package/luaexpatutils/luaexpatutils.hash delete mode 100644 bsp/buildroot/package/luaposix/0001-sched-workaround-glibc-_POSIX_PRIORITY_SCHEDULING-bu.patch create mode 100644 bsp/buildroot/package/luaposix/luaposix.hash create mode 100644 bsp/buildroot/package/lxc/0002-Fix-redefinition-of-struct-in6_addr.patch create mode 100644 bsp/buildroot/package/lz4/lz4.hash create mode 100644 bsp/buildroot/package/lzop/0001-build-with-gcc6.patch create mode 100644 bsp/buildroot/package/macchanger/0001-Fix-missing-include-for-caddr_t.patch create mode 100644 bsp/buildroot/package/mali-t76x/Config.in create mode 100644 bsp/buildroot/package/mali-t76x/egl.pc create mode 100644 bsp/buildroot/package/mali-t76x/glesv2.pc create mode 100644 bsp/buildroot/package/mali-t76x/mali-t76x.hash create mode 100644 bsp/buildroot/package/mali-t76x/mali-t76x.mk delete mode 100644 bsp/buildroot/package/mediastreamer/0001-misc-fixes.patch delete mode 100644 bsp/buildroot/package/midori/0001-disable-libnotify.patch create mode 100644 bsp/buildroot/package/midori/0001-fix-bug-1492932.patch create mode 100644 bsp/buildroot/package/midori/0002-gcr-for-x11-only.patch delete mode 100644 bsp/buildroot/package/midori/0002-new-vala.patch create mode 100644 bsp/buildroot/package/minissdpd/Config.in create mode 100644 bsp/buildroot/package/minissdpd/S50minissdpd create mode 100644 bsp/buildroot/package/minissdpd/minissdpd.hash create mode 100644 bsp/buildroot/package/minissdpd/minissdpd.mk create mode 100644 bsp/buildroot/package/minissdpd/minissdpd.service create mode 100644 bsp/buildroot/package/mkpimage/mkpimage.c create mode 100644 bsp/buildroot/package/mkpimage/mkpimage.mk delete mode 100644 bsp/buildroot/package/mono/0005-eglib-checking-for-locale_charset-function.patch delete mode 100644 bsp/buildroot/package/mono/0007-config.in-fixing-wrong-MonoPosixHelper-location.patch create mode 100644 bsp/buildroot/package/mono/0009-fix-musl-incorrect-sigcontext-include.patch rename bsp/buildroot/package/mpd/{0005-configure.ac-check-if-libatomic-is-needed.patch => 0001-configure.ac-check-if-libatomic-is-needed.patch} (100%) delete mode 100644 bsp/buildroot/package/mpd/0001-notify-Don-t-use-constexpr-on-Haiku.patch delete mode 100644 bsp/buildroot/package/mpd/0002-notify-use-constexpr-only-with-glibc.patch rename bsp/buildroot/package/mpd/{0004-thread-Name-include-stdio.h-for-prctl-as-well.patch => 0002-thread-Name-include-stdio.h-for-prctl-as-well.patch} (100%) delete mode 100644 bsp/buildroot/package/mpd/0003-thread-Posix-Mutex-Cond-use-constexpr-only-with-glib.patch create mode 100644 bsp/buildroot/package/mplayer/0003-configure-armv8.patch create mode 100644 bsp/buildroot/package/mplayer/0004-configure-zlib.patch create mode 100644 bsp/buildroot/package/mplayer/0005-tremor-ogg.patch create mode 100644 bsp/buildroot/package/mpv/0001-wscript-don-t-check-for-fork-on-POSIX-checks.patch create mode 100644 bsp/buildroot/package/mpv/0002-wscript-improve-stdatomic-check.patch create mode 100644 bsp/buildroot/package/mpv/Config.in create mode 100644 bsp/buildroot/package/mpv/mpv.hash create mode 100644 bsp/buildroot/package/mpv/mpv.mk create mode 100644 bsp/buildroot/package/mraa/mraa.hash create mode 100644 bsp/buildroot/package/mrouted/mrouted.hash create mode 100644 bsp/buildroot/package/msr-tools/Config.in create mode 100644 bsp/buildroot/package/msr-tools/msr-tools.hash create mode 100644 bsp/buildroot/package/msr-tools/msr-tools.mk create mode 100644 bsp/buildroot/package/mtd/0001-mtd-utils-ubinize-Always-return-error-code-at-least-.patch create mode 100644 bsp/buildroot/package/mtd/0002-integck-only-use-execinfo.h-when-INTEGCK_DEBUG-is-en.patch create mode 100644 bsp/buildroot/package/mtd/0003-fs-tests-integrity-don-t-include-header-bits-stdio_l.patch create mode 100644 bsp/buildroot/package/mtdev2tuio/mtdev2tuio.hash create mode 100644 bsp/buildroot/package/mtr/mtr.hash create mode 100644 bsp/buildroot/package/multicat/0001-Fix-missing-pthread.patch create mode 100644 bsp/buildroot/package/multicat/0002-Fix-musl-build.patch create mode 100644 bsp/buildroot/package/multicat/0003-Fix-have-clock-nanosleep-with-uclibc.patch create mode 100644 bsp/buildroot/package/multicat/Config.in create mode 100644 bsp/buildroot/package/multicat/multicat.hash create mode 100644 bsp/buildroot/package/multicat/multicat.mk create mode 100644 bsp/buildroot/package/musl-compat-headers/Config.in create mode 100644 bsp/buildroot/package/musl-compat-headers/cdefs.h rename bsp/buildroot/package/{netbsd-queue/netbsd-queue.hash => musl-compat-headers/musl-compat-headers.hash} (100%) create mode 100644 bsp/buildroot/package/musl-compat-headers/musl-compat-headers.mk create mode 100644 bsp/buildroot/package/musl/0001-fix-regression-in-tcsetattr-on-all-mips-archs.patch create mode 100644 bsp/buildroot/package/mxsldr/Config.in.host create mode 100644 bsp/buildroot/package/mxsldr/mxsldr.mk create mode 100644 bsp/buildroot/package/ncurses/0003-recognise-uclinux.patch create mode 100644 bsp/buildroot/package/ne10/ne10.hash create mode 100644 bsp/buildroot/package/neardal/neardal.hash create mode 100644 bsp/buildroot/package/net-tools/0001-Makefile-fix-static-linking-issue-with-lintl.patch delete mode 100644 bsp/buildroot/package/netbsd-queue/Config.in delete mode 100644 bsp/buildroot/package/netbsd-queue/netbsd-queue.mk create mode 100644 bsp/buildroot/package/netplug/0002-add-missing-time-include.patch create mode 100644 bsp/buildroot/package/netplug/0003-remove-assert-fail.patch create mode 100644 bsp/buildroot/package/nettle/0002-fix-CVE-2016-6489.patch create mode 100644 bsp/buildroot/package/network-manager/0002-accept-auto-mode-interfaces.patch create mode 100644 bsp/buildroot/package/nginx-naxsi/Config.in create mode 100644 bsp/buildroot/package/nginx-naxsi/nginx-naxsi.hash create mode 100644 bsp/buildroot/package/nginx-naxsi/nginx-naxsi.mk create mode 100644 bsp/buildroot/package/nginx-upload/Config.in create mode 100644 bsp/buildroot/package/nginx-upload/nginx-upload.hash create mode 100644 bsp/buildroot/package/nginx-upload/nginx-upload.mk delete mode 100644 bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch create mode 100644 bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch create mode 100644 bsp/buildroot/package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch create mode 100644 bsp/buildroot/package/nginx/0007-auto-lib-libgd-conf-use-pkg-config.patch create mode 100644 bsp/buildroot/package/nginx/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch create mode 100644 bsp/buildroot/package/ninja/ninja.hash create mode 100644 bsp/buildroot/package/ninja/ninja.mk create mode 100644 bsp/buildroot/package/nload/Config.in create mode 100644 bsp/buildroot/package/nload/nload.hash create mode 100644 bsp/buildroot/package/nload/nload.mk delete mode 100644 bsp/buildroot/package/nodejs/0.10.42/0003-use-python-variable.patch rename bsp/buildroot/package/nodejs/{0.10.42 => 0.10.45}/0001-remove-python-bz2-dependency.patch (100%) rename bsp/buildroot/package/nodejs/{0.10.42 => 0.10.45}/0002-gyp-force-link-command-to-use-CXX.patch (100%) rename bsp/buildroot/package/nodejs/{0.10.42/0004-fix-musl-USE-MISC-build-issue.patch => 0.10.45/0003-fix-musl-USE-MISC-build-issue.patch} (100%) rename bsp/buildroot/package/nodejs/{0.10.42/0005-Fix-support-for-uClibc-ng.patch => 0.10.45/0004-Fix-support-for-uClibc-ng.patch} (100%) delete mode 100644 bsp/buildroot/package/nodejs/5.5.0/0001-Remove-dependency-on-Python-bz2-module.patch delete mode 100644 bsp/buildroot/package/nodejs/5.5.0/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch delete mode 100644 bsp/buildroot/package/nodejs/5.5.0/0004-Fix-va_list-not-declared.patch delete mode 100644 bsp/buildroot/package/nodejs/5.5.0/0005-Fix-support-for-uClibc-ng.patch rename bsp/buildroot/package/nodejs/{5.5.0/0002-gyp-force-link-command-to-use-CXX.patch => 6.2.1/0001-gyp-force-link-command-to-use-CXX.patch} (100%) create mode 100644 bsp/buildroot/package/nodm/Config.in create mode 100755 bsp/buildroot/package/nodm/S90nodm create mode 100644 bsp/buildroot/package/nodm/nodm.hash create mode 100644 bsp/buildroot/package/nodm/nodm.mk create mode 100644 bsp/buildroot/package/nodm/nodm.pam create mode 100644 bsp/buildroot/package/norm/0001-fix-bigendian-build.patch create mode 100644 bsp/buildroot/package/norm/0002-protolib-drop-linux-version-check.patch create mode 100644 bsp/buildroot/package/norm/0003-remove-kernel-headers-include-musl-fix.patch create mode 100644 bsp/buildroot/package/norm/Config.in create mode 100644 bsp/buildroot/package/norm/norm.hash create mode 100644 bsp/buildroot/package/norm/norm.mk create mode 100644 bsp/buildroot/package/ntfs-3g/0001-libfuse-util-include-paths.h-when-needed.patch create mode 100644 bsp/buildroot/package/nvme/Config.in create mode 100644 bsp/buildroot/package/nvme/nvme.hash create mode 100755 bsp/buildroot/package/nvme/nvme.mk create mode 100644 bsp/buildroot/package/odroid-mali/Config.in create mode 100644 bsp/buildroot/package/odroid-mali/odroid-mali.hash create mode 100644 bsp/buildroot/package/odroid-mali/odroid-mali.mk create mode 100644 bsp/buildroot/package/odroid-scripts/Config.in create mode 100644 bsp/buildroot/package/odroid-scripts/S50odroidc2_fb create mode 100644 bsp/buildroot/package/odroid-scripts/odroid-scripts.hash create mode 100644 bsp/buildroot/package/odroid-scripts/odroid-scripts.mk create mode 100644 bsp/buildroot/package/omap-u-boot-utils/omap-u-boot-utils.hash create mode 100644 bsp/buildroot/package/omniorb/0001-fix-unistd-sys-time-includes.patch delete mode 100644 bsp/buildroot/package/omniorb/0001-uclinux-is-also-linux.patch create mode 100644 bsp/buildroot/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch create mode 100644 bsp/buildroot/package/omxplayer/Config.in create mode 100644 bsp/buildroot/package/omxplayer/omxplayer.hash create mode 100644 bsp/buildroot/package/omxplayer/omxplayer.mk create mode 100644 bsp/buildroot/package/on2-8170-libs/on2-8170-libs.hash create mode 100644 bsp/buildroot/package/on2-8170-modules/on2-8170-modules.hash create mode 100644 bsp/buildroot/package/open-plc-utils/open-plc-utils.hash create mode 100644 bsp/buildroot/package/openblas/0001-Complete-support-for-MIPS-n32-ABI.patch create mode 100644 bsp/buildroot/package/openblas/0002-Makefile.arm-remove-march-flags.patch create mode 100644 bsp/buildroot/package/openblas/Config.in create mode 100644 bsp/buildroot/package/openblas/openblas.hash create mode 100644 bsp/buildroot/package/openblas/openblas.mk create mode 100644 bsp/buildroot/package/opencv/0001-atomic.patch delete mode 100644 bsp/buildroot/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch create mode 100644 bsp/buildroot/package/opencv/0002-avoid-sysctl_h.patch delete mode 100644 bsp/buildroot/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch delete mode 100644 bsp/buildroot/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch create mode 100644 bsp/buildroot/package/opencv/opencv.hash delete mode 100644 bsp/buildroot/package/opencv3/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch delete mode 100644 bsp/buildroot/package/opencv3/0002-fix-support-for-pthreads-parallel_for.patch create mode 100644 bsp/buildroot/package/opencv3/opencv3.hash create mode 100644 bsp/buildroot/package/openmpi/Config.in create mode 100644 bsp/buildroot/package/openmpi/openmpi-mips32-fortran.cache create mode 100644 bsp/buildroot/package/openmpi/openmpi-mips64-fortran.cache create mode 100644 bsp/buildroot/package/openmpi/openmpi.hash create mode 100644 bsp/buildroot/package/openmpi/openmpi.mk create mode 100644 bsp/buildroot/package/openpgm/0003-Rework-headers-includes-to-fix-build-with-musl-libc.patch rename bsp/buildroot/package/openpowerlink/{0005-Add-top-level-CMakeLists.txt.patch => 0003-Add-top-level-CMakeLists.txt.patch} (76%) delete mode 100644 bsp/buildroot/package/openpowerlink/0003-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch delete mode 100644 bsp/buildroot/package/openpowerlink/0004-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch create mode 100644 bsp/buildroot/package/opentyrian-data/opentyrian-data.hash create mode 100644 bsp/buildroot/package/openvmtools/openvmtools.hash create mode 100644 bsp/buildroot/package/openzwave/0001-Fix-warning-on-wcsdup-implicit-declaration.patch create mode 100644 bsp/buildroot/package/openzwave/0002-Ensure-correct-git-repository-path.patch create mode 100644 bsp/buildroot/package/openzwave/Config.in create mode 100644 bsp/buildroot/package/openzwave/openzwave.hash create mode 100644 bsp/buildroot/package/openzwave/openzwave.mk create mode 100644 bsp/buildroot/package/owfs/0001-configure.ac-check-for-localtime_r.patch create mode 100644 bsp/buildroot/package/owfs/0002-compat.h-only-include-compat_netdb.h-if-needed.patch create mode 100644 bsp/buildroot/package/owfs/Config.in create mode 100755 bsp/buildroot/package/owfs/S25owserver create mode 100755 bsp/buildroot/package/owfs/S30owfs create mode 100644 bsp/buildroot/package/owfs/owfs.hash create mode 100644 bsp/buildroot/package/owfs/owfs.mk create mode 100644 bsp/buildroot/package/owl-linux/owl-linux.hash create mode 100644 bsp/buildroot/package/p7zip/0001-bfin.patch create mode 100644 bsp/buildroot/package/p7zip/Config.in create mode 100644 bsp/buildroot/package/p7zip/p7zip.hash create mode 100644 bsp/buildroot/package/p7zip/p7zip.mk rename bsp/buildroot/package/pcre/{0001-no-compat.patch => 0001-Kill-compatibility-bits.patch} (63%) rename bsp/buildroot/package/pcre/{0002-no-cpp-tests.patch => 0002-Disable-C-unit-tests.patch} (66%) create mode 100644 bsp/buildroot/package/pcsc-lite/pcsc-lite.hash create mode 100644 bsp/buildroot/package/pdbg/Config.in create mode 100644 bsp/buildroot/package/pdbg/pdbg.hash create mode 100644 bsp/buildroot/package/pdbg/pdbg.mk create mode 100644 bsp/buildroot/package/phidgetwebservice/phidgetwebservice.hash rename bsp/buildroot/package/php/{0001-ditch-unset.patch => 0001-acinclude.m4-don-t-unset-variables.patch} (52%) rename bsp/buildroot/package/php/{0002-no-iconv-search.patch => 0002-iconv-tweak-iconv-detection.patch} (69%) rename bsp/buildroot/package/php/{0003-disable-pharcmd.patch => 0003-configure-disable-the-phar-tool.patch} (60%) rename bsp/buildroot/package/php/{0004-flock-type-linux.patch => 0004-OPcache-flock-mechanism-is-obviously-linux-so-force-.patch} (66%) delete mode 100644 bsp/buildroot/package/php/0005-ac-cache-strcasestr.patch create mode 100644 bsp/buildroot/package/php/0005-ext-fileinfo-config.m4-allow-cache-answer-for-strcas.patch rename bsp/buildroot/package/php/{0006-fix-php-fpm.service.in.patch => 0006-Fix-php-fpm.service.in.patch} (93%) create mode 100644 bsp/buildroot/package/php/0007-phpdbg_prompt-enclose-phpdbg_load_module_or_extensio.patch create mode 100644 bsp/buildroot/package/pifmrds/pifmrds.hash create mode 100644 bsp/buildroot/package/poco/0002-fix-m68k-double-conv-detect.patch delete mode 100644 bsp/buildroot/package/poco/0002-poco-don-t-build-debug-libraries.patch delete mode 100644 bsp/buildroot/package/poco/0003-Fix-conflicting-declaration-with-unbundled-pcre.patch delete mode 100644 bsp/buildroot/package/poco/0004-fix-unbundled-pcre-usage.patch delete mode 100644 bsp/buildroot/package/poco/0005-add-missing-LIBPREFIX-definition.patch create mode 100644 bsp/buildroot/package/poco/poco.hash delete mode 100644 bsp/buildroot/package/postgresql/0001-Compare-linker-compiler-output-with-their-default-ou.patch create mode 100644 bsp/buildroot/package/pound/Config.in create mode 100644 bsp/buildroot/package/pound/pound.hash create mode 100644 bsp/buildroot/package/pound/pound.mk create mode 100644 bsp/buildroot/package/pps-tools/pps-tools.hash create mode 100644 bsp/buildroot/package/privoxy/Config.in create mode 100644 bsp/buildroot/package/privoxy/privoxy.hash create mode 100644 bsp/buildroot/package/privoxy/privoxy.mk create mode 100644 bsp/buildroot/package/procps-ng/0003-ps-output.c-include-dlfcn.h-only-when-necessary.patch create mode 100644 bsp/buildroot/package/procrank_linux/Config.in create mode 100644 bsp/buildroot/package/procrank_linux/procrank_linux.hash create mode 100644 bsp/buildroot/package/procrank_linux/procrank_linux.mk create mode 100644 bsp/buildroot/package/protobuf/0001-Fix-GOOGLE_PROTOBUF_ATOMICOPS_ERROR-syntax-error.patch create mode 100644 bsp/buildroot/package/protobuf/0002-configure.ac-check-if-libatomic-is-needed.patch create mode 100644 bsp/buildroot/package/pulseaudio/0002-webrtc-C-11-is-only-required-for-WebRTC-support.patch create mode 100644 bsp/buildroot/package/pulseview/0002-cmake-add-check-for-explicit-linking-against-libatom.patch create mode 100644 bsp/buildroot/package/putty/0001-uxcons-Fix-on-musl-libc.patch create mode 100644 bsp/buildroot/package/putty/0002-Fix-__uint128_t-compile-error-on-MinGW.patch create mode 100644 bsp/buildroot/package/putty/Config.in create mode 100644 bsp/buildroot/package/putty/putty.hash create mode 100644 bsp/buildroot/package/putty/putty.mk delete mode 100644 bsp/buildroot/package/pv/0001-add-lstat64-to-64-emulation.patch create mode 100644 bsp/buildroot/package/python-argh/Config.in create mode 100644 bsp/buildroot/package/python-argh/python-argh.hash create mode 100644 bsp/buildroot/package/python-argh/python-argh.mk create mode 100644 bsp/buildroot/package/python-autobahn/Config.in create mode 100644 bsp/buildroot/package/python-autobahn/python-autobahn.hash create mode 100644 bsp/buildroot/package/python-autobahn/python-autobahn.mk create mode 100644 bsp/buildroot/package/python-characteristic/Config.in create mode 100644 bsp/buildroot/package/python-characteristic/python-characteristic.hash create mode 100644 bsp/buildroot/package/python-characteristic/python-characteristic.mk create mode 100644 bsp/buildroot/package/python-coherence/0001-Fix-twisted-detection.patch create mode 100644 bsp/buildroot/package/python-configshell-fb/python-configshell-fb.hash create mode 100644 bsp/buildroot/package/python-crc16/python-crc16.hash create mode 100644 bsp/buildroot/package/python-crossbar/0001-Avoid-intentional-syntax-error.patch create mode 100644 bsp/buildroot/package/python-crossbar/Config.in create mode 100644 bsp/buildroot/package/python-crossbar/python-crossbar.hash create mode 100644 bsp/buildroot/package/python-crossbar/python-crossbar.mk create mode 100644 bsp/buildroot/package/python-cryptography/Config.in create mode 100644 bsp/buildroot/package/python-cryptography/python-cryptography.hash create mode 100644 bsp/buildroot/package/python-cryptography/python-cryptography.mk create mode 100644 bsp/buildroot/package/python-daemon/python-daemon.hash create mode 100644 bsp/buildroot/package/python-dataproperty/Config.in create mode 100644 bsp/buildroot/package/python-dataproperty/python-dataproperty.hash create mode 100644 bsp/buildroot/package/python-dataproperty/python-dataproperty.mk create mode 100644 bsp/buildroot/package/python-dateutil/Config.in create mode 100644 bsp/buildroot/package/python-dateutil/python-dateutil.hash create mode 100644 bsp/buildroot/package/python-dateutil/python-dateutil.mk create mode 100644 bsp/buildroot/package/python-dialog3/Config.in create mode 100644 bsp/buildroot/package/python-dialog3/python-dialog3.hash create mode 100644 bsp/buildroot/package/python-dialog3/python-dialog3.mk create mode 100644 bsp/buildroot/package/python-dicttoxml/Config.in create mode 100644 bsp/buildroot/package/python-dicttoxml/python-dicttoxml.hash create mode 100644 bsp/buildroot/package/python-dicttoxml/python-dicttoxml.mk create mode 100644 bsp/buildroot/package/python-docopt/python-docopt.hash create mode 100644 bsp/buildroot/package/python-dominate/Config.in create mode 100644 bsp/buildroot/package/python-dominate/python-dominate.hash create mode 100644 bsp/buildroot/package/python-dominate/python-dominate.mk create mode 100644 bsp/buildroot/package/python-dpkt/python-dpkt.hash create mode 100644 bsp/buildroot/package/python-engineio/Config.in create mode 100644 bsp/buildroot/package/python-engineio/python-engineio.hash create mode 100644 bsp/buildroot/package/python-engineio/python-engineio.mk create mode 100644 bsp/buildroot/package/python-flask-jsonrpc/Config.in create mode 100644 bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.hash create mode 100644 bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.mk create mode 100644 bsp/buildroot/package/python-flask-login/Config.in create mode 100644 bsp/buildroot/package/python-flask-login/python-flask-login.hash create mode 100644 bsp/buildroot/package/python-flask-login/python-flask-login.mk create mode 100644 bsp/buildroot/package/python-humanize/Config.in create mode 100644 bsp/buildroot/package/python-humanize/python-humanize.hash create mode 100644 bsp/buildroot/package/python-humanize/python-humanize.mk create mode 100644 bsp/buildroot/package/python-iniparse/Config.in create mode 100644 bsp/buildroot/package/python-iniparse/python-iniparse.hash create mode 100644 bsp/buildroot/package/python-iniparse/python-iniparse.mk create mode 100644 bsp/buildroot/package/python-iowait/Config.in create mode 100644 bsp/buildroot/package/python-iowait/python-iowait.hash create mode 100644 bsp/buildroot/package/python-iowait/python-iowait.mk create mode 100644 bsp/buildroot/package/python-ipy/python-ipy.hash create mode 100644 bsp/buildroot/package/python-ipython/python-ipython.hash create mode 100644 bsp/buildroot/package/python-itsdangerous/python-itsdangerous.hash create mode 100644 bsp/buildroot/package/python-json-schema-validator/python-json-schema-validator.hash create mode 100644 bsp/buildroot/package/python-keyring/python-keyring.hash create mode 100644 bsp/buildroot/package/python-libconfig/python-libconfig.hash create mode 100644 bsp/buildroot/package/python-lmdb/Config.in create mode 100644 bsp/buildroot/package/python-lmdb/python-lmdb.hash create mode 100644 bsp/buildroot/package/python-lmdb/python-lmdb.mk delete mode 100644 bsp/buildroot/package/python-m2crypto/0001-Don-t-try-to-build-with-SSLv2-when-it-is-not-availab.patch delete mode 100644 bsp/buildroot/package/python-m2crypto/python-m2crypto.hash delete mode 100644 bsp/buildroot/package/python-m2crypto/python-m2crypto.mk create mode 100644 bsp/buildroot/package/python-mad/python-mad.hash create mode 100644 bsp/buildroot/package/python-markdown/python-markdown.hash create mode 100644 bsp/buildroot/package/python-meld3/python-meld3.hash create mode 100644 bsp/buildroot/package/python-pam/python-pam.hash create mode 100644 bsp/buildroot/package/python-pathtools/Config.in create mode 100644 bsp/buildroot/package/python-pathtools/python-pathtools.hash create mode 100644 bsp/buildroot/package/python-pathtools/python-pathtools.mk create mode 100644 bsp/buildroot/package/python-pathvalidate/Config.in create mode 100644 bsp/buildroot/package/python-pathvalidate/python-pathvalidate.hash create mode 100644 bsp/buildroot/package/python-pathvalidate/python-pathvalidate.mk create mode 100644 bsp/buildroot/package/python-pexpect/Config.in create mode 100644 bsp/buildroot/package/python-pexpect/python-pexpect.hash create mode 100644 bsp/buildroot/package/python-pexpect/python-pexpect.mk create mode 100644 bsp/buildroot/package/python-pillow/Config.in create mode 100644 bsp/buildroot/package/python-pillow/python-pillow.hash create mode 100644 bsp/buildroot/package/python-pillow/python-pillow.mk create mode 100644 bsp/buildroot/package/python-posix-ipc/python-posix-ipc.hash create mode 100644 bsp/buildroot/package/python-prompt-toolkit/Config.in create mode 100644 bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.hash create mode 100644 bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.mk create mode 100644 bsp/buildroot/package/python-protobuf/python-protobuf.hash create mode 100644 bsp/buildroot/package/python-ptyprocess/Config.in create mode 100644 bsp/buildroot/package/python-ptyprocess/python-ptyprocess.hash create mode 100644 bsp/buildroot/package/python-ptyprocess/python-ptyprocess.mk create mode 100644 bsp/buildroot/package/python-pyasn-modules/Config.in create mode 100644 bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.hash create mode 100644 bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.mk create mode 100644 bsp/buildroot/package/python-pycparser/Config.in create mode 100644 bsp/buildroot/package/python-pydal/python-pydal.hash create mode 100644 bsp/buildroot/package/python-pygments/Config.in create mode 100644 bsp/buildroot/package/python-pygments/python-pygments.hash create mode 100644 bsp/buildroot/package/python-pygments/python-pygments.mk create mode 100644 bsp/buildroot/package/python-pyinotify/python-pyinotify.hash create mode 100644 bsp/buildroot/package/python-pymysql/Config.in create mode 100644 bsp/buildroot/package/python-pymysql/python-pymysql.hash create mode 100644 bsp/buildroot/package/python-pymysql/python-pymysql.mk create mode 100644 bsp/buildroot/package/python-pynacl/Config.in create mode 100644 bsp/buildroot/package/python-pynacl/python-pynacl.hash create mode 100644 bsp/buildroot/package/python-pynacl/python-pynacl.mk create mode 100644 bsp/buildroot/package/python-pyopenssl/Config.in create mode 100644 bsp/buildroot/package/python-pyopenssl/python-pyopenssl.hash create mode 100644 bsp/buildroot/package/python-pyopenssl/python-pyopenssl.mk create mode 100644 bsp/buildroot/package/python-pypcap/python-pypcap.hash create mode 100644 bsp/buildroot/package/python-pyro/python-pyro.hash create mode 100644 bsp/buildroot/package/python-pysnmp-apps/python-pysnmp-apps.hash create mode 100644 bsp/buildroot/package/python-pysnmp-mibs/python-pysnmp-mibs.hash create mode 100644 bsp/buildroot/package/python-pysnmp/python-pysnmp.hash create mode 100644 bsp/buildroot/package/python-pysocks/Config.in create mode 100644 bsp/buildroot/package/python-pysocks/python-pysocks.hash create mode 100644 bsp/buildroot/package/python-pysocks/python-pysocks.mk create mode 100644 bsp/buildroot/package/python-pytablewriter/Config.in create mode 100644 bsp/buildroot/package/python-pytablewriter/python-pytablewriter.hash create mode 100644 bsp/buildroot/package/python-pytablewriter/python-pytablewriter.mk create mode 100644 bsp/buildroot/package/python-pytrie/Config.in create mode 100644 bsp/buildroot/package/python-pytrie/python-pytrie.hash create mode 100644 bsp/buildroot/package/python-pytrie/python-pytrie.mk create mode 100644 bsp/buildroot/package/python-pytz/Config.in create mode 100644 bsp/buildroot/package/python-pytz/python-pytz.hash create mode 100644 bsp/buildroot/package/python-pytz/python-pytz.mk create mode 100644 bsp/buildroot/package/python-pyusb/python-pyusb.hash create mode 100644 bsp/buildroot/package/python-pyzmq/python-pyzmq.hash create mode 100755 bsp/buildroot/package/python-rpi-gpio/Config.in create mode 100755 bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.hash create mode 100755 bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.mk create mode 100644 bsp/buildroot/package/python-rtslib-fb/python-rtslib-fb.hash create mode 100644 bsp/buildroot/package/python-scapy3k/Config.in create mode 100644 bsp/buildroot/package/python-scapy3k/python-scapy3k.hash create mode 100644 bsp/buildroot/package/python-scapy3k/python-scapy3k.mk create mode 100644 bsp/buildroot/package/python-sdnotify/Config.in create mode 100644 bsp/buildroot/package/python-sdnotify/python-sdnotify.hash create mode 100644 bsp/buildroot/package/python-sdnotify/python-sdnotify.mk create mode 100644 bsp/buildroot/package/python-service-identity/Config.in create mode 100644 bsp/buildroot/package/python-service-identity/python-service-identity.hash create mode 100644 bsp/buildroot/package/python-service-identity/python-service-identity.mk create mode 100644 bsp/buildroot/package/python-setproctitle/Config.in create mode 100644 bsp/buildroot/package/python-setproctitle/python-setproctitle.hash create mode 100644 bsp/buildroot/package/python-setproctitle/python-setproctitle.mk create mode 100644 bsp/buildroot/package/python-shutilwhich/Config.in create mode 100644 bsp/buildroot/package/python-shutilwhich/python-shutilwhich.hash create mode 100644 bsp/buildroot/package/python-shutilwhich/python-shutilwhich.mk create mode 100644 bsp/buildroot/package/python-simplejson/python-simplejson.hash create mode 100644 bsp/buildroot/package/python-socketio/Config.in create mode 100644 bsp/buildroot/package/python-socketio/python-socketio.hash create mode 100644 bsp/buildroot/package/python-socketio/python-socketio.mk create mode 100644 bsp/buildroot/package/python-tomako/Config.in create mode 100644 bsp/buildroot/package/python-tomako/python-tomako.hash create mode 100644 bsp/buildroot/package/python-tomako/python-tomako.mk create mode 100644 bsp/buildroot/package/python-tornado/0001-Don-t-require-backports.ssl_match_hostname-on-Python.patch create mode 100644 bsp/buildroot/package/python-treq/Config.in create mode 100644 bsp/buildroot/package/python-treq/python-treq.hash create mode 100644 bsp/buildroot/package/python-treq/python-treq.mk create mode 100644 bsp/buildroot/package/python-txaio/Config.in create mode 100644 bsp/buildroot/package/python-txaio/python-txaio.hash create mode 100644 bsp/buildroot/package/python-txaio/python-txaio.mk create mode 100644 bsp/buildroot/package/python-u-msgpack/Config.in create mode 100644 bsp/buildroot/package/python-u-msgpack/python-u-msgpack.hash create mode 100644 bsp/buildroot/package/python-u-msgpack/python-u-msgpack.mk create mode 100644 bsp/buildroot/package/python-ubjson/Config.in create mode 100644 bsp/buildroot/package/python-ubjson/python-ubjson.hash create mode 100644 bsp/buildroot/package/python-ubjson/python-ubjson.mk create mode 100644 bsp/buildroot/package/python-ujson/Config.in create mode 100644 bsp/buildroot/package/python-ujson/python-ujson.hash create mode 100644 bsp/buildroot/package/python-ujson/python-ujson.mk create mode 100644 bsp/buildroot/package/python-versiontools/python-versiontools.hash create mode 100644 bsp/buildroot/package/python-watchdog/Config.in create mode 100644 bsp/buildroot/package/python-watchdog/python-watchdog.hash create mode 100644 bsp/buildroot/package/python-watchdog/python-watchdog.mk create mode 100644 bsp/buildroot/package/python-wcwidth/Config.in create mode 100644 bsp/buildroot/package/python-wcwidth/python-wcwidth.hash create mode 100644 bsp/buildroot/package/python-wcwidth/python-wcwidth.mk create mode 100644 bsp/buildroot/package/python-wsaccel/Config.in create mode 100644 bsp/buildroot/package/python-wsaccel/python-wsaccel.hash create mode 100644 bsp/buildroot/package/python-wsaccel/python-wsaccel.mk create mode 100644 bsp/buildroot/package/python-xlrd/Config.in create mode 100644 bsp/buildroot/package/python-xlrd/python-xlrd.hash create mode 100644 bsp/buildroot/package/python-xlrd/python-xlrd.mk create mode 100644 bsp/buildroot/package/python-xlsxwriter/Config.in create mode 100644 bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.hash create mode 100644 bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.mk create mode 100644 bsp/buildroot/package/python-xlutils/Config.in create mode 100644 bsp/buildroot/package/python-xlutils/python-xlutils.hash create mode 100644 bsp/buildroot/package/python-xlutils/python-xlutils.mk create mode 100644 bsp/buildroot/package/python-xlwt/Config.in create mode 100644 bsp/buildroot/package/python-xlwt/python-xlwt.hash create mode 100644 bsp/buildroot/package/python-xlwt/python-xlwt.mk delete mode 100644 bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch create mode 100644 bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch create mode 100644 bsp/buildroot/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch create mode 100644 bsp/buildroot/package/qdecoder/qdecoder.hash create mode 100644 bsp/buildroot/package/qextserialport/qextserialport.hash create mode 100644 bsp/buildroot/package/qjson/qjson.hash create mode 100644 bsp/buildroot/package/qlibc/qlibc.hash create mode 100644 bsp/buildroot/package/qt/0010-Fix-for-platform-socklen_t-on-other-C-libraries-than.patch create mode 100644 bsp/buildroot/package/qt/0011-Link-with-ldl-option-only-when-it-is-supported.patch delete mode 100644 bsp/buildroot/package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch delete mode 100644 bsp/buildroot/package/qt5/qt5base/0003-xcb-egl-fixes.patch delete mode 100644 bsp/buildroot/package/qt5/qt5base/0005-forkd-disable-eventfd-for-uclibc.patch create mode 100644 bsp/buildroot/package/qt5/qt5base/0007-Remove-libudev-dependency-from-kms.pro.patch delete mode 100644 bsp/buildroot/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch delete mode 100644 bsp/buildroot/package/qt5/qt5base/0014-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch create mode 100644 bsp/buildroot/package/qt5/qt5canvas3d/Config.in create mode 100644 bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.hash create mode 100644 bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.mk create mode 100644 bsp/buildroot/package/qt5/qt5imageformats/0001-tvOS-support.patch create mode 100644 bsp/buildroot/package/qt5/qt5location/Config.in create mode 100644 bsp/buildroot/package/qt5/qt5location/qt5location.hash create mode 100644 bsp/buildroot/package/qt5/qt5location/qt5location.mk delete mode 100644 bsp/buildroot/package/qt5/qt5quick1/Config.in delete mode 100644 bsp/buildroot/package/qt5/qt5quick1/qt5quick1.hash delete mode 100644 bsp/buildroot/package/qt5/qt5quick1/qt5quick1.mk create mode 100644 bsp/buildroot/package/qt5/qt5quickcontrols2/Config.in create mode 100644 bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash create mode 100644 bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk create mode 100644 bsp/buildroot/package/qt5/qt5serialbus/Config.in create mode 100644 bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.hash create mode 100644 bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.mk create mode 100644 bsp/buildroot/package/qt5/qt5tools/Config.in create mode 100644 bsp/buildroot/package/qt5/qt5tools/qt5tools.hash create mode 100644 bsp/buildroot/package/qt5/qt5tools/qt5tools.mk delete mode 100644 bsp/buildroot/package/qt5/qt5webchannel/0001-Fix-builds-without-qml-module.patch delete mode 100644 bsp/buildroot/package/qt5/qt5webkit-examples/0001-build.patch delete mode 100644 bsp/buildroot/package/qt5/qt5webkit-examples/Config.in delete mode 100644 bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.hash delete mode 100644 bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.mk create mode 100644 bsp/buildroot/package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch create mode 100644 bsp/buildroot/package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch create mode 100644 bsp/buildroot/package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch create mode 100644 bsp/buildroot/package/qtuio/qtuio.hash create mode 100644 bsp/buildroot/package/quagga/0003-lib-memory-fix-indirect-static-link-with-zlib.patch create mode 100644 bsp/buildroot/package/quagga/quagga@.service create mode 100644 bsp/buildroot/package/quagga/quagga_tmpfiles.conf rename bsp/buildroot/package/quota/{01-tools-getrpcbynumber.patch => 0001-tools-getrpcbynumber.patch} (100%) rename bsp/buildroot/package/quota/{02-fix-static-linking.patch => 0002-fix-static-linking.patch} (100%) create mode 100644 bsp/buildroot/package/racehound/racehound.hash create mode 100644 bsp/buildroot/package/rapidjson/rapidjson.hash create mode 100644 bsp/buildroot/package/raptor/0001-configure.ac-remove-conditional-lib-inclusion.patch create mode 100644 bsp/buildroot/package/raptor/Config.in create mode 100644 bsp/buildroot/package/raptor/raptor.hash create mode 100644 bsp/buildroot/package/raptor/raptor.mk create mode 100644 bsp/buildroot/package/rpcbind/0003-src-remove-use-of-the-__P-macro.patch create mode 100644 bsp/buildroot/package/rpi-firmware/rpi-firmware.hash delete mode 100644 bsp/buildroot/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch delete mode 100644 bsp/buildroot/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch create mode 100644 bsp/buildroot/package/rpi-userland/0006-dtmerge-add-missing-include-for-va_list.patch create mode 100644 bsp/buildroot/package/rpi-userland/rpi-userland.hash delete mode 100644 bsp/buildroot/package/rrdtool/0001-Add-configure-option-to-disable-documentation.patch create mode 100644 bsp/buildroot/package/rs485conf/Config.in create mode 100644 bsp/buildroot/package/rs485conf/rs485conf.hash create mode 100644 bsp/buildroot/package/rs485conf/rs485conf.mk delete mode 100644 bsp/buildroot/package/rsyslog/0001-musl-fcntl-h.patch create mode 100644 bsp/buildroot/package/rt-tests/0001-Fix-various-minor-issues-with-rt-tests-build-system.patch create mode 100644 bsp/buildroot/package/rt-tests/0002-Fix-a-build-issue-with-uClibc-ng.patch create mode 100644 bsp/buildroot/package/rt-tests/0003-Add-syscall-number-for-sched_-gs-etattr-for-SH4.patch delete mode 100644 bsp/buildroot/package/rt-tests/01-fix-build-system.patch delete mode 100644 bsp/buildroot/package/rt-tests/02-uclibc.patch delete mode 100644 bsp/buildroot/package/rt-tests/03-fix-non-nptl-buil.patch delete mode 100644 bsp/buildroot/package/rt-tests/04-Makefile-fix-tests-dependencies.patch create mode 100644 bsp/buildroot/package/rt-tests/rt-tests.hash create mode 100644 bsp/buildroot/package/rtl8188eu/rtl8188eu.hash create mode 100644 bsp/buildroot/package/rtl8821au/rtl8821au.hash delete mode 100644 bsp/buildroot/package/rtptools/0001-host2ip-no-nis-on-uClibc.patch create mode 100644 bsp/buildroot/package/rtptools/0001-host2ip.c-disable-NIS-support-for-toolchains-lacking.patch create mode 100644 bsp/buildroot/package/ruby/0001-process.c-fix-rb_spawn_process-for-nommu.patch create mode 100644 bsp/buildroot/package/runc/Config.in create mode 100644 bsp/buildroot/package/runc/runc.hash create mode 100644 bsp/buildroot/package/runc/runc.mk create mode 100644 bsp/buildroot/package/sam-ba/sam-ba.hash delete mode 100644 bsp/buildroot/package/samba/0001-fix-smbd-libs-avahi.patch delete mode 100644 bsp/buildroot/package/samba/0002-getaddrinfo.patch delete mode 100644 bsp/buildroot/package/samba/Config.in delete mode 100755 bsp/buildroot/package/samba/S91smb delete mode 100644 bsp/buildroot/package/samba/samba.hash delete mode 100644 bsp/buildroot/package/samba/samba.mk delete mode 100644 bsp/buildroot/package/samba/simple.conf delete mode 100644 bsp/buildroot/package/samba4/0002-build-improve-stack-protector-check.patch create mode 100644 bsp/buildroot/package/sane-backends/0002-Add-missing-sys-types.h-includes.patch delete mode 100644 bsp/buildroot/package/sawman/sawman.hash create mode 100644 bsp/buildroot/package/scrub/Config.in create mode 100644 bsp/buildroot/package/scrub/scrub.hash create mode 100644 bsp/buildroot/package/scrub/scrub.mk create mode 100644 bsp/buildroot/package/sdl2_gfx/Config.in create mode 100644 bsp/buildroot/package/sdl2_gfx/sdl2_gfx.hash create mode 100644 bsp/buildroot/package/sdl2_gfx/sdl2_gfx.mk create mode 100644 bsp/buildroot/package/sdl2_image/Config.in create mode 100644 bsp/buildroot/package/sdl2_image/sdl2_image.hash create mode 100644 bsp/buildroot/package/sdl2_image/sdl2_image.mk create mode 100644 bsp/buildroot/package/sdl2_ttf/Config.in create mode 100644 bsp/buildroot/package/sdl2_ttf/sdl2_ttf.hash create mode 100644 bsp/buildroot/package/sdl2_ttf/sdl2_ttf.mk create mode 100644 bsp/buildroot/package/sdl_mixer/0001-Add-Libs.private-field-to-pkg-config-file.patch delete mode 100644 bsp/buildroot/package/sdparm/0000-makefile-remove-host-headers-include.patch delete mode 100644 bsp/buildroot/package/ser2net/0001-Fix-TIOCSRS485-undeclared-error.patch create mode 100644 bsp/buildroot/package/ser2net/S50ser2net create mode 100644 bsp/buildroot/package/setools/0003-setools-Update-for-2015-02-02-Userspace-release.patch create mode 100644 bsp/buildroot/package/sg3_utils/0001-support-uclinux-as-a-linux.patch create mode 100644 bsp/buildroot/package/shared-mime-info/0001-Remove-incorrect-dependency-from-install-data-hook.patch create mode 100644 bsp/buildroot/package/shellinabox/0001-Makefile-disable-always-building-statically.patch create mode 100644 bsp/buildroot/package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch create mode 100644 bsp/buildroot/package/shellinabox/Config.in create mode 100644 bsp/buildroot/package/shellinabox/shellinabox.hash create mode 100644 bsp/buildroot/package/shellinabox/shellinabox.mk create mode 100644 bsp/buildroot/package/sl/sl.hash create mode 100644 bsp/buildroot/package/slang/0005-make-install-static-do-install-pkgconfig-as-install-.patch create mode 100644 bsp/buildroot/package/smack/smack.hash create mode 100644 bsp/buildroot/package/snappy/snappy.hash create mode 100644 bsp/buildroot/package/snowball-hdmiservice/snowball-hdmiservice.hash create mode 100644 bsp/buildroot/package/snowball-init/snowball-init.hash delete mode 100644 bsp/buildroot/package/socketcand/0001-Remove-inline-keyword.patch create mode 100644 bsp/buildroot/package/socketcand/socketcand.hash create mode 100644 bsp/buildroot/package/softether/softether.hash create mode 100644 bsp/buildroot/package/sphinxbase/Config.in create mode 100644 bsp/buildroot/package/sphinxbase/sphinxbase.hash create mode 100644 bsp/buildroot/package/sphinxbase/sphinxbase.mk create mode 100644 bsp/buildroot/package/sqlcipher/sqlcipher.hash create mode 100644 bsp/buildroot/package/squeezelite/0003-ffmpeg_2_9.patch create mode 100644 bsp/buildroot/package/stella/0001-Add-cross-compilation-support.patch create mode 100644 bsp/buildroot/package/stella/0002-Do-not-strip-when-installing.patch create mode 100644 bsp/buildroot/package/stella/0003-configure-Add-CXXFLAGS-for-test-compilations.patch create mode 100644 bsp/buildroot/package/stella/Config.in create mode 100644 bsp/buildroot/package/stella/stella.hash create mode 100644 bsp/buildroot/package/stella/stella.mk delete mode 100644 bsp/buildroot/package/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch create mode 100644 bsp/buildroot/package/sunxi-boards/sunxi-boards.hash create mode 100644 bsp/buildroot/package/sunxi-cedarx/sunxi-cedarx.hash delete mode 100644 bsp/buildroot/package/sunxi-mali-prop/Config.in delete mode 100644 bsp/buildroot/package/sunxi-mali-prop/sunxi-mali-prop.mk create mode 100644 bsp/buildroot/package/supertuxkart/0001-irrlicht-Get-rid-of-unprefixed-cflags.patch create mode 100644 bsp/buildroot/package/supertuxkart/0002-irrlicht-Fix-boolean-return-type-for-jpeglib-s-callb.patch create mode 100644 bsp/buildroot/package/supertuxkart/Config.in create mode 100644 bsp/buildroot/package/supertuxkart/supertuxkart.hash create mode 100644 bsp/buildroot/package/supertuxkart/supertuxkart.mk create mode 100644 bsp/buildroot/package/sysdig/sysdig.hash create mode 100644 bsp/buildroot/package/systemd-bootchart/0001-configure-add-option-to-not-build-manpages.patch create mode 100644 bsp/buildroot/package/systemd-bootchart/Config.in create mode 100644 bsp/buildroot/package/systemd-bootchart/systemd-bootchart.hash create mode 100644 bsp/buildroot/package/systemd-bootchart/systemd-bootchart.mk delete mode 100644 bsp/buildroot/package/taglib/0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch delete mode 100644 bsp/buildroot/package/tar/0001-fix-build-failure.patch create mode 100644 bsp/buildroot/package/targetcli-fb/targetcli-fb.hash create mode 100644 bsp/buildroot/package/taskd/0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch create mode 100644 bsp/buildroot/package/taskd/Config.in create mode 100644 bsp/buildroot/package/taskd/taskd.hash create mode 100644 bsp/buildroot/package/taskd/taskd.mk create mode 100644 bsp/buildroot/package/tegrarcm/0001-Don-t-assume-cryptopp-is-system-wide-installed.patch create mode 100644 bsp/buildroot/package/tegrarcm/Config.in.host create mode 100644 bsp/buildroot/package/tegrarcm/tegrarcm.hash create mode 100644 bsp/buildroot/package/tegrarcm/tegrarcm.mk create mode 100644 bsp/buildroot/package/tekui/Config.in create mode 100644 bsp/buildroot/package/tekui/tekui.hash create mode 100644 bsp/buildroot/package/tekui/tekui.mk create mode 100644 bsp/buildroot/package/terminology/Config.in create mode 100644 bsp/buildroot/package/terminology/terminology.hash create mode 100644 bsp/buildroot/package/terminology/terminology.mk create mode 100644 bsp/buildroot/package/texinfo/texinfo.hash create mode 100644 bsp/buildroot/package/texinfo/texinfo.mk create mode 100644 bsp/buildroot/package/ti-sgx-demos/Config.in create mode 100644 bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.hash create mode 100644 bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.mk create mode 100644 bsp/buildroot/package/ti-sgx-km/Config.in create mode 100644 bsp/buildroot/package/ti-sgx-km/ti-sgx-km.hash create mode 100644 bsp/buildroot/package/ti-sgx-km/ti-sgx-km.mk create mode 100644 bsp/buildroot/package/ti-sgx-um/Config.in create mode 100644 bsp/buildroot/package/ti-sgx-um/S80ti-sgx create mode 100644 bsp/buildroot/package/ti-sgx-um/powervr.ini create mode 100644 bsp/buildroot/package/ti-sgx-um/ti-sgx-um.hash create mode 100644 bsp/buildroot/package/ti-sgx-um/ti-sgx-um.mk create mode 100644 bsp/buildroot/package/ti-utils/ti-utils.hash create mode 100644 bsp/buildroot/package/tidsp-binaries/tidsp-binaries.hash create mode 100644 bsp/buildroot/package/tinyalsa/0002-asound.h-include-time.h-to-get-struct-timespec-proto.patch create mode 100644 bsp/buildroot/package/tinyalsa/tinyalsa.hash create mode 100644 bsp/buildroot/package/tinycbor/Config.in create mode 100644 bsp/buildroot/package/tinycbor/tinycbor.hash create mode 100644 bsp/buildroot/package/tinycbor/tinycbor.mk create mode 100644 bsp/buildroot/package/tinydtls/0001-Update-Makefile.in-to-allow-cross-compilation.patch create mode 100644 bsp/buildroot/package/tinydtls/0002-Fix-compilation-of-tests-directory.patch create mode 100644 bsp/buildroot/package/tinydtls/Config.in create mode 100644 bsp/buildroot/package/tinydtls/tinydtls.hash create mode 100644 bsp/buildroot/package/tinydtls/tinydtls.mk create mode 100644 bsp/buildroot/package/tinymembench/tinymembench.hash delete mode 100644 bsp/buildroot/package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch delete mode 100644 bsp/buildroot/package/tinyxml2/0002-Rename-test-fixed-cmake-warning.patch create mode 100644 bsp/buildroot/package/tinyxml2/tinyxml2.hash create mode 100644 bsp/buildroot/package/trace-cmd/0001-trace-cmd-Fix-trace-record.c-with-non-ptrace-compile.patch create mode 100644 bsp/buildroot/package/transmission/0003-miniupnpc-cross.patch create mode 100644 bsp/buildroot/package/transmission/0004-fix-utp-include.patch create mode 100644 bsp/buildroot/package/triggerhappy/0001-eventtable.h-use-correct-array-sizes-to-fix-building.patch create mode 100644 bsp/buildroot/package/trousers/0003-tsp_tcsi_param-include-limits.h-to-fix-musl-build.patch create mode 100644 bsp/buildroot/package/trousers/0004-Check-that-getpwent_r-is-available-before-using-it.patch create mode 100644 bsp/buildroot/package/tunctl/Config.in create mode 100644 bsp/buildroot/package/tunctl/tunctl.hash create mode 100644 bsp/buildroot/package/tunctl/tunctl.mk create mode 100644 bsp/buildroot/package/turbolua/Config.in create mode 100644 bsp/buildroot/package/turbolua/turbolua.hash create mode 100644 bsp/buildroot/package/turbolua/turbolua.mk create mode 100644 bsp/buildroot/package/tvheadend/0002-ffmpeg-revert-minimum-required-version-numbers.patch delete mode 100644 bsp/buildroot/package/tvheadend/0002-remove-werror.patch delete mode 100644 bsp/buildroot/package/tvheadend/accesscontrol.1 create mode 100644 bsp/buildroot/package/tzdump/tzdump.hash create mode 100644 bsp/buildroot/package/uboot-tools/0003-Make-FIT-support-really-optional.patch create mode 100644 bsp/buildroot/package/uclibc/0001-arm-fix-compile-in-thumb-mode.patch delete mode 100644 bsp/buildroot/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch delete mode 100644 bsp/buildroot/package/uclibc/0002-mips-fix-build-if-threads-are-disabled.patch create mode 100644 bsp/buildroot/package/uclibc/0002-sunrpc-Do-not-use-alloca-in-clntudp_call.patch create mode 100644 bsp/buildroot/package/uclibc/0003-ARC-Support-syscall-ABI-v4.patch create mode 100644 bsp/buildroot/package/ulogd/0001-ulogd-Use-dev-null-as-dummy-logfile-when-logging-to-.patch create mode 100644 bsp/buildroot/package/ulogd/0002-Define-_GNU_SOURCE-to-get-members-of-tcphdr.patch create mode 100644 bsp/buildroot/package/ulogd/0003-Use-stdint-types-everywhere.patch create mode 100644 bsp/buildroot/package/util-linux/0001-build-sys-fix-uClibc-ng-scanf-check.patch delete mode 100644 bsp/buildroot/package/util-linux/0001-sscanf-no-ms-as.patch delete mode 100644 bsp/buildroot/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch delete mode 100644 bsp/buildroot/package/util-linux/0004-vipw-Remove-pre-ANSI-compiler-support.patch delete mode 100644 bsp/buildroot/package/util-linux/0005-build-sys-use-REALTIME_LIBS.patch delete mode 100644 bsp/buildroot/package/util-linux/0006-buildsys-fix-static-configuration-and-building.patch delete mode 100644 bsp/buildroot/package/util-linux/0007-build-sys-fix-typo.patch create mode 100644 bsp/buildroot/package/vala/vala-wrapper create mode 100644 bsp/buildroot/package/valijson/Config.in create mode 100644 bsp/buildroot/package/valijson/valijson.hash create mode 100644 bsp/buildroot/package/valijson/valijson.mk create mode 100644 bsp/buildroot/package/vim/vim.hash create mode 100644 bsp/buildroot/package/vlc/0008-fix-fallback-code-and-add-required-realtime-library.patch delete mode 100644 bsp/buildroot/package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch delete mode 100644 bsp/buildroot/package/vlc/0009-opencv_example-add-missing-include-statements.patch create mode 100644 bsp/buildroot/package/vpnc/0001-Makefile-allow-to-override-the-PREFIX-variable.patch delete mode 100644 bsp/buildroot/package/vpnc/0001-fix-build.patch create mode 100644 bsp/buildroot/package/vpnc/0002-Makefile-allow-to-override-the-version.patch delete mode 100644 bsp/buildroot/package/vpnc/0002-nomanual.patch create mode 100644 bsp/buildroot/package/vpnc/0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch delete mode 100644 bsp/buildroot/package/vpnc/0003-susv3-legacy.patch create mode 100644 bsp/buildroot/package/vpnc/0004-Makefile-provide-an-option-to-not-build-manpages.patch create mode 100644 bsp/buildroot/package/vpnc/0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch create mode 100644 bsp/buildroot/package/vpnc/0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch create mode 100644 bsp/buildroot/package/vpnc/0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch create mode 100644 bsp/buildroot/package/vpnc/0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch create mode 100644 bsp/buildroot/package/vpnc/0009-config.c-add-missing-sys-ttydefaults.h-include.patch create mode 100644 bsp/buildroot/package/wavemon/Config.in create mode 100644 bsp/buildroot/package/wavemon/wavemon.hash create mode 100644 bsp/buildroot/package/wavemon/wavemon.mk create mode 100644 bsp/buildroot/package/wayland-protocols/Config.in create mode 100644 bsp/buildroot/package/wayland-protocols/wayland-protocols.hash create mode 100644 bsp/buildroot/package/wayland-protocols/wayland-protocols.mk create mode 100644 bsp/buildroot/package/wayland/0001-Support-architectures-with-non-empty-__USER_LABEL_PR.patch create mode 100644 bsp/buildroot/package/wayland/0002-scanner-Use-uint32_t-instead-of-uint.patch create mode 100644 bsp/buildroot/package/webkit/webkit.hash create mode 100644 bsp/buildroot/package/webkitgtk/Config.in create mode 100644 bsp/buildroot/package/webkitgtk/webkitgtk.hash create mode 100644 bsp/buildroot/package/webkitgtk/webkitgtk.mk delete mode 100644 bsp/buildroot/package/webkitgtk24/0002-WTF-Platform.h-use-_ABI64-instead-of-_MIPS_SIM_ABI64.patch create mode 100644 bsp/buildroot/package/webrtc-audio-processing/0001-configure.ac-fix-architecture-detection.patch create mode 100644 bsp/buildroot/package/webrtc-audio-processing/0002-Proper-detection-of-cxxabi.h-and-execinfo.h.patch create mode 100644 bsp/buildroot/package/weston/0002-libweston-compositor-rdp-fix-no-break-space-U-A0-U8-.patch create mode 100644 bsp/buildroot/package/wilc1000-firmware/Config.in create mode 100644 bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.hash create mode 100644 bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.mk delete mode 100644 bsp/buildroot/package/wine/0001-configure-allow-to-override-the-location-of-the-conf.patch create mode 100644 bsp/buildroot/package/wiringpi/0001-Adjust-for-buildroot-build.patch create mode 100644 bsp/buildroot/package/wiringpi/0002-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch create mode 100644 bsp/buildroot/package/wiringpi/Config.in create mode 100644 bsp/buildroot/package/wiringpi/wiringpi.hash create mode 100644 bsp/buildroot/package/wiringpi/wiringpi.mk create mode 100644 bsp/buildroot/package/wpa_supplicant/0007-systemd-Update-service-files-according-to-dbus-inter.patch create mode 100644 bsp/buildroot/package/wpa_supplicant/0008-WPS-Reject-a-Credential-with-invalid-passphrase.patch create mode 100644 bsp/buildroot/package/wpa_supplicant/0009-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch create mode 100644 bsp/buildroot/package/wpa_supplicant/0010-Remove-newlines-from-wpa_supplicant-config-network-o.patch create mode 100644 bsp/buildroot/package/wpa_supplicant/0011-Reject-SET_CRED-commands-with-newline-characters-in-.patch create mode 100644 bsp/buildroot/package/wpa_supplicant/0012-Reject-SET-commands-with-newline-characters-in-the-s.patch create mode 100644 bsp/buildroot/package/wpan-tools/0001-fix-build-with-newer-libnl.patch create mode 100644 bsp/buildroot/package/wpan-tools/Config.in create mode 100644 bsp/buildroot/package/wpan-tools/wpan-tools.hash create mode 100644 bsp/buildroot/package/wpan-tools/wpan-tools.mk create mode 100644 bsp/buildroot/package/wvdial/wvdial.hash create mode 100644 bsp/buildroot/package/wvstreams/wvstreams.hash delete mode 100644 bsp/buildroot/package/x11r7/libepoxy/Config.in create mode 100644 bsp/buildroot/package/x11r7/xapp_scripts/xapp_scripts.hash create mode 100644 bsp/buildroot/package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.hash create mode 100644 bsp/buildroot/package/x11r7/xapp_xsetmode/xapp_xsetmode.hash create mode 100644 bsp/buildroot/package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash create mode 100644 bsp/buildroot/package/x11r7/xcb-proto/0001-Make-whitespace-use-consistent.patch create mode 100644 bsp/buildroot/package/x11r7/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch create mode 100644 bsp/buildroot/package/x11r7/xcb-util/xcb-util.hash create mode 100644 bsp/buildroot/package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.hash create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/50-joystick.conf delete mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-input-void/Config.in delete mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.hash delete mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.mk create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/Config.in create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.hash create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/0001-Stop-using-Git-to-write-local-version.patch create mode 100644 bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-alias/xfont_font-alias.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.hash create mode 100644 bsp/buildroot/package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.hash rename bsp/buildroot/package/x11r7/xserver_xorg-server/{ => 1.17.4}/0001-modesettings-needs-dri2.patch (100%) create mode 100644 bsp/buildroot/package/x11r7/xserver_xorg-server/1.18.4/0001-modesettings-needs-dri2.patch create mode 100644 bsp/buildroot/package/xen/Config.in create mode 100644 bsp/buildroot/package/xen/xen.hash create mode 100644 bsp/buildroot/package/xen/xen.mk create mode 100644 bsp/buildroot/package/xinetd/xinetd.hash create mode 100644 bsp/buildroot/package/xl2tp/xl2tp.hash create mode 100644 bsp/buildroot/package/xorriso/0001-fix-musl-build.patch create mode 100644 bsp/buildroot/package/xorriso/Config.in.host create mode 100644 bsp/buildroot/package/xxhash/xxhash.hash create mode 100644 bsp/buildroot/package/yaffs2utils/yaffs2utils.hash create mode 100644 bsp/buildroot/package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch delete mode 100644 bsp/buildroot/package/yajl/0001-math-link.patch create mode 100644 bsp/buildroot/package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch create mode 100644 bsp/buildroot/package/yajl/0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch create mode 100644 bsp/buildroot/package/yaml-cpp/yaml-cpp.hash create mode 100644 bsp/buildroot/package/ympd/ympd.hash delete mode 100644 bsp/buildroot/package/zeromq/0003-Problem-return-code-of-sodium_init-is-not-checked.patch create mode 100644 bsp/buildroot/package/zip/Config.in.host create mode 100644 bsp/buildroot/package/zlog/zlog.hash rename bsp/buildroot/package/zmqpp/{0002-Allow-building-shared-or-static-library-only.patch => 0001-Allow-building-shared-or-static-library-only.patch} (52%) delete mode 100644 bsp/buildroot/package/zmqpp/0001-add-cstdlib-header-to-ensure-EXIT_FAILURE-presence.patch rename bsp/buildroot/package/zmqpp/{0003-Install-static-library-for-static-builds.patch => 0002-Install-static-library-for-static-builds.patch} (60%) create mode 100644 bsp/buildroot/package/zsh/0001-configure-use-user-set-pcre-config.patch create mode 100644 bsp/buildroot/package/zyre/zyre.hash create mode 100644 bsp/buildroot/support/dependencies/check-host-cmake.mk create mode 100755 bsp/buildroot/support/dependencies/check-host-cmake.sh create mode 100755 bsp/buildroot/support/scripts/hardlink-or-copy create mode 100644 bsp/buildroot/support/scripts/pycompile.py create mode 100755 bsp/buildroot/support/scripts/scanpypi delete mode 100644 bsp/buildroot/system/skeleton/etc/network/if-pre-up.d/.empty diff --git a/bsp/buildroot/.defconfig b/bsp/buildroot/.defconfig index 585be557..037647e2 100644 --- a/bsp/buildroot/.defconfig +++ b/bsp/buildroot/.defconfig @@ -19,7 +19,6 @@ BR2_i386=y # BR2_sparc is not set # BR2_sparc64 is not set # BR2_x86_64 is not set -# BR2_x86_i386 is not set # BR2_x86_i486 is not set # BR2_x86_i586 is not set BR2_x86_i686=y diff --git a/bsp/buildroot/CHANGES b/bsp/buildroot/CHANGES index c8b63521..ef72ff8b 100644 --- a/bsp/buildroot/CHANGES +++ b/bsp/buildroot/CHANGES @@ -1,3 +1,331 @@ +2016.08.1, Released September 21st, 2016 + + Fix potential entire root filesystem removal in the external + toolchain handling. This would trigger if (and only if) the + following conditions are met: + + - The user has selected a "known toolchain profile", such as a + Linaro toolchain, a Sourcery CodeBench toolchain etc. People + using "custom toolchain profile" are not affected. + + - The user has enabled BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED=y + to indicate that the toolchain is already locally available + (as opposed to having Buildroot download and extract the + toolchain) + + - The user has left BR2_TOOLCHAIN_EXTERNAL_PATH empty, because + his toolchain is directly available through the PATH + environment variable. When BR2_TOOLCHAIN_EXTERNAL_PATH is + non-empty, Buildroot will do something silly (remove the + toolchain contents), but that are limited to the toolchain + itself. + + When such conditions are met, Buildroot will run "rm -rf /*" + due to TOOLCHAIN_EXTERNAL_INSTALL_DIR being empty. + +2016.08, Released Septermber 1st, 2016 + + Minor fixes. + + Toolchain: ARC tools updated to arc-2016.09-eng010. + + Updated/fixed packages: libshout, luajit, mpd, mplayer + + Issues resolved (http://bugs.buildroot.org): + + #7520: CodeSourcery toolchain ARM: C++11 std::exception_ptr.. + #8341: Getting EGL Error: Could not create the egl surface:.. + #9121: gst1-imx for i.MX6 compile failed, cannot find PXP, .. + +2016.08-rc3, Released August 29th, 2016 + + Fixes all over the tree. + + Toolchain: C++ support for the internal blackfin toolchain + re-enabled. + + Architecture: Default to bf532 CPU variant for blackfin, + Fix flat one memory region support for m68k and disable flat + seperate data support because of compatibility issues. + + Defconfigs: Minnowboard and Raspberrypi: Fix errors with + post-build scripts when systemd is used. + Zynq microzed/zc706/zed: Fix u-booot configuration. + + netbsd-queue package extended and renamed to + musl-compat-headers. With this, a number of musl compatibility + patches are no longer needed. + + Updated/fixed packages: aircrack-ng, android-tools, babeld, + bcusdk, binutils, boa, busybox, connman, cpupower, + docker-engine, domoticz, elf2flt, ffmpeg, fwup, gcc, + glib-networking, gnupg, hplip, igd2-for-linux, imagemagick, + imx-uuc, iputils, jack2, kismet, kmsxx, libaio, libamcodec, + libconfuse, libffi, libfreeimage, libgcrypt, libgpg-error, + libiio, libraw, libsepol, libserialport, libxmlrpc, linknx, + linux-pam, lirc-tools, lldpd, logrotate, lshw, musl, ncurses, + neon, nettle, norm, ntfs-3g, openblas, openmpi, openswan, + pinentry, pixman, protobuf, python-meld3, qlibc, qt, qt5base, + quagga, rpcbind, rt-tests, runc, sane-backends, sconeserver, + squeezelite, stella, tftpd, tinycbor, tinydtls, trace-cmd, + trousers, tstools, uboot-tools, uclibc, ulogd, ustr, vlc, + webkitgtk, wireshark, xdriver_xf86-video-intel + + Issues resolved (http://bugs.buildroot.org): + + #9101: Error on support/download/git with system git older than 1.8.4 + #9181: Compiling linux kernel fails if BR2_LINUX_KERNEL_TOOL_CPU.. + +2016.08-rc2, Released August 17th, 2016 + + Fixes all over the tree. + + Toolchain: disable broken C++ support for internal blackfin + toolchains, ARC toolchain bumped to arc-2016.09-eng008 (GCC 6) + to fix various issues. + + System: Zoneinfo is available for the musl C library as well. + + Updated/fixed packages: am33x-cm3, axel, barebox, bdwgc, + blktrace, cairo, dante, enlightenment, fbterm, ffmpeg, flex, + fontconfig, gcc, gmp, gnuplot, gnuradio, gst1-imx, hidapi, + inotify_tools, iproute2, kmsxx, lftp, libaio, libcofi, + libical, libpjsip, libsidplay2, libunwindow, libxml2, + linux-zigbee, lttng-libust, mpv, mtd, ncdu, netplug, ntp, + openblas, openipmi, owfs, php, poco, procps, qt, quota, + sg3_utils, spidev_test, systemd-bootchart, thrift, + uboot-tools, uclibc, webrtc-audio-processing, wayland, weston, + xdriver_xf86-video-savage, xserver_xorg-server, xen + + Issues resolved (http://bugs.buildroot.org): + + #9136: make graph-size fails with "ValueError: too many values to.. + #9151: qt: fix build with ALSA >= 1.1.x + #9156: qt: Fix missing runtime Qt3Support dependency + #9161: modsetting patch not applied to xserver 1.18.4 + #9166: Missing overlays directory in VFAT image for raspberry pi 3 + +2016.08-rc1, Released August 6th, 2016 + + Fixes all over the tree and new features. + + Toolchain: Fortran support added. eglibc support removed, musl + support no longer experimental. Blackfin and Microblaze + support for internal uClibc-ng toolchain, m68k/coldfire + improvements. The check for unsafe (build host) directories + access (/usr/include and /usr/lib) is now enabled by default. + Unused locales are now purged by default to save space (and + the default list of locales shrunk). The option to control + this has now moved from the toolchain menu to system + configuration. + + Legal info improvements: sources are now hardlinked instead of + copied if possible to save space. Patches and extra downloads + are also saved. + + An experimental configuration knob (BR2_REPRODUCIBLE) has been + added to make the builds more reproducible (E.G. less + differences in the binary output between builds of the same + configuration). This is still work in progress. + + An option to execute a custom script inside the fakeroot + environment used to the generate the filesystem (E.G. to tweak + permissions or similar) has been added. + + Git support now supports git submodules if + _GIT_SUBMODULES is enabled. + + Hash files for integritry validation have been added for all + packages. + + Scanpypi utility to help creating packages from the Python + package index (pypi) has been added. + + The makedevs utility now has support for adding file + capabilities using extended attributes. + + New defconfigs: Arcturus uCP1020, Atmel sama5d{2,3,4} xplained + development configs, Blackfin GDB simulator, Linksprite + pcDuino, Minnow Board Max graphical demo, NXP i.MX25 PDK, + i.MX51 EVK, i.MX6UL Pico, i.MX7 sabresd, QEMU MIPS32r6{,el} and + MIPS64r6{,el} malta, Roseapple Pi, Samsung Snow chromebook, + Toradex Apalis i.MX6 COM, TS-4800, x86-64 PC BIOS and EFI + demos. A number of defconfigs have been updated and extended + to generate SD card images. Synopsys HS38 VDK defconfig removed. + + New packages: 4th, acpica, acpitool, alljoyn, alljoyn-base, + alljoyn-tcl, alljoyn-tcl-base, argparse, babeld, batman-adv, + circus, dante, docker-containerd, docker-engine, domoticz, + efibootmgr, efivar, ficl, fwup, gsettings-desktop-schemas, + gtksourceview, gupnp-dlna, gupnp-tools, igd2-for-linux, + jemalloc, kmsxx, lapack, lft, libaacs, libamcodec, libbdplus, + libcoap, libdvdcss, libebur128, libfastjson, libminiupnpc, + libnatpmp, libpqxx, libuio, libvdpau, log4cpp, minissdpd, + mxsldr, nginx-nasxi, nginx-upload, ninja, nodm, odroid-mali, + odroid-scripts, omxplayer, openblas, openmpi, openzwave, + p7zip, pdbg, python-argh, python-dataproperty, + python-dateutil, python-dialog3, python-dicttoxml, + python-dominate, python-engineio, python-flask-jsonrpc, + python-flask-login, python-humanize, python-pathtools, + python-pathvalidate, python-pillow, python-prompt-toolkit, + python-pytablewriter, python-pytz, python-scapy3k, + python-sdnotify, python-socketio, python-tomako, + python-ubjson, python-u-msgpack, python-watchdog, + python-wcwidth, python-xlrd, python-xlsxwriter, + python-xlutils, python-xlwt, rs485conf, runc, sdl2_gfx, + sdl2_image, sdl2_ttf, shellinabox, sphinxbase, stella, + supertuxkart, systemd-bootchart, tekui, terminology, tinycbor, + tinydtls, ti-sgx-demos, ti-sgx-km, ti-sgx-um, tunctl, wavemon, + wiringpi, xen + + Deprecated packages: ipkg, sstrip + + Removed packages: sunxi-mali-prop + + Issues resolved (http://bugs.buildroot.org): + + #8931: segment fault when compile argp-help.c using aarch64-bu... + #8966: eglfs error. buildroot don't compile the library libeglfs.so + #8971: build for beaglebone fails + #8986: qt5imageformats fails to build on AArch64 + #8991: grub2 fails to compile + #9001: Nodejs option not available + #9006: gcc with c++ support v4 and v5 fail to compile on fedora 24 + #9016: arceb-buildroot-linux-uclibc ld uses incorrect default format + #9066: 8139TOO - faulty behaviour + #9086: Syntax Error (missing ")" in boot/uboot/uboot.mk on line 203) + #9091: U-Boot fails to boot with large ramdisk + +2016.05, Released May 31st, 2016 + + Minor fixes. + + External toolchain: Fix for symlink handling when copying + links to target. + + Updated/fixed packages: gcc, grantlee, gst-ffmpeg, + ipsec-tools, iptraf-ng, libcurl, libdrm, libsigsegv, ltris, + lttng-babeltrace, mbedtls, mesa3d, moarvm, mplayer, mtools, + net-tools, openpowerlink, pulseview, rpm, tinyalsa, + xdriver_xf86-video-fbturbo, xserver_xorg-server + +2016.05-rc3, Released May 26th, 2016 + + Fixes all over the tree. + + Tweaks for SSP handling for external toolchains. + + Updated/fixed packages: aircrack-ng, bluez5_utils, connman, + cups, erlang-p1-stringprep, expat, ffmpeg, flann, flannel, go, + gst1-libav, hidapi, hplip, iptraf-ng, jamvm, kodi, + kodi-screensaver-matrixtrails, libcurl, libepoxy, libgpgme, + libsemanage, libxslt, liquid-dsp, ltris, lxc, mesa3d, midori, + mpg123, mtr, openpgm, openpowerlink, oprofile, php, + postgresql, putty, python-service-identity, python-treq, + qlibc, qt5serialbus, ruby, stress-ng, strongswan, time, tinc, + ustr, valgrind, webkitgtk, libxml2, xorriso, + xserver_xorg-server + + Issues resolved (http://bugs.uclibc.org): + + #8936: Aircrack-ng - Alot of missing dependencies + +2016.05-rc2, Released May 17th, 2016 + + Fixes all over the tree. + + Rootfs overlay handling now refuses to overwrite + /{usr,bin,sbin,lib} symlinks from BR2_ROOTFS_MERGED_USR option + even if these directories are present in the overlay. + + External toolchain: Unbreak user provided libraries deployment + (BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS) handling after refactoring. + + QEMU coldfire: Fix for signal handling kernel issue, enable + networking support. + + Updated/fixed packages: android-tools, assimp, boost, gcc, + glibc, glmark2, gmrender-resurrect, go, go-bootstrap, iputils, + jack2, kodi-screensaver-asterwave, kodi-screensaver-rsxs, + kodi-visualisation-shadertoy, libarchive, libinput, libpjsip, + mali-t76x, mtr, nginx, opencv, openvpn, python-coherence, + qt5multimeda, quagga, samba4, sg3-utils, stress-ng, turbolua + +2016.05-rc1, Released May 10th, 2016 + + Fixes all over the tree and new features. + + Architectures: new ARM variants: Cortex A17 and M4, improved + nonmmu (cortex-M) support, m68k has been re-enabled with + support for ColdFire. For x86, support for the i386 variant + has been dropped. + + Toolchain: Add GCC 6 support, remove GCC 4.5, mark GCC 4.7 as + deprecated. Go programming language support, Add Binutils 2.26 + support. Old Sourcery PowerPC external toolchains removed, + Sourcery MIPS 2016.06-8, AMD64 2015.11-139, NiosII 2015.11-130 + added, Linaro ARM/ARMeb/Aarch64 toolchains updated. + + New defconfigs: Firefly RK3288, Boundary Devices i.MX7 Nitrogen7, + STM32F429 and STM32F469 Discovery boards, Hardkernel ODROID-C2, + Raspberry Pi Zero and Raspberry Pi 3. Some Qemu defconfigs were + added for m68k, eXtensa-nommu and ColdFire. + + Linux: use zImage by default on ARM, subversion repository + support (for u-boot as well). + + New packages: aer-inject, android-tools, cannelloni, + cbootimage, cgroupfs-mount, connman-gtk, crudini, dt, + gmrender-resurrect, flannel, font-awesome, freeswitch, go, + go-bootstrap, gr-osmosdr, granite, i7z, imx-uuc, + kodi-adsp-basic, kodi-adsp-freesurround, + kodi-audiodecoder-opus, kodi-pvr-hdhomerun, + kodi-screensaver-asterwave, kodi-screensaver-cpblobs, + kodi-screensaver-matrixtrails, kodi-screensaver-planestate, + kodi-screensaver-rsxs, kodi-visualisation-fishbmc, + kodi-visualisation-fountain, kodi-visualisation-goom, libgee, + libimxvpuapi, libpjsip, libtomcrypt, libtommath, libusbgx, + lksctp-tools, mali-t76x, mkpimage, mpv, msr-tools, nload, + norm, nvme, owfs, pound, privoxy, procrank_linux, putty, + python-autobahn, python-characteristic, python-crossbar, + python-cryptography, python-iniparse, python-iowait, + python-lmdb, python-pexpect, python-ptyprocess, + python-pyasn-modules, python-pygments, python-pymysql, + python-pynacl, python-pyopenssl, python-pysocks, + python-pytrie, python-rpi-gpio, python-service-identity, + python-setproctitle, python-shutilwhich, python-treq, + python-txaio, python-ujson, python-wsaccel, qt5canvas3d, + qt5location, qt5quickcontrols2, qt5serialbus, qt5tools, + raptor, scrub, taskd, tegrarcm, turbolua, valijson, + wayland-protocols, webkitgtk, wilc1000-firmware, wpan-tools, + xdriver_xf86-video-amdgpu + + Removed packages: foomatic-filters, python-m2crypto, + qt5quick1, qt5webkit-examples, samba, xdriver_xf86-input-void + + Issues resolved (http://bugs.buildroot.org): + + #6830: Qt5: no fonts are installed + #7562: musl buildroot-toolchain and BR2_MIPS_SOFT_FLOAT break + #7580: Invalid filesystem in Pandaboard defconfig + #8346: wf111 package removes all kernel module dependencies + #8436: xserver_xorg-server Segmentation fault + #8736: IPV6 forced on in busybox + #8746: At startup system stops with 'cannot set terminal proces.. + #8751: make fail [fio does not build on sh] + #8766: Compiling host-gcc-final-4.9.3 broken on i386 + #8771: make savedefconfig modifies sources + #8781: Unable to build uboot for imx28evk + #8786: gdb fails to build with xz and expat support at the same + #8801: Compilation of Buildroot 2016.2 for Raspberry Pi with... + #8806: Buildroot 2016.2 for Raspberry Pi requires that ext4... + #8836: Can't select Vim in menuconfig + #8851: Make sure fio can compile with libaio support if it... + #8861: With buildroot 2016.02 trying to build for corei7-avx + fails while trying to build host-binutils + #8866: Making an USB flash bootable with extlinux build with + buildroot does not work + 2016.02, Released March 1st, 2016 Minor fixes, mostly security related. diff --git a/bsp/buildroot/Config.in b/bsp/buildroot/Config.in index 30e88e3a..ed92c561 100644 --- a/bsp/buildroot/Config.in +++ b/bsp/buildroot/Config.in @@ -23,9 +23,14 @@ config BR2_HOST_GCC_VERSION string option env="HOST_GCC_VERSION" +config BR2_HOST_GCC_AT_LEAST_4_6 + bool + default y if BR2_HOST_GCC_VERSION = "4 6" + config BR2_HOST_GCC_AT_LEAST_4_7 bool default y if BR2_HOST_GCC_VERSION = "4 7" + select BR2_HOST_GCC_AT_LEAST_4_6 config BR2_HOST_GCC_AT_LEAST_4_8 bool @@ -42,6 +47,11 @@ config BR2_HOST_GCC_AT_LEAST_5 default y if BR2_HOST_GCC_VERSION = "5" select BR2_HOST_GCC_AT_LEAST_4_9 +config BR2_HOST_GCC_AT_LEAST_6 + bool + default y if BR2_HOST_GCC_VERSION = "6" + select BR2_HOST_GCC_AT_LEAST_5 + # Hidden boolean selected by packages in need of Java in order to build # (example: xbmc) config BR2_NEEDS_HOST_JAVA @@ -115,9 +125,9 @@ config BR2_ZCAT string "zcat command" default "gzip -d -c" help - Command to be used to extract a gzip'ed file to stdout. - zcat is identical to gunzip -c except that the former may - not be available on your system. + Command to be used to extract a gzip'ed file to stdout. zcat + is identical to gunzip -c except that the former may not be + available on your system. Default is "gzip -d -c" Other possible values include "gunzip -c" or "zcat". @@ -157,8 +167,8 @@ config BR2_DEFCONFIG default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != "" default "$(CONFIG_DIR)/defconfig" help - When running 'make savedefconfig', the defconfig file will be saved - in this location. + When running 'make savedefconfig', the defconfig file will be + saved in this location. config BR2_DL_DIR string "Download dir" @@ -166,7 +176,8 @@ config BR2_DL_DIR help Directory to store all the source files that we need to fetch. If the Linux shell environment has defined the BR2_DL_DIR - environment variable, then this overrides this configuration item. + environment variable, then this overrides this configuration + item. The default is $(TOPDIR)/dl @@ -174,9 +185,9 @@ config BR2_HOST_DIR string "Host dir" default "$(BASE_DIR)/host" help - Directory to store all the binary files that are built for the host. - This includes the cross compilation toolchain when building the - internal buildroot toolchain. + Directory to store all the binary files that are built for the + host. This includes the cross compilation toolchain when + building the internal buildroot toolchain. The default is $(BASE_DIR)/host @@ -186,9 +197,9 @@ config BR2_PRIMARY_SITE string "Primary download site" default "" help - Primary site to download from. If this option is set then buildroot - will try to download package source first from this site and try the - default if the file is not found. + Primary site to download from. If this option is set then + buildroot will try to download package source first from this + site and try the default if the file is not found. Valid URIs are: - URIs recognized by $(WGET) - local URIs of the form file://absolutepath @@ -201,11 +212,11 @@ config BR2_PRIMARY_SITE_ONLY If this option is enabled, downloads will only be attempted from the primary download site. Other locations, like the package's official download location or the backup download - site, will not be considered. Therefore, if the package is - not present on the primary site, the download fails. + site, will not be considered. Therefore, if the package is not + present on the primary site, the download fails. - This is useful for project developers who want to ensure - that the project can be built even if the upstream tarball + This is useful for project developers who want to ensure that + the project can be built even if the upstream tarball locations disappear. if !BR2_PRIMARY_SITE_ONLY @@ -214,32 +225,36 @@ config BR2_BACKUP_SITE string "Backup download site" default "http://sources.buildroot.net" help - Backup site to download from. If this option is set then buildroot - will fall back to download package sources from here if the - normal location fails. + Backup site to download from. If this option is set then + buildroot will fall back to download package sources from here + if the normal location fails. config BR2_KERNEL_MIRROR string "Kernel.org mirror" - default "https://www.kernel.org/pub" + default "https://cdn.kernel.org/pub" help - kernel.org is mirrored on a number of servers around the world. - The following allows you to select your preferred mirror. + kernel.org is mirrored on a number of servers around the + world. The following allows you to select your preferred + mirror. By default, a CDN is used, which automatically + redirects to a mirror geographically close to you. - Have a look on the kernel.org site for a list of mirrors, then enter - the URL to the base directory. Examples: + Have a look on the kernel.org site for a list of mirrors, then + enter the URL to the base directory. Examples: http://www.XX.kernel.org/pub (XX = country code) http://mirror.aarnet.edu.au/pub/ftp.kernel.org config BR2_GNU_MIRROR string "GNU Software mirror" - default "http://ftp.gnu.org/pub/gnu" + default "http://ftpmirror.gnu.org" help - GNU has multiple software mirrors scattered around the world. - The following allows you to select your preferred mirror. + GNU has multiple software mirrors scattered around the + world. The following allows you to select your preferred + mirror. By default, a generic address is used, which + automatically selects an up-to-date and local mirror. - Have a look on the gnu.org site for a list of mirrors, then enter - the URL to the base directory. Examples: + Have a look on the gnu.org site for a list of mirrors, then + enter the URL to the base directory. Examples: http://ftp.gnu.org/pub/gnu http://mirror.aarnet.edu.au/pub/gnu @@ -256,8 +271,8 @@ config BR2_CPAN_MIRROR string "CPAN mirror (Perl packages)" default "http://cpan.metacpan.org" help - CPAN (Comprehensive Perl Archive Network) is a repository - of Perl packages. It has multiple software mirrors scattered + CPAN (Comprehensive Perl Archive Network) is a repository of + Perl packages. It has multiple software mirrors scattered around the world. This option allows you to select a mirror. The list of mirrors is available at: @@ -271,24 +286,22 @@ config BR2_JLEVEL int "Number of jobs to run simultaneously (0 for auto)" default "0" help - Number of jobs to run simultaneously. If 0, determine - automatically according to number of CPUs on the host - system. + Number of jobs to run simultaneously. If 0, determine + automatically according to number of CPUs on the host system. config BR2_CCACHE bool "Enable compiler cache" help - This option will enable the use of ccache, a compiler - cache. It will cache the result of previous builds to speed - up future builds. By default, the cache is stored in + This option will enable the use of ccache, a compiler cache. + It will cache the result of previous builds to speed up future + builds. By default, the cache is stored in $HOME/.buildroot-ccache. Note that Buildroot does not try to invalidate the cache - contents when the compiler changes in an incompatible - way. Therefore, if you make a change to the compiler version - and/or configuration, you are responsible for purging the - ccache cache by removing the $HOME/.buildroot-ccache - directory. + contents when the compiler changes in an incompatible way. + Therefore, if you make a change to the compiler version and/or + configuration, you are responsible for purging the ccache + cache by removing the $HOME/.buildroot-ccache directory. if BR2_CCACHE @@ -301,16 +314,19 @@ config BR2_CCACHE_DIR config BR2_CCACHE_INITIAL_SETUP string "Compiler cache initial setup" help - Initial ccache settings to apply, such as --max-files or --max-size. + Initial ccache settings to apply, such as --max-files or + --max-size. - For example, if your project is known to require more space than the - default max cache size, then you might want to increase the cache size - to a suitable amount using the -M (--max-size) option. + For example, if your project is known to require more space + than the default max cache size, then you might want to + increase the cache size to a suitable amount using the -M + (--max-size) option. - The string you specify here is passed verbatim to ccache. Refer to - ccache documentation for more details. + The string you specify here is passed verbatim to ccache. + Refer to ccache documentation for more details. - These initial settings are applied after ccache has been compiled. + These initial settings are applied after ccache has been + compiled. config BR2_CCACHE_USE_BASEDIR bool "Use relative paths" @@ -319,25 +335,25 @@ config BR2_CCACHE_USE_BASEDIR Allow ccache to convert absolute paths within the output directory into relative paths. - During the build, many -I include directives are given with - an absolute path. These absolute paths end up in the hashes - that are computed by ccache. Therefore, when you build from a - different directory, the hash will be different and the - cached object will not be used. + During the build, many -I include directives are given with an + absolute path. These absolute paths end up in the hashes that + are computed by ccache. Therefore, when you build from a + different directory, the hash will be different and the cached + object will not be used. To improve cache performance, set this option to y. This allows ccache to rewrite absolute paths within the output - directory into relative paths. Note that only paths within - the output directory will be rewritten; therefore, if you - change BR2_HOST_DIR to point outside the output directory and + directory into relative paths. Note that only paths within the + output directory will be rewritten; therefore, if you change + BR2_HOST_DIR to point outside the output directory and subsequently move it to a different location, this will lead to cache misses. This option has as a result that the debug information in the object files also has only relative paths. Therefore, make sure you cd to the build directory before starting gdb. See - the section "COMPILING IN DIFFERENT DIRECTORIES" in the - ccache manual for more information. + the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache + manual for more information. endif @@ -365,6 +381,14 @@ config BR2_DEPRECATED_SINCE_2016_02 bool default y +config BR2_DEPRECATED_SINCE_2016_05 + bool + default y + +config BR2_DEPRECATED_SINCE_2016_08 + bool + default y + endif config BR2_ENABLE_DEBUG @@ -387,11 +411,11 @@ choice config BR2_DEBUG_1 bool "debug level 1" help - Debug level 1 produces minimal information, enough - for making backtraces in parts of the program that - you don't plan to debug. This includes descriptions - of functions and external variables, but no information - about local variables and no line numbers. + Debug level 1 produces minimal information, enough for making + backtraces in parts of the program that you don't plan to + debug. This includes descriptions of functions and external + variables, but no information about local variables and no + line numbers. config BR2_DEBUG_2 bool "debug level 2" @@ -401,9 +425,9 @@ config BR2_DEBUG_2 config BR2_DEBUG_3 bool "debug level 3" help - Level 3 includes extra information, such as all the - macro definitions present in the program. Some debuggers - support macro expansion when you use -g3. + Level 3 includes extra information, such as all the macro + definitions present in the program. Some debuggers support + macro expansion when you use -g3. endchoice endif @@ -416,16 +440,15 @@ config BR2_STRIP_strip depends on !BR2_PACKAGE_HOST_ELF2FLT help Binaries and libraries in the target filesystem will be - stripped using the normal 'strip' command. This allows to - save space, mainly by removing debugging symbols. Debugging - symbols on the target are needed for native debugging, but - not when remote debugging is used. + stripped using the normal 'strip' command. This allows to save + space, mainly by removing debugging symbols. Debugging symbols + on the target are needed for native debugging, but not when + remote debugging is used. config BR2_STRIP_none bool "none" help - Do not strip binaries and libraries in the target - filesystem. + Do not strip binaries and libraries in the target filesystem. endchoice config BR2_STRIP_EXCLUDE_FILES @@ -433,19 +456,19 @@ config BR2_STRIP_EXCLUDE_FILES depends on !BR2_STRIP_none default "" help - You may specify a space-separated list of binaries and libraries - here that should not be stripped on the target. + You may specify a space-separated list of binaries and + libraries here that should not be stripped on the target. config BR2_STRIP_EXCLUDE_DIRS string "directories that should be skipped when stripping" depends on !BR2_STRIP_none default "" help - You may specify a space-separated list of directories that should - be skipped when stripping. Binaries and libraries in these - directories will not be touched. - The directories should be specified relative to the target directory, - without leading slash. + You may specify a space-separated list of directories that + should be skipped when stripping. Binaries and libraries in + these directories will not be touched. The directories should + be specified relative to the target directory, without leading + slash. choice prompt "gcc optimization level" @@ -461,54 +484,67 @@ config BR2_OPTIMIZE_0 config BR2_OPTIMIZE_1 bool "optimization level 1" help - Optimize. Optimizing compilation takes somewhat more time, - and a lot more memory for a large function. With -O, the - compiler tries to reduce code size and execution time, - without performing any optimizations that take a great deal - of compilation time. -O turns on the following optimization + Optimize. Optimizing compilation takes somewhat more time, and + a lot more memory for a large function. With -O, the compiler + tries to reduce code size and execution time, without + performing any optimizations that take a great deal of + compilation time. -O turns on the following optimization flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability -fcprop-registers -floop-optimize -fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename - -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants - -O also turns on -fomit-frame-pointer on machines where doing - so does not interfere with debugging. + -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O + also turns on -fomit-frame-pointer on machines where doing so + does not interfere with debugging. config BR2_OPTIMIZE_2 bool "optimization level 2" help - Optimize even more. GCC performs nearly all supported optimizations - that do not involve a space-speed tradeoff. The compiler does not - perform loop unrolling or function inlining when you specify -O2. - As compared to -O, this option increases both compilation time and - the performance of the generated code. -O2 turns on all optimization - flags specified by -O. It also turns on the following optimization - flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls + Optimize even more. GCC performs nearly all supported + optimizations that do not involve a space-speed tradeoff. The + compiler does not perform loop unrolling or function inlining + when you specify -O2. As compared to -O, this option increases + both compilation time and the performance of the generated + code. -O2 turns on all optimization flags specified by -O. It + also turns on the following optimization flags: + -fthread-jumps -fcrossjumping -foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm - -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop - -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns - -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove - -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks - -freorder-functions -falign-functions -falign-jumps -falign-loops - -falign-labels -ftree-vrp -ftree-pre - Please note the warning under -fgcse about invoking -O2 on programs + -fexpensive-optimizations -fstrength-reduce + -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves + -fpeephole2 -fschedule-insns -fschedule-insns2 + -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing + -fdelete-null-pointer-checks -freorder-blocks + -freorder-functions -falign-functions -falign-jumps + -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please + note the warning under -fgcse about invoking -O2 on programs that use computed gotos. config BR2_OPTIMIZE_3 bool "optimization level 3" help - Optimize yet more. -O3 turns on all optimizations specified by -O2 - and also turns on the -finline-functions, -funswitch-loops and - -fgcse-after-reload options. + Optimize yet more. -O3 turns on all optimizations specified by + -O2 and also turns on the -finline-functions, -funswitch-loops + and -fgcse-after-reload options. + +config BR2_OPTIMIZE_G + bool "optimize for debugging" + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + help + Optimize for debugging. This enables optimizations that do not + interfere with debugging. It should be the optimization level + of choice for the standard edit-compile-debug cycle, offering + a reasonable level of optimization while maintaining fast + compilation and a good debugging experience. config BR2_OPTIMIZE_S bool "optimize for size" help - Optimize for size. -Os enables all -O2 optimizations that do not - typically increase code size. It also performs further optimizations - designed to reduce code size. -Os disables the following optimization - flags: -falign-functions -falign-jumps -falign-loops -falign-labels - -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays + Optimize for size. -Os enables all -O2 optimizations that do + not typically increase code size. It also performs further + optimizations designed to reduce code size. -Os disables the + following optimization flags: -falign-functions -falign-jumps + -falign-loops -falign-labels -freorder-blocks + -freorder-blocks-and-partition -fprefetch-loop-arrays -ftree-vect-loop-version endchoice @@ -520,13 +556,13 @@ config BR2_GOOGLE_BREAKPAD_ENABLE depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS help - This option will enable the use of google breakpad, a - library and tool suite that allows you to distribute an - application to users with compiler-provided debugging - information removed, record crashes in compact "minidump" - files, send them back to your server and produce C and C++ - stack traces from these minidumps. Breakpad can also write - minidumps on request for programs that have not crashed. + This option will enable the use of google breakpad, a library + and tool suite that allows you to distribute an application to + users with compiler-provided debugging information removed, + record crashes in compact "minidump" files, send them back to + your server and produce C and C++ stack traces from these + minidumps. Breakpad can also write minidumps on request for + programs that have not crashed. if BR2_GOOGLE_BREAKPAD_ENABLE @@ -554,12 +590,13 @@ choice Enable stack smashing protection support using GCC's -fstack-protector option family. - See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt + See + http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt for details. - Note that this requires the toolchain to have SSP - support. This is always the case for glibc and eglibc - toolchain, but is optional in uClibc toolchains. + Note that this requires the toolchain to have SSP support. + This is always the case for glibc and eglibc toolchain, but is + optional in uClibc toolchains. config BR2_SSP_NONE bool "None" @@ -607,20 +644,19 @@ choice help Select the type of libraries you want to use on the target. - The default is to build dynamic libraries and use those on - the target filesystem, except when the architecture and/or - the selected binary format does not support shared - libraries. + The default is to build dynamic libraries and use those on the + target filesystem, except when the architecture and/or the + selected binary format does not support shared libraries. config BR2_STATIC_LIBS bool "static only" help - Build and use only static libraries. No shared libraries - will be instaled on the target. This potentially increases - your code size and should only be used if you know what you - are doing. Note that some packages may not be available when - this option is enabled, due to their need for dynamic - library support. + Build and use only static libraries. No shared libraries will + be installed on the target. This potentially increases your + code size and should only be used if you know what you are + doing. Note that some packages may not be available when this + option is enabled, due to their need for dynamic library + support. config BR2_SHARED_LIBS bool "shared only" @@ -646,47 +682,60 @@ config BR2_PACKAGE_OVERRIDE_FILE default "$(CONFIG_DIR)/local.mk" help A package override file is a short makefile that contains - variable definitions of the form _OVERRIDE_SRCDIR, - which allows to tell Buildroot to use an existing directory - as the source directory for a particular package. See the - Buildroot documentation for more details on this feature. + variable definitions of the form _OVERRIDE_SRCDIR, which + allows to tell Buildroot to use an existing directory as the + source directory for a particular package. See the Buildroot + documentation for more details on this feature. config BR2_GLOBAL_PATCH_DIR string "global patch directories" help - You may specify a space separated list of one or more directories - containing global package patches. For a specific version - of a specific package , patches are - applied as follows: + You may specify a space separated list of one or more + directories containing global package patches. For a specific + version of a specific package , + patches are applied as follows: - First, the default Buildroot patch set for the package is applied - from the package's directory in Buildroot. + First, the default Buildroot patch set for the package is + applied from the package's directory in Buildroot. Then for every directory - - that exists in BR2_GLOBAL_PATCH_DIR, if the directory - /// exists, then all - *.patch files in this directory will be applied. + /// exists, + then all *.patch files in this directory will be applied. - Otherwise, if the directory / exists, - then all *.patch files in the directory will be applied. + Otherwise, if the directory / + exists, then all *.patch files in the directory will be + applied. menu "Advanced" config BR2_COMPILER_PARANOID_UNSAFE_PATH bool "paranoid check of library/header paths" + default y help By default, when this option is disabled, when the Buildroot - cross-compiler will encounter an unsafe library or header - path (such as /usr/include, or /usr/lib), the compiler will - display a warning. + cross-compiler will encounter an unsafe library or header path + (such as /usr/include, or /usr/lib), the compiler will display + a warning. - By enabling this option, this warning is turned into an - error, which will completely abort the build when such - unsafe paths are encountered. + By enabling this option, this warning is turned into an error, + which will completely abort the build when such unsafe paths + are encountered. Note that this mechanism is available for both the internal - toolchain (through gcc and binutils patches) and external - toolchain backends (through the external toolchain wrapper). + toolchain (through the toolchain wrapper and binutils patches) + and external toolchain backends (through the toolchain wrapper). + +config BR2_REPRODUCIBLE + bool "Make the build reproducible (experimental)" + help + This option will remove all sources of non-reproducibility + from the build process. For a given Buildroot configuration, + this allows to generate exactly identical binaries from one + build to the other, including on different machines. + + This is labeled as an experimental feature, as not all + packages behave properly to ensure reproducibility. endmenu diff --git a/bsp/buildroot/Config.in.legacy b/bsp/buildroot/Config.in.legacy index 081bacdd..746b80a8 100644 --- a/bsp/buildroot/Config.in.legacy +++ b/bsp/buildroot/Config.in.legacy @@ -142,6 +142,260 @@ comment "build, or run, in unpredictable ways. " comment "----------------------------------------------------" endif +############################################################################### +comment "Legacy options removed in 2016.08" + +config BR2_PACKAGE_SYSTEMD_COMPAT + bool "systemd compatibility libraries have been removed" + select BR2_LEGACY + help + The systemd option to enable the compatibility libraries has + been removed. Theses libraries have been useless since a few + version, and have been fully dropped from the source since + v230. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER + bool "gst1-plugins-bad liveadder plugin removed" + select BR2_LEGACY + select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER + help + The functionality of the liveadder plugin of the + gst1-plugins-bad package has been merged into audiomixer. + +config BR2_PACKAGE_LIBFSLVPUWRAP + bool "libfslvpuwrap has been renamed to imx-vpuwrap" + select BR2_LEGACY + select BR2_PACKAGE_IMX_VPUWRAP + help + The libfslvpuwrap has been renamed to match the renamed package. + +config BR2_PACKAGE_LIBFSLPARSER + bool "libfslparser has been renamed to imx-parser" + select BR2_LEGACY + select BR2_PACKAGE_IMX_PARSER + help + The libfslparser has been renamed to match the renamed package. + +config BR2_PACKAGE_LIBFSLCODEC + bool "libfslcodec has been renamed to imx-codec" + select BR2_LEGACY + select BR2_PACKAGE_IMX_CODEC + help + The libfslcodec has been renamed to match the renamed package. + +config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT + bool "FIT support in uboot-tools has been refactored" + select BR2_LEGACY + select BR2_PACKAGE_DTC + select BR2_PACKAGE_DTC_PROGRAMS + select BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT + select BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT + select BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE + help + This option has been removed in favor of a more fine-grained + configuration, which is recommended. Selecting this option + enables FIT and FIT signature support for the target packages. + It will also select the dtc and openssl packages. + +config BR2_PTHREADS_OLD + bool "linuxthreads (stable/old)" + select BR2_LEGACY + help + Linuxthreads have been reworked, BR2_PTHREADS_OLD is now + BR2_PTHREADS and the old BR2_PTHREADS - LT.new got removed. + +config BR2_BINUTILS_VERSION_2_23_X + bool "binutils 2.23 removed" + select BR2_LEGACY + help + Binutils 2.23 has been removed, using a newer version is + recommended. + +config BR2_TOOLCHAIN_BUILDROOT_EGLIBC + bool "eglibc support has been removed" + select BR2_LEGACY + help + The eglibc project no longer exists, as it has been merged + back into the glibc project. Therefore, support for eglibc + has been removed, and glibc should be used instead. + +config BR2_GDB_VERSION_7_8 + bool "gdb 7.8 has been removed" + select BR2_LEGACY + help + The 7.8 version of gdb has been removed. Use a newer version + instead. + +############################################################################### +comment "Legacy options removed in 2016.05" + +config BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL + bool "openvpn polarssl crypto backend removed" + select BR2_LEGACY + help + The OpenVPN polarssl crypto backend option has been removed. + Version from 2.3.10 onwards need polarssl >= 1.3.8 but aren't + compatible with mbedtls (polarssl) series 2.x which is the + version provided in buildroot. And both can't coexist. + It now uses OpenSSL as the only option. + + +config BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE + bool "nginx http spdy module removed" + select BR2_LEGACY + select BR2_PACKAGE_NGINX_HTTP_V2_MODULE + help + The ngx_http_spdy_module has been superseded by the + ngx_http_v2_module since nginx v1.9.5. The + ngx_http_v2_module modules has been automatically selected + in your configuration. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP + bool "gst1-plugins-bad rtp plugin moved to good" + select BR2_LEGACY + help + The rtp plugin has been moved from gst1-plugins-base to + gst1-plugins-good. + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 + bool "gst1-plugins-bad mpg123 plugin moved to ugly" + select BR2_LEGACY + help + The mpg123 plugin has been moved from gst1-plugins-bad to + gst1-plugins-ugly. + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC + bool "PowerPC Sourcery toolchain has been removed" + select BR2_LEGACY + help + The Sourcery CodeBench toolchain for the PowerPC + architecture has been removed, as it was very old, not + maintained, and causing numerous build failures with modern + userspace packages. + +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 + bool "PowerPC Sourcery E500v2 toolchain has been removed" + select BR2_LEGACY + help + The Sourcery CodeBench toolchain for the PowerPC E500v2 + architecture has been removed, as it was very old, not + maintained, and causing numerous build failures with modern + userspace packages. + +config BR2_x86_i386 + bool "x86 i386 support removed" + select BR2_LEGACY + help + The support for the i386 processors of the x86 architecture + has been removed. + +config BR2_PACKAGE_QT5WEBKIT_EXAMPLES + bool "qt5webkit-examples package removed" + select BR2_LEGACY + help + The qt5webkit-examples package has been removed, since it + was removed from upstream starting from Qt 5.6. + +config BR2_PACKAGE_QT5QUICK1 + bool "qt5quick1 package removed" + select BR2_LEGACY + help + The qt5quick1 package has been removed, since it was removed + from upstream starting from Qt 5.6. + +config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR + bool "uboot custom patch dir removed" + select BR2_LEGACY + help + The uboot custom patch directory option has been removed. Use + the improved BR2_TARGET_UBOOT_PATCH option instead. + +config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID + bool "xf86-input-void removed" + select BR2_LEGACY + help + The xf86-input-void package has been removed, there's no need + for it in any modern (post-2007) xorg server. + +config BR2_KERNEL_HEADERS_3_17 + bool "kernel headers version 3.17.x are no longer supported" + select BR2_KERNEL_HEADERS_3_18 + select BR2_LEGACY + help + Version 3.17.x of the Linux kernel headers have been deprecated + for more than four buildroot releases and are now removed. + As an alternative, version 3.18.x of the headers have been + automatically selected in your configuration. + +config BR2_GDB_VERSION_7_7 + bool "gdb 7.7 has been removed" + select BR2_LEGACY + help + The 7.7 version of gdb has been removed. Use a newer version + instead. + +config BR2_PACKAGE_FOOMATIC_FILTERS + bool "foomatic-filters" + select BR2_LEGACY + help + The foomatic-filters package was removed. + +config BR2_PACKAGE_SAMBA + bool "samba" + select BR2_LEGACY + help + The samba package was removed in favour of samba4 since the + 3.x series isn't supported by upstream any longer. + +config BR2_PACKAGE_KODI_WAVPACK + bool "wavpack" + select BR2_LEGACY + help + wavpack support was removed in favour of ffmpeg: + https://github.com/xbmc/xbmc/commit/7916902c9e6f7a523265594f3ad7f921f93f1cd4 + +config BR2_PACKAGE_KODI_RSXS + bool "rsxs support in Kodi was moved to an addon" + select BR2_LEGACY + select BR2_PACKAGE_KODI_SCREENSAVER_RSXS + help + rsxs support in Kodi was moved to an addon + +config BR2_PACKAGE_KODI_GOOM + bool "Goom support in Kodi was moved to an addon" + select BR2_LEGACY + select BR2_PACKAGE_KODI_VISUALISATION_GOOM + help + Goom support in Kodi was moved to an addon + +config BR2_PACKAGE_SYSTEMD_ALL_EXTRAS + bool "systemd all extras option has been removed" + select BR2_LEGACY + select BR2_PACKAGE_XZ + select BR2_PACKAGE_LIBGCRYPT + help + The systemd option to enable "all extras" has been + removed. To get the same features, the libgcrypt and xz + package should now be enabled. + +config BR2_GCC_VERSION_4_5_X + bool "gcc 4.5.x has been removed" + select BR2_LEGACY + help + The 4.5.x version of gcc has been removed. Use a newer + version instead. + +config BR2_PACKAGE_SQLITE_READLINE + bool "command-line editing support was updated" + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_READLINE + select BR2_LEGACY + help + This option was removed in favour of the sqlite package + deciding itself depending on the enabled packages whether + command-line editing should be enabled, it also also takes + libedit into account. + ############################################################################### comment "Legacy options removed in 2016.02" @@ -743,11 +997,9 @@ config BR2_PACKAGE_KODI_PVR_ADDONS config BR2_BINUTILS_VERSION_2_23_2 bool "binutils 2.23 option renamed" select BR2_LEGACY - select BR2_BINUTILS_VERSION_2_23_X help - The binutils version option has been renamed to match the - same patchlevel logic used by gcc. The new option is now - BR2_BINUTILS_VERSION_2_23_X. + Binutils 2.23.2 has been removed, using a newer version is + recommended. config BR2_BINUTILS_VERSION_2_24 bool "binutils 2.24 option renamed" diff --git a/bsp/buildroot/Makefile b/bsp/buildroot/Makefile index 63502d04..bd6f17be 100644 --- a/bsp/buildroot/Makefile +++ b/bsp/buildroot/Makefile @@ -24,6 +24,11 @@ # You shouldn't need to mess with anything beyond this point... #-------------------------------------------------------------- +# we want bash as shell +SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ + else if [ -x /bin/bash ]; then echo /bin/bash; \ + else echo sh; fi; fi) + # Trick for always running with a fixed umask UMASK = 0022 ifneq ($(shell umask),$(UMASK)) @@ -41,7 +46,7 @@ else # umask all: # Set and export the version string -export BR2_VERSION := 2016.02 +export BR2_VERSION := 2016.08.1 # Save running make version since it's clobbered by the make package RUNNING_MAKE_VERSION := $(MAKE_VERSION) @@ -69,7 +74,7 @@ endif .NOTPARALLEL: # absolute path -TOPDIR := $(shell pwd) +TOPDIR := $(CURDIR) CONFIG_CONFIG_IN = Config.in CONFIG = support/kconfig DATE := $(shell date +%Y%m%d) @@ -208,6 +213,13 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include $(BR2_CONFIG) endif +# timezone and locale may affect build output +ifeq ($(BR2_REPRODUCIBLE),y) +export TZ=UTC +export LANG=C +export LC_ALL=C +endif + # To put more focus on warnings, be less verbose as default # Use 'make V=1' to see the full commands ifeq ("$(origin V)", "command line") @@ -227,11 +239,6 @@ else Q = @ endif -# we want bash as shell -SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ - else if [ -x /bin/bash ]; then echo /bin/bash; \ - else echo sh; fi; fi) - # kconfig uses CONFIG_SHELL CONFIG_SHELL := $(SHELL) @@ -343,6 +350,8 @@ ifeq ($(BR2_HAVE_DOT_CONFIG),y) unexport CROSS_COMPILE unexport ARCH unexport CC +unexport LD +unexport AR unexport CXX unexport CPP unexport RANLIB @@ -408,6 +417,7 @@ endif # Scripts in support/ or post-build scripts may need to reference # these locations, so export them so it is easier to use export BR2_CONFIG +export BR2_REPRODUCIBLE export TARGET_DIR export STAGING_DIR export HOST_DIR @@ -581,7 +591,10 @@ define PURGE_LOCALES do \ for langdir in $$dir/*; \ do \ - grep -qx $${langdir##*/} $(LOCALE_WHITELIST) || rm -rf $$langdir; \ + if [ -e "$${langdir}" ]; \ + then \ + grep -qx "$${langdir##*/}" $(LOCALE_WHITELIST) || rm -rf $$langdir; \ + fi \ done; \ done if [ -d $(TARGET_DIR)/usr/share/X11/locale ]; \ @@ -655,7 +668,7 @@ endif @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ $(call MESSAGE,"Copying overlay $(d)"); \ - rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \ + rsync -a --ignore-times --keep-dirlinks $(RSYNC_VCS_EXCLUSIONS) \ --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \ $(d)/ $(TARGET_DIR)$(sep)) @@ -696,8 +709,12 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p cat support/legal-info/README.warnings-header \ $(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \ cat $(LEGAL_WARNINGS); fi - @echo "Legal info produced in $(LEGAL_INFO_DIR)" @rm -f $(LEGAL_WARNINGS) + @(cd $(LEGAL_INFO_DIR); \ + find * -type f -exec sha256sum {} + | LC_ALL=C sort -k2 \ + >.legal-info.sha256; \ + mv .legal-info.sha256 legal-info.sha256) + @echo "Legal info produced in $(LEGAL_INFO_DIR)" show-targets: @echo $(PACKAGES) $(TARGETS_ROOTFS) @@ -932,22 +949,10 @@ help: @echo ' -dirclean - Remove build directory' @echo ' -reconfigure - Restart the build from the configure step' @echo ' -rebuild - Restart the build from the build step' -ifeq ($(BR2_PACKAGE_BUSYBOX),y) - @echo ' busybox-menuconfig - Run BusyBox menuconfig' -endif -ifeq ($(BR2_LINUX_KERNEL),y) - @echo ' linux-menuconfig - Run Linux kernel menuconfig' - @echo ' linux-savedefconfig - Run Linux kernel savedefconfig' - @echo ' linux-update-defconfig - Save the Linux configuration to the path specified' - @echo ' by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE' -endif -ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) - @echo ' uclibc-menuconfig - Run uClibc menuconfig' -endif -ifeq ($(BR2_TARGET_BAREBOX),y) - @echo ' barebox-menuconfig - Run barebox menuconfig' - @echo ' barebox-savedefconfig - Run barebox savedefconfig' -endif + $(foreach p,$(HELP_PACKAGES), \ + @echo $(sep) \ + @echo '$($(p)_NAME):' $(sep) \ + $($(p)_HELP_CMDS)$(sep)) @echo @echo 'Documentation:' @echo ' manual - build manual in all formats' diff --git a/bsp/buildroot/arch/Config.in b/bsp/buildroot/arch/Config.in index 401bd28e..3caca158 100644 --- a/bsp/buildroot/arch/Config.in +++ b/bsp/buildroot/arch/Config.in @@ -94,8 +94,7 @@ config BR2_i386 config BR2_m68k bool "m68k" - select BR2_ARCH_HAS_MMU_MANDATORY - depends on BROKEN # ice in uclibc / inet_ntoa_r + # MMU support is set by the subarchitecture file, arch/Config.in.m68k help Motorola 68000 family microprocessor http://en.wikipedia.org/wiki/M68k @@ -337,12 +336,19 @@ config BR2_BINFMT_FLAT_ONE config BR2_BINFMT_FLAT_SEP_DATA bool "Separate data and code region" + # this FLAT binary type technically exists on m68k, but fails + # to build numerous packages: due to architecture limitation, + # big functions cannot be built in this mode. They cause build + # failures such as "Tried to convert PC relative branch to + # absolute jump" or "error: value -yyyyy out of range". + depends on BR2_bfin help Allow for the data and text segments to be separated and placed in different regions of memory. config BR2_BINFMT_FLAT_SHARED bool "Shared binary" + depends on BR2_m68k || BR2_bfin # Even though this really generates shared binaries, there is no libdl # and dlopen() cannot be used. So packages that require shared # libraries cannot be built. Therefore, we don't select diff --git a/bsp/buildroot/arch/Config.in.arm b/bsp/buildroot/arch/Config.in.arm index 2b34f428..ee612f50 100644 --- a/bsp/buildroot/arch/Config.in.arm +++ b/bsp/buildroot/arch/Config.in.arm @@ -52,6 +52,9 @@ config BR2_ARM_CPU_ARMV6 config BR2_ARM_CPU_ARMV7A bool +config BR2_ARM_CPU_ARMV7M + bool + choice prompt "Target Architecture Variant" depends on BR2_arm || BR2_armeb @@ -159,10 +162,22 @@ config BR2_cortex_a15 select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV7A select BR2_ARCH_HAS_MMU_OPTIONAL +config BR2_cortex_a17 + bool "cortex-A17" + select BR2_ARM_CPU_HAS_ARM + select BR2_ARM_CPU_HAS_NEON + select BR2_ARM_CPU_HAS_VFPV4 + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A + select BR2_ARCH_HAS_MMU_OPTIONAL config BR2_cortex_m3 bool "cortex-M3" - select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7M +config BR2_cortex_m4 + bool "cortex-M4" + select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7M config BR2_fa526 bool "fa526/626" select BR2_ARM_CPU_HAS_ARM @@ -442,7 +457,9 @@ config BR2_GCC_TARGET_CPU default "cortex-a9" if BR2_cortex_a9 default "cortex-a12" if BR2_cortex_a12 default "cortex-a15" if BR2_cortex_a15 + default "cortex-a17" if BR2_cortex_a17 default "cortex-m3" if BR2_cortex_m3 + default "cortex-m4" if BR2_cortex_m4 default "fa526" if BR2_fa526 default "marvell-pj4" if BR2_pj4 default "strongarm" if BR2_strongarm diff --git a/bsp/buildroot/arch/Config.in.bfin b/bsp/buildroot/arch/Config.in.bfin index 415fc890..9f7056a6 100644 --- a/bsp/buildroot/arch/Config.in.bfin +++ b/bsp/buildroot/arch/Config.in.bfin @@ -1,7 +1,7 @@ choice prompt "Target CPU" depends on BR2_bfin - default BR2_bf609 + default BR2_bf532 help Specify target CPU config BR2_bf606 diff --git a/bsp/buildroot/arch/Config.in.m68k b/bsp/buildroot/arch/Config.in.m68k index f40f97c4..ced871f5 100644 --- a/bsp/buildroot/arch/Config.in.m68k +++ b/bsp/buildroot/arch/Config.in.m68k @@ -4,10 +4,34 @@ config BR2_ARCH config BR2_ENDIAN default "BIG" -config BR2_GCC_TARGET_ARCH - default "68000" if BR2_m68k_68000 - default "68010" if BR2_m68k_68010 - default "68020" if BR2_m68k_68020 - default "68030" if BR2_m68k_68030 +# symbols used to distinguish between m68k and coldfire +# for gcc multilib +config BR2_m68k_m68k + bool + +config BR2_m68k_cf + bool + +# coldfire variants will be added later +choice + prompt "Target CPU" + depends on BR2_m68k + default BR2_m68k_68040 + help + Specific CPU variant to use + +config BR2_m68k_68040 + bool "68040" + select BR2_m68k_m68k + select BR2_ARCH_HAS_MMU_MANDATORY + +config BR2_m68k_cf5208 + bool "5208" + select BR2_m68k_cf + select BR2_SOFT_FLOAT + +endchoice + +config BR2_GCC_TARGET_CPU default "68040" if BR2_m68k_68040 - default "68060" if BR2_m68k_68060 + default "5208" if BR2_m68k_cf5208 diff --git a/bsp/buildroot/arch/Config.in.x86 b/bsp/buildroot/arch/Config.in.x86 index 7be814b8..efa95678 100644 --- a/bsp/buildroot/arch/Config.in.x86 +++ b/bsp/buildroot/arch/Config.in.x86 @@ -25,9 +25,6 @@ choice help Specific CPU variant to use -config BR2_x86_i386 - bool "i386" - depends on !BR2_x86_64 config BR2_x86_i486 bool "i486" depends on !BR2_x86_64 @@ -210,7 +207,6 @@ config BR2_x86_winchip2 endchoice config BR2_ARCH - default "i386" if BR2_x86_i386 default "i486" if BR2_x86_i486 default "i586" if BR2_x86_i586 default "i586" if BR2_x86_x1000 @@ -230,6 +226,8 @@ config BR2_ARCH default "i686" if BR2_x86_nocona && BR2_i386 default "i686" if BR2_x86_core2 && BR2_i386 default "i686" if BR2_x86_corei7 && BR2_i386 + default "i686" if BR2_x86_corei7_avx && BR2_i386 + default "i686" if BR2_x86_corei7_avx2 && BR2_i386 default "i686" if BR2_x86_atom && BR2_i386 default "i686" if BR2_x86_opteron && BR2_i386 default "i686" if BR2_x86_opteron_sse3 && BR2_i386 @@ -246,7 +244,6 @@ config BR2_ENDIAN default "LITTLE" config BR2_GCC_TARGET_ARCH - default "i386" if BR2_x86_i386 default "i486" if BR2_x86_i486 default "i586" if BR2_x86_i586 default "i586" if BR2_x86_x1000 diff --git a/bsp/buildroot/board/altera/readme.txt b/bsp/buildroot/board/altera/readme.txt index 8d5b8911..1894a790 100644 --- a/bsp/buildroot/board/altera/readme.txt +++ b/bsp/buildroot/board/altera/readme.txt @@ -1,4 +1,4 @@ -SoCkit +SoCkit, SoC Development Kit Intro ===== @@ -6,14 +6,17 @@ Intro This is the buildroot board support for the Arrow SoCkit Evaluation Board and the Altera Cyclone 5 Development Board. -A good source of information is : +A good source of information for Arrow SoCkit: http://www.rocketboards.org/foswiki/Documentation/ArrowSoCKitEvaluationBoard +More information about SoC DK: +https://www.altera.com/products/boards_and_kits/dev-kits/altera/kit-cyclone-v-soc.html + How it works ============ -Boot process : --------------- +Boot process: +------------- In summary, the bootloader has multiple stages, an hardcoded boot routine is loaded from an on-chip ROM. @@ -25,15 +28,15 @@ loaded from an on-chip ROM. which will load the u-boot image. - Then the u-boot image will load the Linux kernel. -A good source of information for the boot process is : +A good source of information for the boot process is: http://xillybus.com/tutorials/u-boot-image-altera-soc -Note for the SPL : +Note for the SPL: The SPL generated by the u-boot from Rocketboards doesn't seems to work, therefore we provide a patch for {uboot-PKG}/board/altera/socfpga_cyclone5/* based on the files generated with the Altera example design. -For more information about this files please look at : +For more information about this files please look at: http://www.rocketboards.org/foswiki/Documentation/PreloaderUbootCustomization#Common_Source_Code How to build it @@ -43,11 +46,11 @@ Configure Buildroot ------------------- The altera_sockit_defconfig configuration is a minimal configuration with -all that is required to bring the SoCkit : +all that is required to bring the SoCkit: $ make altera_sockit_defconfig -and for the SoC Development Board : +and for the SoC Development Board: $ make altera_sockdk_defconfig @@ -81,7 +84,7 @@ Signing the Preloader *** BEWARE **** The u-boot-spl.bin must be signed using the Altera's tool "mkpimage". This tool comes as a part of the Altera development environnment (SoC EDS). -A fork of this tool have been done by Maxime Hadjinlian and can be found here : +A fork of this tool have been done by Maxime Hadjinlian and can be found here: https://github.com/maximeh/mkpimage Remember that without signing the u-boot-spl.bin, the board will not boot !!! @@ -91,17 +94,17 @@ Remember that without signing the u-boot-spl.bin, the board will not boot !!! Prepare your SDcard =================== -A good source of information for the partitioning process is : +A good source of information for the partitioning process is: http://www.rocketboards.org/foswiki/view/Projects/SoCKitLinaroLinuxDesktop#Partition_the_SD_Card Create the SDcard partition table ---------------------------------- -Determine the device associated to the SD card : +Determine the device associated to the SD card: $ cat /proc/partitions -let's assume it is /dev/mmcblk0 : +let's assume it is /dev/mmcblk0: $ sudo fdisk /dev/mmcblk0 @@ -112,7 +115,7 @@ using these options, pressing enter after each one: * n p 2 4096 +4496384K t 83 * n p 3 2048 +1024K t 3 a2 -Using the 'p' option, the SD card's partition must look like this : +Using the 'p' option, the SD card's partition must look like this: Device Boot Start End Blocks Id System /dev/mmcblk0p1 9000000 9041919 20960 b W95 FAT32 @@ -121,32 +124,32 @@ Device Boot Start End Blocks Id System Then write the partition table using 'w' and exit. -Make partition one a DOS partition : +Make partition one a DOS partition: $ sudo mkdosfs /dev/mmcblk0p1 Install the binaries to the SDcard ---------------------------------- -Remember your binaries are located in output/images/, go inside that directory : +Remember your binaries are located in output/images/, go inside that directory: $ cd output/images The partition with type a2 is the partition scan by the first bootloader stage in the SoCkit ROM to find the next bootloader stage so we must write the signed -preloader and the u-boot binaries in that partition : +preloader and the u-boot binaries in that partition: $ sudo dd if=u-boot-spl-signed.bin of=/dev/mmcblk0p3 bs=64k seek=0 $ sudo dd if=u-boot.img of=/dev/mmcblk0p3 bs=64k seek=4 -Copy the Linux kernel and its Device tree : +Copy the Linux kernel and its Device tree: $ sudo mkdir /mnt/sdcard $ sudo mount /dev/mmcblk0p1 /mnt/sdcard $ sudo cp socfpga.dtb uImage /mnt/sdcard $ sudo umount /mnt/sdcard -Copy the rootfs : +Copy the rootfs: $ sudo dd if=rootfs.ext2 of=/dev/mmcblk0p2 bs=64k $ sudo sync diff --git a/bsp/buildroot/board/arcturus/ppc-ucp1020/configs/linux-4.1.x.config b/bsp/buildroot/board/arcturus/ppc-ucp1020/configs/linux-4.1.x.config new file mode 100644 index 00000000..a371df81 --- /dev/null +++ b/bsp/buildroot/board/arcturus/ppc-ucp1020/configs/linux-4.1.x.config @@ -0,0 +1,269 @@ +CONFIG_PPC_85xx=y +CONFIG_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_CROSS_COMPILE="powerpc-linux-" +CONFIG_LOCALVERSION="-ANI-uCP1020-64EE512" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_DEFAULT_HOSTNAME="uCP1020-64EE512" +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ_IDLE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_PARTITION_ADVANCED=y +CONFIG_MAC_PARTITION=y +# CONFIG_EFI_PARTITION is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_UCP1020_SOM=y +CONFIG_HIGHMEM=y +CONFIG_PREEMPT=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_MATH_EMULATION=y +CONFIG_MATH_EMULATION_HW_UNIMPLEMENTED=y +CONFIG_SWIOTLB=y +# CONFIG_COMPACTION is not set +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +# CONFIG_PCIEAER is not set +# CONFIG_PCIEASPM is not set +CONFIG_PCI_MSI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_SYN_COOKIES=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_BRIDGE=y +CONFIG_VLAN_8021Q=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_CFG80211=y +# CONFIG_CFG80211_DEFAULT_PS is not set +CONFIG_MAC80211=y +# CONFIG_MAC80211_RC_MINSTREL is not set +CONFIG_UEVENT_HELPER_PATH="/bin/hotplug" +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_FTL=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_M25P80=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_PLATFORM=y +CONFIG_MTD_NAND_FSL_ELBC=y +CONFIG_MTD_NAND_FSL_UPM=y +CONFIG_MTD_SPI_NOR=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=131072 +CONFIG_EEPROM_AT25=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=y +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_LOGGING=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_AGERE is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_CADENCE is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_NET_VENDOR_DEC is not set +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_EXAR is not set +CONFIG_GIANFAR=y +# CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_NET_PACKET_ENGINE is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_REALTEK is not set +# CONFIG_NET_VENDOR_RDC is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +CONFIG_MICREL_PHY=y +CONFIG_IWLWIFI=m +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_SERIO_LIBPS2=y +CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_NOZOMI=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_NVRAM=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MPC=y +CONFIG_SPI=y +CONFIG_SPI_BITBANG=y +CONFIG_SPI_FSL_ESPI=y +CONFIG_SPI_SPIDEV=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_MPC8XXX=y +CONFIG_SENSORS_LM90=y +CONFIG_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_BOOKE_WDT=y +CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=36 +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=y +CONFIG_USB_GSPCA=y +CONFIG_USB_PWC=y +CONFIG_USB_ZR364XX=y +CONFIG_USB_STKWEBCAM=y +CONFIG_VIDEO_EM28XX=y +CONFIG_VIDEO_EM28XX_V4L2=y +# CONFIG_HID is not set +# CONFIG_USB_HID is not set +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_MON=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_FSL=y +CONFIG_USB_ACM=y +CONFIG_USB_WDM=y +CONFIG_USB_TMC=y +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DEBUG=y +CONFIG_USB_MDC800=y +CONFIG_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ESDHC=y +CONFIG_DMADEVICES=y +CONFIG_FSL_DMA=y +CONFIG_ASYNC_TX_DMA=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_EXT4_FS=y +CONFIG_XFS_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_NTFS_FS=y +CONFIG_PROC_KCORE=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_WBUF_VERIFY=y +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RUBIN=y +CONFIG_CRAMFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFSD=y +CONFIG_CIFS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_FTRACE is not set +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_PCBC=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_PPC=y +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DEV_TALITOS=y diff --git a/bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0001-Arcturus-uCP1020-BSP-support.patch b/bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0001-Arcturus-uCP1020-BSP-support.patch new file mode 100644 index 00000000..75971271 --- /dev/null +++ b/bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0001-Arcturus-uCP1020-BSP-support.patch @@ -0,0 +1,462 @@ +From a243628639e12a4bd0a737eac78a12ed240cd137 Mon Sep 17 00:00:00 2001 +From: Oleksandr G Zhadan +Date: Mon, 18 Jul 2016 10:40:16 -0400 +Subject: [PATCH] Arcturus uCP1020 BSP support + +The uCP1020 product family (ucp1020) is an Arcturus Networks Inc. +System on Modules product featuring a NXP QorIQ P1020 CPU, +optionally populated with 1 or 2 Gig-Ethernet PHYs, +DDR3, NOR Flash, eMMC NAND Flash and/or SPI Flash. + +Signed-off-by: Oleksandr G Zhadan +Signed-off-by: Michael Durrant +--- + arch/powerpc/boot/dts/ucp1020.dts | 87 ++++++++++++ + arch/powerpc/boot/dts/ucp1020.dtsi | 211 ++++++++++++++++++++++++++++++ + arch/powerpc/platforms/85xx/Kconfig | 7 + + arch/powerpc/platforms/85xx/Makefile | 1 + + arch/powerpc/platforms/85xx/ucp1020_som.c | 92 +++++++++++++ + 5 files changed, 398 insertions(+) + create mode 100644 arch/powerpc/boot/dts/ucp1020.dts + create mode 100644 arch/powerpc/boot/dts/ucp1020.dtsi + create mode 100644 arch/powerpc/platforms/85xx/ucp1020_som.c + +diff --git a/arch/powerpc/boot/dts/ucp1020.dts b/arch/powerpc/boot/dts/ucp1020.dts +new file mode 100644 +index 0000000..291e70a +--- /dev/null ++++ b/arch/powerpc/boot/dts/ucp1020.dts +@@ -0,0 +1,87 @@ ++/* ++ * uCP1020 Tree Source (32-bit address map) ++ * ++ * Copyright 2013-2016 Arcturus Networks Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are met: ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * * Neither the name of Freescale Semiconductor nor the ++ * names of its contributors may be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * ++ * ALTERNATIVELY, this software may be distributed under the terms of the ++ * GNU General Public License ("GPL") as published by the Free Software ++ * Foundation, either version 2 of that License or (at your option) any ++ * later version. ++ * ++ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY ++ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++/include/ "fsl/p1020si-pre.dtsi" ++/ { ++ model = "arcturus,uCP1020"; ++ compatible = "arcturus,uCP1020"; ++ ++ memory { ++ device_type = "memory"; ++ }; ++ ++ lbc: localbus@ffe05000 { ++ reg = <0 0xffe05000 0 0x1000>; ++ ++ /* NOR Flash */ ++ ranges = <0x0 0x0 0x0 0xec000000 0x04000000>; ++ }; ++ ++ soc: soc@ffe00000 { ++ ranges = <0x0 0x0 0xffe00000 0x100000>; ++ }; ++ ++ pci0: pcie@ffe09000 { ++ ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000 ++ 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; ++ reg = <0 0xffe09000 0 0x1000>; ++ pcie@0 { ++ ranges = <0x2000000 0x0 0xa0000000 ++ 0x2000000 0x0 0xa0000000 ++ 0x0 0x20000000 ++ ++ 0x1000000 0x0 0x0 ++ 0x1000000 0x0 0x0 ++ 0x0 0x100000>; ++ }; ++ }; ++ ++ pci1: pcie@ffe0a000 { ++ reg = <0 0xffe0a000 0 0x1000>; ++ ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000 ++ 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; ++ pcie@0 { ++ ranges = <0x2000000 0x0 0x80000000 ++ 0x2000000 0x0 0x80000000 ++ 0x0 0x20000000 ++ ++ 0x1000000 0x0 0x0 ++ 0x1000000 0x0 0x0 ++ 0x0 0x100000>; ++ }; ++ }; ++}; ++ ++/include/ "ucp1020.dtsi" ++/include/ "fsl/p1020si-post.dtsi" +diff --git a/arch/powerpc/boot/dts/ucp1020.dtsi b/arch/powerpc/boot/dts/ucp1020.dtsi +new file mode 100644 +index 0000000..7cff949 +--- /dev/null ++++ b/arch/powerpc/boot/dts/ucp1020.dtsi +@@ -0,0 +1,211 @@ ++/* ++ * uCP1020 Device Tree Source stub (no addresses or top-level ranges) ++ * ++ * Copyright 2013-2016 Arcturus Networks Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are met: ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * * Neither the name of Freescale Semiconductor nor the ++ * names of its contributors may be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * ++ * ALTERNATIVELY, this software may be distributed under the terms of the ++ * GNU General Public License ("GPL") as published by the Free Software ++ * Foundation, either version 2 of that License or (at your option) any ++ * later version. ++ * ++ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY ++ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++&lbc { ++ nor@0,0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "cfi-flash"; ++ reg = <0x0 0x0 0x04000000>; ++ bank-width = <2>; ++ device-width = <1>; ++ ++ partition@100000 { ++ /* 7MB - PART 0 */ ++ reg = <0x00100000 0x00700000>; ++ label = "0"; ++ }; ++ ++ partition@800000 { ++ /* 32MB - PART 1 */ ++ reg = <0x0800000 0x02000000>; ++ label = "1"; ++ }; ++ ++ partition@2800000 { ++ /* 8MB - PART 2 */ ++ reg = <0x02800000 0x00800000>; ++ label = "2"; ++ }; ++ ++ partition@3000000 { ++ /* (16MB - 512K) - PART 3 JFFS 2 */ ++ reg = <0x03000000 0x00f80000>; ++ label = "3"; ++ }; ++ ++ partition@0 { ++ /* 512KB - bootloader[u-boot, uCbootloader] */ ++ reg = <0x0 0x00080000>; ++ label = "BOOT_SPI"; ++ }; ++ ++ partition@3f80000 { ++ /* 512KB - bootloade NOR r[u-boot, uCbootloader] */ ++ reg = <0x03f80000 0x00080000>; ++ label = "B"; ++ }; ++ ++ partition@80000 { ++ /* 256KB - bootloaders environment (uCenv) */ ++ reg = <0x00080000 0x00040000>; ++ ++ label = "E"; ++ }; ++ ++ partition@C0000 { ++ /* 256KB - bootloaders environment (u-boot) */ ++ reg = <0x000C0000 0x00040000>; ++ label = "UENV"; ++ }; ++ }; ++}; ++ ++&soc { ++ i2c@3000 { ++ spoc@14 { ++ compatible = "conexant,cx2070x"; ++ reg = <0x14>; ++ }; ++ }; ++ ++ i2c@3100 { ++ dtt@4C { ++ compatible = "national,lm90"; ++ reg = <0x4C>; ++ }; ++ }; ++ ++ spi@7000 { ++ flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "winbond,w25q80bl"; ++ reg = <0>; ++ spi-max-frequency = <40000000>; /* input clock */ ++ ++ partition@0 { ++ label = "SPI MBR"; ++ reg = <0x00000000 0x00002000>; ++ read-only; ++ }; ++ partition@2000 { ++ label = "SPI ENV"; ++ reg = <0x00002000 0x00006000>; ++ read-only; ++ }; ++ partition@8000 { ++ label = "SPI FS"; ++ reg = <0x00008000 0x000F8000>; ++ }; ++ }; ++ flash@3 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "spansion,s25fl008k"; ++ reg = <3>; ++ spi-max-frequency = <40000000>; /* input clock */ ++ partition@0 { ++ label = "SPI USER"; ++ reg = <0x00000000 0x00100000>; ++ }; ++ }; ++ }; ++ ++ usb@22000 { ++ phy_type = "ulpi"; ++ dr_mode = "host"; ++ }; ++ ++ mdio@24000 { ++ phy0: ethernet-phy@4 { ++ interrupt-parent = <&mpic>; ++ interrupts = <4 1>; ++ reg = <0x04>; ++ }; ++ ++ phy1: ethernet-phy@6 { ++ interrupt-parent = <&mpic>; ++ interrupts = <8 1>; ++ reg = <0x6>; ++ }; ++ }; ++ ++ enet0: ethernet@b0000 { ++ phy-handle = <&phy0>; ++ phy-connection-type = "rgmii-id"; ++ }; ++ ++ enet1: ethernet@b1000 { ++ status = "disabled"; ++ }; ++ ++ enet2: ethernet@b2000 { ++ phy-handle = <&phy1>; ++ phy-connection-type = "rgmii-id"; ++ }; ++ ++ gpio0: gpio@f000 { ++ compatible = "fsl,mpc8572-gpio", "fsl,pq3-gpio"; ++ reg = <0xf000 0x1000>; ++ interrupts = <47 2>; ++ interrupt-parent = <&mpic>; ++ #gpio-cells = <2>; ++ gpio-controller; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ gpio5 { ++ label = "led1"; /* LED15 */ ++ gpios = <&gpio0 5 0>; ++ }; ++ gpio12 { ++ label = "led2"; /* LED16 */ ++ gpios = <&gpio0 12 0>; ++ }; ++ gpio13 { ++ label = "led3"; /* LED17 */ ++ gpios = <&gpio0 13 0>; ++ }; ++ gpio7 { ++ label = "led4"; /* LED18 */ ++ gpios = <&gpio0 7 0>; ++ }; ++ gpio6 { ++ label = "led5"; /* LED19 */ ++ gpios = <&gpio0 6 0>; ++ }; ++ }; ++}; +diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig +index 2fb4b24..81a944f 100644 +--- a/arch/powerpc/platforms/85xx/Kconfig ++++ b/arch/powerpc/platforms/85xx/Kconfig +@@ -241,6 +241,13 @@ config SGY_CTS1000 + help + Enable this to support functionality in Servergy's CTS-1000 systems. + ++config UCP1020_SOM ++ bool "Arcturus uCP1020 Rev.1.3 System on Module" ++ select DEFAULT_UIMAGE ++ help ++ This option enables support for the Arcturus Networks Inc. ++ uCP1020 System on Module. ++ + config MVME2500 + bool "Artesyn MVME2500" + select DEFAULT_UIMAGE +diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile +index 1fe7fb9..84f2b9a 100644 +--- a/arch/powerpc/platforms/85xx/Makefile ++++ b/arch/powerpc/platforms/85xx/Makefile +@@ -31,4 +31,5 @@ obj-$(CONFIG_XES_MPC85xx) += xes_mpc85xx.o + obj-$(CONFIG_GE_IMP3A) += ge_imp3a.o + obj-$(CONFIG_PPC_QEMU_E500) += qemu_e500.o + obj-$(CONFIG_SGY_CTS1000) += sgy_cts1000.o ++obj-$(CONFIG_UCP1020_SOM) += ucp1020_som.o + obj-$(CONFIG_MVME2500) += mvme2500.o +diff --git a/arch/powerpc/platforms/85xx/ucp1020_som.c b/arch/powerpc/platforms/85xx/ucp1020_som.c +new file mode 100644 +index 0000000..777e8ad +--- /dev/null ++++ b/arch/powerpc/platforms/85xx/ucp1020_som.c +@@ -0,0 +1,92 @@ ++/* ++ * Arcturus Networks Inc. uCP1020 module Setup ++ * ++ * Copyright 2014-2016 Arcturus Networks Inc. ++ * ++ * by Oleksandr G Zhadan & Michael Durrant (www.ArcturusNetworks.com) ++ * ++ * 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. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include "smp.h" ++ ++#include "mpc85xx.h" ++ ++void __init ucp1020_som_pic_init(void) ++{ ++ struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | ++ MPIC_SINGLE_DEST_CPU, ++ 0, 256, " OpenPIC "); ++ ++ BUG_ON(mpic == NULL); ++ ++ mpic_init(mpic); ++} ++ ++/* ++ * Setup the architecture ++ */ ++static void __init ucp1020_som_setup_arch(void) ++{ ++ if (ppc_md.progress) ++ ppc_md.progress("uCP1020_SoM_setup_arch()", 0); ++ ++ mpc85xx_smp_init(); ++ ++ fsl_pci_assign_primary(); ++ pr_info("\n\t%s (http://www.arcturusnetworks.com)\n", ppc_md.name); ++} ++ ++machine_arch_initcall(ucp1020, mpc85xx_common_publish_devices); ++machine_arch_initcall(ucp1020, swiotlb_setup_bus_notifier); ++ ++/* ++ * Called very early, device-tree isn't unflattened ++ */ ++static int __init ucp1020_probe(void) ++{ ++ unsigned long root = of_get_flat_dt_root(); ++ ++ if (of_flat_dt_is_compatible(root, "arcturus,uCP1020")) ++ return 1; ++ return 0; ++} ++ ++define_machine(ucp1020) { ++ .name = "uCP1020 SoM - Arcturus Networks Inc.", ++ .probe = ucp1020_probe, ++ .setup_arch = ucp1020_som_setup_arch, ++ .init_IRQ = ucp1020_som_pic_init, ++#ifdef CONFIG_PCI ++ .pcibios_fixup_bus = fsl_pcibios_fixup_bus, ++#endif ++ .get_irq = mpic_get_irq, ++ .restart = fsl_rstcr_restart, ++ .calibrate_decr = generic_calibrate_decr, ++#ifdef DEBUG ++ .progress = udbg_progress, ++#endif ++}; +-- +2.1.4 + diff --git a/bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0002-p1020-esdhc-controller-reserved-bit.patch b/bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0002-p1020-esdhc-controller-reserved-bit.patch new file mode 100644 index 00000000..9694140f --- /dev/null +++ b/bsp/buildroot/board/arcturus/ppc-ucp1020/patches/linux/0002-p1020-esdhc-controller-reserved-bit.patch @@ -0,0 +1,28 @@ +From 4c74fd1266287deca0c1ff091071c5b8558b9735 Mon Sep 17 00:00:00 2001 +From: Oleksandr G Zhadan +Date: Mon, 18 Jul 2016 10:45:41 -0400 +Subject: [PATCH 1/1] p1020 esdhc controller reserved bit + +Prevent SDHCI core from writing reserved bits, where +p1020 reserved bit is SDHCI_CTRL_HISPD, not 0x01(SDHCI_CTRL_LED). + +Signed-off-by: Oleksandr G Zhadan +Signed-off-by: Michael Durrant +--- + drivers/mmc/host/sdhci-esdhc.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/mmc/host/sdhci-esdhc.h b/drivers/mmc/host/sdhci-esdhc.h +index a870c42..b45de0a 100644 +--- a/drivers/mmc/host/sdhci-esdhc.h ++++ b/drivers/mmc/host/sdhci-esdhc.h +@@ -45,6 +45,6 @@ + #define ESDHC_DMA_SYSCTL 0x40c + #define ESDHC_DMA_SNOOP 0x00000040 + +-#define ESDHC_HOST_CONTROL_RES 0x01 ++#define ESDHC_HOST_CONTROL_RES (SDHCI_CTRL_HISPD) + + #endif /* _DRIVERS_MMC_SDHCI_ESDHC_H */ +-- +2.1.4 diff --git a/bsp/buildroot/board/arcturus/ppc-ucp1020/readme.txt b/bsp/buildroot/board/arcturus/ppc-ucp1020/readme.txt new file mode 100644 index 00000000..c46fd80e --- /dev/null +++ b/bsp/buildroot/board/arcturus/ppc-ucp1020/readme.txt @@ -0,0 +1,73 @@ +Arcturus uCP1020 SoM +==================== + +This tutorial describes how to use the predefined Buildroot +configuration for the Arcturus uCP1020 SoM platform. + +Additional information about this module can be found at + + +Building +-------- + + make arcturus_ucp1020_defconfig + make + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- rootfs.jffs2 + +-- rootfs.tar + +-- u-boot.bin + +-- ucp1020.dtb + +-- uImage + +Flashing +-------- + +You'll need to program the files created by buildroot into the NOR flash. + +1. Program the new U-Boot binary (optional) + If you don't feel confident upgrading your bootloader then don't do it, + it's unnecessary most of the time. + + B$ tftp u-boot.bin + B$ protect off 0xeff80000 +$filesize + B$ erase 0xeff80000 +$filesize + B$ cp.b $loadaddr 0xeff80000 $filesize + +2. Program the kernel + + B$ tftp uImage + B$ erase 0xec140000 +$filesize + B$ cp.b $loadaddr 0xec140000 $filesize + +3. Program the DTB + + B$ tftp ucp1020.dtb + B$ erase 0xec100000 +$filesize + B$ cp.b $loadaddr 0xec100000 $filesize + +4. Program the jffs2 root filesystem + + B$ tftp rootfs.jffs2 + B$ erase 0xec800000 0xee8fffff + B$ cp.b $loadaddr 0xec800000 $filesize + +5. Booting your new system + + B$ setenv norboot 'setenv bootargs root=/dev/mtdblock1 rootfstype=jffs2 console=$consoledev,$baudrate;bootm 0xec140000 - 0xec100000' + + If you want to set this boot option as default: + + B$ setenv bootcmd 'run norboot' + B$ saveenv + + ...or for a single boot: + + B$ run norboot + +Good Luck ! diff --git a/bsp/buildroot/board/arm/foundation-v8/readme.txt b/bsp/buildroot/board/arm/foundation-v8/readme.txt index 5406ed3b..1dedf68c 100644 --- a/bsp/buildroot/board/arm/foundation-v8/readme.txt +++ b/bsp/buildroot/board/arm/foundation-v8/readme.txt @@ -3,14 +3,14 @@ ARM software simulator of the AArch64 architecture. First, one has to download the AArch64 software simulator from: - https://silver.arm.com/download/download.tm?pv=2482590 + https://silver.arm.com/download/download.tm?pv=2663527 Then, use the arm_foundationv8_defconfig configuration to build your Buildroot system. Finally, boot your system with: - ${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-4.1/Foundation_Platform \ + ${LOCATION_OF_FOUNDATIONV8_SIMULATOR}/models/Linux64_GCC-4.7/Foundation_Platform \ --image output/images/linux-system.axf \ --block-device output/images/rootfs.ext2 \ --network=nat diff --git a/bsp/buildroot/board/arm/juno/linux-juno-defconfig b/bsp/buildroot/board/arm/juno/linux-juno-defconfig index 96ccb5cf..64598d21 100644 --- a/bsp/buildroot/board/arm/juno/linux-juno-defconfig +++ b/bsp/buildroot/board/arm/juno/linux-juno-defconfig @@ -165,3 +165,5 @@ CONFIG_SND=y CONFIG_SND_SOC=y CONFIG_SND_SIMPLE_CARD=y CONFIG_SND_DESIGNWARE_I2S=y +CONFIG_CMA=y +CONFIG_CMA_SIZE_MBYTES=64 diff --git a/bsp/buildroot/board/arm/juno/readme.txt b/bsp/buildroot/board/arm/juno/readme.txt index 52fabf9b..9314bb0e 100644 --- a/bsp/buildroot/board/arm/juno/readme.txt +++ b/bsp/buildroot/board/arm/juno/readme.txt @@ -6,6 +6,7 @@ Intro These instructions apply to all models of the ARM Juno: - Juno r0 (does not support PCIe) - Juno r1 (supports PCIe) + - Juno r2 (Big Cluster with A72) Buildroot will generate the kernel image, device tree blob and a minimal root filesystem. @@ -41,6 +42,7 @@ After building, you should obtain this tree: +-- rootfs.tar +-- juno.dtb (if Juno r0 is used) +-- juno-r1.dtb (if Juno r1 is used) + +-- juno-r2.dtb (if Juno r2 is used) +-- Image Preparing your rootfs @@ -89,6 +91,19 @@ NOR3LOAD: 00000000 ;Image Load Address NOR3ENTRY: 00000000 ;Image Entry Point ...... +Configure *.dtb in the boot configuration for Juno r2 +===================================================== + +SITE1/HBI0262D/images.txt +...... +NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE +NOR3ADDRESS: 0x02000000 ;Image Flash Address +NOR3FILE: \SOFTWARE\juno-r2.dtb ;Image File Name +NOR3NAME: board.dtb ;Specify target filename to preserve file extension +NOR3LOAD: 00000000 ;Image Load Address +NOR3ENTRY: 00000000 ;Image Entry Point +...... + Installing kernel image and DTB =============================== @@ -97,7 +112,7 @@ Installing kernel image and DTB A mass storage device should appear in your desktop. 3. Open the software/ folder 4. Copy the 'Image' file to software/ -5. Copy the 'juno-r1.dtb' (r1) or the 'juno.dtb' (r0) file to software/ +5. Copy the 'juno-r1.dtb' (r1), 'juno.dtb' (r0) or juno-r2.dtb (r2) file to software/ 6. Press the red button in the front pannel of ARM Juno At this time, the board will erase the Flash entry for each new item and diff --git a/bsp/buildroot/board/armadeus/readme.txt b/bsp/buildroot/board/armadeus/readme.txt new file mode 100644 index 00000000..a1f13252 --- /dev/null +++ b/bsp/buildroot/board/armadeus/readme.txt @@ -0,0 +1,89 @@ +Introduction +============ + +Armadeus APFxx are Systems On Module (SOM) based on Freescale/NXP i.MX +processors associated with an FPGA (except on APF28). Non volatile +data are stored in on-module NOR or NAND Flash, depending on the +model. These SOM can be used on Armadeus development boards or with +custom docking boards. + +Supported platforms +=================== + +Buildroot currently supports the following Armadeus platforms with the +associated defconfigs: + + * APF9328 SOM + devt boards -> armadeus_apf9328_defconfig + * APF27 SOM + devt board -> armadeus_apf27_defconfig + * APF51 SOM + devt board -> armadeus_apf51_defconfig + * APF28 SOM + devt board -> armadeus_apf28_defconfig + +Vanilla Linux versions are preferred to Freescale's one in these +configurations. + +How to build it +=============== + +Configure Buildroot +------------------- + +Let's say you own an APFxx SOM with it's corresponding development +board, all you have to do is: + + $ make armadeus_apfxx_defconfig + +where "apfxx" is the version of your SOM. + +Launch build +------------ + + $ make + +Result of the build +------------------- + +When the build is finished, you will end up with: + + output/images/ + ├── imx**-apfxxdev.dtb [1] + ├── rootfs.jffs2 [2] + ├── rootfs.tar + ├── rootfs.ubi [2] + ├── rootfs.ubifs [2] + └── uImage + +[1] Only if the kernel version used uses a Device Tree. +[2] .ubi/.ubifs images are not available on APF9328 and replaced by a + .jffs2 one in this case. + +Building U-Boot is currently not supported in these configurations. + +Installation +============ + +You will require a serial connection to the board and a TFTP server on +your Host PC. Assuming your server is configured for exporting +/tftpboot/ directory, you will have to copy the generated images to +it: + + $ cp output/images/uImage /tftpboot/apfxx-linux.bin + $ cp output/images/*.dtb /tftpboot/ + $ cp output/images/rootfs.ubi /tftpboot/apfxx-rootfs.ubi + $ cp output/images/rootfs.jffs2 /tftpboot/apfxx-rootfs.jffs2 + +where "apfxx" is the version of your SOM, as used with _defconfigs. + +Then on your serial terminal, all you have to do is: + +* interrupt the boot process and access U-Boot console by pressing any + key when booting, +* configure board and server IP addresses with "ipaddr" and "serverip" + environment variables, +* if you want to update kernel: + BIOS > run update_kernel +* if you want to update device tree: + BIOS > run update_dtb +* if you want to update rootfs: + BIOS > run update_rootfs + +That's it ! diff --git a/bsp/buildroot/board/atmel/readme.txt b/bsp/buildroot/board/atmel/readme.txt index 539ef660..3a79e57c 100644 --- a/bsp/buildroot/board/atmel/readme.txt +++ b/bsp/buildroot/board/atmel/readme.txt @@ -1,10 +1,6 @@ -Flashing the NAND using SAM-BA -============================== - -This document explains how to flash a basic Buildroot system on various -Atmel boards. Additional details can -also be found on the Linux4SAM website, in particular here: -http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted +This document explains how to set up a basic Buildroot system on various +Atmel boards. Additional details can also be found on the Linux4SAM website: +http://www.at91.com/linux4sam/bin/view/Linux4SAM/ This guide covers the following configurations: - at91sam9g45m10ek_defconfig @@ -14,20 +10,50 @@ This guide covers the following configurations: - atmel_sama5d3xek_defconfig (sama5d31, sama5d33, sama5d34, sama5d35, sama5d36) - atmel_sama5d3_xplained_defconfig + - atmel_sama5d3_xplained_dev_defconfig + - atmel_sama5d3_xplained_mmc_defconfig + - atmel_sama5d3_xplained_mmc_dev_defconfig - atmel_sama5d4ek_defconfig - atmel_sama5d4_xplained_defconfig + - atmel_sama5d4_xplained_dev_defconfig + - atmel_sama5d4_xplained_mmc_defconfig + - atmel_sama5d4_xplained_mmc_dev_defconfig + - atmel_sama5d2_xplained_mmc_defconfig + - atmel_sama5d2_xplained_mmc_dev_defconfig These configurations will use AT91Bootstrap, u-boot and a linux kernel from -the git trees maintained by Atmel. They also build u-boot SPL when -available, it can replace AT91Bootstrap. +the git trees maintained by Atmel. +The configurations labeled as 'dev' provide a development rootfs with tools to +tests the features of the SoC: +- ALSA tools to test audio +- FFMPEG to record video from the ISI/ISC +- I2C, SPI, CAN, etc. tools +- modetest for LCD screens, HDMI +- Wilc1000 firmware for the Atmel Wireless sdio module +- SSH for convenience +- GDB/GDB server for debug Configuring and building Buildroot ----------------------------------- +================================== + +For most configurations listed above, the Buildroot configuration +assumes the system will be flashed on NAND. In this case, after +building Buildroot, follow the instructions in the "Flashing the NAND +using SAM-BA" section below. + +For the Xplained boards, an alternative Buildroot configuration is +provided to boot from an SD card. Those configurations are labeled as +'mmc'. In this case, after building Buildroot, follow the instructions +in the "Preparting the SD card" sction. + +To configure and build Buildroot, run: make _defconfig make +Flashing the NAND using SAM-BA +============================== Flashing the board ------------------ @@ -105,3 +131,44 @@ board/atmel/flasher.sh /tmp/atmel_sama5d3_xplained/ /dev/ttyACM0 sama5d3_xplaine Reboot, the system should boot up to the buildroot login invite. +Preparing the SD card +===================== + +An image named sdcard.img is automatically generated. With this image, +you no longer have to care about the creation of the partition and +copying files to the SD card. + +You need at least a 1GB SD card. All the data on the SD card will be +lost. To copy the image on the SD card: + +/!\ Caution be sure to do it on the right mmcblk device /!\ + +dd if=output/images/sdcard.img of=/dev/mmcblk0 + +Insert your SD card in your Xplained board, and enjoy. The default +U-Boot environment will load properly the kernel and Device Tree blob +from the first partition of the SD card, so everything works +automatically. + +By default a 16MB FAT partition is created. It contains at91bootstrap, +u-boot, the kernel image and all dtb variants for your board. The dtb +used is the basic one: + +U-Boot> print +[...] +bootcmd=fatload mmc 1:1 0x21000000 at91-sama5d2_xplained.dtb; fatload mmc 1:1 0x22000000 zImage; bootz 0x22000000 - 0x21000000 +[...] + +If you want to use a variant such as the _pda7 one, you will have to +update your u-boot environment: + +U-Boot> setenv bootcmd 'fatload mmc 1:1 0x21000000 at91-sama5d2_xplained_pda7.dtb; fatload mmc 1:1 0x22000000 zImage; bootz 0x22000000 - 0x21000000' +U-Boot> save +Saving Environment to FAT... +writing uboot.env +done + +A 512MB ext4 partition is also created to store the rootfs generated. + +If you want to customize the size of the partitions and their content, +take a look at the the genimage.cfg file in the board directory. diff --git a/bsp/buildroot/board/atmel/sama5d2_xplained_mmc/genimage.cfg b/bsp/buildroot/board/atmel/sama5d2_xplained_mmc/genimage.cfg new file mode 100644 index 00000000..b0ba22db --- /dev/null +++ b/bsp/buildroot/board/atmel/sama5d2_xplained_mmc/genimage.cfg @@ -0,0 +1,33 @@ +# Image for SD card boot on Atmel SAMA5D2 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d2_xplained.dtb", + "at91-sama5d2_xplained_pda4.dtb", + "at91-sama5d2_xplained_pda7.dtb", + "at91-sama5d2_xplained_pda7b.dtb", + "boot.bin", + "u-boot.bin" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/atmel/sama5d2_xplained_mmc/post-image.sh b/bsp/buildroot/board/atmel/sama5d2_xplained_mmc/post-image.sh new file mode 100755 index 00000000..359b4c9e --- /dev/null +++ b/bsp/buildroot/board/atmel/sama5d2_xplained_mmc/post-image.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/atmel/sama5d3_xplained_mmc/genimage.cfg b/bsp/buildroot/board/atmel/sama5d3_xplained_mmc/genimage.cfg new file mode 100644 index 00000000..32df453b --- /dev/null +++ b/bsp/buildroot/board/atmel/sama5d3_xplained_mmc/genimage.cfg @@ -0,0 +1,33 @@ +# Image for SD card boot on Atmel SAMA5D3 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d3_xplained.dtb", + "at91-sama5d3_xplained_pda4.dtb", + "at91-sama5d3_xplained_pda7.dtb", + "at91-sama5d3_xplained_pda7b.dtb", + "boot.bin", + "u-boot.bin" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/atmel/sama5d3_xplained_mmc/post-image.sh b/bsp/buildroot/board/atmel/sama5d3_xplained_mmc/post-image.sh new file mode 100755 index 00000000..359b4c9e --- /dev/null +++ b/bsp/buildroot/board/atmel/sama5d3_xplained_mmc/post-image.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/atmel/sama5d4_xplained_mmc/genimage.cfg b/bsp/buildroot/board/atmel/sama5d4_xplained_mmc/genimage.cfg new file mode 100644 index 00000000..b23ebe47 --- /dev/null +++ b/bsp/buildroot/board/atmel/sama5d4_xplained_mmc/genimage.cfg @@ -0,0 +1,34 @@ +# Image for SD card boot on Atmel SAMA5D4 Xplained boards +# +image boot.vfat { + vfat { + files = { + "zImage", + "at91-sama5d4_xplained.dtb", + "at91-sama5d4_xplained_hdmi.dtb", + "at91-sama5d4_xplained_pda4.dtb", + "at91-sama5d4_xplained_pda7.dtb", + "at91-sama5d4_xplained_pda7b.dtb", + "boot.bin", + "u-boot.bin" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/atmel/sama5d4_xplained_mmc/post-image.sh b/bsp/buildroot/board/atmel/sama5d4_xplained_mmc/post-image.sh new file mode 100755 index 00000000..359b4c9e --- /dev/null +++ b/bsp/buildroot/board/atmel/sama5d4_xplained_mmc/post-image.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/atmel/xplained/readme.txt b/bsp/buildroot/board/atmel/xplained/readme.txt deleted file mode 100644 index ba451227..00000000 --- a/bsp/buildroot/board/atmel/xplained/readme.txt +++ /dev/null @@ -1,73 +0,0 @@ -Atmel SAMA5D3 Xplained board -============================ - -This document explains how to set up a basic Buildroot system on the -Atmel SAMA5D3 Xplained board, whose main site is -http://www.atmel.com/tools/ATSAMA5D3-XPLD.aspx. Additional details can -also be found on the http://www.at91.com/linux4sam/bin/view/Linux4SAM/ -web site. - -Note that the default Buildroot configuration is prepared to boot from -an SD card: the first stage bootloader, second stage bootloader, -kernel image and root filesystem are all located on the SD card. Some -adjustments in the bootloader configuration will be needed to boot -from NAND flash, see board/atmel/readme.txt - -Configuring and building Buildroot ----------------------------------- - - make atmel_sama5d3_xplained_mmc_defconfig - make - -Preparing the SD card ---------------------- - -The SD card must be partitioned with at least two partitions: one -FAT16 partition for the bootloaders, kernel image and Device Tree -blob, and one ext4 partition for the root filesystem. To partition the -SD card: - -sudo sfdisk -uM /dev/mmcblk0 <= one per line: - -kernel_image=myimage -modeboot=myboot -myboot=... diff --git a/bsp/buildroot/board/avnet/microzed/uboot/0001-zynq-Create-microzed-specific-U-Boot-environment.patch b/bsp/buildroot/board/avnet/microzed/uboot/0001-zynq-Create-microzed-specific-U-Boot-environment.patch deleted file mode 100644 index 6a7725fc..00000000 --- a/bsp/buildroot/board/avnet/microzed/uboot/0001-zynq-Create-microzed-specific-U-Boot-environment.patch +++ /dev/null @@ -1,41 +0,0 @@ -From a4c0058967a551385da5e16d2787d9f704cab225 Mon Sep 17 00:00:00 2001 -From: Jan Viktorin -Date: Thu, 18 Jun 2015 16:26:02 +0200 -Subject: [PATCH] zynq: Create microzed-specific U-Boot environment - -This is a copy of the patch supplied for Zedboard. - -Signed-off-by: Davide Viti - ---- a/include/configs/zynq_microzed.h 2015-07-14 19:32:21.000000000 +0200 -+++ b/include/configs/zynq_microzed.h 2015-09-02 12:19:35.728503472 +0200 -@@ -22,4 +22,29 @@ - - #include - -+#undef CONFIG_EXTRA_ENV_SETTINGS -+#define CONFIG_EXTRA_ENV_SETTINGS \ -+ "envload=mmc info && if fatload mmc 0 0x1000 uEnv.txt;"\ -+ " then echo Importing uEnv.txt; env import -t 0x1000" \ -+ " $filesize; fi;\0" \ -+ "bootcmd=run $modeboot\0" \ -+ "modeboot=sdboot\0" \ -+ "baudrate=115200\0" \ -+ "bootenv=uEnv.txt\0" \ -+ "devicetree_image=zynq-zed.dtb\0" \ -+ "kernel_image=uImage\0" \ -+ "ramdisk_image=rootfs.cpio.uboot\0" \ -+ "fpga_image=system.bit\0" \ -+ "sdboot=echo Booting from SD...;" \ -+ " run envload; run fpgaboot;" \ -+ " fatload mmc 0 0x1000000 ${kernel_image}" \ -+ " && fatload mmc 0 0x2000000 ${ramdisk_image}" \ -+ " && fatload mmc 0 0x3000000 ${devicetree_image}" \ -+ " && bootm 0x1000000 0x2000000 0x3000000\0" \ -+ "fpgaboot=if fatload mmc 0 0x1000000 ${fpga_image};" \ -+ " then echo Booting FPGA from ${fpga_image};" \ -+ " fpga info 0 && fpga loadb 0 0x1000000 $filesize;" \ -+ " else echo FPGA image ${fpga_image} was not found," \ -+ " skipping...; fi;\0" -+ - #endif /* __CONFIG_ZYNQ_MICROZED_H */ diff --git a/bsp/buildroot/board/avnet/zedboard/readme.txt b/bsp/buildroot/board/avnet/zedboard/readme.txt deleted file mode 100644 index 0f72d0db..00000000 --- a/bsp/buildroot/board/avnet/zedboard/readme.txt +++ /dev/null @@ -1,64 +0,0 @@ -This is the buildroot board support for the Avnet Zedboard. The Zedboard is -a development board based on the Xilinx Zynq-7000 based All-Programmable -System-On-Chip. - -Zedboard information including schematics, reference designs, and manuals are -available from http://www.zedboard.org . - -Steps to create a working system for Zedboard: - -1) make zedboard_defconfig -2) make -3) copy files BOOT.BIN, u-boot-dtb.img, rootfs.cpio.uboot, - uImage, zynq-zed.dtb into your SD card -4) boot your Zedboard - -The expected output: - - U-Boot SPL 2015.07 (Jul 22 2015 - 12:01:55) - mmc boot - reading system.dtb - spl_load_image_fat_os: error reading image system.dtb, err - -1 - reading u-boot-dtb.img - reading u-boot-dtb.img - - U-Boot 2015.07 (Jul 22 2015 - 12:01:55 +0200) - - Model: Zynq ZED Board - I2C: ready - DRAM: ECC disabled 512 MiB - MMC: zynq_sdhci: 0 - Using default environment - ... - -When using an older U-Boot then 2015.07, a working ps7_init.c -file is required to be installed into the U-Boot directory -structure. From 2015.07, the major Zynq-based boards are -supported without any manual intervention. - -Resulting system ----------------- -A FAT32 partition should be created at the beginning of the SD Card -and the following files should be installed: - /BOOT.BIN - /zynq-zed.dtb - /uImage - /rootfs-cpio.uboot - /u-boot-dtb.img - - -All needed files can be taken from output/images/ - -BOOT.BIN, uImage and u-boot-dtb.img are direct copies of the same files -available on output/images/ - -There is a patch attached that redefines the U-Boot's environment -to work with Buildroot out-of-the-box. - -You can alter the booting procedure by creating a file uEnv.txt -in the root of the SD card. It is a plain text file in format -= one per line: - -kernel_image=myimage -modeboot=myboot -myboot=... diff --git a/bsp/buildroot/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch b/bsp/buildroot/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch deleted file mode 100644 index 6dae31ea..00000000 --- a/bsp/buildroot/board/avnet/zedboard/uboot/0001-zynq-Create-zedboard-specific-U-Boot-environment.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a4c0058967a551385da5e16d2787d9f704cab225 Mon Sep 17 00:00:00 2001 -From: Jan Viktorin -Date: Thu, 18 Jun 2015 16:26:02 +0200 -Subject: [PATCH 2/2] zynq: Create zedboard-specific U-Boot environment - ---- - include/configs/zynq_zed.h | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/include/configs/zynq_zed.h b/include/configs/zynq_zed.h -index 946de95..2400a88 100644 ---- a/include/configs/zynq_zed.h -+++ b/include/configs/zynq_zed.h -@@ -24,4 +24,28 @@ - - #include - -+#undef CONFIG_EXTRA_ENV_SETTINGS -+#define CONFIG_EXTRA_ENV_SETTINGS \ -+ "envload=mmc info && if fatload mmc 0 0x1000 uEnv.txt;"\ -+ " then echo Importing uEnv.txt; env import -t 0x1000" \ -+ " $filesize; fi;\0" \ -+ "bootcmd=run envload; run $modeboot\0" \ -+ "modeboot=sdboot\0" \ -+ "baudrate=115200\0" \ -+ "bootenv=uEnv.txt\0" \ -+ "devicetree_image=zynq-zed.dtb\0" \ -+ "kernel_image=uImage\0" \ -+ "ramdisk_image=rootfs.cpio.uboot\0" \ -+ "fpga_image=system.bit\0" \ -+ "sdboot=echo Booting from SD...; run fpgaboot;" \ -+ " fatload mmc 0 0x1000000 ${kernel_image}" \ -+ " && fatload mmc 0 0x2000000 ${ramdisk_image}" \ -+ " && fatload mmc 0 0x3000000 ${devicetree_image}" \ -+ " && bootm 0x1000000 0x2000000 0x3000000\0" \ -+ "fpgaboot=if fatload mmc 0 0x1000000 ${fpga_image};" \ -+ " then echo Booting FPGA from ${fpga_image};" \ -+ " fpga info 0 && fpga loadb 0 0x1000000 $filesize;" \ -+ " else echo FPGA image ${fpga_image} was not found," \ -+ " skipping...; fi;\0" -+ - #endif /* __CONFIG_ZYNQ_ZED_H */ --- -2.4.3 - diff --git a/bsp/buildroot/board/beaglebone/genimage.cfg b/bsp/buildroot/board/beaglebone/genimage.cfg new file mode 100644 index 00000000..0c29a804 --- /dev/null +++ b/bsp/buildroot/board/beaglebone/genimage.cfg @@ -0,0 +1,30 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img", + "zImage", + "uEnv.txt", + "am335x-bone.dtb", + "am335x-boneblack.dtb" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/beaglebone/post-image.sh b/bsp/buildroot/board/beaglebone/post-image.sh index 7441d07a..ceeec685 100755 --- a/bsp/buildroot/board/beaglebone/post-image.sh +++ b/bsp/buildroot/board/beaglebone/post-image.sh @@ -2,5 +2,19 @@ # post-image.sh for BeagleBone # 2014, Marcin Jabrzyk +BOARD_DIR="$(dirname $0)" + # copy the uEnv.txt to the output/images directory cp board/beaglebone/uEnv.txt $BINARIES_DIR/uEnv.txt + +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/beaglebone/readme.txt b/bsp/buildroot/board/beaglebone/readme.txt index 089c49a8..664bde2a 100644 --- a/bsp/buildroot/board/beaglebone/readme.txt +++ b/bsp/buildroot/board/beaglebone/readme.txt @@ -28,35 +28,17 @@ After building, you should get a tree like this: ├── am335x-bone.dtb ├── MLO ├── rootfs.ext2 + ├── sdcard.img ├── u-boot.img ├── uEnv.txt └── zImage +How to write the microSD card +============================= -Prepare your SDCard -=================== +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. -You need to prepare first partition in fat32 and marked as bootable, -and second where you will write rootfs. +Copy the bootable "sdcard.img" onto an SD card with "dd": -Copy the files to boot partition - - $ cp MLO u-boot.img zImage uEnv.txt *.dtb /media/zzzzz - -where /media/zzzzz is the mount point. -Then you need to write the rootfs image onto SDCard: - - # dd if=rootfs.ext2 of=/dev/xxxxx - -where /dev/xxxxx is the second partition. Use: - - # fdisk -l - -to check for correct one. - -Finish -====== - -Unmount all mounted SDCard partitions and insert the card to BeagleBone. -Hold the "BOOT" button and apply power. Then release the "BOOT" button. -The output is available on the serial console. + $ sudo dd if=output/images/sdcard.img of=/dev/sdX diff --git a/bsp/buildroot/board/boundarydevices/nitrogen6x/6x_bootscript.txt b/bsp/buildroot/board/boundarydevices/common/6x_bootscript.txt similarity index 87% rename from bsp/buildroot/board/boundarydevices/nitrogen6x/6x_bootscript.txt rename to bsp/buildroot/board/boundarydevices/common/6x_bootscript.txt index 4a9be0b2..e8a08aa8 100644 --- a/bsp/buildroot/board/boundarydevices/nitrogen6x/6x_bootscript.txt +++ b/bsp/buildroot/board/boundarydevices/common/6x_bootscript.txt @@ -1,8 +1,19 @@ setenv bootargs '' -a_script=0x10800000 -a_zImage=0x10800000 -a_fdt=0x13000000 +if itest.s x6SX == "x${cpu}" || itest.s x7D == "x${cpu}"; then + a_script=0x80800000 + a_zImage=0x80800000 + a_fdt=0x83000000 + m4='' + if itest.s "x1" == "x$m4enabled" ; then + run m4boot; + m4='-m4'; + fi +else + a_script=0x10800000 + a_zImage=0x10800000 + a_fdt=0x13000000 +fi setenv initrd_high 0xffffffff if itest.s "x" == "x${dtbname}" ; then @@ -13,15 +24,9 @@ if itest.s "x" == "x${dtbname}" ; then elif itest.s x6QP == "x${cpu}" ; then dtbname=imx6qp-${board}.dtb; elif itest.s x6SX == "x${cpu}" ; then - if itest.s "x1" != "x$m4enabled" ; then - dtbname=imx6sx-${board}.dtb; - else - run m4boot; - dtbname=imx6sx-${board}-m4.dtb; - fi - a_script=0x80800000 - a_zImage=0x80800000 - a_fdt=0x83000000 + dtbname=imx6sx-${board}${m4}.dtb; + elif itest.s x7D == "x${cpu}" ; then + dtbname=imx7d-${board}${m4}.dtb; else dtbname=imx6q-${board}.dtb; fi @@ -47,10 +52,6 @@ else exit; fi -# first enable tfp410 -i2c dev 1 -i2c mw 38 8.1 bd - cmd_xxx_present= fdt resize if itest.s "x" != "x${cmd_custom}" ; then diff --git a/bsp/buildroot/board/boundarydevices/nitrogen6x/6x_upgrade.txt b/bsp/buildroot/board/boundarydevices/common/6x_upgrade.txt similarity index 95% rename from bsp/buildroot/board/boundarydevices/nitrogen6x/6x_upgrade.txt rename to bsp/buildroot/board/boundarydevices/common/6x_upgrade.txt index 9715f163..e012ff97 100644 --- a/bsp/buildroot/board/boundarydevices/nitrogen6x/6x_upgrade.txt +++ b/bsp/buildroot/board/boundarydevices/common/6x_upgrade.txt @@ -7,7 +7,7 @@ offset=0x400 a_uImage1=0x12000000 a_uImage2=0x12400000 -if itest.s x6SX == "x$cpu" ; then +if itest.s x6SX == "x${cpu}" || itest.s x7D == "x${cpu}"; then a_uImage1=0x82000000 a_uImage2=0x82400000 fi diff --git a/bsp/buildroot/board/boundarydevices/nitrogen6x/genimage.cfg b/bsp/buildroot/board/boundarydevices/common/genimage.cfg similarity index 100% rename from bsp/buildroot/board/boundarydevices/nitrogen6x/genimage.cfg rename to bsp/buildroot/board/boundarydevices/common/genimage.cfg diff --git a/bsp/buildroot/board/boundarydevices/nitrogen6x/post-build.sh b/bsp/buildroot/board/boundarydevices/common/post-build.sh similarity index 100% rename from bsp/buildroot/board/boundarydevices/nitrogen6x/post-build.sh rename to bsp/buildroot/board/boundarydevices/common/post-build.sh diff --git a/bsp/buildroot/board/boundarydevices/nitrogen6x/post-image.sh b/bsp/buildroot/board/boundarydevices/common/post-image.sh similarity index 100% rename from bsp/buildroot/board/boundarydevices/nitrogen6x/post-image.sh rename to bsp/buildroot/board/boundarydevices/common/post-image.sh diff --git a/bsp/buildroot/board/boundarydevices/common/readme.txt b/bsp/buildroot/board/boundarydevices/common/readme.txt new file mode 100644 index 00000000..0625deef --- /dev/null +++ b/bsp/buildroot/board/boundarydevices/common/readme.txt @@ -0,0 +1,30 @@ +Buildroot for Boundary Devices platforms: + +https://boundarydevices.com/product-category/popular-sbc-and-som-modules/ + +Here is the list of targeted platforms per defconfig: + +- nitrogen6x_defconfig + - BD-SL-i.MX6 (SABRE-Lite) + - Nitrogen6X + - Nitrogen6_Lite + - Nitrogen6_MAX + - Nitrogen6_VM + - Nitrogen6_SOM + - Nitrogen6_SOMv2 + +- nitrogen6sx_defconfig + - Nitrogen6_SoloX + +- nitrogen7_defconfig + - Nitrogen7 + +To install, simply copy the image to a uSD card: + +$ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Where 'sdX' is the device node of the uSD partition. + +To upgrade u-boot, cancel autoboot and type: + +> run upgradeu diff --git a/bsp/buildroot/board/boundarydevices/nitrogen6x/readme.txt b/bsp/buildroot/board/boundarydevices/nitrogen6x/readme.txt deleted file mode 100644 index 6c723f13..00000000 --- a/bsp/buildroot/board/boundarydevices/nitrogen6x/readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -Buildroot for Boundary Devices Nitrogen6X: - -http://boundarydevices.com/products/nitrogen6x-board-imx6-arm-cortex-a9-sbc/ - -To install, simply copy the image to a uSD card: - -sudo dd if=output/images/sdcard.img of=/dev/sdX - -Where 'sdX' is the device node of the uSD partition. - -To upgrade u-boot, cancel autoboot and type: - -run upgradeu diff --git a/bsp/buildroot/board/chromebook/snow/kernel.args b/bsp/buildroot/board/chromebook/snow/kernel.args new file mode 100644 index 00000000..1220bf84 --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/kernel.args @@ -0,0 +1 @@ +console=tty1 clk_ignore_unused root=/dev/mmcblk1p2 rootfstype=ext4 ro diff --git a/bsp/buildroot/board/chromebook/snow/kernel.its b/bsp/buildroot/board/chromebook/snow/kernel.its new file mode 100644 index 00000000..c8766ef9 --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/kernel.its @@ -0,0 +1,37 @@ +/dts-v1/; + +/ { + description = "Buildroot kernel for Chromebook Snow"; + images { + kernel@1 { + description = "kernel"; + data = /incbin/("zImage"); + type = "kernel_noload"; + arch = "arm"; + os = "linux"; + compression = "none"; + load = <0>; + entry = <0>; + hash@1 { + algo = "sha1"; + }; + }; + fdt@1{ + description = "exynos5250-snow.dtb"; + data = /incbin/("exynos5250-snow.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + }; + configurations { + default = "conf@1"; + conf@1{ + kernel = "kernel@1"; + fdt = "fdt@1"; + }; + }; +}; diff --git a/bsp/buildroot/board/chromebook/snow/linux-4.6-dts-tpm.patch b/bsp/buildroot/board/chromebook/snow/linux-4.6-dts-tpm.patch new file mode 100644 index 00000000..c71ff1b5 --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/linux-4.6-dts-tpm.patch @@ -0,0 +1,27 @@ +Some versions of u-boot for this Chromebook check for tpm node +in the device tree and fail badly (reboot) if it is not found. + +While not exactly correct, it is much easier to patch the mainline +device tree to match u-boot expectations than to fix u-boot on +this device. + +See https://code.google.com/p/chromium/issues/detail?id=220169 +and https://lkml.org/lkml/2013/3/4/242 + +Signed-off-by: Alex Suykov + +--- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi ++++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi +@@ -466,6 +466,11 @@ + status = "okay"; + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <66000>; ++ ++ tpm { ++ compatible = "infineon,slb9635tt"; ++ reg = <0x20>; ++ }; + }; + + &i2c_5 { + diff --git a/bsp/buildroot/board/chromebook/snow/linux-4.6.fragment b/bsp/buildroot/board/chromebook/snow/linux-4.6.fragment new file mode 100644 index 00000000..e2786dac --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/linux-4.6.fragment @@ -0,0 +1,2 @@ +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_SDIO=m diff --git a/bsp/buildroot/board/chromebook/snow/mksd.sh b/bsp/buildroot/board/chromebook/snow/mksd.sh new file mode 100755 index 00000000..b6302aa8 --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/mksd.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# This scripts makes a minimal bootable SD card image for the Chromebook. +# The resulting file is called bootsd.img. It should be written directly +# to the card: +# +# SD=/dev/mmcblk1 # check your device name! +# dd if=output/images/bootsd.img of=$SD +# +# The partitions are created just large enough to hold the kernel and +# the rootfs image. Most of the card will be empty, and the secondary +# GPT will not be in its proper location. + +# cgpt does not create protective MBR, and the kernel refuses to read +# GPT unless there's some kind of MBR in sector 0. So we need parted +# to write that single sector before doing anything with the GPT. +cgpt=$HOST_DIR/usr/bin/cgpt +parted=$HOST_DIR/usr/sbin/parted +kernel=$BINARIES_DIR/uImage.kpart +rootfs=$BINARIES_DIR/rootfs.ext2 + +run() { echo "$@"; "$@"; } +die() { echo "$@" >&2; exit 1; } +test -f $kernel || die "No kernel image found" +test -f $rootfs || die "No rootfs image found" +test -x $cgpt || die "cgpt not found (host-vboot-utils have not been built?)" + +# True file sizes in bytes +kernelsize=`stat -t $kernel | cut -d\ -f2` +rootfssize=`stat -t $rootfs | cut -d\ -f2` + +# The card is partitioned in sectors of 8KB. +# 4 sectors are reserved for MBR+GPT. Their actual size turns out +# to be 33 512-blocks which is just over 2 sectors, but we align +# it to a nice round number. +sec=8192 +kernelsec=$(((kernelsize+8191)>>13)) +rootfssec=$(((rootfssize+8191)>>13)) +headersec=4 + +# There is also a copy of MBR+GPT at the end of the image. +# It's going to be useless but both tools assume it's there. +imagesec=$((2*headersec+kernelsec+rootfssec)) +bootsd="$BINARIES_DIR/bootsd.img" +run dd bs=$sec count=$imagesec if=/dev/zero of=$bootsd + +# cgpt needs offsets and sizes in 512-blocks. +block=512 +kernelstart=$((headersec<<4)) +kernelblocks=$((kernelsec<<4)) +rootfsblocks=$((rootfssec<<4)) +rootfsstart=$((kernelstart+kernelblocks)) + +# This command initializes both GPT and MBR +run $parted -s $bootsd mklabel gpt + +# The kernel partition must be marked as bootable, that's why -S -T -P +run $cgpt add -i 1 -b $kernelstart -s $kernelblocks \ + -t kernel -l kernel \ + -S 1 -T 1 -P 10 $bootsd + +# It does not really matter where the rootfs partition is located as long +# as the kernel can find it. +# However, if anything is changed here, kernel.args must be updated as well. +run $cgpt add -i 2 -b $rootfsstart -s $rootfsblocks \ + -t data -l rootfs $bootsd + +run dd bs=$block if=$kernel of=$bootsd seek=$kernelstart +run dd bs=$block if=$rootfs of=$bootsd seek=$rootfsstart diff --git a/bsp/buildroot/board/chromebook/snow/readme.txt b/bsp/buildroot/board/chromebook/snow/readme.txt new file mode 100644 index 00000000..e012cb3f --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/readme.txt @@ -0,0 +1,137 @@ +Samsung XE303C12 aka Chromebook Snow +==================================== + +This file describes booting the Chromebook from an SD card containing +Buildroot kernel and rootfs, using the original bootloader. This is +the least invasive way to get Buildroot onto the devices and a good +starting point. + +The bootloader will only boot a kernel from a GPT partition marked +bootable with cgpt tool from vboot-utils package. +The kernel image must be signed using futility from the same package. +The signing part is done by sign.sh script in this directory. + +It does not really matter where rootfs is as long as the kernel is able +to find it, but this particular configuration assumes the kernel is on +partition 1 and rootfs is on partition 2 of the SD card. +Make sure to check kernel.args if you change this. + +Making the boot media +--------------------- +Start by configuring and building the images. + + make chromebook_snow_defconfig + make menuconfig # if necessary + make + +The important files are: + + uImage.kpart (kernel and device tree, signed) + rootfs.tar + bootsd.img (SD card image containing both kernel and rootfs) + +Write the image directly to some SD card. +WARNING: make sure there is nothing important on that card, +and double-check the device name! + + SD=/dev/mmcblk1 # may be /dev/sdX on some hosts + dd if=output/images/bootsd.img of=$SD + +Switching to developer mode and booting from SD +----------------------------------------------- +Power Chromebook down, then power it up while holding Esc+F3. +BEWARE: switching to developer mode deletes all user data. +Create backups if you need them. + +While in developer mode, Chromebook will boot into a white screen saying +"OS verification is off". + +Press Ctrl-D at this screen to boot Chromium OS from eMMC. +Press Ctrl-U at this screen to boot from SD (or USB) +Press Power to power it off. +Do NOT press Space unless you mean it. +This will switch it back to normal mode. + +The is no way to get rid of the white screen without re-flashing the bootloader. + +Troubleshooting +--------------- +Loud *BEEP* after pressing Ctrl-U means there's no valid partition to boot from. +Which in turn means either bad GPT or improperly signed kernel. + +Return to the OS verification screen without any sounds means the code managed +to reboot the board. May indicate properly signed but invalid image. + +Blank screen means the image is valid and properly signed but cannot boot +for some reason, like missing or incorrect DT. + +In case the board becomes unresponsive: + +* Press Esc+F3+Power. The board should reboot instantly. + Remove SD card to prevent it from attempting a system recovery. + +* Hold Power button for around 10s. The board should shut down into + its soft-off mode. Press Power button again or open the lid to turn in on. + +* If that does not work, disconnect the charger and push a hidden + button on the underside with a pin of some sort. The board should shut + down completely. Opening the lid and pressing Power button will not work. + To turn it back on, connect the charger. + +Partitioning SD card manually +----------------------------- +Check mksd.sh for partitioning commands. + +Use parted and cgpt on a real device, and calculate the partition +sizes properly. The kernel partition may be as small as 4MB, but +you will probably want the rootfs to occupy the whole remaining space. + +cgpt may be used to check current layout: + + output/host/usr/bin/cgpt show $SD + +All sizes and all offsets are in 512-byte blocks. + +Writing kernel and rootfs to a partitioned SD card +-------------------------------------------------- +Write .kpart directly to the bootable partition: + + dd if=output/images/uImage.kpart of=${SD}1 + +Make a new filesystem on the rootfs partition, and unpack rootfs.tar there: + + mkfs.ext4 ${SD}2 + mount ${SD2} /mnt/ + tar -xvf output/images/rootfs.tar -C /mnt/ + umount /mnt/ + +This will require root permissions even if you can write to $SD. + +Kernel command line +------------------- +The command line is taken from board/chromebook/snow/kernel.args and stored +in the vboot header (which also holds the signature). + +The original bootloader prepends "cros_secure console= " to the supplied +command line. The only way to suppress this is to enable CMDLINE_FORCE +in the kernel config, disabling external command line completely. + +That's not necessary however. The mainline kernel ignores cros_secure, +and supplying console=tty1 in kernel.args undoes the effect of console= + +Booting with console= suppresses all kernel output. +As a side effect, it makes /dev/console unusable, which the init in use must +be able to handle. + +WiFi card +--------- +Run modprobe mwifiex_sdio to load the driver. +The name of the device should be mlan0. + +Further reading +--------------- +https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/samsung-arm-chromebook +http://linux-exynos.org/wiki/Samsung_Chromebook_XE303C12/Installing_Linux +http://archlinuxarm.org/platforms/armv7/samsung/samsung-chromebook +http://www.de7ec7ed.com/2013/05/application-processor-ap-uart-samsung.html +http://www.de7ec7ed.com/2013/05/embedded-controller-ec-uart-samsung.html diff --git a/bsp/buildroot/board/chromebook/snow/sign.sh b/bsp/buildroot/board/chromebook/snow/sign.sh new file mode 100755 index 00000000..39005ed6 --- /dev/null +++ b/bsp/buildroot/board/chromebook/snow/sign.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# This script creates u-boot FIT image containing the kernel and the DT, +# then signs it using futility from vboot-utils. +# The resulting file is called uImage.kpart. + +BOARD_DIR=$(dirname $0) +mkimage=$HOST_DIR/usr/bin/mkimage +futility=$HOST_DIR/usr/bin/futility +devkeys=$HOST_DIR/usr/share/vboot/devkeys + +run() { echo "$@"; "$@"; } +die() { echo "$@" >&2; exit 1; } +test -f $BINARIES_DIR/zImage || \ + die "No kernel image found" +test -x $mkimage || \ + die "No mkimage found (host-uboot-tools has not been built?)" +test -x $futility || \ + die "No futility found (host-vboot-utils has not been built?)" + +# kernel.its references zImage and exynos5250-snow.dtb, and all three +# files must be in current directory for mkimage. +run cp $BOARD_DIR/kernel.its $BINARIES_DIR/kernel.its || exit 1 +echo "# entering $BINARIES_DIR for the next command" +(cd $BINARIES_DIR && run $mkimage -f kernel.its uImage.itb) || exit 1 + +# futility requires non-empty file to be supplied with --bootloader +# even if it does not make sense for the target platform. +echo > $BINARIES_DIR/dummy.txt + +run $futility vbutil_kernel \ + --keyblock $devkeys/kernel.keyblock \ + --signprivate $devkeys/kernel_data_key.vbprivk \ + --arch arm \ + --version 1 \ + --config $BOARD_DIR/kernel.args \ + --vmlinuz $BINARIES_DIR/uImage.itb \ + --bootloader $BINARIES_DIR/dummy.txt \ + --pack $BINARIES_DIR/uImage.kpart || exit 1 + +rm -f $BINARIES_DIR/kernel.its $BINARIES_DIR/dummy.txt diff --git a/bsp/buildroot/board/cubietech/cubieboard2/genimage.cfg b/bsp/buildroot/board/cubietech/cubieboard2/genimage.cfg index 8929a721..b082ab0d 100644 --- a/bsp/buildroot/board/cubietech/cubieboard2/genimage.cfg +++ b/bsp/buildroot/board/cubietech/cubieboard2/genimage.cfg @@ -20,6 +20,7 @@ image sdcard.img { in-partition-table = "no" image = "u-boot-sunxi-with-spl.bin" offset = 8192 + size = 1040384 # 1MB - 8192 } partition boot { diff --git a/bsp/buildroot/board/firefly/firefly-rk3288/extlinux.conf b/bsp/buildroot/board/firefly/firefly-rk3288/extlinux.conf new file mode 100644 index 00000000..39ac5b9d --- /dev/null +++ b/bsp/buildroot/board/firefly/firefly-rk3288/extlinux.conf @@ -0,0 +1,6 @@ +default firefly-rk3288 + +label firefly-rk3288 +kernel /boot/uImage +devicetree /boot/rk3288-firefly.dtb +append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait diff --git a/bsp/buildroot/board/firefly/firefly-rk3288/post-build.sh b/bsp/buildroot/board/firefly/firefly-rk3288/post-build.sh new file mode 100755 index 00000000..94e89ce6 --- /dev/null +++ b/bsp/buildroot/board/firefly/firefly-rk3288/post-build.sh @@ -0,0 +1,3 @@ +BOARD_DIR="$(dirname $0)" + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/bsp/buildroot/board/firefly/firefly-rk3288/post-image.sh b/bsp/buildroot/board/firefly/firefly-rk3288/post-image.sh new file mode 100755 index 00000000..1dd30a6e --- /dev/null +++ b/bsp/buildroot/board/firefly/firefly-rk3288/post-image.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +MKIMAGE=$HOST_DIR/usr/bin/mkimage + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/sd-image.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-spl-dtb.bin $BINARIES_DIR/u-boot-spl-dtb.img + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/firefly/firefly-rk3288/readme.txt b/bsp/buildroot/board/firefly/firefly-rk3288/readme.txt new file mode 100644 index 00000000..d6210857 --- /dev/null +++ b/bsp/buildroot/board/firefly/firefly-rk3288/readme.txt @@ -0,0 +1,40 @@ +Firefly RK3288 + +How to build it +=============== + + $ make firefly_rk3288_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Result of the build +------------------- + +After building, you should get a tree like this: + + output/images/ + ├── rk3288-firefly.dtb + ├── rootfs.ext2 + ├── rootfs.ext4 -> rootfs.ext2 + ├── sdcard.img + ├── u-boot-dtb.img + ├── u-boot-spl-dtb.bin + ├── u-boot-spl-dtb.img + └── uImage + +Prepare your SDCard +=================== + +Buildroot generates a ready-to-use SD card image that you can flash directly to +the card. The image will be in output/images/sdcard.img. +You can write this image directly to an SD card device (i.e. /dev/xxx): + + $ dd if=output/images/sdcard.img of=/dev/xxx + +Finally, you can insert the SD card to the Firefly RK3288 board and boot it. diff --git a/bsp/buildroot/board/firefly/firefly-rk3288/sd-image.cfg b/bsp/buildroot/board/firefly/firefly-rk3288/sd-image.cfg new file mode 100644 index 00000000..a9eb9f01 --- /dev/null +++ b/bsp/buildroot/board/firefly/firefly-rk3288/sd-image.cfg @@ -0,0 +1,22 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-spl-dtb { + in-partition-table = "no" + image = "u-boot-spl-dtb.img" + offset = 32K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 128K + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/freescale/imx25pdk/genimage.cfg b/bsp/buildroot/board/freescale/imx25pdk/genimage.cfg new file mode 100644 index 00000000..9386e329 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx25pdk/genimage.cfg @@ -0,0 +1,41 @@ +# Minimal SD card image for the Freescale's i.MX25 PDK board +# +# We mimic the .sdcard Freescale's image format for i.MX25: +# * the SD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx25-pdk.dtb", + "zImage" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/freescale/imx25pdk/post-image.sh b/bsp/buildroot/board/freescale/imx25pdk/post-image.sh new file mode 100755 index 00000000..b4ac4608 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx25pdk/post-image.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/freescale/imx25pdk/readme.txt b/bsp/buildroot/board/freescale/imx25pdk/readme.txt new file mode 100644 index 00000000..a154b995 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx25pdk/readme.txt @@ -0,0 +1,54 @@ +************************** +Freescale i.MX25 PDK board +************************** + +This file documents the Buildroot support for the Freescale i.MX25 PDK board. + +Build +===== + +First, configure Buildroot for the i.MX25 PDK board: + + make mx25pdk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx25-pdk.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/imx25pdk/genimage.cfg. + +Boot the i.MX25 PDK board +========================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- put a USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/bsp/buildroot/board/freescale/imx51evk/genimage.cfg b/bsp/buildroot/board/freescale/imx51evk/genimage.cfg new file mode 100644 index 00000000..a44ed300 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx51evk/genimage.cfg @@ -0,0 +1,41 @@ +# Minimal SD card image for the Freescale's i.MX51 EVK board +# +# We mimic the .sdcard Freescale's image format for i.MX51: +# * the microSD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx51-babbage.dtb", + "zImage" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/freescale/imx51evk/post-image.sh b/bsp/buildroot/board/freescale/imx51evk/post-image.sh new file mode 100755 index 00000000..b4ac4608 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx51evk/post-image.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/freescale/imx51evk/readme.txt b/bsp/buildroot/board/freescale/imx51evk/readme.txt new file mode 100644 index 00000000..6639a920 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx51evk/readme.txt @@ -0,0 +1,54 @@ +************************** +Freescale i.MX51 EVK board +************************** + +This file documents the Buildroot support for the Freescale i.MX51 EVK board. + +Build +===== + +First, configure Buildroot for the i.MX51 EVK board: + + make mx51evk_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx51-babbage.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/imx51evk/genimage.cfg. + +Boot the i.MX51 EVK board +========================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/bsp/buildroot/board/freescale/imx53loco/create-boot-sd.sh b/bsp/buildroot/board/freescale/imx53loco/create-boot-sd.sh deleted file mode 120000 index d45d639b..00000000 --- a/bsp/buildroot/board/freescale/imx53loco/create-boot-sd.sh +++ /dev/null @@ -1 +0,0 @@ -../create-boot-sd.sh \ No newline at end of file diff --git a/bsp/buildroot/board/freescale/imx53loco/genimage.cfg b/bsp/buildroot/board/freescale/imx53loco/genimage.cfg new file mode 100644 index 00000000..b56c1687 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx53loco/genimage.cfg @@ -0,0 +1,42 @@ +# Minimal microSD card image for the Freescale's i.MX53 QSB board +# +# We mimic the .sdcard Freescale's image format for i.MX53: +# * the microSD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx53-qsb.dtb", + "imx53-qsrb.dtb", + "zImage" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/freescale/imx53loco/post-image.sh b/bsp/buildroot/board/freescale/imx53loco/post-image.sh new file mode 100755 index 00000000..b4ac4608 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx53loco/post-image.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/freescale/imx6ulevk/genimage.cfg b/bsp/buildroot/board/freescale/imx6ulevk/genimage.cfg index 36ede1c3..b58193ae 100644 --- a/bsp/buildroot/board/freescale/imx6ulevk/genimage.cfg +++ b/bsp/buildroot/board/freescale/imx6ulevk/genimage.cfg @@ -4,7 +4,7 @@ # * the microSD card must have 1 kB free space at the beginning, # * U-Boot is dumped as is, # * a FAT partition at offset 8 MB is containing zImage and dtbs, -# * a single root filesystem partition is required (Ext2 in this case). +# * a single root filesystem partition is required (Ext4 in this case). # image boot.vfat { @@ -36,6 +36,6 @@ image sdcard.img { partition rootfs { partition-type = 0x83 - image = "rootfs.ext2" + image = "rootfs.ext4" } } diff --git a/bsp/buildroot/board/freescale/imx6ulevk/post-image.sh b/bsp/buildroot/board/freescale/imx6ulevk/post-image.sh index cb75a47d..b4ac4608 100755 --- a/bsp/buildroot/board/freescale/imx6ulevk/post-image.sh +++ b/bsp/buildroot/board/freescale/imx6ulevk/post-image.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -GENIMAGE_CFG="board/freescale/imx6ulevk/genimage.cfg" +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" rm -rf "${GENIMAGE_TMP}" @@ -11,5 +12,3 @@ genimage \ --inputpath "${BINARIES_DIR}" \ --outputpath "${BINARIES_DIR}" \ --config "${GENIMAGE_CFG}" - -exit $? diff --git a/bsp/buildroot/board/freescale/imx6ulevk/readme.txt b/bsp/buildroot/board/freescale/imx6ulevk/readme.txt index b8243dc4..462715c1 100644 --- a/bsp/buildroot/board/freescale/imx6ulevk/readme.txt +++ b/bsp/buildroot/board/freescale/imx6ulevk/readme.txt @@ -20,7 +20,7 @@ Build all components: You will find in ./output/images/ the following files: - imx6ul-14x14-evk.dtb - - rootfs.ext2 + - rootfs.ext4 - rootfs.tar - sdcard.img - u-boot.imx diff --git a/bsp/buildroot/board/freescale/imx7dsdb/genimage.cfg b/bsp/buildroot/board/freescale/imx7dsdb/genimage.cfg new file mode 100644 index 00000000..aa6ae9e2 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx7dsdb/genimage.cfg @@ -0,0 +1,41 @@ +# Minimal microSD card image for the Freescale's i.MX7D SDB board +# +# We mimic the .sdcard Freescale's image format for i.MX7D: +# * the microSD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx7d-sdb.dtb", + "zImage" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/freescale/imx7dsdb/post-image.sh b/bsp/buildroot/board/freescale/imx7dsdb/post-image.sh new file mode 100755 index 00000000..b4ac4608 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx7dsdb/post-image.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/freescale/imx7dsdb/readme.txt b/bsp/buildroot/board/freescale/imx7dsdb/readme.txt new file mode 100644 index 00000000..c72e9a97 --- /dev/null +++ b/bsp/buildroot/board/freescale/imx7dsdb/readme.txt @@ -0,0 +1,54 @@ +*************************** +Freescale i.MX7D SDB board +*************************** + +This file documents the Buildroot support for the Freescale i.MX7D SDB board. + +Build +===== + +First, configure Buildroot for your i.MX7D SDB board: + + make freescale_imx7dsabresd_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx7d-sdb.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +To determine the device associated to the SD card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on a SD card. Launch the following +command as root: + + dd if=./output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/freescale/imx7dsdb/genimage.cfg. + +Boot the i.MX7D SDB board +========================= + +To boot your newly created system: +- insert the SD card in the SD slot of the board; +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Enjoy! diff --git a/bsp/buildroot/board/freescale/mpc8315erdb/linux-4.2.config b/bsp/buildroot/board/freescale/mpc8315erdb/linux-4.5.config similarity index 100% rename from bsp/buildroot/board/freescale/mpc8315erdb/linux-4.2.config rename to bsp/buildroot/board/freescale/mpc8315erdb/linux-4.5.config diff --git a/bsp/buildroot/board/freescale/warpboard/README b/bsp/buildroot/board/freescale/warpboard/README index d826b2d5..55d51f87 100644 --- a/bsp/buildroot/board/freescale/warpboard/README +++ b/bsp/buildroot/board/freescale/warpboard/README @@ -9,7 +9,9 @@ Build all components: You will find in ./output/images/ the following files: - imx6sl-warp.dtb + - rootfs.ext4 - rootfs.tar + - sdcard.img - u-boot.imx - zImage @@ -29,7 +31,7 @@ Update uboot => env default -f -a => saveenv -- Run the DFU toocommand in U-Boot: +- Run the DFU command in U-Boot: => dfu 0 mmc 0 - Transfer U-Boot into flash by running this command in host side: @@ -42,14 +44,16 @@ Update uboot Update linux & rootfs ===================== -Run the 'ums' command from the u6Boot prompt to mount the eMMC as mass -storage and update zImage, device tree (imx6sl-warp.dtb) and rootfs -file (rootfs.tar) : +Run the 'ums' command from the U-Boot prompt to mount the eMMC as USB mass +storage: => ums 0 mmc 0 -Put the zImage and DTB files in the warp-vfat partition and extract as -root the rootfs.tar tarball in the warp-rootfs partition. +And then flash the sdcard.img into the eMMC: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the eMMC content. Use it with care! *** Using bluetooth ================ @@ -62,4 +66,12 @@ $ hciconfig hci0 up Using Wifi ========== -$ ifconfig wlan0 up +# modprobe brcmfmac +# iwconfig wlan0 essid ACCESSPOINTNAME +# wpa_passphrase ACCESSPOINTNAME > /etc/wpa.conf +(enter the wifi password and press enter) +# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa.conf & +# udhcpc -i wlan0 +# ping buildroot.org + +Enjoy! diff --git a/bsp/buildroot/board/freescale/warpboard/genimage.cfg b/bsp/buildroot/board/freescale/warpboard/genimage.cfg new file mode 100644 index 00000000..a22aa2a0 --- /dev/null +++ b/bsp/buildroot/board/freescale/warpboard/genimage.cfg @@ -0,0 +1,41 @@ +# Minimal SD card image for the Warp board +# +# We mimic the .sdcard Freescale's image format for i.MX6SL: +# * the microSD card must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx6sl-warp.dtb", + "zImage" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/freescale/warpboard/linux.fragment b/bsp/buildroot/board/freescale/warpboard/linux.fragment new file mode 100644 index 00000000..892d0cb7 --- /dev/null +++ b/bsp/buildroot/board/freescale/warpboard/linux.fragment @@ -0,0 +1 @@ +CONFIG_CFG80211_WEXT=y diff --git a/bsp/buildroot/board/freescale/warpboard/patches/linux/0001-hciuart-h4.patch b/bsp/buildroot/board/freescale/warpboard/patches/linux/0001-hciuart-h4.patch deleted file mode 100644 index f47541b7..00000000 --- a/bsp/buildroot/board/freescale/warpboard/patches/linux/0001-hciuart-h4.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f6878a437a5ba157fd087ef5e1874bdce5eca199 Mon Sep 17 00:00:00 2001 -From: Fabio Estevam -Date: Mon, 22 Jun 2015 16:37:34 -0300 -Subject: [PATCH] ARM: imx_v6_v7_defconfig: Select HCIUART_H4 - -The old warp board revision had hardware issues that prevented -the RTS/CTS lines to work with the Bluetooth module. - -Tha latest rev1.12 fixes this problem, so now we should better use -CONFIG_BT_HCIUART_H4 instead, as it provides a better throughput than -the CONFIG_BT_HCIUART_3WIRE option. - -Suggested-by: Arthur Lambert -Signed-off-by: Fabio Estevam ---- - arch/arm/configs/imx_v6_v7_defconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig -index f6989fb..c864295 100644 ---- a/arch/arm/configs/imx_v6_v7_defconfig -+++ b/arch/arm/configs/imx_v6_v7_defconfig -@@ -73,7 +73,7 @@ CONFIG_CAN=y - CONFIG_CAN_FLEXCAN=y - CONFIG_BT=y - CONFIG_BT_HCIUART=y --CONFIG_BT_HCIUART_3WIRE=y -+CONFIG_BT_HCIUART_H4=y - CONFIG_CFG80211=y - CONFIG_CFG80211_WEXT=y - CONFIG_MAC80211=y --- -1.9.1 - diff --git a/bsp/buildroot/board/freescale/warpboard/patches/linux/0002-replace-uart2-by-uart5.patch b/bsp/buildroot/board/freescale/warpboard/patches/linux/0002-replace-uart2-by-uart5.patch deleted file mode 100644 index d742c248..00000000 --- a/bsp/buildroot/board/freescale/warpboard/patches/linux/0002-replace-uart2-by-uart5.patch +++ /dev/null @@ -1,103 +0,0 @@ -From: Fabio Estevam -Date: Fri, 29 May 2015 16:19:39 -0300 -Subject: [PATCH] ARM: dts: imx6sl-warp: Add changes for rev1.12 - -Signed-off-by: Fabio Estevam ---- - arch/arm/boot/dts/imx6sl-warp.dts | 32 +++++++++++++++++++------------- - 1 file changed, 19 insertions(+), 13 deletions(-) - -diff --git a/arch/arm/boot/dts/imx6sl-warp.dts b/arch/arm/boot/dts/imx6sl-warp.dts -index 0da906b..bdfa82b 100644 ---- a/arch/arm/boot/dts/imx6sl-warp.dts -+++ b/arch/arm/boot/dts/imx6sl-warp.dts -@@ -61,7 +61,9 @@ - usdhc3_pwrseq: usdhc3_pwrseq { - compatible = "mmc-pwrseq-simple"; - reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ -+ <&gpio4 7 GPIO_ACTIVE_LOW>, /* WL_HOSTWAKE */ - <&gpio3 25 GPIO_ACTIVE_LOW>, /* BT_REG_ON */ -+ <&gpio3 27 GPIO_ACTIVE_LOW>, /* BT_HOSTWAKE */ - <&gpio4 4 GPIO_ACTIVE_LOW>, /* BT_WAKE */ - <&gpio4 6 GPIO_ACTIVE_LOW>; /* BT_RST_N */ - }; -@@ -73,16 +75,16 @@ - status = "okay"; - }; - --&uart2 { -+&uart3 { - pinctrl-names = "default"; -- pinctrl-0 = <&pinctrl_uart2>; -- fsl,uart-has-rtscts; -+ pinctrl-0 = <&pinctrl_uart3>; - status = "okay"; - }; - --&uart3 { -+&uart5 { - pinctrl-names = "default"; -- pinctrl-0 = <&pinctrl_uart3>; -+ pinctrl-0 = <&pinctrl_uart5>; -+ fsl,uart-has-rtscts; - status = "okay"; - }; - -@@ -130,14 +132,6 @@ - >; - }; - -- pinctrl_uart2: uart2grp { -- fsl,pins = < -- MX6SL_PAD_EPDC_D12__UART2_RX_DATA 0x41b0b1 -- MX6SL_PAD_EPDC_D13__UART2_TX_DATA 0x41b0b1 -- MX6SL_PAD_EPDC_D14__UART2_RTS_B 0x4130B1 -- MX6SL_PAD_EPDC_D15__UART2_CTS_B 0x4130B1 -- >; -- }; - - pinctrl_uart3: uart3grp { - fsl,pins = < -@@ -146,6 +140,15 @@ - >; - }; - -+ pinctrl_uart5: uart5grp { -+ fsl,pins = < -+ MX6SL_PAD_ECSPI1_SCLK__UART5_RX_DATA 0x41b0b1 -+ MX6SL_PAD_ECSPI1_MOSI__UART5_TX_DATA 0x41b0b1 -+ MX6SL_PAD_ECSPI1_MISO__UART5_RTS_B 0x4130b1 -+ MX6SL_PAD_ECSPI1_SS0__UART5_CTS_B 0x4130b1 -+ >; -+ }; -+ - pinctrl_usdhc2: usdhc2grp { - fsl,pins = < - MX6SL_PAD_SD2_CMD__SD2_CMD 0x417059 -@@ -158,6 +161,7 @@ - MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x417059 - MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x417059 - MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x417059 -+ MX6SL_PAD_SD2_RST__SD2_RESET 0x417059 - >; - }; - -@@ -173,6 +177,7 @@ - MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x4170b9 - MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x4170b9 - MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x4170b9 -+ MX6SL_PAD_SD2_RST__SD2_RESET 0x4170b9 - >; - }; - -@@ -188,6 +193,7 @@ - MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x4170f9 - MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x4170f9 - MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x4170f9 -+ MX6SL_PAD_SD2_RST__SD2_RESET 0x4170f9 - >; - }; - --- -1.9.1 - diff --git a/bsp/buildroot/board/freescale/warpboard/post-image.sh b/bsp/buildroot/board/freescale/warpboard/post-image.sh new file mode 100755 index 00000000..b4ac4608 --- /dev/null +++ b/bsp/buildroot/board/freescale/warpboard/post-image.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/gdb/bfin-bf512/linux-4.6.config b/bsp/buildroot/board/gdb/bfin-bf512/linux-4.6.config new file mode 100644 index 00000000..bc2a907b --- /dev/null +++ b/bsp/buildroot/board/gdb/bfin-bf512/linux-4.6.config @@ -0,0 +1,87 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SYSVIPC=y +CONFIG_BLK_DEV_INITRD=y +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_UID16 is not set +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_KALLSYMS is not set +# CONFIG_BUG is not set +# CONFIG_BASE_FULL is not set +# CONFIG_ADVISE_SYSCALLS is not set +# CONFIG_MEMBARRIER is not set +CONFIG_EMBEDDED=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_MODULES=y +# CONFIG_BLOCK is not set +CONFIG_BF512=y +# CONFIG_SET_GENERIC_CLOCKEVENTS is not set +# CONFIG_I_ENTRY_L1 is not set +# CONFIG_EXCPT_IRQ_SYSC_L1 is not set +# CONFIG_DO_IRQ_L1 is not set +# CONFIG_CORE_TIMER_IRQ_L1 is not set +# CONFIG_IDLE_L1 is not set +# CONFIG_SCHEDULE_L1 is not set +# CONFIG_ARITHMETIC_OPS_L1 is not set +# CONFIG_ACCESS_OK_L1 is not set +# CONFIG_MEMSET_L1 is not set +# CONFIG_MEMCPY_L1 is not set +# CONFIG_STRCMP_L1 is not set +# CONFIG_STRNCMP_L1 is not set +# CONFIG_STRCPY_L1 is not set +# CONFIG_STRNCPY_L1 is not set +# CONFIG_SYS_BFIN_SPINLOCK_L1 is not set +# CONFIG_CACHELINE_ALIGNED_L1 is not set +# CONFIG_DCACHE_FLUSH_L1 is not set +# CONFIG_APP_STACK_L1 is not set +# CONFIG_BFIN_INS_LOWOVERHEAD is not set +# CONFIG_BFIN_ICACHE is not set +# CONFIG_BFIN_DCACHE is not set +# CONFIG_C_AMCKEN is not set +CONFIG_BINFMT_ELF_FDPIC=y +CONFIG_BINFMT_FLAT=y +# CONFIG_COREDUMP is not set +# CONFIG_SUSPEND is not set +# CONFIG_UEVENT_HELPER is not set +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +# CONFIG_INPUT is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_BFIN=y +CONFIG_SERIAL_BFIN_CONSOLE=y +CONFIG_SERIAL_BFIN_UART0=y +CONFIG_SERIAL_BFIN_UART1=y +# CONFIG_BFIN_OTP is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_HWMON is not set +# CONFIG_USB_SUPPORT is not set +# CONFIG_MANDATORY_FILE_LOCKING is not set +# CONFIG_DNOTIFY is not set +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_PRINTK_TIME=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_FTRACE is not set +# CONFIG_DEBUG_VERBOSE is not set +# CONFIG_DEBUG_HUNT_FOR_ZERO is not set +# CONFIG_DEBUG_BFIN_HWTRACE_ON is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_ACCESS_CHECK is not set +# CONFIG_CRC32 is not set diff --git a/bsp/buildroot/board/gdb/bfin-bf512/readme.txt b/bsp/buildroot/board/gdb/bfin-bf512/readme.txt new file mode 100644 index 00000000..a56b5bcf --- /dev/null +++ b/bsp/buildroot/board/gdb/bfin-bf512/readme.txt @@ -0,0 +1,11 @@ +Run the simulation with GDB for FDPIC: + + ./output/host/usr/bin/bfin-buildroot-linux-uclibc-run --env operating --model bf512 output/images/vmlinux + +Run the simulation with GDB for FLAT: + + ./output/host/usr/bin/bfin-buildroot-uclinux-uclibc-run --env operating --model bf512 output/images/vmlinux + +The login prompt will appear in the terminal that started GDB. + +Tested with GDB 7.9 diff --git a/bsp/buildroot/board/gdb/post-build.sh b/bsp/buildroot/board/gdb/post-build.sh new file mode 100755 index 00000000..8933d504 --- /dev/null +++ b/bsp/buildroot/board/gdb/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# no simulated network devices at the moment +rm -f ${TARGET_DIR}/etc/init.d/S40network +rm -rf ${TARGET_DIR}/etc/network/ diff --git a/bsp/buildroot/board/hardkernel/odroidc2/boot.ini b/bsp/buildroot/board/hardkernel/odroidc2/boot.ini new file mode 100644 index 00000000..203a42a0 --- /dev/null +++ b/bsp/buildroot/board/hardkernel/odroidc2/boot.ini @@ -0,0 +1,50 @@ +ODROIDC2-UBOOT-CONFIG + +# HDMI mode +setenv m "1080p60hz" # Progressive 60Hz + +# HDMI BPP Mode +setenv m_bpp "32" + +# HDMI HotPlug Detection control +# Allows you to force HDMI thinking that the cable is connected. +# true = HDMI will believe that cable is always connected +# false = will let board/monitor negotiate the connection status +setenv hpd "true" + +# Default Console Device Setting +setenv condev "console=ttyS0,115200n8 console=tty0" # on both + +# Meson Timer +# 1 - Meson Timer +# 0 - Arch Timer +# Using meson_timer improves the video playback whoever it breaks KVM (virtualization). +# Using arch timer allows KVM/Virtualization to work however you'll experience poor video +setenv mesontimer "1" + +# Server Mode (aka. No Graphics) +# Setting nographics to 1 will disable all video subsystem +# This mode is ideal of server type usage. (Saves ~300Mb of RAM) +setenv nographics "0" + +########################################### + +# Boot Arguments +setenv bootargs "root=/dev/mmcblk0p2 rootwait ro ${condev} no_console_suspend hdmimode=${m} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd}" + +# Load Images +setenv loadaddr "0x11000000" +setenv dtb_loadaddr "0x10000000" +fatload mmc 0:1 ${loadaddr} Image +fatload mmc 0:1 ${dtb_loadaddr} meson64_odroidc2.dtb + +if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/cpu@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@3/timer; fi +if test "${mesontimer}" = "1"; then fdt rm /timer; fi + +if test "${nographics}" = "1"; then fdt rm /reserved-memory; fdt rm /aocec; fi +if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx; fdt rm /picdec; fdt rm /ppmgr; fi +if test "${nographics}" = "1"; then fdt rm /meson-vout; fdt rm /mesonstream; fdt rm /meson-fb; fi +if test "${nographics}" = "1"; then fdt rm /deinterlace; fdt rm /codec_mm; fi + +# Booting +booti ${loadaddr} - ${dtb_loadaddr} diff --git a/bsp/buildroot/board/hardkernel/odroidc2/genimage.cfg b/bsp/buildroot/board/hardkernel/odroidc2/genimage.cfg new file mode 100644 index 00000000..15f97d44 --- /dev/null +++ b/bsp/buildroot/board/hardkernel/odroidc2/genimage.cfg @@ -0,0 +1,27 @@ +image boot.vfat { + vfat { + files = { + "boot.ini", + "Image", + "meson64_odroidc2.dtb" + } + } + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition vfat { + partition-type = 0xC + image = "boot.vfat" + offset = 1048576 + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/hardkernel/odroidc2/post-image.sh b/bsp/buildroot/board/hardkernel/odroidc2/post-image.sh new file mode 100755 index 00000000..aaf12c1e --- /dev/null +++ b/bsp/buildroot/board/hardkernel/odroidc2/post-image.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/ + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +dd if=${BINARIES_DIR}/u-boot.bin of=${BINARIES_DIR}/sdcard.img bs=1 count=442 conv=sync,notrunc +dd if=${BINARIES_DIR}/u-boot.bin of=${BINARIES_DIR}/sdcard.img bs=512 skip=1 seek=1 conv=fsync,notrunc diff --git a/bsp/buildroot/board/hardkernel/odroidc2/readme.txt b/bsp/buildroot/board/hardkernel/odroidc2/readme.txt new file mode 100644 index 00000000..b44aa67f --- /dev/null +++ b/bsp/buildroot/board/hardkernel/odroidc2/readme.txt @@ -0,0 +1,53 @@ +ODROID-C2 + +Intro +===== +To be able to use ODROID-C2 board with the images generated by +Buildroot, you have to prepare the SDCard or eMMC. + +How to build it +=============== + + $ make odroidc2_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Note: you will need to have access to the network, since Buildroot will +download the packages' sources. + +Result of the build +------------------- + +After building, you should obtain this tree: + + output/images/ + +-- Image + +-- boot.ini [1] + +-- boot.vfat + +-- meson64_odroidc2.dtb + +-- rootfs.ext2 + +-- rootfs.ext4 + +-- rootfs.tar + +-- sdcard.img + `-- u-boot.bin + +[1] This is the ODROID-C2 configuration file used in u-boot. + +How to write the SD card or eMMC +================================ + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card or eMMC with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Insert the SDcard into your ODROID-C2, and power it up. Your new system +should come up now. diff --git a/bsp/buildroot/board/linksprite/pcduino/boot.cmd b/bsp/buildroot/board/linksprite/pcduino/boot.cmd new file mode 100644 index 00000000..0db83635 --- /dev/null +++ b/bsp/buildroot/board/linksprite/pcduino/boot.cmd @@ -0,0 +1,8 @@ +setenv fdt_high ffffffff + +setenv bootargs console=ttyS0,115200 console=tty1 earlyprintk root=/dev/mmcblk0p2 rootwait panic=10 ${extra} + +fatload mmc 0 $kernel_addr_r zImage +fatload mmc 0 $fdt_addr_r sun4i-a10-pcduino.dtb + +bootz $kernel_addr_r - $fdt_addr_r diff --git a/bsp/buildroot/board/linksprite/pcduino/genimage.cfg b/bsp/buildroot/board/linksprite/pcduino/genimage.cfg new file mode 100644 index 00000000..9cbc383d --- /dev/null +++ b/bsp/buildroot/board/linksprite/pcduino/genimage.cfg @@ -0,0 +1,42 @@ +# +# Minimal SD card image for the pcDuino +# + +image boot.vfat { + vfat { + files = { + "zImage", + "sun4i-a10-pcduino.dtb", + "boot.scr" + } + } + size = 16M +} + +# +# Note: u-boot environment is stored between u-boot and boot partitions +# + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8192 + size = 1040384 # 1MB - 8192 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 1M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/linksprite/pcduino/linux-extras.config b/bsp/buildroot/board/linksprite/pcduino/linux-extras.config new file mode 100644 index 00000000..670f83fa --- /dev/null +++ b/bsp/buildroot/board/linksprite/pcduino/linux-extras.config @@ -0,0 +1,16 @@ +# spidev +CONFIG_SPI_SPIDEV=y + +# wireless core +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m + +# wireless drivers +CONFIG_WLAN=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_USB=m +CONFIG_RTLWIFI_DEBUG=y +CONFIG_RTL8192C_COMMON=m diff --git a/bsp/buildroot/board/linksprite/pcduino/post-build.sh b/bsp/buildroot/board/linksprite/pcduino/post-build.sh new file mode 100755 index 00000000..268c1071 --- /dev/null +++ b/bsp/buildroot/board/linksprite/pcduino/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# post-build.sh for pcDuino taken from OrangePi post-build.sh +# 2013, Carlo Caione + +BOARD_DIR="$(dirname $0)" +MKIMAGE=$HOST_DIR/usr/bin/mkimage +BOOT_CMD=$BOARD_DIR/boot.cmd +BOOT_CMD_H=$BINARIES_DIR/boot.scr + +# U-Boot script +$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H diff --git a/bsp/buildroot/board/linksprite/pcduino/post-image.sh b/bsp/buildroot/board/linksprite/pcduino/post-image.sh new file mode 100755 index 00000000..c82b189f --- /dev/null +++ b/bsp/buildroot/board/linksprite/pcduino/post-image.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/linksprite/pcduino/readme.txt b/bsp/buildroot/board/linksprite/pcduino/readme.txt new file mode 100644 index 00000000..08f380fb --- /dev/null +++ b/bsp/buildroot/board/linksprite/pcduino/readme.txt @@ -0,0 +1,42 @@ +pcDuino v1 boards (http://www.linksprite.com/linksprite-pcduino) + +Intro +===== + +This default configuration will allow you to start experimenting +with the buildroot environment for the LinkSprite pcDuino v1 board +including its flavors pcDuino-Lite and pcDuino-Lite-WiFi. With the +current configuration it will bring-up the board and allow access +through the serial console as well as ethernet and wireless +network interfaces. + +How to build it +=============== + +Configure Buildroot: + + $ make linksprite_pcduino_defconfig + +Modify configuration if needed, e.g. add more packages to target: + + $ make menuconfig + +Compile everything and build the SD card image: + + $ make + +How to write the SD card +======================== + +Once the build process is finished you will have an image +called "sdcard.img" in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +How to boot new image +===================== + +Insert SD card and reset the board. By default pcDuino board +boots from SD card. diff --git a/bsp/buildroot/board/minnowboard-max/post-build.sh b/bsp/buildroot/board/minnowboard-max/post-build.sh deleted file mode 100755 index 9f86d390..00000000 --- a/bsp/buildroot/board/minnowboard-max/post-build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -cp board/minnowboard-max/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg diff --git a/bsp/buildroot/board/minnowboard-max/readme.txt b/bsp/buildroot/board/minnowboard-max/readme.txt deleted file mode 100644 index 5f52369b..00000000 --- a/bsp/buildroot/board/minnowboard-max/readme.txt +++ /dev/null @@ -1,40 +0,0 @@ -Prepare the SD card for the Minnow Board MAX -============================================ - - 1. Partition the SD card with a GPT partition table - - sudo cgdisk /dev/mmcblk0 - - Create two partitions: - - a) First partition of a few dozens of megabytes, which will be - used to store the bootloader and the kernel image. Type must - be EF00 (EFI partition). - - b) Second partition of any size, which will be used to store the - root filesystem. Type must be 8300 (Linux filesystem) - - 2. Prepare the boot partition - - We will format it, mount it, copy the EFI data generated by - Buildroot, and the kernel image. - - sudo mkfs.vfat -F 32 -n boot /dev/mmcblk0p1 - sudo mount /dev/mmcblk0p1 /mnt - sudo cp -a output/images/efi-part/* /mnt/ - sudo cp output/images/bzImage /mnt/ - sudo umount /mnt - - 3. Prepare the root partition - - We will format it, mount it, and extract the root filesystem. - - sudo mkfs.ext4 -L root /dev/mmcblk0p2 - sudo mount /dev/mmcblk0p2 /mnt - sudo tar -C /mnt -xf output/images/rootfs.tar - sudo umount /mnt - - 4. Enjoy - -Additional information about this board can be found at -http://www.minnowboard.org/ or http://wiki.minnowboard.org/MinnowBoard_MAX diff --git a/bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/X11/Xsession b/bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/X11/Xsession new file mode 100755 index 00000000..d8862f17 --- /dev/null +++ b/bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/X11/Xsession @@ -0,0 +1,7 @@ +# Start a terminal on the top left corner +xterm -geom 80x30+0+0 & + +# OpenGL demo +glmark2 & + +exec /usr/bin/openbox-session diff --git a/bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/asound.conf b/bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/asound.conf new file mode 100644 index 00000000..b75b2383 --- /dev/null +++ b/bsp/buildroot/board/minnowboard/fs-overlay-graphical/etc/asound.conf @@ -0,0 +1,4 @@ +# Customize ALSA: +# the HDMI PCM is at card=0, device=3 (i.e. hw:0,3) +defaults.pcm.card 0 +defaults.pcm.device 3 diff --git a/bsp/buildroot/board/minnowboard/genimage.cfg b/bsp/buildroot/board/minnowboard/genimage.cfg new file mode 100644 index 00000000..6cf78743 --- /dev/null +++ b/bsp/buildroot/board/minnowboard/genimage.cfg @@ -0,0 +1,34 @@ +# Create an image of the efi partition +image efi-part.vfat { + vfat { + file startup.nsh { + image = "efi-part/startup.nsh" + } + file EFI { + image = "efi-part/EFI" + } + file bzImage { + image = "bzImage" + } + } + size=10M +} + +# Create the sdcard image, pulling in +# * the image created by buildroot +# * the efi-partition created above +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xEF + image = "efi-part.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/minnowboard-max/grub.cfg b/bsp/buildroot/board/minnowboard/grub-minnowboard-max.cfg similarity index 53% rename from bsp/buildroot/board/minnowboard-max/grub.cfg rename to bsp/buildroot/board/minnowboard/grub-minnowboard-max.cfg index f38db8f6..3d6feb70 100644 --- a/bsp/buildroot/board/minnowboard-max/grub.cfg +++ b/bsp/buildroot/board/minnowboard/grub-minnowboard-max.cfg @@ -2,5 +2,5 @@ set default="0" set timeout="5" menuentry "Buildroot" { - linux /bzImage root=/dev/mmcblk0p2 rootwait console=tty0 console=ttyS0,115200 + linux /bzImage root=/dev/mmcblk2p2 rootwait console=tty0 console=ttyS0,115200 } diff --git a/bsp/buildroot/board/minnowboard/grub.cfg b/bsp/buildroot/board/minnowboard/grub-minnowboard.cfg similarity index 100% rename from bsp/buildroot/board/minnowboard/grub.cfg rename to bsp/buildroot/board/minnowboard/grub-minnowboard.cfg diff --git a/bsp/buildroot/board/minnowboard-max/linux.config b/bsp/buildroot/board/minnowboard/linux-4.6.config similarity index 78% rename from bsp/buildroot/board/minnowboard-max/linux.config rename to bsp/buildroot/board/minnowboard/linux-4.6.config index abb7fdce..3bc1ffdf 100644 --- a/bsp/buildroot/board/minnowboard-max/linux.config +++ b/bsp/buildroot/board/minnowboard/linux-4.6.config @@ -1,3 +1,4 @@ +CONFIG_SYSVIPC=y CONFIG_NO_HZ=y CONFIG_SMP=y CONFIG_X86_INTEL_LPSS=y @@ -19,6 +20,7 @@ CONFIG_SATA_AHCI=y CONFIG_ATA_PIIX=y CONFIG_NETDEVICES=y CONFIG_R8169=y +CONFIG_INPUT_EVDEV=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DW=y @@ -26,14 +28,22 @@ CONFIG_I2C_I801=y CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_PCI=y CONFIG_SPI=y -CONFIG_SPI_PXA2XX=y CONFIG_SPI_DESIGNWARE=y +CONFIG_SPI_PXA2XX=y CONFIG_PINCTRL_BAYTRAIL=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y CONFIG_AGP=y CONFIG_DRM=y +CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_I915=y +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_DRIVERS is not set +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_CODEC_HDMI=y +# CONFIG_SND_SPI is not set +# CONFIG_SND_USB is not set CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_NOP_USB_XCEIV=y @@ -42,5 +52,4 @@ CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PCI=y CONFIG_MMC_SDHCI_ACPI=y CONFIG_PWM=y -CONFIG_PWM_LPSS=y CONFIG_EXT4_FS=y diff --git a/bsp/buildroot/board/minnowboard/post-build.sh b/bsp/buildroot/board/minnowboard/post-build.sh index e3f4a92e..45f7b527 100755 --- a/bsp/buildroot/board/minnowboard/post-build.sh +++ b/bsp/buildroot/board/minnowboard/post-build.sh @@ -1,2 +1,12 @@ #!/bin/sh -cp board/minnowboard/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg +# args from BR2_ROOTFS_POST_SCRIPT_ARGS +# $2 board name + +cp -v board/minnowboard/grub-${2}.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg + +# Add a console on tty1 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty1::respawn:/sbin/getty -L tty1 0 vt100 # HDMI console' ${TARGET_DIR}/etc/inittab +fi diff --git a/bsp/buildroot/board/minnowboard/post-image.sh b/bsp/buildroot/board/minnowboard/post-image.sh new file mode 100755 index 00000000..428baa5e --- /dev/null +++ b/bsp/buildroot/board/minnowboard/post-image.sh @@ -0,0 +1,13 @@ +#!/bin/sh -e + +GENIMAGE_CFG="board/minnowboard/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/minnowboard/readme.txt b/bsp/buildroot/board/minnowboard/readme.txt index 62ffa92e..f76cd77c 100644 --- a/bsp/buildroot/board/minnowboard/readme.txt +++ b/bsp/buildroot/board/minnowboard/readme.txt @@ -1,40 +1,32 @@ -Prepare the SD card for the Minnow Board -======================================== +How to get started with the MinnowBoard (MAX) +============================================= - 1. Partition the SD card with a GPT partition table +1. Build - sudo cgdisk /dev/mmcblk0 + Apply the defconfig: - Create two partitions: + $ make minnowboard_defconfig - a) First partition of a few dozens of megabytes, which will be - used to store the bootloader and the kernel image. Type must - be EF00 (EFI partition). + Or, for the Minnowboard MAX board: - b) Second partition of any size, which will be used to store the - root filesystem. Type must be 8300 (Linux filesystem) + $ make minnowboard_max_defconfig - 2. Prepare the boot partition + Add any additional packages required and build: - We will format it, mount it, copy the EFI data generated by - Buildroot, and the kernel image. + $ make - sudo mkfs.vfat -F 32 -n boot /dev/mmcblk0p1 - sudo mount /dev/mmcblk0p1 /mnt - sudo cp -a output/images/efi-part/* /mnt/ - sudo cp output/images/bzImage /mnt/ - sudo umount /mnt +2. Write the SD card - 3. Prepare the root partition + The build process will create a SD card image in output/images. + Write the image to an mSD card, insert into the MinnowBoard + and power the board on. - We will format it, mount it, and extract the root filesystem. + $ dd if=output/images/sdcard.img of=/dev/mmcblk0; sync - sudo mkfs.ext3 -L root /dev/mmcblk0p2 - sudo mount /dev/mmcblk0p2 /mnt - sudo tar -C /mnt -xf output/images/rootfs.tar - sudo umount /mnt + The system starts two consoles: one on the serial port + and one on HDMI. - 4. Enjoy +3. Enjoy Additional information about this board can be found at http://www.minnowboard.org/. diff --git a/bsp/buildroot/board/olimex/a20_olinuxino/genimage.cfg b/bsp/buildroot/board/olimex/a20_olinuxino/genimage.cfg new file mode 100644 index 00000000..fc2f7f8d --- /dev/null +++ b/bsp/buildroot/board/olimex/a20_olinuxino/genimage.cfg @@ -0,0 +1,17 @@ +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-sunxi-with-spl.bin" + offset = 8192 + size = 1040384 # 1MB - 8192 + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/olimex/a20_olinuxino/post-image.sh b/bsp/buildroot/board/olimex/a20_olinuxino/post-image.sh new file mode 100755 index 00000000..9cca1b17 --- /dev/null +++ b/bsp/buildroot/board/olimex/a20_olinuxino/post-image.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/olimex/a20_olinuxino/readme.txt b/bsp/buildroot/board/olimex/a20_olinuxino/readme.txt index 7998aa12..070b7a5e 100644 --- a/bsp/buildroot/board/olimex/a20_olinuxino/readme.txt +++ b/bsp/buildroot/board/olimex/a20_olinuxino/readme.txt @@ -3,12 +3,13 @@ A20-OLinuXino-LIME and A20-OLinuXino-MICRO Intro ===== -These are open hardware boards, both based an the AllWinners A20 SoC. +These are open hardware boards, all based on the Allwinner A20 SoC. for more details about the boards see the following pages: - https://www.olimex.com/Products/OLinuXino/open-source-hardware - https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-MICRO/ - https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME/ + - https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2/ The following defconfigs are available: - olimex_a20_olinuxino_micro_defconfig @@ -51,6 +52,7 @@ After building, you should get a tree like this: +-- rootfs.ext2 +-- rootfs.ext4 -> rootfs.ext2 +-- script.bin (lime_mali) + +-- sdcard.img +-- sun7i-a20-olinuxino-lime.dtb (lime, mainline) +-- sun7i-a20-olinuxino-lime2.dtb (lime2, mainline) +-- sun7i-a20-olinuxino-micro.dtb (micro, mainline) @@ -62,55 +64,13 @@ After building, you should get a tree like this: How to write the SD card ======================== +The sdcard.img file is a complete bootable image ready to be written +on the boot medium. To install it, simply copy the image to a uSD +card: -Prepare the SD card -------------------- + # dd if=output/images/sdcard.img of=/dev/sdX -Erase existing stuff, and create an unique Linux partition with `fdisk`. - - # fdisk /dev/sdX - Command (m for help): o - Building a new DOS disklabel with disk identifier 0xf9e1616a. - Changes will remain in memory only, until you decide to write them. - After that, of course, the previous content won't be recoverable. - - Command (m for help): n - Partition type: - p primary (0 primary, 0 extended, 4 free) - e extended - Select (default p): p - Partition number (1-4, default 1): 1 - First sector (2048-7626751, default 2048): 2048 - Last sector, +sectors or +size{K,M,G} (2048-7626751, default 7626751): - Using default value 7626751 - - Command (m for help): p - - Disk /dev/sdX: 3904 MB, 3904897024 bytes - 4 heads, 16 sectors/track, 119168 cylinders, total 7626752 sectors - Units = sectors of 1 * 512 = 512 bytes - Sector size (logical/physical): 512 bytes / 512 bytes - I/O size (minimum/optimal): 512 bytes / 512 bytes - Disk identifier: 0xf9e1616a - - Device Boot Start End Blocks Id System - /dev/sdX1 2048 7626751 3812352 83 Linux - - Command (m for help): w - The partition table has been altered! - - Calling ioctl() to re-read partition table. - Syncing disks. - -Copy images on the SD card --------------------------- - - # dd if=output/images/rootfs.ext2 of=/dev/sdX1 - # dd if=output/images/u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8 - - -Finish -====== +Where 'sdX' is the device node of the uSD. Eject the SD card, insert it in the A20-OLinuXino board, and power it up. diff --git a/bsp/buildroot/board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg b/bsp/buildroot/board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg new file mode 100644 index 00000000..78979dcc --- /dev/null +++ b/bsp/buildroot/board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg @@ -0,0 +1,28 @@ +image kernel.vfat { + vfat { + files = { + "uImage" + } + } + size = 5M +} + +image sdcard.img { + hdimage { + } + partition boot { + partition-type = 0x53 + image = "u-boot.sd" + size = 16M + } + + partition kernel { + partition-type = 0xC + image = "kernel.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + } +} diff --git a/bsp/buildroot/board/olimex/imx233_olinuxino/mxs-bootlets/mxs-bootlets-01-olinuxino.patch b/bsp/buildroot/board/olimex/imx233_olinuxino/mxs-bootlets/mxs-bootlets-01-olinuxino.patch deleted file mode 100644 index 54c3ca01..00000000 --- a/bsp/buildroot/board/olimex/imx233_olinuxino/mxs-bootlets/mxs-bootlets-01-olinuxino.patch +++ /dev/null @@ -1,122 +0,0 @@ -Forward-ported patch from https://github.com/koliqi/imx23-olinuxino -for mxs-bootlets-10.12.01 - -Signed-off-by: Gustavo Zacarias - -diff -Nura imx-bootlets-src-10.12.01/linux_prep/board/imx23_olinuxino_dev.c imx-bootlets-src-10.12.01-olinuxino/linux_prep/board/imx23_olinuxino_dev.c ---- imx-bootlets-src-10.12.01/linux_prep/board/imx23_olinuxino_dev.c 1969-12-31 21:00:00.000000000 -0300 -+++ imx-bootlets-src-10.12.01-olinuxino/linux_prep/board/imx23_olinuxino_dev.c 2013-05-17 15:07:33.282961551 -0300 -@@ -0,0 +1,54 @@ -+/* -+ * Platform specific data for the IMX23_OLINUXINO development board -+ * -+ * Fadil Berisha -+ * -+ * Copyright 2008 SigmaTel, Inc -+ * Copyright 2008 Embedded Alley Solutions, Inc -+ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This file is licensed under the terms of the GNU General Public License -+ * version 2. This program is licensed "as is" without any warranty of any -+ * kind, whether express or implied. -+ * -+ * http://www.opensource.org/licenses/gpl-license.html -+ * http://www.gnu.org/copyleft/gpl.html -+ */ -+#include -+#include -+#include -+ -+/************************************************ -+ * LRADC keyboard data * -+ ************************************************/ -+int lradc_keypad_ch = LRADC_CH0; -+int lradc_vddio_ch = LRADC_CH6; -+ -+struct lradc_keycode lradc_keycodes[] = { -+ { 100, KEY4 }, -+ { 306, KEY5 }, -+ { 601, KEY6 }, -+ { 932, KEY7 }, -+ { 1260, KEY8 }, -+ { 1424, KEY9 }, -+ { 1707, KEY10 }, -+ { 2207, KEY11 }, -+ { 2525, KEY12 }, -+ { 2831, KEY13 }, -+ { 3134, KEY14 }, -+ { -1, 0 }, -+}; -+ -+/************************************************ -+ * Magic key combinations for Armadillo * -+ ************************************************/ -+u32 magic_keys[MAGIC_KEY_NR] = { -+ [MAGIC_KEY1] = KEY4, -+ [MAGIC_KEY2] = KEY6, -+ [MAGIC_KEY3] = KEY10, -+}; -+ -+/************************************************ -+ * Default command line * -+ ************************************************/ -+char cmdline_def[] = "console=ttyAMA0,115200"; -diff -Nura imx-bootlets-src-10.12.01/linux_prep/cmdlines/imx23_olinuxino_dev.txt imx-bootlets-src-10.12.01-olinuxino/linux_prep/cmdlines/imx23_olinuxino_dev.txt ---- imx-bootlets-src-10.12.01/linux_prep/cmdlines/imx23_olinuxino_dev.txt 1969-12-31 21:00:00.000000000 -0300 -+++ imx-bootlets-src-10.12.01-olinuxino/linux_prep/cmdlines/imx23_olinuxino_dev.txt 2013-05-17 15:07:49.663496106 -0300 -@@ -0,0 +1,3 @@ -+console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait -+console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait -+console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait -diff -Nura imx-bootlets-src-10.12.01/linux_prep/core/setup.c imx-bootlets-src-10.12.01-olinuxino/linux_prep/core/setup.c ---- imx-bootlets-src-10.12.01/linux_prep/core/setup.c 2010-11-04 04:35:38.000000000 -0300 -+++ imx-bootlets-src-10.12.01-olinuxino/linux_prep/core/setup.c 2013-05-17 15:08:39.246114205 -0300 -@@ -84,6 +84,8 @@ - #include "../../mach-mx28/includes/registers/regsrtc.h" - #elif defined(STMP378X) - #include "../../mach-mx23/includes/registers/regsrtc.h" -+#elif defined(IMX23_OLINUXINO) -+#include "../../mach-mx23/includes/registers/regsrtc.h" - #endif - - #define NAND_SECONDARY_BOOT 0x00000002 -diff -Nura imx-bootlets-src-10.12.01/linux_prep/include/mx23/platform.h imx-bootlets-src-10.12.01-olinuxino/linux_prep/include/mx23/platform.h ---- imx-bootlets-src-10.12.01/linux_prep/include/mx23/platform.h 2010-11-04 04:35:38.000000000 -0300 -+++ imx-bootlets-src-10.12.01-olinuxino/linux_prep/include/mx23/platform.h 2013-05-17 15:09:21.006476997 -0300 -@@ -19,6 +19,8 @@ - - #if defined (BOARD_STMP378X_DEV) - #define MACHINE_ID 0xa45 -+#elif defined (BOARD_IMX23_OLINUXINO_DEV) -+#define MACHINE_ID 0x1009 - #else - #error "Allocate a machine ID for your board" - #endif -diff -Nura imx-bootlets-src-10.12.01/linux_prep/Makefile imx-bootlets-src-10.12.01-olinuxino/linux_prep/Makefile ---- imx-bootlets-src-10.12.01/linux_prep/Makefile 2010-11-04 04:35:38.000000000 -0300 -+++ imx-bootlets-src-10.12.01-olinuxino/linux_prep/Makefile 2013-05-17 15:09:53.554539143 -0300 -@@ -69,6 +69,11 @@ - HW_OBJS = $(LRADC_OBJS) - CFLAGS += -DMX28 -DBOARD_MX28_EVK - endif -+ifeq ($(BOARD), imx23_olinuxino_dev) -+ARCH = mx23 -+HW_OBJS = $(LRADC_OBJS) -+CFLAGS += -DIMX23_OLINUXINO -DBOARD_IMX23_OLINUXINO_DEV -+endif - - # Generic code - CORE_OBJS = entry.o resume.o cmdlines.o setup.o keys.o -diff -Nura imx-bootlets-src-10.12.01/Makefile imx-bootlets-src-10.12.01-olinuxino/Makefile ---- imx-bootlets-src-10.12.01/Makefile 2010-11-04 04:35:38.000000000 -0300 -+++ imx-bootlets-src-10.12.01-olinuxino/Makefile 2013-05-17 15:23:53.709956619 -0300 -@@ -16,6 +16,9 @@ - ifeq ($(BOARD), iMX28_EVK) - ARCH = mx28 - endif -+ifeq ($(BOARD), imx23_olinuxino_dev) -+ARCH = mx23 -+endif - - all: build_prep gen_bootstream - diff --git a/bsp/buildroot/board/olimex/imx233_olinuxino/post-image.sh b/bsp/buildroot/board/olimex/imx233_olinuxino/post-image.sh new file mode 100755 index 00000000..703cbe7e --- /dev/null +++ b/bsp/buildroot/board/olimex/imx233_olinuxino/post-image.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +BOARD_NAME="$(basename ${BOARD_DIR})" +GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +# Create symlink to "rename" kernel image +ln -sf uImage.imx23-olinuxino ${BINARIES_DIR}/uImage + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/olimex/imx233_olinuxino/readme.txt b/bsp/buildroot/board/olimex/imx233_olinuxino/readme.txt index 1c36a61e..4b24ac2c 100644 --- a/bsp/buildroot/board/olimex/imx233_olinuxino/readme.txt +++ b/bsp/buildroot/board/olimex/imx233_olinuxino/readme.txt @@ -5,11 +5,34 @@ one or more of: hostapd, iw, wireless_tools and/or wpa_supplicant. It also pulls up the console on the serial port, not on TV output. -You'll need a spare MicroSD card with Freescale's special partition layout. -This is basically two partitions: +=== Output files after building ============================================== -1) Type 53, the bootstrap + bootloader/kernel partition, should be 16MB. -2) Anything you like, for this example an ext2 partition, type 83 (linux). +output/images ++-- kernel.vfat (VFAT kernel partition image generated by genimage) ++-- rootfs.ext2 (Root file system) ++-- sdcard.img (Complete SD card image generated by genimage) ++-- u-boot.sd (U-Boot image) ++-- uImage -> uImage.imx23-olinuxino (To copy kernel as "uImage" to kernel.vfat) ++-- uImage.imx23-olinuxino (Kernel uImage) + +=== Use of generated SD card image =========================================== + +Just write sdcard.img directly to the SD card + +***** WARNING: Double check that /dev/sdc is your MicroSD card ***** +***** It might be /dev/sdb or some other device name ***** +***** Failure to do so may result in you wiping your hard disk ***** + + # dd if=output/images/sdcard.img of=/dev/sdc bs=512 + +=== Manual creation of SD card image ========================================= + +You'll need a spare MicroSD card with Freescale's special partition layout. +This is basically three partitions: + +1) Type 53, the U-Boot partition, should be 16MB. +2) VFAT, place the kernel uImage there +3) Anything you like, for this example an ext2 partition, type 83 (linux). Assuming you see your MicroSD card as /dev/sdc you'd need to do, as root and from the buildroot project top level directory: @@ -43,15 +66,31 @@ and from the buildroot project top level directory: p 2 + +5M + t + 2 + 4 + n + p + 3 + w -4. Fill up the first (bootstrap + kernel) partition - # dd if=output/images/imx23_olinuxino_dev_linux.sb bs=512 of=/dev/sdc1 seek=4 +4. Fill up the first (U-Boot) partition + # dd if=output/images/u-boot.sd bs=512 of=/dev/sdc1 -5. Fill up the second (filesystem) partition - # dd if=output/images/rootfs.ext2 of=/dev/sdc2 bs=512 +5. Create VFAT Filesystem + # mkfs.vfat /dev/sdc2 -6. Remove the MicroSD card from your linux PC and put it into your olinuxino. +6. Mount and copy output/images/uImage.imx23-olinuxino to the VFAT partition, rename to uImage + # mount /dev/sdc2 /mnt + # cp output/images/uImages/uImage.imx23-olinuxino /mnt/uImage + # umount /mnt -7. Boot! You're done! +7. Fill up the third (filesystem) partition + # dd if=output/images/rootfs.ext2 of=/dev/sdc3 bs=512 + +8. Remove the MicroSD card from your linux PC and put it into your olinuxino. + +9. Boot! You're done! diff --git a/bsp/buildroot/board/orangepi/orangepipc/genimage.cfg b/bsp/buildroot/board/orangepi/orangepipc/genimage.cfg index 1200d3b1..932d81cf 100644 --- a/bsp/buildroot/board/orangepi/orangepipc/genimage.cfg +++ b/bsp/buildroot/board/orangepi/orangepipc/genimage.cfg @@ -19,6 +19,7 @@ image sdcard.img { in-partition-table = "no" image = "u-boot-sunxi-with-spl.bin" offset = 8192 + size = 1040384 # 1MB - 8192 } partition boot { diff --git a/bsp/buildroot/board/pandaboard/genimage.cfg b/bsp/buildroot/board/pandaboard/genimage.cfg new file mode 100644 index 00000000..f30033f0 --- /dev/null +++ b/bsp/buildroot/board/pandaboard/genimage.cfg @@ -0,0 +1,26 @@ +image boot.vfat { + vfat { + files = { + "MLO", + "u-boot.img" + } + } + size = 8M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/pandaboard/post-image.sh b/bsp/buildroot/board/pandaboard/post-image.sh new file mode 100755 index 00000000..9cca1b17 --- /dev/null +++ b/bsp/buildroot/board/pandaboard/post-image.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/pandaboard/readme.txt b/bsp/buildroot/board/pandaboard/readme.txt new file mode 100644 index 00000000..1e4820b8 --- /dev/null +++ b/bsp/buildroot/board/pandaboard/readme.txt @@ -0,0 +1,46 @@ +Pandaboard +========== + +This file documents the Buildroot support for the Pandaboard, a +low-power, low-cost single-board computer development platform based +on the Texas Instruments OMAP4 system on a chip (SoC). + +Configuring and building Buildroot +---------------------------------- + +Start from the defconfig: + + $ make pandaboard_defconfig + +You can edit build options the usual way: + + $ make menuconfig + +When you are happy with the setup, run: + + $ make + +The result of the build with the default settings should be these files: + + output/images + ├── MLO + ├── omap4-panda-a4.dtb + ├── omap4-panda.dtb + ├── omap4-panda-es.dtb + ├── rootfs.ext4 + ├── sdcard.img + ├── u-boot.img + └── zImage + +How to write the SD card +------------------------ + +Once the build process is finished you will have an image called "sdcard.img" +in the output/images/ directory. + +Copy the bootable "sdcard.img" onto an SD card with "dd": + + $ sudo dd if=output/images/sdcard.img of=/dev/sdX + +Where /dev/sdX is the device node of your SD card (may be /dev/mmcblkX +instead depending on setup). diff --git a/bsp/buildroot/board/pc/genimage-bios.cfg b/bsp/buildroot/board/pc/genimage-bios.cfg new file mode 100644 index 00000000..c6694999 --- /dev/null +++ b/bsp/buildroot/board/pc/genimage-bios.cfg @@ -0,0 +1,24 @@ +image disk.img { + + hdimage { + } + + partition boot { + in-partition-table = "no" + image = "boot.img" + offset = 0 + size = 512 + } + + partition grub { + in-partition-table = "no" + image = "grub.img" + offset = 512 + } + + partition root { + partition-type = 0x83 + image = "rootfs.ext2" + } + +} diff --git a/bsp/buildroot/board/pc/genimage-efi.cfg b/bsp/buildroot/board/pc/genimage-efi.cfg new file mode 100644 index 00000000..ec96d73d --- /dev/null +++ b/bsp/buildroot/board/pc/genimage-efi.cfg @@ -0,0 +1,31 @@ +image efi-part.vfat { + vfat { + file startup.nsh { + image = "efi-part/startup.nsh" + } + file EFI { + image = "efi-part/EFI" + } + file bzImage { + image = "bzImage" + } + } + size = 16M +} + +image disk.img { + + hdimage { + } + + partition boot { + partition-type = 0xEF + image = "efi-part.vfat" + } + + partition root { + partition-type = 0x83 + image = "rootfs.ext2" + } + +} diff --git a/bsp/buildroot/board/pc/linux-extras.config b/bsp/buildroot/board/pc/linux-extras.config new file mode 100644 index 00000000..8c9c2257 --- /dev/null +++ b/bsp/buildroot/board/pc/linux-extras.config @@ -0,0 +1,45 @@ +# Filesystem support +CONFIG_FUSE_FS=y +CONFIG_SQUASHFS=y + +# Ethernet drivers +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_ALX=m +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_R8169=m + +# Video drivers +CONFIG_DRM_I915=y +CONFIG_FB_VESA=y + +# Wireless drivers +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m +CONFIG_ATH_CARDS=m +CONFIG_ATH9K=m +CONFIG_ATH9K_HTC=m +CONFIG_CARL9170=m +CONFIG_ATH10K=m +CONFIG_ATH10K_PCI=m +CONFIG_IWL4965=m +CONFIG_IWL3945=m +CONFIG_IWLWIFI=m +CONFIG_RT2X00=m +CONFIG_RT2800PCI=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +# CONFIG_RTL_CARDS is not set +CONFIG_RTL8XXXU=m + +# EFI support +CONFIG_EFI=y diff --git a/bsp/buildroot/board/pc/post-image.sh b/bsp/buildroot/board/pc/post-image.sh new file mode 100755 index 00000000..3b51409c --- /dev/null +++ b/bsp/buildroot/board/pc/post-image.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +# Detect boot strategy, EFI or BIOS +if [ -f ${BINARIES_DIR}/efi-part/startup.nsh ]; then + BOOT_TYPE=efi + # grub.cfg needs customization for EFI since the root partition is + # number 2, and bzImage is in the EFI partition (1) + cat >${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg <<__EOF__ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /bzImage root=/dev/sda2 rootwait console=tty1 +} +__EOF__ +else + BOOT_TYPE=bios + # Copy grub 1st stage to binaries, required for genimage + cp -f ${HOST_DIR}/usr/lib/grub/i386-pc/boot.img ${BINARIES_DIR} +fi + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOOT_TYPE}.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/pc/readme.txt b/bsp/buildroot/board/pc/readme.txt new file mode 100644 index 00000000..68ca2116 --- /dev/null +++ b/bsp/buildroot/board/pc/readme.txt @@ -0,0 +1,37 @@ +Bare PC sample config +===================== + +1. Build + + First select the appropriate target you want. + + For BIOS-based boot strategy: + + $ make pc_x86_64_bios_defconfig + + Or for EFI: + + $ make pc_x86_64_efi_defconfig + + Add any additional packages required and build: + + $ make + +2. Write the pendrive + + The build process will create a pendrive image called sdcard.img in + output/images. + + Write the image to a pendrive: + + $ dd if=output/images/disk.img of=/dev/sdc; sync + + Once it's done insert it into the target PC and boot. + + Remember that if said PC has another boot device you might need to + select this alternative for it to boot. + + In the case of EFI boot you might need to disable Secure Boot from + the setup as well. + +3. Enjoy diff --git a/bsp/buildroot/board/qemu/aarch64-virt/linux-4.4.config b/bsp/buildroot/board/qemu/aarch64-virt/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/aarch64-virt/linux-4.4.config rename to bsp/buildroot/board/qemu/aarch64-virt/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/aarch64-virt/readme.txt b/bsp/buildroot/board/qemu/aarch64-virt/readme.txt index d43fe09f..1c4c7f9c 100644 --- a/bsp/buildroot/board/qemu/aarch64-virt/readme.txt +++ b/bsp/buildroot/board/qemu/aarch64-virt/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.6.0 diff --git a/bsp/buildroot/board/qemu/arm-versatile/linux-4.4.config b/bsp/buildroot/board/qemu/arm-versatile/linux-4.7.config similarity index 92% rename from bsp/buildroot/board/qemu/arm-versatile/linux-4.4.config rename to bsp/buildroot/board/qemu/arm-versatile/linux-4.7.config index 99df3a6d..b1001d84 100644 --- a/bsp/buildroot/board/qemu/arm-versatile/linux-4.4.config +++ b/bsp/buildroot/board/qemu/arm-versatile/linux-4.7.config @@ -1,12 +1,11 @@ CONFIG_SYSVIPC=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y +# CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_VERSATILE=y -CONFIG_MACH_VERSATILE_AB=y -CONFIG_MACH_VERSATILE_DT=y CONFIG_PCI=y +CONFIG_PCI_VERSATILE=y CONFIG_AEABI=y -CONFIG_USE_OF=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y diff --git a/bsp/buildroot/board/qemu/arm-versatile/readme.txt b/bsp/buildroot/board/qemu/arm-versatile/readme.txt index 44d70d8b..f6f05f9c 100644 --- a/bsp/buildroot/board/qemu/arm-versatile/readme.txt +++ b/bsp/buildroot/board/qemu/arm-versatile/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/arm-vexpress/readme.txt b/bsp/buildroot/board/qemu/arm-vexpress/readme.txt index c7a7607d..99812b9a 100644 --- a/bsp/buildroot/board/qemu/arm-vexpress/readme.txt +++ b/bsp/buildroot/board/qemu/arm-vexpress/readme.txt @@ -8,4 +8,4 @@ graphical window is the framebuffer. If you want to emulate more cores change "-smp 1" to "-smp 2" for dual-core or even "smp -4" for a quad-core configuration. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/m68k-mcf5208/linux-4.7.config b/bsp/buildroot/board/qemu/m68k-mcf5208/linux-4.7.config new file mode 100644 index 00000000..09a89d72 --- /dev/null +++ b/bsp/buildroot/board/qemu/m68k-mcf5208/linux-4.7.config @@ -0,0 +1,28 @@ +CONFIG_M68K=y +CONFIG_COLDFIRE=y +# CONFIG_MMU is not set +CONFIG_M520x=y +CONFIG_CLOCK_SET=y +CONFIG_CLOCK_FREQ=66666666 +CONFIG_CLOCK_DIV=1 +CONFIG_M5208EVB=y +CONFIG_FREESCALE=y +CONFIG_RAMBASE=0x40000000 +CONFIG_RAMSIZE=0x0 +CONFIG_VECTORBASE=0x40000000 +CONFIG_KERNELBASE=0x40020000 +CONFIG_4KSTACKS=y +CONFIG_RAMKERNEL=y +CONFIG_BINFMT_FLAT=y +CONFIG_SERIAL_MCF=y +CONFIG_SERIAL_MCF_BAUDRATE=115200 +CONFIG_SERIAL_MCF_CONSOLE=y +CONFIG_BOOTPARAM=y +CONFIG_BOOTPARAM_STRING="console=ttyS0,115200" +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_FEC=y diff --git a/bsp/buildroot/board/qemu/m68k-mcf5208/patches/linux/m68knommu-fix-signal.patch b/bsp/buildroot/board/qemu/m68k-mcf5208/patches/linux/m68knommu-fix-signal.patch new file mode 100644 index 00000000..b56994b2 --- /dev/null +++ b/bsp/buildroot/board/qemu/m68k-mcf5208/patches/linux/m68knommu-fix-signal.patch @@ -0,0 +1,45 @@ +m68knommu: fix user a5 register being overwritten + +On no-MMU systems the application a5 register can be overwitten with the +address of the process data segment when processing application signals. +For flat format applications compiled with full absolute relocation this +effectively corrupts the a5 register on signal processing - and this very +quickly leads to process crash and often takes out the whole system with +a panic as well. + +This has no effect on flat format applications compiled with the more +common PIC methods (such as -msep-data). These format applications reserve +a5 for the pointer to the data segment anyway - so it doesn't change it. + +A long time ago the a5 register was used in the code packed into the user +stack to enable signal return processing. And so it had to be restored on +end of signal cleanup processing back to the original a5 user value. This +was historically done by saving away a5 in the sigcontext structure. At +some point (a long time back it seems) the a5 restore process was changed +and it was hard coded to put the user data segment address directly into a5. +Which is ok for the common PIC compiled application case, but breaks the +full relocation application code. + +We no longer use this type of signal handling mechanism and so we don't +need to do anything special to save and restore a5 at all now. So remove the +code that hard codes a5 to the address of the user data segment. + +Signed-off-by: Greg Ungerer +--- + arch/m68k/kernel/signal.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c +index 2dcee3a..9202f82 100644 +--- a/arch/m68k/kernel/signal.c ++++ b/arch/m68k/kernel/signal.c +@@ -213,7 +213,6 @@ static inline int frame_extra_sizes(int f) + + static inline void adjustformat(struct pt_regs *regs) + { +- ((struct switch_stack *)regs - 1)->a5 = current->mm->start_data; + /* + * set format byte to make stack appear modulo 4, which it will + * be when doing the rte +-- +1.9.1 diff --git a/bsp/buildroot/board/qemu/m68k-mcf5208/readme.txt b/bsp/buildroot/board/qemu/m68k-mcf5208/readme.txt new file mode 100644 index 00000000..00deb2c3 --- /dev/null +++ b/bsp/buildroot/board/qemu/m68k-mcf5208/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-m68k -M mcf5208evb -cpu m5208 -kernel output/images/vmlinux -nographic + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/m68k-q800/linux-4.7.config b/bsp/buildroot/board/qemu/m68k-q800/linux-4.7.config new file mode 100644 index 00000000..44eb70e2 --- /dev/null +++ b/bsp/buildroot/board/qemu/m68k-q800/linux-4.7.config @@ -0,0 +1,26 @@ +CONFIG_M68K=y +CONFIG_M68040=y +CONFIG_M68KFPU_EMU=y +CONFIG_MAC=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_ADB=y +CONFIG_ADB_MACII=y +CONFIG_TTY=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_NETDEVICES=y +CONFIG_MACSONIC=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_MAC_ESP=y +CONFIG_BLK_DEV_SD=y +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_TTYS=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y diff --git a/bsp/buildroot/board/qemu/m68k-q800/readme.txt b/bsp/buildroot/board/qemu/m68k-q800/readme.txt new file mode 100644 index 00000000..78267a31 --- /dev/null +++ b/bsp/buildroot/board/qemu/m68k-q800/readme.txt @@ -0,0 +1,8 @@ +Run the emulation with: + + qemu-system-m68k -M q800 -kernel output/images/vmlinux -nographic -drive file=output/images/rootfs.ext2,format=raw -append "root=/dev/sda console=ttyS0" + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.4.0 from https://github.com/vivier/qemu-m68k +You need following branch: q800-v2.4.0 diff --git a/bsp/buildroot/board/qemu/microblazebe-mmu/linux-4.4.config b/bsp/buildroot/board/qemu/microblazebe-mmu/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/microblazebe-mmu/linux-4.4.config rename to bsp/buildroot/board/qemu/microblazebe-mmu/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/microblazebe-mmu/readme.txt b/bsp/buildroot/board/qemu/microblazebe-mmu/readme.txt index 9ade6fb3..25fc35ca 100644 --- a/bsp/buildroot/board/qemu/microblazebe-mmu/readme.txt +++ b/bsp/buildroot/board/qemu/microblazebe-mmu/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/microblazeel-mmu/linux-4.4.config b/bsp/buildroot/board/qemu/microblazeel-mmu/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/microblazeel-mmu/linux-4.4.config rename to bsp/buildroot/board/qemu/microblazeel-mmu/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/microblazeel-mmu/readme.txt b/bsp/buildroot/board/qemu/microblazeel-mmu/readme.txt index 005ea639..1a77a56f 100644 --- a/bsp/buildroot/board/qemu/microblazeel-mmu/readme.txt +++ b/bsp/buildroot/board/qemu/microblazeel-mmu/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/mips-malta/linux-4.3.config b/bsp/buildroot/board/qemu/mips32r2-malta/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/mips-malta/linux-4.3.config rename to bsp/buildroot/board/qemu/mips32r2-malta/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/mips-malta/readme.txt b/bsp/buildroot/board/qemu/mips32r2-malta/readme.txt similarity index 93% rename from bsp/buildroot/board/qemu/mips-malta/readme.txt rename to bsp/buildroot/board/qemu/mips32r2-malta/readme.txt index 3886cce5..13f8910b 100644 --- a/bsp/buildroot/board/qemu/mips-malta/readme.txt +++ b/bsp/buildroot/board/qemu/mips32r2-malta/readme.txt @@ -6,4 +6,4 @@ The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. No keyboard support has been enabled. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/mipsel-malta/linux-4.3.config b/bsp/buildroot/board/qemu/mips32r2el-malta/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/mipsel-malta/linux-4.3.config rename to bsp/buildroot/board/qemu/mips32r2el-malta/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/mipsel-malta/readme.txt b/bsp/buildroot/board/qemu/mips32r2el-malta/readme.txt similarity index 93% rename from bsp/buildroot/board/qemu/mipsel-malta/readme.txt rename to bsp/buildroot/board/qemu/mips32r2el-malta/readme.txt index d2dfbecb..5c4bbda6 100644 --- a/bsp/buildroot/board/qemu/mipsel-malta/readme.txt +++ b/bsp/buildroot/board/qemu/mips32r2el-malta/readme.txt @@ -6,4 +6,4 @@ The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. No keyboard support has been enabled. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/mips32r6-malta/linux-4.7.config b/bsp/buildroot/board/qemu/mips32r6-malta/linux-4.7.config new file mode 100644 index 00000000..d5596766 --- /dev/null +++ b/bsp/buildroot/board/qemu/mips32r6-malta/linux-4.7.config @@ -0,0 +1,30 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS32_R6=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IDE=y +CONFIG_BLK_DEV_IDECD=y +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_GENERIC=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/bsp/buildroot/board/qemu/mips32r6-malta/readme.txt b/bsp/buildroot/board/qemu/mips32r6-malta/readme.txt new file mode 100644 index 00000000..107c47d8 --- /dev/null +++ b/bsp/buildroot/board/qemu/mips32r6-malta/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + +qemu-system-mips -M malta -cpu mips32r6-generic -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "root=/dev/hda" -nographic + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.6.0 diff --git a/bsp/buildroot/board/qemu/mips32r6el-malta/linux-4.7.config b/bsp/buildroot/board/qemu/mips32r6el-malta/linux-4.7.config new file mode 100644 index 00000000..d5596766 --- /dev/null +++ b/bsp/buildroot/board/qemu/mips32r6el-malta/linux-4.7.config @@ -0,0 +1,30 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS32_R6=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IDE=y +CONFIG_BLK_DEV_IDECD=y +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_GENERIC=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/bsp/buildroot/board/qemu/mips32r6el-malta/readme.txt b/bsp/buildroot/board/qemu/mips32r6el-malta/readme.txt new file mode 100644 index 00000000..e29115f7 --- /dev/null +++ b/bsp/buildroot/board/qemu/mips32r6el-malta/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + +qemu-system-mipsel -M malta -cpu mips32r6-generic -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "root=/dev/hda" -net nic,model=pcnet -net user -nographic + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.6.0 diff --git a/bsp/buildroot/board/qemu/mips64-malta/linux-4.4.config b/bsp/buildroot/board/qemu/mips64-malta/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/mips64-malta/linux-4.4.config rename to bsp/buildroot/board/qemu/mips64-malta/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/mips64-malta/readme.txt b/bsp/buildroot/board/qemu/mips64-malta/readme.txt index 5eb4cac6..a89985dd 100644 --- a/bsp/buildroot/board/qemu/mips64-malta/readme.txt +++ b/bsp/buildroot/board/qemu/mips64-malta/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/mips64el-malta/linux-4.4.config b/bsp/buildroot/board/qemu/mips64el-malta/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/mips64el-malta/linux-4.4.config rename to bsp/buildroot/board/qemu/mips64el-malta/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/mips64el-malta/readme.txt b/bsp/buildroot/board/qemu/mips64el-malta/readme.txt index 4c9fbe42..25fc9ee1 100644 --- a/bsp/buildroot/board/qemu/mips64el-malta/readme.txt +++ b/bsp/buildroot/board/qemu/mips64el-malta/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/mips64r6-malta/linux-4.7.config b/bsp/buildroot/board/qemu/mips64r6-malta/linux-4.7.config new file mode 100644 index 00000000..0ebfdbdb --- /dev/null +++ b/bsp/buildroot/board/qemu/mips64r6-malta/linux-4.7.config @@ -0,0 +1,34 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS64_R6=y +CONFIG_64BIT=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IDE=y +CONFIG_BLK_DEV_IDECD=y +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_GENERIC=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/bsp/buildroot/board/qemu/mips64r6-malta/readme.txt b/bsp/buildroot/board/qemu/mips64r6-malta/readme.txt new file mode 100644 index 00000000..8f792a0a --- /dev/null +++ b/bsp/buildroot/board/qemu/mips64r6-malta/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-mips64 -M malta -cpu MIPS64R6-generic -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "root=/dev/hda" -nographic + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.6.0 diff --git a/bsp/buildroot/board/qemu/mips64r6el-malta/linux-4.7.config b/bsp/buildroot/board/qemu/mips64r6el-malta/linux-4.7.config new file mode 100644 index 00000000..0ebfdbdb --- /dev/null +++ b/bsp/buildroot/board/qemu/mips64r6el-malta/linux-4.7.config @@ -0,0 +1,34 @@ +CONFIG_MIPS_MALTA=y +CONFIG_CPU_MIPS64_R6=y +CONFIG_64BIT=y +CONFIG_MIPS_MT_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_SYSVIPC=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PCI=y +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IDE=y +CONFIG_BLK_DEV_IDECD=y +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_GENERIC=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_PCNET32=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FB=y +CONFIG_FB_CIRRUS=y +CONFIG_USB=y +CONFIG_USB_UHCI_HCD=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/bsp/buildroot/board/qemu/mips64r6el-malta/readme.txt b/bsp/buildroot/board/qemu/mips64r6el-malta/readme.txt new file mode 100644 index 00000000..3459a877 --- /dev/null +++ b/bsp/buildroot/board/qemu/mips64r6el-malta/readme.txt @@ -0,0 +1,7 @@ +Run the emulation with: + + qemu-system-mips64el -M malta -cpu MIPS64R6-generic -kernel output/images/vmlinux -drive file=output/images/rootfs.ext2,format=raw -append "root=/dev/hda" -nographic + +The login prompt will appear in the terminal that started Qemu. + +Tested with QEMU 2.6.0 diff --git a/bsp/buildroot/board/qemu/ppc-g3beige/linux-4.4.config b/bsp/buildroot/board/qemu/ppc-g3beige/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/ppc-g3beige/linux-4.4.config rename to bsp/buildroot/board/qemu/ppc-g3beige/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/ppc-g3beige/readme.txt b/bsp/buildroot/board/qemu/ppc-g3beige/readme.txt index 8e70dbdb..070fcbbb 100644 --- a/bsp/buildroot/board/qemu/ppc-g3beige/readme.txt +++ b/bsp/buildroot/board/qemu/ppc-g3beige/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/ppc-mpc8544ds/linux-4.4.config b/bsp/buildroot/board/qemu/ppc-mpc8544ds/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/ppc-mpc8544ds/linux-4.4.config rename to bsp/buildroot/board/qemu/ppc-mpc8544ds/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/ppc-mpc8544ds/readme.txt b/bsp/buildroot/board/qemu/ppc-mpc8544ds/readme.txt index 0ade52ca..d8f31cbc 100644 --- a/bsp/buildroot/board/qemu/ppc-mpc8544ds/readme.txt +++ b/bsp/buildroot/board/qemu/ppc-mpc8544ds/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/ppc-virtex-ml507/linux-4.4.config b/bsp/buildroot/board/qemu/ppc-virtex-ml507/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/ppc-virtex-ml507/linux-4.4.config rename to bsp/buildroot/board/qemu/ppc-virtex-ml507/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/ppc-virtex-ml507/readme.txt b/bsp/buildroot/board/qemu/ppc-virtex-ml507/readme.txt index a25ed482..42aa204b 100644 --- a/bsp/buildroot/board/qemu/ppc-virtex-ml507/readme.txt +++ b/bsp/buildroot/board/qemu/ppc-virtex-ml507/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/ppc64-pseries/readme.txt b/bsp/buildroot/board/qemu/ppc64-pseries/readme.txt index 014edfa2..94fa228b 100644 --- a/bsp/buildroot/board/qemu/ppc64-pseries/readme.txt +++ b/bsp/buildroot/board/qemu/ppc64-pseries/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/sh4-r2d/linux-4.4.config b/bsp/buildroot/board/qemu/sh4-r2d/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/sh4-r2d/linux-4.4.config rename to bsp/buildroot/board/qemu/sh4-r2d/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/sh4-r2d/readme.txt b/bsp/buildroot/board/qemu/sh4-r2d/readme.txt index ad55eac6..aa0e369d 100644 --- a/bsp/buildroot/board/qemu/sh4-r2d/readme.txt +++ b/bsp/buildroot/board/qemu/sh4-r2d/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/sh4eb-r2d/linux-4.4.config b/bsp/buildroot/board/qemu/sh4eb-r2d/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/sh4eb-r2d/linux-4.4.config rename to bsp/buildroot/board/qemu/sh4eb-r2d/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/sh4eb-r2d/readme.txt b/bsp/buildroot/board/qemu/sh4eb-r2d/readme.txt index 2c09de00..147adc6e 100644 --- a/bsp/buildroot/board/qemu/sh4eb-r2d/readme.txt +++ b/bsp/buildroot/board/qemu/sh4eb-r2d/readme.txt @@ -5,4 +5,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. The graphical window is the framebuffer. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/sparc-ss10/linux-4.4.config b/bsp/buildroot/board/qemu/sparc-ss10/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/sparc-ss10/linux-4.4.config rename to bsp/buildroot/board/qemu/sparc-ss10/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/sparc-ss10/readme.txt b/bsp/buildroot/board/qemu/sparc-ss10/readme.txt index 56cadd9d..5a07ee00 100644 --- a/bsp/buildroot/board/qemu/sparc-ss10/readme.txt +++ b/bsp/buildroot/board/qemu/sparc-ss10/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/sparc64-sun4u/linux-4.4.config b/bsp/buildroot/board/qemu/sparc64-sun4u/linux-4.7.config similarity index 100% rename from bsp/buildroot/board/qemu/sparc64-sun4u/linux-4.4.config rename to bsp/buildroot/board/qemu/sparc64-sun4u/linux-4.7.config diff --git a/bsp/buildroot/board/qemu/sparc64-sun4u/readme.txt b/bsp/buildroot/board/qemu/sparc64-sun4u/readme.txt index 763f89bd..aaf96c35 100644 --- a/bsp/buildroot/board/qemu/sparc64-sun4u/readme.txt +++ b/bsp/buildroot/board/qemu/sparc64-sun4u/readme.txt @@ -4,4 +4,4 @@ Run the emulation with: The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/x86/linux-4.4.config b/bsp/buildroot/board/qemu/x86/linux-4.4.config deleted file mode 100644 index 4dcc995b..00000000 --- a/bsp/buildroot/board/qemu/x86/linux-4.4.config +++ /dev/null @@ -1,24 +0,0 @@ -CONFIG_SYSVIPC=y -CONFIG_SMP=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_BLK_DEV_SD=y -CONFIG_ATA=y -CONFIG_ATA_PIIX=y -CONFIG_NETDEVICES=y -CONFIG_NE2K_PCI=y -CONFIG_8139CP=y -CONFIG_INPUT_EVDEV=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_HDA_INTEL=y -CONFIG_SND_HDA_GENERIC=y -CONFIG_EXT4_FS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_DRM=y -CONFIG_DRM_QXL=y diff --git a/bsp/buildroot/board/qemu/x86/linux-4.7.config b/bsp/buildroot/board/qemu/x86/linux-4.7.config new file mode 120000 index 00000000..22732f69 --- /dev/null +++ b/bsp/buildroot/board/qemu/x86/linux-4.7.config @@ -0,0 +1 @@ +../x86_64/linux-4.7.config \ No newline at end of file diff --git a/bsp/buildroot/board/qemu/x86/readme.txt b/bsp/buildroot/board/qemu/x86/readme.txt index 62c51b0f..4f2e4c7d 100644 --- a/bsp/buildroot/board/qemu/x86/readme.txt +++ b/bsp/buildroot/board/qemu/x86/readme.txt @@ -1,9 +1,9 @@ Run the emulation with: - qemu-system-i386 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=ide,format=raw -append root=/dev/sda -net nic,model=rtl8139 -net user + qemu-system-i386 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user Optionally add -smp N to emulate a SMP system with N CPUs. The login prompt will appear in the graphical window. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/x86_64/linux-4.4.config b/bsp/buildroot/board/qemu/x86_64/linux-4.4.config deleted file mode 100644 index 4dcc995b..00000000 --- a/bsp/buildroot/board/qemu/x86_64/linux-4.4.config +++ /dev/null @@ -1,24 +0,0 @@ -CONFIG_SYSVIPC=y -CONFIG_SMP=y -CONFIG_NET=y -CONFIG_PACKET=y -CONFIG_UNIX=y -CONFIG_INET=y -CONFIG_BLK_DEV_SD=y -CONFIG_ATA=y -CONFIG_ATA_PIIX=y -CONFIG_NETDEVICES=y -CONFIG_NE2K_PCI=y -CONFIG_8139CP=y -CONFIG_INPUT_EVDEV=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_HDA_INTEL=y -CONFIG_SND_HDA_GENERIC=y -CONFIG_EXT4_FS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_DRM=y -CONFIG_DRM_QXL=y diff --git a/bsp/buildroot/board/qemu/x86_64/linux-4.7.config b/bsp/buildroot/board/qemu/x86_64/linux-4.7.config new file mode 100644 index 00000000..e3bd1454 --- /dev/null +++ b/bsp/buildroot/board/qemu/x86_64/linux-4.7.config @@ -0,0 +1,45 @@ +CONFIG_SYSVIPC=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_SMP=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_ATA_PIIX=y +CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_NE2K_PCI=y +CONFIG_8139CP=y +CONFIG_INPUT_EVDEV=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_DRM=y +CONFIG_DRM_BOCHS=y +CONFIG_DRM_QXL=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_HDA_INTEL=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_EXT4_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y diff --git a/bsp/buildroot/board/qemu/x86_64/readme.txt b/bsp/buildroot/board/qemu/x86_64/readme.txt index e2be5745..6ea28d39 100644 --- a/bsp/buildroot/board/qemu/x86_64/readme.txt +++ b/bsp/buildroot/board/qemu/x86_64/readme.txt @@ -1,9 +1,9 @@ Run the emulation with: - qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=ide,format=raw -append root=/dev/sda -net nic,model=rtl8139 -net user + qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user Optionally add -smp N to emulate a SMP system with N CPUs. The login prompt will appear in the graphical window. -Tested with QEMU 2.3.0 +Tested with QEMU 2.5.0 diff --git a/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7-nommu.config b/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7-nommu.config new file mode 100644 index 00000000..29f6fa4c --- /dev/null +++ b/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7-nommu.config @@ -0,0 +1,37 @@ +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_XTENSA_VARIANT_CUSTOM=y +CONFIG_XTENSA_VARIANT_CUSTOM_NAME="dc233c" +# CONFIG_XTENSA_VARIANT_MMU is not set +CONFIG_XTENSA_UNALIGNED_USER=y +CONFIG_PREEMPT=y +# CONFIG_PCI is not set +CONFIG_XTENSA_PLATFORM_XTFPGA=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="earlycon=uart8250,mmio32,0xfd050020,115200n8 console=ttyS0,115200n8" +CONFIG_DEFAULT_MEM_START=0x00000000 +CONFIG_BINFMT_FLAT=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +# CONFIG_IPV6 is not set +CONFIG_NETFILTER=y +CONFIG_DNS_RESOLVER=y +# CONFIG_WIRELESS is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_NETDEVICES=y +CONFIG_MARVELL_PHY=y +# CONFIG_WLAN is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_HWMON is not set +# CONFIG_VGA_CONSOLE is not set +CONFIG_TMPFS=y +CONFIG_FANOTIFY=y +CONFIG_PRINTK_TIME=y +# CONFIG_S32C1I_SELFTEST is not set diff --git a/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.4.config b/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7.config similarity index 91% rename from bsp/buildroot/board/qemu/xtensa-lx60/linux-4.4.config rename to bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7.config index 51701b20..2d8e58d7 100644 --- a/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.4.config +++ b/bsp/buildroot/board/qemu/xtensa-lx60/linux-4.7.config @@ -1,8 +1,8 @@ # CONFIG_SWAP is not set # CONFIG_CROSS_MEMORY_ATTACH is not set CONFIG_BLK_DEV_INITRD=y -CONFIG_XTENSA_VARIANT_DC232B=y -# CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX is not set +CONFIG_XTENSA_VARIANT_DC233C=y +CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX=y CONFIG_XTENSA_PLATFORM_XTFPGA=y CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="console=ttyS0,38400" diff --git a/bsp/buildroot/board/qemu/xtensa-lx60/readme.txt b/bsp/buildroot/board/qemu/xtensa-lx60/readme.txt index 04393ea2..be77345e 100644 --- a/bsp/buildroot/board/qemu/xtensa-lx60/readme.txt +++ b/bsp/buildroot/board/qemu/xtensa-lx60/readme.txt @@ -1,7 +1,8 @@ Run the emulation with: - qemu-system-xtensa -M lx60 -cpu dc232b -monitor null -nographic -kernel output/images/Image.elf + qemu-system-xtensa -M lx60 -cpu dc233c -monitor null -nographic -kernel output/images/Image.elf The login prompt will appear in the terminal that started Qemu. -Tested with QEMU 2.3.0 +Tested with QEMU 2.6.0 +Known to fail with 2.5.0 diff --git a/bsp/buildroot/board/qemu/xtensa-lx60/xtensa_dc232b.tar b/bsp/buildroot/board/qemu/xtensa-lx60/xtensa_dc233c.tar similarity index 65% rename from bsp/buildroot/board/qemu/xtensa-lx60/xtensa_dc232b.tar rename to bsp/buildroot/board/qemu/xtensa-lx60/xtensa_dc233c.tar index 77080e07b8a50151e71e511ff9348107d4acec3f..1a97d7a81daf9586b7778c80bcc1fda0c6e75cf1 100644 GIT binary patch literal 808960 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

TpYgb@$h}sD& z?|%3uKX8lDapkWXvegN-43ZDoYCw&GRg*%isB{YCf>o!IlcA2{#B8gi-&8+c$_caT zlX0@Gw-3*(vzkC>6_+u|#5X{?a#m)i+0dviH>=HmPGqACkb|(1HHq9OvXRw~H9!u+ zMwX#EiNVJ0uJ@|KQTpWLPK`bb^Ei@_PEZa*NMU`6BqS>jb%o(5han`()bVWgu%ar; zmJKCRM#2MxJgQLmM@O>lSauziL!I|=DKJH>Yp3TWcinwW{?2hH2 zi9a38w+m*sbfDtQN*=8MZXiSWqJ=AMan5;`?=pO8i>NP<9i2?-YIr@jiitQ@ux3=L zM9ho$_G$aD`v7Og&o;X)RReTu5gAikGu2Su|KaxP;?>RlZEEbEV~yv@n$Tp~n&XYn z>bh8~NHjiiRjrvT>J2~l7bKG!d@tbUqMrs-U5l0sFWqMi*Nc>mHY zs^^(&`(j6kicph8zMn!BN45t#wI*O089)EJG;AACxP6%QLtwoK)w`!2ZQErA z)6DAb8T%QYQV}hepD~t0;!$owyR4H4ALSnTv16Vj<7c@B|B}^YBl@0zr`wqV;A+1k zTV<;0)4gCb5nvOGH+9)|Dpi_X+5hsiB%YFpFqNs_`_sUTL$c|M;pr1ec3u~VGX^*s zIp1fntNumWH9GFitdjz|M#tpH)*nT=+phroye~!yY+A308fn&;W-}qSO%_5^qv_Y* zT>YM@H|KYJiTU-_+gHA#%XiViaZKL-!z zdNZq_KLN8=^x3;Etf)v&yH zE*3-$gV(TBW4cP`!PJXIHc~GW4%7gqwi}D~V#4OFC zV~_=bS%kCDs711@Mh&%75s-7->=;LxU!*<8{B|qWsQt<0Vf3SX%L=^I9^+dU0A|** zT26P7gWzO-a99)zkQIKUC>9`_qQ!jIqk`_vkX>pp9Z1@BJoim|7RAv~-77s}%Zcll>7 zYPrfK;jXe6!d>^p6OMN$6OOHCwVC$Wa5D8Y>B>p0NX=|i%(V-xH)fN4#||vc_w4$8 z2;Z|STAc4$X@yno5WZ&_$8vr@t;Zj$Uh`f;^pyKQUfx}Ne^u~dB$ofu$o|HNm4r9| z5BYUL8X4pvE9F>ykPrvpA-L_wIF)pfcFKZ`Oh2b2p;n5fP^>z4_U!78tMohvQo~1H~MvBJzq~E?E^ohuV zdBI6>Ul8GYem&Ssd-pv*|IxT!=LNm{o}cr)fr{`yi(aEI=#2y37nJ6IG!OZ8KtlA| z267&d?h7J(&#woY>C67+1>E*<9h82diOm)=XnDa;eQsrMqkhy2fQyR&Hrc~^6P+v=&21bdB_Tu(NIU^LsrUJ z5C`BP%Sh2!lb?z!e_n9fUwc^a*(LG3Aj0?jda#-H?t6azqjA0V1-<*8pYyzdits;+ zUZXGQjRW2Wmgavn5BYUKLiE}OavrjRWi-?g`H+=z7Q_K~$TCv&1!v(lA&X|Ez9;{0 zE(<=DDf)s4-}CFiW_s3NKgfO03Jgn5G_Kdapm*Q%bDlR)5&mb`(D=;D{BYe+FE2X}-wvNX=%Q%tq z5$nEL)GGD8`ChvIzo{d9FUk4do`2lj6+i!q@jWZ8M9%l_dzNt`DI?amN^-upwa%Nn z(sj;F9pQUP&iC$nR$xR@M);nUR!V(uZ5@w$mT@BIBj)j0)GGD8`Chu7v#BF|FUk4d z*0XNziq|t^e9uZNk@LO#o@E?M%Kh{s9Cot}ujl6Hy@co~_kXMq<5~!JCUc)(NJ*AOBy$OY&uPAnO07=;uC7y?@d=wqU!ICA*NUSu=c|Gm(<6>NYKbi36`tFjS#+99`k?t4j@7w+C zS`g`eR(4?(I85}j%#+FA=ORX>#rj?jQd5&9})em?2^gffAq7= z!{py==Y4(~o~iGu;Yn1E=>$Jby<}O>$*hfpM*3MmrrosB()H*WpfQ=Rwkc3jKe(Osa?ijlt@b&FlI#V zvO1(O^XXz-*AL6_6bTwr9M!G)nC2*lhbAz&x?{{wblkz*c=~2i% z`!*v2x7;iHyUAZGZh+jkZ$#V(-^#-_oAvA(1dWJW_YIF3IEEb)xwMA10YQY0a<4dc z;9XqsO1%4Im2UhHS?h|tBVyNQwFBpR58VO@^p1j-&#b|u1_MZJvoR$|DLS^5^&w+s za?kY@FsPt+PD^<;XBPL%$^&tJMP#NV4;$E`OyqK8D-E}$Yk?8KINzUNdvyz$9A&LP#)XnV$GA|aKgNZU zK*zXHsJ}NCwvR*#>2%P{pH@0HykdjuB9*wk$bnn?JI$;w_O#N1oe!-(vr1!zMiu88jW|8qWY^%s` zq4922>n^{A#!mg#T|Nu1SMM%gy;;vHMoCsxdLGYr{!X_b(V1d8(^Y1*gL!kO($!Vi zO1t!W2z}jrwX3$YLlEi~qbR zTmg^gAuFA5(4rs?z(adn(HL|jXDl{a$^-9nG}&8bH8>W;0Z2k4Wy8g1mZc==bnkU% zIgbNC^hr|b{&HnxFj)#~)M0q&vqr@vOJR*V3`u>~sBy&etI|HIuRY76k1Bk0D4O30 z9tvv|P~B(Ca-pAOcH8_K9Y_R8g*EChB=uRNdOb^8H2?i(Qt4|T%E;dPsDtp(Yai8r zjq2@%A>RCoWa+0y&HJB6DTsdB=Ic)8QOd~vYLtRF01sIM3bwuzoe$aF&>?xqGLo&Z zavmZYk1VP!h+gxdaO@_66~ROH*iAtkfQPJL8TBH9hpd#dAP&GomXSJXV^`d>=x)LE z$ww!TAXr-w%SmB9>Gwed>q`wzvI3}+IhK>GbZo&KC{MDC#iX89lc)E6fA7Qq>4%S3 zSKoa1d+M7fufBOJ_PJ!Iy5U5B<1qu|AWUIhveykXQ`z;*a3aW5R^nnUGe8c)6dLMd zD$5DhrA*gPtBAc9S)nih`eEq$^4)iDOLw0{GLT(u=NzCP1{%*e?EEn3$%-HAOCssX z%0L6))6$b=y-x2%^|2z}GLp~HvVzb=>4zwuDzC4;zj|G`nTzF1Bq4=$ilZEckgVA0 z{Ej3fD-W9}han`(R7~c6zjBJ&`yrtC+on;DXIF{-94Gr2$x3$ph+-ux*|1)GVpg*3 zUVzc?eUXiSyOMnMzD#{T)r8Czd($}Px;b7jZGo$zBN2dS`nw8ko|9vV zJKL7anD41&rJ+(!rOVA7xl@wZJlJS@lD)^#$ux4llhxlD0R1p<*};T3mVxXH5CHu! z(8vM1W*hWm#ScdmvGip1%?7}yr61PAcw6@ZaIUcn+h`%+xN`Z`cpW|e-+J$W#UV|7`< zBB&^?V27ci_Z}>Qs^SWE7^-@yVDssC`hk2w*Z&&g6RcC5@AW4bl2clMFV<7yO-Q-6 zh6yb@aQPx6T5z%->eY%O6T0eKbB&m*|^d6Cl$_LDh1`;={t0H3dj4|AH_cHiU}7JTXue7Y7#k?;vyoZ04) zYH)h&_=NYLvg0#N_+)8V&!!Q3ow{%S5cZQfy@+zU`;P9DI*qfJ&8~_(Qxzkg+>=`n zT}4+m|Ki(d_v+vjGd|tD-X2d8;wMvtYe@>CcZ$q<%PE2fNrh+9;@XMwAh?X1J+o5~ zy_3|Q)wM{nbFlG1B`XKE<2vS(1dtZ7c&WqP4BITf)oM{=57lYar6wyU`2)Lq6o&GH$W`1x)z znLfU!2Df@Pog6h2p`R*#{r2wu=J$91>-v>m*|AeyOZYybsU->)sBlOTO=fnrmk1P@ zJym?o5@)(y#kB-ynv&p5qeOC2VN)P^=&xIs2)_WP+ZDgbG$p~A&Tb%Py*CgNfnqwp zzj}3Xe?d18TEf>rXoDR%Q4g+>iXwrv~od&g!SW(U~G69|sm z6(`AVKgYRkPPRI6o8xxnwmm#7O@%oQ6#A+HOm|m)Cx?3*a;>i{|FmvD$GP2omVa8e z7c*GNqL;e$lBVf=SL<~jo*DD>nWn83ujH%-7;MJ+hGBd0HnHD}$eIXQ5M8wrcI$X~ zV|+U!dr&%!=Aj(o06b&`3x|yHJYF?fQYn^*X1)|}NUKN3+X%bN zj#B1oXwOK|{w%O-I*c&PoDm+2rt;eP&ue`8*b8I-W zoz)N67-?)IJA{kU2@YkoQ#MAtLs{%$FPh*`Ru5%k#5&_4-guiR?6vh!ZrA7m&i5i#o}LjMezy-zm`&F18e z=ua?!+g8Bn_I>@QKM#I4`1^~&;P3E%x~uJL@dQx2ieGwv6XUYkb!$2bR*Ihw@ACF( z`%vvSjA$yzI_)C4v=mcuy!!EmRUFUumfVT^bEIQDdlTAXOL4Sg?Uppxu{lgU>-qtX zD0=m9{pRL}>)R_TaJqIz2F|6Qax=ycJpXL_IG$F6Yi_*@1cV+h%w~qYcKGeZ<(2d^ z&4atE`)?j(cKIoq%y+OczS^t&D?y=%lBO`AcE1tBBecT&(9YF((V+73_3Z(?wNXBu zw?Evzx%4Y*8#t;_Ytny>!yEN}&t%XpN!l5xA3Qy&2X1pURg<4jjfSTU)ousoi^aoAwFB)t zT*fWdYs<^0J-g!>nHIlGDeFh{Ff5J`xXCo6eUr=lRmERl@?~K=)uFpeOm!IS zKW*v$str@mmx1}Wi|KlJN@s=hrclm$Zd#=`v~?h9U6sBbo0Y>S;YnGKxJi;%#G}%c zM)imJY2we z>J7mJ^^BZ})vJ251;r9nGk?RXl~{sm=4)8B5=&5xgoL{=DV3lY{j?SPk_4p^6r-26 zVpjyERDxo35?W!oUCGzpyU@_t%v;gW%v)J9&v%W*$9A{ovv`qtFUzycd(r0Udi6Me zKcAU%KUZ?tvI&vIaKwVxvI!ujb$mx9&zO)W#&>A#k&r7)2(mFpZtgCV2_@K$P6yQr zp#-&<7(ul{C_ycfP;KDkc0K2E4Z4(Af@<_JLbVc0P>p^@s8(VLs+p(zX+8c}MUf&! z6Cjw!@;;h(OEdw3c^(I0i6%gZlrUGch|D=o>4ro~gj6fB1gk|#gj6fB1l307gw$K2 z2@pm)gdi-@1PCJ?LJ*c{0))t%QCyod%E+9MYLPifszpkKR4cJmLU?TrsW&nw$$BFl zLJ*c{f)_?Qgdi-@1PGBi=0h!_&GGJAaE%5;N`zD^u>`9{N`zD^u>{pdI)v0)q6rX2 zI)orB(F6!19YPS6Xaa=DoR@KJ&dZE8C!|_rPLgVo5+T(}ER_)6=7iK6nUiF_kq#jU zOEkd?BOO8zmS_Tm$Q<*DJ<;ZzW@JuCwaA<#)gmQAs+CwOAv|+J>W$1vvffCC5QHU~ z;DwP6AqYz}0YYTXSzMcQmXSFj)gp6}REv}dsa9gCgz(G>sW&nw$$BFlLJ*c{f)_?Q zgdi-@1PGovb!Y&t#1d5VlnAO;VhO5wN(5Cau>{q^)6lq5i6y8Oo`zH_u>{q^(~xQ< zmY`aA8X7Jsu>{q^(~xQyLML!$sCmY`aA8d9yq5>yLML#mZnf@G;XooA26EXo)63h|Fn1xRTQnO@I*T5CdU}CP1L~%XvLDAIG^|&~gdN(eD`L zS}s93dK{x%%Oxn6?#4V}K_il$>q&P*%C%gA< zPZ5NFoQucSwG6GqJcbjh`Eg@G)id8ZgJ1P5&T0@#wi;f$(ZTc+0%EDE!R9ElnOuhQ zD8oT{j^%NLj~_A^hnpfT_jB&*=UL*87idyMK)IlYby9tt@nAE! z#Y7{=)9GRzsEAt5Qx9Frk?$DgS}s93Ivk^1%Oxlm?tU=0sk=PXatX?XyFukzEh08B`DuMnuHuX83B<5jn8B2l|O6jB)*ryL=seDOxPDWwojX#k=8EVwrm0j#s)y@ z%0zJWMTTIy`st#w-fAHLxM%`|bbU3REMnf7M@qSD0*LV5_(ZjT*~pen0Krt&*69I- zE8w=Q2gEhFoxnT3{8(`RT#L(il)5SlzrlRx%MZOusa6==8Ph&ChX5`{EYSqpFQSmAPg{GsLA6fVB59KuzfcAk9Mz zP*XYqh}EwdEOLnY2|Ab} zWD`Jy=PeL|rF0PCe-wx4{F41i}f_LE@(=o+cjT(G-60N zfPx9?7xSt4ku;ZLCX%4C4y$A$2`XoK!4bE?M_~ip8G`9ng+rs%CxvFVc{I$9OGkke zk&dQhg3tAAYCi06?iSYhMkd4#Z!%Fpe>wZfcXQSInU5&6lu-tDcm+^4wbRU!2 z=obAl2}<=r+YWP#zrV zOKw+vl}9`BdwdceBV6KmgrWA%C*e`3bKg2W(52532&%Kr>~pEJ1cK_sp25};e9ao{ zk~5TRcU^+8*^C{BCy(rENw?3pYerG1wFM0WSa&T>1Z%0ck9u>FCe+)49`!mC#9fUu z)Cm0z$rb=RudiA?E#dgH3OgWyFrTr*O0O?pU)~5*EOLrqD;^NR)-@oafgstoy8x13Mnm~!*fBp&1a^|j%2@=*^*FDyLwTGf z{OBEL5rq4}4a1H;a2Mf0IZkbGz<|3z9C>5hWF2c`T({1iF|O+>jMVrFmfjLLEXH{g z90=pS4kxjA3p}du@D|TKJD;+jiF$qHRECYq-d%(Tra13`+;CpU!%w^gduItd#Kc!p zyWyd_dkeO1UFV(~;FJ&d4S4*Avjh{_SKz(_&f;+10D14c&d=3w7Kzg{++}b^hP%K= z7qpHmckaP?7H(BzH^1;%ZO;wtqzAVyeh7rW%w3aeIE%r351hB)De&BZCnq@Xz!MUj z1?(gQX9=Eo;4HwC3p@qw9_7^kd@I86I zYF{B!>?=gIkV0OqzA{wmD?^?9^XOi+L@{b6iWv|5L*`!X;v?zKa>fR6Kk8TCA$MxP zIMNcPj-gWrN^IDXkgf46s`nJ3?Vci3h+nRDqM=G}Au9D2GPV56YJ_S^fT^bhgyrr* zv9R1-C@gmu8kV~Sm}+jATfnf~Eg&o(QJlLAh2`!-!*aKPVYyqtu-q*mEO$>S1n2HT zVY$1|u-q+RSnd`uEO!eC%U@EQy9?m}U?yU?)Q zEnryg7BDP#3kb{4D9+u5!g6<^VYyqtu-q+RSnd|!me=m;%Q^QHa?3r1Lan=Q3AOG* zq1Ig})VdR2sC5?#weCWp)}56?t-DaDbr%Y??vxQ~-GxG}yHKcg$5W_v7YeoRLZ()H z&C8$1lmJst2_OW17t5>OTZpQ?g~D?7nuS+2tcLjogynt#gkaxf^6K}OqH=$!)a)NT zu+K0#aiwPWy{H*KR^+@D3&l5moaLBDR5?OB%h@M=Y?W|n;a{iUeZUn(?zaL@mRW>2Zm z>?ws0NVu(q&pPe~TY;a7v&#AOT-upo-b&5u5@NfqmP+DIpN}+jmY0bXt9Z zz$wArbM=>aR(a7j`2xK2W;BfyK+8x04Ka1sEDhli&=4L04Ka4tH4Whr&=4L04MEJ7 z<*U|CCN+dd1476beVrOunuzzAodO6!YA_)DLsdCgWwp@GlQ{||iDrdW?otoK}XlDuA*X%4|o0FX-TXfP{ z!nO%JOW1y2XNlak>nmh?Z=Hq6r`(?E6krX6*jnopKt@RoYU$oY!l2 zwP)K!-8YPmeGfs|j!x%I$cozV=#)TOXbI$nmOvD-U(ky|l_LUG4%-EtdSOeT^E&M8 zGp?Ka?~KdlK04#FSh+Aa%(Y9cZEEdeYnxfS*xn_^_JsY@i{JiwFnG6_u4mPtTERc_ z)%*IZ0qjM8@dCGz&8LHp>-p>j7kR*qVGnnU^$vQ0diTKYs0N?QU1h6!HFB?S<6LyxQ6J#WG?>r@o9~ zJ0Q!H4~cZgZIor&PoSak*H_q#RH*-JFYiqEN?SiXo#eEXk4M9qkNqv|8Pxze+D9h@ zIgigzh1#Jh^VyEOTFbP54T1Hl$Gx#->Q6}hIOx!uW6O|6Cy=8)o^XWJ70{4G!f{Yn zNT)-}CruvP?pw+p1S-s42S`940j25d01Egcpx9Pu&D!vEoKyG5KGOJp>SFy9pZ-bp zx1S%%TgLOL7hqL&0WkFfu@K$1$qc~A>j8A%ogf@}5ul6eBE(<<tS?phJ<dfEBK5ZX%AK;7Jv(0W> z2J|=r94`=Sn2P3|)1#wfA77w-IWIGRMyoGVjssagH}K9znR=jxP!Htn3#V6XJVnKJ zUpNOE2R$g9!c9m3h(IYtkU#LBFF_HYkfJIGP)N}u2{48aKo!+roGkhYS{JrHu(CsF z-z+&tb)Oy`o%!nOWKtJu zhpOt={=RxDRR8EFX0a<(KJhEB{#M)q_-R=c&iSE>@+*H|s2sW{zw*Vdj239R{K_F) z%Ctkr=hqJDQl=f+MZfm(>Zda8Fl_Q`U#&}1#;+R|)5|P}wK>1`Rk3;)@cGqGre(In z${(S;E>jM}B)@W8Tqql3_!}==S18i`(y#k{sqUFy_hMIQ_t#$C_-N#)kQ84h${xEE zDxZ3X)9@Z_X+H-w)IXrZMWT{q@v-ukBCUIGB>%E6Q#|%E&0d2qQw{@v@5CL{mkzd| zXd z|18QG7%h6)2kphZ+&P<#`celF$^#HWDDIWUA%x;SbwVP*w=c>n0n8wY4rDwj94CQ# zXg7T^#x?Y!6g@uj@0h^l^CIQ`{Xyb0A!X`c62#Q-t&u|QMCE16{zcS4SiMaH`|3%d z@ob^imo@P5lrr@&X7XDPkD!aFVFNO6#@BV(h-`m?^@&hFJ}(BqHApY__4vGSmH*@j zTQmZoIJy`Dul~Xz@qUc_`_*p?XRYS}^@Y*>I-q`Bmi!Z1J$zcIOh2t2K2TJq{y3n& z)cg}tKYlK$(EcNGu34O%doSN*ID^&_u(`~p@P zH#i9NHJG?l3O|NbhA^Urfw;k}9AZdf;NGZmjME|I2cwF;HCRd(biuxOFtR!T0lEkj zMpp+YKp26-2!oH7mC{9|FQcm%0>~mT7+J*_Kox<3RKcg%N|^#bsKhEp0HO#8B&rw! zcp@N>C;nl%LaHzv6jfb-3`Z0SvegC3>5xKUb&!85uaL1LVy`u;hFzdQf)OyRCUyY> zj1e%%nff?jA#1p!hsv{#aE2oa$aH8}=n(E8@;QV!o5CffQ3b;l9{}cADZr3Kz!WP* zI2}?xAW8VG#=A!QR{XvZkqOba0(!w3wKVTBlwVFZSeVTCxO83AKtSRo8#7=dGC zSRoE%7=a@)Y*dC%O1Y{V2Au_BG12T-jFfyzVXEY;Vj0`J;fea&Xj0`Kpfea&XM24M}W*G5G zoM^)eAt1vD43S}l7?5EEhLK@~IHMT>V`Nw%3}hIAV`Nw%4rCaC!!xWdoK1|T#AJeJ zSSiGi#NZiLig7xm{18+X4vR-qVpJ@sDue*42n<10AqG%IUP22e#{Fsj6v5ryNd3SPM+S0g%sfd?D}4x_9S z9C*w@;2>>y9!4Q$_|X80vT_K>FaiVVD#w5fBQQjUv9mo2>8b)BdXi_1l)*rT5jY~l zI&cRvjKD$K*r_FD&Ws+3-WMCO4lsr!2olx-$mx*sM6y-*glqIjbik6WLJVMw0Fi7J zf&g0t2(pDI(-fvw1yALDtrtRw^Jz*^h~5iB(g_OGc>)H5(g_Syc>;zV-SbpN*A$)v z`=i1T>M{g;HcKKD?&my*$uy}Sjt+V#-3WgMt>V#%FL{9`1o=?t$r)6^AjslFSvbyM z92^AsPznNB>j!xfd=&=;K*A`+QNjH6hFm0Hib~r@@$@CxtON4aNjLDFq3~q`aOS zhhqZSRoJH-hhtJ+PmaSeDX%BTp_t$qfyIs28BDRr#*3kpM&%6O`SiB-Q0KWXg;{)t zU+4>>l-89q+-pmr)Sbiymkfd^#c{#?yg`)GChQCrioz(xalvl`Qoi7+nZ@;G6j5Kw zTd`3@eJO9oMiKR;yd7hE)2X;Xed!=B5%r~mxJ1;K4&o9~Upk0OxW05T5DV9rE=FSE z`qITvEL>l@7>kAbmoDNGt}k80C0t*+h)cM>bP<<``cmGG9Y@rc@^3W5*Ho zrMw+Gj;Jpk#3iD>bP$(_`qDvMBI-*AafzreZ2kfVmR5xi3SUOl8i6%0{nh}UJQ5gZ z@|Lp;zar`>TgO2y(g|cIUQ0Uf~^mQAH^FXNPw+U z3}A}@5p0!$09ype_OX;F_%xW8rt!S=7#V!j=Tnc7p09S*cKfv1mF7pwA-WA{kS`%b#HJ&UA4^|mf@Zj1P9l=@`IN%Tgg!QB&hhUc-0W^V= z_WoLyXZWDsM;KRMemv*n(XsdFL##401~e`lA+iT?K36dI-M|b<91MLoIHyCLc=-I$ zv`tHC!)c)pM$=XbGh|ONeK?x7Qk>Hv<&UOqTsYJo;TL>;?r7RdVIbQG98Fs(4rCjF zqiHMt8Ww)GIZRtA3}hRDqiHL}fovmikhXa@Z5yr;P_%UeGh|yPd^kv3H#nzkk(J6!h+6Wwjwn7}Bjlj{gbuq$W`%A;rbpZum-z2hI)7J$Se1ns~ zV(nZtd3xW$D^a5g`frNBSw}!H7A25aTh|d13`PkgmVX_5s(4hv^IM9zc?Tds8iB%c zt^*Vxj6l(ZEvk=I;bz)V1<#|ytaX3{)Dcjcx(=X#KLU!?*4egf{xdp-u9f0#R*C@4 z8v()UXDI}T$aA3I2^qUG{DmiTCGt9Qz#!%IBMzw1X>XS1#3kYDA0fqDA<4i%5pQ_R;9CO z+(8rItP31?XlZ`~3=CUb>@+R-C1rWM)794f>C<_I8@xk4adjsP;5D}0bO zdJHVy%G@r*0pI$~TXNqr0=CnP2;d!uPD< z?Il9{yihy5Lr7^aeAsh#^ynpKF`pJbgu#mJZ`MKob6G|{lA9Xp4(vwv;9gK0Fs5QFnH9;*Bn9FHWA9e)aQG<4?|x&Pnx!*1sh6m$zr9gz<%@pBYqEC9%+q zoOOZ%oDnd{Stl^S838j#jIwd}OE{m^pJJOX0PyWFUk+~(pm4$IwZx^V~A z_z9fpV!SLpCUAsx&>Q^a+}I)cP_3rxSvB~45Bpi`F>C{^SCgm5LA_Y-;NLG^{Qbp1 z{`k|;p9jAi9PLkN_2Ye6^}rD>X?@`W-zlwsyf4&$M(RhB?|@undY8pMJlFKo1L_OS zKOwu(y4n}6QQ~_Ve)|`r<8k3)4U99qO9u7mcw49*1{sw4>99~gMAxey+tgY-04(fA zM>wSPjRde!?Fa|X-6epqRqY4}PTnPekh$@0y`1g}myAZ(d{De~f&zOm2pD9o6ByWs zLBRa&X8KfZ0^w;%Ku+K-P9DgA{D%O^+FNcOoZR!@z@ zw@-NX?WW$1OUKLbE)E=f?5%U1;XIP(H^ZwdvxoU|^E}@cj{mX$_PPV_NKLxpjhX^X z7u)V|AdS7@*)Hq9cI6OO7X~CotLqI8Ud1Tt;c+#1Cob&aNg*HE!qxguIBvy(tXbR~ zgnc5oG>6z6NNf2yZr_*Ar?8Yz*FfdIo}0zwFs zA)E&Q&I?#V15X0_+b1){=MU=N2Pr~{GLH5kl0cvkAw<)@gr{n?+x|qvftTlduv~wv zH-vs(p09tq-chX(D=yGp(b}=NQ2WY74z`kC%9eDCD8_Qa@Dw@~wxST%kiz3(e_OPD zbUZzduV!%j6Ro{HI*iv26IH4gV8!|L!#tJJ&WiK3<7DW0zM8F{C*zvJX$a;c;)F5^ zu_2g`h;yVU#D-u#q9zN*yj!`p;~IZ7CG#;gT_Mb-WIm=QEQHyV%*TX{0MN`hnhM<% zaS;VEJRJ*psM9fx5!^qIz(ARNkV*BopS>X37a?Zgq%^CORTTxo#WF$WFpTs?L_5Nz zG9jQ14Ms%B7zl}BhfY4i4=!b(q{IVm_WPl^5@MMktMw+r4=$An0iAsW1eeN$fR4>i zm6*K=83Q3Pr<>RrI%n!qgi?lE2 z1Z$uk%8T^V+6#2oPqN;+;*F(6cJHZaFYp58W%{Y<7V0mVZQ=dYgprr$+YjuL{P6NJ z{S-f_zl0yWpW=s?=i5JC&8WPG(tO=(s+ohre9e1OHJ0YB^j>QGq z-_zQ$xIp^?z6$1V;U`#JpnWnWwPSIK_L|lX#Rb~mS5KsRR$icgv7_~~@&f(U->ASs zX@Tw)HP?q(Ly7M9q;4oJuzNvGrXkr&bVEK+gky1$<)n52AvFJ` zMDLzb+};NnUr!gqQ<807p3ex}PY%O)d4Yah$nl4hE!!1or)D&uy=308IH#${;sV>( zuu?}bgT-aq=|*?~0A=kkYIsjJmQo_$54ITUXNeUTX~&L^)L+&Uf`N1xgg}uGbdLoH zWqlSXpnF^)knh8)dQSuaOY?P)C)6kkOY?Q(GP*x`uryycuAlpLV`;wbdcMSg2BBX{ z6krTbsg}RS;sWh-zrvmk6lq_PE5xH?C@;`|PErG<1-jvZw?A)cC@s-V=1g5OHmmFL zIjtSbOKcyXlQ9MSqL|k3!U9FS<9&wsabQi?)}m2yy`|=`SX#jPmW(Nsmgtrb{G3m5 zw(S>elK3X0xmXm{(Jh@TSX{yj7)NB{w#fEnwWM~lvEqE&VfILAXT|y2=k-r;grT1r zUY@Ui8_>_o^YvE&{k%M1|16-Nm*?x>)^n;kV8tccw-1Yoe0+vGu9!$Z3T~hZpeT`i z6x=cuKv5$3D2xvN~vv`fnuhzFl^@TZ6n$oB}DArXW?J_2SIi68{>5s-vx0|(sD zJTZ}c6eJ>mqD1mhkc zLdJORQAkGamH1>N6@_Mr<@;tN6@_Mr<)ew*I}7LDS$XbJC?fYtP()%;C`zP|F`j!A zl978QJ{d_xp;==2z8OhHp;==2Xgv37YF48}@=06GpSd^3jl@87zDUM!ZZU9|fripeT`i6r?18 zqD1mhL{jln-GjO3KKwoY`J_my5Sk^H@0&=f5Sk^HkA_Sx=k+x79GlDJ;~+U994(WN zgS3Qjv`jvZ~fJ( z`B=!l)Z%x_l*-4#2!ydrseG*E6TU-9#7PJgBGe&-lJ}6nL~559D=xDCVLW~aK?s>* zoDTt45C>$6aTXuwkT8Efl;eDezyX|+U1xU-3`7?`X=eSHUPB1=zQ&fkL6SOtN z8<#2fCjzIq{=oNNgZ&VfDfDNC-22Blj9VsCj1!Iz_*`0lfRkW9#AS;783+3zAWjOE zBZWf5kV@+iH#d;nQm6x;VvtJfQ5_Q}DOBVWQxb}k6e>pwRVMCJVQu2(2I3@zihP2! z3O9ICs2nL2Cx+BPePRt7*|>6_3gg7h4a7+b6|o1w4#!Cfl_Q1X#E?qk#LW$`Cxtrj zDF&&u-5aw3QJ`a&LPb6?C80P;p>m{9yT^Shu1`254aAB2RESi^#7PPjvB#8z;v|L2 zkwS6eK6SxfC{Em`LL>-wxZRUNMeH#pp*TsQa->k4xKCZM7m5@2sSpW*9gdR}Dq@c* z3B^eYl_Q1X#C__5y-=LEPlZSjY_kE3?kiIj=c^JeM}^uF>#Gv&2sO@EhT273S-TqNt07wIt56l= zt07vBsw!b%_J(UovTApP8s}?g^%ZD~&0#~d+*efz!wf6Ya#U3b!>CHMBh<*aVlc|; zYp9a)@_etjeSQK&lNd#~j{^;hr%aV``9TiRC+m!Hz()#PZQF)DdWwSU#GjD7a^y8wFzdXqqAt z%@WH;(-e_tmRLTTW^zmo=`FE*G))nSW{KsaX^KcRODrEvQxyC>oXE-2R}z#OdK#m| z@_o}3k-k}C`Dn=GJg%KoV)54*Z2<9WQWDI?9+z`q~VhI>RGKBJxSki@%4554^P0XVDSW!E(nv(gLnxYV9 zQ!*b@lNG{jO6FrCW3$Lu@f_S!EKAs>ch-b^?$rw7~K?sT)d5bW@Md=JOK97xO9gRErhoTMoBB6N$)*^R?Hs?X0*+J7qg) ze=dmW?8CEsOyW8Vkrn6Lj<-`e!^;cw&uQzixJ)}~J*Y3q`5D=QVQGo&wB<#*H;>fR zaE8SNmTw-Zd^)d!;xzQnkANxhU3TxG)pWW4UOK8YjO!d%jDx= zC_*?|CLafB3E^m&d>rItzFSPDkMD^=k|~vsg}j8ZOsRY<bN zKRh!F#{`5DDMG=z5J2G~`6$?LOgF)2`IcBd8ulC!XqH$$8ukhiXqH$$+H^5qk_U_m zfqaDJ+_??)-DbL;Rq#<=WAmv<&G=6!FUNZ#ow2mYZfa2w3@@42fo-IAEY7!mRZ|rZ zON(?7Nb*04R`;fK6sCo*|Om zsU??>hmB?oo-LP;hs|aTo-LP;hkTBA>xgsZrBpr^awN6*XC0($S2H<6=7y0=fDd%vl7 zV{$-kiRH8O9EWC!<)guSL$inZa`QajQj-NsEFTTtV}ogDm`YnNA8)$YM&a3V`FPLU zWeu-kg&k}N5{Uow;=_T{jygRSL4Ni z|E~Y^=fUp=e}6F;{C)6QwVytJ_T}LE^7X~t-2;q@<}ehmp}NEMFF|B5IO6|^ku+X6 zsuUkY5B`BNpl$nDxs<_WuH?u2tG9O-5ASX+-@UqexW0S%|Gs;3W9bJ`O8v~Ef0h6M z^8wu^G#sdZs;A?{!sUc0;?~-vh$6pQ)HytMY2_szb}lbozqZ)n(lpMw59T}t<(vjN z@qwJAfS5x8z-qYbWmlBC`2fGmyh)yl=dHWkBM zrD&x57M@N!G2r@Bv?KN-?l#0z7ZB!PvjG8we~8D(lpS*InB1x?dYi zlfHVMuV(9KJY2^~1WY)zgbM+uT3W)71rwkE7EY10CKr}1;m3jrPyh?3NHmr$;m6V( z!dPRwqe)~UF3&WJOvDeTY4pNrmb`Ec5kH(}(hH}F^1?Ml{BYyh%-ya)!NbZ$94jCd z&b=DvUX@Vd*Ey;F_On~(*vTB+RPn1P0VlF!RO2?F-NN41T{LR2((6GHh>zPlN(wiF^>VyQoUxk_<6+QM6cN`w8liQ zQ6u5?cr|ln&SbuGCgI9_o31fLUK@>su5TVqYjXv&p=h6^38ejmLGSFWwv&49n*h7} zc%mv#R#g`mpoQ?`eJ2>8g}_+sy6^+E5EzrG7eh3At-jPc63R+s1pXdy6G>uz!i)DS41b@NnDtdjtnQHQ4( z&c*pe5L82WGMRP|_KA7aL(`8*-35aARJMr#vu!uT&)%hTSEGxQcJI>?=+HX>!6~~R z^kuT)c8U0nZ}VTD6D`FBU_!i^BIu2$+Z!9_Ta>evKQ+RaWH!V2X;`o z`&%e*&hyv}esW-y#YGKVc8#xbO~#use{m`L%hPh>p}4h(@E1b&-lu#Yt$puTkEfP9 z2TQEL#RMxL6}rcGa9{0=6DuGT!eWSv0$kE^+J}oL-cZ3^&dCs7_h=&~F^h8#dFO7^ zK%6jby>>qITEKNrs9(Q(cf*UsnkUNA2%Z)cZ~Qq0g=|7m+k1Bdmkb1Y{2t+AqANM@ zx+|P)@zI+cQ0nQ$phU1E+B3m7zk{^TLpY(4q!#Y;bRC37vX_ASJUt$vk?h=7)q7V^ z;Ib}Z%CQ%ro-eUub)kqN z7nP#OZ+JaCb=DWW?o> zb;{GRTibT*)&|!pZ3~Y!k8NAZwq><+?()Iwt_;EJe%oOB;M9iKUE1)vU)#L?Y2{2g zR^Zad3j7MUK81MQrH|d<*H@+LV>kHq%~JKT8~pmV_1sy<@VeXGIZ?%MQ^}%oKViYG zB3S0u%FFzA;{FkzX51Cx(=5yUnsKX$Pcv=+@oAQ2e$9*x_8mi4yTkZkrCvsw-#~0M zL5vfxe&)GXzb^IL&zSM*Xa0Nj>r%gd#?Qn(sAcRxnU@#`j6?( z(r%gdq{Xiv-S_L)rGEX$&tkr#wmphsA48(p4}laB z5Xb@nVHEozkR<{Fi69`1Vm|~DHC?YB=kMn;=PD{z93|i*O9}XakS-qW|3PbW{6uSFY)UH zKfbCqQ!l?*=A#zN{F;#gpJw#br&*TyH6sr`&FHUBvn=y#W^C-I_4s4uXGD~HSrO%a z6vhmJ!WbY>%yK^pV~IdvY!E1BxgSO3&#|w5LM+4!FZQw+)*meMYi2BggiAAHz@u4~ z`86|UJerx;9?i1Mui3~Sr`^nJ&bglzQSL`!%m^tjI|K@2D2T#XB2X9`1d3Vy|Fiez z&21#f-SGZ93V#SZAaKsty`m?{8 zSyxtdR&`ecptSFZvn#Ue_~ltycXwPC?LTcv4(%iDXiK{vwd2U7B`6^wYabDjO2Mu}=CL4`D=^W#)VO9?8ZjRX~*AE!bZyC3aH za*#G4PqMPfizAbkBFNfDL}Zf}M<&fgkV)zY&n7R9OxjR7jcY{bN428!<5Wm92`Z$4 z1Qnhir$SmvP$6w3sPOza741K}3IExRYU+Np8%HKBK?w<&Gyr)LvdN1hlV&2wBy|MY z53t5G@^dFT0YDx?{W64g$E3Ta5^$ElE(5>!YV2`W54PDT08JU-jFpT}n! zkQYZLEkTK>h9bzye^SV#nFumT9YHpEah|m{#8EBz#{E1#Zic)#vet%(tR)taOHE1jy3nm?CyuPOAtGyuMP!o~ zN7mX9k+sAkvdN1hYi-2)ocnpazk$3svet%(tR)taO))P-A0Q&Wvdb^J1F9yf`vy zDTa(1h#{N2I5KJ`hKy3jkWF43S^E!t);FdRcpVqz$FySd<5W;Hrj$elHDK~3Dm*_< z1+`>QBr2#4lP^)>`Ee?!v77096y3O^ObH*`8fC`8QBhHF)It>8X2!u$KT&WLJ_>F# z(8IGDegW)hDEaVI-V1Mu#t&aVn0^c7z zbyml|{!pru4|TCWB(NXA9Q72AHOn+^(DPMp&{H}$=-1hbG3Y6+8}xj&8}yXkN$umb zpNp}Sv_3BP^YIT!rKhk{IyZc$RGz|4X+61ALH7h-Pxl00qI<=CE#)Zg z69Wtg>WcgN@Fltj(KCOGjeSP>6-Gk?p#GL5J z5`4Ba<`8^Z_pz8m@Flue+$WWjgfAWE;K;Z>e2MPCv~_h4o>QuOg0H80f-lj%;=Y!0 z6!)cmUsv~v`!u|YnAbmCkH-^n!-tl~hS%j`pAeGkO^()7zV(|y3lPd_eOOv9uzf|j zh}Kea5v@vcU4K~GULUH;MYNWZ3xdn_xRP8SmX-@5O;vj#t)=85S{3BN*jB+_=>T2P z4>heaxyor(lB-htO46#@zHqWs!CvLGD#=x;eI;p;&qG8li&0>&Dt=f_tCC!m+Ep(H${V?qovseRh_jqio)n`FfcWjBe}{^7pkjfjbRiZ>#r z%87d3`$u4diLJ?Et#4$;B5tAeoF;z|+lVleUfs%yc5m1#A$0XTBOp;K< zR5@`>l3m0k2}Mkm6URi^hojN8{1qv1d&-oyn^6Ol83#utM8Q$oD7ejxgQGU0;3#$! z+-AnXwOT%iuQt+>e-Pi6WHaO7S}iiTmRtt6nQ?Hf78zViE`!_5IQZ;JR>+lBMd1~( zh1aA4LLC0%a4NqgA2TE$qzZ97v?6`Ta`te)kd7swv1|c}fL9<+2rUXY@Uc;e3R+F& zN+euvDgNksBEPgnV^DsA2Ia@87! zOI-8(I2E+7L6MY#)-(AM6`mibg2pu{5*0L^$(N|`{5Tb-vG@^DMP(!oWSz!FB|~I` zBFW-3B2(e{aao+kWLca>WGXyAPQ__#C=ODcMuy^0mFLH)fW*f7A{D0*nF`O3Q*j!T zWpNsjsqp+b6{oTI+hDYJlxVE%tuO|q#K%M`PGc!5PGhnxP9yU1VV!D%HvRtd|*DLU=NDLM_sDTZa@6rCpH6rHx> z6vHxcim27`WY$cT8WYiip0q|?M2BsB}K^vMdIX8nd9+H@@Ui$WW|&RS#elYS_Bp~ z5rNfNaadGN1QsQZ!0N0xEG)#&+N~e%B`v7D!M&sglNU#xCy-U1jBN7a$g``lys8K3 ziq|U3HRHP^1^Fh_l{tS>i9+I56ne?cjeOquQ?|?i?#!!_jp`+ic+&DgR z9>+)i;`lB%j*pHW$47^bwV?_~guDWA zLRw>SLRu|xLSBJ5A+9=ce5(D22#Et!uRxp-SDi?RYeppG6^Ik!suKxu&4`4&0&zlI zb>c1$*NnK?;}wV#;;It~am|Q?yaI7TTy-KLt{IV#S0GMkdVeMLPSeqF^kE`38>o;# zlQ$3&Xde;_`#?$@g(HQrx|t{4YPc_NS!hvsp#Sz;ItwLWITeN4lN!CD(P z7Oa7bM6e#q!MY4H6|Bc{ur7m41?%}(4y~9j`3$DVedaoXhUpR-rpM86#B#rwL|+Yr z;}MfDq4WGW6&!#W6scRl;g!jksPOza6&w^96p0EBc}%`Uh3Chqpe(cDT%J85qm(J( z+srsPnj;F1x{iX|%s4peCkl?jN5O4o930g$U0h#|uEb9~qU<_5rW&0cCxOaIkU$M2 zNU-cU2~<&n1nMC{f@Q}^prXcUMd|FAqI7ng1S%>)0yU8!!Ls8dP*DjIsEGs#mK`TC zMF6QCQ--7*%7_Er#{g%TApug2I3U%NmoZ|9s!9o@I2n#INg1i{cErT~7-Nz$;yg~V z35bTl3`vhvBMx{U1DwSGsYV=->dA(QA*w1Rkg{QtkSW8&#QqpVq>MO^*JJ43B*RdK zWEjeb1Ah2O6veMjnmh$tSd!g8@0=XGR+;*n$fib;9{OaA9_2}505avpkumCy?&I5$ z*gu(ki2~1$Q^CM%P$WBGXf^o~6`mibg0a`2NK`PontX{0&yQ0XT@P>Mj}uXj1gxsW zA#bL)62FjqGZZKCkdr_gK4zi~6W_ZBQsOF2lDWhR4M>!W2Q}i--p<8V0m+gjAUO#o zvKGfm@HL0en@VPwiw4EgamL`yX7Wd5DMONzGU9;nf#{jI06-ZMAY~*0N6i=_u6DEmuzK;_T3X&zigyaNQ z5BUDt`}tzXhkCOIsG?IPNS+_Z{wQKYY7(30$Fbok`*<+Dx&Jtwu_3DVobztyaL_wG zd)qtjitMw>aT0J*0+y@`y3sWH-HZJ}_uX0lqH`e<@v6tEjIL)1DhEgBX)0dzIF*mH zoB3bj!n{2{?*DsI8XrI)^z3hcdiHE``*72EgsTiNUbwp--Hj)M>A3OfS)*}!c5r&w z1ri5u(IWcs{3WT*J{|JM{!jgb&e0Joj*m^+e$+KEVJ|2^um5NH?+P{Eg;n11I^C0t z^Pd>z@#&BKGxmIbdf|!CEj$iRc=4BSPyNR??D44G@?tx4o0Y)3^JbJ}>t+ zmhmo@;h?}_&o3AY4lB%YU|~+@@X!+yo_k)xe)m8A(@!|*`U$aUU<*_5b^xY`QYL;28XkYbFP6%I!eWg!Q*l8%yRp0_SqAZea9UYpShFa zGxtKM?Ul!8ULK!$`Oe89qjt)rdFMTWAvn+bCtdIHmH&8j;pOfh_>X<>@m2SY_k48W zKX?Cwu?U3u(<|@ki2LI{;PRpX%O5)@ym9WIoch3iz}PAI)!J?2H0qL@pg-Q!qJ{z`Sg^> zu_Ji&WyF+Mo?O`G7(P7uN`eF*0up@9K!UHilkO{q*zrsNEt=&)duC7l-f_?y^qV`J zIc)B{e7kkRTV#LF%k6VT_50i!{eEXJeD;v~9S_PgW&fOeSpVDuI`41>kB&T;b078G z%RTNM^G*lci9h!GKb>&0=fQI~cs>lC&-*>jC-xObT`$65ClMrJ?+_$W#e>r~C){vU zHB6++VIo!E_xyt@`$<&QPr{1*4!0=Q^HZ>zpMteOuLl=gcC1)P#JYt<;*Vy!__=SiA6Ph!-0GF4V&crv5TlQngE6M@#Crp}Wzb)Lki z^JGSyCo}3iSyShoyQa>QG*gMV_Q9a`WqoJV{sNNxCApoUX`|bVZ(|D{`gliabeI1p1{0QUe^U$uvWCAEABgi4dxd0$Y!pcFCrhd?QQ<$B>L^n*<)Wc*1Iqvlj!X6+@ z!|Gw0sT+o3EXUJKU7m(@&(3>%9)U?eb`OLut(c0C#nj_BIAmptq=deo!24UsA9Okc zZw#f=UQ6X@3s6TcQ;w&-kpNAihiDRyr0TDEB0(MsJRS}_L{m`R!G7-FiDQgwmPqToQiC^;pDqN|cc zLPbnqsfbC5A*L!BV0H$A!6`A6U6quohqCu2OiBzfRmlKTl?)PrdQo;t3^7$nsk*>t z5fi9O`b6phrYadEDlHuijt&pIJZ?i1bXh%bQe?7T$7@lRTPE5E$YPz-5*b&{);D272ccSaN(FIP!*m) zRl?!dF;Ac>Jb|k4Ar(>K2~>qAV3p3n!4Y5c#adw+Rt(d0-Pe3sK-cxsbX_m){H0f` z)ALsH5V?19(LFzZb9TWxV?>8^*vlv;9vpSODYd~k>Fgiz)jN&R4bzcJq#35~!vgHT zGjjCoE!-ldLrU&&nb${&g;itn0a~x2ZLvj_SCH_Q(B=O2Xusmn_dE5nhulc;D*Ylrv^gZew@OTQ3ZyAxkp9_yX_we;wzSfM7 z9Qv^5XTzhH?Fn$$^YYGKo-;NM&t7_TA(wj;W(Ut)8Hb)S4n1Y`4}J0dN3_t{MK_$W zqd|paw40EOrO!Kk&%+ToOvCD78rJPy9PJ;xZikC?XV75uupc!z5;m zv*7t0pLsi@1l|DN1~q!fCPxgO&+*wq!~_p9sBr|lq`aSh{q`-E;9D4wglzC6)Xl+J zA;wd?EGDCNgwh8`onvpg`nbop)Q>xSj|}p7Q-npj zF1+pXC)_gUhg{5>v78*9yV0c!M`d(+;c$yV_fDhG!IFP?_QyXo`qy`h@8|cE(e!FM zYN+!i4R|Fy95ZQLJ=~5K)4SXG4~@nj{`l+}9%zC>@Y>90SPgD_&KK}vBP#oR1mzay zoC@UJUOrqw(fRFn&+x3u^s4dv<#cjAhBGXi16Te1WYKs|#TtM9b7S*6DB7UIE%=*P zYNjfE^Xb_)e(_eaxFP~o@W)Y^B`YBjkIGHFc;olKr^1M@#GdCAzKs|DPUFrdi-*~* zIrIa2-+!viUCUr7fqWg5kp9M}3;W56ZdH&b(k_C$%|jsx0+fGyXE6R&SrhHmX#zLW z-)$NexL3tBDk+0-w(@W!br8;89uBD^P%GgyTLuVq3;#!Ra~b0;hh+4f2F@?^&j7GG z2nqNpFl(YkrOdiWx2-^YItE~b=Mu+ZB&*Wtfjk(=sC4Kc4@R;nomI$#*%R6=9z4uL zX-Y!jIgCsgNhmzOkqNUc2nFY53`(}I6I-7GH;p?A^mf>xV1K86bN?#w?!Zmq(5KBr{7oXAyKEPI4#@I zYB(yKrX*EVrPW$WE;y^1MXkLgwf!t=TLHBX({_4D=Qlk#ikjEtr6ASKGyN|3W)SCK zO(09^Jzwg0Jg0ua7a6ZtWD!$g%LjpVo;(Z+SOpC1)zOPHf)oN_l}|Y>TbOs4)wV1# zXiVozq1OGfP(q*0aadZ0%%Ub}{tVX{vp@v5r^U)F5W(?Dd(AAA7scjdmPxa4nu1fP zW#K%SWuhxBQ|FNrT#y#G^H78VEv+=?p$M*}*3mUgMzcl-i!|%3=mxhR1R3HGf)l`% ziG2QXN{syb!2wQ95|kSeq{d(9*&@cfRt8EFW4;W7D@lBKl46FMhYW)YNtI#b0U=zs z$^nswgmkAX2gZyFeIwCTupAiE1r=dXGk>F1YhOR{^=kCLPez?~Q9M3I-)#K#ugbh& z8?%NUFW&r4bcQ}$jj<9}pxVl#+Ky0#8#tC~Iqwl`!M&XfkW^fWkIsc*6K)F~!L1mg zjqSpik4J;kcbA*KR~V?uK?IUPMm{kFH$j0q#Wr%>jx$v=@;mL+2?np(1ex$N6v!BNHrQ z20V$74;E>O>hPR8#*oQgq(Q3tgPB;uWP%#EIxCO|*4&J=CpcY}iPWMUmSQ+GM-Fr0 zB4TQ|%&^hiipi;uPiAtr6$u~u%xNxnJCSB(4y9&tw-aev8ZMW+-H7+%EznHPb|X## zP?-U|xf^j1fXa;F&Ao{F0ZL6jDt9Z*y@=`oYCBU`dy$w1P&>I$kxl@hb~B+~M7Y9R zaJf*CHra*ikGW8h_6Sh9&hR1<{Q)Z18D2yiPCwTfUPK#CKi3&vL>o>&(-~TuF(`e# zJI{(OS_TM~nXzkweR{lGp6L`VX|;^OWjaPHHs06VWjaTz8EcbD*h~j$Nh{t=*i0vB zHDe7*ahK~Ttw>Wh=R7kVB|6qHS4%SS+K~?6te*=M3IF<1Y%W?P)|z|7xo{DWJG8eZ zasgvjtue!IwIgx2R|_l>c@-F4%E*;97J&8D@l3d_h{xG`6S;U1$1`}D1GUyx#Ptkb zZY++Czv=RNuB?&RL>JsOR>m?u8Wsn5{?rBD*+Won$t<<<{DL+&5yh-<#+UEW@>njU zr?#xC(QB%Ge}pjv<0mg71nI;rU%p8R*i@VUoM66$YX7yOgy?`s&Q}v$*oAiqWLSo} z*$9q`?iKk#r$d}i>K9jBd@WUI<#-WDJ83lxp=INBp)3rcHRBDWEDWLdz}@G?&@W#(Q>aq9)iHukqzk6T&0i+tDZx8uRvh(0M+g*H>#Pay*5G zn-$>X=8soeNQ`Q%L>fQdgvmj{VNNlG;02l-6ca%FfQI*O042{N*c3liw}|Ngs0s?= zw3k?F7h)IQNm|K<5&^AZLy3TDj1YxjhES{6P$HIAwV^~zncHOKZI$iU6b94?x1tRt z4Yi65C4^eVh7#dqj&$3?9ENZ*N4RYv>Jm;n&uY?!65_0KL&@Q-XhR7BSGS>rXe-)K zLa3E(C?VL&Hk61n+I(2mh7uyKYC{RJ^o7zq_Z2skNO3FKP;y%9WNtt=Tf(@J!DWUG zaYKpZT-}BegUjVk+E8+E2f4bFHk24#E_b_;p2@!7G}Gs#4Ju?0wj{Dy6J{tHDzifn zH>fmJW}hH#P-&>GOkGJER2nLC$+;l<>sbzN`Y9$*~ z8YK+h&=6>K8)%5O!VNTpTj>TG0>Ul}ye~i329X&kzRx!oD&}sr z_!9QwP{`Hp#c8wBE2J`|mGDp$P+F-(oK>z=I=mIFR3c!#mC8L~ z{fN{C@6^l-=+Ys2L|W0BCqk`k%@e^^w&qEkt#r*35m&Y5iCC*!^CZQsWX;oQZ6#}- z3@$SOiEExD=jzrx8C))R(we7(TgjRygUjVkTJuCWvl5ZJBrC0XBHoJDJT+8i*CMWY zYN*WKMO^dLP?;+a;-P#EmAUF5u6b&x%oPW5%~L~Vt~Q8ko(Q#~HBZIWO4d9zRIW2f zYn~b^*BPWWPYspp4APpXhRSsYY0XnZWjcenMoCbsTcc!fnGr%pRTl;j5p1!lMM|x@ zl`T?oyv*^fcwvC!<@OWOA|>LjYLU`l896f+DdnT7_}+MmO73uF>Oeg%>)}eLe;QQ1 zY@|Mkor7am#(jTLU((LOF%I)diRZ07#;=fw9UlJ<0I`7ja^4T`){nhnrq!0V zNZ|Vc7q9Vi0cRKI8ZV<&(v3yrK$0weLqnA8E&G&#Bv}ehkPP7j$@rOX`$D7mYnQgn z3ysWch~h=J@nuH7r$BUi1Mhx81#u(Y-N#X|36L_KO;ZugoHF<6!uK=qoyok&PS>IiLZ^3BJLLt6ixwZccN}N|j68c+&U3jA`Nm`iLp@(~VwV5BysiMO((j zFqgNq812Pf-0C5NYZAr#{>Qpx@#RiBZ(zW?IMZJg7+~8Xqe{a2Srzi%o z74UW)|E389G>jR(CqlD^7+nr4;x3EPBp|sb1+X{*2I2q#t_}(@Fb;tu zy#S)!%0j?+<|Fj?vH&oa1pv*RECd{y1qhi!;J7U42;zOa+zr5|!&IN{d@c@wmMgj( zetj(HN#YRl7#+D#SNE#0ArH~%BWRWRkozxi_Paz*WYOhv$cSOT3CQ^*8`IRjT5yZb>O?#=hJ`VE@8`WP_X%!3g6VEmq5&KQY2 z)Mo=;QJe>X_ANjh=V1svIeq#sOBSIw$L|R$jOs%&;04=kaXghALV^-Lg)_1EI9I)| zAIX^U>7pH-wwXx-D|~&IQF@ku2DTB_x1aiOyZiQe(85wty!ft;FHtb_dG-v!q?dvu z^jdgj$>NDjravK{Bbk}VG5`7kB{QG72g!=DI@L5WOn&HBB5}W;9LpUKtEirq`Tjbb}u=%BH%^VrXAkw2bw}gG20$Gh+I7 zfyv*Hre5c0YUj7CsiW5!KBYdT_Zw|}uX8k29Nqs$T3;tSP!$Iyza>>=MJi#K^IOtY zR;?xH`oc1uJYp5Z+5t@{3>U}(EQB~ z*p*+QuJWdixaz#r)G@v>Ev&b;GvcV?D_j&OVqcy>S!0mmeCf** zC~KfloYs6<0(Aztji@;L_yQ%$YDK~%;R_Tgs~rhr`7cnUtd=AUxxXxt`q@oM7#V+o zBIUKE;sEvw6e+JQ6~~!hph(n~@`i(WfFNTyD0F3sAzp0I26OEWtjiCM4tpod?Zl<_ z8NxrxRx}3Yz z*{8%4o*C{^>^J5a^T$;!KE~pP3R-`vej=jSXMAbmWOeJsiRPCkPF9y*oMwJ$;$#ht zi#_v~B#!R!Ga64Zcz<#7WVIflJNV)R%4$Et^zw@nD60htlglqjAXxClL32hE5~h}4 zoIrVP=*u1;C=2}^ZePSkJS0$!Nu_W#D|Pm{xNne{TZ_EDfs@yRPHyukY+u(Uo8`pC zUE{iBv%+<81GX;Nte{$KvAJaHn6^0bu1Ph^vc&;%O{!UjEskSrQq8h!akyE7Dr`Jt zw%OvSurApw%L;?Hx^%N_D~z$~(#^82Fchjm7Z$@a%`1#p>e9`#?@Gdyl6T4ezqY*j zM*;BeYsTtKv73(HIxLo*eVE4Aa>P#EtPbZbXp8R$iC^w0GP-V|_&OSj=5Ao#-N)Z| z01K~pc&d20?l!4a|9;v*=jaGt>8eg)Il6I(;!R0}fcFxG%o&;oovN7p_pOg?bG|qP(i0#~y44}jUIN6? zMRf?YmjLmKxG1*fxcdp$T;j6JuXq6U!9`YJ$GLkPBC5XX5K;A2hlr{VA#&6w9QBIJ zE~~G5a&i7sw*EdT`*WqoyEWk@m`A6lXG9de$QdqTfsc#T4JgyJRpedvF35Q;bK_xEAr+p(bEv=%qTj{lyuc){J`Th@RU zIGrO__I@#Jk%7iKClCdyBNSisu%GERg6qA?b3DQGUUjqVF1+Mn|0L7$^s)CqnfraN z%Tm)fgLmx3Z4Yl7EShfLykG-Eh2{hXfq#4UY`z#SrlZF6cJa)<6S28-IT%kycjHOp z`RML;zGyryCb#q9V0t^hy?nTW((~Kzo_zu=7nr?)Dg;N^7i=3e^ zA!kKBGM6Y;6ZI&mF^NKNvJCXdrb;r|q8`t?7X>vYVPrJ|%-cMiNQVqBFZ}mBpyEO* z+f=ElhLh8?JgUXD#Trz5aOMhq*!fOx^2658pM?l2YQ(z z4!lq^7YB!ZMId;e4=Rg?s}g>i;Hx5zX2?_aKRo;69~wOfu(OBJVtRMmm|x#5=07wV zfB2(~%s<~v$0{^GwzdW@?`Ai{1qR~9U{k3y8lg8}JWO-2AbKMah~g@M>xci^{O`t} zRk+4Kf8W@AyrQ4)crTISWsc!KpoG!iav}2R@q)z*jQp?Vr196rbH;8tkIkJSR~SB4 z(%CnG7#@?113_Uib&0GbRrbwt`uZ-StvG|1zOF7mqpk#2KD(~8Pr#^Va5bG=j|W$` zZp4Hw(I(IT3)>QQ&}xv)x;8AgVKXi-r(13mQpk&CO>b_RtwiQtERXdTJ~2YPj8((j zomgft`*p$vD>^RY?&=DR8N>6!tIuU&`bG(OyX7*+m!I7#Kjc%Kii<5{!! zQJLq%d4gQjYV){gQBsQ!({_wUuyd4+8^N5LsQ(K8=&5Fu?(A~9h?_6mGH^x@UyjCd zQiz2shOS<4demk764TjZG-EONcsXls4?wFWW%g2KK$7Y0coL;EFTOGx+3wxkUr$HV z#Xu>4IHQhF%-J%{qEKfqngj7iN3x*OO_b2htQoBnM{8r9XMg*X9S-R*j1fc#!#p_^ zhM}A@ZV-mUJZ3#Fi-Kk%lZRoiB5%-M1|jk=T*&2N*vsTT=4J49>tz(eu%GK~Lj_rU zCoRb0?byrWvC7Nv!*G!0h2bzSrh7jO2ete#9AtW7ILwQZi;Kp?um=}}VJ|NT!(N^j zhILMb2uwwUFzjK6Vc5^~!myX+g<(G@2*ZA+_fAJIi-%z^gNI=+gNH{yLk`1InJ^4{ zWrQ&7<%eNdX9m&ni%u1yEFaan!7k2acupeF>Y^BHB{x+r$>L#2dFIF7I8m&o{oOTN zv6RFXBg4m7tiEQPwQrWms{3s@Qby!ZQGoh8yqz!vSAaK7slaX-!fq15Ti_(iyRH-Y zOS8W#W=FN2&QLNJ+hRfLpgFSqphf;h21cj=2tIbmRMKR1oRW;8J>R!#qC9I1g(h35 zrodT$s`-w^kAOkVn_ORK22GZ;ph^^*tWZW2-_|cQS&iTdgbgk%P-wD+0!f6R$%d7K zCL3l4O;%?Ix~}@DWR{z(M_6dGIzMQ#Uvz3lCrUeH)mkJKjWq(LVXqTSmXEhcp_&5s zT9i;K>I|AUxxUWyTBHxIN`x&^EW=x*Enw>hEmA1px2Ix(phXG=k_cXlELQefWHH-o zkv2Q3^>l_(iqs-4vbK!Bw4k@O&<%qY`J3rPFROQ=R5Yu}mc?0Rl%Nw8$f$BblPd#v zE~9NP*VmarljY#5M6t;VW&9?q3)uRFCR->FHn^}rp~)5sBoTrp8&(dQY?vK1S)J|F zob{Jdiri#9!i7%M`bW@Yb*(QmRp>-<*9~?(7n9lT@LFw?+Fh1Ujc;)e_1lfcx3EPD zzeu-@Mjz{lo2DDFJgpX8mv&jbnXax#8Bo^s-q_N4Ep>bbIJ&*N|F-cr%+_qekd`=A zzdcrQw97Vl@lh??YIeo^BFk7T#x>@p7{`3ed&u~uW*mP9j0-zo^dD}4dvc`0Ci@lbp-bEBnn(1R$*ns76l?_pE9T^r-K_Qw zQqdN!cvbXeuc}dV zP*sbleTpBO)1s+XGplrBj*i8da~6Bw;rTfK_{rv<8gMcMG=e8V)aeti&PdgH^iR<= zRV|P+Qf;EEjl44|EmQ4MRntdQzK0KxJ7+}CxSrg;UwjxWhL_iq|7vaTm~HMhhPMj; zw6I+CpYNNPt^Tb5Mn$4vl<^hus~%IH`PF-h?eS}yS#6u)V_Ary&vXn8dW(nK`Sktm zWZW2i7|t4h;G+x(yKtHaQ=r4Zqlh{@d%^e`av)aIQ0L36&y(v$uit5?vxN_{ zi9S_m#xr!9TMwso+Rfeg;d(OHXO}jy2fCgv7T1&SC%5D2@D_Rp3iOzP{0!#PUniKT z27}OZ>t5abp+}Ol4byXIsa1EOM)COf_6|bcKHR90-&_-Vv9-~-yPwR4x8pfgX+uXn z9bFIS^9dzvZSP?T9H`AT6HsC{d4DwpIk3vfo8v+MqI1#hZ-6F-3tNsde(IlhUt!KK zbEsq>J~fUz?*{#|?m@3}G=LHtl<=nCJ;x^)Jit(X6X>a71Po2Uu9Ml-aAeUT_v+zx z^yYTDKveXB-~Ao@TuyHv7SrqbAE&pY>xc2=k89w06MlBLw|_^!cecFWm?tex%KVSaka#Sdw6Uy>q^}g`*g8fxs z_#RH8UQOTs@L?6~qk(s}e7o;zKiJ%C!hdbBe;Z5fwsv;G{<~Y7t=}~^S3$fC<2P=9 z2*U5^qEACv{9y)ngYZ=PWC4fJ-p_x4h}t-~yZ>c2eg6SYdmnt)Xo1aO0=2mbffxR5 z)4ve6;qPtwcZdGnrGNLZ{>#~9(&*n^Ej|us6PW8g+>VLL1{{PRX$rTC+4S;Z0sZ0S zFOB`X%f?%XO2EkT%e%`TKGNU+&v10}!`f}x1)#MiXrt8Mp!zGYz98E{S#iTI=(wH*;K@1d%|0 z*Nw|b<6%Czdbr+bfTEGfx4nzkr*AGAaLcdpwsU^oIl1`hPf&RA;qGD4fboQan&QDi zkPNH`9rNNB&Anao;Ny;v(EWN@8Hc*=e%+D z=KSom--Q85AMAq40d*osM58dO0Hc7jj3QBnE>av`-`&0^A)&Bynm^(7wA(vazxp_vE`Y~7!t!j0)w%a>H^Iik+rM0c z&if1SxJBc8H~@aN_|SNHeRnt807srL?rw23(b#M?o15P^+t_&C^gDWN_K(vmaJQ?* zyNm8gzcV;EJ$c!CHF*8(A0csiJ1L~&?U4&m-_39|yPJc0uoS3c0=j}*BBKw$^&Pk* z8j%E;4{s)oTli;gJVUj2lx1{xa}UF&?-x@j^SX1?c>a1g8&f0gTtYJ$sv9at!(S$| z?||X6>&XzXXOk;zAfzCK(E+6Y%X~4paqavZi@|Enq;WjFeSlVjMjhXc9&RSLcmoj} zUm0vZK@=sCQ42Og&vY0X;l9h}vuFQUD1Qk01h14T>8x+QX-XBr z1pSNVj#N=+MJRUm`%)!H1|CIHaMkFYSOwB!b>P0#xl{+!{W^Wr9SmUyz`^O!n~UxM znrZjEbHvz;m*HBaQe=gT?z@XYzk6`eJ3WcP#S1o?IOy*~Gl8~-5paT`dVUAqcQb+J z{tF~Rz#3j(-+i1nF7LpFX+;*IG)_w}^qM8yqQQ?l2eQ>DBVqw~$ylTkX2dJCTapa` zt=&ph8ochkVr|>`G1a8ph;tqGew1laMua9r6p2kp_C1C1(K~^ekW}fIaw3HK;1*IP zOplSm7d0?XbUaW-gwVxnxVU+Eb|E$an;EHm-aYDepgr_|IysQI<@pf^xMg_I>`9eX zPNdrY=_!yt5ydrm5yQVclc>Es1GS2A@8#J5TtcpcIq_=eF#C-VgGn&t#jE!J<6N{q zFoRj~isy-%lozRb2*|_HXmTwHYBNbk#YpkCcXD|8wtFbmHF-rt;_^WU7Y~AJHXW!z z6BW9mx4lE?zhHEA@VXn;reNt6kj;8_-aYIcTyzhUK*dss=Cjm0=l~yse(yiS9+l;Q z_&e>rt)S{*v?|Myt7`0{9*hs8lufRnNKL?$2y77K3iTO%(Dp?bgv0D_zS)*#M+PJS z#sOtV0ebzx+jHoL_d5swE=$2n;JCpzA34nN@tdHoNfx3l6dpkI9-P4l;H>jXG`(2n zne`0|K^oMpEBf@)7!@z_dz9WIx6FvZ^D*?d55t|Dx+A57&z+w*gXm;xr}eV z*$IWhwZ9$=`p(~|agE@hQju@kfpQRI@UnYx@OmJ*NSOW2H_*PUdTERWQz@Hpfx|aQ z04x)(^dQ&f(0kpSqy_?f;GHewYTFq_2#hh-%{NRgfopfd#o#L(yZxVFo`SoFWh*RS z^S@vXydRC$vE=JXjO%}S>%X`F_;vl)Q{tK)(Ee*&`X{dQ?cZ+iw7=SaO(yqXx&7C$ z^l$B-xBkD=-rWAW{_h!TO%Kqge_j9oy8i!l{r~Iw|JU_@nnZtH|EE0yz6|ws{omV) zqQ!bQV|FXoU)TR>%hD<2>-xXmy!^WUZ`ZY)cfcC{*Y$tg+lJLbw?V)IuhUg=WnT(F z#Zq6_|J50SaDhM2UYH$SzW=)Z-yM8i|EJxvuj~JV*I(EF*R(G4RIu;ImtWWaf5Yd$ z(f;f9fokjjJ3DYDe7oJ+f%D(3ZMX*T_5A-61Oa1z_&uM@;6U;kqCqwL`}aS#cfZ>I z3C#byqW$$Q&?B5@hU5Ry`!E^Iq5b3gKb!6C_DCH=I#dW z^^F^J%^OZ)-`~UC54bR}_&9+(0DpluaKP0<dr7mwqWDtODgqbQ;Y!Hv_bs^K0C?UZl7BU0lDoLAR3DNL5V7%`jR6%sldj~4;)-kj#dT%EX{-c0oocf9LB zcW34(0$jk@pt}kidd~@dPe?v}fdp?bHr#a%xTr{1P4Jq@hPkaWpTKPnxbQHAGyVF? zgW-|N03k#HRRI@TV?_Pqhr1iP6kv+eO__(;t-84a{EhG6I5rXepUG&Ufl!32J3N$) zUIF)n#_)n__(ssb=$kii0p{`!u4CXG40TNi?oq(i7;+SK$HJLfXU#vrDQ~=zq7NU8 zkz-IerW(;^C_G%xyIoAd8uxcIq8f^GWPVXHyE>0U4KvSdjx=`;W$`IU&fj3l?+=&4u4gvY3ck=Qa2z8I)+j~DC zQtt$k8*rHIVdoeQ|53$L;QX9Q(#;*v&Fd~D0m%;hkB-5ieqb-;;v61HKNqLx7pNSn z{kGTdZZtaQy*?`E<@qU4z^g=13H5h^RZrAC0n$A3j?7paK`GQ9+)uEWjl*sS)>mGE z!A>aC6xNqQo-Ka4pWw9+XnyeV6#Co(zN4bifL?3>(Fm>+(}!DZntI{2OS{KAEtA3M zeh|qClkvKb#%|C zd-QVf?gCB|tCfV--m_=WuH09*T-^qPgTSoc#9>~;0pS~^-gtj^HQyNBlw` z6oVTL;tZ$i_(q~eV+*eAHFx3CS)&El_S8S{2fPLVJ^{1Y+8n{_bmn+B2yW{&?F)gR z9u#Ws!tFkMv#6`qkp8(Vt|HDl1>-hgE+(58DxWe~p67U0D z(_H}*CFB3i-FCAu{)c6NujBs}=)MdB`>cOa)_yj5gzgot+5OA?Xak0NxKH&G%y+mt{f10QzJDs zR8wQYZ9SE*(V7~rsqtDGuVwhscrA_B(s(V6*V1?`jR!q3;kPtiTjR9}@A`7`9`oTv zEMxjTg1hXbmHBXn2~KV9$!bpBu%C_z(mW9E{Tz!gKFlV=F^p00!FIs-K)tH|vx`)ZvXA=CcXcIum5dtwPF45>-^v8 za9w}l{GVR+VP5=zm$Y%h_fEYPVmO1b*#hQ*@H!#7zzq|Bm?1*}d>_Jia{2K7{bUxI z`?qoKzx8$QzxX=$r)8e6bN}Fd7+>f9W<8;7?jOvbVRZrDlkp=gdcd0qVA{Ham!b7q zQsY}#B$)s3;aisC_is|xVm!IWI`9KQ@pw4@3#=K!SeTYL^=k(d3NAGaZlJ)xekB_g zsxVKc&?fsfm4d1_pFFe)w1`Vs0k!*S-akgEFWK$+d zFMKT{+44v>aV}knW=p0??~W~_+4g9{L>y{W&}>^K*{-75EsrG3_Nz&`C6feCC^zP| zM-rDMs)@NR)7-8?bH}3z#;oSEJ2J_gDkOIuNl+^^lQxKnuh`oH|AoiBO19l44q&Oq zZ#BDBIM}lsynv;f%0lnSLIc0$wtZnqZsRMnK=5i}zL06Ys6w;p0umBMhpI*tc5K9u z1nCt-ZMvX@WI??Zsm7vGrLfd=acLX0iyE%hVw;h`1nE_Tb)kvKg8x<|8wpO$O3|t5 z!V{9M9xGr#E}OPeglf7FwT*9ktFGiojA~X2QcV}7h-`HwN8(hoQlM(ONQGoGl&peN zp-XR8icU=zp0)v^1u+gA9(rTRNTL~uP>>FlX=HP5c5PudL2azKzL&;2FsgwM&finG zdiDwS3}83}KhyCeY`wv2nWl~Tudq)Co5i#Dw|9-k)%EcGyfM0O!1fI6-`+jktNjMG z;Xu0_&()5><_5mb6zA1Gq}!x!QiG|&ow za5Sumpc<{I9$Fi)Q03q()&{+M-Jk(=2vRY)5zl%H}76hA)f^t*{e81Ip$nf(D%q zD9zW~ZUhY|o1X|8Z2z=(0<^sd8c;SrG8%4_ZG~1K_ZPeuD4U-M8h9k^%=wZIBfKGL z{S!gM1{zx7GKS_FLj(;xayzubD2C=5Lj(;xayzubIELmLLj(;xawoLHB!=c1Lj(;x zawoLHRSeBFh6oyX3 z!|hbq9`?~<@vZ3^gUnkC91=E;eY9A7L(*y9z#(B**++}THzb`#1BZkyXCEyV->}P1 zqk%)hezcDki*K#6w$R$%!2Z)mi^Vq_^QC#)0kqHxvG@k0OVD-!Ewn-`zO~BQ0`xG= zuy=08;#;e%Ewo+$T4;q>d;`*HN!yzn&9HZF#^M{0Ed;`)YXe~estq_ZE z?XtGeZf`Wf*|@*KQ9&NxFrdKuayK_{%dL#JEkN_F0Q(Ly8f@H^p+Q>+dgm6r>YBw~ z#~W?`X*@Y10blSodx+*Z=vCw17Q8ZBLW3n=KAI+ zZ_pNk-nj*xu!!dR<`~-c<_1Pb9xdC(dnX%sY|r|e+5RU($dbZ}LM!NLXQBD`$@+Rg@! zFs%1(>%Klfn=Y;|M_0O|iJ)z7ptt&Hx}64S;|gfN7Y?Mrmn?4(?<6ZsFX33oUnaNs z2{spby=b|;3uw?tc`vgg+jIzL{YMM<1_1sP+~0PfEd+Dt)}@ZUflUF; zMc;@`p)CZxbL&!W3xMXLZv+k6LfAWB>KSE`H)zWGCxQlTA?%$m^^CHJRyH%*g|-mP zom-cBR8vGNn;GpwTL^pSOFgP7qLs~zKxeJ6cLoO)y%)?-qPJaW3(z}z<2P^w32kye zFY}OHXbaFg`)Dx_nU{IU?)CedN8O1zg zUg{yx&qMF*qs2UAUg{w)04?Yj#*rBEIGV%vUQ!W>+Ck7Sj3XYR(3F?R?G$>Hb})Bt zjUyhS(3F=%&~T<3jFH9>4^e2!OCo6Pjds{Ok0TzU(3F=%&|rli?48FE4^e2!OCo5{ z7Q)_n9Pto^ro1GA2Ht^lXFmIwKvA4g1`%m=ug6F6US<#40`$(fvIdx>{?)&+yC$Pey|gOdH2Z zo}{wBp`>bH8I=@9Fzv8+HnZKp3O`RqbYh%DjqnC-0eWX|q&ktumXpWPXh;_((ot1|7vT-sLfAV`^z7rxM;n!|{Jem+5cbX!J^KiFyPvtKOvK-C zHW~KL6FvI~c$-$>4cY?Um!gJX+Jatb3~Z{<=;NZXm7f>T7Q(snM6WakXkgQ_8RZLT z3*p@P3Jiv=K9CfwK$p~L;49h`R}i;?xpV7E_c9SQ>SiKnO+fS4R9ja%hD6Z7H6t;k z3Cm(z;oSL3Zl`cjS`Y8zXzh)yaPE91_X~)oI@37X7NGgPGw5GgLG6iCqecDdIT1j` z(Y80Xf|YIjh#=WCM6-;=(RKjMw*oFPifE*M;w)-~T|o1DXZ)z4h~~zEQMA2{t)O?_ z1dkEXp!M0Gh`+r6w9pFLrlH>4STM#LtOITZy)$k&i@dq9U=$77LNIs6ZdpWgW5FmI zw1r^qya{bXM1#O(e`LKip)CY+=gm!TW!rhL+eeA=25ljjJ8y1!J5UY{bX>+8w1r^q zyt(P^KruAd7$TBFTL^mRO}2Ur?$6LzV~C(ZTL|XPo15Ma6hmW;A%X^NA(%UFZhAXV z42?C02pY77pm)X&LG+L&YYZ|PM58U}ommeEORU6>IfH=>1HVnXaX*JqlIj5A1d{tf z;NR=BQ*?@3EzY?uktQrhZ$YPxC%dVq-FyTho*ObEaEm($58)F3J-=k| zAMYkBCxV;kBUo5R7@tk;8Cd|c3P zr}3ff1o*IVy^ZVWW-yD|0eM(d@bFt{eB3Du2{eHKpnC+oZq6gnEFn;A#V}fcx1RZp z0FKQ_5=`M1$^HBJuTz+zr(;F2F~gQSyk{vOBgY~~X1jz;u}QbLHn!1KK_DCQnsQ8X zWVTAk6dQIM8a6Hs@X+TU9LCR+!PlI7or~@>|0`cC=Q*AX#!l!T>62j3 zs$Mf**Y(w}xJzmP?|)xjjaUED55^Zv95cWF)!N$q`u<0z!S(%V?61bL-{0JgAFd~> zdF`KN8tor@|6jAcwY%Nk3f}**y|dN)UE}Nhf2+c^{Q-A7-l?1Z>QI(`4Z!#F`^ji} zH66jb(>n0BEA?(5c^9>A|}`TP2ozkU4%y{~Wi!}lw$;w^vf7XR=TW`vW` zwRe;M|LUGdQw0tf;4wMg+MBrr@8BC98$M171tp>+-*t?sqIjz z#~dK+QmSX(?z@9Nd{#yo#;2%qNK9O*W>i%Ua@m3tzQr8m6whWBbCBB>thg6*kmDAt zCKYp#>lUukG7irAq`4P<`LjN04t7)hvZOg&JoFGqb1wpm^htBDOX-&-&B1OXPkncA z(1BNyB6ofxJOoukD!nw4QG9n`T38EC(=#OX*=_APun1nrg30zdwhuVk#Pa&oGQ6a- zK5^q&>$ulHP#*3n3zL<1d)mV0c!F<*MIccV> z$;NL#S#?5wn%|pnjoL25ukh}o|I-PzR$iC|a?g~|u+dgN1SDcGDkNeoDkNekDkNeg zDkNecDkNeY3KCra7c&IbT=*7i2rQ}^0-GvBU{z%Z?CQwv1)Z)A++iZc?J$wTc9=*} zJ4~dY?I*gJ?ezv{@Mh`@6Ck|McGiD$3_AB3`dR<&DK@hp5#PuSsh-1}!B-6r3IMu; zC}`jG4}Qj5dcEd8yj~NH&)rnz^zm(*kmUvIv;G0R1sq;UUgYTX?LH)WQtC0QPgf6G z{Y2I2c*^53$uDfWo?>dT6~Vw4x$-0J?diec@!c2&_mu7TQd}jhlk%zR{swz5Pf@x; zks;PWc@AMs{nX*p$A<4 z*p_wHo{oqDPc zbxg0aS2#!1g<}7&p3e^4-^#JvGxV13!FH1_N%fEJS#^x=S$Byp0sBJliS|nsBalbC zv-XKLpzIUvdf6x1pR`ZA3{!O?oQg`}lvE0*rcyXXmBOj26i!*CaO%)gFw7fG3OyF^yqC9>)&+B(7}%(@gCU|o`qtS-UCRGQb&THVX(FUpoP5hpRd3dh=_`mxdcl!1wb6Khg-3Y*;m^Zs&7gWFMm*M_1hKKF z*}zQ0-k%$m)89A#ck}UTlh|j{a2|~gvr$S&WONE@ZCs$#hL$tfIbD+c7lj*Rz zlc___+SBVWP-3%{(&F8H>&f(Jno-r(?DO^+6uB9wvbC93W%J2Y2}aFp)_3=uxzC|X zKRiO4O0?~}`^_g)CG;-2s^rW)wJLozCLQv2O*#bM3p;8RA=}7KrH-1jwmJ<0eKcj8 z1{kr98VdpY)jH~%r&FOC>r_`EXYGkqI0{slY|C@r8?JY}=y%l0!Z1!_rY<!2(MVi1{CLtlxfP4? zhfRkvjp$<~2h8wY(Ds^)*e>=6+9WTknk3+Eg+_Uy`u7*9<}e8w!**(PvRIcIn=v)E zo0Zkbd0U+lfdT4Sn<*vk1xnmaD)IVmP0qN2;mN{dZiQ-8p>2f&l#frQ#HJc2S0A8o z)}CC2;nXeNyUlp3S>+g|*rN3qrFx6@cw32Hi#tAJU!_wDy|ogdRk^ng*;}19fd`t7mvq;GGLiAMQ;7tw3GF!gYqB%U4F?8{8!h3uUeDE!BA^kPb;cwGT?4?epzXP zvlTS(^j#pP#nau(i-dj_<0Nu&jRPIt?dJr(TLS^bsV=LL|p)SK1lN^hAo%Gr}KJ5_o zh7g~j;|o-o970e#x?GcEmJP>>0edB`+-z}yz7%H`;)?`gwbP(eV zWS|7q;!KmXw>sPC6_MsnQkN9A{Vp}B&bzBCU~yggj5#~4Bv;aBfxi_hR7LJ)N#wq| z$~rvatwXIla4)w?_BjG~5V_L>?fLKt=PYJ-scK92nOmJ(R-UqiVKaT!b3U9rp)zw< z$pY>^hc^A7NfAG~KLhNpD`XaWpr)tG;((%T2vVWb^2J%5@+-~&gP5R3p;l0Hyr}9F zFhDCaUEK{-TFE+D8N5vKr*1YQL>#w3wJe|{Q&)tjuvk)S_6d;(iO{Xv0nm=Niw z)?!OG;CO;VT3)cMWJ@D-<&G^7=*inS$ zNZ$s^+Ad)yX;vL#iszDy4J+SG3%FaMP0RvPY7mok<`9C*4!;AoYHhBj|0}S#I+a$P z!$WI;j$AchSamJ!1Ot}8#GqYZ@$W#Z{NB~7eRTz~7@Jeb;_9?oJ0wRJ`ilIn)=}4@ z(p8Qx)}qqgFF&FdSX`Z#t}CJjEU(s4SJO`wSo}NCY8b9oIUW`+V5)8D>K8B}LhXhu zu28F0E@AEleLt>Cq#|m-?`j=&Eh=4QM6GnMHA|)5U8vQbjS>d?-noei%QFFYtMkoD z+j@C7wP1AO&MiFk@ToZYT}{vpL|UBzmg&fZNwAsMr{-=r9O2W9vQXp6zS=-jHgtOu zbFMTnsa1$posGFCGUx94T4!0mu`Y84B7L!~(~L_}tuw3F!hs7n=W1K$7h%pXxOJ}F zoU_a6Vr|#Hikn2ahl@h?R@crd4nqnn@X4-g@ub?!zI`9E_vG62M*+zzU%$8@v+k2x zxkF>l+Lx@t$0t)^Gq+uH)}CC2d2RY}G5B~nYi&aSb@OH&jH&bDf3~>YkZ}sg5fx{KHxGK93dE(J;*-F*cbrOzz&ZtkzAqv>LxJ_QxCd82c2ao*d1bI~2VIe~BA!Y9qX`KAFs?$b+! zBI;XA@a6c!yTKz4{E5u%{HTF`R9d%<&@B^uQQi-BN|f)>1^^Vtf@MdrJ|4 zMcgVx;7vX0kz86|%~lmMH&0=en^|)?QL0I@oW3fmtG$#YZIXn4>+%Xe>o%CGZ(Y9Z zb&n1Q3;Yb6`V-$0<~_Lwn5n{d=WR)N+;dNJ_a~LR^q=X&c8bD{%ei%bs&`PZ=X?5O zpQ-|%DdIVdiJ41>cLnf=iT}j2uK5Gp0OgN!uNsqT&PlN<_=N%o0J1ZH8z$h?D+H&> z{O1pTKAes4@?n?UJ^$+d1bR%h@I)WPR9c%czG%hMRfCsayN3lUM{9X3i?i|3rT^mo zd}M#JHH|_lO~zfSnRd7o>Wtmv0K&KT#PkYz%=O@j`{e*4466vCzK6og9dHo6sy@6c!@pY3j*WX`vfajC<)A?dDYg|pQ?T6fXOPo#KW0q-) z@P+u7y`%0xecjVM9iJ1T{^+9qa-pqx3;4*fPB2U~8lM{9cFy5LzuykwAA<$R^!Z}= z%%S2Jd4+&ij;nVc~MA=zbZgZ3!ynBTBGm^f&G!Qv2dD7yjPi|wtP^~eU&F*H1OMk$3SD!yu^yqt~FlG5a@F`Z9 z;o{1%$pB~nuJLC~$BHWT&-(Z88}#)TJ!aPEZnPQWbgnx5$E}1OY}0gw?;aKddZnU} zH@#I^t~92Agiee$He{5+l_5m@{Osdad8SHK}j3F4z!-0KMzZPk7`ki0N*u!4-Zy>#tB>vqkd`j6!U@y8Y@2T zRdE7a*2-q(wpoS;FTwKwZGT(9XvHQNbHl*dxw_4@v};LO!Mc``6-9q$879d%{svuH z9{dy|Ch~1_NE&S8Hbn`H>*>m(pb*cMZ9&68j-+$ov096!f=&`6qyjLc-IEcHoKUr3 zhX9$T)lwn}jUS5UXPB(Rx_a5ol&V%RqT`#4;R|PlR;83ZbdbX0t}@ES3tA9UZ(tr_$ zQGabP1T~7pux)xKj*uJ9b=`R2jmZ?ITP1LAjI_uV6M@9^%HeL29#(jR3RWpsvg`SD ztC|^gNh^UBO=lQ0vPUDB8&+@-$mL~mM8WOFi`JB?g1s0ANF)@>O3S%1VqpbVpX}w8 zi`k1+%9RXRE-+9n*e_$v*@c41LV%`8nz4Oq_|A@3$)VMGln zgd3e{K#w7fns5xcTO33>8FPfexx!8rTdRVWYb%XPH|ljyMiy$9ZL&3kfLuFUhouT= zm-J3?SKW&}tYWS&tEv?msUz*R(SS62Gy+m_(xP^8nyBq)pVrfFHSxxx#sPhLIVQuk zOBxL!J)2EXkY8ABwIxUqG}ZZUF0#$H%+wOQf-x;6Bb#+s zn`3$KQ;gim_x$5@G5XMW?w9xua$s?u{v8eH6P(fMpMRnCX|j#>h0Q-TE@zYBUl6X* z(8ZfVxyPndvL%&lNhRA-$+lE-ODee~mE4v}Zc8P1q>?*Q$z7@Bu2gbQD!C_>d?A&5 zA(b3TC5KYUOR40gRB|Mh97!d|QpvGYaw3(ScqPY^tKq}-LMnLW75p2xo(VeElTEwG zX@IbXUp4HQqPCIQ_GfYo1N_;vJr{FKZZYIQ4(unGd}?jQfMc>P8+F935N-?|BUC|J z%YZ3q1R}%mSmPB)h8k0nWQXq5GrEg3VXm?;#DMVUguSdb|cjK!Ej z!B~hX6ci&2#En8hF~C4DC=?XqOLJ2wDaMzUR8ovDTT)3ezU)aQBk`pmPdvQvqUh8$ zn%hH_QH`eaz}C^t0p{jcTAK?pgW((ICT^sU>#xF!Nw1Ghv)zJXo&F zB8{#igc{tUwN9#tf_~&UgL}9_*|K2cP#;U84J%m^Zdl2Zc*9DT1RPefB;v4=B_W5E zEQvX+WJ%CrCCj1?D_RzISkbb$!-|##9#%9Rd04^H(4)%c#vYuDRo=klyLTq)C;$_3 z+>;+~>?Bx2K&~r_Jey&fO0|QAoOq(DRtP3OWgAHX((KX5f{eP#kV^AiBND|&e{sSU zu4R`;dDkIWiXtLV)GE!F2y#5@=w~C78gV-N7$9RIQyk9_6bxkw*OjiSu{0B;f6wta z1D+m?cvJ;_+{l5ut$s;ZWrO=5G3znX+0IyP3I8yZ)2P}+vBJQ$I_MaQG1D_*A+QtgUnw0soWq0fVru`mF$Ii4w9ZM?7p zTTRp!3(KG$`5ar~dUB;cP8BR#QKcIbx+mX$6hj#VoXOcWivU<5@ zR8=e3&@t{AFd)qyjeJ<#RYtjZAt7?Q!nK5XY;9L+ctnN@M{GuUp51JUk&VUA0FLaZ z&(o(-GM zzgAlz&>}}zRJJzea9f*aBc^8EHdBj4(yDWlnt-*kzC%cdHo1Lm-MZ3Nw5^e$U|Ej= zPcKGXV^srzQu+mzDg8dvlrW0SiL*EGak=|;r7^21TC}9eF%0l$BN|zeZwRh6k|J+Zt2#MuY&Ci9Yf!a6-L#e8`x*vrvJ5`j2Y zOvZ^3$cbX?#0%jTsF_<}Nn<0QT#iK7!^_EarNN9YX_>b|=?r5e_GpCCkrFxPD3EP; zt|?sds(fJM4c#~bBG!<$f&m#TNF)^2YJqcO#AR|CBYMTyMz%VCZ_F4F&5`Uu*R9a& znW9z(E1bzOrsU5?IA%+eO+eh3>KFpO6ULN5NY9KW!*Wqa+6sm=bgWEvzQ}DtHs%RN zT%KW!X&{x{QEQrFhH{R8#0uO%u3%16)GE@N)8rTi__L8uo0IxJlV7l>Yn;FmX#rcO z8OwNP^)OI*b)>FfRzt_gRuI~%!;~~qQDd`B)CdF}qF>N6E2+n8rMh0Og!+O=6}y_E zRuC(q$uY9?XV0$oeu^n!bl`_wlWQ#N?)IQ~Mr>2c@{?m(Q@Mg=O;ICVL2S!_DQTp# zmNgk95Drt-^(r;ahtV8eE8KGA0yYVZS4vMwq>n=HY6JjI<0sqMtDzVM1c%- zrw7%ql)zW<{9d*|KgY=MMt~}f7mGO|jC`1Cgf@R0nJ5sek+-dkV$l*0y}QoT;EmE2 z%{3TStY9ln(|V{!)IJzNkP}l41#kth#Wnrup(&Wl{=AA2=7I_4)&S}+!?o%MkquqT z>Yk3OyJ|L4IPe_*nOD)eqh@u^WN{3-fTwz840YQ5X)f;d%nme%U$~qrjX_p$4FZtk z4p?$CO1))D%Tf7a6i}2WqpOi-iF-t~<&j5-tC44kYeco>S=%ilu>BIZh-%BTwo61H z&k~o2YRj{|#%Qqp)bRku7L`tZQ@LVqPRXV_w-3b*#Z`wqTMoM#)0emsx&0v3jE7O% zeRyR3R4bU{!pMN!*qVlUHN2w!r67aRMotg2xUY0U28&r%tpu2Ah?>6*_pVE~bs@`^ z!gWD<(XO$AEtP8otXRPYhBCr?0$8yu2Sx-eYN|onb5{T-F>oiRUPbydPPtvUVi*)c8n`8DU!?4ffP%u7;~Z}dFe;cm zsA1F)Qj4%`(^Oc{a$a=h-gC~8%>i}*41ux&zuhqP|f>-r!G`?@*d-!1B)o8rC=$`aDgVVF_dFSMC(CZJ*4$iwr zor~U&T~$JQpP7Z$gTjqQx|CX9@$iD~)grKTQki*gA^A4E4ao`veHy$4lFOn+l2|dd zllG|81J!MW1o6+N5Ap|sT{pJAJUkhzs_ zS@#EY30E;Sll<92oJB9t>dT^*eq~qH6_eymnKJ4RwaGtJp>Hl03k?+w=wdcLcz%=6 zKh;c9S0$pdQ}&~ayxGLzW>%`TYJ9yk8k3zxseA^~AyP4rh>}J^2{dcKFja4%_mRU#@jW#f$ntNI+{+uG$U(5;9h8*n_IGXalPT>#m@ z!~H1_FlC}F=u_sF1vtWAmA*Nko}zEcMCsE>XiGh#0jML?DcY(;l(JerwWJFUP_NHa zs7agXBAhYPYw9e&+ti8v0)k3hHTPzHHl<6hp)GZ;G^-5J^ z^^!#4 zyMrAmspe<4xIbNs)wy@$ggf}EXPOuI)Te`o&wiGbcKsq-`G{~bv&eRhI#Lq8C2Gs! zcSX}&z$}IrhcAzomA_`_cC{$V%bcUb2TDuOotW^=(vq?Z$H=0jEPm+JmZq+N zIll3s1pmglp*u+t(TSU>+IecMB<$*3-&wwa5B&6MDd#&M7zwBY-%Bm61K(`rbnp|d z<#l{I_?g#qonI}9UrS1&sJ1XZl$UqI0Vr>`-XfZ1gFE=rY?^EO{H$e0eT=rG22%`v ztu|eH!925!7y87lpx&79tw-CZWla-qbo>l6`~M3Ta0vVAc{% z+Cd8x4eNVDmWWLB6<=FXebYChUHZN$|K#hP`c$U*;Hx==rbjR86RReX*0A9G7Y^V} z8ZOn-cUVmV9FyYta3qL7!ubkzM2P1MXAA$4MllXGAmTA$K1S?H>oW!%5g3I%Bc7sm zgLn!`Lm!YeNGLLWSk@$%y;)vMZ64?GRAJhmx8ebd&!t0a$0Ov3H35GoJ`S@+N> z0e5nEMNGua8fHPg*};=&4}vGqpx#5*tK)@2>Z{O39PLKD6pDjOw>%9-i2M=ycK^|H zA+?gn1n_ci9(mOp`e?S{=7zqeZJ*R9tKB0lnYl;$wyk@lZw{MBkYT~;z_Z5%Ovre) zjRmAfAx97Pd5#^~Gf6#~G^}QsWLb^?37*NQfM36J?v!ka9rs< zdiukWARbtm=HIz7KDU`&gb%%!lDkSrE{JRv(AAxtt6X)gOqr z*^r{X+0Ih*N8)*kUxq#u&$2!J0uj$K)aT+&Y5T!=o8UvMkH(u!``LJ#pgtUL9zAFG z+JVVcp%Gk?v9H0boznU$d*p06()n z>CE2q52=4@^e;LW-N9M^ym#^n=9TJ;<;ch<_|If^-yIxN<_&z#+|TTu9W-q{;@AJ2 zdl_HjGR7=z{FJ&+JIVDSa8{qO(eU~j_xVC~8LQil+mbM>nG)DpQs$lc1bmKSH2t*A z4mw9iy%Qy6Z7Oj2Xc-~*mXmR>#4T4MB3x@*M#QbdkIq??ccC=yzckK;$&z*O z>^?}bS6v5EKa}jG-kx?Xcczz6J?q=)?fCBF{t!NvhFx#5cU1-Y3z)Up64?UY-2FVi zPw8J_V-I53lQdtGZc4F%{6)=%@?(i?K4y1|k8$yFs-~JyeejfwXZ@seB*tBVcF;TW zWuK&E2d%JW0_&vpsHBu2h+zaErQE5+7rZu=?F{ouI^nU($erq^m(>Yz z_1SbXo6iOxsk6F-&Z?TnWGg-(vMOPXck)1EyWCna|6`^$Rzc)Rv{7pk`IxDVTK!l+ z-3TC5Jo zL;ukVKAX>yUG z+BDL1$7ax^b_eV81+&|}B_5&{EhM+aIp=PDk>O2SiS`2Cv64yM9Ioe1 zs#qKwSZLLhBi6I{>|r)oe1LDpkM9?=R10v?qM}WGmg;t1Y299 zyW9EVVU4^kY8sP!_3AbDE9_DwB3E2vUNCe7IK&clT{=!>bF&-!|2*6zc1g6EmVve%RV}MU1*OwXintzdewOearYikL0wOh%NZQP3HwBHi6_tvG6C3w2KOSDMd zV!|+?k4-K~IyIU;+V8$1cs{>VOUy^zlfzin!Recm3!9nW&_N@=Rtq9)QOU2#O|s9U z6Pk!8y7qXh(Wi9ldkK(ET0`}5xF{A{Bjvn&Ae8MPx0ClN|ESjMW>Zz~{*DudoYkyJ zGbuG2OJFn8$)ZuE0Q$TRsJ?_4|wPv>s zL{9Z2{myy)4gtUuo(E^T>jyW2ULWHhrdNx3O693gwTxJba23I7P50)6|D~<57_QbU zc5SI$Aj)rEsP9Fk7FN%m*Vl;_2G_7`|+>Vm2@$RDklRiOT%R6TC>2)fIDXI7z!R&i25yFUQswJQG`EfX-Pc=I^ z>+>`9yq7ik{6tw;*E?DjX1-CEL?q1Q8OYwr#ZmXi?h)C!))q3Jy11U)j;om>+pjHr zO6hjmSId#`Oi?unmV>V(L9LZWJaJG>f?6iF@RcN}MS{#cx_h`y_G7L|*YhJqASs1g zC8%%gigGMVASDM2t~>(jRT3v;eRr!UWG!zXhbuQ$RUvEfKpuISp3*Ptj|iW#qFvRg z?<$ofSPs6D1oa)Qk_5F(Om0@$2DM0_7vU_l(jr-{poZuv3z#`>Z5vl&e<}1T>=&b0 z(E78Lht{toTP?#I^eVE|B7mNCGr1WpDh`6P^@GErssw78A5~P9Ky4LWPZw)EH%~*y zsuXG~sj>{UwFD;V0xOb4kwy@U(D$zf=C&E?!09%Yau?cyUzVudzt^W{pM4vui9ENh514Qa!uI zBGvQOSg>|>SByPn6@}M|{~ElS!X^3mqL!3z6fWgeQMgpEy27z`w!$%bPVPtR44ed? zR=O1u8&c?vR&&Kn@5XGl?AU=-lf8EPehS%ZH?(T9*K#XtYEL11E#}DQA4l`y&y%(K zy&Aeh|Axu+jS(k?#1rVDep@h1mg=FF%TaqUB%VMIwV2d>LGldq zk^@YL39XVL<`R8DtNtdQ?h7i&zD!@RcG>IuKN@C@zW)SvukZ7!VOEg8mU>xtvo`yy zzF=AZudIjqZNQLNYYbF+sAVh`s4MtGEtm61Jb@l+F{%54c6m&wrDhAiCi%|}+DrEZ z6=bj94(>Cqu~?w4pody6=aF~Iu zKQg!0dBNIcukZ6JKvj^xmU>xVur?j2zF=AZudIjqZNQLNYYbF+sAVh`s4MtGEtm61 zJb@l+F{%54?edsVOU)L3P4b@|Y%kpxRFJ)XJGdWhuWw$UWUplya!zD!t$o4TWv}n^ zDnM0`zm|GgU$8bEsJ>uX|F5iv`fb3FSW^t(dZ=YA7N{%uLoJu{NIZcaYB8yUb@Ekl z%kLNLtS=re@!BQ5Ur<5z`t9I;w07C+`#&nj1?md^P|M{!5>KFqT1@J`V7ELb)KasBUz7Z22TQyvQ}+cG zWUt>2?nk@p>j#zWwG2bfiOj9FFIcc7X6}mc5o? zR9{d<_F8Ub;nysCE#|aSR@f)3rCJNWHrbcmFTS5wkbN1SU*CC&{?g|qs>oi;t+dat zUG`ecX{W5PAF__Lqn)yX?6us=!mlmXDZAHVPWya?d3-I^TKKiezU+F={k($g z%lQ1-*0av~ORr~Ek-e5%X`f%a?6sI9r+gg!3?I9hm9OX4_j^NPO}_u`;K$D4;rWv1 zd<>JN>)Q3(fFbb&dZ=YAa#q7+sUB*%oJZmb^iYdQY!_p=xwytQLGbI5{}3+8FV_~T z$zHo1JcaDF{lA**wcHAQ|0!gz#hmU7M#G1-eu^3HhW~%;y=`+FN0K!Sal3?AeJ81_*#6W&jX_21VN1xxf8pW>t4rb!TRERW)SI z^?G(Cp)>oO%2Qb{U0vO6D0Y+k@XWx;@w>~@D*yd=OE@o9OU~XZf?x-kPw@#vN^U6K zbx6ubJ5YSGWJxL{Hk#$UnC$Z9Vg`RVneg)L^2B_ND>+v?hM$SQ>+q9XLC5fuvJ0EQ zr>Xs<;+4t2%U7yk_`@CD`^4nWe3^u2w#_^!5tlSjn31~6>QfeG zK3R;5;%Ygbpg?0yqoQ>^R%?`^Lz7xdn&T6*8j_UzHaNALmxEjWRK*?L^;FC|j%}(` z-14z1e?R%_)f+JHIyR-=l-TmCZ93g?Xi#ZNz4hPmxD`j-U1~0_qis+qRi}lQU3U;& zx5~?j?iXuxM*s*01DgeOchbGKHExT$e4<} zg`DC4$B{0Z?N3tt~_-h=A|~o=~8zf=A|~o=~Al~KISTdmpb$5j%5d8UTQ;} zE_DZDUTQ;}E_H{U{k+tf4;3ss5c5)J?&$AA%u8*ElcgR{CW||HLQxL?NjZcal)>*Z z&Y`Z+!woKwbqpaBze@;7wSePC#}G2{cNT)J=v(#My>$;6UCT9omk@F)x=RR|_+3KC zspu{tWa95Egw2hTLiIXVd;$TkR_OZE!tStAemdCw3JYg1zrw=Vs&9#)Z=EHT@ND(^5L>vYDy2|`BoluGZLME^-Qlat6iCIE~|9q zjIFebZ-+3}%~#vmW^=z*1jwFs)Ev9f0+cwtxOn&GZPhBGrNEgB6tkFh&>?xmu>`vj z!P(5#?!kP8(i(|TXtJ1f`O0gKMuy^_Qze`mVY;uz*Nd6lr}WaK499MC!i0Hs{QSJ$ zI+@y}x=N9gF_z;~NP%rDS_-_Vh{%eh_UUtc3MrC`dA*s9|0Xw#`Eps0x8)q5ygLj= zbJ>!VD~35k7;nJMD8i~^_|a)*B3uRL*6NHSKSt~Ur&N-0hh^BL=HyXiRH!n&dhz_? z^!PuHGgrX7>yVUAIBBUUK7kJHc|~K=5uLHvX;l%3_tDDHGO5GyC_aHmSje*DGFO(l zBGu`>)1Bp}9)Mz(BIWKcuL>DVmdqCQX>{0Si|UdrnJwzmh_uTVHSTc#DtC<9)t+TL zMrGbQwB2t99Wq-KNWIIR<+#3+*>Csj3?Lmu%4|`eMx?9;LF+r6 z^C5W{`jk2(6_Qq1jSd|;k0hx*ik;>|=G@IzRtFuD=WZ3nC(t3OvYd9&L5HN2^C&)n z4oQWqleX)Mdy?EOnqBJA%Pk1%E4pfu*-mzQBZ9_KN0X!qtdqH`CQ0eoqWMI5l2lks z>gnwI{{61scjA!jMvoV#&)jt$_$?ePu zBB)eS;$kavNIr>DSWro+q#$TWncUs4I_$kjstSi-HwvAdyngp8clSw01(KWX+z{+W zfyO-!KR+CKlIoAfl8*8uWuQaw%gU2f`Z~QAvkx=nDWmc}T2du6S#~3oNtN@{Kb@Xu zZswwV=_p8Mn=&k)Mv$bstMj{~AW3=HWcf6LBo!5tdADylMfBYWko|7cPJt&kiQNUR zjxnVw$?c<)DoM$P?cx_!C8^vCC^WoZWG!!3Dj&VigWpXvQM1M0G>*CM&seguso1S< z75r{=>ncrB2eG-CDv!5$oByKs5)rnhi60r}tY7Kypoa8>#3y(n1v@UkJZ~<$Jdwhk z=k4NaJDg^H5&?A9->cBpIl3-!XWMew<$Y>NX;{H)>GI}M-6^ST9&B_y(b41VWYY0^ zCuzKM2zH~uNe>sqT@^^q086kN1sXZvw`@nAr24}dMOS%}#%71$mz5`}^ftYh>+xo` z%RR_Y1(stsB0-wGd~u}RGsgLtHb}LopZTPZ*b&w*vf$eI`SJ~G{yC{3e8n=OUkSe=@eHy8D z-oQG%_9eT4?dpTVWmeTsxkpciajsrAuntmWH?U75#m+~t4pL<|uumh^P8!&JGM?P3 z59rE|A>P9}#nEH^3Wn&Ew&aVuiSi_5xweK0T@K*ogOFH)r;o#WwIZtseT}WDg_y5C zgqIj48TzOQEWj@&!eTyo)WSDUyt@5GnFVf!L~Bp9zgW;kr=Yny&kCAof3cvazhs|d z$>%HO#hk9T{dYM|34ZA+_~m+>N`zmq$C<8gv<_#71D}olmmK)qBK%@$SWG7!_B!?7 z{UPly7WAT1(ESf|zi7~S^|Id1I(}0XYdm@+_bB?R-Lm_)??!uDeK^IfpZ*?i?=BJY zM@xijNfpJ;C34%XkqB-iWqy+u*G{Skg3GwcS9TS}&P8fp)wM+ObFgtkB`F6ssx8%=2({>ZDHRWwa)1;WOi=S^7*OQy~+T^yrnvSkDmti+e{Or}` z+c)1`{@2-ydS%B?_1Z&viDvDQu|S1Wiq2vtH~W%76LUumzgEd8-EQKwhf!MdFiN9G zbW&kgQ0lO|VZCJd43us+{HD^HhfzAYgP88TgD4p^rPIf&7sqdp^$w!;kUEIkBeR1j zLk*^FatBc|XkzZDgQ!)KI*8gs>L6;5%nqW|A*ggx!@w@6WcUn}Za4p0N29dnk2YQ#ZX+XtaRnvTZ_fZ|SPT9RPc|17Udk(j+?Uhi+lJ7hAoAZFu_% z+n*lhrotR23cG3ogxy!%(bc^Pg|@3K|7F8|=oWVWS^mq0y_mvEmcG5VI_r>6@dB+jaf1ljtsCIbSWu>W-4MLX{7X zCuQ}jP(G7dBKJPSEOsD6R^7no+Q-T#mAVSi%$Mv9X~k%N)1h4MKw0K$XwOL2{wyfh zWZ0o#?iJyuEST0WUD}5?>U%F`wY6@Wy1E);`{d|;00-2w-2+Ne4@c36fRaWipQC#~No1G~RsQ9$XhM}mA)@xU(M3n-h0RAhSK~!P%9HbpPY|uo^2u%y(6u-?t@nL8ZseL2`0eEqw@^t64=_`>d$=AKE;z@J zt09ha1P!i2IcMT^myv~|X*fsF;8k*Gnuc=(O|1i*v@y>;$>B7;BZz7xx)3$JBZz7( zx)3$J1tP9)$MB{#^R-wbSbNYD&YA~KtgQCciMR?os>{K zpt?^e;8rgn*RZaOpNH-Qxg8dF7S5~9o7E)MrL!LO)40jW>~X6nM!O9|&!qHAbt9;+ zZT@<1@8nAXNhdu<*VAHnaIXi%WfGiKB%C$c*H7Z=31(Vu7t>A&wtPnkM0a=Y1e%3K z7oqQA%MSiOJ5?fK{u~2J<48RX>m~@C0)@GX9aswC})L}R`DHe5lC9D(HCR4aY!CQ$_nnTNTQ1X$)!Oo+9o7?>I)llQ`Gj zs48X)xHmBjarAaP4)c2t^-2}R<(ht{77an*z*Yj@_x51Hf?QFaVE2y2}pU@`X-6%ZQ2nw4L?uwR@Ir}lgkWGmYbmbONYMT-v=*leu+R2;{yyqH0;iN-|!gGzF zaMB?};kiao*vuJq>vKj4nG=GxnG*$VQz8Uixy1@%T5Aa2$(*RtJLwRj@LVIJaMB?} z;kiao*vxTnYAJn=xNm`*4cL?jL04`OrM4*%g09>mpq+FG!F#R|6izyXC_L8)3MU;x z6rO7Yh0UC2-TIto34Klo+Gb7^v`vW+bmbN+i0N}e@J{ALmEK8*5QXO&5rvZuAqvkm zg2HBwd&gesa}E+RCj@OXCkoo8Lr|(ji3Qxkg0cq(g|pbB&-dnNx%& z;FVhhv`L8|bmbNSZBil#UAaX-+ekz6%E~PQ+D00JuG}J^ZKNUS$}IxgMjDzfRc;Z` zHqsDuLBMm`UZV}Kn($FlRa*Kerk%pivw+Lt(X$ZPa#1i2xuE=2)c5MfVPo_pewfsXo~c4Qok|ZEV7HU+tM|Hf+8-@ z>$KEqN)tgrk$0o;Tq7t@s41*BcbLeLTLd%;)B(D3i-5*xJ3v=%5zsbsCgXc=Z$7uB z&~uHTu$j}O;F8mGji9jU(1pTtjiA8jm-Axc-j3r!sQn_qG43wlwO<4{M%)Fw_KN^7 z!|ig11q%^%U#|=|1YY|^l)MZ#1YY|^fTJwyjs0$de#evCBB4LbCXM^qQYx075d^4a zd0M!mFFhj&P|@-D$|P`J3(|_sXp8&fTV7jweWBUe0CemRp9d z+=PNF(B^YvLFlQp&LBfiyOkQ;qDu{r-PDyS3j%Jj&`{=1#U{T5@J@RX8w6MTG? zpg5e=vE;Jm+&E8(J6>RsI#j4}6jWE?yA>YF5wH7|yMMA9o)N}Mng~hX*8(B zpGJjr2ds!f#-B!oj6aPE8Q-mvlJTceA>&V@Lb}U25lY6NMupT*<9bXiqVDm=224P8$n{DcV1B~FB|#35hR$(b?NE}1y|v|uRy|0Zm;1P zU-MaT`C7~P2%ubJF(*qyHhGAep4##XmWp$i42 ziHM?(-iv~x@LVG(YN0x9l(rca6@`-~-Gz!<7ptT9qR@qkqd=kN-TSD@HKHz1sOr4B z1L2a^bB&-tp*m7{t`QWDP;PZ|QFyKq6i)OZ3ePoy!ihda;kiao)X{gEaJ1YbsA?5D zQMKG7sA@GjQMKG7s8EsV?E3zF^EL<9?irnuc=(4Jy%@rr{hxLuu4}Qc`T3 zNzZxCoA6wHP>w~zQ@V74cN~+%S@A>$oER7c;1sOcR+RO`@%sOcR+MD1$| ziyZ2E#!9aUU}{kwu#`?y@QMJ&VDXf?#2j$x6#={eRJe_@c96MO1y*hm&_x@XD|F=+ z0lm4Iddq6C{&!~Hv0K02hI|A}Trc!r9SYvl>cs)v1tmJf)EK71a_QYfV+6d7dAS~MW?e4Op(xfjg2YDNB2iR| zC$aH&BJq7AB5~ykO&)#U2ohH=mn0-t)TNs%L5RfnjfljRVBhI8mDWe~7yaC2nU*d| zNUkUnSAr0U?<>f~t*^}|D zNaB>95d;`^d74h(dPWeSMEH5zZW5KA5dls0Sfp;TtJtGL}kJiigI~yOL z_uoOo^{(|7;pJP9jjy+dLF@0W%O!1m8{G%xI^p_*<#I`lkDw_VJ|?v@EXqC+p!J8i z<&qj70knOQP9M3huF|&x>)8e@KU!U3a*~%$(hQJ=#WpYw!IF~%%M}Ithw2-_ zb^8^sKFTjQ3kq`-*zP-0c&-r?*z!A4c&-8k7k&MmVv~IBi5_>B^Ce;FG%o4NZ~aQ= za8&k7y)mcM-_ngatNzk$>{*R(s44gj&lUlF zuWz=xU&80lW;g&@hWV5}R(f`Fetda(Ro@N4PotqyEdzYwOgKK}4feZa>`CV9W1{Iu zv^*6p@RcsvCIde5i1f)T77t!tU#wXRetn8Jz&E6L1AYvOwcsb6SOb2Ti8bIDP=B+C zb-`Xd;DWttz@;XFWZP^5OtMc+CHv54epm+jlFEuT!RLC|lwTazLCKjB)On>T=BUF-?QMM#=O4p zT5aJ3`qBfBWj+ES+xV7Lz_%FqbKrXmfNP3 z8nV@Aefy4XcWoXGrz>*PRA%#R#$%dek4KdB@ z(M4FrjL3?abTBV67t!rY(pfvHp`4HS)qBWU1guBh!^Ie~80fL4PeQiluLv)gudTXNoLOU@gelJgD(Z3@OaI3?#DY{^HO z=Dg9CoHsfp=N+7q^A1kQc?Vl^{*uCK&KqsXd81Qu-oYt3@8Fc2cd#XYrfJR_ZOM6~ zQ*z$HDLL=pl$>|4CFiI7R&(BHOU@gelJgEu$$1B-HSl$wuKNpelWku|%XteM2VeOblnjNWGJH67!hlE2T zzJn>>x#RoWbxmvJ%WsU+v2x~AITK$!BcF=zj?t_dExzSNITv5kqMMboujGrhCBI67 z)hL)KdHAy^C;6lzK;A@vyomt$6d*v}M1Z`B0QoV30C^Ju@+JhN7htfJgP5`vVP&gD zzU8m~EwW&>$buDKAi)f9q5O(8hc6l1=v)f9q5 zO(8hc6w1|d`KUFkWKAI;AVvA0FN;8FVxMPb9gspra42Mt(V3&kZbv{6K|nPQR6H8?%;Cx&4j)0BN`8rg>wn{Gr7cwCLO zkw${8d@hbXv3#Pau3c}z$To&HLW#Ok2E(`DBvhW_}xfC``=aCi74i7-EW_)mjHQ?hPtie2# zpqOBQ<&&y@#DYJ2eZwC&50>Eb609AcWnc~XL;`ETDk(SZvkq9RssmP;>VOEe^_|7X z0?1Ybm#v6wca4kKnjO(KJL20d*CM`VM|{mryQx`Z+7iuLXkRmHq0PyxWrIPo7TPAv zT4=v7Ybkf_N=Djy%NkM7a(gQ4KplkLTFW}1qACJyPi0RvTTodO?DAoc7ksm)?V|h% zqkZWnDDCKEPeN6y4Uen`%A$LqF1iP@*!_Ychh|3x%?{fISzOo>$R3BCea>-r|DAK# z-ACsfwksFzhPk%Y+oskwd)v&~W`CC$?FswWCtv?=FnGP5+)ZbL*$V!euih754PY<& zlP9>1Y(5!$xSLO(7?&&D7@Ld#AMNca;L}|6eHq>EbIU9KGo|=uvs@nj=$WKE zq95gf@2lWX^T3BHIPCh%gTE28hPDx9Dl^m3Go_h|=(K$?PngkxlrgjeG7o&Hq&se- z%tL<)9gW;xVKY)D{x_oTguSXuKRmcj=_zmahEqxX4eS}M2~yBUPZe=)9_};Ip(~Th zj=Ng((7%C-72$DjY##hm6(1)Z_2$?-rqNT#QAsD9A@xNxRGDxd)ECpiP>ZP+kGA{f zss|MnR<8#pkWZni|49jo1ep@ef&`fo-KYd(cmY&a`^AezS)jYj-Un886!gbjcwCo~3lFoR z%-&~TyiC7d%`&kMWbF63*fSY>vCS;^SjN7dWMUue?Hx*O_4>NVM2Ds-qracsXTsme z!YsDA;MX$v?C;qi{HCO8aFGWcSfCku34GB{*Q9y$zsGCHJ79y;`k zGWvM+Qyw}@n`HFWU2e+A*sz$MS8`aJlhIe%@G#+%;jbroWrvkN1-!@uhiQ@wj*AO< za}2rj!gYl#>}N9e`&{g)jJ?=qmirqK8*h#5Wr`vVqIBCO6MQ00r{Ou++;I+Cs63&= zMWUQ!kyQC>7V4u|lYf2810IV?(_`>?;4twQFWdn>cd`WozYLG-G&vOsce_>e%&V56 zlqid%-29d`fj0=`X>zo8C}!dU(6hVRZvq7GbNj@xLO|=ESvdofDl9Ws5A~SWRI!WDg(UxBCip^6{IqNjIT52NdOQ1rc}qchMtw8`+M?^30ywU z0+;s(+1G^R!9P=kDd1frndnO6rDgvtX`ougu7Tcql393KsFkt?UY?Q%4|68D^l%G0 zOB$Mxi5XuMc{8%dr`Vnp`0-IT0j@!c+85)a%vJuUd)T8X1lhHVRUqPLPKh7KsJ{%q z$-HVk3czR9?l%GWabEIY>+tYup*(yY9$rwC2frV{&n^B_6(3)hlv(~g^;$CanxHl@F<6x-8K~m9EgSleC5G>UPiPZxM$fdB5Ts^RWU@Ygo0TGPaGEG53|f#8ICj_lB^e=gQ3P_Gi*OovTJ2(N0O~4 znG}#=3Wv?GOb*B}g~Q3POrFtHp>Z-SlLj(O;c+r7lLs zGECucGAxs4G*xJv49lc}3{!ZV49nz!3{!Y)h8^T)Sm1&PX5pC>kYNgk&9F=k$S{S& z$*@eG(Nv*vGAxq@GECudGAxq^GECvI8FrYPVag+MwhzmsfDBVOY=&iWK!zzCPKIUj zjHU{WlVO=OkYNgslVO=WkYNgs$*>~xYGO1|E+$Ndp6wCIv{Pa9F7_IY26f!%CGoQ5j8?d5V=P zlLDktIIL8e93Yj#VWr9(aYqwnz_n6kQh-znhm|Um1Ef+otW=pp$7rIA99F7K3Xn?S zuu^4mfK&O4%g^L8GuW*GC4pkg``v~lLXXKNKh^OGEHV`&ET%Q)O#U? z{XR`Di!yp)mGr^_ZC;_lO6i3Ln!G|opYFNOlWPKZg5_Evh9Zvv@6DmYh{vqt5jX%0>*OF<|`;!YtYKg6{^@V!^LwX1AA7hxU@+i;X(8m;7#Q)Sw_VJ=9Bw_R>SWgxgCW6R~i6>0>4qZZCaI#lr2SkGWWQeCeZJ z!tJGxdI`6eKI$dhUizq)4(%nsAKUNHUh?~~{SNIVzaQK0&|dQUvHcG1rH6Xy&|Z3| zmk#ZvhkEJIUV5mP4()}mU*LnKv&N5Wb!cAHsrS&lI#I!ub{}DN$aoq>dI+l%RX>eu*eT)rXaKq6%_fJh1hiIlmedbF?XsHWzYNdO`#3?xz}1Bj$B zph)A%WRd&HNxXfnB~uR^!;waUQuRP`Fw{t_TDO@m#Ty|>K&@O3P)i}PYUPrES_;YL zCRZnTHJB*Vc%J(i8NAge!DCI&SKHZUbHCo^?S&c5luio!5a20t->eH;#lkF;#Vq%I zSHKhKO;EMf_%sb$Nh z8PXk0iKmt=m*-%p#Z${R&YWtG@D09FIJIoKG>~lyPc2(64`iFdQ_Gh9HY|K?b6B=q z8pt+6M zJDD^fo5JJBmdOLMDLl1oeavuZe`#2{KB(aBn@V=q^7X+5@8DFpsGpl%-@otSk*LuO z#&1o)X-`Bj7gd<3uj`2kCZh@ywyIXQ&?)j7PAkt z%+0i;8QhN!tJVV(NT*QM()Bz~m946T}O(_9AV-V_RIpScv!t0@$4 z4`egizgp)Bb+|VZbt-ydP(C7bGtFFVycyzF3aO?yH`B~V2oYadc!Igpa+&*>;&AjV z&;d_+=(R>OxP+2~!dX)vB+!c}EZ8dgV1W)qVZjarSeEPYW|n&ujXP)pn)Sg0Puwa* zR<=Hf;Hg`M$W<zF+&h%P*EgA$ba01OL(k0l!@Z$~ zzRA2yIo#XV;2*N#M;d(gFr{RC55ts#-or2@qZiZskpwQ>#GZ1|1AgcZ!FoIUFz#V7 z<5}QNem^`TjRvQj{m>i?H6EO+Z^lLLRr~0fat(@CI6ZK{%78+Gg7rWGYAGbB)_l9T zp4{YqNA4MH>6Ioebl0X27Enx~LB)Cr1~gM>P_tww6>pt#*kF;h-E3UoJzzV-284ecxgad2*3eRLQUgmx#aD;78 zto-HN*&%r~TTSk!v%zm4VLxjzhHaq5>iYg>P%Q4Y@b?!_K0XNZ^pk5R&OJN2l3pyZK3}2V+lyq|5+rdW3g@yPfWLZy_$6*F>Z+@bC^a-HBtv+yb>v(4-M9c^>G*? zs~raU4sjSShb5*y;AA-qH-)+lJY!gkZ1U&U8>2n+sx)BDz=j*%a^4hR&B0c4rpTF_6~*{SM@M^3*~dp}odSPWofh!Gf+jrk zJVW<+V4=6xtXXlf(XL_9nxXnety8e(V3#-i*t=azdIXk=x%+D}_|zotMw zc%_4!BGw^2B2-3Yuny@Am{}@=bx3DG5oT-nz>TgGxumn85CN9TC7lJu2(VNx=`5t! z!F|pL-gM&Al8Jn^+o4<&vqG$vut9 z$-SJIoTSp&Jh$}NoTSp&JhyZB=RY#U_@IUDwlK?C#f_h&n=zJ zNh*!ab4zD)l1gLq+|t=>Vm%A@d(ZOwJ&ncYUJi>*ERCgd$yChrdm59IdpR*VNu{xQ zZt1Z(Nu{xQZs}|`_YT6jcaWcZ8jH=n92T2c8cXGpshG(XY@S;> zo5{UGyQ-;N(pgMmsVtRCI*Umxm8Eh?XR&fEcjS#s`; zmzroiwNH9Hr6w9r?UT-fx~(_x1unhSl1m=ThuNgVE|=0PoeR}3QRJXpuXHY~fiRcr zmCm)i$7d*&da@3g3`K|`=Q$)OqP9zn%vt5X8jr6+6xJu3=Qa=u@_N)WY@9H$;)(yFOs%Bm--rfG+EL_X;eSst~L zYM*Q#wTjA^bMm_^t5!j^PhLFJ4*i_*$>s^x5AbBQA=CuR8q&@95IN%56tQmwGClvSK2TP(77S`Anh4WMax}O{TbkdMcf=VuG{^cX*{!K2xZkh^dG6 zL>-#ixtf?V>&X;1P*0^(mU>Xx;d&~a@|i;QL`=E$WQrS5uXO4mrY=mm{oa@+M1g_5 zbjpf}KtlCYI^{Ek`aKgdC~^hkBuUGBIT`L1l;QsdUOxk3d58R66A|h3d(~ z)Q5VZdNMI(GC^h20>olEooV+;=_<-~%~G;vovW|M@L16`pA|BtYpj)PPpsWyCDwjo zgyXYsDrwt0tV22jiJ&o9hja!KL1VBE z=?o-7X#f8*_gQTKkedUkl*2$GXbjdNQzdPmJjs~*RPj<{AeC|$NCb_+I^?M|o=g_% zH(X&ykMT+8K`BB!wNE+^3KHU}ebRX_d4T6uds$=clg?u`QF&^gbRMgT%2WHK^K5QZ z#lV`5{V<-ZpHwpTbbPGO`D#1cZ0^@vrE~QC()qAnfv-?sCha(7GffsV^#yO1%ebYp zmHMp4*9+~7L%v@+pDp$*#OM2^^IA9r`g_Yfb&2vjaDU=DDS_)e;5w%$q`iTRK}Uk;>+|rL)x% zscfEGI$N#eSew#&Zs}~bL@Jx-md;j7q_TN#>1?$`!PmptoXmYBp@PvbV=A}w*lLN? z*gUs%HdJ!nt)Hyi(%CTCDi~eK$}OD@C8}U#HqR}c%~3Mcx^1CybFzYwV{-)0VRIzX zV)NYkP%=2{sYSQ0>8!O>LDrUQI%_RikhSHS&Px5~?E3zF=%KrYV>%;BHtoXLa7<@J zxjHd69Mc&o8AC4|cbw9hC;>xEj#D}lC0&TgaY|>Zg;~r#%(R_ZP0w`BTA~nV(=(m3 z7AwTr^i1bO#irAZa#>e;q;sG`I!Eb|&Vh>P9HmD(2i*MGjP|eAiddCPI!h5|sa(=o zHaAmsEf&pL=;~vwH*oJa9UZe}xl|vVtz6PsFz+X!{>^bpXTrh;nH;BdCTs&iCdVnA z$qKVvk2kZ>G7FT*`la((d4hbtUpk)^DahyhrSrLZY7=eWFP+cTN#pbV()nDSG(O)i zozK-tyFcjrrSrKuX?(t4I-jeP#^?K`^Uc>c%CLym3~cpw(HyK9*y|f@LJ0-Wd5nC1 ztGzV!n9?9=ck3fX~VKsoH~~HK*))$+NK6H`=A)6wMhW zU*Bl?4(M6=4u#V$aj@_?*Em?b06y5W)X_#JpwAhZrs~Lq){K&?Bhxf%WGbfW=t1W6 zk}q_0GN+^C+-|*{g0GEzi6V2kUg=zOBvLZa*wgXX0eoXm$KN2nx~yd!G8wdm5Gq2>o!f_iM#i2V z!5kZ;R>x#d$6p8VjXfQIgZOG48;48=wT_V?tBwO2J&-*;g2fcZe5HU0# zZbN;&p4?4m@KRl8^QleE?ypc@jvtkDMr&5NwM9WFc+PblluboPb9&iVh1LMknuV>E z9Kdr*Ud$e~6-_dymwhqXA8RW-#-5H}jP^GgzOiTFPlf>kbVz5wF0-)r5Y^$-^GoN$ zPO}T2@0ZSp-DVd)-!GjH^&D^SI(%2Y^h)PKjY<^xs>Ah4=R$qLT&`C-*Wd5&v>u1d zS?Jo!q5(bURneQ-QY$-|)5{L0Yh@>M4!X8ry_w~#S3khnN{(h>Z|(v6ab0Z3>V(>J zOIPWk8=L2r&IZp7O|Rz5^}~FlT`YKR>1^;E8(emVrS$#M`6i1^CqCaVo$q0@EZ{M$ zaDWX*h4EjXeEqwDncNPx__W+tgTe2)CXL6PCS@kk zgMXk8plxnu92gunAV0o6eRX+!_4>`p>lde2XO~z1{_f=)4aR_!5k!39u&3onssB#z7Xkh$OjD8Pl6NIIAAA#>Fl!dzps)kP#1 zF0xuha*^q38AZBUC6TV-BGc7MigdM5B3;8prW;SEe7^#Qs}(048C1Zzh&UG^!6IW` z&;I^1k9qy`fhl8aUibXs_|?hx#%O1b2&2-hX1&k=j7BqGEcjr+!0ST>Ssv)X1j!e7 z;8a?=V*n5@slqk82CbxK`tbig+ii5gj5T;x?A&w1OuD9a9j%-#!?;+3>L4I zXWT%palrT>=um9$HZ#7q@FWcsF7dzG-r~jZdb_DRM7;8^4s&hUbCBx}uIV{=ywq3W zJqH;cdX#xx==ur}k8`EQ<0{%xf?G;>OC3-sU2%Uclus@moD+uzC&*|Z#Up!F2L`!x zkIJ=e9I=` z%6*!yF-5*}I*Gcy2}pPD3T6Z7F$xL1Wx-%{W}EGGF_$iY`7vH;%Gaw|9~^+9#PPlt z4nR>j7TZ4J02GDedLnYzZm%^MauotF8cER)NuiOvpWTZr(seBt3gRfSEVlj7AdW&a z`#akW6x+CFqA;x3E7R*ZhLv&|eEq%;hW8r7g1s<|jA7y4qi=M55CglC5lI0kN=-m2 z^ibJ=qHv5?>{?x99Dt&5tnT{BDS%N}gmv@SNW3orHftU3Vz7(zkt7JCL~=dpq1vzA zPdzl_xGwr&aPP`C8Q^N0r}$Z1I_ElFyl5BimcW4C3khDb%OvmnApsbLWU=if5`d9O z@SesVS1DvL)5zAK&fWuZH@P+{o^G6oERS{_q8rVl!UH>~`0*AD>~$WUAd3U5ESxlO zn44eYnv9q+f8~JwdcRx?61Nr+{;FUL3` zK>>ut5KaPI(qhYpizi}L!CCCZ5FQuMl#7_fks#g?Uo>!6igtI$-t=0)aiOZuU%!51 zOm@u^eRT$*2gMVAj$u)|P(*vrcW}`}fFnnQi-}xv;Bl@xY4K4^4zLQN7+9=2wm-9a zn={n%34$w#sL>x{2_v3@s19zc*?X>1;4oJwa99>_%uiedDDak{U^SR6 zRoS}yn#HwaF;QTFn1h1D_nWAdW09elFL7YySgeVY(wgLg7sCU#z2I>c5RNNoLf4Gz z*DRXaHN#mecCnNU0^UklEiI1tSozKwyp>1`cGM`w?4VJ=%}=>z3%*t*C}rMJ6yu{f zF!0w(Ha_AjKq?#ft8l#j;|-r3g|~^lG0iN5#&A2o*%oYaXfw8A!(MR}gvKtg!Wl}a z8@?J4PC(P@VKZjiy@KXG7tt1uuZG2fuLd}-MLOouHe((Qj%#QO0Zk~|Ml0KLwq$qt z;BhWP@VHzyxO`yI@HmHt$7Qs6@zaV;IWll~WRL+j5+EMu@aO~?Zx)M3C&+lySUfsG z#@iHgwvFL&KHRy|#Bfu|V#eQL!L1@_<57)GE+_6Ek&tm$h=g3)WMtebA|c}j5DB@o z$;hMzy~mL2cSsMiii$Mff!OGRND~pCA{X&%t6Y9kM#QK1Mf}<-1?18uBaL9>k zr~<4t$*?E_j31M&&?&*|N69Lsg|W)`sD_M>QOo$XRmMkIWPA)?#;>h1KI*fWZ?$cY z)+{Mx%`yc_q)?y=3WZ~qDNrSa0)gH}m)NDZ7e_4X1LD#Ht)*B9yCg z;~Fn2QaNx$o`X!}Ml|Gz+=zx8k>{Wjt=an;2(V_a3XDa@M3s0h{wbX z;W3Rx#)LS&nyn|IzG#!AMVpL_3P{Kpsf1kGWMtGqLdJL{HS zrA$kVyfsamb}jMkZwhWQtlqE^RWhlRs>^NfDztTXxqjvyd_tMN~&&A%(16W+9an z7E(iDaqTh-DYl**aB+|tVB>1Jw8_Y%l7MV;gheiGGBPP6AXC&rnM<3DOllZSWksxA zRK?n57E(rGAq5l`*DkY=N(u|9p|H4inZ@SMp^`s`qEhS0p^Qu_fd_|73V@A6E^RV0 zDI*|L)BM!o)lpbTA#0aeNF{}Z)KFMlyUb$pr;x8U z)`fhf0X7+#R00oCApzOskA_Uj2*?z*fLz+-GFvs+SuN$px{&A1V3U!p8Z5Gnm_;sa zGO|^JMYa*M$fZq2wra>T!F8d`jSJ=3EUN~KY$IloOPgF~s|Jf~BW96Hn~ZGLkmoh) zLY~urO-8nAu*f!I7P+*^$W{#&*+$GFmo^#Msv(ck>w=wK*j98PBU?3CWE(MyT-s!0 zs|Jf~BW96Hn~ZGLkjI>LA&)m;laZ|&EV7N5MJ{bJvQ>jcwh^<)rADoDj*@3 zHW?X}k&rQJ3Awb%$TolIv%Zod@H#HCORAK1nFW<8y*L(BptN%=u3ct9l}Z$j1=T3+ z9E)q0Sx~X%yqJhL?#RgDV_PGm430vH;HZKKUKwR@)JFuz;6?DtD1(=>i1%U;T)aI+ zMj5=6g#|AoXTd9@3|`8@f|rrA;FVDZM_JaJIr~^Q<^$TKTtS|Kay%IxT#d&+C%09wI_Hz?-X|;k?)9G$Hta_NMfj_JPuO5J%NshY$2QMY{Gy2ki-7&3m!*1Rv1e zls-v&Q+i!{Q~GrHfcB6%fj&o^SwhYR`y7JTwU_!Ff)8kKO0SBe!UyL$I5SR%4`>fn zo2orzPEdP-Pt%^@1KOL?Cy8T9AI$qy?M>-*c++DpzFJJDGxmlLEsu>C;clN0)b*yC zYtBFQ8^Hw#VXoWkxS;Mk#zkCNaS>OixE8nB^>y1dF5=3H3p$s@v{PKS*>OQn)3v^k zD=RMI>JS(9Z5`@M@1Q&8q2&t273S&`SEu%+a&>KAc(K%>zQSCc;_B4CR4&SS=uty` z6x3IjJPdPnimOxmQn|XeFC4P6>nqrA=!4c3`v!zS_n`L)5~Qj=-S?I6h1(~|+7Fa1 zmDm2^ea9t>iT4zjET*x@8HqOC$YUCdj7hPxw~g`E?vlM{Y%DS+#m-_W>kQTGB}DLf@8EI zcx9BqQ4J9s!xq6SqYQ3kxn*B%WFx<2-R*KduVq33C1q2!XVLa#Gl8**12k8VE4{MP=WVyLtZ@Fy=SXq?=N8mZgL|CJM z10NgZSg_WNm7}PwLHx;L#=o@1Vvt?oAiK;`%C*9egK~kCYLElR<2lGgR<4;yWaBXo z9FgZB6JcY(`W1;V=PL(}$a9d1uHj2Qf8!)00|!io03iQqBXcJEwIpkjVX=y*>#kI>U zwPJiMwIV!=YnNGS#pJia*z5=>7J4g8i4w>$mZerqW2qJ6W2qJ4w-38^U9owfA1m!# z+s7O$?J^7ISm`AxR@ylhRIIeiET~xN#j&6wrJZAO?J^7Im_=dRi=zlz`>tJPaTH@& z97R|b*DkX-im@z?A}ot*msx7XP|wBYCK(pR5nwT5 z0oIyiSXhYPjP}1;b1E3y)tZx`w8_YYf^2L&a%q#1H#bv$RS%AvvUXXnnck@k{F6{O z<^GdS49Zhcm?g_4|GX9E0@^s;OPf-5K%S_5sIhYBnD@pi<73HXd@P@gUt48-OmrC^ z6I#Zvtuj6~dq7yO$D5hBR8To6Dj5Ws$O4G$jTxUc@8p>D;+yO zwfRFt>;%BU%LZ1qYzmrEw(0Ey`)Qo1*h26OxpZh{>sAL;YIZu; zN(eV9*trg#rIZq^N+~r^t)zVSU?K-hHmj#v7crgdrQ{K{b~0VxuvaZ`oNIIFuE@B) zVN+2C(=rjL*r~aUwo#_xaMnX4+=C9scGk9XrOp~kp>)<$zOxQtYMu3z@2o?RT4!BM z`K}d@b2)>@<(ydvXn34M!{ag<&REvlnfPiToR5@t4&AlOEI0uxQMh3Nr&pz&V{z>= z3r>nk6pjU_Jf)puaqTh-#7~Z&wAp=)2WRL-GABd6t>SSp%u&pK8=NHGXPQEur`%UEX43!Ua zQsN^U7X~1cO-9CEce0jmN8%Q1T)4;BS&{1}NgR=#%+RO~8^S~z8e1|o{Z zgEQo4R|VTD;4oJca9D+6izZ_!uOzfHpdryQPV4yu$4jcn^PL+d9guPSc#?={iKa~SV+UO`$+V6bi>IQ=nW51!|#CIA)pR z@Ar3Xlb_Dn6)<#H!Th%y+BI?+OnJfKX10te8M@0Q18Ypl&|L##7y33cerv)^S?7D0 zu~2ZB%S$+{ll|3i(&2VjVv{NoQ#p3GMF%fTZ&$^i3)yY=L5I=h-r z2Opmd2Cv_oynb;C6emAmjo6_4{7__2A)kM23Auijq#*};7I`cIc{oZlC(-+CdOwtil{a^1iE;kEzso%8d2wC{!N z|Gc=oxccGj)r;3ZJU_m4{eF-PKT3ug3KI6>ty6>=t7)mhnwH}iFT5b(_nCL#`RRZD zmw({ZsejT@C430b-E)B7zQe26Z#;*K)3@I5%O>K*yNj#0-(%6fN&h6 za@^qO%f@fVdin0T^9y``bQ2YSyGe$>-7JK&J%9Y|`r~ic|M=AlhwZf+&5zzMs0g>r z&tIK-Kfm*Tp1<|1&rkfHm)_6sPTzUI&)@pLPyf>?A`rX3zVm*ayZQJWa9vk`b$=ee zavSIKSFe3wzr%R`s`2~ziHr68()|S~>;8m6|2%)|TCpFZ``K>4;~qHu(H94@ z-vR%3_uoG{KhB2-o~H2Is{?E_uKQ@;&4lwK|K!)N-G1yGe)=)uk?*{?u+2I6@Y5Fw z4)_poz*hzi_{zOH{mwx=_No9{v}1$z?EJbsd)XKbE{6wh;jp>8{-ga@Zi~D;@~oGx zP?wi(ZCqX+A2ok_NSDVRlvkCP7jA}KUU)zk$8G`7&pnt6AN9hszC3;D4myxd?$5K! zKfiKmFB-p38^2#PeqUUkx#h&M;{4R>VQ`RW9Kz9|afnVldHwE{TXA%1^B|qvJV>WM z_ws{I_7Bmi{vkZ^^4P6WJkLLZr};fo0&1yZ*F)t(-T3{~Na}Ljdmp@_Ppm>h#Tti-IRL4&iByLv-Sg zCzr>6I&GcYK1=}Z!P?6A9s9d`GyWv7oq`LVl)EW3NiVRsKZ?CxQQ z-92pC58Cza9P?6A9s9d`GyWj}1QyN4{hd&psT4?FDcVTav4Y}hZ|L?nPW z-XX*89kM67Ib=_C57`slL-s_s`t6DCA$y{G$e!rdoITM!WKVPt*%MvS?TPLod!l>D zp6KdjPjnC26Wv2};*TePg8B4CvtHYW37~x#L0&*V*8pf7!jl_^Ec?mvyVlhiT<`U?y>S*_ZXi0=Hkq~j=)2IIz3^AwDwViY#)93 z4yUY+kaXbEKj4nHV81#(zVhZ!_SpBFAKe19Jy+@H9(%_DmIpn=^58jl`uFZZf_%Z0 z@x_&gSo$&Nw(wpsF~hMI9{M%$(64ojDIZ*0lGncygyR+m8wY{C9XlOtVj55Gbf%nbOkn5qMD_-z@oXG4DxF`Qzj$%#_S?_|Ytxx` zQB<0~m(L;-f7bc;G8dZov%Z(lA`^EOY9(-46MvQ%7wRmO5Y?8sq__Z3K8uN~SxHT` zXcTJ=f9?SqzuW_KiaVO&bm66YfKG7_&?(L7*Gu;Ro#Gy#Q`{*PvA7556!!q0a(r@f z?ymXbSs>qT!VOrYmj3%m7J2ehieeey9V**WHpF)xCZeKBgh%A33C`hn8OZ;TW+dB zgY6!6K-|MMNULgVpq8lyYne!&)93HLYtD>GA)jUY$X&$UkKR^A` zsXP6wF`AYdsA-|NT9+mMg$hOD`9NoRG1|X+SlX8_TT}a! zX1wUvI*3JT9mH7R;LA717pKiO$sM;KEq@osO)6Uw@^_EBIPP&5$L+CQ9QU}3;~qbI z^Q|NFnb)O)%}s%`@7?Q~vorsf+xwoMow)re{QSWox%92@)3v_%{s(uh8GpLaFV1{3 z{PfIT058rw+naAMoMOCq^R34VRyU*2-1zN^@xl}1g(t@43qO4SC)UuLx2Mf3cC1k5 zFxDG$7`-o!FTD&$;N~$ry?G4JJ$rlp{N!8rMg*SSK8okJk0Qbg7NLC<5!y%3@Q_m( zZyLWZ@VDE}=z!Y*erTL=hQ)Ld8^15`w}*%aJjBKs=Wv(Q9p}IQ;Rp0^Z(+b8EQWgs zwK;jy>f@Oa0}sdyfokZc_xK`}5VMTRQmV8ZY5KilZ6a zP4n-;!0j}*1;HJrlc9S6gT1u9q9>(r9K+@O5$E{rYvxu&`zT_xkN)So*KT0&(_M49 zIDP3_;iqqP`-LA)-Cuai+}-3-t{L-(oBM98cWbMRJ>J^fQlfjiQD|eyzdrf;cZ18t z-S+pzdN!Hg%qIi0zhnTfgokY=gPZ%+WIMlG6<-Yozx(>h6Wq`QPVm~yCwLk>?OAN$ z#YW`&+X?t>%Y7I>!0sRv;KxR_DlJN@)~(*Q8sXD6fHHVDVi|_3RoXoe2g6k=Z90g9;p&w3 zD#XDYG3^#N9>$>zxu9?#MkEXu6z<=Mgn7mU1^Z=6l;~WiVts6+shlV<+TnnLHOvX6~~P-?b4ZIENFvd1r^-QjDrtEV97w{vym)Xo=34gZLrj zeA8||GIbmslY+Fk9f!h9XlbQ64uwfAvyN_IBAPWOn9!`F zdN+9bfr&weV3GhHnTRhxUJ_&Z{mub)O%hZ+BhcnwnAt4GkNXiQL+tZ;7+gtmrzcur zsCn=(xRBHthMy3^<5n>s{FIQM>573VXN7(x(W787Fy#=`hCyZiL95ojKJt1s=HJIs z&T3Iyo}=##{^x&8^+Mg0Yv{83@C!B>F5%IbD&h{T`*Exzffb&>saV5h7itTh+lc_t z`W1P0&PEY$bhrGt_TBcT#s;++Casg6lC z5^C@zH<8lH!^{FOw3lYM>0TZo6JCzu;yM)csh`k}#1nKfc=X719N>`vSZ<(*L;FVP zWoSP|B$Uw4;5;9;VMKxn)qpz@;=zQLXg1H8Z48mc6B?v>elQY?xtO5FZT1SpferVB z_5{1jB9Zp#4okZ`EVmrS!UFOIN@$M&6`Ks-2)#c*#U{fyV#B$NO@?p8 zhI1L44BvuRkI$AzCdEFtTIRq-CdR%r-?ycU zOpg7b)Fw@^kqNTTt#~`ZMkdMrP-;-7bg_xDFEsUXpJ!yEh;xnd(UM5KkuU(fxr_x8 zx_|pnY%H44*Ot!_$HEC2_o8}gA{J1p)r2ej{gKe`o+W_^J+A?yhcaSgl{#Si=y)XD zQz7H3=O$wDgv2ZHA}4D5PlePg@nZX8Y5q+QugAtJ^iA}DyTyuF#>a}q37&uH0`Kf0 zsCvmvTY3J5Zf+tJ=n!eCl6K7ka4!HgdGoKh49(}|wLqd-v@%$yUSE{eh!=G@Q5=j?XG#?&=F#uvxN zbdU7hjzxj4G46g3CeKIA`fe?S?@yuOMs;v}^T$V8D2#4J5gI=}2@`{Y)0}n}f)CKd zpp+em-=X1iH-HjXBiIx_cCV3g0H9MakXk)ush#P&@R_7uZYU8@A2*Z;C}D=kbY=+E z#|u<LkY3$ z1Eq24%id5T;d;5DRI7Fzc>{X5&&(SgxX5mUy`e;L_IE?cfr~92cSEU$JBihfyP@R3 z#g^_+7@4Z~n?~jwcY_Lx2e%}mi^g1`Sg6PWfxSUxp(4iw_6C)OdK#$}cZ148MJ_oH zxf@g#Dss7b$n8?FP?1Z`L+%C@LiKcm%9N^?8&no5HW|1ZR2C{W8Mqr%7AiIwxEoX! zDmEFo8&no5G8y*wgyvlKG?Co{d&7&0*53^;2QIS5VQ+XjaFL0|-tcnZB9o21;pMtDuAzZIF&=3&rvcUWDW9vY;0>$_F#zINymQ*h0UK|G5@4Yx%t@H}1$Y{BH zakduByUJqmxK&(JtL9y1v3Shty<5K6VS>9Chj@M6iz~6p!8PJu94dzkTp!I}=_{4^ zZmC{YDha5Ml}Z9iXg|zKB|`PFQb|SXYo(G3)!#}b!u7OLX`%X9sYIwgRw@anY#$x7 zoLi|RoXGaityB_DnRmFm0vsh*>`(+2Ea;aUD9hi5`)9TJuDx z-qt)3thY5!Dp{{9{q| z8m^Z$PX{ixbljRJ!j&r#u}iYtnkVA*wB~7{B8L`s&C^0fjxOw)r-h1Kd0;o?Td2rY z2X@WVLPf4Puxp+cDsr`fUGqe!p4L1~sd`!Sv{13hz^!>&sMuuS);uj#Y%*|bo)#)L z8Mrl13l*6R>>4FO^|wapz(w{D>>8y57nvCB8l?jlnH=mIr2`k4AnY2Y0~eVj>>8y5 z7n>;D8YRN@xJHR^=35eRQ{?@9X3@xk(Kje!;h6gX7B1!X`#!hciFm!NcOp=K>z#q^|-8uE1mvsQ1g=e2pE2AD!l$a0)yX}3h&I1 zz`(ZH4hLVu9|3}WJ_7PPsDf=ZpE0 zb_`CLFdt2L-rA%52njpjx!(bxBA{M%_QSjNrB}@CkGNYT@cn?d-{a>3-n_lAcoD6V zo>;^ZaFNMRXt0s};C#w}i%f%KB11SPGI!5+^+F^0wM$RS7aEnXA(CC6;meHtOo86% z9lZMm1#&CtZY`r=6Cg3`I@Nl#a+kT!3*XPccQX5&`(kF4>FI;OM>b+W_zn#~Uf~)?J%qg|JB80EuTHjL5sPOkN40e2LN z_x+Du#p1`UCU2txWqp`x@xECS6N`BdWBCN%&dT?L_w5u@Kx_qWyOzIc0v#Im8Ga^0 zvxYvpD+J7#5aJ{K>7FE~EcPZ1$|J4=lM%2ZZXm#;gG?VNL*PuW0WsQ-LcspaN4PwS z0>Hkk0Wds>Lcpn610ga9oR>8Q0(orbhXMF>m>JXSoRcB2=GrNTUmt6XBr*g)N5@i_ zNB6oEgP)?)N6Idd0#)$l=IW=NW5$- zFB%-@#a)E=MuCQ6BdlM4=ELpvx6d0bOzXwl@9Ov*11mqz9uXM#QV>Pg)+}k^K`j zO%qvM)5Q5@MAJ0ymBDVR95suGVelcsR~s_hU3+i6r8F8}y}-dZqECO;D&((7sqbTy zI`}m!b^d)sPMJ^X{YqQk_c2PfXZOF7)^{A;QMD%}zb2`odMaj`^J~&7s;`QBqhf0a z_$Qt!P!o*mt%l`|vR~b_>N2{!8k&z;{t5>{(kiaM`qfU?O2*v3A@QF)GF@M z5m%kFE*<3?)69D7DB{{tUFj3A@Q$;u@IJqQqPmOrh1lm8P}CfxeZBPg1r#+=XkXTR zUI86n#Wte$)yHQTQB*5pE)qV&kfPcVGnfAiLyBri%#{1{3h6SsDKRtS&oHF8w$z@$ zeug2%wWanv^D_*I+EUzf5H}D+Ob3~vOqt?IlQy{4K8AJqtMeCUuk!B1Y4;mc_I~bU zC)1zza=SU1KKY(7ZWZ|j(mICgGEkxEbL5=q~_1)7&GDfcOHhi62( zw8xDi;`*_##Yd^%FrC&Py6=c+j~Sm^I8noT`$F?`3nywwZ(nA9Zs9~tjoTyh=M;_| z@go{fyYv3+;)!ZK%y9781r*hOn9Ix0E}*Cu#9Ul{P65G!FHV{xnhgt z34*Dif5O`r(u{`!O1P+G9?jDBKDX~1DA(3(S>M6V>#O6~=Fz%+ok|;(#O=GrskBku zb^8WvDs5D!+HSG2v?*2Fo_Qy-M%8S4f}F@2Rk7`PY$9t^y|$;D39NAAA+pW3XN9S> zQ8mj<-cos^>Xw;frSeAAE;AKM;DyET$m(TgEUCP4_1jA~W#Y{o|C8g5-wJ@wzDBIh zw1;W=sl&GK=5{Wx<*M?Rl30o%yu1sG(OpAW zjl>f^MwGt&!iRs4DLL~9)l#i5ET6B|^V9$Quf{c>41s(M#H-Wp5LjOf#QEFq5LjOf z#CKGRc59Z?k9o{Rj-7wS1IPytvO;m{beADS`MN`h@^yz0(_6H6tk$VI2i*w{YEc?7-imfg`tPb8JzEI^0!`LAj>J{ z0lw>{V>*h7Ko}+yy7zu?QI0yadp}v$cJKH6)$3RA(kle&Rx|Ap1X^Sa01DaY5zpb3 zhTThmDz*UNH45Dk+7H=3hw&!{q5XvY^XG8myDox#)0$ir2mX83WXHqyTh@RJlCCBT zyXG~=ILYa4Kbfzx>^RS ze%N@&o?Q3vw!wDQJuhFdfn9|y2}}b2@#IOd9dGB8!F;uSQoR##cyN6+olWkhv%zmC zcdKGMc-+ob#rSHzDpuF`H{e~YzIgHxuMOK@#6GtOGXujml0roh{F*EWO#Yuf5ZW`7gC*@ zDqUrG_4-X5YkO@mf%OdbTwxB^x!0jT7-#nf<3@h~<4Zd+;N5+;ZP)Fz(XTXdV3cX& zzza2Fad6t#27>qbpjd8q6)4XTa+Srg1@grH*C${9Zg2)2?B;&5o!_kn#o}&Td^H&S z?(3>&{%|*+ny&eA|LN7YcbnySiyiUyYR^b2_RwF#e3-7m8of7?Kre1OaQovgd;dN7 zqv@{kpZ{mD_jp79ec_H0T3HJ0?i)X8+O%!z-jy0!A=NF19GDWdD+<*B63XasjV>t*(DTt(cTvNFY)d#mn@P4aw4vXZmErn&{u>b#RRpo!W4Ba|4wr;d$MwU&_|)V+V6B3gS#?e7IsPieHRpnoTNuF12c0Q8I2=y!$W64zK9_ruW4|}O8@@}r@TeDozKDz={13pKZ4@5FwO=luc(SBt%7W-_uUd$)+ z?UfOKyrF@QwLC4GMeCd+(E|OC?a3M^Ek&Z`W+i8z!$CZrUX6{cgB%mfsCGj9xd~w25?bXl^&`!8N*J&(`RM zJ)74JTT6!?m|U1{*u!pi!@kk$hCP$l4f~cxH|!g|cRG3|w;T2hZa3^1-0smg@ZB)y z)9i*lAEq1j?9Fc28XLXiXML3EW!+hAJ=w);8P}q8wAK~-S}sjZN;>^vz~9MZZ=T4W zX7jynwyYOdEQiLOV>##Bf;;WoF*>LFZCUVPOK2G2`~$b0I0&_a+cY_c!w|xuir_79 zQq9*xCzeky{vm4?Ro4wB=5||bMcrtQj=j+$eJU#p70 z(->M!wso2Tcg9m&ZmIuh6wsE9Ki?V~P1Y@f@n|<$#)l2RI=|IqEkfG&ZZM*7EwVzkHRCTW*xOo|hK&~as~JSEyAPt|8r5V&{j8~!#vsbj z7{5l73xU@uW9yzj-x?cD)&(~n?Iz3k_)XS2ROh#vY|Ek9;F=DtCfjmQ5gJXld2*x4 zHqDJDYt6OHQU5Zc@J-euZVjSUel(h_J?ry4$_%1-*A4D^ZfBd-cwugnR(DxG4*m`A zq5j*KgMWitr0^GMI~ZKzIqXf-FD09m#hy!dS-mS=dm8>iY3ZBDt{=4@!D)oeQLn4@iR57BJ?>;OhCA{ZI|7x8~})H3sbv!~r2|F_Nb z+h*LkEcBsIY#-VfE$&yv{QYV+9ZYV=o5AngSq5~wu$u^vz<_~U5pDPEb;b*@KwnK$ zows-E-!En#W{bhuyx*#SbX?w4lf zS6HHNo_;yFThBJ*)wG~fMlev%CyQ}W%;><=XGiFP6Scw?0z5Xe_cwEh15bJN?&a0x z+vB&VmtTSs<89?fhCg3koPLLvp9(msg!njkdHmzm<(t!!v*YtC@c5Dryt_QTz+W(V zfT{c*@R?}@OiiF(XPcYxq(TSl&HZZfZZ+Q`D(1j%{t5njKfV5XzM3rVr?anjRop%J z@9^2P-_YL&PrbkK82tB};r`RTr^CI&;r{41d&AM_VDy{8vt1R)#l43d*$f81`Rio) z;rega6W8YcJ7jl#|B3$X*1zc!eh-^aZ|3j6y6r6rtl)#Ee!U;sJlNYC!v984|0DD| z+&?&k`ac-$J^RgIueTB?K)>?(hferMdeCQJs{MWg&j#VH^w}0Rp}jA@f*y5na<~3z zGk<>zyS-1o80&@N!&3HM0f8HQvVJZJG`04I`FoEH0Gn>v~cqFF5 zd^><~=Igu70EWT&%}w8$cJoECzQs^y9l%?*`w^Rxma#25;`KfqHO0 zpFk;QgE3I!k>Zw$k2rX`6!sqmvpLu|gAcP!fntM@P>A0`R8Y z7*_f6(bhptVPqomTNp;+AAkuVfqsj@^=xoo%x>-%Uk*TMEaVSoZ@+*2?(G1c@*Dhc zd~tF7>g}KZ0M6UnyZh|`<`V{LjvEUhGN?Tmn72QHB6#-8(~Fbu;gsX&Xa8S2SJT@z z4n)t&uTYUo7uWz%ybTuUNtWoCsBEjEoR7T-iX(4~wXMK%TjbyO4P{xfJj``3y!61~ zn;E{Dp@vN9NTyG;gpo|ALMeANOI+WL{UnvaJn|Dao+t542{a@MaUpU*Cn+&7imn1d zL9)CQ`y9cqm;Hn&R`6~8;=blT3q*5KtbW3?9NGIuel@BMddXtGF1P>cMPhQBG+*g? z+P1{~)vw)Z4m-H*?`H284>8WS|E_m?}RDX48?p%f=U%7+h_OvvGPol7hZXzSxx& z=%HDlqX1WUC9-&h*CkStf~Xfz<(tCY;-9L?jJn=wEsJvVhPLTyzrvicAGx2$`R+v* zssD^J$?F#?QT|@+{(!^ry2zn>S1hSOG(n{1uz{%eYF}*HI!|aCZgUEEl5c;YYAC2L z<>JSt*wPC`Bz_&Rsvs@(iW*v|2*C;xEXv0Iy~u{5<)k}`_b%5L7nf)AL-2{Lo`e!xdf3k(s!kBk{WBrt;pH(U&$ZE*7uC>zVW zPHne&tdUx3NUl)c^ES1>U=uqE=O%_vGo|B)oZ=+JfhJmFFr<(c9EiqErs#(nI+@t| zpalj)=@<_;!#HJ2;3zbJ6A=j?^`M@n0q1R3Zcu?&hJhzJa4j*whO-$=Pub-*GDF}; zF=uTQgI0Fm8^sw?g2#}=3`=nOH5kJo7&0?deNWi$YC4Vc_8Wfz^BWD9_%;{Yba6XQ}iH1e813L1!K`i>&^0H0w2~m z5uprH5q_xXd=_atbx8(3{K%C2r~gImNU;3d!QX%NprH}kk?_!i?nt6PG+J(?43P%| z&5T|QdQt}8u@AP>{wCZPJI)t=?c@NbpyPoS8x=^EJtX)J5B=a9zl!b*>KjhOrxRu} znfI{GFtgiYa)#YIi_rnZ{v8{7c8=pAof+$)7|!oF`&z(PjvUg9`yPl&rxrL)zj8o zOX}S|_0B2u*TWAkSFFe~U>UFsSOzQumI2FvWxz6E8L$jk1}p=X0n318z%pPNunbrR I{x1f81K1yh+yDRo literal 747520 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 diff --git a/bsp/buildroot/board/raspberrypi/genimage-raspberrypi0.cfg b/bsp/buildroot/board/raspberrypi/genimage-raspberrypi0.cfg new file mode 100644 index 00000000..a38840c8 --- /dev/null +++ b/bsp/buildroot/board/raspberrypi/genimage-raspberrypi0.cfg @@ -0,0 +1,30 @@ +image boot.vfat { + vfat { + files = { + "bcm2708-rpi-b-plus.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "kernel-marked/zImage" + } + } + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/raspberrypi/genimage-raspberrypi3.cfg b/bsp/buildroot/board/raspberrypi/genimage-raspberrypi3.cfg new file mode 100644 index 00000000..7ba89c55 --- /dev/null +++ b/bsp/buildroot/board/raspberrypi/genimage-raspberrypi3.cfg @@ -0,0 +1,30 @@ +image boot.vfat { + vfat { + files = { + "bcm2710-rpi-3-b.dtb", + "rpi-firmware/bootcode.bin", + "rpi-firmware/cmdline.txt", + "rpi-firmware/config.txt", + "rpi-firmware/fixup.dat", + "rpi-firmware/start.elf", + "kernel-marked/zImage" + } + } + size = 32M +} + +image sdcard.img { + hdimage { + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/raspberrypi/post-build.sh b/bsp/buildroot/board/raspberrypi/post-build.sh new file mode 100755 index 00000000..5e5eb711 --- /dev/null +++ b/bsp/buildroot/board/raspberrypi/post-build.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -u +set -e + +# Add a console on tty1 +if [ -e ${TARGET_DIR}/etc/inittab ]; then + grep -qE '^tty1::' ${TARGET_DIR}/etc/inittab || \ + sed -i '/GENERIC_SERIAL/a\ +tty1::respawn:/sbin/getty -L tty1 0 vt100 # HDMI console' ${TARGET_DIR}/etc/inittab +fi diff --git a/bsp/buildroot/board/raspberrypi/readme.txt b/bsp/buildroot/board/raspberrypi/readme.txt index b21a75a6..a170f8f9 100644 --- a/bsp/buildroot/board/raspberrypi/readme.txt +++ b/bsp/buildroot/board/raspberrypi/readme.txt @@ -6,7 +6,8 @@ Intro These instructions apply to all models of the Raspberry Pi: - the original models A and B, - the "enhanced" models A+ and B+, - - the model B2 (aka Raspberry Pi 2). + - the model B2 (aka Raspberry Pi 2) + - the model B3 (aka Raspberry Pi 3). How to build it =============== @@ -21,10 +22,14 @@ For models A, B, A+ or B+: $ make raspberrypi_defconfig -And for model 2 B: +For model 2 B: $ make raspberrypi2_defconfig +For model 3 B: + + $ make raspberrypi3_defconfig + Build the rootfs ---------------- @@ -46,6 +51,7 @@ After building, you should obtain this tree: +-- bcm2708-rpi-b.dtb [1] +-- bcm2708-rpi-b-plus.dtb [1] +-- bcm2709-rpi-2-b.dtb [1] + +-- bcm2710-rpi-3-b.dtb [1] +-- boot.vfat +-- kernel-marked/zImage [2] +-- rootfs.ext4 @@ -74,4 +80,6 @@ Copy the bootable "sdcard.img" onto an SD card with "dd": $ sudo dd if=output/images/sdcard.img of=/dev/sdX Insert the SDcard into your Raspberry Pi, and power it up. Your new system -should come up now. +should come up now and start two consoles: one on the serial port on +the P1 header, one on the HDMI output where you can login using a USB +keyboard. diff --git a/bsp/buildroot/board/raspberrypi0 b/bsp/buildroot/board/raspberrypi0 new file mode 120000 index 00000000..fcdafc81 --- /dev/null +++ b/bsp/buildroot/board/raspberrypi0 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/bsp/buildroot/board/raspberrypi3 b/bsp/buildroot/board/raspberrypi3 new file mode 120000 index 00000000..fcdafc81 --- /dev/null +++ b/bsp/buildroot/board/raspberrypi3 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/bsp/buildroot/board/roseapplepi/genimage.cfg b/bsp/buildroot/board/roseapplepi/genimage.cfg new file mode 100644 index 00000000..4d40e65b --- /dev/null +++ b/bsp/buildroot/board/roseapplepi/genimage.cfg @@ -0,0 +1,43 @@ +# Minimal SD card image for the Roseapple Pi +# +image boot.vfat { + vfat { + files = { + "uEnv.txt", + "uImage" + } + file kernel.dtb { + image = "actduino_bubble_gum_sdboot_linux.dtb" + } + } + size = 10M +} + +image sdcard.img { + hdimage { + } + + partition s500-bootloader { + in-partition-table = "no" + image = "s500-bootloader.bin" + offset = 0x200200 + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 0x300000 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 512M + } +} diff --git a/bsp/buildroot/board/roseapplepi/patches/linux/0001-unbreak-xhci-trace.patch b/bsp/buildroot/board/roseapplepi/patches/linux/0001-unbreak-xhci-trace.patch new file mode 100644 index 00000000..79e8c800 --- /dev/null +++ b/bsp/buildroot/board/roseapplepi/patches/linux/0001-unbreak-xhci-trace.patch @@ -0,0 +1,31 @@ +[PATCH] unbreak xhci-trace compilation + +When commit 84a99f6fc5d4 (xhci: add traces for debug messages in +xhci_address_device) was backported to the owl tree as part of commit +5b2ea66f15396 (usb: add owl usb driver), the specific CFLAGS needed for +xhci-trace.c were missed, causing build breakage: + + CC drivers/usb/host/xhci-trace.o +In file included from drivers/usb/host/xhci-trace.h:151:0, + from drivers/usb/host/xhci-trace.c:15: +include/trace/define_trace.h:79:43: fatal error: ./xhci-trace.h: No such file or directory + +Signed-off-by: Peter Korsgaard +--- + drivers/usb/host/Makefile | 3 +++ + 1 file changed, 3 insertions(+) + +Index: linux-59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b/drivers/usb/host/Makefile +=================================================================== +--- linux-59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b.orig/drivers/usb/host/Makefile ++++ linux-59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b/drivers/usb/host/Makefile +@@ -4,6 +4,9 @@ + + ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG + ++# tell define_trace.h where to find the xhci trace header ++CFLAGS_xhci-trace.o := -I$(src) ++ + isp1760-y := isp1760-hcd.o isp1760-if.o + + fhci-y := fhci-hcd.o fhci-hub.o fhci-q.o diff --git a/bsp/buildroot/board/roseapplepi/post-image.sh b/bsp/buildroot/board/roseapplepi/post-image.sh new file mode 100755 index 00000000..e8f2df23 --- /dev/null +++ b/bsp/buildroot/board/roseapplepi/post-image.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +cp "${BOARD_DIR}/uEnv.txt" "${BINARIES_DIR}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +exit $? diff --git a/bsp/buildroot/board/roseapplepi/uEnv.txt b/bsp/buildroot/board/roseapplepi/uEnv.txt new file mode 100755 index 00000000..f9646e49 --- /dev/null +++ b/bsp/buildroot/board/roseapplepi/uEnv.txt @@ -0,0 +1,3 @@ +# no ramdisk +ramdisk_addr_r=- +bootargs=clk_ignore_unused root=/dev/mmcblk0p2 diff --git a/bsp/buildroot/board/stmicroelectronics/stm32-post-build.sh b/bsp/buildroot/board/stmicroelectronics/stm32-post-build.sh new file mode 100755 index 00000000..e324afe5 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32-post-build.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Kernel is built without devpts support +sed -i '/^devpts/d' ${TARGET_DIR}/etc/fstab + +# Kernel is built without network support +rm -f ${TARGET_DIR}/etc/init.d/S40network +rm -rf ${TARGET_DIR}/etc/network/ diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/flash.sh b/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/flash.sh new file mode 100755 index 00000000..ffb8fcff --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/flash.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +OUTPUT_DIR=$1 + +if ! test -d "${OUTPUT_DIR}" ; then + echo "ERROR: no output directory specified." + echo "Usage: $0 OUTPUT_DIR" + exit 1 +fi + +${OUTPUT_DIR}/host/usr/bin/openocd -f board/stm32f429discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f429i-disco.bin 0x08000000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f429-disco.dtb 0x08004000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/xipImage 0x08008000" \ + -c "reset run" \ + -c "shutdown" diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/patches/linux/0001-ARM-stm32f249-disco-don-t-force-init-in-chosen-boota.patch b/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/patches/linux/0001-ARM-stm32f249-disco-don-t-force-init-in-chosen-boota.patch new file mode 100644 index 00000000..d6d5c61a --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/patches/linux/0001-ARM-stm32f249-disco-don-t-force-init-in-chosen-boota.patch @@ -0,0 +1,32 @@ +From ded9afa688184b3240a92c2b8f114c545a09bc3f Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 12 Mar 2016 23:14:41 +0100 +Subject: [PATCH] ARM: stm32f249-disco: don't force init= in /chosen/bootargs + +There is no reason to override the kernel's default init= value, as +this breaks userspace that assumes the kernel default of /init is +used. Since stm32 is often used with a minimal bootloader +(afboot-stm32) that doesn't provide any mechanism to override the DTB, +we need to adjust the kernel command line in the Device Tree source. + +Signed-off-by: Thomas Petazzoni +--- + arch/arm/boot/dts/stm32f429-disco.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts +index f0b731d..2bae81c 100644 +--- a/arch/arm/boot/dts/stm32f429-disco.dts ++++ b/arch/arm/boot/dts/stm32f429-disco.dts +@@ -53,7 +53,7 @@ + compatible = "st,stm32f429i-disco", "st,stm32f429"; + + chosen { +- bootargs = "root=/dev/ram rdinit=/linuxrc"; ++ bootargs = "root=/dev/ram"; + stdout-path = "serial0:115200n8"; + }; + +-- +2.6.4 + diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/readme.txt b/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/readme.txt new file mode 100644 index 00000000..43a25b42 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f429-disco/readme.txt @@ -0,0 +1,30 @@ +STM32F429 Discovery +=================== + +This tutorial describes how to use the predefined Buildroot +configuration for the STM32F429 Discovery evaluation platform. + +Building +-------- + + make stm32f429_disco_defconfig + make + +Wire the UART +------------- + +Use a USB to TTL adapter, and connect: + + - RX to PA9 + - TX to PA10 + - GND to one of the GND available on the board + +The UART is configured at 115200. + +Flashing +-------- + + ./board/stmicroelectronics/stm32f429-disco/flash.sh output/ + +It will flash the minimal bootloader, the Device Tree Blob, and the +kernel image which includes the root filesystem as initramfs. diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/flash.sh b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/flash.sh new file mode 100755 index 00000000..a68bea09 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/flash.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +OUTPUT_DIR=$1 + +if ! test -d "${OUTPUT_DIR}" ; then + echo "ERROR: no output directory specified." + echo "Usage: $0 OUTPUT_DIR" + exit 1 +fi + +${OUTPUT_DIR}/host/usr/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469i-disco.bin 0x08000000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469-disco.dtb 0x08004000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/xipImage 0x08008000" \ + -c "reset run" \ + -c "shutdown" diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0001-ARM-stm32-Identify-a-new-board-STM32F469.patch b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0001-ARM-stm32-Identify-a-new-board-STM32F469.patch new file mode 100644 index 00000000..01af4154 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0001-ARM-stm32-Identify-a-new-board-STM32F469.patch @@ -0,0 +1,25 @@ +From 3b572676972f9bcf69695fd85a582c6622f7faa8 Mon Sep 17 00:00:00 2001 +From: Lee Jones +Date: Tue, 16 Feb 2016 14:04:17 +0000 +Subject: [PATCH] ARM: stm32: Identify a new board - STM32F469 + +Signed-off-by: Lee Jones +--- + arch/arm/mach-stm32/board-dt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/arm/mach-stm32/board-dt.c b/arch/arm/mach-stm32/board-dt.c +index f2ad772..ceee477 100644 +--- a/arch/arm/mach-stm32/board-dt.c ++++ b/arch/arm/mach-stm32/board-dt.c +@@ -10,6 +10,7 @@ + + static const char *const stm32_compat[] __initconst = { + "st,stm32f429", ++ "st,stm32f469", + NULL + }; + +-- +2.6.4 + diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0002-ARM-stm32-Supply-a-DTS-file-for-the-STM32F469-Discov.patch b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0002-ARM-stm32-Supply-a-DTS-file-for-the-STM32F469-Discov.patch new file mode 100644 index 00000000..45f52282 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0002-ARM-stm32-Supply-a-DTS-file-for-the-STM32F469-Discov.patch @@ -0,0 +1,101 @@ +From a08561ffdfb13986e2628296ccfd42f8a273b729 Mon Sep 17 00:00:00 2001 +From: Lee Jones +Date: Tue, 16 Feb 2016 13:53:47 +0000 +Subject: [PATCH] ARM: stm32: Supply a DTS file for the STM32F469 Discovery + board + +It's pretty similar to the STM32F429, but there are some +subtle changes required to boot successfully. + +Signed-off-by: Lee Jones +[Thomas: remove rdinit= from /chosen/bootargs.] +Signed-off-by: Thomas Petazzoni +--- + arch/arm/boot/dts/stm32f469-disco.dts | 75 +++++++++++++++++++++++++++++++++++ + 1 file changed, 75 insertions(+) + create mode 100644 arch/arm/boot/dts/stm32f469-disco.dts + +diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts +new file mode 100644 +index 0000000..9e73656 +--- /dev/null ++++ b/arch/arm/boot/dts/stm32f469-disco.dts +@@ -0,0 +1,75 @@ ++/* ++ * Copyright 2016 - Lee Jones ++ * ++ * This file is dual-licensed: you can use it either under the terms ++ * of the GPL or the X11 license, at your option. Note that this dual ++ * licensing only applies to this file, and not this project as a ++ * whole. ++ * ++ * a) This file 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 file 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 file; if not, write to the Free ++ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, ++ * MA 02110-1301 USA ++ * ++ * Or, alternatively, ++ * ++ * b) 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. ++ */ ++ ++/dts-v1/; ++#include "stm32f429.dtsi" ++ ++/ { ++ model = "STMicroelectronics STM32F469i-DISCO board"; ++ compatible = "st,stm32f469i-disco", "st,stm32f469"; ++ ++ chosen { ++ bootargs = "root=/dev/ram"; ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory { ++ reg = <0x00000000 0x800000>; ++ }; ++ ++ aliases { ++ serial0 = &usart3; ++ }; ++}; ++ ++&clk_hse { ++ clock-frequency = <8000000>; ++}; ++ ++&usart3 { ++ status = "okay"; ++}; +-- +2.6.4 + diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0003-ARM-configs-Add-new-config-fragment-to-change-RAM-st.patch b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0003-ARM-configs-Add-new-config-fragment-to-change-RAM-st.patch new file mode 100644 index 00000000..e12c9bc7 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/linux/0003-ARM-configs-Add-new-config-fragment-to-change-RAM-st.patch @@ -0,0 +1,28 @@ +From 7d67f4be6e1b4d08126023c3902e3fc39488bbf9 Mon Sep 17 00:00:00 2001 +From: Lee Jones +Date: Tue, 16 Feb 2016 13:56:13 +0000 +Subject: [PATCH] ARM: configs: Add new config fragment to change RAM start + point + +Rather than duplicate a defconfig for each difference +between platforms, we can choose to pick a basic defconfig and +manipulate it at run-time using config fragments. Here we're +adding a new fragment to over-ride the RAM start point to 0x0. + +Cc: Arnd Bergmann +Signed-off-by: Lee Jones +--- + arch/arm/configs/dram_0x00000000.config | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 arch/arm/configs/dram_0x00000000.config + +diff --git a/arch/arm/configs/dram_0x00000000.config b/arch/arm/configs/dram_0x00000000.config +new file mode 100644 +index 0000000..db96dcb +--- /dev/null ++++ b/arch/arm/configs/dram_0x00000000.config +@@ -0,0 +1 @@ ++CONFIG_DRAM_BASE=0x00000000 +-- +2.6.4 + diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0001-add-config.patch b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0001-add-config.patch new file mode 100644 index 00000000..036c4f62 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0001-add-config.patch @@ -0,0 +1,37 @@ +From 26045588f462476cee356d15a24944d6c26befb4 Mon Sep 17 00:00:00 2001 +From: Maxime Coquelin +Date: Sat, 24 Oct 2015 00:13:38 +0200 +Subject: [PATCH] tcl: add STM32F469 discovery board config + +Change-Id: Iad7ee06330b3259ea0ce0d174dfdade6785913eb +Signed-off-by: Maxime Coquelin +Reviewed-on: http://openocd.zylin.com/3043 +Tested-by: jenkins +Reviewed-by: Antonio Borneo +Reviewed-by: Freddie Chopin +--- + tcl/board/stm32f469discovery.cfg | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + create mode 100644 tcl/board/stm32f469discovery.cfg + +diff --git a/tcl/board/stm32f469discovery.cfg b/tcl/board/stm32f469discovery.cfg +new file mode 100644 +index 0000000..eecfe33 +--- /dev/null ++++ b/tcl/board/stm32f469discovery.cfg +@@ -0,0 +1,12 @@ ++# ++# This is an STM32F469 discovery board with a single STM32F469NI chip. ++# http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF262395 ++# ++ ++source [find interface/stlink-v2-1.cfg] ++ ++transport select hla_swd ++ ++source [find target/stm32f4x.cfg] ++ ++reset_config srst_only +-- +1.9.1 + diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0002-flash-nor.patch b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0002-flash-nor.patch new file mode 100644 index 00000000..bfec9832 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/patches/openocd/0002-flash-nor.patch @@ -0,0 +1,37 @@ +From 3e219648c80a27f0519003f3b088cbb846e255d8 Mon Sep 17 00:00:00 2001 +From: Maxime Coquelin +Date: Sat, 24 Oct 2015 00:03:54 +0200 +Subject: [PATCH] flash/nor/stm32f2x: Add STM32F469 part + +Change-Id: I4e13ceb0ba954dc2fea059ddeef10109be938c9c +Signed-off-by: Maxime Coquelin +Reviewed-on: http://openocd.zylin.com/3042 +Tested-by: jenkins +Reviewed-by: Freddie Chopin +--- + src/flash/nor/stm32f2x.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/flash/nor/stm32f2x.c b/src/flash/nor/stm32f2x.c +index 2130444..89fc75d 100644 +--- a/src/flash/nor/stm32f2x.c ++++ b/src/flash/nor/stm32f2x.c +@@ -790,6 +790,7 @@ static int stm32x_probe(struct flash_bank *bank) + max_flash_size_in_kb = 1024; + break; + case 0x419: ++ case 0x434: + max_flash_size_in_kb = 2048; + break; + case 0x423: +@@ -952,6 +953,7 @@ static int get_stm32x_info(struct flash_bank *bank, char *buf, int buf_size) + + case 0x413: + case 0x419: ++ case 0x434: + device_str = "STM32F4xx"; + + switch (rev_id) { +-- +1.9.1 + diff --git a/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/readme.txt b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/readme.txt new file mode 100644 index 00000000..888bff08 --- /dev/null +++ b/bsp/buildroot/board/stmicroelectronics/stm32f469-disco/readme.txt @@ -0,0 +1,19 @@ +STM32F469 Discovery +=================== + +This tutorial describes how to use the predefined Buildroot +configuration for the STM32F469 Discovery evaluation platform. + +Building +-------- + + make stm32f469_disco_defconfig + make + +Flashing +-------- + + ./board/stmicroelectronics/stm32f469-disco/flash.sh output/ + +It will flash the minimal bootloader, the Device Tree Blob, and the +kernel image which includes the root filesystem as initramfs. diff --git a/bsp/buildroot/board/technexion/imx6ulpico/genimage.cfg b/bsp/buildroot/board/technexion/imx6ulpico/genimage.cfg new file mode 100644 index 00000000..9e67105f --- /dev/null +++ b/bsp/buildroot/board/technexion/imx6ulpico/genimage.cfg @@ -0,0 +1,41 @@ +# Minimal eMMC card image for the Technexion's i.MX6UL Pico board +# +# We mimic the .sdcard Freescale's image format for i.MX6UL: +# * the eMMC must have 1 kB free space at the beginning, +# * U-Boot is dumped as is, +# * a FAT partition at offset 8 MB is containing zImage and dtbs, +# * a single root filesystem partition is required (Ext4 in this case). +# + +image boot.vfat { + vfat { + files = { + "imx6ul-pico-hobbit.dtb", + "zImage" + } + } + size = 16M +} + +image sdcard.img { + hdimage { + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.imx" + offset = 1024 + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/bsp/buildroot/board/technexion/imx6ulpico/linux.fragment b/bsp/buildroot/board/technexion/imx6ulpico/linux.fragment new file mode 100644 index 00000000..88e323e6 --- /dev/null +++ b/bsp/buildroot/board/technexion/imx6ulpico/linux.fragment @@ -0,0 +1,2 @@ +CONFIG_CFG80211_WEXT=y +CONFIG_SMP=n diff --git a/bsp/buildroot/board/technexion/imx6ulpico/patches/linux/0001-picowifi.patch b/bsp/buildroot/board/technexion/imx6ulpico/patches/linux/0001-picowifi.patch new file mode 100644 index 00000000..c6574915 --- /dev/null +++ b/bsp/buildroot/board/technexion/imx6ulpico/patches/linux/0001-picowifi.patch @@ -0,0 +1,66 @@ +From 5a9a0986ab0041b53f55e2f4eaedabecb2ea1760 Mon Sep 17 00:00:00 2001 +From: Vanessa Maegima +Date: Mon, 1 Aug 2016 09:33:00 -0300 +Subject: [PATCH v2] ARM: dts: imx6ul-pico-hobbit: Add Wifi support + +imx6ul-pico-hobbit has a bcm4339 wifi chip connected to usdhc2 port. + +Add support for the WL_REG_ON regulator, so that Wifi can be +functional on this board. + +Signed-off-by: Vanessa Maegima +Signed-off-by: Fabio Estevam +--- +Changes since v1: +- Improve commit log +- Remove WL_HOST_WAKE + + arch/arm/boot/dts/imx6ul-pico-hobbit.dts | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts +index 8ce1fec..af2e06b 100644 +--- a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts ++++ b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts +@@ -100,6 +100,18 @@ + gpio = <&gpio1 6 0>; + }; + ++ reg_brcm: brcm-reg { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_brcm_reg>; ++ regulator-name = "brcm_reg"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <200000>; ++ }; ++ + sound { + compatible = "fsl,imx-audio-sgtl5000"; + model = "imx6ul-sgtl5000"; +@@ -325,12 +337,20 @@ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2>; + no-1-8-v; ++ non-removable; + keep-power-in-suspend; + wakeup-source; ++ vmmc-supply = <®_brcm>; + status = "okay"; + }; + + &iomuxc { ++ pinctrl_brcm_reg: brcmreggrp { ++ fsl,pins = < ++ MX6UL_PAD_NAND_DATA06__GPIO4_IO08 0x10b0 /* WL_REG_ON */ ++ >; ++ }; ++ + pinctrl_enet2: enet2grp { + fsl,pins = < + MX6UL_PAD_ENET1_TX_DATA1__ENET2_MDIO 0x1b0b0 +-- +1.9.1 diff --git a/bsp/buildroot/board/technexion/imx6ulpico/post-image.sh b/bsp/buildroot/board/technexion/imx6ulpico/post-image.sh new file mode 100755 index 00000000..b4ac4608 --- /dev/null +++ b/bsp/buildroot/board/technexion/imx6ulpico/post-image.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +rm -rf "${GENIMAGE_TMP}" + +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" diff --git a/bsp/buildroot/board/technexion/imx6ulpico/readme.txt b/bsp/buildroot/board/technexion/imx6ulpico/readme.txt new file mode 100644 index 00000000..ff78412e --- /dev/null +++ b/bsp/buildroot/board/technexion/imx6ulpico/readme.txt @@ -0,0 +1,70 @@ +***************************** +Technexion i.MX6UL Pico board +***************************** + +This file documents the Buildroot support for the Technexion i.MX6UL Pico board. + +Build +===== + +First, configure Buildroot for the i.MX6UL Pico board: + + make imx6ulpico_defconfig + +Build all components: + + make + +You will find in output/images/ the following files: + - imx6ul-pico-hobbit.dtb + - rootfs.ext4 + - rootfs.tar + - sdcard.img + - u-boot.imx + - zImage + +Create a bootable SD card +========================= + +In the U-Boot prompt lauch: + +=> ums 0 mmc 0 + +This will mount the eMMC content in the host PC as a mass storage device. + +To determine the device associated to the eMMC card have a look in the +/proc/partitions file: + + cat /proc/partitions + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be dumped on the eMMC card. Launch the following +command as root: + + dd if=output/images/sdcard.img of=/dev/ + +*** WARNING! This will destroy all the card content. Use with care! *** + +For details about the medium image layout, see the definition in +board/technexion/imx6ulpico/genimage.cfg. + +Boot the i.MX6UL Pico board +========================= + +To boot your newly created system: +- put a micro USB cable into the Debug USB Port and connect using a terminal + emulator at 115200 bps, 8n1; +- power on the board. + +Using Wifi +========== + +# modprobe brcmfmac +# iwconfig wlan0 essid ACCESSPOINTNAME +# wpa_passphrase ACCESSPOINTNAME > /etc/wpa.conf +(enter the wifi password and press enter) +# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa.conf & +# udhcpc -i wlan0 +# ping buildroot.org + +Enjoy! diff --git a/bsp/buildroot/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt b/bsp/buildroot/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt new file mode 100644 index 00000000..4716c7ef --- /dev/null +++ b/bsp/buildroot/board/technexion/imx6ulpico/rootfs_overlay/lib/firmware/brcm/brcmfmac4339-sdio.txt @@ -0,0 +1,102 @@ +# Sample NVRAM for BCM94339 WLCSP with eTR,iPA, and eLNA. +sromrev=11 +boardrev=0x1100 +boardtype=0x06c9 +boardflags=0x10081401 +boardflags2=0x00000000 +boardflags3=0x08001188 +#boardnum=57410 +macaddr=00:90:4c:c5:12:38 +ccode=0 +regrev=0 +antswitch=0 +pdgain2g=7 +pdgain5g=7 +tworangetssi2g=0 +tworangetssi5g=0 +vendid=0x14e4 +devid=0x43ae +manfid=0x2d0 +#prodid=0x052e +nocrc=1 +otpimagesize=502 +xtalfreq=37400 +extpagain2g=2 +pdetrange2g=2 +extpagain5g=2 +pdetrange5g=2 +rxgains2gelnagaina0=2 +rxgains2gtrisoa0=6 +rxgains2gtrelnabypa0=1 +rxgains5gelnagaina0=4 +rxgains5gtrisoa0=4 +rxgains5gtrelnabypa0=1 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 +tssipos5g=0 +tssipos2g=0 +pa2ga0=0xFF47,0x17B5,0xFD2B +pa2gccka0=0xFF5F,0x1B46,0xFCCC +pa5ga0=0xff54,0x16ec,0xfd45,0xff52,0x16a1,0xfd4d,0xff46,0x15b7,0xfd5a,0xff56,0x156d,0xfd79 +pa5gbw40a0=0xff59,0x17ca,0xfd30,0xff42,0x163d,0xfd4b,0xff31,0x152e,0xfd55,0xff60,0x16d8,0xfd54 +pa5gbw80a0=0xff56,0x1740,0xfd3f,0xff50,0x1738,0xfd3d,0xff4d,0x16b4,0xfd42,0xff58,0x1634,0xfd60 +# Default Target Power for 2G -- 17dBm(11)/14dBm(54)/13dBm(MCS7)/12dBm(MCS8)/12dBm(MCS9) +maxp2ga0=74 +maxp5ga0=74,74,74,74 +cckbw202gpo=0x0000 +cckbw20ul2gpo=0x0000 +mcsbw202gpo=0xaa888888 +mcsbw402gpo=0xaa888888 +dot11agofdmhrbw202gpo=0x6666 +ofdmlrbw202gpo=0x0066 +tssifloor2g=500 +# Default Target Power for 5G -- 14dBm(54)/13dBm(MCS7)/12dBm(MCS8)/12dBm(MCS9) +mcsbw205glpo=0xaa866666 +mcsbw405glpo=0xaa866666 +mcsbw805glpo=0xaa866666 +mcsbw205gmpo=0xaa866666 +mcsbw405gmpo=0xaa866666 +mcsbw805gmpo=0xaa866666 +mcsbw205ghpo=0xaa866666 +mcsbw405ghpo=0xaa866666 +mcsbw805ghpo=0xaa866666 +mcslr5glpo=0x0000 +mcslr5gmpo=0x0000 +mcslr5ghpo=0x0000 +sb20in40hrpo=0x0 +sb20in80and160hr5glpo=0x0 +sb40and80hr5glpo=0x0 +sb20in80and160hr5gmpo=0x0 +sb40and80hr5gmpo=0x0 +sb20in80and160hr5ghpo=0x0 +sb40and80hr5ghpo=0x0 +sb20in40lrpo=0x0 +sb20in80and160lr5glpo=0x0 +sb40and80lr5glpo=0x0 +sb20in80and160lr5gmpo=0x0 +sb40and80lr5gmpo=0x0 +sb20in80and160lr5ghpo=0x0 +sb40and80lr5ghpo=0x0 +dot11agduphrpo=0x0 +dot11agduplrpo=0x0 +phycal_tempdelta=25 +cckdigfilttype=2 +swctrlmap_5g=0x00080008,0x00500010,0x00100008,0x000000,0x078 +swctrlmap_2g=0x00010001,0x00220002,0x00020001,0x042202,0x1ff +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +# +#GPIO 0 for SDIO HW OOB interruption +#muxenab=0x10 +#sd_gpout=0 +#sd_oobonly=1 +# +rssicorrnorm_c0=-2,0 +rssicorrnorm5g_c0=3,5,2,3,4,2,2,3,1,2,3,1 +## ED threshold level to address the new ETSI requirement - 10/31/2013 +ed_thresh2g=-77 +ed_thresh5g=-77 +# +paparambwver=1 diff --git a/bsp/buildroot/board/technologic/ts4800/genimage.cfg b/bsp/buildroot/board/technologic/ts4800/genimage.cfg new file mode 100644 index 00000000..2070cc50 --- /dev/null +++ b/bsp/buildroot/board/technologic/ts4800/genimage.cfg @@ -0,0 +1,37 @@ +image boot.vfat { + vfat { + files = { + "zImage", + "imx51-ts4800.dtb" + } + } + size = 8M +} + +image sdcard.img { + hdimage { + } + + partition mbrboot { + in-partition-table = "no" + image = "mbrboot.bin" + offset = 0 + } + + partition uboot { + partition-type = 0xda + image = "u-boot.bin" + size = 256k + } + + partition kernel { + partition-type = 0xC + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + size = 256M + } +} diff --git a/bsp/buildroot/board/technologic/ts4800/linux.fragment b/bsp/buildroot/board/technologic/ts4800/linux.fragment new file mode 100644 index 00000000..0451c863 --- /dev/null +++ b/bsp/buildroot/board/technologic/ts4800/linux.fragment @@ -0,0 +1,3 @@ +CONFIG_TOUCHSCREEN_TS4800=y +CONFIG_TS4800_WATCHDOG=y +CONFIG_TS4800_IRQ=y diff --git a/bsp/buildroot/board/technologic/ts4800/post-image.sh b/bsp/buildroot/board/technologic/ts4800/post-image.sh new file mode 100755 index 00000000..167dea81 --- /dev/null +++ b/bsp/buildroot/board/technologic/ts4800/post-image.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Copyright (C) 2015 Savoir-faire Linux +# Post image generation script. + +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" +GENIMAGE_TMP=${BUILD_DIR}/.genimage_tmp + +rm -rf ${GENIMAGE_TMP} + +${HOST_DIR}/usr/bin/genimage \ + --config ${GENIMAGE_CFG} \ + --rootpath ${TARGET_DIR} \ + --tmppath ${GENIMAGE_TMP} \ + --inputpath $BINARIES_DIR \ + --outputpath $BINARIES_DIR + +exit $? diff --git a/bsp/buildroot/board/technologic/ts4800/readme.txt b/bsp/buildroot/board/technologic/ts4800/readme.txt new file mode 100644 index 00000000..20b50e9d --- /dev/null +++ b/bsp/buildroot/board/technologic/ts4800/readme.txt @@ -0,0 +1,50 @@ +Technologic Systems TS-4800 +=========================== + +This document explains how to set up a basic Buildroot system for the +Technologic Systems TS-4800 System on Module. + +The TS-4800 is a TS-SOCKET macrocontroller board based on the Freescale +i.MX515 ARM Cortex-A8 CPU running at 800MHz. The TS-4800 features 10/100 +Ethernet, high speed USB host and device (OTG), microSD card, and 256MB +XNAND drive. More details on the board here: + http://wiki.embeddedarm.com/wiki/TS-4800 + +The TS-4800 is supported by mainline Linux as of 4.5 and by U-boot as of +v2016-07. The defconfig includes a custom 1st level bootloader located +in boot/ts4800-mbrboot. This one scans the SD card's partition table to +find partition having the 0xDA type, corresponding to U-boot. + +To build the default configuration you only have to: + + $ make ts4800_defconfig + $ make + +The ouput looks like: + output/images/ + ├── boot.vfat + ├── imx51-ts4800.dtb + ├── mbrboot.bin + ├── rootfs.ext2 + ├── rootfs.ext4 -> rootfs.ext2 + ├── rootfs.tar + ├── sdcard.img + ├── u-boot.bin + └── zImage + +The provided post-image script generates an image file containing 3 +partitions for U-boot, Linux kernel + device tree and rootfs +respectively: + $ fdisk output/images/sdcard.img + Device Boot Start End Blocks Id System + output/images/sdcard.img1 1 512 256 da Non-FS data + output/images/sdcard.img2 513 16896 8192 c W95 FAT32 (LBA) + output/images/sdcard.img3 16897 541184 262144 83 Linux + +This image can be directly written to an SD card. + + $ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 + +In order to test the image on TS-4800 board, a TS baseboard, such as +TS-8xxx the serie, is needed to provide power, console header, RJ45 +connector etc. diff --git a/bsp/buildroot/board/ts/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg b/bsp/buildroot/board/technologic/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg similarity index 100% rename from bsp/buildroot/board/ts/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg rename to bsp/buildroot/board/technologic/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg diff --git a/bsp/buildroot/board/ts/ts5x00/linux-3.17.config b/bsp/buildroot/board/technologic/ts5x00/linux-3.17.config similarity index 100% rename from bsp/buildroot/board/ts/ts5x00/linux-3.17.config rename to bsp/buildroot/board/technologic/ts5x00/linux-3.17.config diff --git a/bsp/buildroot/board/ts/ts5x00/readme.txt b/bsp/buildroot/board/technologic/ts5x00/readme.txt similarity index 100% rename from bsp/buildroot/board/ts/ts5x00/readme.txt rename to bsp/buildroot/board/technologic/ts5x00/readme.txt diff --git a/bsp/buildroot/board/toradex/apalis-imx6/genimage.cfg b/bsp/buildroot/board/toradex/apalis-imx6/genimage.cfg new file mode 100644 index 00000000..fe359bd9 --- /dev/null +++ b/bsp/buildroot/board/toradex/apalis-imx6/genimage.cfg @@ -0,0 +1,15 @@ +# Minimal SD card image for the Toradex Apalis i.MX6 COM +# +# It does not need a boot section for a bootloader since it is booted +# from its internal flash memory (eMMC). + +image sdcard.img { + hdimage { + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext2" + size = 512M + } +} diff --git a/bsp/buildroot/board/toradex/apalis-imx6/post-image.sh b/bsp/buildroot/board/toradex/apalis-imx6/post-image.sh new file mode 100755 index 00000000..2b49f9d3 --- /dev/null +++ b/bsp/buildroot/board/toradex/apalis-imx6/post-image.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +GENIMAGE_CFG="$(dirname $0)/genimage.cfg" +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" + +# copy the uEnv.txt to the output/images directory +cp board/toradex/apalis-imx6/uEnv.txt $BINARIES_DIR/uEnv.txt + +rm -rf "${GENIMAGE_TMP}" + +# generate rootfs.img +genimage \ + --rootpath "${TARGET_DIR}" \ + --tmppath "${GENIMAGE_TMP}" \ + --inputpath "${BINARIES_DIR}" \ + --outputpath "${BINARIES_DIR}" \ + --config "${GENIMAGE_CFG}" + +RET=${?} +exit ${RET} diff --git a/bsp/buildroot/board/toradex/apalis-imx6/readme.txt b/bsp/buildroot/board/toradex/apalis-imx6/readme.txt new file mode 100644 index 00000000..feddad64 --- /dev/null +++ b/bsp/buildroot/board/toradex/apalis-imx6/readme.txt @@ -0,0 +1,53 @@ +Toradex Apalis i.MX6 Computer on Module + +Intro +===== + +The Apalis iMX6 is a small form-factor Computer on Module that comes +in both quad core and dual core versions based on Freescale i.MX6Q and +Freescale i.MX6D SoCs respectively. The Cortex A9 quad core and dual +core CPU peaks at 1 GHz for commercial temperature variant, while the +industrial temperature variant has a peak frequency of 800 MHz. + +https://www.toradex.com/computer-on-modules/apalis-arm-family/freescale-imx-6 + +It supports two carrier boards: + +Apalis Evaluation Board +https://www.toradex.com/products/carrier-boards/apalis-evaluation-board + +Ixora Carrier Board +https://www.toradex.com/products/carrier-boards/ixora-carrier-board + +How to build it +=============== + +Configure Buildroot: + + $ make toradex_apalis_imx6_defconfig + +Compile everything and build the rootfs image: + + $ make + +How to boot the image +===================== + +The board only boots from its internal flash memory eMMC, so the +bootloader image should be copied to it, following the procedures +described in Toradex website. + +http://developer.toradex.com/knowledge-base/flashing-linux-on-imx6-modules + +Buildroot prepares a "sdcard.img" in output/images/ with the kernel +image, device tree and a root filesystem, ready to be dumped on an SD +card. + + $ dd if=output/images/sdcard.img of=/dev/sdX bs=1M + +To boot from the SD card, you should change the U-Boot +environment. Since U-Boot is running from internal eMMC, you will need +to access its command line prompt and manually set the necessary +variables to boot from the external SD card. For convenience, you can +use uEnv.txt provided in output/images/ as a reference to create the +necessary U-Boot variables to boot from the SD card. diff --git a/bsp/buildroot/board/toradex/apalis-imx6/uEnv.txt b/bsp/buildroot/board/toradex/apalis-imx6/uEnv.txt new file mode 100644 index 00000000..96ab80cf --- /dev/null +++ b/bsp/buildroot/board/toradex/apalis-imx6/uEnv.txt @@ -0,0 +1,6 @@ +boot_file=zImage +fdt_file=imx6q-apalis_v1_0-ixora.dtb +sdargs=ip=off root=/dev/mmcblk1p1 rw,noatime rootfstype=ext4 rootwait +sddtbload=ext2load mmc 2:1 ${fdt_addr_r} boot/${fdt_file} +sdkernelload=ext2load mmc 2:1 ${kernel_addr_r} boot/${boot_file} +bootcmd=run setup; setenv bootargs ${defargs} ${sdargs} ${setupargs} ${vidargs}; echo Booting from SD card...; run sddtbload; run sdkernelload; bootz ${kernel_addr_r} - ${fdt_addr_r} diff --git a/bsp/buildroot/board/via/imx6_vab820/post-image.sh b/bsp/buildroot/board/via/imx6_vab820/post-image.sh index 8d502a55..00de33b0 100755 --- a/bsp/buildroot/board/via/imx6_vab820/post-image.sh +++ b/bsp/buildroot/board/via/imx6_vab820/post-image.sh @@ -1,6 +1,7 @@ #!/bin/bash -GENIMAGE_CFG="board/via/imx6_vab820/genimage.cfg" +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" rm -rf "${GENIMAGE_TMP}" diff --git a/bsp/buildroot/board/wandboard/post-image.sh b/bsp/buildroot/board/wandboard/post-image.sh index 95cbfa48..11f58dbd 100755 --- a/bsp/buildroot/board/wandboard/post-image.sh +++ b/bsp/buildroot/board/wandboard/post-image.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -GENIMAGE_CFG="board/wandboard/genimage.cfg" +BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" rm -rf "${GENIMAGE_TMP}" diff --git a/bsp/buildroot/board/xilinx/zc706/readme.txt b/bsp/buildroot/board/xilinx/zc706/readme.txt deleted file mode 100644 index 273752fe..00000000 --- a/bsp/buildroot/board/xilinx/zc706/readme.txt +++ /dev/null @@ -1,56 +0,0 @@ -This is the Buildroot board support for the Xilinx ZC706. The ZC706 is -a development board based on the Xilinx Zynq-7000 based -All-Programmable System-On-Chip. - -ZC706 information including schematics, reference designs, and manuals -are available from -http://www.xilinx.com/products/boards-and-kits/ek-z7-zc706-g.html. - -uboot.bin -- U-Boot SPL w/ Xilinx boot.bin wrapper ---------------------------------------------------- - -Due to licensing issues, the files ps7_init.c/h are not distributed -with the U-Boot source code. These files are required to make a -boot.bin file. - -If you already have the Xilinx tools installed, the following sequence -will unpack, patch and build the rfs, kernel, uboot, and uboot-spl. - -make xilinx_zc706_defconfig -make uboot-patch -cp ${XILINX_SDK_LIB}/hwplatform_templates/ZC706_hw_platform/ps7_init.{c,h} \ - output/build/uboot-xilinx-v2014.1/board/xilinx/zynq/ - -Where ${XILINX_SDK_LIB} is ${XILINX}/SDK/${VERSION}/data/embeddedsw/lib. - -After copying these files into the U-Boot source tree, you can -continue the build with: - -make - -*Notice* -While the build will successfully complete without the ps7_init.* -files, the uboot.bin file generated by this configuration will not -function properly on the ZC706. Therefore, it is imperative that the -ps7_init.* files be copied into the U-Boot source tree any time the -clean, or uboot-dirclean targets are executed. - -Resulting system ----------------- - -A FAT32 partition should be created at the beggining of the SD Card -and the following files should be installed: - -- boot.bin -- devicetree.dtb -- uImage -- uramdisk.image.gz -- u-boot.img - -All needed files can be taken from /images/ - -cp /images/boot.bin /media/sdcard/ -cp /images/uImage /media/sdcard/ -cp /images/u-boot.img /media/sdcard/ -cp /images/zynq-zc706.dtb /media/sdcard/devicetree.dtb -cp /images/rootfs.cpio.uboot /media/sdcard/uramdisk.image.gz diff --git a/bsp/buildroot/board/zynq/readme.txt b/bsp/buildroot/board/zynq/readme.txt new file mode 100644 index 00000000..51e28b6b --- /dev/null +++ b/bsp/buildroot/board/zynq/readme.txt @@ -0,0 +1,52 @@ +This is the Buildroot support for Zynq boards. Zynq boards are available from +Xilinx and some third party vendors, but the build procedure is very similar. + +Currently, three boards are natively supported by Buildroot: + - Xilinx ZC706 board (zynq_zc706_defconfig) + - Avnet ZedBoard (zynq_zed_defconfig) + - Avnet MicroZed (zynq_microzed_defconfig) + +The following build procedure focuses on them, but you can adjust it to your +board even if it is not listed above. Major Zynq-based boards are supported by +U-Boot, and their Device Trees are merged in Linux Kernel. If your board is the +case, booting the kernel is a piece of cake. All you need to do is to change: + - Kernel Device Tree file name (BR2_LINUX_KERNEL_INTREE_DTS_NAME) + - U-Boot board defconfig (BR2_TARGET_UBOOT_BOARD_KCONFIG) + +Steps to create a working system for a Zynq board: + +1) Configuration (do one of the following) + make zynq_zc706_defconfig (ZC706) + make zynq_zed_defconfig (Zedboard) + make zynq_microzed_defconfig (MicroZed) +2) make +3) All needed files will be available in the output/images directory. + Create a FAT32 partition at the beginning of your SD Card and copy files: + - boot.bin + - u-boot.img + - uImage + - uramdisk.image.gz (should be renamed from rootfs.cpio.uboot) + - devicetree.dtb (should be renamed from zynq-***.dtb) + into your SD card +4) boot your board + +You can alter the booting procedure by creating a file uEnv.txt +in the root of the SD card. It is a plain text file in format += one per line: + +kernel_image=myimage +modeboot=myboot +myboot=... + +Note: +The DTB for MicroZed is the same as the one for the Zedboard (zynq-zed.dtb), +and this is the recommended solution, see +https://forums.xilinx.com/t5/Embedded-Linux/Microzed-default-device-tree-dts/td-p/432856. + +References: + - ZC706 information including schematics, reference designs, and manuals are + available from + http://www.xilinx.com/products/boards-and-kits/ek-z7-zc706-g.html. + + - Zedboard/Microzed information including schematics, reference designs, and + manuals are available from http://www.zedboard.org . diff --git a/bsp/buildroot/boot/Config.in b/bsp/buildroot/boot/Config.in index 54760b9d..677e5f08 100644 --- a/bsp/buildroot/boot/Config.in +++ b/bsp/buildroot/boot/Config.in @@ -1,5 +1,6 @@ menu "Bootloaders" +source "boot/afboot-stm32/Config.in" source "boot/at91bootstrap/Config.in" source "boot/at91bootstrap3/Config.in" source "boot/at91dataflashboot/Config.in" @@ -10,7 +11,9 @@ source "boot/grub2/Config.in" source "boot/gummiboot/Config.in" source "boot/lpc32xxcdl/Config.in" source "boot/mxs-bootlets/Config.in" +source "boot/s500-bootloader/Config.in" source "boot/syslinux/Config.in" +source "boot/ts4800-mbrboot/Config.in" source "boot/uboot/Config.in" source "boot/xloader/Config.in" diff --git a/bsp/buildroot/boot/afboot-stm32/0001-Use-ld-instead-of-gcc-for-linking.patch b/bsp/buildroot/boot/afboot-stm32/0001-Use-ld-instead-of-gcc-for-linking.patch new file mode 100644 index 00000000..3f359dc3 --- /dev/null +++ b/bsp/buildroot/boot/afboot-stm32/0001-Use-ld-instead-of-gcc-for-linking.patch @@ -0,0 +1,61 @@ +From 0d581abe6620ac69adec321b94390e009802f36a Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 13 Mar 2016 14:32:33 +0100 +Subject: [PATCH] Use ld instead of gcc for linking + +Signed-off-by: Thomas Petazzoni +--- + Makefile | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index ce40314..271bb4f 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,7 @@ + CROSS_COMPILE ?= arm-none-eabi- + + CC = $(CROSS_COMPILE)gcc ++LD = $(CROSS_COMPILE)ld + OBJCOPY = $(CROSS_COMPILE)objcopy + OBJDUMP = $(CROSS_COMPILE)objdump + SIZE = $(CROSS_COMPILE)size +@@ -10,7 +11,7 @@ OPENOCD = openocd + CFLAGS := -mthumb -mcpu=cortex-m4 + CFLAGS += -ffunction-sections -fdata-sections + CFLAGS += -Os -std=gnu99 -Wall +-LDFLAGS := -nostartfiles -Wl,--gc-sections ++LINKERFLAGS := -nostartfiles --gc-sections + + obj-y += gpio.o mpu.o + obj-f4 += $(obj-y) usart-f4.o +@@ -22,22 +23,22 @@ all: stm32f429i-disco stm32429i-eval stm32f469i-disco stm32746g-eval + $(CC) -c $(CFLAGS) $< -o $@ + + stm32f429i-disco: stm32f429i-disco.o $(obj-f4) +- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32f429i-disco.elf stm32f429i-disco.o $(obj-f4) ++ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32f429i-disco.elf stm32f429i-disco.o $(obj-f4) + $(OBJCOPY) -Obinary stm32f429i-disco.elf stm32f429i-disco.bin + $(SIZE) stm32f429i-disco.elf + + stm32429i-eval: stm32429i-eval.o $(obj-f4) +- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32429i-eval.elf stm32429i-eval.o $(obj-f4) ++ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32429i-eval.elf stm32429i-eval.o $(obj-f4) + $(OBJCOPY) -Obinary stm32429i-eval.elf stm32429i-eval.bin + $(SIZE) stm32429i-eval.elf + + stm32f469i-disco: stm32f469i-disco.o $(obj-f4) +- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32f469i-disco.elf stm32f469i-disco.o $(obj-f4) ++ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32f469i-disco.elf stm32f469i-disco.o $(obj-f4) + $(OBJCOPY) -Obinary stm32f469i-disco.elf stm32f469i-disco.bin + $(SIZE) stm32f469i-disco.elf + + stm32746g-eval: stm32746g-eval.o $(obj-f7) +- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32746g-eval.elf stm32746g-eval.o $(obj-f7) ++ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32746g-eval.elf stm32746g-eval.o $(obj-f7) + $(OBJCOPY) -Obinary stm32746g-eval.elf stm32746g-eval.bin + $(SIZE) stm32746g-eval.elf + +-- +2.6.4 + diff --git a/bsp/buildroot/boot/afboot-stm32/Config.in b/bsp/buildroot/boot/afboot-stm32/Config.in new file mode 100644 index 00000000..309b9e04 --- /dev/null +++ b/bsp/buildroot/boot/afboot-stm32/Config.in @@ -0,0 +1,7 @@ +config BR2_TARGET_AFBOOT_STM32 + bool "afboot-stm32" + depends on BR2_arm + help + afboot-stm32 is a very small bootloader for STM32 platforms + + https://github.com/mcoquelin-stm32/afboot-stm32 diff --git a/bsp/buildroot/boot/afboot-stm32/afboot-stm32.hash b/bsp/buildroot/boot/afboot-stm32/afboot-stm32.hash new file mode 100644 index 00000000..d23b74ad --- /dev/null +++ b/bsp/buildroot/boot/afboot-stm32/afboot-stm32.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 dbd715c8b99f7d266f74a04707a4dac76b75b31321f24dee5256a6348260530c afboot-stm32-v0.1.tar.gz diff --git a/bsp/buildroot/boot/afboot-stm32/afboot-stm32.mk b/bsp/buildroot/boot/afboot-stm32/afboot-stm32.mk new file mode 100644 index 00000000..042b21fa --- /dev/null +++ b/bsp/buildroot/boot/afboot-stm32/afboot-stm32.mk @@ -0,0 +1,18 @@ +################################################################################ +# +# afboot-stm32 +# +################################################################################ + +AFBOOT_STM32_VERSION = v0.1 +AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,$(AFBOOT_STM32_VERSION)) + +define AFBOOT_STM32_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) all +endef + +define AFBOOT_STM32_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 $(@D)/stm32*.bin $(BINARIES_DIR) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/boot/at91bootstrap/at91bootstrap.hash b/bsp/buildroot/boot/at91bootstrap/at91bootstrap.hash new file mode 100644 index 00000000..b1f963b8 --- /dev/null +++ b/bsp/buildroot/boot/at91bootstrap/at91bootstrap.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 d66192a274247f4baa39fa932eadf903d7add55641d89d30402f967c4f2282a5 AT91Bootstrap1.16.zip diff --git a/bsp/buildroot/boot/at91dataflashboot/at91dataflashboot.hash b/bsp/buildroot/boot/at91dataflashboot/at91dataflashboot.hash new file mode 100644 index 00000000..57df4e53 --- /dev/null +++ b/bsp/buildroot/boot/at91dataflashboot/at91dataflashboot.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 2cfeb6a9236e1a743c8010f05e504dbc92169ef42d9a6cf7948954a577bfc386 DataflashBoot-1.05.tar.bz2 diff --git a/bsp/buildroot/boot/barebox/Config.in b/bsp/buildroot/boot/barebox/Config.in index 39cb5d2c..fd5cb8cc 100644 --- a/bsp/buildroot/boot/barebox/Config.in +++ b/bsp/buildroot/boot/barebox/Config.in @@ -12,7 +12,7 @@ choice Select the specific Barebox version you want to use config BR2_TARGET_BAREBOX_LATEST_VERSION - bool "2016.01.0" + bool "2016.06.0" config BR2_TARGET_BAREBOX_CUSTOM_VERSION bool "Custom version" @@ -40,7 +40,7 @@ endif config BR2_TARGET_BAREBOX_VERSION string - default "2016.01.0" if BR2_TARGET_BAREBOX_LATEST_VERSION + default "2016.06.0" if BR2_TARGET_BAREBOX_LATEST_VERSION default BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION default "custom" if BR2_TARGET_BAREBOX_CUSTOM_TARBALL default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT @@ -64,61 +64,22 @@ config BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION endif +source boot/barebox/barebox/Config.in -choice - prompt "Barebox configuration" - default BR2_TARGET_BAREBOX_USE_DEFCONFIG - -config BR2_TARGET_BAREBOX_USE_DEFCONFIG - bool "Using a defconfig" - -config BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG - bool "Using a custom config file" - -endchoice - -config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG - string "board defconfig" - depends on BR2_TARGET_BAREBOX_USE_DEFCONFIG +menuconfig BR2_TARGET_BAREBOX_AUX + bool "Build barebox with an auxiliary config" help - Name of the board for which Barebox should be built, without - the _defconfig suffix. + Build barebox with an auxiliary configuration. + Useful for building an SPL (Secondary Program Loader) in + addition to the traditional TPL (Tertiary Program Loader), + such as the X-Loader or MLO for Texas Instruments + processors. -config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE - string "Configuration file path" - depends on BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG - help - Path to the barebox configuration file +if BR2_TARGET_BAREBOX_AUX -config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES - string "Additional configuration fragment files" - help - A space-separated list of configuration fragment files, - that will be merged to the main Barebox configuration file. - -config BR2_TARGET_BAREBOX_BAREBOXENV - bool "bareboxenv tool in target" - help - Install bareboxenv tool in target. - -config BR2_TARGET_BAREBOX_CUSTOM_ENV - bool "Generate an environment image" - help - Generate a custom environment image. This environment will - contain the variables and scripts to be used at boot by - barebox. - -config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH - string "Environment path" - depends on BR2_TARGET_BAREBOX_CUSTOM_ENV - help - Path to the directory containing the custom barebox - environment. Depending on your setup, it will probably be - based on either the content of the defaultenv or - defaultenv-2 directories in the barebox source code, plus - the additions needed. The output will be an image in the - barebox devfs format, stored in the images directory, with - the same name as the directory name given here. +source boot/barebox/barebox-aux/Config.in + +endif endif diff --git a/bsp/buildroot/boot/barebox/barebox-aux/Config.in b/bsp/buildroot/boot/barebox/barebox-aux/Config.in new file mode 100644 index 00000000..315e1a3f --- /dev/null +++ b/bsp/buildroot/boot/barebox/barebox-aux/Config.in @@ -0,0 +1,76 @@ +choice + prompt "Barebox configuration" + default BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG + +config BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG + bool "Using a custom config file" + +endchoice + +config BR2_TARGET_BAREBOX_AUX_BOARD_DEFCONFIG + string "board defconfig" + depends on BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG + help + Name of the board for which Barebox should be built, without + the _defconfig suffix. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG + help + Path to the barebox configuration file + +config BR2_TARGET_BAREBOX_AUX_CONFIG_FRAGMENT_FILES + string "Additional configuration fragment files" + help + A space-separated list of configuration fragment files, + that will be merged to the main Barebox configuration file. + +config BR2_TARGET_BAREBOX_AUX_IMAGE_FILE + string "Image filename" + help + Name of the generated barebox image, which will be copied to + the images directory. + + If left empty, defaults to: + - barebox.bin for barebox versions older than 2012.10. + - barebox-flash-image for later versions. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_ENV + bool "Generate an environment image" + help + Generate a custom environment image. This environment will + contain the variables and scripts to be used at boot by + barebox. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_ENV_PATH + string "Environment path" + depends on BR2_TARGET_BAREBOX_AUX_CUSTOM_ENV + help + Path to the directory containing the custom barebox + environment. Depending on your setup, it will probably be + based on either the content of the defaultenv or + defaultenv-2 directories in the barebox source code, plus + the additions needed. The output will be an image in the + barebox devfs format, stored in the images directory, with + the same name as the directory name given here. + +config BR2_TARGET_BAREBOX_AUX_CUSTOM_EMBEDDED_ENV_PATH + string "Embedded environment path" + help + If this option is not empty, it is the path to a custom + embedded barebox environment. This image will be used when + the environment found in the environment sector is + invalid. This option sets the barebox Kconfig option + CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This + way it is possible to use Buildroot variables like + BR2_EXTERNAL, TOPDIR etc. to refer to the custom + environment. + + Depending on your setup, the custom embedded environment + will probably be based on either the content of the + defaultenv or defaultenv-2 directories in the barebox source + code. diff --git a/bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.hash b/bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.hash new file mode 120000 index 00000000..b6462b80 --- /dev/null +++ b/bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.hash @@ -0,0 +1 @@ +../barebox.hash \ No newline at end of file diff --git a/bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.mk b/bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.mk new file mode 100644 index 00000000..fb287d36 --- /dev/null +++ b/bsp/buildroot/boot/barebox/barebox-aux/barebox-aux.mk @@ -0,0 +1,8 @@ +################################################################################ +# +# barebox-aux +# +################################################################################ + +# Instantiate the auxiliary barebox package +$(eval $(barebox-package)) diff --git a/bsp/buildroot/boot/barebox/barebox.hash b/bsp/buildroot/boot/barebox/barebox.hash index b6e18690..9db68eb2 100644 --- a/bsp/buildroot/boot/barebox/barebox.hash +++ b/bsp/buildroot/boot/barebox/barebox.hash @@ -1,5 +1,5 @@ -# http://www.barebox.org/download/barebox-2015.12.0.tar.bz2.md5 -md5 99f8c1252e3085e4b3a4e365ff36e9bd barebox-2016.01.0.tar.bz2 +# http://www.barebox.org/download/barebox-2016.06.0.tar.bz2.md5 +md5 7dac834e637db66e624bf058e9310212 barebox-2016.06.0.tar.bz2 # Locally calculated -sha256 f0bb34b745b9c8c626186e22b0154f57c15d0eec5de1e3654f740665b2136d91 barebox-2016.01.0.tar.bz2 +sha256 a214167c55bf691f686397379e8b9557a1d597e56b7c1bf9607b478a1c4c597e barebox-2016.06.0.tar.bz2 diff --git a/bsp/buildroot/boot/barebox/barebox.mk b/bsp/buildroot/boot/barebox/barebox.mk index 7715dafe..7a110d21 100644 --- a/bsp/buildroot/boot/barebox/barebox.mk +++ b/bsp/buildroot/boot/barebox/barebox.mk @@ -4,117 +4,154 @@ # ################################################################################ -BAREBOX_VERSION = $(call qstrip,$(BR2_TARGET_BAREBOX_VERSION)) +################################################################################ +# inner-barebox-package -- generates the KConfig logic and make targets needed +# to support a barebox package. All barebox packages are built from the same +# source (origin, version and patches). The remainder of the package +# configuration is unique to each barebox package. +# +# argument 1 is the uppercase package name (used for variable name-space) +################################################################################ -ifeq ($(BAREBOX_VERSION),custom) +define inner-barebox-package + +$(1)_VERSION = $$(call qstrip,$$(BR2_TARGET_BAREBOX_VERSION)) + +ifeq ($$($(1)_VERSION),custom) # Handle custom Barebox tarballs as specified by the configuration -BAREBOX_TARBALL = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION)) -BAREBOX_SITE = $(patsubst %/,%,$(dir $(BAREBOX_TARBALL))) -BAREBOX_SOURCE = $(notdir $(BAREBOX_TARBALL)) -BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE) -else ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_GIT),y) -BAREBOX_SITE = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL)) -BAREBOX_SITE_METHOD = git +$(1)_TARBALL = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION)) +$(1)_SITE = $$(patsubst %/,%,$$(dir $$($(1)_TARBALL))) +$(1)_SOURCE = $$(notdir $$($(1)_TARBALL)) +BR_NO_CHECK_HASH_FOR += $$($(1)_SOURCE) +else ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_GIT),y) +$(1)_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL)) +$(1)_SITE_METHOD = git else # Handle stable official Barebox versions -BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2 -BAREBOX_SITE = http://www.barebox.org/download -ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_VERSION),y) -BR_NO_CHECK_HASH_FOR += $(BAREBOX_SOURCE) +$(1)_SOURCE = barebox-$$($(1)_VERSION).tar.bz2 +$(1)_SITE = http://www.barebox.org/download +ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_VERSION),y) +BR_NO_CHECK_HASH_FOR += $$($(1)_SOURCE) endif endif -BAREBOX_DEPENDENCIES = host-lzop -BAREBOX_LICENSE = GPLv2 with exceptions -BAREBOX_LICENSE_FILES = COPYING +$(1)_DEPENDENCIES = host-lzop +$(1)_LICENSE = GPLv2 with exceptions +$(1)_LICENSE_FILES = COPYING -ifneq ($(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),) -define BAREBOX_APPLY_CUSTOM_PATCHES - $(APPLY_PATCHES) $(@D) \ - $(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \*.patch +$(1)_CUSTOM_EMBEDDED_ENV_PATH = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_EMBEDDED_ENV_PATH)) + +ifneq ($$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR)),) +define $(1)_APPLY_CUSTOM_PATCHES + $$(APPLY_PATCHES) $$(@D) \ + $$(BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR) \*.patch endef -BAREBOX_POST_PATCH_HOOKS += BAREBOX_APPLY_CUSTOM_PATCHES +$(1)_POST_PATCH_HOOKS += $(1)_APPLY_CUSTOM_PATCHES endif -BAREBOX_INSTALL_IMAGES = YES -ifneq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y) -BAREBOX_INSTALL_TARGET = NO +$(1)_INSTALL_IMAGES = YES +ifneq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) +$(1)_INSTALL_TARGET = NO endif -ifeq ($(KERNEL_ARCH),i386) -BAREBOX_ARCH = x86 -else ifeq ($(KERNEL_ARCH),x86_64) -BAREBOX_ARCH = x86 -else ifeq ($(KERNEL_ARCH),powerpc) -BAREBOX_ARCH = ppc +ifeq ($$(KERNEL_ARCH),i386) +$(1)_ARCH = x86 +else ifeq ($$(KERNEL_ARCH),x86_64) +$(1)_ARCH = x86 +else ifeq ($$(KERNEL_ARCH),powerpc) +$(1)_ARCH = ppc +else ifeq ($$(KERNEL_ARCH),arm64) +$(1)_ARCH = arm else -BAREBOX_ARCH = $(KERNEL_ARCH) +$(1)_ARCH = $$(KERNEL_ARCH) endif -BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" -BAREBOX_MAKE_ENV = $(TARGET_MAKE_ENV) +$(1)_MAKE_FLAGS = ARCH=$$($(1)_ARCH) CROSS_COMPILE="$$(TARGET_CROSS)" +$(1)_MAKE_ENV = $$(TARGET_MAKE_ENV) -ifeq ($(BR2_TARGET_BAREBOX_USE_DEFCONFIG),y) -BAREBOX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))_defconfig -else ifeq ($(BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG),y) -BAREBOX_KCONFIG_FILE = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE)) +ifeq ($$(BR2_TARGET_$(1)_USE_DEFCONFIG),y) +$(1)_KCONFIG_DEFCONFIG = $$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))_defconfig +else ifeq ($$(BR2_TARGET_$(1)_USE_CUSTOM_CONFIG),y) +$(1)_KCONFIG_FILE = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE)) endif -BAREBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES)) -BAREBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig -BAREBOX_KCONFIG_OPTS = $(BAREBOX_MAKE_FLAGS) +$(1)_KCONFIG_FRAGMENT_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_CONFIG_FRAGMENT_FILES)) +$(1)_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig +$(1)_KCONFIG_OPTS = $$($(1)_MAKE_FLAGS) -ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y) -define BAREBOX_BUILD_BAREBOXENV_CMDS - $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/bareboxenv \ - $(@D)/scripts/bareboxenv.c +ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) +define $(1)_BUILD_BAREBOXENV_CMDS + $$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ + $$(@D)/scripts/bareboxenv.c endef endif -ifeq ($(BR2_TARGET_BAREBOX_CUSTOM_ENV),y) -BAREBOX_ENV_NAME = $(notdir $(call qstrip,\ - $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH))) -define BAREBOX_BUILD_CUSTOM_ENV - $(@D)/scripts/bareboxenv -s \ - $(call qstrip, $(BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH)) \ - $(@D)/$(BAREBOX_ENV_NAME) +ifeq ($$(BR2_TARGET_$(1)_CUSTOM_ENV),y) +$(1)_ENV_NAME = $$(notdir $$(call qstrip,\ + $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH))) +define $(1)_BUILD_CUSTOM_ENV + $$(@D)/scripts/bareboxenv -s \ + $$(call qstrip, $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH)) \ + $$(@D)/$$($(1)_ENV_NAME) endef -define BAREBOX_INSTALL_CUSTOM_ENV - cp $(@D)/$(BAREBOX_ENV_NAME) $(BINARIES_DIR) +define $(1)_INSTALL_CUSTOM_ENV + cp $$(@D)/$$($(1)_ENV_NAME) $$(BINARIES_DIR) endef endif -define BAREBOX_BUILD_CMDS - $(BAREBOX_BUILD_BAREBOXENV_CMDS) - $(TARGET_MAKE_ENV) $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) - $(BAREBOX_BUILD_CUSTOM_ENV) +ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) +define $(1)_KCONFIG_FIXUP_CMDS + $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT,$$(@D)/.config) + $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)",$$(@D)/.config) +endef +endif + +define $(1)_BUILD_CMDS + $$($(1)_BUILD_BAREBOXENV_CMDS) + $$(TARGET_MAKE_ENV) $$(MAKE) $$($(1)_MAKE_FLAGS) -C $$(@D) + $$($(1)_BUILD_CUSTOM_ENV) endef -define BAREBOX_INSTALL_IMAGES_CMDS - if test -h $(@D)/barebox-flash-image ; then \ - cp -L $(@D)/barebox-flash-image $(BINARIES_DIR)/barebox.bin ; \ +$(1)_IMAGE_FILE = $$(call qstrip,$$(BR2_TARGET_$(1)_IMAGE_FILE)) + +define $(1)_INSTALL_IMAGES_CMDS + if test -n "$$($(1)_IMAGE_FILE)"; then \ + cp -L $$(@D)/$$($(1)_IMAGE_FILE) $$(BINARIES_DIR) ; \ + elif test -h $$(@D)/barebox-flash-image ; then \ + cp -L $$(@D)/barebox-flash-image $$(BINARIES_DIR)/barebox.bin ; \ else \ - cp $(@D)/barebox.bin $(BINARIES_DIR);\ + cp $$(@D)/barebox.bin $$(BINARIES_DIR);\ fi - $(BAREBOX_INSTALL_CUSTOM_ENV) + $$($(1)_INSTALL_CUSTOM_ENV) endef -ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y) -define BAREBOX_INSTALL_TARGET_CMDS - cp $(@D)/bareboxenv $(TARGET_DIR)/usr/bin +ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) +define $(1)_INSTALL_TARGET_CMDS + cp $$(@D)/bareboxenv $$(TARGET_DIR)/usr/bin endef endif # Checks to give errors that the user can understand # Must be before we call to kconfig-package -ifeq ($(BR2_TARGET_BAREBOX)$(BR_BUILDING),yy) +ifeq ($$(BR2_TARGET_$(1))$$(BR_BUILDING),yy) # We must use the user-supplied kconfig value, because -# BAREBOX_KCONFIG_DEFCONFIG will at least contain the +# $(1)_KCONFIG_DEFCONFIG will at least contain the # trailing _defconfig -ifeq ($(or $(BAREBOX_KCONFIG_FILE),$(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))),) -$(error No Barebox config. Check your BR2_TARGET_BAREBOX_BOARD_DEFCONFIG or BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE settings) +ifeq ($$(or $$($(1)_KCONFIG_FILE),$$(call qstrip,$$(BR2_TARGET_$(1)_BOARD_DEFCONFIG))),) +$$(error No Barebox config. Check your BR2_TARGET_$(1)_BOARD_DEFCONFIG or BR2_TARGET_$(1)_CUSTOM_CONFIG_FILE settings) endif endif -$(eval $(kconfig-package)) +$$(eval $$(kconfig-package)) + +endef + +################################################################################ +# barebox-package -- the target generator macro for barebox packages +################################################################################ + +barebox-package=$(call inner-barebox-package,$(call UPPERCASE,$(pkgname))) + +include boot/barebox/barebox/barebox.mk +include boot/barebox/barebox-aux/barebox-aux.mk diff --git a/bsp/buildroot/boot/barebox/barebox/Config.in b/bsp/buildroot/boot/barebox/barebox/Config.in new file mode 100644 index 00000000..f5e3bae8 --- /dev/null +++ b/bsp/buildroot/boot/barebox/barebox/Config.in @@ -0,0 +1,82 @@ +choice + prompt "Barebox configuration" + default BR2_TARGET_BAREBOX_USE_DEFCONFIG + +config BR2_TARGET_BAREBOX_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG + bool "Using a custom config file" + +endchoice + +config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG + string "board defconfig" + depends on BR2_TARGET_BAREBOX_USE_DEFCONFIG + help + Name of the board for which Barebox should be built, without + the _defconfig suffix. + + +config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG + help + Path to the barebox configuration file + +config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES + string "Additional configuration fragment files" + help + A space-separated list of configuration fragment files, + that will be merged to the main Barebox configuration file. + +config BR2_TARGET_BAREBOX_IMAGE_FILE + string "Image filename" + help + Name of the generated barebox image, which will be copied to + the images directory. + + If left empty, defaults to: + - barebox.bin for barebox versions older than 2012.10. + - barebox-flash-image for later versions. + +config BR2_TARGET_BAREBOX_BAREBOXENV + bool "bareboxenv tool in target" + help + Install bareboxenv tool in target. + +config BR2_TARGET_BAREBOX_CUSTOM_ENV + bool "Generate an environment image" + help + Generate a custom environment image. This environment will + contain the variables and scripts to be used at boot by + barebox. + +config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH + string "Environment path" + depends on BR2_TARGET_BAREBOX_CUSTOM_ENV + help + Path to the directory containing the custom barebox + environment. Depending on your setup, it will probably be + based on either the content of the defaultenv or + defaultenv-2 directories in the barebox source code, plus + the additions needed. The output will be an image in the + barebox devfs format, stored in the images directory, with + the same name as the directory name given here. + +config BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH + string "Embedded environment path" + help + If this option is not empty, it is the path to a custom + embedded barebox environment. This image will be used when + the environment found in the environment sector is + invalid. This option sets the barebox Kconfig option + CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This + way it is possible to use Buildroot variables like + BR2_EXTERNAL, TOPDIR etc. to refer to the custom + environment. + + Depending on your setup, the custom embedded environment + will probably be based on either the content of the + defaultenv or defaultenv-2 directories in the barebox source + code. diff --git a/bsp/buildroot/boot/barebox/barebox/barebox.hash b/bsp/buildroot/boot/barebox/barebox/barebox.hash new file mode 120000 index 00000000..b6462b80 --- /dev/null +++ b/bsp/buildroot/boot/barebox/barebox/barebox.hash @@ -0,0 +1 @@ +../barebox.hash \ No newline at end of file diff --git a/bsp/buildroot/boot/barebox/barebox/barebox.mk b/bsp/buildroot/boot/barebox/barebox/barebox.mk new file mode 100644 index 00000000..39afb0fc --- /dev/null +++ b/bsp/buildroot/boot/barebox/barebox/barebox.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# barebox +# +################################################################################ + +define BAREBOX_HELP_CMDS + @echo ' barebox-menuconfig - Run barebox menuconfig' + @echo ' barebox-savedefconfig - Run barebox savedefconfig' +endef + +# Instantiate the barebox package +$(eval $(barebox-package)) diff --git a/bsp/buildroot/boot/grub/menu.lst b/bsp/buildroot/boot/grub/menu.lst index a231f7ea..9f14da7d 100644 --- a/bsp/buildroot/boot/grub/menu.lst +++ b/bsp/buildroot/boot/grub/menu.lst @@ -13,4 +13,4 @@ background cccccc title Buildroot root (hd0,0) - kernel /boot/bzImage rw root=/dev/sda1 + kernel /boot/bzImage rw root=/dev/sda1 rootwait diff --git a/bsp/buildroot/boot/grub2/grub2-remove-gets.patch b/bsp/buildroot/boot/grub2/0001-remove-gets.patch similarity index 100% rename from bsp/buildroot/boot/grub2/grub2-remove-gets.patch rename to bsp/buildroot/boot/grub2/0001-remove-gets.patch diff --git a/bsp/buildroot/boot/grub2/0002-grub-core-gettext-gettext.c-main_context-secondary_c.patch b/bsp/buildroot/boot/grub2/0002-grub-core-gettext-gettext.c-main_context-secondary_c.patch new file mode 100644 index 00000000..94be0927 --- /dev/null +++ b/bsp/buildroot/boot/grub2/0002-grub-core-gettext-gettext.c-main_context-secondary_c.patch @@ -0,0 +1,39 @@ +From f30c692c1f9ef0e93bee2b408a24baa017f1ca9d Mon Sep 17 00:00:00 2001 +From: Vladimir Serbinenko +Date: Thu, 7 Nov 2013 01:01:47 +0100 +Subject: [PATCH] * grub-core/gettext/gettext.c (main_context), + (secondary_context): Define after defining type and not before. + +[Thomas: backport from upstream commit +f30c692c1f9ef0e93bee2b408a24baa017f1ca9d, and remove ChangeLog +modifications to avoid conflicts.] +Signed-off-by: Thomas Petazzoni +--- + grub-core/gettext/gettext.c | 4 ++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c +index df73570..4880cef 100644 +--- a/grub-core/gettext/gettext.c ++++ b/grub-core/gettext/gettext.c +@@ -34,8 +34,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); + http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html . + */ + +-static struct grub_gettext_context main_context, secondary_context; +- + static const char *(*grub_gettext_original) (const char *s); + + struct grub_gettext_msg +@@ -69,6 +67,8 @@ struct grub_gettext_context + struct grub_gettext_msg *grub_gettext_msg_list; + }; + ++static struct grub_gettext_context main_context, secondary_context; ++ + #define MO_MAGIC_NUMBER 0x950412de + + static grub_err_t +-- +2.7.4 + diff --git a/bsp/buildroot/boot/grub2/Config.in b/bsp/buildroot/boot/grub2/Config.in index c465a4d9..7dc5cae2 100644 --- a/bsp/buildroot/boot/grub2/Config.in +++ b/bsp/buildroot/boot/grub2/Config.in @@ -154,8 +154,8 @@ endif # BR2_TARGET_GRUB2_I386_PC config BR2_TARGET_GRUB2_BUILTIN_MODULES string "builtin modules" - default "boot linux ext2 fat part_msdos part_gpt normal biosdisk" if BR2_TARGET_GRUB2_I386_PC - default "boot linux ext2 fat part_msdos part_gpt normal efi_gop" \ + default "boot linux ext2 fat squash4 part_msdos part_gpt normal biosdisk" if BR2_TARGET_GRUB2_I386_PC + default "boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop" \ if BR2_TARGET_GRUB2_I386_EFI || BR2_TARGET_GRUB2_X86_64_EFI config BR2_TARGET_GRUB2_BUILTIN_CONFIG diff --git a/bsp/buildroot/boot/grub2/grub.cfg b/bsp/buildroot/boot/grub2/grub.cfg index c8abbd34..bd3e3f00 100644 --- a/bsp/buildroot/boot/grub2/grub.cfg +++ b/bsp/buildroot/boot/grub2/grub.cfg @@ -2,5 +2,5 @@ set default="0" set timeout="5" menuentry "Buildroot" { - linux /boot/bzImage root=/dev/sda1 console=tty1 + linux /boot/bzImage root=/dev/sda1 rootwait console=tty1 } diff --git a/bsp/buildroot/boot/grub2/grub2.mk b/bsp/buildroot/boot/grub2/grub2.mk index 88a46f4c..dc4e51ea 100644 --- a/bsp/buildroot/boot/grub2/grub2.mk +++ b/bsp/buildroot/boot/grub2/grub2.mk @@ -45,6 +45,9 @@ endif # the confusion, it also uses NM, OBJCOPY and STRIP to build the # bootloader itself; none of these are used to build the native # tools. +# +# NOTE: TARGET_STRIP is overridden by BR2_STRIP_none, so always +# use the cross compile variant to ensure grub2 builds GRUB2_CONF_ENV = \ $(HOST_CONFIGURE_OPTS) \ @@ -55,14 +58,14 @@ GRUB2_CONF_ENV = \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ NM="$(TARGET_NM)" \ OBJCOPY="$(TARGET_OBJCOPY)" \ - STRIP="$(TARGET_STRIP)" + STRIP="$(TARGET_CROSS)strip" GRUB2_CONF_OPTS = \ --target=$(GRUB2_TARGET) \ --with-platform=$(GRUB2_PLATFORM) \ --disable-grub-mkfont \ --enable-efiemu=no \ - --enable-liblzma=no \ + ac_cv_lib_lzma_lzma_code=no \ --enable-device-mapper=no \ --enable-libzfs=no \ --disable-werror diff --git a/bsp/buildroot/boot/mxs-bootlets/mxs-bootlets.hash b/bsp/buildroot/boot/mxs-bootlets/mxs-bootlets.hash new file mode 100644 index 00000000..6d3483c7 --- /dev/null +++ b/bsp/buildroot/boot/mxs-bootlets/mxs-bootlets.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 63f6068ae36884adef4259bbb1fe2591755718f22c46d0a59d854883dfab1ffc imx-bootlets-src-10.12.01.tar.gz diff --git a/bsp/buildroot/boot/s500-bootloader/Config.in b/bsp/buildroot/boot/s500-bootloader/Config.in new file mode 100644 index 00000000..7bb689f3 --- /dev/null +++ b/bsp/buildroot/boot/s500-bootloader/Config.in @@ -0,0 +1,17 @@ +config BR2_TARGET_S500_BOOTLOADER + bool "s500-bootloader" + depends on BR2_arm + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + select BR2_HOSTARCH_NEEDS_IA32_LIBS + help + 1st level bootloader for Actions Semiconductor S500 SoC. + + https://github.com/xapp-le/owl + +config BR2_TARGET_S500_BOOTLOADER_BOARD + string "board to configure for" + depends on BR2_TARGET_S500_BOOTLOADER + help + Specify the board to configure the bootloader for. + This should be the name of a directory under s500/boards + containing a suitable bootloader.ini file. diff --git a/bsp/buildroot/boot/s500-bootloader/s500-bootloader.hash b/bsp/buildroot/boot/s500-bootloader/s500-bootloader.hash new file mode 100644 index 00000000..d538f23b --- /dev/null +++ b/bsp/buildroot/boot/s500-bootloader/s500-bootloader.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 b183024ac69f51ea7befd28d03b2ec35a7280e270405600fb4f37aa91d9c9571 s500-bootloader-a8d7fa1d9a7f353ec4613febf30f4ca99a10a106.tar.gz diff --git a/bsp/buildroot/boot/s500-bootloader/s500-bootloader.mk b/bsp/buildroot/boot/s500-bootloader/s500-bootloader.mk new file mode 100644 index 00000000..bc87b091 --- /dev/null +++ b/bsp/buildroot/boot/s500-bootloader/s500-bootloader.mk @@ -0,0 +1,34 @@ +################################################################################ +# +# s500-bootloader +# +################################################################################ + +S500_BOOTLOADER_VERSION = a8d7fa1d9a7f353ec4613febf30f4ca99a10a106 +S500_BOOTLOADER_SITE = $(call github,xapp-le,owl,$(S500_BOOTLOADER_VERSION)) +S500_BOOTLOADER_LICENSE = PROPRIETARY +S500_BOOTLOADER_INSTALL_TARGET = NO +S500_BOOTLOADER_INSTALL_IMAGES = YES + +S500_BOOTLOADER_BOARD = $(call qstrip,$(BR2_TARGET_S500_BOOTLOADER_BOARD)) + +define S500_BOOTLOADER_BUILD_CMDS + cd $(@D) && ./tools/utils/bootloader_pack \ + s500/bootloader/bootloader.bin \ + s500/boards/$(S500_BOOTLOADER_BOARD)/bootloader.ini \ + s500-bootloader.bin +endef + +define S500_BOOTLOADER_INSTALL_IMAGES_CMDS + $(INSTALL) -m 0644 -D $(@D)/s500-bootloader.bin \ + $(BINARIES_DIR)/s500-bootloader.bin +endef + +$(eval $(generic-package)) + +ifeq ($(BR2_TARGET_S500_BOOTLOADER)$(BR_BUILDING),yy) +# we NEED a board name +ifeq ($(S500_BOOTLOADER_BOARD),) +$(error No s500-bootloader board specified. Check your BR2_TARGET_S500_BOOTLOADER settings) +endif +endif diff --git a/bsp/buildroot/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch b/bsp/buildroot/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch new file mode 100644 index 00000000..2df67665 --- /dev/null +++ b/bsp/buildroot/boot/syslinux/0001-Fix-gcc-5-ALIGN-causing-Boot-error.patch @@ -0,0 +1,76 @@ +commit e5f2b577ded109291c9632dacb6eaa621d8a59fe +Author: Sylvain Gault +Date: Tue Sep 29 02:38:25 2015 +0200 + + bios: Fix alignment change with gcc 5 + + The section aligment specified in the ld scripts have to be greater or + equal to those in the .o files generated by gcc. + + Signed-off-by: Sylvain Gault + Tested-by: poma + Signed-off-by: Paulo Alcantara + Signed-off-by: Frank Hunleth + +diff --git a/core/i386/syslinux.ld b/core/i386/syslinux.ld +index 7b4e012..7390451 100644 +--- a/core/i386/syslinux.ld ++++ b/core/i386/syslinux.ld +@@ -266,7 +266,7 @@ SECTIONS + __text_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __rodata_vma = .; + __rodata_lma = __rodata_vma + __text_lma - __text_vma; +@@ -361,7 +361,7 @@ SECTIONS + __dynamic_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __data_vma = .; + __data_lma = __data_vma + __text_lma - __text_vma; +@@ -377,7 +377,7 @@ SECTIONS + __pm_code_dwords = (__pm_code_len + 3) >> 2; + + . = ALIGN(128); +- ++ + __bss_vma = .; + __bss_lma = .; /* Dummy */ + .bss (NOLOAD) : AT (__bss_lma) { +diff --git a/core/x86_64/syslinux.ld b/core/x86_64/syslinux.ld +index 1057112..bf815c4 100644 +--- a/core/x86_64/syslinux.ld ++++ b/core/x86_64/syslinux.ld +@@ -266,7 +266,7 @@ SECTIONS + __text_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __rodata_vma = .; + __rodata_lma = __rodata_vma + __text_lma - __text_vma; +@@ -361,7 +361,7 @@ SECTIONS + __dynamic_end = .; + } + +- . = ALIGN(16); ++ . = ALIGN(32); + + __data_vma = .; + __data_lma = __data_vma + __text_lma - __text_vma; +@@ -377,7 +377,7 @@ SECTIONS + __pm_code_dwords = (__pm_code_len + 3) >> 2; + + . = ALIGN(128); +- ++ + __bss_vma = .; + __bss_lma = .; /* Dummy */ + .bss (NOLOAD) : AT (__bss_lma) { diff --git a/bsp/buildroot/boot/syslinux/Config.in b/bsp/buildroot/boot/syslinux/Config.in index f4b98702..6067e9ce 100644 --- a/bsp/buildroot/boot/syslinux/Config.in +++ b/bsp/buildroot/boot/syslinux/Config.in @@ -2,6 +2,11 @@ config BR2_TARGET_SYSLINUX bool "syslinux" depends on BR2_i386 || BR2_x86_64 select BR2_HOSTARCH_NEEDS_IA32_COMPILER + # Make sure at least one of the flavors is installed + select BR2_TARGET_SYSLINUX_ISOLINUX \ + if !BR2_TARGET_SYSLINUX_PXELINUX && \ + !BR2_TARGET_SYSLINUX_MBR && \ + !BR2_TARGET_SYSLINUX_EFI help The syslinux bootloader for x86 systems. This includes: syslinux, pxelinux, extlinux. @@ -13,25 +18,22 @@ if BR2_TARGET_SYSLINUX config BR2_TARGET_SYSLINUX_LEGACY_BIOS bool -choice - bool "Image to install" - config BR2_TARGET_SYSLINUX_ISOLINUX - bool "isolinux" + bool "install isolinux" select BR2_TARGET_SYSLINUX_LEGACY_BIOS help Install the legacy-BIOS 'isolinux' image, to boot off optical media (CDROM, DVD.) config BR2_TARGET_SYSLINUX_PXELINUX - bool "pxelinux" + bool "install pxelinux" select BR2_TARGET_SYSLINUX_LEGACY_BIOS help Install the legacy-BIOS 'pxelinux' image, to boot off the network using PXE. config BR2_TARGET_SYSLINUX_MBR - bool "mbr" + bool "install mbr" select BR2_TARGET_SYSLINUX_LEGACY_BIOS help Install the legacy-BIOS 'mbr' image, to boot off a @@ -39,12 +41,11 @@ config BR2_TARGET_SYSLINUX_MBR or 'syslinux'). config BR2_TARGET_SYSLINUX_EFI - bool "efi" + bool "install efi" select BR2_PACKAGE_GNU_EFI help Install the 'efi' image, to boot from an EFI environment. -endchoice if BR2_TARGET_SYSLINUX_LEGACY_BIOS diff --git a/bsp/buildroot/boot/syslinux/syslinux.mk b/bsp/buildroot/boot/syslinux/syslinux.mk index 0868896e..82890c5d 100644 --- a/bsp/buildroot/boot/syslinux/syslinux.mk +++ b/bsp/buildroot/boot/syslinux/syslinux.mk @@ -16,7 +16,7 @@ SYSLINUX_INSTALL_IMAGES = YES SYSLINUX_DEPENDENCIES = host-nasm host-util-linux host-upx ifeq ($(BR2_TARGET_SYSLINUX_LEGACY_BIOS),y) -SYSLINUX_TARGET = bios +SYSLINUX_TARGET += bios endif # The syslinux build system must be forced to use Buildroot's gnu-efi @@ -30,7 +30,7 @@ else SYSLINUX_EFI_BITS = efi32 endif # 64-bit SYSLINUX_DEPENDENCIES += gnu-efi -SYSLINUX_TARGET = $(SYSLINUX_EFI_BITS) +SYSLINUX_TARGET += $(SYSLINUX_EFI_BITS) SYSLINUX_EFI_ARGS = \ EFIINC=$(STAGING_DIR)/usr/include/efi \ LIBDIR=$(STAGING_DIR)/usr/lib \ diff --git a/bsp/buildroot/boot/ts4800-mbrboot/Config.in b/bsp/buildroot/boot/ts4800-mbrboot/Config.in new file mode 100644 index 00000000..7ed0b213 --- /dev/null +++ b/bsp/buildroot/boot/ts4800-mbrboot/Config.in @@ -0,0 +1,7 @@ +config BR2_TARGET_TS4800_MBRBOOT + bool "ts4800-mbrboot" + depends on BR2_ARM_CPU_ARMV7A + help + First level bootloader for TS4800 board + + https://github.com/embeddedarm/ts4800-mbrboot diff --git a/bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.hash b/bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.hash new file mode 100644 index 00000000..04e70728 --- /dev/null +++ b/bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 617c70dcf50b7ad35ed3f40666ff2a9a654a5440b522ad73662abdf9f843cee9 ts4800-mbrboot-cf8f7072ed5a4a4e48fcb9841b2e31e519ec5dca.tar.gz diff --git a/bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.mk b/bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.mk new file mode 100644 index 00000000..98620925 --- /dev/null +++ b/bsp/buildroot/boot/ts4800-mbrboot/ts4800-mbrboot.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# ts4800-mbrboot +# +################################################################################ + +TS4800_MBRBOOT_VERSION = cf8f7072ed5a4a4e48fcb9841b2e31e519ec5dca +TS4800_MBRBOOT_SITE = $(call github,embeddedarm,ts4800-mbrboot,$(TS4800_MBRBOOT_VERSION)) +TS4800_MBRBOOT_LICENSE = BSD-2c +TS4800_MBRBOOT_LICENSE_FILES = LICENSE +TS4800_MBRBOOT_INSTALL_IMAGES = YES + +define TS4800_MBRBOOT_BUILD_CMDS + $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) +endef + +define TS4800_MBRBOOT_INSTALL_IMAGES_CMDS + $(INSTALL) -D -m 0644 $(@D)/mbrboot.bin $(BINARIES_DIR)/mbrboot.bin +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/boot/uboot/Config.in b/bsp/buildroot/boot/uboot/Config.in index dde47102..b024b662 100644 --- a/bsp/buildroot/boot/uboot/Config.in +++ b/bsp/buildroot/boot/uboot/Config.in @@ -38,7 +38,7 @@ choice Select the specific U-Boot version you want to use config BR2_TARGET_UBOOT_LATEST_VERSION - bool "2016.01" + bool "2016.07" config BR2_TARGET_UBOOT_CUSTOM_VERSION bool "Custom version" @@ -54,6 +54,9 @@ config BR2_TARGET_UBOOT_CUSTOM_GIT config BR2_TARGET_UBOOT_CUSTOM_HG bool "Custom Mercurial repository" +config BR2_TARGET_UBOOT_CUSTOM_SVN + bool "Custom Subversion repository" + endchoice config BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE @@ -64,7 +67,7 @@ config BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION string "URL of custom U-Boot tarball" depends on BR2_TARGET_UBOOT_CUSTOM_TARBALL -if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG +if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG || BR2_TARGET_UBOOT_CUSTOM_SVN config BR2_TARGET_UBOOT_CUSTOM_REPO_URL string "URL of custom repository" @@ -76,31 +79,19 @@ config BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION default BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION \ if BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION != "" # legacy help - Revision to use in the typical format used by Git/Mercurial + Revision to use in the typical format used by Git/Mercurial/Subversion E.G. a sha id, a tag, branch, .. endif config BR2_TARGET_UBOOT_VERSION string - default "2016.01" if BR2_TARGET_UBOOT_LATEST_VERSION + default "2016.07" if BR2_TARGET_UBOOT_LATEST_VERSION default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \ if BR2_TARGET_UBOOT_CUSTOM_VERSION default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL default BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION \ - if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG - -config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR - string "custom patch dir" - depends on BR2_DEPRECATED_SINCE_2015_05 - help - If your board requires custom patches, add the path to the - directory containing the patches here. The patches must be - named uboot-.patch. - - Most users may leave this empty - - NOTE: Use BR2_TARGET_UBOOT_PATCH instead. + if BR2_TARGET_UBOOT_CUSTOM_GIT || BR2_TARGET_UBOOT_CUSTOM_HG || BR2_TARGET_UBOOT_CUSTOM_SVN config BR2_TARGET_UBOOT_PATCH string "Custom U-Boot patches" @@ -322,7 +313,7 @@ config BR2_TARGET_UBOOT_SPL_NAME default "spl/u-boot-spl.bin" depends on BR2_TARGET_UBOOT_SPL help - This is the name of the SPL binary, generated during + A space-separated list of SPL binaries, generated during u-boot build. For most platform it is spl/u-boot-spl.bin but not always. It is MLO on OMAP for example. @@ -332,11 +323,19 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE depends on BR2_TARGET_UBOOT_SPL depends on BR2_TARGET_UBOOT_FORMAT_DTB_IMG help - Generate the BOOT.BIN file from U-Boot's SPL. The image - boots the Xilinx Zynq chip without any FPGA bitstream. - A bitstream can be loaded by the U-Boot. The SPL searchs - for u-boot-dtb.img file so this U-Boot format is required - to be set. + Generate the BOOT.BIN file from U-Boot's SPL. The image + boots the Xilinx Zynq chip without any FPGA bitstream. + A bitstream can be loaded by the U-Boot. The SPL searchs + for u-boot-dtb.img file so this U-Boot format is required + to be set. + +config BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC + bool "CRC SPL image for Altera SoC FPGA" + depends on BR2_arm + depends on BR2_TARGET_UBOOT_SPL + help + Generate SPL image fixed by the mkpimage tool to enable + booting on the Altera SoC FPGA based platforms. menuconfig BR2_TARGET_UBOOT_ENVIMAGE bool "Environment image" @@ -349,9 +348,13 @@ menuconfig BR2_TARGET_UBOOT_ENVIMAGE if BR2_TARGET_UBOOT_ENVIMAGE config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE - string "Source file for environment" + string "Source files for environment" help - Text file describing the environment. + Text files describing the environment. Files should have + lines of the form var=value, one per line. Blank lines and + lines starting with a # are ignored. + + Multiple source files are concatenated in the order listed. config BR2_TARGET_UBOOT_ENVIMAGE_SIZE string "Size of environment" diff --git a/bsp/buildroot/boot/uboot/uboot.hash b/bsp/buildroot/boot/uboot/uboot.hash index 31b0db96..cf27e90a 100644 --- a/bsp/buildroot/boot/uboot/uboot.hash +++ b/bsp/buildroot/boot/uboot/uboot.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 e5792fba9399d9804aa2ef667f14ff771e2cdece72367d340250265bf095a5d5 u-boot-2016.01.tar.bz2 +sha256 974fb7225c0af6a721307631f66b81e20dbda82a4d7cc32aba2a625727231253 u-boot-2016.07.tar.bz2 diff --git a/bsp/buildroot/boot/uboot/uboot.mk b/bsp/buildroot/boot/uboot/uboot.mk index d539b312..7c3512ad 100644 --- a/bsp/buildroot/boot/uboot/uboot.mk +++ b/bsp/buildroot/boot/uboot/uboot.mk @@ -24,6 +24,9 @@ UBOOT_SITE_METHOD = git else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_HG),y) UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)) UBOOT_SITE_METHOD = hg +else ifeq ($(BR2_TARGET_UBOOT_CUSTOM_SVN),y) +UBOOT_SITE = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_REPO_URL)) +UBOOT_SITE_METHOD = svn else # Handle stable official U-Boot versions UBOOT_SITE = ftp://ftp.denx.de/pub/u-boot @@ -35,6 +38,10 @@ endif ifeq ($(BR2_TARGET_UBOOT_FORMAT_ELF),y) UBOOT_BIN = u-boot +# To make elf usable for debuging on ARC use special target +ifeq ($(BR2_arc),y) +UBOOT_MAKE_TARGET = mdbtrick +endif else ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y) UBOOT_BIN = u-boot.kwb UBOOT_MAKE_TARGET = $(UBOOT_BIN) @@ -47,6 +54,7 @@ else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y) UBOOT_BIN = u-boot-nand.bin else ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y) UBOOT_BIN = u-boot-dtb.img +UBOOT_MAKE_TARGET = all $(UBOOT_BIN) else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y) UBOOT_BIN = u-boot.img else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y) @@ -54,16 +62,17 @@ UBOOT_BIN = u-boot.imx else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y) UBOOT_BIN = u-boot.sb UBOOT_MAKE_TARGET = $(UBOOT_BIN) -UBOOT_DEPENDENCIES += host-elftosb +# mxsimage needs OpenSSL +UBOOT_DEPENDENCIES += host-elftosb host-openssl else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SD),y) # BootStream (.sb) is generated by U-Boot, we convert it to SD format UBOOT_BIN = u-boot.sd UBOOT_MAKE_TARGET = u-boot.sb -UBOOT_DEPENDENCIES += host-elftosb +UBOOT_DEPENDENCIES += host-elftosb host-openssl else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND),y) UBOOT_BIN = u-boot.nand UBOOT_MAKE_TARGET = u-boot.sb -UBOOT_DEPENDENCIES += host-elftosb +UBOOT_DEPENDENCIES += host-elftosb host-openssl else ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y) UBOOT_BIN = $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME)) else @@ -83,7 +92,9 @@ endif UBOOT_MAKE_OPTS += \ CROSS_COMPILE="$(TARGET_CROSS)" \ - ARCH=$(UBOOT_ARCH) + ARCH=$(UBOOT_ARCH) \ + HOSTCC="$(HOSTCC) $(HOST_CFLAGS)" \ + HOSTLDFLAGS="$(HOST_LDFLAGS)" ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) UBOOT_DEPENDENCIES += host-dtc @@ -100,16 +111,6 @@ endef UBOOT_POST_EXTRACT_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE UBOOT_POST_RSYNC_HOOKS += UBOOT_COPY_OLD_LICENSE_FILE -# Prior to Buildroot 2015.05, only patch directories were supported. New -# configurations use BR2_TARGET_UBOOT_PATCH instead. -ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),) -define UBOOT_APPLY_CUSTOM_PATCHES - $(APPLY_PATCHES) $(@D) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) \*.patch -endef - -UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_CUSTOM_PATCHES -endif - # Analogous code exists in linux/linux.mk. Basically, the generic # package infrastructure handles downloading and applying remote # patches. Local patches are handled depending on whether they are @@ -169,11 +170,15 @@ define UBOOT_INSTALL_IMAGES_CMDS $(if $(BR2_TARGET_UBOOT_FORMAT_NAND), cp -dpf $(@D)/$(UBOOT_MAKE_TARGET) $(BINARIES_DIR)) $(if $(BR2_TARGET_UBOOT_SPL), - cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/) + $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \ + cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ + ) + ) $(if $(BR2_TARGET_UBOOT_ENVIMAGE), - $(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \ - $(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \ - -o $(BINARIES_DIR)/uboot-env.bin $(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) + cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) | \ + $(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \ + $(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \ + -o $(BINARIES_DIR)/uboot-env.bin -) endef define UBOOT_INSTALL_OMAP_IFT_IMAGE @@ -196,14 +201,27 @@ endif ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y) define UBOOT_GENERATE_ZYNQ_IMAGE - $(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/zynq-boot-bin.py \ - -u $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) \ + $(HOST_DIR)/usr/bin/python2 \ + $(HOST_DIR)/usr/bin/zynq-boot-bin.py \ + -u $(@D)/$(firstword $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))) \ -o $(BINARIES_DIR)/BOOT.BIN endef UBOOT_DEPENDENCIES += host-zynq-boot-bin UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_GENERATE_ZYNQ_IMAGE endif +ifeq ($(BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC),y) +define UBOOT_CRC_ALTERA_SOCFPGA_IMAGE + $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \ + $(HOST_DIR)/usr/bin/mkpimage \ + -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(f))).crc \ + $(@D)/$(call qstrip,$(f)) + ) +endef +UBOOT_DEPENDENCIES += host-mkpimage +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE +endif + ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y) ifeq ($(BR_BUILDING),y) ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),) diff --git a/bsp/buildroot/configs/acmesystems_aria_g25_128mb_defconfig b/bsp/buildroot/configs/acmesystems_aria_g25_128mb_defconfig index b619166d..c4d2cd68 100644 --- a/bsp/buildroot/configs/acmesystems_aria_g25_128mb_defconfig +++ b/bsp/buildroot/configs/acmesystems_aria_g25_128mb_defconfig @@ -9,13 +9,12 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1.1" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariag25" # Bootloader BR2_TARGET_AT91BOOTSTRAP3=y BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y -BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="git://github.com/tanzilli/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/tanzilli/at91bootstrap.git" BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="3f957cec253abc80fd10c733e5e596f46e1aef56" BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="aria-128m" diff --git a/bsp/buildroot/configs/acmesystems_aria_g25_256mb_defconfig b/bsp/buildroot/configs/acmesystems_aria_g25_256mb_defconfig index 584d8b40..ba191c65 100644 --- a/bsp/buildroot/configs/acmesystems_aria_g25_256mb_defconfig +++ b/bsp/buildroot/configs/acmesystems_aria_g25_256mb_defconfig @@ -9,13 +9,12 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1.1" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariag25" # Bootloader BR2_TARGET_AT91BOOTSTRAP3=y BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y -BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="git://github.com/tanzilli/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/tanzilli/at91bootstrap.git" BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="3f957cec253abc80fd10c733e5e596f46e1aef56" BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="aria-256m" diff --git a/bsp/buildroot/configs/acmesystems_arietta_g25_128mb_defconfig b/bsp/buildroot/configs/acmesystems_arietta_g25_128mb_defconfig index 44cb4e5a..e5ddf130 100644 --- a/bsp/buildroot/configs/acmesystems_arietta_g25_128mb_defconfig +++ b/bsp/buildroot/configs/acmesystems_arietta_g25_128mb_defconfig @@ -9,7 +9,6 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1.1" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariag25" BR2_LINUX_KERNEL_XZ=y @@ -17,7 +16,7 @@ BR2_LINUX_KERNEL_XZ=y # Bootloader BR2_TARGET_AT91BOOTSTRAP3=y BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y -BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="git://github.com/tanzilli/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/tanzilli/at91bootstrap.git" BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="cedbde4b36695b715f469f4872f47e5cc8115000" BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="arietta-128m" diff --git a/bsp/buildroot/configs/acmesystems_arietta_g25_256mb_defconfig b/bsp/buildroot/configs/acmesystems_arietta_g25_256mb_defconfig index 48a81900..cf6f67b1 100644 --- a/bsp/buildroot/configs/acmesystems_arietta_g25_256mb_defconfig +++ b/bsp/buildroot/configs/acmesystems_arietta_g25_256mb_defconfig @@ -9,7 +9,6 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1.1" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-ariag25" BR2_LINUX_KERNEL_XZ=y @@ -17,7 +16,7 @@ BR2_LINUX_KERNEL_XZ=y # Bootloader BR2_TARGET_AT91BOOTSTRAP3=y BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y -BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="git://github.com/tanzilli/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/tanzilli/at91bootstrap.git" BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="cedbde4b36695b715f469f4872f47e5cc8115000" BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="arietta-256m" diff --git a/bsp/buildroot/configs/altera_socdk_defconfig b/bsp/buildroot/configs/altera_socdk_defconfig index 6b05a270..f5a2fc7f 100644 --- a/bsp/buildroot/configs/altera_socdk_defconfig +++ b/bsp/buildroot/configs/altera_socdk_defconfig @@ -14,10 +14,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_LINUX_KERNEL_INTREE_DTS_NAME)" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.rocketboards.org/linux-socfpga.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.rocketboards.org/linux-socfpga.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_socfpga-3.13_14.02.02" BR2_LINUX_KERNEL_DEFCONFIG="socfpga" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="socfpga_cyclone5_socdk" @@ -27,7 +26,7 @@ BR2_TARGET_ROOTFS_EXT2_3=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="socfpga_cyclone5" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.rocketboards.org/u-boot-socfpga.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="http://git.rocketboards.org/u-boot-socfpga.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_socfpga_v2013.01.01_14.02.02" BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y diff --git a/bsp/buildroot/configs/altera_sockit_defconfig b/bsp/buildroot/configs/altera_sockit_defconfig index 6bd3a715..0addbde1 100644 --- a/bsp/buildroot/configs/altera_sockit_defconfig +++ b/bsp/buildroot/configs/altera_sockit_defconfig @@ -15,9 +15,10 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_LINUX_KERNEL_INTREE_DTS_NAME)" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.rocketboards.org/linux-socfpga.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.rocketboards.org/linux-socfpga.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_socfpga-3.13_14.02.02" BR2_LINUX_KERNEL_DEFCONFIG="socfpga" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="socfpga_cyclone5_sockit" @@ -28,7 +29,7 @@ BR2_TARGET_ROOTFS_EXT2_3=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="socfpga_cyclone5" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.rocketboards.org/u-boot-socfpga.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="http://git.rocketboards.org/u-boot-socfpga.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_acds13.0sp1" BR2_TARGET_UBOOT_PATCH="board/altera/sockit" BR2_TARGET_UBOOT_FORMAT_IMG=y diff --git a/bsp/buildroot/configs/arcturus_ucp1020_defconfig b/bsp/buildroot/configs/arcturus_ucp1020_defconfig new file mode 100644 index 00000000..cc1297ce --- /dev/null +++ b/bsp/buildroot/configs/arcturus_ucp1020_defconfig @@ -0,0 +1,31 @@ +# Architecture +BR2_powerpc=y +BR2_powerpc_8548=y + +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y + +# System settings +BR2_TARGET_GENERIC_HOSTNAME="UCP1020" +BR2_TARGET_GENERIC_ISSUE="Welcome to Arcturus uCP1020 System on Module" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1.27" +BR2_LINUX_KERNEL_PATCH="board/arcturus/ppc-ucp1020/patches/linux" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arcturus/ppc-ucp1020/configs/linux-4.1.x.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="ucp1020" + +# Filesystem +BR2_TARGET_ROOTFS_JFFS2=y + +# U-boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="UCP1020" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" diff --git a/bsp/buildroot/configs/arm_foundationv8_defconfig b/bsp/buildroot/configs/arm_foundationv8_defconfig index 8968c77c..d31f69d3 100644 --- a/bsp/buildroot/configs/arm_foundationv8_defconfig +++ b/bsp/buildroot/configs/arm_foundationv8_defconfig @@ -1,16 +1,16 @@ BR2_aarch64=y -# Linux headers same as kernel, a 3.13 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_13=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.13.6" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(LINUX_DIR)/arch/arm64/configs/defconfig" BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="foundation-v8" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/foundation-v8" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_BOOT_WRAPPER_AARCH64=y -BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS="foundation-v8" +BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS="arm/foundation-v8" BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS="root=/dev/vda consolelog=9 console=ttyAMA0 rw" diff --git a/bsp/buildroot/configs/arm_juno_defconfig b/bsp/buildroot/configs/arm_juno_defconfig index 87b63741..75ed63cb 100644 --- a/bsp/buildroot/configs/arm_juno_defconfig +++ b/bsp/buildroot/configs/arm_juno_defconfig @@ -1,14 +1,12 @@ BR2_aarch64=y -BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.2.2" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y BR2_TARGET_GENERIC_HOSTNAME="juno-buildroot" BR2_TARGET_GENERIC_ISSUE="Welcome to SNPS Juno by Buildroot" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="http://git.linaro.org/kernel/linux-linaro-tracking.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux-linaro-4.3-2015.11" +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="v4.6" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/arm/juno/linux-juno-defconfig" BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno arm/juno-r1" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/juno arm/juno-r1 arm/juno-r2" diff --git a/bsp/buildroot/configs/armadeus_apf27_defconfig b/bsp/buildroot/configs/armadeus_apf27_defconfig index 04a7cdc9..fd0ba501 100644 --- a/bsp/buildroot/configs/armadeus_apf27_defconfig +++ b/bsp/buildroot/configs/armadeus_apf27_defconfig @@ -8,7 +8,6 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y # System BR2_TARGET_GENERIC_HOSTNAME="apf27" BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" # Filesystem @@ -22,6 +21,7 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.18.6" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf27/linux-3.18.config" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0xA0008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx27-apf27dev" diff --git a/bsp/buildroot/configs/armadeus_apf28_defconfig b/bsp/buildroot/configs/armadeus_apf28_defconfig index cbaf5b7e..30329064 100644 --- a/bsp/buildroot/configs/armadeus_apf28_defconfig +++ b/bsp/buildroot/configs/armadeus_apf28_defconfig @@ -8,7 +8,6 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y # System BR2_TARGET_GENERIC_HOSTNAME="apf28" BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" # Kernel @@ -17,6 +16,7 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.12.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf28/linux-3.12.config" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx28-apf28dev" diff --git a/bsp/buildroot/configs/armadeus_apf51_defconfig b/bsp/buildroot/configs/armadeus_apf51_defconfig index ac01c1d2..f70593b0 100644 --- a/bsp/buildroot/configs/armadeus_apf51_defconfig +++ b/bsp/buildroot/configs/armadeus_apf51_defconfig @@ -16,6 +16,7 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.12.6" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf51/linux-3.12.config" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x90008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx51-apf51dev" diff --git a/bsp/buildroot/configs/armadeus_apf9328_defconfig b/bsp/buildroot/configs/armadeus_apf9328_defconfig index d1526a50..d83ed711 100644 --- a/bsp/buildroot/configs/armadeus_apf9328_defconfig +++ b/bsp/buildroot/configs/armadeus_apf9328_defconfig @@ -16,7 +16,6 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_17=y # System BR2_TARGET_GENERIC_HOSTNAME="apf9328" BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" # Filesystem @@ -27,4 +26,5 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.17.2" BR2_LINUX_KERNEL_DEFCONFIG="imx_v4_v5" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x08008000" diff --git a/bsp/buildroot/configs/at91sam9260eknf_defconfig b/bsp/buildroot/configs/at91sam9260eknf_defconfig index d01cfeb5..92bb0711 100644 --- a/bsp/buildroot/configs/at91sam9260eknf_defconfig +++ b/bsp/buildroot/configs/at91sam9260eknf_defconfig @@ -5,9 +5,6 @@ BR2_arm926t=y # Linux headers same as kernel, a 3.9 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9=y -# System -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y - # Packages BR2_PACKAGE_HOST_SAM_BA=y @@ -28,4 +25,3 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.9.1" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/atmel/at91sam9260ek/linux-3.9.config" -BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/at91sam9g45m10ek_defconfig b/bsp/buildroot/configs/at91sam9g45m10ek_defconfig index ab6083e4..35618d5f 100644 --- a/bsp/buildroot/configs/at91sam9g45m10ek_defconfig +++ b/bsp/buildroot/configs/at91sam9g45m10ek_defconfig @@ -7,7 +7,6 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9m10g45ek" BR2_TARGET_ROOTFS_UBIFS=y @@ -18,6 +17,6 @@ BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9m10g45eknf_uboot" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="at91sam9m10g45ek_nandflash" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/at91sam9rlek_defconfig b/bsp/buildroot/configs/at91sam9rlek_defconfig index 1980e21c..66e4a888 100644 --- a/bsp/buildroot/configs/at91sam9rlek_defconfig +++ b/bsp/buildroot/configs/at91sam9rlek_defconfig @@ -7,7 +7,6 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9rlek" BR2_TARGET_ROOTFS_UBIFS=y @@ -18,6 +17,6 @@ BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9rleknf_uboot" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="at91sam9rlek_nandflash" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/at91sam9x5ek_defconfig b/bsp/buildroot/configs/at91sam9x5ek_defconfig index df7cff63..79031b67 100644 --- a/bsp/buildroot/configs/at91sam9x5ek_defconfig +++ b/bsp/buildroot/configs/at91sam9x5ek_defconfig @@ -7,7 +7,6 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" BR2_LINUX_KERNEL_DEFCONFIG="at91_dt" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91sam9g15ek at91sam9g25ek at91sam9g35ek at91sam9x25ek at91sam9x35ek" BR2_TARGET_ROOTFS_UBIFS=y @@ -19,6 +18,6 @@ BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="at91sam9x5eknf_uboot" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="at91sam9x5ek_nandflash" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_defconfig b/bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_defconfig new file mode 100644 index 00000000..7eb969f2 --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/atmel/sama5d2_xplained_mmc/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d2_xplained at91-sama5d2_xplained_pda4 at91-sama5d2_xplained_pda7 at91-sama5d2_xplained_pda7b" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d2_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d2_xplained_mmc" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_dev_defconfig b/bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_dev_defconfig new file mode 100644 index 00000000..d7f47176 --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d2_xplained_mmc_dev_defconfig @@ -0,0 +1,105 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/atmel/sama5d2_xplained_mmc/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d2_xplained at91-sama5d2_xplained_pda4 at91-sama5d2_xplained_pda7 at91-sama5d2_xplained_pda7b" + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_DEVMEM2=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d2_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d2_xplained_mmc" + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/atmel_sama5d3_xplained_defconfig b/bsp/buildroot/configs/atmel_sama5d3_xplained_defconfig index 665a3d7c..480f2fd9 100644 --- a/bsp/buildroot/configs/atmel_sama5d3_xplained_defconfig +++ b/bsp/buildroot/configs/atmel_sama5d3_xplained_defconfig @@ -2,26 +2,27 @@ BR2_arm=y BR2_cortex_a5=y BR2_ARM_ENABLE_VFP=y BR2_ARM_INSTRUCTIONS_THUMB2=y -# Linux headers same as kernel, a 3.18 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" BR2_LINUX_KERNEL_DEFCONFIG="sama5" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained at91-sama5d3_xplained_pda4 at91-sama5d3_xplained_pda7" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained at91-sama5d3_xplained_pda4 at91-sama5d3_xplained_pda7 at91-sama5d3_xplained_pda7b" BR2_TARGET_ROOTFS_UBIFS=y BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 BR2_TARGET_ROOTFS_UBI=y BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainednf_uboot" BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BOARDNAME="sama5d3_xplained_nandflash" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" -BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_nandflash" BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/atmel_sama5d3_xplained_dev_defconfig b/bsp/buildroot/configs/atmel_sama5d3_xplained_dev_defconfig new file mode 100644 index 00000000..d51a141a --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d3_xplained_dev_defconfig @@ -0,0 +1,101 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained at91-sama5d3_xplained_pda4 at91-sama5d3_xplained_pda7 at91-sama5d3_xplained_pda7b" + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_DEVMEM2=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainednf_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_nandflash" + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_defconfig b/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_defconfig index 1a757675..14ca3f54 100644 --- a/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_defconfig +++ b/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_defconfig @@ -1,24 +1,29 @@ -# Architecture BR2_arm=y BR2_cortex_a5=y BR2_ARM_ENABLE_VFP=y - -# Linux headers same as kernel, a 3.18 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y - -# Kernel configuration +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/atmel/sama5d3_xplained_mmc/post-image.sh" BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.18.8" +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" BR2_LINUX_KERNEL_DEFCONFIG="sama5" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained" - -# First/second stage bootloader +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained at91-sama5d3_xplained_pda4 at91-sama5d3_xplained_pda7 at91-sama5d3_xplained_pda7b" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainedsd_uboot" BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BOARDNAME="sama5d3_xplained_mmc" -BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.01" -BR2_TARGET_UBOOT_FORMAT_IMG=y -BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_mmc" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_dev_defconfig b/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_dev_defconfig new file mode 100644 index 00000000..c45c2ce6 --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d3_xplained_mmc_dev_defconfig @@ -0,0 +1,104 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/atmel/sama5d3_xplained_mmc/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d3_xplained at91-sama5d3_xplained_pda4 at91-sama5d3_xplained_pda7 at91-sama5d3_xplained_pda7b" + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_DEVMEM2=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3_xplainedsd_uboot" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d3_xplained_mmc" + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/atmel_sama5d3xek_defconfig b/bsp/buildroot/configs/atmel_sama5d3xek_defconfig index 193fa136..086c18e0 100644 --- a/bsp/buildroot/configs/atmel_sama5d3xek_defconfig +++ b/bsp/buildroot/configs/atmel_sama5d3xek_defconfig @@ -9,7 +9,6 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" BR2_LINUX_KERNEL_DEFCONFIG="sama5" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sama5d31ek sama5d31ek_pda4 sama5d31ek_pda7 sama5d31ek_revc sama5d31ek_revc_pda4 sama5d31ek_revc_pda7 sama5d33ek sama5d33ek_pda4 sama5d33ek_pda7 sama5d33ek_revc sama5d33ek_revc_pda4 sama5d33ek_revc_pda7 sama5d34ek sama5d34ek_pda4 sama5d34ek_pda7 sama5d34ek_revc sama5d34ek_revc_pda4 sama5d34ek_revc_pda7 sama5d35ek sama5d35ek_revc sama5d36ek sama5d36ek_pda4 sama5d36ek_pda7 sama5d36ek_revc sama5d36ek_revc_pda4 sama5d36ek_revc_pda7" BR2_TARGET_ROOTFS_UBIFS=y @@ -21,7 +20,7 @@ BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d3xeknf_uboot" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="sama5d3xek_nandflash" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" BR2_TARGET_UBOOT_SPL=y BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/atmel_sama5d4_xplained_defconfig b/bsp/buildroot/configs/atmel_sama5d4_xplained_defconfig index 0991f86f..65313f38 100644 --- a/bsp/buildroot/configs/atmel_sama5d4_xplained_defconfig +++ b/bsp/buildroot/configs/atmel_sama5d4_xplained_defconfig @@ -3,16 +3,14 @@ BR2_cortex_a5=y BR2_ARM_ENABLE_NEON=y BR2_ARM_ENABLE_VFP=y BR2_ARM_INSTRUCTIONS_THUMB2=y -# Linux headers same as kernel, a 3.18 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" BR2_LINUX_KERNEL_DEFCONFIG="sama5" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained at91-sama5d4_xplained_hdmi at91-sama5d4_xplained_pda4 at91-sama5d4_xplained_pda7 at91-sama5d4_xplained_pda7b" BR2_TARGET_ROOTFS_UBIFS=y BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3e000 BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1000 @@ -21,11 +19,14 @@ BR2_TARGET_ROOTFS_UBI=y BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000 BR2_TARGET_ROOTFS_UBI_SUBSIZE=0 BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainednf_uboot_secure" BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BOARDNAME="sama5d4_xplained_nandflash" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" -BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_nandflash" BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/atmel_sama5d4_xplained_dev_defconfig b/bsp/buildroot/configs/atmel_sama5d4_xplained_dev_defconfig new file mode 100644 index 00000000..7dadeca0 --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d4_xplained_dev_defconfig @@ -0,0 +1,105 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained at91-sama5d4_xplained_hdmi at91-sama5d4_xplained_pda4 at91-sama5d4_xplained_pda7 at91-sama5d4_xplained_pda7b" + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_DEVMEM2=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_UBIFS=y +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3e000 +BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1000 +BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=2082 +BR2_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000 +BR2_TARGET_ROOTFS_UBI_SUBSIZE=0 + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainednf_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_nandflash" + +# Host packages +BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_defconfig b/bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_defconfig new file mode 100644 index 00000000..7f93a826 --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_defconfig @@ -0,0 +1,30 @@ +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/atmel/sama5d4_xplained_mmc/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained at91-sama5d4_xplained_hdmi at91-sama5d4_xplained_pda4 at91-sama5d4_xplained_pda7 at91-sama5d4_xplained_pda7b" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainedsd_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_mmc" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_dev_defconfig b/bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_dev_defconfig new file mode 100644 index 00000000..9e11efac --- /dev/null +++ b/bsp/buildroot/configs/atmel_sama5d4_xplained_mmc_dev_defconfig @@ -0,0 +1,105 @@ +# Architecture +BR2_arm=y +BR2_cortex_a5=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +# Needed for gdb +BR2_PTHREAD_DEBUG=y +# Needed for some packages +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System Configuration +# Needed for usb-utils +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +# Creation of the SD card image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/atmel/sama5d4_xplained_mmc/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_LINUX_KERNEL_DEFCONFIG="sama5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4_xplained at91-sama5d4_xplained_hdmi at91-sama5d4_xplained_pda4 at91-sama5d4_xplained_pda7 at91-sama5d4_xplained_pda7b" + +# Packages +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_FFMPEG_SWSCALE=y +BR2_PACKAGE_MPG123=y +BR2_PACKAGE_BZIP2=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_UNZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_ZIP=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_MMC_UTILS=y +BR2_PACKAGE_MTD=y +BR2_PACKAGE_WILC1000_FIRMWARE=y +BR2_PACKAGE_DEVMEM2=y +BR2_PACKAGE_EVTEST=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_SETSERIAL=y +BR2_PACKAGE_SPI_TOOLS=y +BR2_PACKAGE_USBUTILS=y +BR2_PACKAGE_LIBDRM=y +BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y +BR2_PACKAGE_DTC=y +BR2_PACKAGE_DTC_PROGRAMS=y +BR2_PACKAGE_BLUEZ_UTILS=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CAN_UTILS=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPERF=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_LRZSZ=y +BR2_PACKAGE_MII_DIAG=y +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_WGET=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_VIM=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloaders +BR2_TARGET_AT91BOOTSTRAP3=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT=y +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL="https://github.com/linux4sam/at91bootstrap.git" +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION="v3.8.5" +BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4_xplainedsd_uboot_secure" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="linux4sam_5.3" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sama5d4_xplained_mmc" + +# Host packages +# Needed to generate the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/atmel_sama5d4ek_defconfig b/bsp/buildroot/configs/atmel_sama5d4ek_defconfig index 92b08400..9d74eeed 100644 --- a/bsp/buildroot/configs/atmel_sama5d4ek_defconfig +++ b/bsp/buildroot/configs/atmel_sama5d4ek_defconfig @@ -10,7 +10,6 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/linux4sam/linux-at91.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="03329ca4cf6b94acc5c65b59b2d1f90fdeee0887" BR2_LINUX_KERNEL_DEFCONFIG="sama5" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama5d4ek" BR2_TARGET_ROOTFS_UBIFS=y @@ -25,7 +24,7 @@ BR2_TARGET_AT91BOOTSTRAP3_DEFCONFIG="sama5d4eknf_uboot_secure" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="sama5d4ek_nandflash" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/linux4sam/u-boot-at91.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/linux4sam/u-boot-at91.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="677f3c2340b72131beebace8e96cac17b9569887" BR2_TARGET_UBOOT_SPL=y BR2_PACKAGE_HOST_SAM_BA=y diff --git a/bsp/buildroot/configs/beaglebone_defconfig b/bsp/buildroot/configs/beaglebone_defconfig index c3f52766..6c49abf8 100644 --- a/bsp/buildroot/configs/beaglebone_defconfig +++ b/bsp/buildroot/configs/beaglebone_defconfig @@ -5,7 +5,6 @@ BR2_ARM_EABIHF=y # system BR2_TARGET_GENERIC_HOSTNAME="beaglebone" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y BR2_TARGET_GENERIC_GETTY_PORT="ttyO0" # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_ROOTFS_POST_IMAGE_SCRIPT="board/beaglebone/post-image.sh" @@ -13,6 +12,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="board/beaglebone/post-image.sh" # filesystem BR2_PACKAGE_AM33X_CM3=y BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y # BR2_TARGET_ROOTFS_TAR is not set # Linux headers same as kernel, a 3.12 series @@ -22,19 +22,23 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="am335x_evm" BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2013.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05" BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="MLO" +# host packages +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + # kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7f280334068b7c875ade51f8f3921ab311f0c824" -BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux/" +BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-bone am335x-boneblack" diff --git a/bsp/buildroot/configs/calao_qil_a9260_defconfig b/bsp/buildroot/configs/calao_qil_a9260_defconfig index 271a034f..8b76a87b 100644 --- a/bsp/buildroot/configs/calao_qil_a9260_defconfig +++ b/bsp/buildroot/configs/calao_qil_a9260_defconfig @@ -1,6 +1,6 @@ BR2_arm=y BR2_arm926t=y -BR2_GLOBAL_PATCH_DIR="board/calao/qil-a9260/patches/" +BR2_GLOBAL_PATCH_DIR="board/calao/qil-a9260/patches" BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" # Linux headers same as kernel, a 3.4 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4=y @@ -18,4 +18,3 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/calao/qil-a9260/linux-3.4.7.config" -BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/calao_tny_a9g20_lpw_defconfig b/bsp/buildroot/configs/calao_tny_a9g20_lpw_defconfig index 1b380928..5c66d061 100644 --- a/bsp/buildroot/configs/calao_tny_a9g20_lpw_defconfig +++ b/bsp/buildroot/configs/calao_tny_a9g20_lpw_defconfig @@ -4,7 +4,6 @@ BR2_arm926t=y # system BR2_PACKAGE_HOST_SAM_BA=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y # filesystem BR2_TARGET_ROOTFS_UBIFS=y @@ -14,7 +13,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9=y # bootloaders BR2_TARGET_AT91BOOTSTRAP=y -BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/tny-a9g20-lpw/" +BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/tny-a9g20-lpw" BR2_TARGET_AT91BOOTSTRAP_BOARD="tny_a9g20_lpw" BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y BR2_TARGET_BAREBOX=y @@ -26,6 +25,5 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.9.4" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/calao/tny-a9g20-lpw/linux-3.9.config" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="tny_a9g20" diff --git a/bsp/buildroot/configs/calao_usb_a9260_defconfig b/bsp/buildroot/configs/calao_usb_a9260_defconfig index fa1c51eb..d8bfd0da 100644 --- a/bsp/buildroot/configs/calao_usb_a9260_defconfig +++ b/bsp/buildroot/configs/calao_usb_a9260_defconfig @@ -16,4 +16,3 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.10.10" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/calao/usb-a9260/linux-3.7.4.config" -BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/calao_usb_a9263_defconfig b/bsp/buildroot/configs/calao_usb_a9263_defconfig index ab8f2d05..ed6d3cbd 100644 --- a/bsp/buildroot/configs/calao_usb_a9263_defconfig +++ b/bsp/buildroot/configs/calao_usb_a9263_defconfig @@ -5,7 +5,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y BR2_PACKAGE_HOST_SAM_BA=y BR2_TARGET_ROOTFS_UBIFS=y BR2_TARGET_AT91BOOTSTRAP=y -BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/usb-a9263/" +BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/usb-a9263" BR2_TARGET_AT91BOOTSTRAP_BOARD="usb_a9263" BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y BR2_TARGET_BAREBOX=y @@ -15,4 +15,3 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.10.10" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/calao/usb-a9263/linux-3.4.4.config" -BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/calao_usb_a9g20_lpw_defconfig b/bsp/buildroot/configs/calao_usb_a9g20_lpw_defconfig index 7cfa34c7..8a56d060 100644 --- a/bsp/buildroot/configs/calao_usb_a9g20_lpw_defconfig +++ b/bsp/buildroot/configs/calao_usb_a9g20_lpw_defconfig @@ -2,7 +2,7 @@ BR2_arm=y BR2_arm926t=y # Linux headers same as kernel, a 3.10 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y -BR2_GLOBAL_PATCH_DIR="board/calao/usb-a9g20-lpw/patches/" +BR2_GLOBAL_PATCH_DIR="board/calao/usb-a9g20-lpw/patches" BR2_PACKAGE_HOST_SAM_BA=y BR2_TARGET_ROOTFS_UBIFS=y BR2_TARGET_AT91BOOTSTRAP=y @@ -15,4 +15,3 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.10.10" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/calao/usb-a9g20-lpw/linux-3.4.4.config" -BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/chromebook_snow_defconfig b/bsp/buildroot/configs/chromebook_snow_defconfig new file mode 100644 index 00000000..70cd42bb --- /dev/null +++ b/bsp/buildroot/configs/chromebook_snow_defconfig @@ -0,0 +1,23 @@ +BR2_arm=y +BR2_cortex_a15=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_TARGET_GENERIC_GETTY_TERM="linux" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/chromebook/snow/sign.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/chromebook/snow/mksd.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.3" +BR2_LINUX_KERNEL_PATCH="board/chromebook/snow/linux-4.6-dts-tpm.patch" +BR2_LINUX_KERNEL_DEFCONFIG="exynos" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/chromebook/snow/linux-4.6.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="exynos5250-snow" +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_PARTED=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_VBOOT_UTILS=y diff --git a/bsp/buildroot/configs/cubieboard2_defconfig b/bsp/buildroot/configs/cubieboard2_defconfig index 9511cba8..353aaa5a 100644 --- a/bsp/buildroot/configs/cubieboard2_defconfig +++ b/bsp/buildroot/configs/cubieboard2_defconfig @@ -1,8 +1,8 @@ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_NEON_VFPV4=y -# Linux headers same as kernel, a 4.3 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y BR2_TARGET_GENERIC_HOSTNAME="Cubieboard2" BR2_TARGET_GENERIC_ISSUE="Welcome to Cubieboard2!" BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" @@ -10,9 +10,8 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/cubietech/cubieboard2/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard2/post-image.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3.3" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6" BR2_LINUX_KERNEL_DEFCONFIG="sunxi" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-cubieboard2" BR2_TARGET_ROOTFS_EXT2=y @@ -20,10 +19,12 @@ BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Cubieboard2" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/firefly_rk3288_defconfig b/bsp/buildroot/configs/firefly_rk3288_defconfig new file mode 100644 index 00000000..017a7ee6 --- /dev/null +++ b/bsp/buildroot/configs/firefly_rk3288_defconfig @@ -0,0 +1,32 @@ +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_TARGET_GENERIC_HOSTNAME="firefly-rk3288" +BR2_TARGET_GENERIC_ISSUE="Welcome to FIREFLY RK3288!" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/firefly/firefly-rk3288/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/firefly/firefly-rk3288/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/mmind/linux-rockchip.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="ccb89e9b5657b4911c16d08e1581121222ee12c4" +BR2_LINUX_KERNEL_DEFCONFIG="rk3288_veyron" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x02000000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-firefly" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="firefly-rk3288" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/firefly_rk3288_demo_defconfig b/bsp/buildroot/configs/firefly_rk3288_demo_defconfig new file mode 100644 index 00000000..7dadc6bc --- /dev/null +++ b/bsp/buildroot/configs/firefly_rk3288_demo_defconfig @@ -0,0 +1,40 @@ +BR2_arm=y +BR2_cortex_a17=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TARGET_GENERIC_HOSTNAME="firefly-rk3288" +BR2_TARGET_GENERIC_ISSUE="Welcome to FIREFLY RK3288!" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/firefly/firefly-rk3288/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/firefly/firefly-rk3288/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/mmind/linux-rockchip.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="ccb89e9b5657b4911c16d08e1581121222ee12c4" +BR2_LINUX_KERNEL_DEFCONFIG="rk3288_veyron" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x02000000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-firefly" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_PACKAGE_QT5=y +BR2_PACKAGE_QT5BASE_LICENSE_APPROVED=y +BR2_PACKAGE_QT5BASE_EXAMPLES=y +BR2_PACKAGE_QT5BASE_GUI=y +BR2_PACKAGE_QT5BASE_EGLFS=y +BR2_PACKAGE_MALI_T76X=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="firefly-rk3288" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/freescale_imx28evk_defconfig b/bsp/buildroot/configs/freescale_imx28evk_defconfig index 8cb31dc2..9a430f74 100644 --- a/bsp/buildroot/configs/freescale_imx28evk_defconfig +++ b/bsp/buildroot/configs/freescale_imx28evk_defconfig @@ -13,7 +13,6 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.19.2" BR2_LINUX_KERNEL_DEFCONFIG="mxs" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx28-evk" diff --git a/bsp/buildroot/configs/freescale_imx31_3stack_defconfig b/bsp/buildroot/configs/freescale_imx31_3stack_defconfig index ead520ae..bf1afad1 100644 --- a/bsp/buildroot/configs/freescale_imx31_3stack_defconfig +++ b/bsp/buildroot/configs/freescale_imx31_3stack_defconfig @@ -16,6 +16,5 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.15.10" BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_TARGET_ROOTFS_CPIO_GZIP=y BR2_TARGET_ROOTFS_INITRAMFS=y diff --git a/bsp/buildroot/configs/freescale_imx6dlsabreauto_defconfig b/bsp/buildroot/configs/freescale_imx6dlsabreauto_defconfig index c3abbe39..a58ab5d0 100644 --- a/bsp/buildroot/configs/freescale_imx6dlsabreauto_defconfig +++ b/bsp/buildroot/configs/freescale_imx6dlsabreauto_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # patches BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" @@ -15,8 +15,9 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-sabreauto" @@ -30,4 +31,4 @@ BR2_TARGET_UBOOT_BOARDNAME="mx6dlsabreauto" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" diff --git a/bsp/buildroot/configs/freescale_imx6dlsabresd_defconfig b/bsp/buildroot/configs/freescale_imx6dlsabresd_defconfig index f3db0894..ecb5f8b5 100644 --- a/bsp/buildroot/configs/freescale_imx6dlsabresd_defconfig +++ b/bsp/buildroot/configs/freescale_imx6dlsabresd_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # patches BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" @@ -15,8 +15,9 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-sabresd" @@ -30,4 +31,4 @@ BR2_TARGET_UBOOT_BOARDNAME="mx6dlsabresd" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" diff --git a/bsp/buildroot/configs/freescale_imx6qsabreauto_defconfig b/bsp/buildroot/configs/freescale_imx6qsabreauto_defconfig index c721f4ab..6ed33ee7 100644 --- a/bsp/buildroot/configs/freescale_imx6qsabreauto_defconfig +++ b/bsp/buildroot/configs/freescale_imx6qsabreauto_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # patches BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" @@ -15,8 +15,9 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.14.52_1.1.0_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabreauto" @@ -30,4 +31,4 @@ BR2_TARGET_UBOOT_BOARDNAME="mx6qsabreauto" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_3.14.52_1.1.0_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" diff --git a/bsp/buildroot/configs/freescale_imx6qsabresd_defconfig b/bsp/buildroot/configs/freescale_imx6qsabresd_defconfig index 17ad1b59..bd01f05e 100644 --- a/bsp/buildroot/configs/freescale_imx6qsabresd_defconfig +++ b/bsp/buildroot/configs/freescale_imx6qsabresd_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # patches BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" @@ -15,8 +15,9 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabresd" @@ -30,4 +31,4 @@ BR2_TARGET_UBOOT_BOARDNAME="mx6qsabresd" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" diff --git a/bsp/buildroot/configs/freescale_imx6sololiteevk_defconfig b/bsp/buildroot/configs/freescale_imx6sololiteevk_defconfig index 4f7d91d9..18043e8f 100644 --- a/bsp/buildroot/configs/freescale_imx6sololiteevk_defconfig +++ b/bsp/buildroot/configs/freescale_imx6sololiteevk_defconfig @@ -2,8 +2,8 @@ BR2_arm=y BR2_cortex_a9=y -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" @@ -12,8 +12,9 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sl-evk" @@ -27,4 +28,4 @@ BR2_TARGET_UBOOT_BOARDNAME="mx6slevk" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_3.14.28_1.0.0_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" diff --git a/bsp/buildroot/configs/freescale_imx6sxsabresd_defconfig b/bsp/buildroot/configs/freescale_imx6sxsabresd_defconfig index 7d8e8152..2519f493 100644 --- a/bsp/buildroot/configs/freescale_imx6sxsabresd_defconfig +++ b/bsp/buildroot/configs/freescale_imx6sxsabresd_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # patches BR2_GLOBAL_PATCH_DIR="board/freescale/imx6sabre/patches" -# Linux headers same as kernel, a 3.10 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" @@ -15,9 +15,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_3.10.53_1.1.0_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-sdb" @@ -29,5 +28,5 @@ BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="mx6sxsabresd" BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_3.10.53_1.1.0_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_TARGET_UBOOT_FORMAT_IMX=y diff --git a/bsp/buildroot/configs/freescale_imx6ulevk_defconfig b/bsp/buildroot/configs/freescale_imx6ulevk_defconfig index 8359206b..5a18c1d4 100644 --- a/bsp/buildroot/configs/freescale_imx6ulevk_defconfig +++ b/bsp/buildroot/configs/freescale_imx6ulevk_defconfig @@ -2,8 +2,8 @@ BR2_arm=y BR2_cortex_a7=y -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" @@ -12,9 +12,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="imx_3.14.38_6ul_ga" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.1_patch" BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-14x14-evk" @@ -23,7 +22,7 @@ BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="mx6ul_14x14_evk" BR2_TARGET_UBOOT_CUSTOM_GIT=y BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="imx_v2015.04_3.14.38_6ul_ga" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.1.0_ga" BR2_TARGET_UBOOT_FORMAT_IMX=y # required tools to create the microSD image @@ -34,3 +33,4 @@ BR2_PACKAGE_HOST_MTOOLS=y # filesystem / image BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx6ulevk/post-image.sh" BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/bsp/buildroot/configs/freescale_imx7dsabresd_defconfig b/bsp/buildroot/configs/freescale_imx7dsabresd_defconfig new file mode 100644 index 00000000..67680411 --- /dev/null +++ b/bsp/buildroot/configs/freescale_imx7dsabresd_defconfig @@ -0,0 +1,36 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.0.0_ga" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-sdb" + +# filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx7dsabresd" +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.0.0_ga" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# required tools to create the microSD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx7dsdb/post-image.sh" diff --git a/bsp/buildroot/configs/freescale_mpc8315erdb_defconfig b/bsp/buildroot/configs/freescale_mpc8315erdb_defconfig index 457736e0..628aaade 100644 --- a/bsp/buildroot/configs/freescale_mpc8315erdb_defconfig +++ b/bsp/buildroot/configs/freescale_mpc8315erdb_defconfig @@ -10,15 +10,15 @@ BR2_TARGET_ROOTFS_JFFS2_CUSTOM_PAGESIZE=0x200 BR2_TARGET_ROOTFS_JFFS2_CUSTOM_EBSIZE=0x4000 BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y -# Linux headers same as kernel, a 4.2 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +# Linux headers same as kernel, a 4.5 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5.3" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/freescale/mpc8315erdb/linux-4.2.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/freescale/mpc8315erdb/linux-4.5.config" BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="mpc8315erdb" @@ -28,6 +28,8 @@ BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" # Bootloader +# Lock down binutils to <2.25 to avoid U-Boot build failure +BR2_BINUTILS_VERSION_2_24_X=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="MPC8315ERDB_NAND" BR2_TARGET_UBOOT_CUSTOM_VERSION=y diff --git a/bsp/buildroot/configs/freescale_p1010rdb_pa_defconfig b/bsp/buildroot/configs/freescale_p1010rdb_pa_defconfig index 93096ded..7f482485 100644 --- a/bsp/buildroot/configs/freescale_p1010rdb_pa_defconfig +++ b/bsp/buildroot/configs/freescale_p1010rdb_pa_defconfig @@ -27,6 +27,8 @@ BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" # Bootloader +# Lock down binutils to <2.25 to avoid U-Boot build failure +BR2_BINUTILS_VERSION_2_24_X=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="P1010RDB-PA_NOR" BR2_TARGET_UBOOT_CUSTOM_VERSION=y diff --git a/bsp/buildroot/configs/galileo_defconfig b/bsp/buildroot/configs/galileo_defconfig index ba8f62f1..9334266b 100644 --- a/bsp/buildroot/configs/galileo_defconfig +++ b/bsp/buildroot/configs/galileo_defconfig @@ -20,5 +20,6 @@ BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_I386_EFI=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/gdb_bfin_bf512_defconfig b/bsp/buildroot/configs/gdb_bfin_bf512_defconfig new file mode 100644 index 00000000..37ee7288 --- /dev/null +++ b/bsp/buildroot/configs/gdb_bfin_bf512_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_bfin=y +BR2_bf512=y + +# Filesystem +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set + +BR2_ROOTFS_POST_BUILD_SCRIPT="board/gdb/post-build.sh" + +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.3" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/gdb/bfin-bf512/linux-4.6.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyBF0" + +# use minimal busybox with hush +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" + +# compile gdb sim +BR2_PACKAGE_HOST_GDB=y +# BR2_PACKAGE_HOST_GDB_TUI is not set +# BR2_PACKAGE_HOST_GDB_PYTHON is not set +BR2_PACKAGE_HOST_GDB_SIM=y + diff --git a/bsp/buildroot/configs/imx6ulpico_defconfig b/bsp/buildroot/configs/imx6ulpico_defconfig new file mode 100644 index 00000000..8406226f --- /dev/null +++ b/bsp/buildroot/configs/imx6ulpico_defconfig @@ -0,0 +1,50 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# system +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc5" + +# rootfs overlay +BR2_ROOTFS_OVERLAY="board/technexion/imx6ulpico/rootfs_overlay" + +# patches +BR2_GLOBAL_PATCH_DIR="board/technexion/imx6ulpico/patches" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/technexion/imx6ulpico/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6ul-pico-hobbit" + +# wifi firmware for brcm4339 +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y + +# wireless packages +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="pico-imx6ul" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# filesystem / image +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/technexion/imx6ulpico/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/bsp/buildroot/configs/kb9202_defconfig b/bsp/buildroot/configs/kb9202_defconfig index c38adbff..0aea0eba 100644 --- a/bsp/buildroot/configs/kb9202_defconfig +++ b/bsp/buildroot/configs/kb9202_defconfig @@ -5,7 +5,8 @@ BR2_arm920t=y # Filesystem BR2_TARGET_ROOTFS_TAR=y -# Linux headers same as kernel, a 2.6 series (so, no option selected) +# Linux headers same as kernel, a 2.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD=y # Kernel BR2_LINUX_KERNEL=y diff --git a/bsp/buildroot/configs/linksprite_pcduino_defconfig b/bsp/buildroot/configs/linksprite_pcduino_defconfig new file mode 100644 index 00000000..45de3c1b --- /dev/null +++ b/bsp/buildroot/configs/linksprite_pcduino_defconfig @@ -0,0 +1,62 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# System settings +BR2_TARGET_GENERIC_HOSTNAME="pcduino" +BR2_TARGET_GENERIC_ISSUE="pcDuino buildroot is ready" + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# SD image scripts +BR2_ROOTFS_POST_BUILD_SCRIPT="board/linksprite/pcduino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/linksprite/pcduino/post-image.sh" + +# For kernel modules autoloading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y + +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun4i-a10-pcduino" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/linksprite/pcduino/linux-extras.config" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05" +BR2_TARGET_UBOOT_USE_DEFCONFIG=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Linksprite_pcDuino" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# Host packages +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# Target packages: wireless support for pcduino-lite-wifi +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y diff --git a/bsp/buildroot/configs/microzed_defconfig b/bsp/buildroot/configs/microzed_defconfig deleted file mode 100644 index c73fae52..00000000 --- a/bsp/buildroot/configs/microzed_defconfig +++ /dev/null @@ -1,26 +0,0 @@ -BR2_arm=y -BR2_cortex_a9=y -BR2_ARM_ENABLE_NEON=y -# Linux headers same as kernel, a 3.18 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y -BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0" -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/Xilinx/linux-xlnx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2015.1" -BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" -BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" -BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zed" -BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_GZIP=y -BR2_TARGET_ROOTFS_CPIO_UIMAGE=y -BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BOARDNAME="zynq_microzed" -BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.07" -BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/avnet/microzed/uboot" -BR2_TARGET_UBOOT_NEEDS_DTC=y -BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y -BR2_TARGET_UBOOT_SPL=y -BR2_TARGET_UBOOT_ZYNQ_IMAGE=y diff --git a/bsp/buildroot/configs/minnowboard_defconfig b/bsp/buildroot/configs/minnowboard_defconfig index 3091957f..f4afc86b 100644 --- a/bsp/buildroot/configs/minnowboard_defconfig +++ b/bsp/buildroot/configs/minnowboard_defconfig @@ -5,9 +5,14 @@ BR2_x86_atom=y # Misc BR2_TARGET_GENERIC_GETTY_PORT="ttyPCH0" BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="minnowboard" # Linux headers same as kernel, a 3.8 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_8=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y # Linux kernel BR2_LINUX_KERNEL=y @@ -20,3 +25,8 @@ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard/linux-3.8.config" # Bootloader BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_I386_EFI=y + +# Filesystem image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set diff --git a/bsp/buildroot/configs/minnowboard_max-graphical_defconfig b/bsp/buildroot/configs/minnowboard_max-graphical_defconfig new file mode 100644 index 00000000..de803f02 --- /dev/null +++ b/bsp/buildroot/configs/minnowboard_max-graphical_defconfig @@ -0,0 +1,74 @@ +# Architecture +BR2_x86_64=y +BR2_x86_atom=y + +# Toolchain +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +# System configuration +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_ROOTFS_OVERLAY="board/minnowboard/fs-overlay-graphical" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="minnowboard-max" + +# Host packages +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Linux +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.1" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard/linux-4.6.config" + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_X86_64_EFI=y + +# ALSA +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y + +# OpenGL +BR2_PACKAGE_GLMARK2=y +BR2_PACKAGE_MESA3D_DEMOS=y +BR2_PACKAGE_MESA3D=y +BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y +BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y + +# Framebuffer (just for testing purposes) +BR2_PACKAGE_FB_TEST_APP=y + +# X +BR2_PACKAGE_XORG7=y +BR2_PACKAGE_XSERVER_XORG_SERVER=y +BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX=y +BR2_PACKAGE_XAPP_XRANDR=y +BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y +BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y +BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y +BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL=y +BR2_PACKAGE_NODM=y +BR2_PACKAGE_XTERM=y +BR2_PACKAGE_OPENBOX=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y + +# Libraries +BR2_PACKAGE_IMLIB2=y +BR2_PACKAGE_IMLIB2_JPEG=y +BR2_PACKAGE_IMLIB2_PNG=y +BR2_PACKAGE_STARTUP_NOTIFICATION=y + +# Filesystem image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + diff --git a/bsp/buildroot/configs/minnowboard_max_defconfig b/bsp/buildroot/configs/minnowboard_max_defconfig index 98996db9..0adb382f 100644 --- a/bsp/buildroot/configs/minnowboard_max_defconfig +++ b/bsp/buildroot/configs/minnowboard_max_defconfig @@ -3,11 +3,16 @@ BR2_x86_64=y BR2_x86_atom=y # Misc -BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" -BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard-max/post-build.sh" +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/minnowboard/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="minnowboard-max" -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y # Needed for ethernet BR2_PACKAGE_LINUX_FIRMWARE=y @@ -16,10 +21,15 @@ BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.1" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard-max/linux.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard/linux-4.6.config" # Bootloader BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_X86_64_EFI=y + +# Filesystem image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set diff --git a/bsp/buildroot/configs/mx25pdk_defconfig b/bsp/buildroot/configs/mx25pdk_defconfig new file mode 100644 index 00000000..d682f0fa --- /dev/null +++ b/bsp/buildroot/configs/mx25pdk_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_arm=y +BR2_arm926t=y + +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx25pdk/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx25pdk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.1" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v4_v5" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx25-pdk" diff --git a/bsp/buildroot/configs/mx51evk_defconfig b/bsp/buildroot/configs/mx51evk_defconfig new file mode 100644 index 00000000..bc72e06c --- /dev/null +++ b/bsp/buildroot/configs/mx51evk_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_arm=y +BR2_cortex_a8=y + +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" + +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx51evk/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="mx51evk" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" +BR2_TARGET_UBOOT_FORMAT_IMX=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.2" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx51-babbage" diff --git a/bsp/buildroot/configs/mx53loco_defconfig b/bsp/buildroot/configs/mx53loco_defconfig index bc09bd24..286b719e 100644 --- a/bsp/buildroot/configs/mx53loco_defconfig +++ b/bsp/buildroot/configs/mx53loco_defconfig @@ -2,26 +2,33 @@ BR2_arm=y BR2_cortex_a8=y -# Linux headers same as kernel, a 2.6 series (so, no option selected) +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y # System BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +# required tools to create the SD card image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + # Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx53loco/post-image.sh" BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y # Bootloader BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="mx53loco" -BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Freescale/u-boot-fslc.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="e36968af0a033e9d66535928886103370620cb4d" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" BR2_TARGET_UBOOT_FORMAT_IMX=y # Kernel BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="b3912bb8a4caf3ec50909135e88af959982c43ca" -BR2_LINUX_KERNEL_DEFCONFIG="imx5" -BR2_LINUX_KERNEL_ZIMAGE=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.2" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx53-qsb imx53-qsrb" diff --git a/bsp/buildroot/configs/nitrogen6sx_defconfig b/bsp/buildroot/configs/nitrogen6sx_defconfig index e69fafc9..bd92f55e 100644 --- a/bsp/buildroot/configs/nitrogen6sx_defconfig +++ b/bsp/buildroot/configs/nitrogen6sx_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # system BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" -BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/nitrogen6x/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/nitrogen6x/post-image.sh" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y @@ -14,24 +14,23 @@ BR2_PACKAGE_HOST_UBOOT_TOOLS=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # bootloader BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="nitrogen6sx" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_TARBALL=y -# Last version of branch boundary-v2015.07 -BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-boot-imx6/tarball/a4070a8/u-boot-a4070a8.tar.gz" +# Last version of branch boundary-v2016.03 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/12f31130.tar.gz" # kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -# Last version of branch boundary-imx_3.14.28_1.0.0_ga -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/f4c8395/linux-imx6-f4c8395.tar.gz" +# Last version of branch boundary-imx_4.1.15_1.0.0_ga +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/be36042a.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="boundary" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-nitrogen6sx" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-nitrogen6sx imx6sx-nitrogen6sx-m4" diff --git a/bsp/buildroot/configs/nitrogen6x_defconfig b/bsp/buildroot/configs/nitrogen6x_defconfig index d8da188c..85acabe6 100644 --- a/bsp/buildroot/configs/nitrogen6x_defconfig +++ b/bsp/buildroot/configs/nitrogen6x_defconfig @@ -5,8 +5,8 @@ BR2_cortex_a9=y # system BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1" -BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/nitrogen6x/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/nitrogen6x/post-image.sh" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y @@ -14,24 +14,23 @@ BR2_PACKAGE_HOST_UBOOT_TOOLS=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y # bootloader BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="nitrogen6q" BR2_TARGET_UBOOT_FORMAT_IMX=y BR2_TARGET_UBOOT_CUSTOM_TARBALL=y -# Last version of branch boundary-v2015.07 -BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="http://github.com/boundarydevices/u-boot-imx6/tarball/a4070a8/u-boot-a4070a8.tar.gz" +# Last version of branch boundary-v2016.03 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/12f31130.tar.gz" # kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -# Last version of branch boundary-imx_3.14.28_1.0.0_ga -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/f4c8395/linux-imx6-f4c8395.tar.gz" +# Last version of branch boundary-imx_4.1.15_1.0.0_ga +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/be36042a.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="boundary" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6q-nitrogen6_max imx6q-sabrelite" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6q-nitrogen6_som2 imx6q-nitrogen6_max imx6qp-nitrogen6_max imx6q-sabrelite" diff --git a/bsp/buildroot/configs/nitrogen7_defconfig b/bsp/buildroot/configs/nitrogen7_defconfig new file mode 100644 index 00000000..a8f3b45d --- /dev/null +++ b/bsp/buildroot/configs/nitrogen7_defconfig @@ -0,0 +1,37 @@ +# architecture +BR2_arm=y +BR2_cortex_a7=y + +# system +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/common/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/boundarydevices/common/post-image.sh" +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# Linux headers same as kernel, a 4.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y + +# bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="nitrogen7" +BR2_TARGET_UBOOT_FORMAT_IMX=y +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y +# Last version of branch boundary-v2016.03 +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/u-boot-imx6/archive/12f31130.tar.gz" + +# kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +# Last version of branch boundary-imx_4.1.15_1.0.0_ga +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/archive/be36042a.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="boundary" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-nitrogen7 imx7d-nitrogen7-m4" diff --git a/bsp/buildroot/configs/odroidc2_defconfig b/bsp/buildroot/configs/odroidc2_defconfig new file mode 100644 index 00000000..45ede629 --- /dev/null +++ b/bsp/buildroot/configs/odroidc2_defconfig @@ -0,0 +1,36 @@ +# Architecture +BR2_aarch64=y + +# System +BR2_TARGET_GENERIC_HOSTNAME="odroidc2" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/hardkernel/odroidc2/post-image.sh" +BR2_PACKAGE_ODROID_SCRIPTS=y + +# Kernel +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="3.14.29" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/hardkernel/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1cb48cebb9d525e524de0ede46710bb29f54d4a6" +BR2_LINUX_KERNEL_DEFCONFIG="odroidc2" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_BUILD_DEFAULT_DTS=y +BR2_LINUX_KERNEL_USE_INTREE_DTS=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="meson64_odroidc2" +BR2_LINUX_KERNEL_IMAGE=y + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/hardkernel/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="1ec799cec97574a9838bc25b286484e579a41652" +BR2_TARGET_UBOOT_BOARDNAME="odroidc2" + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/olimex_a20_olinuxino_lime2_defconfig b/bsp/buildroot/configs/olimex_a20_olinuxino_lime2_defconfig index 1a2bb458..57dda72f 100644 --- a/bsp/buildroot/configs/olimex_a20_olinuxino_lime2_defconfig +++ b/bsp/buildroot/configs/olimex_a20_olinuxino_lime2_defconfig @@ -7,12 +7,12 @@ BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino" BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/a20_olinuxino/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="board/olimex/a20_olinuxino/boot.cmd $(TARGET_DIR)/boot" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.1.4" BR2_LINUX_KERNEL_DEFCONFIG="sunxi" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-lime2" BR2_LINUX_KERNEL_INSTALL_TARGET=y @@ -28,4 +28,5 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.01" BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/olimex_a20_olinuxino_lime_defconfig b/bsp/buildroot/configs/olimex_a20_olinuxino_lime_defconfig index e6c33c82..b3a85036 100644 --- a/bsp/buildroot/configs/olimex_a20_olinuxino_lime_defconfig +++ b/bsp/buildroot/configs/olimex_a20_olinuxino_lime_defconfig @@ -12,6 +12,7 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/a20_olinuxino/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="board/olimex/a20_olinuxino/boot.cmd $(TARGET_DIR)/boot" # Kernel @@ -20,7 +21,6 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4" BR2_LINUX_KERNEL_USE_DEFCONFIG=y BR2_LINUX_KERNEL_DEFCONFIG="sunxi" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-lime" BR2_LINUX_KERNEL_INSTALL_TARGET=y @@ -34,11 +34,12 @@ BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino-Lime" BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_FORMAT_BIN=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" # Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/olimex_a20_olinuxino_lime_mali_defconfig b/bsp/buildroot/configs/olimex_a20_olinuxino_lime_mali_defconfig index ca71b55b..42c8a7c3 100644 --- a/bsp/buildroot/configs/olimex_a20_olinuxino_lime_mali_defconfig +++ b/bsp/buildroot/configs/olimex_a20_olinuxino_lime_mali_defconfig @@ -12,6 +12,7 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/a20_olinuxino/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="board/olimex/a20_olinuxino/boot-mali.cmd $(TARGET_DIR)/boot" # Kernel @@ -20,7 +21,6 @@ BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,linux-sunxi,linux-sunxi,sunxi-v3.4.103-r1)/sunxi-v3.4.103-r1.tar.gz" BR2_LINUX_KERNEL_USE_DEFCONFIG=y BR2_LINUX_KERNEL_DEFCONFIG="sun7i" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_INSTALL_TARGET=y # sunxi packages @@ -45,4 +45,5 @@ BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" # Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/olimex_a20_olinuxino_micro_defconfig b/bsp/buildroot/configs/olimex_a20_olinuxino_micro_defconfig index da2fd8a4..17fe6cf3 100644 --- a/bsp/buildroot/configs/olimex_a20_olinuxino_micro_defconfig +++ b/bsp/buildroot/configs/olimex_a20_olinuxino_micro_defconfig @@ -1,27 +1,25 @@ # Architecture BR2_arm=y BR2_cortex_a7=y -BR2_ARM_EABIHF=y BR2_ARM_FPU_NEON_VFPV4=y -# Linux headers same as kernel, a 4.0 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y # System configuration BR2_TARGET_GENERIC_HOSTNAME="a20-olinuxino" BR2_TARGET_GENERIC_ISSUE="Welcome to OLinuXino!" -BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_POST_BUILD_SCRIPT="board/olimex/a20_olinuxino/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/a20_olinuxino/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="board/olimex/a20_olinuxino/boot.cmd $(TARGET_DIR)/boot" # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.0.5" -BR2_LINUX_KERNEL_USE_DEFCONFIG=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.2" BR2_LINUX_KERNEL_DEFCONFIG="sunxi" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-olinuxino-micro" BR2_LINUX_KERNEL_INSTALL_TARGET=y @@ -35,10 +33,11 @@ BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino_MICRO" BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.04" -BR2_TARGET_UBOOT_FORMAT_BIN=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" # Additional tools +BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/olimex_imx233_olinuxino_defconfig b/bsp/buildroot/configs/olimex_imx233_olinuxino_defconfig index 2184ad80..f74f4222 100644 --- a/bsp/buildroot/configs/olimex_imx233_olinuxino_defconfig +++ b/bsp/buildroot/configs/olimex_imx233_olinuxino_defconfig @@ -2,38 +2,23 @@ BR2_arm=y BR2_arm926t=y -# Patches (mxs-bootlets) -BR2_GLOBAL_PATCH_DIR="board/olimex/imx233_olinuxino" - # System -BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" -# Filesystem -BR2_TARGET_ROOTFS_EXT2=y -# BR2_TARGET_ROOTFS_TAR is not set - -# Linux headers same as kernel, a 3.18 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y - -# Bootloader -BR2_TARGET_MXS_BOOTLETS=y -BR2_TARGET_MXS_BOOTLETS_CUSTOM_PATCH_DIR="board/olimex/imx233_olinuxino" -BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD=y -BR2_TARGET_MXS_BOOTLETS_CUSTOM_BOARD_NAME="imx23_olinuxino_dev" +# For automatic firmware loading +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y # Kernel +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.18.2" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/olimex/imx233_olinuxino/linux-3.18.config" -BR2_LINUX_KERNEL_APPENDED_ZIMAGE=y +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x42000000" BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx23-olinuxino" -# For automatic firmware loading -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y - # Firmware for WiFi BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y @@ -42,3 +27,22 @@ BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y BR2_PACKAGE_ZD1211_FIRMWARE=y + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# U-Boot +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="mx23_olinuxino" +BR2_TARGET_UBOOT_FORMAT_SD=y + +# To generate SD Image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/imx233_olinuxino/post-image.sh" + diff --git a/bsp/buildroot/configs/openblocks_a6_defconfig b/bsp/buildroot/configs/openblocks_a6_defconfig index c0d529cd..c0522da8 100644 --- a/bsp/buildroot/configs/openblocks_a6_defconfig +++ b/bsp/buildroot/configs/openblocks_a6_defconfig @@ -4,7 +4,6 @@ BR2_arm926t=y # system BR2_TARGET_GENERIC_HOSTNAME="openblocks-a6" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" # filesystem diff --git a/bsp/buildroot/configs/orangepipc_defconfig b/bsp/buildroot/configs/orangepipc_defconfig index 3f1aaacd..3683ad49 100644 --- a/bsp/buildroot/configs/orangepipc_defconfig +++ b/bsp/buildroot/configs/orangepipc_defconfig @@ -1,20 +1,15 @@ BR2_arm=y BR2_cortex_a7=y BR2_ARM_FPU_VFPV4=y -# Kernel is a pre-release of 4.5, so we do not yet have a _CUSTOM_4_5 -# option for the headers. Thus, we stick with the 4.4 headers for now. -BR2_KERNEL_HEADERS_VERSION=y -BR2_DEFAULT_KERNEL_VERSION="4.4" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC" BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC" BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepipc/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepipc/post-image.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5-rc1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6" BR2_LINUX_KERNEL_DEFCONFIG="sunxi" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-plus" BR2_TARGET_ROOTFS_EXT2=y @@ -23,11 +18,12 @@ BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_FORMAT_CUSTOM=y BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/bsp/buildroot/configs/pandaboard_defconfig b/bsp/buildroot/configs/pandaboard_defconfig index 93ec1b09..49747e07 100644 --- a/bsp/buildroot/configs/pandaboard_defconfig +++ b/bsp/buildroot/configs/pandaboard_defconfig @@ -1,37 +1,30 @@ -# Architecture BR2_arm=y BR2_cortex_a9=y - -# system -BR2_TARGET_GENERIC_GETTY=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_TARGET_GENERIC_GETTY_PORT="ttyO2" -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y - -# filesystem -BR2_TARGET_ROOTFS_EXT2=y -# BR2_TARGET_ROOTFS_TAR is not set - -# Linux headers same as kernel, a 3.12 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y - -# Kernel +BR2_SYSTEM_DHCP="eth0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pandaboard/post-image.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.12.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5" BR2_LINUX_KERNEL_DEFCONFIG="omap2plus" -BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000" -BR2_LINUX_KERNEL_APPENDED_UIMAGE=y -BR2_LINUX_KERNEL_APPENDED_DTB=y -BR2_LINUX_KERNEL_USE_INTREE_DTS=y -# might need omap4-panda or omap4-panda-a4 instead -BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es" - -# Bootloaders +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es omap4-panda omap4-panda-a4" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="omap4_panda" BR2_TARGET_UBOOT_FORMAT_IMG=y -BR2_TARGET_UBOOT_BOARDNAME="omap4_panda" BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="MLO" -BR2_TARGET_UBOOT_LATEST_VERSION=n -BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2012.07" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/pc_x86_64_bios_defconfig b/bsp/buildroot/configs/pc_x86_64_bios_defconfig new file mode 100644 index 00000000..020be858 --- /dev/null +++ b/bsp/buildroot/configs/pc_x86_64_bios_defconfig @@ -0,0 +1,62 @@ +# Architecture +BR2_x86_64=y + +# Toolchain, required for eudev (to autoload drivers) +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Required tools to create bootable media +BR2_PACKAGE_HOST_GENIMAGE=y + +# Bootloader +BR2_TARGET_GRUB2=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image.sh" + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-4.7.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/pc/linux-extras.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y + +# Packages +# +# Use connman so that networking setup is simpler, via connmanctl tool +# acpid is for seamless power button support +BR2_PACKAGE_ACPID=y +BR2_PACKAGE_CONNMAN=y +BR2_PACKAGE_CONNMAN_CLIENT=y +BR2_PACKAGE_CONNMAN_WIFI=y diff --git a/bsp/buildroot/configs/pc_x86_64_efi_defconfig b/bsp/buildroot/configs/pc_x86_64_efi_defconfig new file mode 100644 index 00000000..13194881 --- /dev/null +++ b/bsp/buildroot/configs/pc_x86_64_efi_defconfig @@ -0,0 +1,65 @@ +# Architecture +BR2_x86_64=y + +# Toolchain, required for eudev (to autoload drivers) +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Required tools to create bootable media +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Bootloader +BR2_TARGET_GRUB2=y +BR2_TARGET_GRUB2_X86_64_EFI=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image.sh" + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-4.7.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/pc/linux-extras.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y + +# Packages +# +# Use connman so that networking setup is simpler, via connmanctl tool +# acpid is for seamless power button support +BR2_PACKAGE_ACPID=y +BR2_PACKAGE_CONNMAN=y +BR2_PACKAGE_CONNMAN_CLIENT=y +BR2_PACKAGE_CONNMAN_WIFI=y diff --git a/bsp/buildroot/configs/qemu_aarch64_virt_defconfig b/bsp/buildroot/configs/qemu_aarch64_virt_defconfig index ec4c6421..2f5429b1 100644 --- a/bsp/buildroot/configs/qemu_aarch64_virt_defconfig +++ b/bsp/buildroot/configs/qemu_aarch64_virt_defconfig @@ -9,12 +9,12 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux-4.7.config" diff --git a/bsp/buildroot/configs/qemu_arm_versatile_defconfig b/bsp/buildroot/configs/qemu_arm_versatile_defconfig index d95c8038..738c7277 100644 --- a/bsp/buildroot/configs/qemu_arm_versatile_defconfig +++ b/bsp/buildroot/configs/qemu_arm_versatile_defconfig @@ -10,15 +10,14 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-4.4.config" -BR2_LINUX_KERNEL_ZIMAGE=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/arm-versatile/linux-4.7.config" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="versatile-pb" diff --git a/bsp/buildroot/configs/qemu_arm_vexpress_defconfig b/bsp/buildroot/configs/qemu_arm_vexpress_defconfig index 06a42dc7..381c0eb7 100644 --- a/bsp/buildroot/configs/qemu_arm_vexpress_defconfig +++ b/bsp/buildroot/configs/qemu_arm_vexpress_defconfig @@ -13,14 +13,13 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_DEFCONFIG="vexpress" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9" diff --git a/bsp/buildroot/configs/qemu_m68k_mcf5208_defconfig b/bsp/buildroot/configs/qemu_m68k_mcf5208_defconfig new file mode 100644 index 00000000..659ae3d8 --- /dev/null +++ b/bsp/buildroot/configs/qemu_m68k_mcf5208_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_m68k=y +BR2_m68k_cf5208=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set + +BR2_GLOBAL_PATCH_DIR="board/qemu/m68k-mcf5208/patches" + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-mcf5208/linux-4.7.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# use minimal busybox with hush and networking tools +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" diff --git a/bsp/buildroot/configs/qemu_m68k_q800_defconfig b/bsp/buildroot/configs/qemu_m68k_q800_defconfig new file mode 100644 index 00000000..6ebd6fae --- /dev/null +++ b/bsp/buildroot/configs/qemu_m68k_q800_defconfig @@ -0,0 +1,25 @@ +# Architecture +BR2_m68k=y +BR2_m68k_68040=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-q800/linux-4.7.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" diff --git a/bsp/buildroot/configs/qemu_microblazebe_mmu_defconfig b/bsp/buildroot/configs/qemu_microblazebe_mmu_defconfig index 658e0d19..ecff6c3b 100644 --- a/bsp/buildroot/configs/qemu_microblazebe_mmu_defconfig +++ b/bsp/buildroot/configs/qemu_microblazebe_mmu_defconfig @@ -10,14 +10,14 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-4.7.config" BR2_LINUX_KERNEL_LINUX_BIN=y BR2_LINUX_KERNEL_PATCH="board/qemu/microblazebe-mmu/xilinx-xemaclite.patch" diff --git a/bsp/buildroot/configs/qemu_microblazeel_mmu_defconfig b/bsp/buildroot/configs/qemu_microblazeel_mmu_defconfig index a3a35da7..67534b31 100644 --- a/bsp/buildroot/configs/qemu_microblazeel_mmu_defconfig +++ b/bsp/buildroot/configs/qemu_microblazeel_mmu_defconfig @@ -10,14 +10,14 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-4.7.config" BR2_LINUX_KERNEL_LINUX_BIN=y BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/xilinx-xemaclite.patch" diff --git a/bsp/buildroot/configs/qemu_mips_malta_defconfig b/bsp/buildroot/configs/qemu_mips32r2_malta_defconfig similarity index 62% rename from bsp/buildroot/configs/qemu_mips_malta_defconfig rename to bsp/buildroot/configs/qemu_mips32r2_malta_defconfig index 66766603..7aa8fc08 100644 --- a/bsp/buildroot/configs/qemu_mips_malta_defconfig +++ b/bsp/buildroot/configs/qemu_mips32r2_malta_defconfig @@ -9,15 +9,15 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.3 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips-malta/linux-4.3.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r2-malta/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/bsp/buildroot/configs/qemu_mipsel_malta_defconfig b/bsp/buildroot/configs/qemu_mips32r2el_malta_defconfig similarity index 62% rename from bsp/buildroot/configs/qemu_mipsel_malta_defconfig rename to bsp/buildroot/configs/qemu_mips32r2el_malta_defconfig index 36ad158d..6c6b3cd4 100644 --- a/bsp/buildroot/configs/qemu_mipsel_malta_defconfig +++ b/bsp/buildroot/configs/qemu_mips32r2el_malta_defconfig @@ -9,15 +9,15 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.3 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mipsel-malta/linux-4.3.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r2el-malta/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/bsp/buildroot/configs/qemu_mips32r6_malta_defconfig b/bsp/buildroot/configs/qemu_mips32r6_malta_defconfig new file mode 100644 index 00000000..bddde486 --- /dev/null +++ b/bsp/buildroot/configs/qemu_mips32r6_malta_defconfig @@ -0,0 +1,29 @@ +# Architecture +BR2_mips=y +BR2_mips_32r6=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r6-malta/linux-4.7.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Compiler +# linux >= 4.4 uses -mcompact-branches which is only available since gcc-6 +BR2_GCC_VERSION_6_X=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" diff --git a/bsp/buildroot/configs/qemu_mips32r6el_malta_defconfig b/bsp/buildroot/configs/qemu_mips32r6el_malta_defconfig new file mode 100644 index 00000000..f0d64ffc --- /dev/null +++ b/bsp/buildroot/configs/qemu_mips32r6el_malta_defconfig @@ -0,0 +1,29 @@ +# Architecture +BR2_mipsel=y +BR2_mips_32r6=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r6el-malta/linux-4.7.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Compiler +# linux >= 4.4 uses -mcompact-branches which is only available since GCC 6.x +BR2_GCC_VERSION_6_X=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" diff --git a/bsp/buildroot/configs/qemu_mips64_malta_defconfig b/bsp/buildroot/configs/qemu_mips64_malta_defconfig index 5ce3fe7d..211bf01e 100644 --- a/bsp/buildroot/configs/qemu_mips64_malta_defconfig +++ b/bsp/buildroot/configs/qemu_mips64_malta_defconfig @@ -9,15 +9,15 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/bsp/buildroot/configs/qemu_mips64el_malta_defconfig b/bsp/buildroot/configs/qemu_mips64el_malta_defconfig index ed867e70..b80b3eb9 100644 --- a/bsp/buildroot/configs/qemu_mips64el_malta_defconfig +++ b/bsp/buildroot/configs/qemu_mips64el_malta_defconfig @@ -9,15 +9,15 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64el-malta/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64el-malta/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/bsp/buildroot/configs/qemu_mips64r6_malta_defconfig b/bsp/buildroot/configs/qemu_mips64r6_malta_defconfig new file mode 100644 index 00000000..43e141d6 --- /dev/null +++ b/bsp/buildroot/configs/qemu_mips64r6_malta_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_mips64=y +BR2_mips_64r6=y +BR2_MIPS_NABI64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64r6-malta/linux-4.7.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Compiler +# linux >= 4.4 uses -mcompact-branches which is only available since gcc-6 +BR2_GCC_VERSION_6_X=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" diff --git a/bsp/buildroot/configs/qemu_mips64r6el_malta_defconfig b/bsp/buildroot/configs/qemu_mips64r6el_malta_defconfig new file mode 100644 index 00000000..c3acc1ca --- /dev/null +++ b/bsp/buildroot/configs/qemu_mips64r6el_malta_defconfig @@ -0,0 +1,30 @@ +# Architecture +BR2_mips64el=y +BR2_mips_64r6=y +BR2_MIPS_NABI64=y + +# System +BR2_SYSTEM_DHCP="eth0" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64r6el-malta/linux-4.7.config" +BR2_LINUX_KERNEL_VMLINUX=y + +# Compiler +# linux >= 4.4 uses -mcompact-branches which is only available since gcc-6 +BR2_GCC_VERSION_6_X=y + +# Serial port config +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" diff --git a/bsp/buildroot/configs/qemu_ppc64_pseries_defconfig b/bsp/buildroot/configs/qemu_ppc64_pseries_defconfig index 041298ca..5c183573 100644 --- a/bsp/buildroot/configs/qemu_ppc64_pseries_defconfig +++ b/bsp/buildroot/configs/qemu_ppc64_pseries_defconfig @@ -10,12 +10,12 @@ BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_DEFCONFIG="pseries" BR2_LINUX_KERNEL_VMLINUX=y diff --git a/bsp/buildroot/configs/qemu_ppc_g3beige_defconfig b/bsp/buildroot/configs/qemu_ppc_g3beige_defconfig index 86beb43c..ab3276d7 100644 --- a/bsp/buildroot/configs/qemu_ppc_g3beige_defconfig +++ b/bsp/buildroot/configs/qemu_ppc_g3beige_defconfig @@ -9,15 +9,15 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-g3beige/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-g3beige/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/bsp/buildroot/configs/qemu_ppc_mpc8544ds_defconfig b/bsp/buildroot/configs/qemu_ppc_mpc8544ds_defconfig index 2fe67757..a77936f3 100644 --- a/bsp/buildroot/configs/qemu_ppc_mpc8544ds_defconfig +++ b/bsp/buildroot/configs/qemu_ppc_mpc8544ds_defconfig @@ -9,15 +9,15 @@ BR2_SYSTEM_DHCP="eth0" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-mpc8544ds/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-mpc8544ds/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y # Serial port config diff --git a/bsp/buildroot/configs/qemu_ppc_virtex_ml507_defconfig b/bsp/buildroot/configs/qemu_ppc_virtex_ml507_defconfig index 0154ee89..d2581cbd 100644 --- a/bsp/buildroot/configs/qemu_ppc_virtex_ml507_defconfig +++ b/bsp/buildroot/configs/qemu_ppc_virtex_ml507_defconfig @@ -6,8 +6,8 @@ BR2_powerpc_440=y # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Use soft float BR2_SOFT_FLOAT=y @@ -15,9 +15,9 @@ BR2_SOFT_FLOAT=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-virtex-ml507/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-virtex-ml507/linux-4.7.config" BR2_LINUX_KERNEL_VMLINUX=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="virtex440-ml507" diff --git a/bsp/buildroot/configs/qemu_sh4_r2d_defconfig b/bsp/buildroot/configs/qemu_sh4_r2d_defconfig index d8edf49b..ce387c27 100644 --- a/bsp/buildroot/configs/qemu_sh4_r2d_defconfig +++ b/bsp/buildroot/configs/qemu_sh4_r2d_defconfig @@ -10,13 +10,13 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttySC1" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux-4.7.config" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/qemu_sh4eb_r2d_defconfig b/bsp/buildroot/configs/qemu_sh4eb_r2d_defconfig index cb27a73d..246e39e3 100644 --- a/bsp/buildroot/configs/qemu_sh4eb_r2d_defconfig +++ b/bsp/buildroot/configs/qemu_sh4eb_r2d_defconfig @@ -9,13 +9,13 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttySC1" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4eb-r2d/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4eb-r2d/linux-4.7.config" BR2_LINUX_KERNEL_ZIMAGE=y diff --git a/bsp/buildroot/configs/qemu_sparc64_sun4u_defconfig b/bsp/buildroot/configs/qemu_sparc64_sun4u_defconfig index fd2cb6df..288945b3 100644 --- a/bsp/buildroot/configs/qemu_sparc64_sun4u_defconfig +++ b/bsp/buildroot/configs/qemu_sparc64_sun4u_defconfig @@ -9,12 +9,12 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc64-sun4u/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc64-sun4u/linux-4.7.config" diff --git a/bsp/buildroot/configs/qemu_sparc_ss10_defconfig b/bsp/buildroot/configs/qemu_sparc_ss10_defconfig index b6ae77f5..42efa481 100644 --- a/bsp/buildroot/configs/qemu_sparc_ss10_defconfig +++ b/bsp/buildroot/configs/qemu_sparc_ss10_defconfig @@ -9,13 +9,12 @@ BR2_SYSTEM_DHCP="eth0" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Linux kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux-4.4.config" -BR2_LINUX_KERNEL_ZIMAGE=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux-4.7.config" diff --git a/bsp/buildroot/configs/qemu_x86_64_defconfig b/bsp/buildroot/configs/qemu_x86_64_defconfig index 2e4f7f02..40840bee 100644 --- a/bsp/buildroot/configs/qemu_x86_64_defconfig +++ b/bsp/buildroot/configs/qemu_x86_64_defconfig @@ -9,12 +9,12 @@ BR2_TARGET_GENERIC_GETTY_PORT="tty1" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux-4.7.config" diff --git a/bsp/buildroot/configs/qemu_x86_defconfig b/bsp/buildroot/configs/qemu_x86_defconfig index 0f6d4dd0..a17ced44 100644 --- a/bsp/buildroot/configs/qemu_x86_defconfig +++ b/bsp/buildroot/configs/qemu_x86_defconfig @@ -10,12 +10,12 @@ BR2_TARGET_GENERIC_GETTY_PORT="tty1" BR2_TARGET_ROOTFS_EXT2=y # BR2_TARGET_ROOTFS_TAR is not set -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux-4.7.config" diff --git a/bsp/buildroot/configs/qemu_xtensa_lx60_defconfig b/bsp/buildroot/configs/qemu_xtensa_lx60_defconfig index 3774b5ff..cf60100b 100644 --- a/bsp/buildroot/configs/qemu_xtensa_lx60_defconfig +++ b/bsp/buildroot/configs/qemu_xtensa_lx60_defconfig @@ -1,7 +1,7 @@ # Architecture BR2_xtensa=y BR2_XTENSA_CUSTOM=y -BR2_XTENSA_CUSTOM_NAME="dc232b" +BR2_XTENSA_CUSTOM_NAME="dc233c" BR2_XTENSA_CORE_NAME="lx60" BR2_XTENSA_OVERLAY_DIR="board/qemu/xtensa-lx60" @@ -16,15 +16,15 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.1" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-4.4.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-4.7.config" BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y BR2_LINUX_KERNEL_IMAGE_NAME="Image.elf" BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="zImage" diff --git a/bsp/buildroot/configs/qemu_xtensa_lx60_nommu_defconfig b/bsp/buildroot/configs/qemu_xtensa_lx60_nommu_defconfig new file mode 100644 index 00000000..ab9de6aa --- /dev/null +++ b/bsp/buildroot/configs/qemu_xtensa_lx60_nommu_defconfig @@ -0,0 +1,34 @@ +# Architecture +BR2_xtensa=y +BR2_XTENSA_CUSTOM=y +BR2_XTENSA_CUSTOM_NAME="dc233c" +BR2_XTENSA_CORE_NAME="lx60" +BR2_XTENSA_OVERLAY_DIR="board/qemu/xtensa-lx60" + +# Toolchain +BR2_PACKAGE_HOST_ELF2FLT=y +# BR2_USE_MMU is not set + +# Patches +BR2_GLOBAL_PATCH_DIR="board/qemu/xtensa-lx60" + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" + +# Filesystem +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_ROOTFS_INITRAMFS=y + +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-4.7-nommu.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_NAME="Image.elf" +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="zImage" diff --git a/bsp/buildroot/configs/qmx6_defconfig b/bsp/buildroot/configs/qmx6_defconfig index 49c39bc6..cb80cad4 100644 --- a/bsp/buildroot/configs/qmx6_defconfig +++ b/bsp/buildroot/configs/qmx6_defconfig @@ -12,6 +12,7 @@ BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://git.congatec.com/arm/imx6_kernel_3.14. # Last version of branch cgt_qmx6_3.14.28_1.0.0 BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="105820d6bd251deb49c3dd3f71fa0d76adce97c7" BR2_LINUX_KERNEL_DEFCONFIG="qmx6" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-qmx6" diff --git a/bsp/buildroot/configs/raspberrypi0_defconfig b/bsp/buildroot/configs/raspberrypi0_defconfig new file mode 100644 index 00000000..87b1108e --- /dev/null +++ b/bsp/buildroot/configs/raspberrypi0_defconfig @@ -0,0 +1,34 @@ +BR2_arm=y +BR2_arm1176jzf_s=y +BR2_ARM_EABIHF=y + +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="26f3b72a9c049be10e6af196252283e1f6ab9d1f" +BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" + +# Build the DTBs for A/B from the kernel sources: the zero is the same +# as the A+ model, just in a different form-factor +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b-plus" + +BR2_PACKAGE_RPI_FIRMWARE=y +# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi0/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi0/post-image.sh" diff --git a/bsp/buildroot/configs/raspberrypi2_defconfig b/bsp/buildroot/configs/raspberrypi2_defconfig index ce41ee31..e45a970e 100644 --- a/bsp/buildroot/configs/raspberrypi2_defconfig +++ b/bsp/buildroot/configs/raspberrypi2_defconfig @@ -5,17 +5,16 @@ BR2_ARM_FPU_NEON_VFPV4=y BR2_TOOLCHAIN_BUILDROOT_CXX=y -BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_SYSTEM_DHCP="eth0" -# Linux headers same as kernel, a 4.1 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d33d0293e245badc4ca6ede3984d8bb8ea63cb1a" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="26f3b72a9c049be10e6af196252283e1f6ab9d1f" BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" -BR2_LINUX_KERNEL_ZIMAGE=y # Build the DTB from the kernel sources BR2_LINUX_KERNEL_DTS_SUPPORT=y @@ -33,4 +32,5 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y # BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi2/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi2/post-image.sh" diff --git a/bsp/buildroot/configs/raspberrypi3_defconfig b/bsp/buildroot/configs/raspberrypi3_defconfig new file mode 100644 index 00000000..4eb5333f --- /dev/null +++ b/bsp/buildroot/configs/raspberrypi3_defconfig @@ -0,0 +1,36 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABIHF=y +BR2_ARM_FPU_NEON_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="26f3b72a9c049be10e6af196252283e1f6ab9d1f" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b" + +BR2_PACKAGE_RPI_FIRMWARE=y +# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi3/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi3/post-image.sh" diff --git a/bsp/buildroot/configs/raspberrypi_defconfig b/bsp/buildroot/configs/raspberrypi_defconfig index 3b3cc504..422426b6 100644 --- a/bsp/buildroot/configs/raspberrypi_defconfig +++ b/bsp/buildroot/configs/raspberrypi_defconfig @@ -2,19 +2,18 @@ BR2_arm=y BR2_arm1176jzf_s=y BR2_ARM_EABIHF=y -BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_SYSTEM_DHCP="eth0" -# Linux headers same as kernel, a 4.1 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d33d0293e245badc4ca6ede3984d8bb8ea63cb1a" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="26f3b72a9c049be10e6af196252283e1f6ab9d1f" BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" -BR2_LINUX_KERNEL_ZIMAGE=y # Build the DTBs for A/B, A+/B+ and compute module from the kernel sources BR2_LINUX_KERNEL_DTS_SUPPORT=y @@ -32,4 +31,5 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y # BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi/post-build.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi/post-image.sh" diff --git a/bsp/buildroot/configs/riotboard_defconfig b/bsp/buildroot/configs/riotboard_defconfig index 73677c7c..d486e1e2 100644 --- a/bsp/buildroot/configs/riotboard_defconfig +++ b/bsp/buildroot/configs/riotboard_defconfig @@ -27,6 +27,7 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2.6" BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-riotboard" diff --git a/bsp/buildroot/configs/roseapplepi_defconfig b/bsp/buildroot/configs/roseapplepi_defconfig new file mode 100644 index 00000000..6627ff47 --- /dev/null +++ b/bsp/buildroot/configs/roseapplepi_defconfig @@ -0,0 +1,40 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y + +BR2_GLOBAL_PATCH_DIR="board/roseapplepi/patches" +# Linux headers same as kernel, a 3.10 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/roseapplepi/post-image.sh" + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/xapp-le/kernel.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b" +BR2_LINUX_KERNEL_DEFCONFIG="actduino_bubble_gum_linux" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="actduino_bubble_gum_sdboot_linux" + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set + +# Bootloaders +BR2_TARGET_S500_BOOTLOADER=y +BR2_TARGET_S500_BOOTLOADER_BOARD="linux/bubble_gum_sd" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/xapp-le/u-boot.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="a035d2673a90143a1a74557503b2e137b1447ae6" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="actduino_bubble_gum_v10" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/s6lx9_microboard_defconfig b/bsp/buildroot/configs/s6lx9_microboard_defconfig index 06a3ed3c..f77c80ba 100644 --- a/bsp/buildroot/configs/s6lx9_microboard_defconfig +++ b/bsp/buildroot/configs/s6lx9_microboard_defconfig @@ -6,6 +6,8 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ROOTFS_INITRAMFS=y BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.7" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/avnet/s6lx9_microboard/lx9_mmu_defconfig" BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y diff --git a/bsp/buildroot/configs/sheevaplug_defconfig b/bsp/buildroot/configs/sheevaplug_defconfig index b10e48e0..9d624442 100644 --- a/bsp/buildroot/configs/sheevaplug_defconfig +++ b/bsp/buildroot/configs/sheevaplug_defconfig @@ -5,27 +5,28 @@ BR2_arm926t=y # system BR2_TARGET_GENERIC_GETTY=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_SYSTEM_DHCP="eth0" # filesystem BR2_TARGET_ROOTFS_JFFS2=y BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y -# Linux headers same as kernel, a 4.4 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +# Linux headers same as kernel, a 4.6 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y # bootloader BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sheevaplug" BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05" BR2_TARGET_UBOOT_FORMAT_KWB=y # BR2_TARGET_UBOOT_NETWORK is not set # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6" BR2_LINUX_KERNEL_DEFCONFIG="mvebu_v5" BR2_LINUX_KERNEL_APPENDED_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" diff --git a/bsp/buildroot/configs/snps_axs101_defconfig b/bsp/buildroot/configs/snps_axs101_defconfig index 08def3e3..f272853c 100644 --- a/bsp/buildroot/configs/snps_axs101_defconfig +++ b/bsp/buildroot/configs/snps_axs101_defconfig @@ -8,18 +8,19 @@ BR2_TARGET_ROOTFS_INITRAMFS=y BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_OVERLAY="board/synopsys/axs10x/fs-overlay" -# Linux headers same as kernel, a 4.2 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2.4" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_DEFCONFIG="axs101" # Bootloader BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.07" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="axs101" +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/bsp/buildroot/configs/snps_axs103_defconfig b/bsp/buildroot/configs/snps_axs103_defconfig index d9975083..75596c90 100644 --- a/bsp/buildroot/configs/snps_axs103_defconfig +++ b/bsp/buildroot/configs/snps_axs103_defconfig @@ -9,18 +9,19 @@ BR2_TARGET_ROOTFS_INITRAMFS=y BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_OVERLAY="board/synopsys/axs10x/fs-overlay" -# Linux headers same as kernel, a 4.2 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2.4" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_DEFCONFIG="axs103_smp" # Bootloader BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.07" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="axs103" +BR2_TARGET_UBOOT_NEEDS_DTC=y diff --git a/bsp/buildroot/configs/snps_hs38_smp_vdk_defconfig b/bsp/buildroot/configs/snps_hs38_smp_vdk_defconfig index 9236a13e..32922f81 100644 --- a/bsp/buildroot/configs/snps_hs38_smp_vdk_defconfig +++ b/bsp/buildroot/configs/snps_hs38_smp_vdk_defconfig @@ -8,12 +8,12 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to the HS38 VDK Software Development Platform" BR2_ROOTFS_OVERLAY="board/synopsys/axs10x/fs-overlay" BR2_TARGET_ROOTFS_EXT2=y -# Linux headers same as kernel, a 4.2 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y +# Linux headers same as kernel, a 4.7 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.7" BR2_LINUX_KERNEL_DEFCONFIG="vdk_hs38_smp" BR2_LINUX_KERNEL_VMLINUX=y diff --git a/bsp/buildroot/configs/snps_hs38_vdk_defconfig b/bsp/buildroot/configs/snps_hs38_vdk_defconfig deleted file mode 100644 index de91df01..00000000 --- a/bsp/buildroot/configs/snps_hs38_vdk_defconfig +++ /dev/null @@ -1,19 +0,0 @@ -# Architecture -BR2_arcle=y -BR2_archs38=y - -# System -BR2_TARGET_GENERIC_HOSTNAME="hs38_vdk" -BR2_TARGET_GENERIC_ISSUE="Welcome to the HS38 VDK Software Development Platform" -BR2_ROOTFS_OVERLAY="board/synopsys/axs10x/fs-overlay" -BR2_TARGET_ROOTFS_EXT2=y - -# Linux headers same as kernel, a 4.2 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_2=y - -# Kernel -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.2" -BR2_LINUX_KERNEL_DEFCONFIG="vdk_hs38" -BR2_LINUX_KERNEL_VMLINUX=y diff --git a/bsp/buildroot/configs/stm32f429_disco_defconfig b/bsp/buildroot/configs/stm32f429_disco_defconfig new file mode 100644 index 00000000..37997948 --- /dev/null +++ b/bsp/buildroot/configs/stm32f429_disco_defconfig @@ -0,0 +1,18 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f429-disco/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5" +BR2_LINUX_KERNEL_DEFCONFIG="stm32" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f429-disco" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_PACKAGE_HOST_OPENOCD=y diff --git a/bsp/buildroot/configs/stm32f469_disco_defconfig b/bsp/buildroot/configs/stm32f469_disco_defconfig new file mode 100644 index 00000000..327134d1 --- /dev/null +++ b/bsp/buildroot/configs/stm32f469_disco_defconfig @@ -0,0 +1,19 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5" +BR2_LINUX_KERNEL_DEFCONFIG="stm32" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/dram_0x00000000.config" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_PACKAGE_HOST_OPENOCD=y diff --git a/bsp/buildroot/configs/telit_evk_pro3_defconfig b/bsp/buildroot/configs/telit_evk_pro3_defconfig index 195f36a6..946c2f04 100644 --- a/bsp/buildroot/configs/telit_evk_pro3_defconfig +++ b/bsp/buildroot/configs/telit_evk_pro3_defconfig @@ -5,9 +5,6 @@ BR2_arm926t=y # Linux headers same as kernel, a 3.9 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9=y -# System -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y - # Watchdog is armed by the first stage bootloader BR2_PACKAGE_BUSYBOX_WATCHDOG=y diff --git a/bsp/buildroot/configs/toradex_apalis_imx6_defconfig b/bsp/buildroot/configs/toradex_apalis_imx6_defconfig new file mode 100644 index 00000000..74d1fb3b --- /dev/null +++ b/bsp/buildroot/configs/toradex_apalis_imx6_defconfig @@ -0,0 +1,24 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/toradex/apalis-imx6/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.toradex.com/linux-toradex.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="8f237ebe42f2cb911245369276a6b3043c2815f2" +BR2_LINUX_KERNEL_DEFCONFIG="apalis_imx6" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-apalis-eval imx6q-apalis-ixora imx6q-apalis_v1_0-eval imx6q-apalis_v1_0-ixora" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.toradex.com/u-boot-toradex.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="1ef4a29e8cea0239411dde64f9617ad76248fd02" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="apalis_imx6" +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.imx" +BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/bsp/buildroot/configs/ts4800_defconfig b/bsp/buildroot/configs/ts4800_defconfig new file mode 100644 index 00000000..0999ebca --- /dev/null +++ b/bsp/buildroot/configs/ts4800_defconfig @@ -0,0 +1,22 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/technologic/ts4800/post-image.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6.3" +BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/technologic/ts4800/linux.fragment" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx51-ts4800" +BR2_PACKAGE_BUSYBOX_WATCHDOG=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_TS4800_MBRBOOT=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="ts4800" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/ts5x00_defconfig b/bsp/buildroot/configs/ts5x00_defconfig index 655704f6..53108866 100644 --- a/bsp/buildroot/configs/ts5x00_defconfig +++ b/bsp/buildroot/configs/ts5x00_defconfig @@ -7,14 +7,14 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_17=y # system BR2_TARGET_GENERIC_GETTY_PORT="ttyS1" -BR2_ROOTFS_OVERLAY="board/ts/ts5x00/fs-overlay" +BR2_ROOTFS_OVERLAY="board/technologic/ts5x00/fs-overlay" # kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.17.8" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/ts/ts5x00/linux-3.17.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/technologic/ts5x00/linux-3.17.config" BR2_LINUX_KERNEL_INSTALL_TARGET=y # rootfs diff --git a/bsp/buildroot/configs/udoo_quad_defconfig b/bsp/buildroot/configs/udoo_quad_defconfig index 6cb05be3..53444468 100644 --- a/bsp/buildroot/configs/udoo_quad_defconfig +++ b/bsp/buildroot/configs/udoo_quad_defconfig @@ -16,6 +16,7 @@ BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/UDOOboard/Kernel_Unico" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="8a6eb060a0d968048f88d5a94510fc6db2c37939" BR2_LINUX_KERNEL_PATCH="https://github.com/torvalds/linux/commit/455bd4c430b0c0a361f38e8658a0d6cb469942b5.patch https://github.com/torvalds/linux/commit/418df63adac56841ef6b0f1fcf435bc64d4ed177.patch" BR2_LINUX_KERNEL_DEFCONFIG="UDOO" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_INSTALL_TARGET=y diff --git a/bsp/buildroot/configs/via_imx6_vab820_defconfig b/bsp/buildroot/configs/via_imx6_vab820_defconfig index d2f62c54..fa646f07 100644 --- a/bsp/buildroot/configs/via_imx6_vab820_defconfig +++ b/bsp/buildroot/configs/via_imx6_vab820_defconfig @@ -9,9 +9,10 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/viaembedded/vab820-kernel-bsp.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/viaembedded/vab820-kernel-bsp.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="via_3.10.17_2.0.6" BR2_LINUX_KERNEL_DEFCONFIG="via_vab820" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x10008000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-vab820" @@ -20,12 +21,14 @@ BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-vab820" BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="mx6qvab820" BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/viaembedded/vab820-uboot-bsp.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/viaembedded/vab820-uboot-bsp.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="via_3.10.17_2.0.6" BR2_TARGET_UBOOT_FORMAT_IMX=y # Filesystem BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y +BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y BR2_ROOTFS_POST_IMAGE_SCRIPT="board/via/imx6_vab820/post-image.sh" diff --git a/bsp/buildroot/configs/wandboard_defconfig b/bsp/buildroot/configs/wandboard_defconfig index e7ec9b35..cd06f40b 100644 --- a/bsp/buildroot/configs/wandboard_defconfig +++ b/bsp/buildroot/configs/wandboard_defconfig @@ -11,11 +11,9 @@ BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_USE_DEFCONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="wandboard" -BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.denx.de/u-boot.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="33711bdd4a4dce942fb5ae85a68899a8357bdd94" -BR2_TARGET_UBOOT_FORMAT_CUSTOM=y -BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.img" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.07" +BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y BR2_TARGET_UBOOT_SPL_NAME="SPL" BR2_TARGET_UBOOT_ENVIMAGE=y @@ -23,10 +21,9 @@ BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/wandboard/uboot-env.txt" BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x2000" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/wandboard-org/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/wandboard-org/linux" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="e2213f9a98dd7413ee5a9ca40cf60e8cb8292f4a" BR2_LINUX_KERNEL_DEFCONFIG="wandboard" -BR2_LINUX_KERNEL_ZIMAGE=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-wandboard imx6dl-wandboard" BR2_LINUX_KERNEL_INSTALL_TARGET=y diff --git a/bsp/buildroot/configs/warpboard_defconfig b/bsp/buildroot/configs/warpboard_defconfig index 4cfeb28d..19425b36 100644 --- a/bsp/buildroot/configs/warpboard_defconfig +++ b/bsp/buildroot/configs/warpboard_defconfig @@ -2,11 +2,8 @@ BR2_arm=y BR2_cortex_a9=y -# patches -BR2_GLOBAL_PATCH_DIR="board/freescale/warpboard/patches/" - -# Linux headers same as kernel, a 4.0 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0=y +# Linux headers same as kernel, a 4.4 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y # system BR2_TARGET_GENERIC_HOSTNAME="warpboard" @@ -17,10 +14,10 @@ BR2_ROOTFS_OVERLAY="board/freescale/warpboard/rootfs_overlay" # kernel BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="http://github.com/Freescale/linux-fslc/tarball/38ec11d/linux-fslc-38ec11d.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.15" BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" -BR2_LINUX_KERNEL_ZIMAGE=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/freescale/warpboard/linux.fragment" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sl-warp" @@ -28,13 +25,28 @@ BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sl-warp" BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX=y +# wireless packages +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y + # uboot BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BOARDNAME="warp" BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.07-rc2" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.07" BR2_TARGET_UBOOT_FORMAT_IMX=y # host utility BR2_PACKAGE_HOST_DFU_UTIL=y BR2_PACKAGE_HOST_IMX_USB_LOADER=y + +# Filesystem +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/warpboard/post-image.sh" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y + +# required tools to create the eMMC image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y diff --git a/bsp/buildroot/configs/zedboard_defconfig b/bsp/buildroot/configs/zedboard_defconfig deleted file mode 100644 index 1330be40..00000000 --- a/bsp/buildroot/configs/zedboard_defconfig +++ /dev/null @@ -1,26 +0,0 @@ -BR2_arm=y -BR2_cortex_a9=y -BR2_ARM_ENABLE_NEON=y -# Linux headers same as kernel, a 3.18 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y -BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0" -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/Xilinx/linux-xlnx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2015.1" -BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" -BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" -BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zed" -BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_GZIP=y -BR2_TARGET_ROOTFS_CPIO_UIMAGE=y -BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BOARDNAME="zynq_zed" -BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.07" -BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/avnet/zedboard/uboot" -BR2_TARGET_UBOOT_NEEDS_DTC=y -BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y -BR2_TARGET_UBOOT_SPL=y -BR2_TARGET_UBOOT_ZYNQ_IMAGE=y diff --git a/bsp/buildroot/configs/zynq_microzed_defconfig b/bsp/buildroot/configs/zynq_microzed_defconfig new file mode 100644 index 00000000..5efc0d4f --- /dev/null +++ b/bsp/buildroot/configs/zynq_microzed_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/Xilinx/linux-xlnx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2016.2" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zed" +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_CPIO_UIMAGE=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/Xilinx/u-boot-xlnx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2016.2" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="zynq_microzed" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" diff --git a/bsp/buildroot/configs/xilinx_zc706_defconfig b/bsp/buildroot/configs/zynq_zc706_defconfig similarity index 50% rename from bsp/buildroot/configs/xilinx_zc706_defconfig rename to bsp/buildroot/configs/zynq_zc706_defconfig index d1a46ca1..578f042b 100644 --- a/bsp/buildroot/configs/xilinx_zc706_defconfig +++ b/bsp/buildroot/configs/zynq_zc706_defconfig @@ -1,15 +1,15 @@ BR2_arm=y BR2_cortex_a9=y -BR2_ARM_ENABLE_VFP=y BR2_ARM_ENABLE_NEON=y -# Linux headers same as kernel, a 3.14 series -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_14=y +BR2_ARM_ENABLE_VFP=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/Xilinx/linux-xlnx.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2014.2.01" +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/Xilinx/linux-xlnx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2016.2" BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zc706" @@ -17,10 +17,12 @@ BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_GZIP=y BR2_TARGET_ROOTFS_CPIO_UIMAGE=y BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BOARDNAME="zynq_zc70x" +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Xilinx/u-boot-xlnx.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2014.1" +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/Xilinx/u-boot-xlnx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2016.2" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="zynq_zc706" +BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_FORMAT_IMG=y BR2_TARGET_UBOOT_SPL=y -BR2_TARGET_UBOOT_SPL_NAME="boot.bin" +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" diff --git a/bsp/buildroot/configs/zynq_zed_defconfig b/bsp/buildroot/configs/zynq_zed_defconfig new file mode 100644 index 00000000..7ce3365e --- /dev/null +++ b/bsp/buildroot/configs/zynq_zed_defconfig @@ -0,0 +1,27 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyPS0" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/Xilinx/linux-xlnx.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2016.2" +BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynq" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="zynq-zed" +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +BR2_TARGET_ROOTFS_CPIO_UIMAGE=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_GIT=y +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/Xilinx/u-boot-xlnx.git" +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="xilinx-v2016.2" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="zynq_zed" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin" diff --git a/bsp/buildroot/docs/manual/adding-packages-directory.txt b/bsp/buildroot/docs/manual/adding-packages-directory.txt index 5537032d..dc66f009 100644 --- a/bsp/buildroot/docs/manual/adding-packages-directory.txt +++ b/bsp/buildroot/docs/manual/adding-packages-directory.txt @@ -311,13 +311,17 @@ use in the comment. ** Dependency symbol: +BR2_TOOLCHAIN_USES_GLIBC+, +BR2_TOOLCHAIN_USES_MUSL+, +BR2_TOOLCHAIN_USES_UCLIBC+ ** Comment string: for the C library, a slightly different comment text - is used: +foo needs an (e)glibc toolchain+, or `foo needs an (e)glibc + is used: +foo needs a glibc toolchain+, or `foo needs a glibc toolchain w/ C++` * C++ support ** Dependency symbol: +BR2_INSTALL_LIBSTDCPP+ ** Comment string: `C++` +* Fortran support +** Dependency symbol: +BR2_TOOLCHAIN_HAS_FORTRAN+ +** Comment string: `fortran` + * thread support ** Dependency symbol: +BR2_TOOLCHAIN_HAS_THREADS+ ** Comment string: +threads+ (unless +BR2_TOOLCHAIN_HAS_THREADS_NPTL+ diff --git a/bsp/buildroot/docs/manual/adding-packages-generic.txt b/bsp/buildroot/docs/manual/adding-packages-generic.txt index b7817e30..ef895ec9 100644 --- a/bsp/buildroot/docs/manual/adding-packages-generic.txt +++ b/bsp/buildroot/docs/manual/adding-packages-generic.txt @@ -29,7 +29,7 @@ system is based on hand-written Makefiles or shell scripts. 14: LIBFOO_DEPENDENCIES = host-libaaa libbbb 15: 16: define LIBFOO_BUILD_CMDS -17: $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all +17: $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all 18: endef 19: 20: define LIBFOO_INSTALL_STAGING_CMDS @@ -310,6 +310,12 @@ information is (assuming the package name is +libfoo+) : the package source code. Buildroot copies the contents of the source directory into the package's build directory. +* +LIBFOO_GIT_SUBMODULES+, when +LIBFOO_SITE_METHOD=git+, will create + an archive with the git submodules in the repository. + Note that we try not to use such git submodules when they contain + bundled libraries, in which case we prefer to use those libraries + from their own package. + * +LIBFOO_STRIP_COMPONENTS+ is the number of leading components (directories) that tar must strip from file names on extraction. The tarball for most packages has one leading component named @@ -387,7 +393,16 @@ information is (assuming the package name is +libfoo+) : Otherwise, describe the license in a precise and concise way, avoiding ambiguous names such as +BSD+ which actually name a family of licenses. This variable is optional. If it is not defined, +unknown+ will appear in - the +license+ field of the manifest file for this package. + the +license+ field of the manifest file for this package. + + The expected format for this variable must comply with the following rules: + ** If different parts of the package are released under different + licenses, then +comma+ separate licenses (e.g. +`LIBFOO_LICENSE = + GPLv2+, LGPLv2.1+`+). If there is clear distinction between which + component is licensed under what license, then annotate the license + with that component, between parenthesis (e.g. +`LIBFOO_LICENSE = + GPLv2+ (programs), LGPLv2.1+ (libraries)`+). + ** If the package is dual licensed, then separate licenses with the + +or+ keyword (e.g. +`LIBFOO_LICENSE = AFLv2.1 or GPLv2+`+). * +LIBFOO_LICENSE_FILES+ is a space-separated list of files in the package tarball that contain the license(s) under which the package is released. @@ -488,6 +503,12 @@ different steps of the build process. systemd is selected as the init system in the configuration, only +LIBFOO_INSTALL_INIT_SYSTEMD+ will be run). +* +LIBFOO_HELP_CMDS+ lists the actions to print the package help, which + is included to the main +make help+ output. These commands can print + anything in any format. + This is seldom used, as packages rarely have custom rules. *Do not use + this variable*, unless you really know that you need to print help. + The preferred way to define these variables is: ---------------------- diff --git a/bsp/buildroot/docs/manual/adding-packages-hooks.txt b/bsp/buildroot/docs/manual/adding-packages-hooks.txt index 5b5bf6a8..d25092ac 100644 --- a/bsp/buildroot/docs/manual/adding-packages-hooks.txt +++ b/bsp/buildroot/docs/manual/adding-packages-hooks.txt @@ -77,3 +77,10 @@ others, use the following variables: * +$(SRCDIR)+: the path to the overridden source directory * +$(@D)+: the path to the build directory + +==== Target-finalize hook + +Packages may also register hooks in +LIBFOO_TARGET_FINALIZE_HOOKS+. +These hooks are run after all packages are built, but before the +filesystem images are generated. They are seldom used, and your +package probably do not need them. diff --git a/bsp/buildroot/docs/manual/adding-packages-python.txt b/bsp/buildroot/docs/manual/adding-packages-python.txt index 588dbf8a..94ac809f 100644 --- a/bsp/buildroot/docs/manual/adding-packages-python.txt +++ b/bsp/buildroot/docs/manual/adding-packages-python.txt @@ -160,3 +160,92 @@ possible to customize what is done in any particular step: +PYTHON_FOO_BUILD_CMDS+ variable, it will be used instead of the default Python one. However, using this method should be restricted to very specific cases. Do not use it in the general case. + +[[scanpypi]] + +==== Generating a +python-package+ from a PyPI repository + +If the Python package for which you would like to create a Buildroot +package is available on PyPI, you may want to use the +scanpypi+ tool +located in +support/scripts+ to automate the process. + +You can find the list of existing PyPI packages +https://pypi.python.org[here]. + ++scanpypi+ requires Python's +setuptools+ package to be installed on +your host. + +When at the root of your buildroot directory just do : + +----------------------- +./support/script/scanpypi foo bar -o package +----------------------- + +This will generate packages +python-foo+ and +python-bar+ in the package +folder if they exist on https://pypi.python.org. + +Find the +external python modules+ menu and insert your package inside. +Keep in mind that the items inside a menu should be in alphabetical order. + +Please keep in mind that you'll most likely have to manually check the +package for any mistakes as there are things that cannot be guessed by +the generator (e.g. dependencies on any of the python core modules +such as BR2_PACKAGE_PYTHON_ZLIB). Also, please take note that the +license and license files are guessed and must be checked. You also +need to manually add the package to the +package/Config.in+ file. + +If your Buildroot package is not in the official Buildroot tree but in +a +BR2_EXTERNAL+ tree, use the -o flag as follows: + +----------------------- +./support/script/scanpypi foo bar -o other_package_dir +----------------------- + +This will generate packages +python-foo+ and +python-bar+ in the ++other_package_directory+ instead of +package+. + +Option +-h+ will list the available options: + +----------------------- +./support/script/scanpypi -h +----------------------- + +[[python-package-cffi-backend]] + +==== +python-package+ CFFI backend + +C Foreign Function Interface for Python (CFFI) provides a convenient +and reliable way to call compiled C code from Python using interface +declarations written in C. Python packages relying on this backend can +be identified by the appearance of a +cffi+ dependency in the ++install_requires+ field of their +setup.py+ file. + +Such a package should: + + * add +python-cffi+ as a runtime dependency in order to install the +compiled C library wrapper on the target. This is achieved by adding ++select BR2_PACKAGE_PYTHON_CFFI+ to the package +Config.in+. + +------------------------ +config BR2_PACKAGE_PYTHON_FOO + bool "python-foo" + select BR2_PACKAGE_PYTHON_CFFI # runtime +------------------------ + + * add +host-python-cffi+ as a build-time dependency in order to +cross-compile the C wrapper. This is achieved by adding ++host-python-cffi+ to the +PYTHON_FOO_DEPENDENCIES+ variable. + +------------------------ +################################################################################ +# +# python-foo +# +################################################################################ + +... + +PYTHON_FOO_DEPENDENCIES = host-python-cffi + +$(eval $(python-package)) +------------------------ diff --git a/bsp/buildroot/docs/manual/configure.txt b/bsp/buildroot/docs/manual/configure.txt index 44f5d244..0cd9f826 100644 --- a/bsp/buildroot/docs/manual/configure.txt +++ b/bsp/buildroot/docs/manual/configure.txt @@ -81,9 +81,9 @@ by itself a cross-compilation toolchain, before building the userspace applications and libraries for your target embedded system. This backend supports several C libraries: -http://www.uclibc.org[uClibc], the +http://www.uclibc.org[uClibc], http://www.gnu.org/software/libc/libc.html[glibc] and -http://www.eglibc.org[eglibc]. +http://www.musl-libc.org[musl]. Once you have selected this backend, a number of options appear. The most important ones allow to: diff --git a/bsp/buildroot/docs/manual/customize-rootfs.txt b/bsp/buildroot/docs/manual/customize-rootfs.txt index 558bd724..44fc4606 100644 --- a/bsp/buildroot/docs/manual/customize-rootfs.txt +++ b/bsp/buildroot/docs/manual/customize-rootfs.txt @@ -61,7 +61,7 @@ In addition, you may also use these environment variables: stored - +BASE_DIR+: the base output directory -Below two more methods of customizing the target filesystem are +Below three more methods of customizing the target filesystem are described, but they are not recommended. Direct modification of the target filesystem:: @@ -104,4 +104,35 @@ This method is not recommended because it duplicates the entire skeleton, which prevents taking advantage of the fixes or improvements brought to the default skeleton in later Buildroot releases. +Post-fakeroot scripts (+BR2_ROOTFS_POST_FAKEROOT_SCRIPT+):: ++ +When aggregating the final images, some parts of the process requires + root rights: creating device nodes in `/dev`, setting permissions or + ownership to files and directories... To avoid requiring actual root + rights, Buildroot uses +fakeroot+ to simulate root rights. This is not + a complete substitute for actually being root, but is enough for what + Buildroot needs. ++ +Post-fakeroot scripts are shell scripts that are called at the 'end' of + the fakeroot phase, 'right before' the filesystem image generator is + called. As such, they are called in the fakeroot context. ++ +Post-fakeroot scripts can be useful in case you need to tweak the + filesystem to do modifications that are usually only available to the + root user. ++ +.Note: +It is recommended to use the existing mechanisms to set file permissions + or create entries in `/dev` (see xref:customize-device-permission[]) or + to create users (see xref:customize-users[]) ++ +.Note: +The difference between post-build scripts (above) and fakeroot scripts, + is that post-build scripts are not called in the fakeroot context. ++ +.Note; +Using `fakeroot` is not an absolute substitute for actually being root. + `fakeroot` only ever fakes the file access rights and types (regular, + block-or-char device...) and uid/gid; these are emulated in-memory. + include::customize-device-permission-tables.txt[] diff --git a/bsp/buildroot/docs/manual/known-issues.txt b/bsp/buildroot/docs/manual/known-issues.txt index 38ba941a..acfe4ff4 100644 --- a/bsp/buildroot/docs/manual/known-issues.txt +++ b/bsp/buildroot/docs/manual/known-issues.txt @@ -14,18 +14,18 @@ DO_XSI_MATH, UCLIBC_HAS_OBSOLETE_BSD_SIGNAL and UCLIBC_SV4_DEPRECATED are needed if one wants to build the +ltp-testsuite+ package with uClibc. You need to either use a glibc - or eglibc based toolchain, or enable the appropriate options in the - uClibc configuration. + based toolchain, or enable the appropriate options in the uClibc + configuration. * The +xfsprogs+ package does not build with the default uClibc configuration used by the Buildroot toolchain backend. You need to - either use a glibc or eglibc based toolchain, or enable the - appropriate options in the uClibc configuration. + either use a glibc based toolchain, or enable the appropriate + options in the uClibc configuration. * The +mrouted+ package does not build with the default uClibc configuration used by the Buildroot toolchain backend. You need to - either use a glibc or eglibc based toolchain, or enable the - appropriate options in the uClibc configuration. + either use a glibc based toolchain, or enable the appropriate + options in the uClibc configuration. * The +libffi+ package is not supported on the SuperH 2 and ARC architectures. diff --git a/bsp/buildroot/docs/manual/legal-notice.txt b/bsp/buildroot/docs/manual/legal-notice.txt index 0572daee..7c19bc30 100644 --- a/bsp/buildroot/docs/manual/legal-notice.txt +++ b/bsp/buildroot/docs/manual/legal-notice.txt @@ -41,9 +41,14 @@ There you will find: +host-sources/+ subdirectories for target and host packages respectively. The source code for packages that set +_REDISTRIBUTE = NO+ will not be saved. - Patches applied to some packages by Buildroot are distributed with the - Buildroot sources and are not duplicated in the +sources/+ and +host-sources/+ - subdirectories. + Patches that were applied are also saved, along with a file named +series+ + that lists the patches in the order they were applied. Patches are under the + same license as the files that they modify. + Note: Buildroot applies additional patches to Libtool scripts of + autotools-based packages. These patches can be found under + +support/libtool+ in the Buildroot source and, due to technical + limitations, are not saved with the package sources. You may need to + collect them manually. * A manifest file (one for host and one for target packages) listing the configured packages, their version, license and related information. Some of this information might not be defined in Buildroot; such items are diff --git a/bsp/buildroot/docs/manual/makedev-syntax.txt b/bsp/buildroot/docs/manual/makedev-syntax.txt index 0bbc16ec..d6efb31d 100644 --- a/bsp/buildroot/docs/manual/makedev-syntax.txt +++ b/bsp/buildroot/docs/manual/makedev-syntax.txt @@ -44,7 +44,7 @@ this syntax, you will need to write: ---- /usr/bin/foo f 755 0 0 - - - - - /usr/bin/bar f 755 root root - - - - - -/data/buz f buz-user buz-group - - - - - +/data/buz f 644 buz-user buz-group - - - - - ---- Alternatively, if you want to change owner/permission of a directory @@ -71,3 +71,33 @@ and then for device files corresponding to the partitions of /dev/hda b 640 root root 3 1 1 1 15 ---- +Extended attributes are supported if ++BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES+ is enabled. +This is done by adding a line starting with +|xattr+ after +the line describing the file. Right now, only capability +is supported as extended attribute. + +|===================== +| \|xattr | capability +|===================== + +- +|xattr+ is a "flag" that indicate an extended attribute +- +capability+ is a capability to add to the previous file + +If you want to add the capability cap_sys_admin to the binary foo, +you will write : + +---- +/usr/bin/foo f 755 root root - - - - - +|xattr cap_sys_admin+eip +---- + +You can add several capabilities to a file by using several +|xattr+ lines. +If you want to add the capability cap_sys_admin and cap_net_admin to the +binary foo, you will write : + +---- +/usr/bin/foo f 755 root root - - - - - +|xattr cap_sys_admin+eip +|xattr cap_net_admin+eip +---- diff --git a/bsp/buildroot/docs/manual/manual.html b/bsp/buildroot/docs/manual/manual.html index 8f36fd99..a14e7c1c 100644 --- a/bsp/buildroot/docs/manual/manual.html +++ b/bsp/buildroot/docs/manual/manual.html @@ -1,6 +1,6 @@ -The Buildroot user manual

The Buildroot user manual


Table of Contents

I. Getting started
1. About Buildroot
2. System requirements
2.1. Mandatory packages
2.2. Optional packages
3. Getting Buildroot
4. Buildroot quick start
5. Community resources
II. User guide
6. Buildroot configuration
6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system
7. Configuration of other components
8. General Buildroot usage
8.1. make tips
8.2. Understanding when a full rebuild is necessary
8.3. Understanding how to rebuild packages
8.4. Offline builds
8.5. Building out-of-tree
8.6. Environment variables
8.7. Dealing efficiently with filesystem images
8.8. Graphing the dependencies between packages
8.9. Graphing the build duration
8.10. Graphing the filesystem size contribution of packages
8.11. Integration with Eclipse
8.12. Advanced usage
9. Project-specific customization
9.1. Recommended directory structure
9.2. Keeping customizations outside of Buildroot
9.3. Storing the Buildroot configuration
9.4. Storing the configuration of other components
9.5. Customizing the generated target filesystem
9.6. Adding custom user accounts
9.7. Customization after the images have been created
9.8. Adding project-specific patches
9.9. Adding project-specific packages
9.10. Quick guide to storing your project-specific customizations
10. Frequently Asked Questions & Troubleshooting
10.1. The boot hangs after Starting network…
10.2. Why is there no compiler on the target?
10.3. Why are there no development files on the target?
10.4. Why is there no documentation on the target?
10.5. Why are some packages not visible in the Buildroot config menu?
10.6. Why not use the target directory as a chroot directory?
10.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?
10.8. How to speed-up the build process?
11. Known issues
12. Legal notice and licensing
12.1. Complying with open source licenses
12.2. License abbreviations
12.3. Complying with the Buildroot license
13. Beyond Buildroot
13.1. Boot the generated images
13.2. Chroot
III. Developer guide
14. How Buildroot works
15. Coding style
15.1. Config.in file
15.2. The .mk file
15.3. The documentation
16. Adding support for a particular board
17. Adding new packages to Buildroot
17.1. Package directory
17.2. Config files
17.3. The .mk file
17.4. The .hash file
17.5. Infrastructure for packages with specific build systems
17.6. Infrastructure for autotools-based packages
17.7. Infrastructure for CMake-based packages
17.8. Infrastructure for Python packages
17.9. Infrastructure for LuaRocks-based packages
17.10. Infrastructure for Perl/CPAN packages
17.11. Infrastructure for virtual packages
17.12. Infrastructure for packages using kconfig for configuration files
17.13. Infrastructure for rebar-based packages
17.14. Infrastructure for packages building kernel modules
17.15. Infrastructure for asciidoc documents
17.16. Infrastructure specific to the Linux kernel package
17.17. Hooks available in the various build steps
17.18. Gettext integration and interaction with packages
17.19. Tips and tricks
17.20. Conclusion
18. Patching a package
18.1. Providing patches
18.2. How patches are applied
18.3. Format and licensing of the package patches
18.4. Integrating patches found on the Web
19. Download infrastructure
20. Debugging Buildroot
21. Contributing to Buildroot
21.1. Reproducing, analyzing and fixing bugs
21.2. Analyzing and fixing autobuild failures
21.3. Reviewing and testing patches
21.4. Work on items from the TODO list
21.5. Submitting patches
21.6. Reporting issues/bugs or getting help
IV. Appendix
22. Makedev syntax documentation
23. Makeusers syntax documentation
24. List of target packages available in Buildroot
25. List of virtual packages
26. List of host utilities available in Buildroot
27. Deprecated features

Buildroot 2016.02 manual generated on 2016-03-01 -20:52:58 UTC from git revision aaf6c28

The Buildroot manual is written by the Buildroot developers. +The Buildroot user manual

The Buildroot user manual


Table of Contents

I. Getting started
1. About Buildroot
2. System requirements
2.1. Mandatory packages
2.2. Optional packages
3. Getting Buildroot
4. Buildroot quick start
5. Community resources
II. User guide
6. Buildroot configuration
6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system
7. Configuration of other components
8. General Buildroot usage
8.1. make tips
8.2. Understanding when a full rebuild is necessary
8.3. Understanding how to rebuild packages
8.4. Offline builds
8.5. Building out-of-tree
8.6. Environment variables
8.7. Dealing efficiently with filesystem images
8.8. Graphing the dependencies between packages
8.9. Graphing the build duration
8.10. Graphing the filesystem size contribution of packages
8.11. Integration with Eclipse
8.12. Advanced usage
9. Project-specific customization
9.1. Recommended directory structure
9.2. Keeping customizations outside of Buildroot
9.3. Storing the Buildroot configuration
9.4. Storing the configuration of other components
9.5. Customizing the generated target filesystem
9.6. Adding custom user accounts
9.7. Customization after the images have been created
9.8. Adding project-specific patches
9.9. Adding project-specific packages
9.10. Quick guide to storing your project-specific customizations
10. Frequently Asked Questions & Troubleshooting
10.1. The boot hangs after Starting network…
10.2. Why is there no compiler on the target?
10.3. Why are there no development files on the target?
10.4. Why is there no documentation on the target?
10.5. Why are some packages not visible in the Buildroot config menu?
10.6. Why not use the target directory as a chroot directory?
10.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?
10.8. How to speed-up the build process?
11. Known issues
12. Legal notice and licensing
12.1. Complying with open source licenses
12.2. License abbreviations
12.3. Complying with the Buildroot license
13. Beyond Buildroot
13.1. Boot the generated images
13.2. Chroot
III. Developer guide
14. How Buildroot works
15. Coding style
15.1. Config.in file
15.2. The .mk file
15.3. The documentation
16. Adding support for a particular board
17. Adding new packages to Buildroot
17.1. Package directory
17.2. Config files
17.3. The .mk file
17.4. The .hash file
17.5. Infrastructure for packages with specific build systems
17.6. Infrastructure for autotools-based packages
17.7. Infrastructure for CMake-based packages
17.8. Infrastructure for Python packages
17.9. Infrastructure for LuaRocks-based packages
17.10. Infrastructure for Perl/CPAN packages
17.11. Infrastructure for virtual packages
17.12. Infrastructure for packages using kconfig for configuration files
17.13. Infrastructure for rebar-based packages
17.14. Infrastructure for packages building kernel modules
17.15. Infrastructure for asciidoc documents
17.16. Infrastructure specific to the Linux kernel package
17.17. Hooks available in the various build steps
17.18. Gettext integration and interaction with packages
17.19. Tips and tricks
17.20. Conclusion
18. Patching a package
18.1. Providing patches
18.2. How patches are applied
18.3. Format and licensing of the package patches
18.4. Integrating patches found on the Web
19. Download infrastructure
20. Debugging Buildroot
21. Contributing to Buildroot
21.1. Reproducing, analyzing and fixing bugs
21.2. Analyzing and fixing autobuild failures
21.3. Reviewing and testing patches
21.4. Work on items from the TODO list
21.5. Submitting patches
21.6. Reporting issues/bugs or getting help
IV. Appendix
22. Makedev syntax documentation
23. Makeusers syntax documentation
24. List of target packages available in Buildroot
25. List of virtual packages
26. List of host utilities available in Buildroot
27. Deprecated features

Buildroot 2016.08.1 manual generated on 2016-09-21 +20:56:58 UTC from git revision b1001ac

The Buildroot manual is written by the Buildroot developers. It is licensed under the GNU General Public License, version 2. Refer to the COPYING file in the Buildroot sources for the full text of this license.

Copyright © 2004-2014 The Buildroot developers

logo.png

Part I. Getting started

Chapter 1. About Buildroot

Buildroot is a tool that simplifies and automates the process of @@ -16,8 +16,8 @@ processors everyone is used to having in his PC. They can be PowerPC processors, MIPS processors, ARM processors, etc.

Buildroot supports numerous processors and their variants; it also comes with default configurations for several boards available off-the-shelf. Besides this, a number of third-party projects are based on, -or develop their BSP [1] or -SDK [2] on top of Buildroot.



[1] BSP: Board Support Package

[2] SDK: Software Development Kit

Chapter 2. System requirements

Buildroot is designed to run on Linux systems.

While Buildroot itself will build most host packages it needs for the +or develop their BSP [1] or +SDK [2] on top of Buildroot.



[1] BSP: Board Support Package

[2] SDK: Software Development Kit

Chapter 2. System requirements

Buildroot is designed to run on Linux systems.

While Buildroot itself will build most host packages it needs for the compilation, certain standard Linux utilities are expected to be already installed on the host system. Below you will find an overview of the mandatory and optional packages (note that package names may vary @@ -268,7 +268,7 @@ processor. Under most Linux systems, the compilation toolchain uses the GNU libc (glibc) as the C standard library. This compilation toolchain is called the "host compilation toolchain". The machine on which it is running, and on which you’re working, is called the "host -system" [3].

The compilation toolchain is provided by your distribution, and +system" [3].

The compilation toolchain is provided by your distribution, and Buildroot has nothing to do with it (other than using it to build a cross-compilation toolchain and other tools that are run on the development host).

As said above, the compilation toolchain that comes with your system @@ -291,9 +291,9 @@ chosen, a number of configuration options appear, they are detailed in the following sections.

6.1.1. Internal toolchain backend

The internal toolchain backend is the backend where Buildroot builds by itself a cross-compilation toolchain, before building the userspace applications and libraries for your target embedded system.

This backend supports several C libraries: -uClibc, the +uClibc, glibc and -eglibc.

Once you have selected this backend, a number of options appear. The +musl.

Once you have selected this backend, a number of options appear. The most important ones allow to:

  • Change the version of the Linux kernel headers used to build the toolchain. This item deserves a few explanations. In the process of @@ -547,7 +547,7 @@ The third solution is systemd. http://www.freedesktop.org/wiki/Software/systemd.

The solution recommended by Buildroot developers is to use the BusyBox init as it is sufficient for most embedded -systems. systemd can be used for more complex situations.



[3] This terminology differs from what is used by GNU +systems. systemd can be used for more complex situations.



[3] This terminology differs from what is used by GNU configure, where the host is the machine on which the application will run (which is usually the same as target)

Chapter 7. Configuration of other components

Before attempting to modify any of the components below, make sure you have already configured Buildroot itself, and have enabled the @@ -997,7 +997,7 @@ it, configure, compile and install the software component found inside this tarball. The source code is extracted in output/build/<package>-<version>, which is a temporary directory: whenever make clean is used, this directory is entirely removed, and -re-recreated at the next make invocation. Even when a Git or +re-created at the next make invocation. Even when a Git or Subversion repository is used as the input for the package source code, Buildroot creates a tarball out of it, and then behaves as it normally does with tarballs.

This behavior is well-suited when Buildroot is used mainly as an @@ -1287,7 +1287,7 @@ Post-build scripts (BR2_ROOTFS_POST_BUILD_SCRIPT) stored

  • BASE_DIR: the base output directory -
  • Below two more methods of customizing the target filesystem are +

    Below three more methods of customizing the target filesystem are described, but they are not recommended.

    Direct modification of the target filesystem

    For temporary modifications, you can modify the target filesystem @@ -1316,7 +1316,23 @@ Custom target skeleton (BR2_ROOTFS_SKELETON_CUSTOM) System configuration menu. If you specify a relative path, it will be relative to the root of the Buildroot tree.

    This method is not recommended because it duplicates the entire skeleton, which prevents taking advantage of the fixes or improvements - brought to the default skeleton in later Buildroot releases.

    9.5.1. Setting file permissions and ownership and adding custom devices nodes

    Sometimes it is needed to set specific permissions or ownership on files + brought to the default skeleton in later Buildroot releases.

    +Post-fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) +

    When aggregating the final images, some parts of the process requires + root rights: creating device nodes in /dev, setting permissions or + ownership to files and directories… To avoid requiring actual root + rights, Buildroot uses fakeroot to simulate root rights. This is not + a complete substitute for actually being root, but is enough for what + Buildroot needs.

    Post-fakeroot scripts are shell scripts that are called at the end of + the fakeroot phase, right before the filesystem image generator is + called. As such, they are called in the fakeroot context.

    Post-fakeroot scripts can be useful in case you need to tweak the + filesystem to do modifications that are usually only available to the + root user.

    Note: It is recommended to use the existing mechanisms to set file permissions + or create entries in /dev (see Section 9.5.1, “Setting file permissions and ownership and adding custom devices nodes”) or + to create users (see Section 9.6, “Adding custom user accounts”)

    Note: The difference between post-build scripts (above) and fakeroot scripts, + is that post-build scripts are not called in the fakeroot context.

    Note;. Using fakeroot is not an absolute substitute for actually being root. + fakeroot only ever fakes the file access rights and types (regular, + block-or-char device…) and uid/gid; these are emulated in-memory.

    9.5.1. Setting file permissions and ownership and adding custom devices nodes

    Sometimes it is needed to set specific permissions or ownership on files or device nodes. For example, certain files may need to be owned by root. Since the post-build scripts are not run as root, you cannot do such changes from there unless you use an explicit fakeroot from the @@ -1710,18 +1726,18 @@ The ltp-testsuite package does not build with the d DO_XSI_MATH, UCLIBC_HAS_OBSOLETE_BSD_SIGNAL and UCLIBC_SV4_DEPRECATED are needed if one wants to build the ltp-testsuite package with uClibc. You need to either use a glibc - or eglibc based toolchain, or enable the appropriate options in the - uClibc configuration. + based toolchain, or enable the appropriate options in the uClibc + configuration.

  • The xfsprogs package does not build with the default uClibc configuration used by the Buildroot toolchain backend. You need to - either use a glibc or eglibc based toolchain, or enable the - appropriate options in the uClibc configuration. + either use a glibc based toolchain, or enable the appropriate + options in the uClibc configuration.
  • The mrouted package does not build with the default uClibc configuration used by the Buildroot toolchain backend. You need to - either use a glibc or eglibc based toolchain, or enable the - appropriate options in the uClibc configuration. + either use a glibc based toolchain, or enable the appropriate + options in the uClibc configuration.
  • The libffi package is not supported on the SuperH 2 and ARC architectures. @@ -1753,9 +1769,14 @@ The source code for all packages; this is saved in the sou host-sources/ subdirectories for target and host packages respectively. The source code for packages that set <PKG>_REDISTRIBUTE = NO will not be saved. - Patches applied to some packages by Buildroot are distributed with the - Buildroot sources and are not duplicated in the sources/ and host-sources/ - subdirectories. + Patches that were applied are also saved, along with a file named series + that lists the patches in the order they were applied. Patches are under the + same license as the files that they modify. + Note: Buildroot applies additional patches to Libtool scripts of + autotools-based packages. These patches can be found under + support/libtool in the Buildroot source and, due to technical + limitations, are not saved with the package sources. You may need to + collect them manually.
  • A manifest file (one for host and one for target packages) listing the configured packages, their version, license and related information. @@ -2270,7 +2291,7 @@ Dependency symbol: BR2_TOOLCHAIN_USES_GLIBC, BR2_TOOLCHAIN_USES_MUSL, BR2_TOOLCHAIN_USES_UCLIBC
  • Comment string: for the C library, a slightly different comment text - is used: foo needs an (e)glibc toolchain, or foo needs an (e)glibc + is used: foo needs a glibc toolchain, or foo needs a glibc toolchain w/ C++
  • C++ support @@ -2279,6 +2300,12 @@ Dependency symbol: BR2_INSTALL_LIBSTDCPP

  • Comment string: C++
  • +Fortran support +

    • +Dependency symbol: BR2_TOOLCHAIN_HAS_FORTRAN +
    • +Comment string: fortran +
  • thread support

    • Dependency symbol: BR2_TOOLCHAIN_HAS_THREADS @@ -2449,7 +2476,7 @@ system is based on hand-written Makefiles or shell scripts.

      LIBFOO_CONFIG_SCRIPTS is the file name(s) of the shell script(s) needing fixing. All these names are relative to $(STAGING_DIR)/usr/bin and if needed multiple names can be given.

      In addition, the scripts listed in LIBFOO_CONFIG_SCRIPTS are removed -from $(TARGET_DIR)/usr/bin, since they are not needed on the target.

      Example 17.1. Config script: divine package

      Package divine installs shell script $(STAGING_DIR)/usr/bin/divine-config.

      So its fixup would be:

      DIVINE_CONFIG_SCRIPTS = divine-config

      Example 17.2. Config script: imagemagick package:

      Package imagemagick installs the following scripts: +from $(TARGET_DIR)/usr/bin, since they are not needed on the target.

      Example 17.1. Config script: divine package

      Package divine installs shell script $(STAGING_DIR)/usr/bin/divine-config.

      So its fixup would be:

      DIVINE_CONFIG_SCRIPTS = divine-config

      Example 17.2. Config script: imagemagick package:

      Package imagemagick installs the following scripts: $(STAGING_DIR)/usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config

      So it’s fixup would be:

      IMAGEMAGICK_CONFIG_SCRIPTS = \
          Magick-config Magick++-config \
          MagickCore-config MagickWand-config Wand-config

      On line 14, we specify the list of dependencies this package relies @@ -2670,6 +2697,12 @@ information is (assuming the package name is libfoo the package source code. Buildroot copies the contents of the source directory into the package’s build directory.

  • +LIBFOO_GIT_SUBMODULES, when LIBFOO_SITE_METHOD=git, will create + an archive with the git submodules in the repository. + Note that we try not to use such git submodules when they contain + bundled libraries, in which case we prefer to use those libraries + from their own package. +
  • LIBFOO_STRIP_COMPONENTS is the number of leading components (directories) that tar must strip from file names on extraction. The tarball for most packages has one leading component named @@ -2738,7 +2771,7 @@ information is (assuming the package name is libfoo a program you want to run as a specific user (e.g. as a daemon, or as a cron-job). The syntax is similar in spirit to the makedevs one, and is described in the Chapter 23, Makeusers syntax documentation. This variable is optional. -
  • +
  • LIBFOO_LICENSE defines the license (or licenses) under which the package is released. This name will appear in the manifest file produced by make legal-info. @@ -2749,7 +2782,18 @@ information is (assuming the package name is libfoo ambiguous names such as BSD which actually name a family of licenses. This variable is optional. If it is not defined, unknown will appear in the license field of the manifest file for this package. + The expected format for this variable must comply with the following rules: +

    • +If different parts of the package are released under different + licenses, then comma separate licenses (e.g. LIBFOO_LICENSE = + GPLv2+, LGPLv2.1+). If there is clear distinction between which + component is licensed under what license, then annotate the license + with that component, between parenthesis (e.g. LIBFOO_LICENSE = + GPLv2+ (programs), LGPLv2.1+ (libraries)).
    • +If the package is dual licensed, then separate licenses with the + or keyword (e.g. LIBFOO_LICENSE = AFLv2.1 or GPLv2+). +
  • LIBFOO_LICENSE_FILES is a space-separated list of files in the package tarball that contain the license(s) under which the package is released. make legal-info copies all of these files in the legal-info directory. @@ -2840,6 +2884,12 @@ different steps of the build process.

      LIBFOO_INSTALL_INIT_SYSTEMD will be run). +
    • +LIBFOO_HELP_CMDS lists the actions to print the package help, which + is included to the main make help output. These commands can print + anything in any format. + This is seldom used, as packages rarely have custom rules. Do not use + this variable, unless you really know that you need to print help.

    The preferred way to define these variables is:

    define LIBFOO_CONFIGURE_CMDS
             action 1
             action 2
    @@ -3219,7 +3269,44 @@ By overriding one of the steps. For example, even if the Python
       PYTHON_FOO_BUILD_CMDS variable, it will be used instead of the
       default Python one. However, using this method should be restricted
       to very specific cases. Do not use it in the general case.
    -
  • 17.9. Infrastructure for LuaRocks-based packages

    17.9.1. luarocks-package tutorial

    First, let’s see how to write a .mk file for a LuaRocks-based package, +

    17.8.3. Generating a python-package from a PyPI repository

    If the Python package for which you would like to create a Buildroot +package is available on PyPI, you may want to use the scanpypi tool +located in support/scripts to automate the process.

    You can find the list of existing PyPI packages +here.

    scanpypi requires Python’s setuptools package to be installed on +your host.

    When at the root of your buildroot directory just do :

    ./support/script/scanpypi foo bar -o package

    This will generate packages python-foo and python-bar in the package +folder if they exist on https://pypi.python.org.

    Find the external python modules menu and insert your package inside. +Keep in mind that the items inside a menu should be in alphabetical order.

    Please keep in mind that you’ll most likely have to manually check the +package for any mistakes as there are things that cannot be guessed by +the generator (e.g. dependencies on any of the python core modules +such as BR2_PACKAGE_PYTHON_ZLIB). Also, please take note that the +license and license files are guessed and must be checked. You also +need to manually add the package to the package/Config.in file.

    If your Buildroot package is not in the official Buildroot tree but in +a BR2_EXTERNAL tree, use the -o flag as follows:

    ./support/script/scanpypi foo bar -o other_package_dir

    This will generate packages python-foo and python-bar in the +other_package_directory instead of package.

    Option -h will list the available options:

    ./support/script/scanpypi -h

    17.8.4. python-package CFFI backend

    C Foreign Function Interface for Python (CFFI) provides a convenient +and reliable way to call compiled C code from Python using interface +declarations written in C. Python packages relying on this backend can +be identified by the appearance of a cffi dependency in the +install_requires field of their setup.py file.

    Such a package should:

    • +add python-cffi as a runtime dependency in order to install the +compiled C library wrapper on the target. This is achieved by adding +select BR2_PACKAGE_PYTHON_CFFI to the package Config.in. +
    config BR2_PACKAGE_PYTHON_FOO
    +        bool "python-foo"
    +        select BR2_PACKAGE_PYTHON_CFFI # runtime
    • +add host-python-cffi as a build-time dependency in order to +cross-compile the C wrapper. This is achieved by adding +host-python-cffi to the PYTHON_FOO_DEPENDENCIES variable. +
    ################################################################################
    +#
    +# python-foo
    +#
    +################################################################################
    +
    +...
    +
    +PYTHON_FOO_DEPENDENCIES = host-python-cffi
    +
    +$(eval $(python-package))

    17.9. Infrastructure for LuaRocks-based packages

    17.9.1. luarocks-package tutorial

    First, let’s see how to write a .mk file for a LuaRocks-based package, with an example :

    01: ################################################################################
     02: #
     03: # luafoo
    @@ -3861,7 +3948,10 @@ others, use the following variables:

      $(SRCDIR): the path to the overridden source directory
    • $(@D): the path to the build directory -

    17.18. Gettext integration and interaction with packages

    Many packages that support internationalization use the gettext +

    17.17.2. Target-finalize hook

    Packages may also register hooks in LIBFOO_TARGET_FINALIZE_HOOKS. +These hooks are run after all packages are built, but before the +filesystem images are generated. They are seldom used, and your +package probably do not need them.

    17.18. Gettext integration and interaction with packages

    Many packages that support internationalization use the gettext library. Dependencies for this library are fairly complicated and therefore, deserve some explanation.

    The uClibc C library doesn’t implement gettext functionality; therefore with this C library, a separate gettext must be compiled, @@ -3998,12 +4088,12 @@ If there are some *.patch files in the package’s If a series file exists in the package directory, then patches are applied according to the series file;

  • -Otherwise, patch files matching <packagename>-*.patch - are applied in alphabetical order. +Otherwise, patch files matching *.patch are applied in alphabetical + order. So, to ensure they are applied in the right order, it is highly recommended to name the patch files like this: - <packagename>-<number>-<description>.patch, where <number> - refers to the apply order. + <number>-<description>.patch, where <number> refers to the + apply order.
  • If BR2_GLOBAL_PATCH_DIR is defined, the directories will be enumerated in the order they are specified. The patches are applied @@ -4281,7 +4371,7 @@ large number of commits in the series;
  • deep impact of the changes in the rest of the project;
  • -RFC [4]; +RFC [4];
  • whenever you feel it will help presenting your work, your choices, the review process, etc. @@ -4363,7 +4453,7 @@ pastebin service. Note that not all available pastebin services will preserve Unix-style line terminators when downloading raw pastes. Following pastebin services are known to work correctly: - https://gist.github.com/ -- http://code.bulix.org/



    [4] RFC: (Request for comments) change proposal

    Part IV. Appendix

    Chapter 22. Makedev syntax documentation

    The makedev syntax is used in several places in Buildroot to +- http://code.bulix.org/



    [4] RFC: (Request for comments) change proposal

    Part IV. Appendix

    Chapter 22. Makedev syntax documentation

    The makedev syntax is used in several places in Buildroot to define changes to be made for permissions, or which device files to create and how to create them, in order to avoid calls to mknod.

    This syntax is derived from the makedev utility, and more complete documentation can be found in the package/makedevs/README file.

    It takes the form of a space separated list of fields, one file per @@ -4399,13 +4489,27 @@ p: a named pipe

  • Let’s say you want to change the permissions of a given file; using this syntax, you will need to write:

    /usr/bin/foo f 755 0 0 - - - - -
     /usr/bin/bar f 755 root root - - - - -
    -/data/buz f buz-user buz-group - - - - -

    Alternatively, if you want to change owner/permission of a directory +/data/buz f 644 buz-user buz-group - - - - -

    Alternatively, if you want to change owner/permission of a directory recursively, you can write (to set UID to foo, GID to bar and access rights to rwxr-x--- for the directory /usr/share/myapp and all files and directories below it):

    /usr/share/myapp r 750 foo bar - - - - -

    On the other hand, if you want to create the device file /dev/hda and the corresponding 15 files for the partitions, you will need for /dev/hda:

    /dev/hda b 640 root root 3 0 0 0 -

    and then for device files corresponding to the partitions of -/dev/hda, /dev/hdaX, X ranging from 1 to 15:

    /dev/hda b 640 root root 3 1 1 1 15

    Chapter 23. Makeusers syntax documentation

    The syntax to create users is inspired by the makedev syntax, above, but +/dev/hda, /dev/hdaX, X ranging from 1 to 15:

    /dev/hda b 640 root root 3 1 1 1 15

    Extended attributes are supported if +BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is enabled. +This is done by adding a line starting with |xattr after +the line describing the file. Right now, only capability +is supported as extended attribute.

    |xattr

    capability

    • +|xattr is a "flag" that indicate an extended attribute +
    • +capability is a capability to add to the previous file +

    If you want to add the capability cap_sys_admin to the binary foo, +you will write :

    /usr/bin/foo f 755 root root - - - - -
    +|xattr cap_sys_admin+eip

    You can add several capabilities to a file by using several |xattr lines. +If you want to add the capability cap_sys_admin and cap_net_admin to the +binary foo, you will write :

    /usr/bin/foo f 755 root root - - - - -
    +|xattr cap_sys_admin+eip
    +|xattr cap_net_admin+eip

    Chapter 23. Makeusers syntax documentation

    The syntax to create users is inspired by the makedev syntax, above, but is specific to Buildroot.

    The syntax for adding a user is a space-separated list of fields, one user per line; the fields are:

    username

    uid

    group

    gid

    password

    home

    shell

    groups

    comment

    Where:

    • username is the desired user name (aka login name) for the user. @@ -4487,12 +4591,12 @@ main group gid is computed by Buildroot, and will u test is not a member of any additional groups
    • comment is: Test user -

    Chapter 24. List of target packages available in Buildroot

    Packages Target packages → …

    a10disp

    → Hardware handling

    acl

    → System tools

    acpid

    → Hardware handling

    acsccid

    → Libraries → Hardware handling

    adwaita icon theme

    → Fonts, cursors, icons, sounds and themes

    aespipe

    → Miscellaneous

    agent++

    → Libraries → Networking

    aiccu

    → Networking applications

    aircrack-ng

    → Networking applications

    alsa-lib

    → Libraries → Audio/Sound

    alsa-utils

    → Audio and video applications

    alsamixergui

    → Graphic libraries and applications (graphic/text)

    am335x-pru-package

    → Hardware handling

    am33x-cm3

    → Hardware handling → Firmware

    angularjs

    → Libraries → Javascript

    apache

    → Networking applications

    apitrace

    → Graphic libraries and applications (graphic/text)

    applewmproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    appres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    apr

    → Libraries → Other

    apr-util

    → Libraries → Other

    argp-standalone

    → Libraries → Other

    argus

    → Networking applications

    armadillo

    → Libraries → Other

    arptables

    → Networking applications

    assimp

    → Libraries → Graphics

    at

    → Shell and utilities

    atf

    → Libraries → Other

    atftp

    → Networking applications

    atk

    → Libraries → Graphics

    atkmm

    → Libraries → Graphics

    attr

    → System tools

    audiofile

    → Libraries → Audio/Sound

    audit

    → System tools

    aumix

    → Audio and video applications

    autofs

    → Filesystem and flash utilities

    autossh

    → Networking applications

    avahi

    → Networking applications

    avrdude

    → Hardware handling

    axel

    → Networking applications

    b43-firmware

    → Hardware handling → Firmware

    bandwidthd

    → Networking applications

    bash

    → Shell and utilities

    batctl

    → Networking applications

    bc

    → Miscellaneous

    bcache tools

    → Hardware handling

    bcm2835

    → Libraries → Hardware handling

    bcusdk

    → Networking applications

    bdftopcf

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    bdwgc

    → Libraries → Other

    beecrypt

    → Libraries → Crypto

    beforelight

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    bellagio

    → Audio and video applications

    benejson

    → Libraries → JSON/XML

    berkeleydb

    → Libraries → Database

    bigreqsproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    bind

    → Networking applications

    binutils

    → Development tools

    biosdevname

    → Hardware handling

    bitmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    bitstream

    → Libraries → Multimedia

    Bitstream Vera

    → Fonts, cursors, icons, sounds and themes

    blktrace

    → Debugging, profiling and benchmark

    bluez-utils

    → Networking applications

    bluez-utils 5.x

    → Networking applications

    bmon

    → Networking applications

    boa

    → Networking applications

    bonnie++

    → Debugging, profiling and benchmark

    boost

    → Libraries → Other

    bootstrap

    → Libraries → Javascript

    bootutils

    → System tools

    botan

    → Libraries → Crypto

    bridge-utils

    → Networking applications

    bsdiff

    → Development tools

    btrfs-progs

    → Filesystem and flash utilities

    bullet

    → Libraries → Graphics

    bustle

    → Development tools

    BusyBox

    bwm-ng

    → Networking applications

    bzip2

    → Compressors and decompressors

    c-ares

    → Libraries → Networking

    c-icap

    → Networking applications

    c-icap-modules

    → Networking applications

    c-periphery

    → Libraries → Hardware handling

    CA Certificates

    → Libraries → Crypto

    cache-calibrator

    → Debugging, profiling and benchmark

    cairo

    → Libraries → Graphics

    cairomm

    → Libraries → Graphics

    can-utils

    → Networking applications

    canfestival

    → Libraries → Networking

    cantarell

    → Fonts, cursors, icons, sounds and themes

    cblas/clapack

    → Libraries → Other

    cc-tool

    → Hardware handling

    ccid

    → Libraries → Hardware handling

    ccrypt

    → Shell and utilities

    cdrkit

    → Hardware handling

    cegui06

    → Graphic libraries and applications (graphic/text)

    celt051

    → Libraries → Audio/Sound

    cgic

    → Libraries → Networking

    cgilua

    → Interpreter languages and scripting → Lua libraries/modules

    check

    → Development tools

    chocolate-doom

    → Games

    chrony

    → Networking applications

    cifs-utils

    → Filesystem and flash utilities

    civetweb

    → Networking applications

    cJSON

    → Libraries → JSON/XML

    clamav

    → Miscellaneous

    classpath

    → Libraries → Other

    collectd

    → Miscellaneous

    comix-cursors

    → Fonts, cursors, icons, sounds and themes

    compositeproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    connman

    → Networking applications

    conntrack-tools

    → Networking applications

    copas

    → Interpreter languages and scripting → Lua libraries/modules

    coreutils

    → System tools

    cosmo

    → Interpreter languages and scripting → Lua libraries/modules

    coxpcall

    → Interpreter languages and scripting → Lua libraries/modules

    cpio

    → Filesystem and flash utilities

    cppcms

    → Libraries → Other

    cppdb

    → Libraries → Database

    cppunit

    → Development tools

    cppzmq

    → Libraries → Networking

    cpuload

    → System tools

    cramfs

    → Filesystem and flash utilities

    crda

    → Networking applications

    cryptodev-linux

    → Libraries → Crypto → cryptodev variant

    cryptsetup

    → Hardware handling

    ctorrent

    → Networking applications

    cups

    → Networking applications

    curlftpfs (FUSE)

    → Filesystem and flash utilities

    cvs

    → Development tools

    cwiid

    → Hardware handling

    cxxtest

    → Development tools

    czmq

    → Libraries → Networking

    dado

    → Interpreter languages and scripting → Lua libraries/modules

    damageproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dash

    → Shell and utilities

    dawgdic

    → Libraries → Other

    dbus

    → Hardware handling

    dbus-c++

    → Hardware handling

    dbus-glib

    → Hardware handling

    dbus-python

    → Hardware handling

    dbus-triggerd

    → Hardware handling

    dcron

    → System tools

    debianutils

    → System tools

    Declarative module

    → Graphic libraries and applications (graphic/text)

    DejaVu fonts

    → Fonts, cursors, icons, sounds and themes

    devmem2

    → Hardware handling

    dhcp (ISC)

    → Networking applications

    dhcpcd

    → Networking applications

    dhcpdump

    → Networking applications

    dhrystone

    → Debugging, profiling and benchmark

    dialog

    → Shell and utilities

    diffutils

    → Development tools

    dillo

    → Graphic libraries and applications (graphic/text)

    ding-libs

    → Libraries → Other

    directfb

    → Graphic libraries and applications (graphic/text)

    directfb examples

    → Graphic libraries and applications (graphic/text)

    dmalloc

    → Debugging, profiling and benchmark

    dmidecode

    → Hardware handling

    dmraid

    → Hardware handling

    dmxproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dnsmasq

    → Networking applications

    docker

    → Graphic libraries and applications (graphic/text)

    dos2unix

    → Development tools

    dosfstools

    → Filesystem and flash utilities

    dovecot

    → Mail

    dovecot-pigeonhole

    → Mail

    drbd-utils

    → Networking applications

    dri2proto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dri3proto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dropbear

    → Networking applications

    dropwatch

    → Debugging, profiling and benchmark

    dsp-tools

    → System tools

    dstat

    → Debugging, profiling and benchmark

    dtach

    → Shell and utilities

    dtc (libfdt)

    → Libraries → Hardware handling

    dtv-scan-tables

    → Hardware handling

    duma

    → Debugging, profiling and benchmark

    dvb-apps

    → Hardware handling

    dvblast

    → Audio and video applications

    dvbsnoop

    → Hardware handling

    dvdauthor

    → Audio and video applications

    dvdrw-tools

    → Audio and video applications

    e2fsprogs

    → Filesystem and flash utilities

    e2tools

    → Filesystem and flash utilities

    ebtables

    → Networking applications

    ecryptfs-utils

    → Filesystem and flash utilities

    ed

    → Text editors and viewers

    edid-decode

    → Hardware handling

    editres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    eeprog

    → Hardware handling

    efl

    → Graphic libraries and applications (graphic/text)

    eigen

    → Libraries → Other

    ejabberd

    → Networking applications

    elementary

    → Graphic libraries and applications (graphic/text)

    elfutils

    → Libraries → Other

    emlog

    → System tools

    empty

    → Miscellaneous

    enchant

    → Libraries → Text and terminal handling

    encodings

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    enlightenment

    → Graphic libraries and applications (graphic/text)

    enscript

    → Interpreter languages and scripting

    epoxy

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    erlang

    → Interpreter languages and scripting

    erlang-goldrush

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-lager

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-cache-tab

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-iconv

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-sip

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-stringprep

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-stun

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-tls

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-utils

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-xml

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-yaml

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-zlib

    → Interpreter languages and scripting → Erlang libraries/modules

    espeak

    → Audio and video applications

    ethtool

    → Networking applications

    eudev

    → Hardware handling

    evemu

    → Hardware handling

    eventlog

    → Libraries → Logging

    evtest

    → Hardware handling

    exFAT (FUSE)

    → Filesystem and flash utilities

    exfat-utils

    → Filesystem and flash utilities

    exim

    → Mail

    exiv2

    → Libraries → Graphics

    expat

    → Libraries → JSON/XML

    expect

    → Interpreter languages and scripting → Tcl libraries/modules

    expedite

    → Graphic libraries and applications (graphic/text)

    explorercanvas

    → Libraries → Javascript

    ezxml

    → Libraries → JSON/XML

    f2fs-tools

    → Filesystem and flash utilities

    faad2

    → Audio and video applications

    faifa

    → Networking applications

    fan-ctrl

    → Hardware handling

    fastd

    → Networking applications

    fb-test-app

    → Graphic libraries and applications (graphic/text)

    fbdump (Framebuffer Capture Tool)

    → Graphic libraries and applications (graphic/text)

    fbgrab

    → Graphic libraries and applications (graphic/text)

    fbset

    → Graphic libraries and applications (graphic/text)

    fbterm

    → Graphic libraries and applications (graphic/text)

    fbv

    → Graphic libraries and applications (graphic/text)

    fcgiwrap

    → Networking applications

    fconfig

    → Hardware handling

    fdk-aac

    → Libraries → Audio/Sound

    feh

    → Graphic libraries and applications (graphic/text)

    fetchmail

    → Mail

    ffmpeg

    → Audio and video applications

    fftw

    → Libraries → Other

    file

    → Shell and utilities

    filemq

    → Libraries → Networking

    findutils

    → Development tools

    fio

    → Debugging, profiling and benchmark

    firmware-imx

    → Hardware handling

    fis

    → Hardware handling

    fixesproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    flac

    → Audio and video applications

    flann

    → Libraries → Other

    flashbench

    → Filesystem and flash utilities

    flashrom

    → Hardware handling

    flex

    → Development tools

    flickcurl

    → Libraries → Networking

    flite

    → Audio and video applications

    flot

    → Libraries → Javascript

    fltk

    → Libraries → Graphics

    fluxbox

    → Graphic libraries and applications (graphic/text)

    fmc

    → Networking applications

    fmlib

    → Libraries → Networking

    fmtools

    → Hardware handling

    font-adobe-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-utopia-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-utopia-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-utopia-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-alias

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-arabic-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-lucidatypewriter-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-lucidatypewriter-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-ttf

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bitstream-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bitstream-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bitstream-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-cronyx-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-cursor-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-daewoo-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-dec-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-ibm-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-isas-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-jis-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-micro-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-ethiopic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-meltho

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-mutt-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-schumacher-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-screen-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-sony-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-sun-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-util

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-winitzki-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-xfree86-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    fontcacheproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    fontconfig

    → Libraries → Graphics

    fontsproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    fonttosfnt

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    foomatic_filters (deprecated)

    → Networking applications

    fping

    → Networking applications

    freeradius-client

    → Libraries → Networking

    freerdp

    → Graphic libraries and applications (graphic/text)

    Freescale i.MX libraries

    → Hardware handling

    freetype

    → Libraries → Graphics

    fslsfonts

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    fstobdf

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    fswebcam

    → Graphic libraries and applications (graphic/text)

    ftop

    → System tools

    fxload

    → Hardware handling

    gadgetfs-test

    → Hardware handling

    gamin

    → Libraries → Filesystem

    gauche

    → Interpreter languages and scripting

    gawk

    → Development tools

    gcr

    → Libraries → Crypto

    gd

    → Libraries → Graphics

    gdb

    → Debugging, profiling and benchmark

    gdbm

    → Libraries → Database

    gdk-pixbuf

    → Libraries → Graphics

    genext2fs

    → Filesystem and flash utilities

    genpart

    → Filesystem and flash utilities

    genromfs

    → Filesystem and flash utilities

    geoip

    → Libraries → Networking

    gesftpserver

    → Networking applications

    getent

    → System tools

    gettext

    → Development tools

    gflags

    → Libraries → Other

    ghostscript-fonts

    → Fonts, cursors, icons, sounds and themes

    giblib

    → Libraries → Graphics

    giflib

    → Libraries → Graphics

    git

    → Development tools

    glib-networking

    → Libraries → Networking

    glibmm

    → Libraries → Other

    glm

    → Libraries → Other

    glmark2

    → Graphic libraries and applications (graphic/text)

    glog

    → Libraries → Logging

    glproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    gmock

    → Libraries → Other

    gmp

    → Libraries → Other

    gmpc

    → Graphic libraries and applications (graphic/text)

    gnu-efi

    → Libraries → Hardware handling

    gnuchess

    → Games

    gnupg

    → Shell and utilities

    gnupg2

    → Shell and utilities

    gnuplot

    → Graphic libraries and applications (graphic/text)

    gnuradio

    → Miscellaneous

    gnutls

    → Libraries → Crypto

    Google font directory

    → Miscellaneous

    google-breakpad

    → Debugging, profiling and benchmark

    google-material-design-icons

    → Fonts, cursors, icons, sounds and themes

    gperf

    → Development tools

    gpm

    → Hardware handling

    gpsd

    → Hardware handling

    gptfdisk

    → Hardware handling

    gpu-amd-bin-mx51 (also imx53)

    → Hardware handling

    gqview

    → Graphic libraries and applications (graphic/text)

    grantlee

    → Graphic libraries and applications (graphic/text)

    graphite2

    → Libraries → Graphics

    grep

    → Development tools

    gsl

    → Libraries → Other

    gssdp

    → Libraries → Networking

    gst-dsp

    → Audio and video applications

    gst-ffmpeg

    → Audio and video applications

    gst-fsl-plugins

    → Audio and video applications

    gst-omapfb

    → Audio and video applications

    gst-omx

    → Audio and video applications

    gst-plugin-x170

    → Audio and video applications

    gst-plugins-bad

    → Audio and video applications

    gst-plugins-base

    → Audio and video applications

    gst-plugins-good

    → Audio and video applications

    gst-plugins-ugly

    → Audio and video applications

    gst1-imx

    → Audio and video applications

    gst1-libav

    → Audio and video applications

    gst1-plugins-bad

    → Audio and video applications

    gst1-plugins-base

    → Audio and video applications

    gst1-plugins-good

    → Audio and video applications

    gst1-plugins-ugly

    → Audio and video applications

    gst1-validate

    → Audio and video applications

    gstreamer 0.10

    → Audio and video applications

    gstreamer 1.x

    → Audio and video applications

    gtest

    → Libraries → Other

    gtk engines

    → Fonts, cursors, icons, sounds and themes

    gtk# 3

    → Interpreter languages and scripting → Mono libraries/modules

    gtkmm3

    → Libraries → Graphics

    gtkperf (performance test for GTK2)

    → Graphic libraries and applications (graphic/text)

    guile

    → Interpreter languages and scripting

    gupnp

    → Libraries → Networking

    gupnp-av

    → Libraries → Networking

    gutenprint (deprecated)

    → Networking applications

    gvfs

    → Hardware handling

    gzip

    → Compressors and decompressors

    hans

    → Networking applications

    harfbuzz

    → Libraries → Graphics

    haserl

    → Interpreter languages and scripting

    haveged

    → Miscellaneous

    hdparm

    → Hardware handling

    heirloom-mailx

    → Mail

    hiawatha

    → Networking applications

    hicolor icon theme

    → Fonts, cursors, icons, sounds and themes

    hidapi

    → Libraries → Hardware handling

    hostapd

    → Networking applications

    hplip

    → Networking applications

    htop

    → System tools

    httping

    → Networking applications

    hwdata

    → Hardware handling

    hwloc

    → Hardware handling

    i2c-tools

    → Hardware handling

    ibrcommon

    → Libraries → Networking

    ibrdtn

    → Libraries → Networking

    ibrdtn-tools

    → Networking applications

    ibrdtnd

    → Networking applications

    iceauth

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    ico

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    icu

    → Libraries → Text and terminal handling

    ifplugd

    → Networking applications

    iftop

    → Networking applications

    ifupdown

    → Networking applications

    igh-ethercat

    → Networking applications

    igmpproxy

    → Networking applications

    ijs

    → Libraries → Graphics

    imagemagick

    → Graphic libraries and applications (graphic/text)

    imlib2

    → Libraries → Graphics

    imx-gpu-viv

    → Hardware handling

    imx-kobs

    → Hardware handling

    imx-lib

    → Hardware handling

    imx-vpu

    → Hardware handling

    inadyn

    → Networking applications

    inconsolata

    → Fonts, cursors, icons, sounds and themes

    inotify-tools

    → Shell and utilities

    input-event-daemon

    → Hardware handling

    input-tools

    → Hardware handling

    inputproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    intel-microcode

    → Hardware handling

    intltool

    → Development tools

    iodine

    → Networking applications

    iostat

    → Hardware handling

    iotop

    → System tools

    iozone

    → Debugging, profiling and benchmark

    iperf

    → Networking applications

    iperf3

    → Networking applications

    ipkg

    → Package managers

    ipmitool

    → Hardware handling

    ipmiutil

    → Hardware handling

    iproute2

    → Networking applications

    iprutils

    → System tools

    ipsec-tools

    → Networking applications

    ipset

    → Networking applications

    iptables

    → Networking applications

    iptraf-ng

    → Networking applications

    iputils

    → Networking applications

    iqvlinux

    → Hardware handling

    irda-utils

    → Hardware handling

    irqbalance

    → System tools

    irssi

    → Networking applications

    iucode-tool

    → Hardware handling

    iw

    → Networking applications

    jack2

    → Audio and video applications

    jamvm

    → Interpreter languages and scripting

    jansson

    → Libraries → JSON/XML

    janus-gateway

    → Networking applications

    jasper

    → Libraries → Graphics

    jhead

    → Graphic libraries and applications (graphic/text)

    jimtcl

    → Interpreter languages and scripting

    joe

    → Text editors and viewers

    jpeg

    → Libraries → Graphics → jpeg variant

    jpeg-turbo

    → Libraries → Graphics → jpeg variant

    jq

    → Development tools

    jQuery

    → Libraries → Javascript

    jquery-datetimepicker

    → Libraries → Javascript → External jQuery plugins

    jquery-keyboard

    → Libraries → Javascript → External jQuery plugins

    jquery-mobile

    → Libraries → Javascript → External jQuery plugins

    jquery-sidebar

    → Libraries → Javascript → External jQuery plugins

    jquery-sparkline

    → Libraries → Javascript → External jQuery plugins

    jquery-ui

    → Libraries → Javascript → External jQuery plugins

    jquery-ui-themes

    → Libraries → Javascript → External jQuery plugins

    jquery-validation

    → Libraries → Javascript → External jQuery plugins

    jsmin

    → Libraries → Javascript

    json-c

    → Libraries → JSON/XML

    json-glib

    → Libraries → JSON/XML

    json-javascript

    → Libraries → Javascript

    jsoncpp

    → Libraries → JSON/XML

    kbd

    → Hardware handling

    kbproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    kernel-module-imx-gpu-viv

    → Hardware handling

    kexec

    → Debugging, profiling and benchmark

    kexec-lite

    → Debugging, profiling and benchmark

    keyutils

    → System tools

    kismet

    → Networking applications

    kmod

    → System tools

    knock

    → Networking applications

    kodi

    → Audio and video applications

    kodi-addon-xvdr

    → Audio and video applications → PVR addons

    kodi-audiodecoder-modplug

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-nosefart

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-sidplay

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-snesapu

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-stsound

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-timidity

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-vgmstream

    → Audio and video applications → Audio decoder addons

    kodi-audioencoder-flac

    → Audio and video applications → Audio encoder addons

    kodi-audioencoder-lame

    → Audio and video applications → Audio encoder addons

    kodi-audioencoder-vorbis

    → Audio and video applications → Audio encoder addons

    kodi-audioencoder-wav

    → Audio and video applications → Audio encoder addons

    kodi-pvr-argustv

    → Audio and video applications → PVR addons

    kodi-pvr-dvblink

    → Audio and video applications → PVR addons

    kodi-pvr-dvbviewer

    → Audio and video applications → PVR addons

    kodi-pvr-filmon

    → Audio and video applications → PVR addons

    kodi-pvr-hts

    → Audio and video applications → PVR addons

    kodi-pvr-iptvsimple

    → Audio and video applications → PVR addons

    kodi-pvr-mediaportal-tvserver

    → Audio and video applications → PVR addons

    kodi-pvr-mythtv

    → Audio and video applications → PVR addons

    kodi-pvr-nextpvr

    → Audio and video applications → PVR addons

    kodi-pvr-njoy

    → Audio and video applications → PVR addons

    kodi-pvr-pctv

    → Audio and video applications → PVR addons

    kodi-pvr-stalker

    → Audio and video applications → PVR addons

    kodi-pvr-vbox

    → Audio and video applications → PVR addons

    kodi-pvr-vdr-vnsi

    → Audio and video applications → PVR addons

    kodi-pvr-vuplus

    → Audio and video applications → PVR addons

    kodi-pvr-wmc

    → Audio and video applications → PVR addons

    kodi-screensaver-asteroids

    → Audio and video applications → Screensavers

    kodi-screensaver-biogenesis

    → Audio and video applications → Screensavers

    kodi-screensaver-crystalmorph

    → Audio and video applications → Screensavers

    kodi-screensaver-greynetic

    → Audio and video applications → Screensavers

    kodi-screensaver-pingpong

    → Audio and video applications → Screensavers

    kodi-screensaver-pyro

    → Audio and video applications → Screensavers

    kodi-screensaver-stars

    → Audio and video applications → Screensavers

    kodi-visualisation-shadertoy

    → Audio and video applications → Visualisations

    kodi-visualisation-spectrum

    → Audio and video applications → Visualisations

    kodi-visualisation-waveforhue

    → Audio and video applications → Visualisations

    kodi-visualisation-waveform

    → Audio and video applications → Visualisations

    kompexsqlite

    → Libraries → Database

    ktap

    → Debugging, profiling and benchmark

    kvmtool

    → System tools

    kyua

    → Debugging, profiling and benchmark

    lame

    → Audio and video applications

    latencytop

    → Debugging, profiling and benchmark

    lbase64

    → Interpreter languages and scripting → Lua libraries/modules

    LBreakout2

    → Games

    lcdapi

    → Libraries → Hardware handling

    lcdproc

    → Hardware handling

    lcms2

    → Libraries → Graphics

    leafnode2

    → Networking applications

    leafpad

    → Graphic libraries and applications (graphic/text)

    less

    → Text editors and viewers

    lesstif

    → Libraries → Graphics

    leveldb

    → Libraries → Database

    lftp

    → Networking applications

    libaio

    → Libraries → Hardware handling

    libao

    → Libraries → Audio/Sound

    libarchive

    → Libraries → Compression and decompression

    libargtable2

    → Libraries → Other

    libart

    → Libraries → Graphics

    libasplib

    → Libraries → Audio/Sound

    libass

    → Libraries → Multimedia

    libassuan

    → Libraries → Crypto

    libatasmart

    → Libraries → Hardware handling

    libatomic_ops

    → Libraries → Other

    libbluray

    → Libraries → Multimedia

    libbroadvoice

    → Libraries → Audio/Sound

    libbsd

    → Libraries → Other

    libcap

    → Libraries → Other

    libcap-ng

    → Libraries → Other

    libcdaudio

    → Libraries → Audio/Sound

    libcddb

    → Libraries → Audio/Sound

    libcdio

    → Libraries → Audio/Sound

    libcec

    → Libraries → Hardware handling

    libcgi

    → Libraries → Networking

    libcgicc

    → Libraries → Networking

    libcgroup

    → Libraries → Other

    libcli

    → Libraries → Text and terminal handling

    libcodec2

    → Libraries → Audio/Sound

    libcofi

    → Libraries → Other

    libconfig

    → Libraries → Filesystem

    libconfuse

    → Libraries → Filesystem

    libcroco

    → Libraries → Other

    libcrossguid

    → Libraries → Other

    libcue

    → Libraries → Audio/Sound

    libcuefile

    → Libraries → Audio/Sound

    libcurl

    → Libraries → Networking

    libdaemon

    → Libraries → Other

    libdcadec

    → Libraries → Multimedia

    libdmtx

    → Libraries → Graphics

    libdmx

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libdnet

    → Libraries → Networking

    libdri2

    → Libraries → Graphics

    libdrm

    → Libraries → Graphics

    libdvbcsa

    → Libraries → Multimedia

    libdvbpsi

    → Libraries → Multimedia

    libdvbsi

    → Libraries → Multimedia

    libdvdnav

    → Libraries → Multimedia

    libdvdread

    → Libraries → Multimedia

    libebml

    → Libraries → Multimedia

    libedit

    → Libraries → Text and terminal handling

    libee

    → Libraries → Other

    libenca

    → Libraries → Text and terminal handling

    Liberation (Free fonts)

    → Fonts, cursors, icons, sounds and themes

    libesmtp

    → Mail

    libestr

    → Libraries → Text and terminal handling

    libev

    → Libraries → Other

    libevas generic loaders

    → Libraries → Graphics

    libevdev

    → Libraries → Other

    libevent

    → Libraries → Other

    libexif

    → Libraries → Graphics

    libeXosip2

    → Libraries → Networking

    libfcgi

    → Libraries → Networking

    libffi

    → Libraries → Other

    libfm

    → Libraries → Graphics

    libfm-extra

    → Libraries → Graphics

    libfontenc

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libfreefare

    → Libraries → Hardware handling

    libfreeglut

    → Libraries → Graphics

    libfreeimage

    → Libraries → Graphics

    libfribidi

    → Libraries → Text and terminal handling

    libFS

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libfslcodec

    → Libraries → Multimedia

    libfslparser

    → Libraries → Multimedia

    libfslvpuwrap

    → Libraries → Multimedia

    libftdi

    → Libraries → Hardware handling

    libftdi1

    → Libraries → Hardware handling

    libfuse

    → Libraries → Filesystem

    libg7221

    → Libraries → Audio/Sound

    libgail (deprecated)

    → Libraries → Graphics

    libgcrypt

    → Libraries → Crypto

    libgdiplus

    → Libraries → Graphics

    libgeotiff

    → Libraries → Graphics

    libglade

    → Libraries → Graphics

    libglew

    → Libraries → Graphics

    libglfw

    → Libraries → Graphics

    libglib2

    → Libraries → Other

    libglu

    → Libraries → Graphics

    libgpg-error

    → Libraries → Crypto

    libgpgme

    → Libraries → Crypto

    libgsasl

    → Libraries → Networking

    libgtk2

    → Libraries → Graphics

    libgtk3

    → Libraries → Graphics

    libgudev

    → Libraries → Hardware handling

    libhdhomerun

    → Libraries → Multimedia

    libhid

    → Libraries → Hardware handling

    libhttpparser

    → Libraries → Networking

    libical

    → Libraries → Other

    libICE

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libiconv

    → Libraries → Text and terminal handling

    libid3tag

    → Libraries → Audio/Sound

    libidn

    → Libraries → Networking

    libiio

    → Libraries → Hardware handling

    libilbc

    → Libraries → Audio/Sound

    libinput

    → Libraries → Hardware handling

    libiqrf

    → Libraries → Hardware handling

    libiscsi

    → Libraries → Networking

    libjson

    → Libraries → JSON/XML

    libksba

    → Libraries → Crypto

    libldns

    → Libraries → Networking

    liblinear

    → Libraries → Other

    libllcp

    → Libraries → Hardware handling

    liblo

    → Libraries → Audio/Sound

    liblockfile

    → Libraries → Filesystem

    liblog4c-localtime

    → Libraries → Logging

    liblogging

    → Libraries → Logging

    libmad

    → Libraries → Audio/Sound

    libmatroska

    → Libraries → Multimedia

    libmbim

    → Libraries → Hardware handling

    libmbus

    → Libraries → Networking

    libmcrypt

    → Libraries → Crypto

    libmemcached

    → Libraries → Networking

    libmhash

    → Libraries → Crypto

    libmicrohttpd

    → Libraries → Networking

    libmms

    → Libraries → Multimedia

    libmng

    → Libraries → Graphics

    libmnl

    → Libraries → Networking

    libmodbus

    → Libraries → Networking

    libmodplug

    → Libraries → Audio/Sound

    libmpd

    → Libraries → Audio/Sound

    libmpdclient

    → Libraries → Audio/Sound

    libmpeg2

    → Libraries → Multimedia

    libndp

    → Libraries → Networking

    libneon

    → Libraries → Networking

    libnet

    → Libraries → Networking

    libnetfilter_acct

    → Libraries → Networking

    libnetfilter_conntrack

    → Libraries → Networking

    libnetfilter_cthelper

    → Libraries → Networking

    libnetfilter_cttimeout

    → Libraries → Networking

    libnetfilter_log

    → Libraries → Networking

    libnetfilter_queue

    → Libraries → Networking

    libnfc

    → Libraries → Hardware handling

    libnfnetlink

    → Libraries → Networking

    libnfs

    → Libraries → Filesystem

    libnftnl

    → Libraries → Networking

    libnice

    → Libraries → Networking

    libnl

    → Libraries → Networking

    libnspr

    → Libraries → Other

    libnss

    → Libraries → Crypto

    liboauth

    → Libraries → Networking

    libogg

    → Libraries → Multimedia

    libopenh264

    → Libraries → Multimedia

    liboping

    → Libraries → Networking

    libosip2

    → Libraries → Networking

    libpam-radius-auth

    → Libraries → Other

    libpam-tacplus

    → Libraries → Other

    libpcap

    → Libraries → Networking

    libpciaccess

    → Libraries → Hardware handling

    libpfm4

    → Libraries → Other

    libphidget

    → Libraries → Hardware handling

    libplayer

    → Libraries → Multimedia

    libplist

    → Libraries → Other

    libpng

    → Libraries → Graphics

    libpthread-stubs

    → Libraries → Other

    libpthsem

    → Libraries → Other

    libqmi

    → Libraries → Hardware handling

    libqrencode

    → Libraries → Graphics

    libraw

    → Libraries → Graphics

    libraw1394

    → Libraries → Hardware handling

    libreplaygain

    → Libraries → Audio/Sound

    librsvg

    → Libraries → Graphics

    librsync

    → Libraries → Networking

    librtas

    → Libraries → Hardware handling

    librtlsdr

    → Libraries → Hardware handling

    librtmp

    → Libraries → Networking

    libsamplerate

    → Libraries → Audio/Sound

    libseccomp

    → Libraries → Other

    libsecret

    → Libraries → Crypto

    libselinux

    → Libraries → Security

    libsemanage

    → Libraries → Security

    libsepol

    → Libraries → Security

    libserial

    → Libraries → Hardware handling

    libserialport

    → Libraries → Hardware handling

    libsexy

    → Graphic libraries and applications (graphic/text)

    libsha1

    → Libraries → Crypto

    libshairplay

    → Libraries → Networking

    libshout

    → Libraries → Networking

    libsidplay2

    → Libraries → Audio/Sound

    libsigc++

    → Libraries → Other

    libsigrok

    → Libraries → Hardware handling

    libsigrokdecode

    → Libraries → Hardware handling

    libsigsegv

    → Libraries → Other

    libsilk

    → Libraries → Audio/Sound

    libSM

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libsndfile

    → Libraries → Audio/Sound

    libsoc

    → Libraries → Hardware handling

    libsocketcan

    → Libraries → Networking

    libsodium

    → Libraries → Crypto

    libsoil

    → Libraries → Graphics

    libsoundtouch

    → Libraries → Audio/Sound

    libsoup

    → Libraries → Networking

    libsoxr

    → Libraries → Audio/Sound

    libsquish

    → Libraries → Compression and decompression

    libsrtp

    → Libraries → Networking

    libssh

    → Libraries → Crypto

    libssh2

    → Libraries → Crypto

    libstrophe

    → Libraries → Networking

    libsvg

    → Libraries → Graphics

    libsvg-cairo

    → Libraries → Graphics

    libsvgtiny

    → Libraries → Graphics

    libsysfs

    → Libraries → Filesystem

    libtasn1

    → Libraries → Other

    libtheora

    → Libraries → Multimedia

    libtirpc

    → Libraries → Networking

    libtool

    → Development tools

    libtorrent

    → Libraries → Networking

    libtpl

    → Libraries → Other

    libubox

    → Libraries → Other

    libuci

    → Libraries → Other

    libucl

    → Libraries → JSON/XML

    libuecc

    → Libraries → Crypto

    libump

    → Hardware handling

    libunistring

    → Libraries → Text and terminal handling

    libunwind

    → Libraries → Other

    libupnp

    → Libraries → Networking

    libupnpp

    → Libraries → Networking

    liburcu

    → Libraries → Other

    liburiparser

    → Libraries → Networking

    libusb

    → Libraries → Hardware handling

    libusb-compat

    → Libraries → Hardware handling

    libuv

    → Libraries → Other

    libv4l

    → Libraries → Hardware handling

    libva

    → Libraries → Graphics

    libva-intel-driver

    → Libraries → Graphics

    libvips

    → Libraries → Graphics

    libvncserver

    → Libraries → Networking

    libvorbis

    → Libraries → Audio/Sound

    libvpx

    → Libraries → Multimedia

    libwebsock

    → Libraries → Networking

    libwebsockets

    → Libraries → Networking

    libX11

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXau

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXaw

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxcb

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXcomposite

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXcursor

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXdamage

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXdmcp

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXext

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXfixes

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXfont

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXft

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXi

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXinerama

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxkbcommon

    → Libraries → Hardware handling

    libxkbfile

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxml++

    → Libraries → JSON/XML

    libxml2

    → Libraries → JSON/XML

    libxmlrpc

    → Libraries → JSON/XML

    libXmu

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXpm

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXrandr

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXrender

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXres

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXScrnSaver

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxshmfence

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxslt

    → Libraries → JSON/XML

    libXt

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXtst

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXv

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXvMC

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXxf86dga

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXxf86vm

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libyaml

    → Libraries → JSON/XML

    libyuv

    → Libraries → Multimedia

    libz160

    → Hardware handling

    libzip

    → Libraries → Compression and decompression

    lightning

    → Libraries → Other

    lighttpd

    → Networking applications

    linenoise

    → Libraries → Text and terminal handling

    linknx

    → Networking applications

    links

    → Networking applications

    linphone

    → Networking applications

    linux-backports

    → Hardware handling

    linux-firmware

    → Hardware handling → Firmware

    linux-fusion communication layer for DirectFB multi

    → Graphic libraries and applications (graphic/text)

    linux-pam

    → Libraries → Other

    linux-zigbee

    → Networking applications

    liquid-dsp

    → Libraries → Other

    lirc-tools

    → Hardware handling

    listres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    LiTE (toolbox engine)

    → Graphic libraries and applications (graphic/text)

    live555

    → Libraries → Multimedia

    ljlinenoise

    → Interpreter languages and scripting → Lua libraries/modules

    ljsyscall

    → Interpreter languages and scripting → Lua libraries/modules

    lldpd

    → Networking applications

    lm-sensors

    → Hardware handling

    lmbench

    → Debugging, profiling and benchmark

    lockdev

    → Libraries → Filesystem

    lockfile programs

    → Shell and utilities

    log4cplus

    → Libraries → Logging

    log4cxx

    → Libraries → Logging

    logrotate

    → Shell and utilities

    logsurfer

    → Shell and utilities

    lpeg

    → Interpreter languages and scripting → Lua libraries/modules

    lpty

    → Interpreter languages and scripting → Lua libraries/modules

    lrandom

    → Interpreter languages and scripting → Lua libraries/modules

    lrzsz

    → Networking applications

    lshw

    → Hardware handling

    lsof

    → Debugging, profiling and benchmark

    lsqlite3

    → Interpreter languages and scripting → Lua libraries/modules

    lsuio

    → Hardware handling

    ltp-testsuite

    → Debugging, profiling and benchmark

    ltrace

    → Debugging, profiling and benchmark

    LTris

    → Games

    lttng-babeltrace

    → Debugging, profiling and benchmark

    lttng-libust

    → Libraries → Other

    lttng-modules

    → Debugging, profiling and benchmark

    lttng-tools

    → Debugging, profiling and benchmark

    lua

    → Interpreter languages and scripting

    lua-cjson

    → Interpreter languages and scripting → Lua libraries/modules

    lua-coat

    → Interpreter languages and scripting → Lua libraries/modules

    lua-coatpersistent

    → Interpreter languages and scripting → Lua libraries/modules

    lua-csnappy

    → Interpreter languages and scripting → Lua libraries/modules

    lua-ev

    → Interpreter languages and scripting → Lua libraries/modules

    lua-iconv

    → Interpreter languages and scripting → Lua libraries/modules

    lua-messagepack

    → Interpreter languages and scripting → Lua libraries/modules

    lua-msgpack-native

    → Interpreter languages and scripting → Lua libraries/modules

    lua-periphery

    → Interpreter languages and scripting → Lua libraries/modules

    lua-testmore

    → Interpreter languages and scripting → Lua libraries/modules

    luabitop

    → Interpreter languages and scripting → Lua libraries/modules

    luacrypto

    → Interpreter languages and scripting → Lua libraries/modules

    luaexpat

    → Interpreter languages and scripting → Lua libraries/modules

    luaexpatutils

    → Interpreter languages and scripting → Lua libraries/modules

    luafilesystem

    → Interpreter languages and scripting → Lua libraries/modules

    luajit

    → Interpreter languages and scripting

    luajson

    → Interpreter languages and scripting → Lua libraries/modules

    lualogging

    → Interpreter languages and scripting → Lua libraries/modules

    luaposix

    → Interpreter languages and scripting → Lua libraries/modules

    luasec

    → Interpreter languages and scripting → Lua libraries/modules

    luasocket

    → Interpreter languages and scripting → Lua libraries/modules

    luasql-sqlite3

    → Interpreter languages and scripting → Lua libraries/modules

    luit

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    lunit

    → Interpreter languages and scripting → Lua libraries/modules

    lutok

    → Interpreter languages and scripting

    luv

    → Interpreter languages and scripting → Lua libraries/modules

    luvi

    → Interpreter languages and scripting → Lua libraries/modules

    lvm2 & device mapper

    → Hardware handling

    lxc

    → System tools

    lz4

    → Compressors and decompressors

    lzip

    → Compressors and decompressors

    lzlib

    → Interpreter languages and scripting → Lua libraries/modules

    lzo

    → Libraries → Compression and decompression

    lzop

    → Compressors and decompressors

    macchanger

    → Networking applications

    madplay

    → Audio and video applications

    make

    → Development tools

    makedepend

    → Graphic libraries and applications (graphic/text) → X11R7 Utilities

    makedevs

    → Filesystem and flash utilities

    matchbox

    → Graphic libraries and applications (graphic/text)

    matchbox-common

    → Graphic libraries and applications (graphic/text)

    matchbox-desktop

    → Graphic libraries and applications (graphic/text)

    matchbox-fakekey

    → Graphic libraries and applications (graphic/text)

    matchbox-keyboard

    → Graphic libraries and applications (graphic/text)

    matchbox-lib

    → Graphic libraries and applications (graphic/text)

    matchbox-panel

    → Graphic libraries and applications (graphic/text)

    matchbox-startup-monitor

    → Graphic libraries and applications (graphic/text)

    mbedtls

    → Libraries → Crypto

    mc

    → Text editors and viewers

    mcelog

    → Debugging, profiling and benchmark

    mcookie

    → Graphic libraries and applications (graphic/text) → X11R7 Utilities

    mcrypt

    → Miscellaneous

    mdadm

    → Hardware handling

    mediastreamer

    → Libraries → Multimedia

    memcached

    → Networking applications

    memstat

    → Debugging, profiling and benchmark

    memtest86

    → Hardware handling

    memtester

    → Hardware handling

    menu-cache

    → Libraries → Graphics

    mesa3d

    → Graphic libraries and applications (graphic/text)

    mesa3d-demos

    → Graphic libraries and applications (graphic/text)

    metacity

    → Graphic libraries and applications (graphic/text)

    micropython

    → Interpreter languages and scripting

    micropython-lib

    → Interpreter languages and scripting

    midori

    → Graphic libraries and applications (graphic/text)

    mii-diag

    → Networking applications

    Mini-XML

    → Libraries → JSON/XML

    minicom

    → Hardware handling

    minidlna

    → Networking applications

    minizip

    → Libraries → Compression and decompression

    miraclecast

    → Audio and video applications

    mjpegtools

    → Audio and video applications

    mjpg-streamer

    → Networking applications

    mkfontdir

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    mkfontscale

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    mmc-utils

    → Filesystem and flash utilities

    moarvm

    → Interpreter languages and scripting

    mobile-broadband-provider-info

    → Miscellaneous

    modemmanager

    → Networking applications

    modplugtools

    → Audio and video applications

    mongodb

    → Libraries → Database

    mongoose

    → Libraries → Networking

    mongrel2

    → Networking applications

    monit

    → System tools

    monkey

    → Networking applications

    mono

    → Interpreter languages and scripting

    mosh

    → Networking applications

    mosquitto

    → Networking applications

    mp4v2

    → Libraries → Audio/Sound

    mpc

    → Libraries → Other

    mpd

    → Audio and video applications

    mpd-mpc

    → Audio and video applications

    mpdecimal

    → Libraries → Other

    mpfr

    → Libraries → Other

    mpg123

    → Audio and video applications

    mplayer

    → Audio and video applications

    mraa

    → Libraries → Hardware handling

    mrouted

    → Networking applications

    msgpack

    → Libraries → Other

    msmtp

    → Mail

    mtd, jffs2 and ubi/ubifs tools

    → Filesystem and flash utilities

    mtdev

    → Libraries → Hardware handling

    mtdev2tuio

    → Libraries → Other

    mtools

    → Filesystem and flash utilities

    mtr

    → Networking applications

    Multimedia Module

    → Graphic libraries and applications (graphic/text)

    musepack

    → Audio and video applications

    mutt

    → Mail

    MySQL

    → Libraries → Database

    nano

    → Text editors and viewers

    nanocom

    → Hardware handling

    nbd

    → Networking applications

    ncdu

    → System tools

    ncftp

    → Networking applications

    ncmpc

    → Audio and video applications

    ncurses

    → Libraries → Text and terminal handling

    ndisc6 tools

    → Networking applications

    ne10

    → Libraries → Hardware handling

    neard

    → Hardware handling

    neardal

    → Libraries → Hardware handling

    net-tools

    → Networking applications

    netatalk

    → Networking applications

    netcat

    → Networking applications

    netcat-openbsd

    → Networking applications

    netperf

    → Debugging, profiling and benchmark

    netplug

    → Networking applications

    netsniff-ng

    → Debugging, profiling and benchmark

    netsnmp

    → Networking applications

    netstat-nat

    → Networking applications

    nettle

    → Libraries → Crypto

    networkmanager

    → Networking applications

    newt

    → Libraries → Text and terminal handling

    nfacct

    → Networking applications

    nfs-utils

    → Filesystem and flash utilities

    nftables

    → Networking applications

    nginx

    → Networking applications

    ngircd

    → Networking applications

    ngrep

    → Networking applications

    nmap

    → Networking applications

    nodejs

    → Interpreter languages and scripting

    noip

    → Networking applications

    nss-mdns

    → Libraries → Networking

    nss-pam-ldapd

    → Libraries → Networking

    ntfs-3g

    → Filesystem and flash utilities

    ntp

    → Networking applications

    numactl

    → System tools

    nut

    → System tools

    nuttcp

    → Networking applications

    nvidia-driver

    → Hardware handling

    nvidia-tegra23

    → Hardware handling

    nvidia-tegra23 binaries

    → Hardware handling

    nvidia-tegra23 codecs

    → Hardware handling

    obsidian-cursors

    → Fonts, cursors, icons, sounds and themes

    ocf-linux

    → Libraries → Crypto → cryptodev variant

    oclock

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    ocrad

    → Graphic libraries and applications (graphic/text)

    odhcp6c

    → Networking applications

    odhcploc

    → Networking applications

    ofono

    → Hardware handling

    ola (open lighting architecture)

    → Hardware handling

    olsrd

    → Networking applications

    omniorb

    → Libraries → Networking

    on2-8170-libs

    → Audio and video applications

    on2-8170-modules

    → Hardware handling

    open-plc-utils

    → Networking applications

    open2300

    → Hardware handling

    openal

    → Libraries → Audio/Sound

    openbox

    → Graphic libraries and applications (graphic/text)

    opencore-amr

    → Libraries → Audio/Sound

    opencv-2.4

    → Libraries → Graphics

    opencv3

    → Libraries → Graphics

    openipmi

    → Hardware handling

    openjpeg

    → Libraries → Graphics

    openldap

    → Libraries → Networking

    openntpd

    → Networking applications

    openobex

    → Networking applications

    openocd

    → Hardware handling

    openpgm

    → Libraries → Networking

    openpowerlink

    → Hardware handling

    openssh

    → Networking applications

    openssl

    → Libraries → Crypto

    openswan

    → Networking applications

    OpenTyrian

    → Games

    OpenTyrian data

    → Games

    openvmtools

    → System tools

    openvpn

    → Networking applications

    opkg

    → Package managers

    oprofile

    → Debugging, profiling and benchmark

    opus

    → Libraries → Audio/Sound

    opus-tools

    → Audio and video applications

    opusfile

    → Libraries → Audio/Sound

    orbit

    → Interpreter languages and scripting → Lua libraries/modules

    orc

    → Libraries → Other

    oRTP

    → Libraries → Networking

    owl-linux

    → Hardware handling

    p11-kit

    → Libraries → Other

    p910nd

    → Networking applications

    pango

    → Libraries → Graphics

    pangomm

    → Libraries → Graphics

    parted

    → Hardware handling

    patch

    → Development tools

    pax-utils

    → Debugging, profiling and benchmark

    pciutils

    → Hardware handling

    pcmanfm

    → Graphic libraries and applications (graphic/text)

    pcre

    → Libraries → Text and terminal handling

    pcsc-lite

    → Libraries → Hardware handling

    perl

    → Interpreter languages and scripting

    perl-crypt-openssl-random

    → Interpreter languages and scripting → Perl libraries/modules

    perl-crypt-openssl-rsa

    → Interpreter languages and scripting → Perl libraries/modules

    perl-datetime-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-db-file

    → Interpreter languages and scripting → Perl libraries/modules

    perl-digest-hmac

    → Interpreter languages and scripting → Perl libraries/modules

    perl-digest-sha1

    → Interpreter languages and scripting → Perl libraries/modules

    perl-encode-detect

    → Interpreter languages and scripting → Perl libraries/modules

    perl-encode-locale

    → Interpreter languages and scripting → Perl libraries/modules

    perl-file-listing

    → Interpreter languages and scripting → Perl libraries/modules

    perl-file-util

    → Interpreter languages and scripting → Perl libraries/modules

    perl-gd

    → Interpreter languages and scripting → Perl libraries/modules

    perl-gdgraph

    → Interpreter languages and scripting → Perl libraries/modules

    perl-gdtextutil

    → Interpreter languages and scripting → Perl libraries/modules

    perl-html-parser

    → Interpreter languages and scripting → Perl libraries/modules

    perl-html-tagset

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-cookies

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-daemon

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-date

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-message

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-negotiate

    → Interpreter languages and scripting → Perl libraries/modules

    perl-io-html

    → Interpreter languages and scripting → Perl libraries/modules

    perl-io-socket-ssl

    → Interpreter languages and scripting → Perl libraries/modules

    perl-json-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-libwww-perl

    → Interpreter languages and scripting → Perl libraries/modules

    perl-lwp-mediatypes

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mail-dkim

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mailtools

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mime-base64

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mojolicious

    → Interpreter languages and scripting → Perl libraries/modules

    perl-net-dns

    → Interpreter languages and scripting → Perl libraries/modules

    perl-net-http

    → Interpreter languages and scripting → Perl libraries/modules

    perl-net-ssleay

    → Interpreter languages and scripting → Perl libraries/modules

    perl-netaddr-ip

    → Interpreter languages and scripting → Perl libraries/modules

    perl-path-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-time-hires

    → Interpreter languages and scripting → Perl libraries/modules

    perl-timedate

    → Interpreter languages and scripting → Perl libraries/modules

    perl-try-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-uri

    → Interpreter languages and scripting → Perl libraries/modules

    perl-www-robotrules

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-libxml

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-namespacesupport

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-sax

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-sax-base

    → Interpreter languages and scripting → Perl libraries/modules

    phidgetwebservice

    → Networking applications

    php

    → Interpreter languages and scripting

    php-geoip

    → Interpreter languages and scripting → External php extensions

    php-gnupg

    → Interpreter languages and scripting → External php extensions

    php-imagick

    → Interpreter languages and scripting → External php extensions

    php-memcached

    → Interpreter languages and scripting → External php extensions

    php-ssh2

    → Interpreter languages and scripting → External php extensions

    php-yaml

    → Interpreter languages and scripting → External php extensions

    php-zmq

    → Interpreter languages and scripting → External php extensions

    picocom

    → Hardware handling

    pifmrds

    → Hardware handling

    pinentry

    → Shell and utilities

    pixman

    → Libraries → Graphics

    pkgconf

    → Development tools

    poco

    → Libraries → Other

    polarssl

    → Libraries → Crypto

    polkit

    → System tools

    poppler

    → Libraries → Graphics

    popt

    → Libraries → Text and terminal handling

    portaudio

    → Libraries → Audio/Sound

    portmap

    → Networking applications

    postgresql

    → Libraries → Database

    powerpc-utils

    → System tools

    powertop

    → Hardware handling

    pppd

    → Networking applications

    pps-tools

    → Hardware handling

    pptp-linux

    → Networking applications

    prboom

    → Games

    presentproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    procps-ng

    → System tools

    proftpd

    → Networking applications

    protobuf

    → Libraries → Other

    protobuf-c

    → Libraries → Other

    proxychains-ng

    → Networking applications

    psmisc

    → System tools

    psplash

    → Graphic libraries and applications (graphic/text)

    ptpd

    → Networking applications

    ptpd2

    → Networking applications

    pulseaudio

    → Audio and video applications

    pulseview

    → Hardware handling

    pure-ftpd

    → Networking applications

    pv

    → Debugging, profiling and benchmark

    pwgen

    → System tools

    python

    → Interpreter languages and scripting

    python-alsaaudio

    → Interpreter languages and scripting → External python modules

    python-backports-abc

    → Interpreter languages and scripting → External python modules

    python-beautifulsoup4

    → Interpreter languages and scripting → External python modules

    python-bottle

    → Interpreter languages and scripting → External python modules

    python-can

    → Interpreter languages and scripting → External python modules

    python-cbor

    → Interpreter languages and scripting → External python modules

    python-certifi

    → Interpreter languages and scripting → External python modules

    python-cffi

    → Interpreter languages and scripting → External python modules

    python-cheetah

    → Interpreter languages and scripting → External python modules

    python-cherrypy

    → Interpreter languages and scripting → External python modules

    python-click

    → Interpreter languages and scripting → External python modules

    python-coherence

    → Interpreter languages and scripting → External python modules

    python-configobj

    → Interpreter languages and scripting → External python modules

    python-configshell-fb

    → Interpreter languages and scripting → External python modules

    python-crc16

    → Interpreter languages and scripting → External python modules

    python-cssselect

    → Interpreter languages and scripting → External python modules

    python-daemon

    → Interpreter languages and scripting → External python modules

    python-dialog

    → Interpreter languages and scripting → External python modules

    python-django

    → Interpreter languages and scripting → External python modules

    python-docopt

    → Interpreter languages and scripting → External python modules

    python-dpkt

    → Interpreter languages and scripting → External python modules

    python-ecdsa

    → Interpreter languages and scripting → External python modules

    python-enum

    → Interpreter languages and scripting → External python modules

    python-enum34

    → Interpreter languages and scripting → External python modules

    python-flask

    → Interpreter languages and scripting → External python modules

    python-flup

    → Interpreter languages and scripting → External python modules

    python-gobject

    → Interpreter languages and scripting → External python modules

    python-html5lib

    → Interpreter languages and scripting → External python modules

    python-httplib2

    → Interpreter languages and scripting → External python modules

    python-id3

    → Interpreter languages and scripting → External python modules

    python-idna

    → Interpreter languages and scripting → External python modules

    python-ipaddr

    → Interpreter languages and scripting → External python modules

    python-ipaddress

    → Interpreter languages and scripting → External python modules

    python-ipy

    → Interpreter languages and scripting → External python modules

    python-ipython

    → Interpreter languages and scripting → External python modules

    python-itsdangerous

    → Interpreter languages and scripting → External python modules

    python-jinja2

    → Interpreter languages and scripting → External python modules

    python-json-schema-validator

    → Interpreter languages and scripting → External python modules

    python-keyring

    → Interpreter languages and scripting → External python modules

    python-libconfig

    → Interpreter languages and scripting → External python modules

    python-lxml

    → Interpreter languages and scripting → External python modules

    python-mad

    → Interpreter languages and scripting → External python modules

    python-mako

    → Interpreter languages and scripting → External python modules

    python-markdown

    → Interpreter languages and scripting → External python modules

    python-markupsafe

    → Interpreter languages and scripting → External python modules

    python-meld3

    → Interpreter languages and scripting → External python modules

    python-mistune

    → Interpreter languages and scripting → External python modules

    python-msgpack

    → Interpreter languages and scripting → External python modules

    python-netaddr

    → Interpreter languages and scripting → External python modules

    python-netifaces

    → Interpreter languages and scripting → External python modules

    python-networkmanager

    → Interpreter languages and scripting → External python modules

    python-nfc

    → Interpreter languages and scripting → External python modules

    python-numpy

    → Interpreter languages and scripting → External python modules

    python-paho-mqtt

    → Interpreter languages and scripting → External python modules

    python-pam

    → Interpreter languages and scripting → External python modules

    python-paramiko

    → Interpreter languages and scripting → External python modules

    python-posix-ipc

    → Interpreter languages and scripting → External python modules

    python-protobuf

    → Interpreter languages and scripting → External python modules

    python-psutil

    → Interpreter languages and scripting → External python modules

    python-pyasn

    → Interpreter languages and scripting → External python modules

    python-pycli

    → Interpreter languages and scripting → External python modules

    python-pycrypto

    → Interpreter languages and scripting → External python modules

    python-pydal

    → Interpreter languages and scripting → External python modules

    python-pyftpdlib

    → Interpreter languages and scripting → External python modules

    python-pygame

    → Interpreter languages and scripting → External python modules

    python-pyinotify

    → Interpreter languages and scripting → External python modules

    python-pyparsing

    → Interpreter languages and scripting → External python modules

    python-pyparted

    → Interpreter languages and scripting → External python modules

    python-pypcap

    → Interpreter languages and scripting → External python modules

    python-pyqt

    → Interpreter languages and scripting → External python modules

    python-pyratemp

    → Interpreter languages and scripting → External python modules

    python-pyro

    → Interpreter languages and scripting → External python modules

    python-pyroute2

    → Interpreter languages and scripting → External python modules

    python-pysendfile

    → Interpreter languages and scripting → External python modules

    python-pysmb

    → Interpreter languages and scripting → External python modules

    python-pysnmp

    → Interpreter languages and scripting → External python modules

    python-pysnmp-apps

    → Interpreter languages and scripting → External python modules

    python-pysnmp-mibs

    → Interpreter languages and scripting → External python modules

    python-pyudev

    → Interpreter languages and scripting → External python modules

    python-pyusb

    → Interpreter languages and scripting → External python modules

    python-pyxb

    → Interpreter languages and scripting → External python modules

    python-pyyaml

    → Interpreter languages and scripting → External python modules

    python-pyzmq

    → Interpreter languages and scripting → External python modules

    python-requests

    → Interpreter languages and scripting → External python modules

    python-rtslib-fb

    → Interpreter languages and scripting → External python modules

    python-serial

    → Interpreter languages and scripting → External python modules

    python-setuptools

    → Interpreter languages and scripting → External python modules

    python-simplejson

    → Interpreter languages and scripting → External python modules

    python-singledispatch

    → Interpreter languages and scripting → External python modules

    python-sip

    → Interpreter languages and scripting → External python modules

    python-six

    → Interpreter languages and scripting → External python modules

    python-smbus-cffi

    → Interpreter languages and scripting → External python modules

    python-spidev

    → Interpreter languages and scripting → External python modules

    python-thrift

    → Interpreter languages and scripting → External python modules

    python-tornado

    → Interpreter languages and scripting → External python modules

    python-twisted

    → Interpreter languages and scripting → External python modules

    python-urllib3

    → Interpreter languages and scripting → External python modules

    python-urwid

    → Interpreter languages and scripting → External python modules

    python-versiontools

    → Interpreter languages and scripting → External python modules

    python-web2py

    → Interpreter languages and scripting → External python modules

    python-webpy

    → Interpreter languages and scripting → External python modules

    python-werkzeug

    → Interpreter languages and scripting → External python modules

    python-ws4py

    → Interpreter languages and scripting → External python modules

    python-zope-interface

    → Interpreter languages and scripting → External python modules

    python3

    → Interpreter languages and scripting

    qdecoder

    → Libraries → Networking

    QEMU

    → Miscellaneous

    qextserialport

    → Graphic libraries and applications (graphic/text)

    qhull

    → Libraries → Other

    qjson

    → Graphic libraries and applications (graphic/text)

    qlibc

    → Libraries → Other

    qpdf

    → Miscellaneous

    qpid-proton

    → Libraries → Networking

    Qt

    → Graphic libraries and applications (graphic/text)

    qt-webkit-kiosk

    → Graphic libraries and applications (graphic/text)

    Qt5

    → Graphic libraries and applications (graphic/text)

    qt53d

    → Graphic libraries and applications (graphic/text)

    qt5base

    → Graphic libraries and applications (graphic/text)

    qt5cinex

    → Graphic libraries and applications (graphic/text)

    qt5connectivity

    → Graphic libraries and applications (graphic/text)

    qt5declarative

    → Graphic libraries and applications (graphic/text)

    qt5enginio

    → Graphic libraries and applications (graphic/text)

    qt5graphicaleffects

    → Graphic libraries and applications (graphic/text)

    qt5imageformats

    → Graphic libraries and applications (graphic/text)

    qt5multimedia

    → Graphic libraries and applications (graphic/text)

    qt5quick1

    → Graphic libraries and applications (graphic/text)

    qt5quickcontrols

    → Graphic libraries and applications (graphic/text)

    qt5script

    → Graphic libraries and applications (graphic/text)

    qt5sensors

    → Graphic libraries and applications (graphic/text)

    qt5serialport

    → Graphic libraries and applications (graphic/text)

    qt5svg

    → Graphic libraries and applications (graphic/text)

    qt5webchannel

    → Graphic libraries and applications (graphic/text)

    qt5webkit

    → Graphic libraries and applications (graphic/text)

    qt5webkit examples

    → Graphic libraries and applications (graphic/text)

    qt5websockets

    → Graphic libraries and applications (graphic/text)

    qt5x11extras

    → Graphic libraries and applications (graphic/text)

    qt5xmlpatterns

    → Graphic libraries and applications (graphic/text)

    qtuio

    → Graphic libraries and applications (graphic/text)

    quagga

    → Networking applications

    quazip

    → Graphic libraries and applications (graphic/text)

    quota

    → System tools

    qwt

    → Graphic libraries and applications (graphic/text)

    rabbitmq-c

    → Libraries → Networking

    racehound

    → Debugging, profiling and benchmark

    radvd

    → Networking applications

    ramspeed

    → Debugging, profiling and benchmark

    ramspeed/smp

    → Debugging, profiling and benchmark

    randrproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    ranger

    → Shell and utilities

    rapidjson

    → Libraries → JSON/XML

    rapidxml

    → Libraries → JSON/XML

    rdesktop

    → Graphic libraries and applications (graphic/text)

    read-edid

    → Hardware handling

    readline

    → Libraries → Text and terminal handling

    recordproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    redis

    → Libraries → Database

    renderproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    resourceproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    rfkill

    → Hardware handling

    rgb

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    rings

    → Interpreter languages and scripting → Lua libraries/modules

    rng-tools

    → Hardware handling

    roxml

    → Libraries → JSON/XML

    rp-pppoe

    → Networking applications

    rpcbind

    → Networking applications

    rpi-firmware

    → Hardware handling → Firmware

    rpi-userland

    → Hardware handling

    rpm

    → Package managers

    rrdtool

    → Graphic libraries and applications (graphic/text)

    rsh-redone

    → Networking applications

    rstart

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    rsync

    → Networking applications

    rsyslog

    → System tools

    rt-tests

    → Debugging, profiling and benchmark

    rtai

    → Real-Time

    rtl8188eu

    → Hardware handling

    rtl8821au

    → Hardware handling

    rtorrent

    → Networking applications

    rtptools

    → Networking applications

    rubix

    → Games

    ruby

    → Interpreter languages and scripting

    samba (deprecated)

    → Networking applications

    samba4

    → Networking applications

    sane-backends

    → Hardware handling

    sbc

    → Libraries → Audio/Sound

    sconeserver

    → Networking applications

    screen

    → Shell and utilities

    Script Module

    → Graphic libraries and applications (graphic/text)

    scripts

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    scrnsaverproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    scrypt

    → System tools

    SDL

    → Graphic libraries and applications (graphic/text)

    sdl2

    → Graphic libraries and applications (graphic/text)

    SDL_gfx

    → Graphic libraries and applications (graphic/text)

    SDL_image

    → Graphic libraries and applications (graphic/text)

    SDL_mixer

    → Graphic libraries and applications (graphic/text)

    SDL_net

    → Graphic libraries and applications (graphic/text)

    SDL_sound

    → Graphic libraries and applications (graphic/text)

    SDL_TTF

    → Graphic libraries and applications (graphic/text)

    sdparm

    → Hardware handling

    sed

    → Development tools

    ser2net

    → Networking applications

    sessreg

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    setools

    → Security

    setserial

    → Hardware handling

    setxkbmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    sg3-utils

    → Hardware handling

    shairport-sync

    → Networking applications

    shared-mime-info

    → Miscellaneous

    shareware Doom WAD file

    → Games

    showfont

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    sigrok-cli

    → Hardware handling

    simicsfs

    → Filesystem and flash utilities

    sispmctl

    → Hardware handling

    sl

    → Games

    slang

    → Libraries → Text and terminal handling

    slirp

    → Libraries → Networking

    smack

    → System tools

    smartmontools

    → Hardware handling

    smcroute

    → Networking applications

    smproxy

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    smstools3

    → Hardware handling

    snappy

    → Libraries → Compression and decompression

    snmp++

    → Libraries → Networking

    snowball-hdmiservice

    → Hardware handling

    snowball-init

    → Miscellaneous

    socat

    → Networking applications

    socketcand

    → Networking applications

    sofia-sip

    → Libraries → Networking

    softether

    → Networking applications

    sound-theme-borealis

    → Fonts, cursors, icons, sounds and themes

    sound-theme-freedesktop

    → Fonts, cursors, icons, sounds and themes

    sox

    → Audio and video applications

    sp-oops-extract

    → Filesystem and flash utilities

    spawn-fcgi

    → Networking applications

    speex

    → Libraries → Audio/Sound

    spi-tools

    → Hardware handling

    spice protocol

    → Networking applications

    spice server

    → Networking applications

    spidev_test

    → Debugging, profiling and benchmark

    sqlcipher

    → Libraries → Database

    sqlite

    → Libraries → Database

    squashfs

    → Filesystem and flash utilities

    squeezelite

    → Audio and video applications

    squid

    → Networking applications

    sredird

    → Hardware handling

    sshfs (FUSE)

    → Filesystem and flash utilities

    sshpass

    → Networking applications

    sstrip

    → Development tools

    start-stop-daemon

    → System tools

    startup-notification

    → Libraries → Other

    statserial

    → Hardware handling

    stm32flash

    → Hardware handling

    strace

    → Debugging, profiling and benchmark

    stress

    → Debugging, profiling and benchmark

    stress-ng

    → Debugging, profiling and benchmark

    strongswan

    → Networking applications

    stunnel

    → Networking applications

    subversion

    → Development tools

    sudo

    → Shell and utilities

    sunxi nand-part

    → Filesystem and flash utilities

    sunxi script.bin board file

    → Hardware handling → Firmware

    sunxi-cedarx

    → Hardware handling

    sunxi-mali

    → Hardware handling

    supervisor

    → System tools

    SVG Module

    → Graphic libraries and applications (graphic/text)

    swupdate

    → System tools

    sylpheed

    → Mail

    synergy

    → Graphic libraries and applications (graphic/text)

    sysdig

    → Debugging, profiling and benchmark

    syslog-ng

    → System tools

    syslogd & klogd

    → System tools

    sysprof

    → Debugging, profiling and benchmark

    sysstat

    → Hardware handling

    systemd

    → System tools

    sysvinit

    → System tools

    szip

    → Libraries → Compression and decompression

    taglib

    → Libraries → Audio/Sound

    tar

    → System tools

    targetcli-fb

    → Hardware handling

    tcl

    → Interpreter languages and scripting

    tclap

    → Libraries → Text and terminal handling

    tcllib

    → Interpreter languages and scripting → Tcl libraries/modules

    tcpdump

    → Networking applications

    tcping

    → Networking applications

    tcpreplay

    → Networking applications

    tftpd

    → Networking applications

    thrift

    → Libraries → Networking

    thttpd

    → Networking applications

    ti-gfx

    → Hardware handling

    ti-uim

    → Hardware handling

    ti-utils

    → Hardware handling

    tidsp-binaries

    → Audio and video applications

    tiff

    → Libraries → Graphics

    time

    → Shell and utilities

    tinc

    → Networking applications

    tinyalsa

    → Libraries → Audio/Sound

    tinyhttpd

    → Networking applications

    tinymembench

    → Debugging, profiling and benchmark

    tinyxml

    → Libraries → JSON/XML

    tinyxml2

    → Libraries → JSON/XML

    tmux

    → Shell and utilities

    tn5250

    → Networking applications

    tor

    → Networking applications

    torsmo (deprecated)

    → Graphic libraries and applications (graphic/text)

    tovid

    → Audio and video applications

    tpm-tools

    → System tools

    trace-cmd

    → Debugging, profiling and benchmark

    transmission

    → Networking applications

    tree

    → Development tools

    tremor (fixed point vorbis decoder)

    → Libraries → Audio/Sound

    triggerhappy

    → Hardware handling

    trinity

    → Debugging, profiling and benchmark

    trousers

    → Libraries → Crypto

    tslib

    → Libraries → Hardware handling

    tstools

    → Audio and video applications

    tvheadend

    → Networking applications

    twm

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    twolame

    → Audio and video applications

    u-boot tools

    → Hardware handling

    ubus

    → Hardware handling

    udisks

    → Hardware handling

    udpcast

    → Networking applications

    uemacs

    → Text editors and viewers

    ulogd

    → Networking applications

    unionfs (FUSE)

    → Filesystem and flash utilities

    unixodbc

    → Libraries → Database

    unrar

    → Compressors and decompressors

    unscd

    → System tools

    unzip

    → Compressors and decompressors

    upmpdcli

    → Audio and video applications

    urg

    → Libraries → Hardware handling

    usb_modeswitch

    → Hardware handling

    usb_modeswitch_data

    → Hardware handling

    usbmount

    → Hardware handling

    usbredir

    → Libraries → Networking

    usbutils

    → Hardware handling

    ushare

    → Networking applications

    ussp-push

    → Networking applications

    ustr

    → Libraries → Text and terminal handling

    util-linux

    → System tools

    util-macros

    → Miscellaneous

    ux500-firmware

    → Hardware handling → Firmware

    v4l2grab

    → Audio and video applications

    valgrind

    → Debugging, profiling and benchmark

    vde2

    → Networking applications

    videoproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    viewres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    vim

    → Text editors and viewers

    vlc

    → Audio and video applications

    vnstat

    → Networking applications

    vo-aacenc

    → Libraries → Audio/Sound

    vorbis-tools

    → Audio and video applications

    vpnc

    → Networking applications

    vsftpd

    → Networking applications

    vtun

    → Networking applications

    w_scan

    → Hardware handling

    wavpack

    → Audio and video applications

    wayland

    → Libraries → Graphics

    webkit (deprecated)

    → Libraries → Graphics

    WebKit Module

    → Graphic libraries and applications (graphic/text)

    webkitgtk 2.4.x

    → Libraries → Graphics

    webp

    → Libraries → Graphics

    webrtc-audio-processing

    → Libraries → Audio/Sound

    weston

    → Graphic libraries and applications (graphic/text)

    wf111

    → Hardware handling

    wget

    → Networking applications

    whetstone

    → Debugging, profiling and benchmark

    which

    → Shell and utilities

    whois

    → Networking applications

    windowswmproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    wine

    → Miscellaneous

    wipe

    → Hardware handling

    wireless tools

    → Networking applications

    wireless-regdb

    → Networking applications

    wireshark

    → Networking applications

    wmctrl

    → Graphic libraries and applications (graphic/text)

    wpa_supplicant

    → Networking applications

    wsapi

    → Interpreter languages and scripting → Lua libraries/modules

    wvdial

    → Networking applications

    wvstreams

    → Libraries → Networking

    x11perf

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    x11vnc

    → Graphic libraries and applications (graphic/text)

    x264

    → Libraries → Multimedia

    x265

    → Libraries → Multimedia

    xauth

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xavante

    → Interpreter languages and scripting → Lua libraries/modules

    xbacklight

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xbiff

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xbitmaps

    → Graphic libraries and applications (graphic/text) → X11R7 Other data

    xcalc

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcb-proto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xcb-util

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-cursor

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-image

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-keysyms

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-renderutil

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-wm

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xclipboard

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xclock

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcmiscproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xcmsdb

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcompmgr

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xconsole

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcursor-transparent-theme

    → Graphic libraries and applications (graphic/text) → X11R7 Other data

    xcursorgen

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdata_xcursor-themes

    → Graphic libraries and applications (graphic/text) → X11R7 Other data

    xdbedizzy

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xditview

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdm

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdotool

    → Graphic libraries and applications (graphic/text)

    xdpyinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdriinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xedit

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    Xenomai Userspace

    → Real-Time

    xerces-c++

    → Libraries → JSON/XML

    xev

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xextproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xeyes

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xf86-input-evdev

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-joystick

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-keyboard

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-libinput

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-mouse

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-synaptics

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-tslib

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-vmmouse

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-void (deprecated)

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-ark

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-ast

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-ati

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-cirrus

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-dummy

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-fbdev

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-fbturbo

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-geode

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-glide

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-glint

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-i128

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-imx

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-imx-viv

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-intel

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-mach64

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-mga

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-neomagic

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-nouveau

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-nv

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-openchrome

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-qxl

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-r128

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-savage

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-siliconmotion

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-sis

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-tdfx

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-tga

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-trident

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-v4l

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-vesa

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-vmware

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-voodoo

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-wsfb

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86bigfontproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xf86dga

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xf86dgaproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xf86driproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xf86vidmodeproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xfd

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfindproxy

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfontsel

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfs

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfsinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfsprogs

    → Filesystem and flash utilities

    xgamma

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xgc

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xhost

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xineramaproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xinetd

    → Networking applications

    xinit

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xinput

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xinput-calibrator

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbcomp

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbevd

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbprint

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbutils

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkeyboard-config

    → Graphic libraries and applications (graphic/text)

    xkill

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xl2tp

    → Networking applications

    xload

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlogo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlsatoms

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlsclients

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlsfonts

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmag

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xman

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmessage

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmh

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    XML Patterns Module

    → Graphic libraries and applications (graphic/text)

    xmlstarlet

    → Shell and utilities

    xmodmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmore

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xorg-server

    → Graphic libraries and applications (graphic/text) → X11R7 Servers

    xorriso

    → Hardware handling

    xpr

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xprop

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xproxymanagementprotocol

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xrandr

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xrdb

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xrefresh

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xscreensaver

    → Graphic libraries and applications (graphic/text)

    xset

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsetmode

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsetpointer

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsetroot

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsm

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xstdcmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xtables-addons

    → Networking applications

    xterm

    → Graphic libraries and applications (graphic/text)

    xtrans

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xvidtune

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xvinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xvkbd

    → Graphic libraries and applications (graphic/text)

    xwd

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xwininfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xwud

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xxhash

    → Shell and utilities

    xz-utils

    → Compressors and decompressors

    yad

    → Graphic libraries and applications (graphic/text)

    yajl

    → Libraries → JSON/XML

    yaml-cpp

    → Libraries → JSON/XML

    yasm

    → Development tools

    yavta

    → Audio and video applications

    ympd

    → Audio and video applications

    zbar

    → Libraries → Graphics

    zd1211-firmware

    → Hardware handling → Firmware

    zeromq

    → Libraries → Networking

    zip

    → Compressors and decompressors

    zlib

    → Libraries → Compression and decompression

    zlog

    → Libraries → Logging

    zmqpp

    → Libraries → Networking

    znc

    → Networking applications

    zsh

    → Shell and utilities

    zxing-cpp

    → Libraries → Graphics

    zyre

    → Libraries → Networking

    Chapter 25. List of virtual packages

    These are the virtual packages known to Buildroot, with the -corresponding symbols and providers.

    Virtual packages Symbols Providers

    cryptodev

    BR2_PACKAGE_HAS_CRYPTODEV

    cryptodev-linux, ocf-linux

    jpeg

    BR2_PACKAGE_HAS_JPEG

    jpeg, jpeg-turbo

    libegl

    BR2_PACKAGE_HAS_LIBEGL

    mesa3d (w/ OpenGL EGL), gpu-amd-bin-mx51 (also imx53), imx-gpu-viv, nvidia-driver (w/ X.org drivers), nvidia-tegra23 binaries, rpi-userland, sunxi-mali, ti-gfx

    libgl

    BR2_PACKAGE_HAS_LIBGL

    mesa3d (w/ DRI swrast driver), mesa3d (w/ DRI i915 driver), mesa3d (w/ DRI i965 driver), mesa3d (w/ DRI nouveau driver), mesa3d (w/ DRI radeon driver), xf86-video-imx-viv, nvidia-driver (w/ X.org drivers)

    libgles

    BR2_PACKAGE_HAS_LIBGLES

    mesa3d (w/ OpenGL ES), gpu-amd-bin-mx51 (also imx53), imx-gpu-viv, nvidia-driver (w/ X.org drivers), nvidia-tegra23 binaries, rpi-userland, sunxi-mali, ti-gfx

    libopenmax

    BR2_PACKAGE_HAS_LIBOPENMAX

    bellagio, nvidia-tegra23 binaries, rpi-userland

    libopenvg

    BR2_PACKAGE_HAS_LIBOPENVG

    gpu-amd-bin-mx51 (also imx53), imx-gpu-viv, rpi-userland

    luainterpreter

    BR2_PACKAGE_HAS_LUAINTERPRETER

    lua, luajit

    powervr

    BR2_PACKAGE_HAS_POWERVR

    ti-gfx

    udev

    BR2_PACKAGE_HAS_UDEV

    eudev, systemd

    Chapter 26. List of host utilities available in Buildroot

    The following packages are all available in the menu Host utilities.

    Packages

    host aespipe

    host checkpolicy

    host cramfs

    host dfu-util

    host dos2unix

    host dosfstools

    host dtc

    host e2fsprogs

    host e2tools

    host faketime

    host genext2fs

    host genimage

    host genpart

    host gptfdisk

    host jq

    host lpc3250loader

    host mke2img

    host mtd, jffs2 and ubi/ubifs tools

    host mtools

    host omap-u-boot-utils

    host openocd

    host parted

    host patchelf

    host pwgen

    host qemu

    host sam-ba

    host squashfs

    host sunxi-tools

    host u-boot tools

    host util-linux

    host vboot utils

    host-imx-usb loader

    Chapter 27. Deprecated features

    The following features are marked as deprecated in Buildroot due to +

    Chapter 24. List of target packages available in Buildroot

    Packages Target packages → …

    4th

    → Interpreter languages and scripting

    a10disp

    → Hardware handling

    acl

    → System tools

    acpica

    → Hardware handling

    acpid

    → Hardware handling

    acpitool

    → Hardware handling

    acsccid

    → Libraries → Hardware handling

    adwaita icon theme

    → Fonts, cursors, icons, sounds and themes

    aer-inject

    → Hardware handling

    aespipe

    → Miscellaneous

    agent++

    → Libraries → Networking

    aiccu

    → Networking applications

    aircrack-ng

    → Networking applications

    alljoyn

    → Libraries → Networking

    alljoyn-base

    → Libraries → Networking

    alljoyn-tcl

    → Libraries → Networking

    alljoyn-tcl-base

    → Libraries → Networking

    alsa-lib

    → Libraries → Audio/Sound

    alsa-utils

    → Audio and video applications

    alsamixergui

    → Graphic libraries and applications (graphic/text)

    am335x-pru-package

    → Hardware handling

    am33x-cm3

    → Hardware handling → Firmware

    android-tools

    → System tools

    angularjs

    → Libraries → Javascript

    apache

    → Networking applications

    apitrace

    → Graphic libraries and applications (graphic/text)

    applewmproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    appres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    apr

    → Libraries → Other

    apr-util

    → Libraries → Other

    argp-standalone

    → Libraries → Other

    argparse

    → Interpreter languages and scripting → Lua libraries/modules

    argus

    → Networking applications

    armadillo

    → Libraries → Other

    arptables

    → Networking applications

    assimp

    → Libraries → Graphics

    at

    → Shell and utilities

    atf

    → Libraries → Other

    atftp

    → Networking applications

    atk

    → Libraries → Graphics

    atkmm

    → Libraries → Graphics

    attr

    → System tools

    audiofile

    → Libraries → Audio/Sound

    audit

    → System tools

    aumix

    → Audio and video applications

    autofs

    → Filesystem and flash utilities

    autossh

    → Networking applications

    avahi

    → Networking applications

    avrdude

    → Hardware handling

    axel

    → Networking applications

    b43-firmware

    → Hardware handling → Firmware

    babeld

    → Networking applications

    bandwidthd

    → Networking applications

    bash

    → Shell and utilities

    batctl

    → Networking applications

    batman-adv

    → Libraries → Networking

    bc

    → Miscellaneous

    bcache tools

    → Hardware handling

    bcm2835

    → Libraries → Hardware handling

    bcusdk

    → Networking applications

    bdftopcf

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    bdwgc

    → Libraries → Other

    beecrypt

    → Libraries → Crypto

    beforelight

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    bellagio

    → Audio and video applications

    benejson

    → Libraries → JSON/XML

    berkeleydb

    → Libraries → Database

    bigreqsproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    bind

    → Networking applications

    binutils

    → Development tools

    biosdevname

    → Hardware handling

    bitmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    bitstream

    → Libraries → Multimedia

    Bitstream Vera

    → Fonts, cursors, icons, sounds and themes

    blktrace

    → Debugging, profiling and benchmark

    bluez-utils

    → Networking applications

    bluez-utils 5.x

    → Networking applications

    bmon

    → Networking applications

    boa

    → Networking applications

    bonnie++

    → Debugging, profiling and benchmark

    boost

    → Libraries → Other

    bootstrap

    → Libraries → Javascript

    bootutils

    → System tools

    botan

    → Libraries → Crypto

    bridge-utils

    → Networking applications

    bsdiff

    → Development tools

    btrfs-progs

    → Filesystem and flash utilities

    bullet

    → Libraries → Graphics

    bustle

    → Development tools

    BusyBox

    bwm-ng

    → Networking applications

    bzip2

    → Compressors and decompressors

    c-ares

    → Libraries → Networking

    c-icap

    → Networking applications

    c-icap-modules

    → Networking applications

    c-periphery

    → Libraries → Hardware handling

    CA Certificates

    → Libraries → Crypto

    cache-calibrator

    → Debugging, profiling and benchmark

    cairo

    → Libraries → Graphics

    cairomm

    → Libraries → Graphics

    can-utils

    → Networking applications

    canfestival

    → Libraries → Networking

    cannelloni

    → Networking applications

    cantarell

    → Fonts, cursors, icons, sounds and themes

    cblas/clapack

    → Libraries → Other

    cc-tool

    → Hardware handling

    ccid

    → Libraries → Hardware handling

    ccrypt

    → Shell and utilities

    cdrkit

    → Hardware handling

    cegui06

    → Graphic libraries and applications (graphic/text)

    celt051

    → Libraries → Audio/Sound

    cgic

    → Libraries → Networking

    cgilua

    → Interpreter languages and scripting → Lua libraries/modules

    cgroupfs-mount

    → System tools

    check

    → Development tools

    chocolate-doom

    → Games

    chrony

    → Networking applications

    cifs-utils

    → Filesystem and flash utilities

    circus

    → System tools

    civetweb

    → Networking applications

    cJSON

    → Libraries → JSON/XML

    clamav

    → Miscellaneous

    classpath

    → Libraries → Other

    collectd

    → Miscellaneous

    comix-cursors

    → Fonts, cursors, icons, sounds and themes

    compositeproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    connman

    → Networking applications

    connman-gtk

    → Networking applications

    conntrack-tools

    → Networking applications

    copas

    → Interpreter languages and scripting → Lua libraries/modules

    coreutils

    → System tools

    cosmo

    → Interpreter languages and scripting → Lua libraries/modules

    coxpcall

    → Interpreter languages and scripting → Lua libraries/modules

    cpio

    → Filesystem and flash utilities

    cppcms

    → Libraries → Other

    cppdb

    → Libraries → Database

    cppunit

    → Development tools

    cppzmq

    → Libraries → Networking

    cpuload

    → System tools

    cramfs

    → Filesystem and flash utilities

    crda

    → Networking applications

    crudini

    → Shell and utilities

    cryptodev-linux

    → Libraries → Crypto → cryptodev variant

    cryptsetup

    → Hardware handling

    ctorrent

    → Networking applications

    cups

    → Networking applications

    curlftpfs (FUSE)

    → Filesystem and flash utilities

    cvs

    → Development tools

    cwiid

    → Hardware handling

    cxxtest

    → Development tools

    czmq

    → Libraries → Networking

    dado

    → Interpreter languages and scripting → Lua libraries/modules

    damageproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dante

    → Networking applications

    dash

    → Shell and utilities

    dawgdic

    → Libraries → Other

    dbus

    → Hardware handling

    dbus-c++

    → Hardware handling

    dbus-glib

    → Hardware handling

    dbus-python

    → Hardware handling

    dbus-triggerd

    → Hardware handling

    dcron

    → System tools

    debianutils

    → System tools

    Declarative module

    → Graphic libraries and applications (graphic/text)

    DejaVu fonts

    → Fonts, cursors, icons, sounds and themes

    devmem2

    → Hardware handling

    dhcp (ISC)

    → Networking applications

    dhcpcd

    → Networking applications

    dhcpdump

    → Networking applications

    dhrystone

    → Debugging, profiling and benchmark

    dialog

    → Shell and utilities

    diffutils

    → Development tools

    dillo

    → Graphic libraries and applications (graphic/text)

    ding-libs

    → Libraries → Other

    directfb

    → Graphic libraries and applications (graphic/text)

    directfb examples

    → Graphic libraries and applications (graphic/text)

    dmalloc

    → Debugging, profiling and benchmark

    dmidecode

    → Hardware handling

    dmraid

    → Hardware handling

    dmxproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dnsmasq

    → Networking applications

    docker

    → Graphic libraries and applications (graphic/text)

    docker-containerd

    → System tools

    docker-engine

    → System tools

    domoticz

    → Miscellaneous

    dos2unix

    → Development tools

    dosfstools

    → Filesystem and flash utilities

    dovecot

    → Mail

    dovecot-pigeonhole

    → Mail

    drbd-utils

    → Networking applications

    dri2proto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dri3proto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    dropbear

    → Networking applications

    dropwatch

    → Debugging, profiling and benchmark

    dsp-tools

    → System tools

    dstat

    → Debugging, profiling and benchmark

    dt

    → Debugging, profiling and benchmark

    dtach

    → Shell and utilities

    dtc (libfdt)

    → Libraries → Hardware handling

    dtv-scan-tables

    → Hardware handling

    duma

    → Debugging, profiling and benchmark

    dvb-apps

    → Hardware handling

    dvblast

    → Audio and video applications

    dvbsnoop

    → Hardware handling

    dvdauthor

    → Audio and video applications

    dvdrw-tools

    → Audio and video applications

    e2fsprogs

    → Filesystem and flash utilities

    e2tools

    → Filesystem and flash utilities

    ebtables

    → Networking applications

    ecryptfs-utils

    → Filesystem and flash utilities

    ed

    → Text editors and viewers

    edid-decode

    → Hardware handling

    editres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    eeprog

    → Hardware handling

    efibootmgr

    → System tools

    efivar

    → System tools

    efl

    → Graphic libraries and applications (graphic/text)

    eigen

    → Libraries → Other

    ejabberd

    → Networking applications

    elementary

    → Graphic libraries and applications (graphic/text)

    elfutils

    → Libraries → Other

    emlog

    → System tools

    empty

    → Miscellaneous

    enchant

    → Libraries → Text and terminal handling

    encodings

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    enlightenment

    → Graphic libraries and applications (graphic/text)

    enscript

    → Interpreter languages and scripting

    erlang

    → Interpreter languages and scripting

    erlang-goldrush

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-lager

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-cache-tab

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-iconv

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-sip

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-stringprep

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-stun

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-tls

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-utils

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-xml

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-yaml

    → Interpreter languages and scripting → Erlang libraries/modules

    erlang-p1-zlib

    → Interpreter languages and scripting → Erlang libraries/modules

    espeak

    → Audio and video applications

    ethtool

    → Networking applications

    eudev

    → Hardware handling

    evemu

    → Hardware handling

    eventlog

    → Libraries → Logging

    evtest

    → Hardware handling

    exFAT (FUSE)

    → Filesystem and flash utilities

    exfat-utils

    → Filesystem and flash utilities

    exim

    → Mail

    exiv2

    → Libraries → Graphics

    expat

    → Libraries → JSON/XML

    expect

    → Interpreter languages and scripting → Tcl libraries/modules

    expedite

    → Graphic libraries and applications (graphic/text)

    explorercanvas

    → Libraries → Javascript

    ezxml

    → Libraries → JSON/XML

    f2fs-tools

    → Filesystem and flash utilities

    faad2

    → Audio and video applications

    faifa

    → Networking applications

    fan-ctrl

    → Hardware handling

    fastd

    → Networking applications

    fb-test-app

    → Graphic libraries and applications (graphic/text)

    fbdump (Framebuffer Capture Tool)

    → Graphic libraries and applications (graphic/text)

    fbgrab

    → Graphic libraries and applications (graphic/text)

    fbset

    → Graphic libraries and applications (graphic/text)

    fbterm

    → Graphic libraries and applications (graphic/text)

    fbv

    → Graphic libraries and applications (graphic/text)

    fcgiwrap

    → Networking applications

    fconfig

    → Hardware handling

    fdk-aac

    → Libraries → Audio/Sound

    feh

    → Graphic libraries and applications (graphic/text)

    fetchmail

    → Mail

    ffmpeg

    → Audio and video applications

    fftw

    → Libraries → Other

    ficl

    → Interpreter languages and scripting

    file

    → Shell and utilities

    filemq

    → Libraries → Networking

    findutils

    → Development tools

    fio

    → Debugging, profiling and benchmark

    firmware-imx

    → Hardware handling

    fis

    → Hardware handling

    fixesproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    flac

    → Audio and video applications

    flann

    → Libraries → Other

    flannel

    → Networking applications

    flashbench

    → Filesystem and flash utilities

    flashrom

    → Hardware handling

    flex

    → Development tools

    flickcurl

    → Libraries → Networking

    flite

    → Audio and video applications

    flot

    → Libraries → Javascript

    fltk

    → Libraries → Graphics

    fluxbox

    → Graphic libraries and applications (graphic/text)

    fmc

    → Networking applications

    fmlib

    → Libraries → Networking

    fmtools

    → Hardware handling

    font-adobe-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-utopia-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-utopia-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-adobe-utopia-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-alias

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-arabic-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-awesome

    → Fonts, cursors, icons, sounds and themes

    font-bh-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-lucidatypewriter-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-lucidatypewriter-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-ttf

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bh-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bitstream-100dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bitstream-75dpi

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-bitstream-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-cronyx-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-cursor-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-daewoo-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-dec-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-ibm-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-isas-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-jis-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-micro-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-ethiopic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-meltho

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-misc-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-mutt-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-schumacher-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-screen-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-sony-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-sun-misc

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-util

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-winitzki-cyrillic

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    font-xfree86-type1

    → Graphic libraries and applications (graphic/text) → X11R7 Fonts

    fontcacheproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    fontconfig

    → Libraries → Graphics

    fontsproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    fonttosfnt

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    fping

    → Networking applications

    freeradius-client

    → Libraries → Networking

    freerdp

    → Graphic libraries and applications (graphic/text)

    Freescale i.MX libraries

    → Hardware handling

    freeswitch

    → Networking applications

    freetype

    → Libraries → Graphics

    fslsfonts

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    fstobdf

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    fswebcam

    → Graphic libraries and applications (graphic/text)

    ftop

    → System tools

    fwup

    → Filesystem and flash utilities

    fxload

    → Hardware handling

    gadgetfs-test

    → Hardware handling

    gamin

    → Libraries → Filesystem

    gauche

    → Interpreter languages and scripting

    gawk

    → Development tools

    gcr

    → Libraries → Crypto

    gd

    → Libraries → Graphics

    gdb

    → Debugging, profiling and benchmark

    gdbm

    → Libraries → Database

    gdk-pixbuf

    → Libraries → Graphics

    genext2fs

    → Filesystem and flash utilities

    genpart

    → Filesystem and flash utilities

    genromfs

    → Filesystem and flash utilities

    geoip

    → Libraries → Networking

    gesftpserver

    → Networking applications

    getent

    → System tools

    gettext

    → Development tools

    gflags

    → Libraries → Other

    ghostscript-fonts

    → Fonts, cursors, icons, sounds and themes

    giblib

    → Libraries → Graphics

    giflib

    → Libraries → Graphics

    git

    → Development tools

    glib-networking

    → Libraries → Networking

    glibmm

    → Libraries → Other

    glm

    → Libraries → Other

    glmark2

    → Graphic libraries and applications (graphic/text)

    glog

    → Libraries → Logging

    glproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    gmock

    → Libraries → Other

    gmp

    → Libraries → Other

    gmpc

    → Graphic libraries and applications (graphic/text)

    gmrender-resurrect

    → Audio and video applications

    gnu-efi

    → Libraries → Hardware handling

    gnuchess

    → Games

    gnupg

    → Shell and utilities

    gnupg2

    → Shell and utilities

    gnuplot

    → Graphic libraries and applications (graphic/text)

    gnuradio

    → Miscellaneous

    gnutls

    → Libraries → Crypto

    Google font directory

    → Miscellaneous

    google-breakpad

    → Debugging, profiling and benchmark

    google-material-design-icons

    → Fonts, cursors, icons, sounds and themes

    gperf

    → Development tools

    gpm

    → Hardware handling

    gpsd

    → Hardware handling

    gptfdisk

    → Hardware handling

    gpu-amd-bin-mx51 (also imx53)

    → Hardware handling

    gqview

    → Graphic libraries and applications (graphic/text)

    gr-osmosdr

    → Miscellaneous

    granite

    → Libraries → Graphics

    grantlee

    → Graphic libraries and applications (graphic/text)

    graphite2

    → Libraries → Graphics

    grep

    → Development tools

    gsettings-desktop-schemas

    → Miscellaneous

    gsl

    → Libraries → Other

    gssdp

    → Libraries → Networking

    gst-dsp

    → Audio and video applications

    gst-ffmpeg

    → Audio and video applications

    gst-fsl-plugins

    → Audio and video applications

    gst-omapfb

    → Audio and video applications

    gst-omx

    → Audio and video applications

    gst-plugin-x170

    → Audio and video applications

    gst-plugins-bad

    → Audio and video applications

    gst-plugins-base

    → Audio and video applications

    gst-plugins-good

    → Audio and video applications

    gst-plugins-ugly

    → Audio and video applications

    gst1-imx

    → Audio and video applications

    gst1-libav

    → Audio and video applications

    gst1-plugins-bad

    → Audio and video applications

    gst1-plugins-base

    → Audio and video applications

    gst1-plugins-good

    → Audio and video applications

    gst1-plugins-ugly

    → Audio and video applications

    gst1-validate

    → Audio and video applications

    gstreamer 0.10

    → Audio and video applications

    gstreamer 1.x

    → Audio and video applications

    gtest

    → Libraries → Other

    gtk engines

    → Fonts, cursors, icons, sounds and themes

    gtk# 3

    → Interpreter languages and scripting → Mono libraries/modules

    gtkmm3

    → Libraries → Graphics

    gtkperf (performance test for GTK2)

    → Graphic libraries and applications (graphic/text)

    gtksourceview

    → Libraries → Graphics

    guile

    → Interpreter languages and scripting

    gupnp

    → Libraries → Networking

    gupnp-av

    → Libraries → Networking

    gupnp-dlna

    → Libraries → Networking

    gupnp-tools

    → Networking applications

    gutenprint

    → Networking applications

    gvfs

    → Hardware handling

    gzip

    → Compressors and decompressors

    hans

    → Networking applications

    harfbuzz

    → Libraries → Graphics

    haserl

    → Interpreter languages and scripting

    haveged

    → Miscellaneous

    hdparm

    → Hardware handling

    heirloom-mailx

    → Mail

    hiawatha

    → Networking applications

    hicolor icon theme

    → Fonts, cursors, icons, sounds and themes

    hidapi

    → Libraries → Hardware handling

    hostapd

    → Networking applications

    hplip

    → Networking applications

    htop

    → System tools

    httping

    → Networking applications

    hwdata

    → Hardware handling

    hwloc

    → Hardware handling

    i2c-tools

    → Hardware handling

    i7z

    → Hardware handling

    ibrcommon

    → Libraries → Networking

    ibrdtn

    → Libraries → Networking

    ibrdtn-tools

    → Networking applications

    ibrdtnd

    → Networking applications

    iceauth

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    ico

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    icu

    → Libraries → Text and terminal handling

    ifplugd

    → Networking applications

    iftop

    → Networking applications

    ifupdown

    → Networking applications

    igd2-for-linux

    → Networking applications

    igh-ethercat

    → Networking applications

    igmpproxy

    → Networking applications

    ijs

    → Libraries → Graphics

    imagemagick

    → Graphic libraries and applications (graphic/text)

    imlib2

    → Libraries → Graphics

    imx-codec

    → Hardware handling

    imx-gpu-viv

    → Hardware handling

    imx-kobs

    → Hardware handling

    imx-lib

    → Hardware handling

    imx-parser

    → Hardware handling

    imx-uuc

    → Hardware handling

    imx-vpu

    → Hardware handling

    imx-vpuwrap

    → Hardware handling

    inadyn

    → Networking applications

    inconsolata

    → Fonts, cursors, icons, sounds and themes

    inotify-tools

    → Shell and utilities

    input-event-daemon

    → Hardware handling

    input-tools

    → Hardware handling

    inputproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    intel-microcode

    → Hardware handling

    intltool

    → Development tools

    iodine

    → Networking applications

    iostat

    → Hardware handling

    iotop

    → System tools

    iozone

    → Debugging, profiling and benchmark

    iperf

    → Networking applications

    iperf3

    → Networking applications

    ipkg (deprecated)

    → Package managers

    ipmitool

    → Hardware handling

    ipmiutil

    → Hardware handling

    iproute2

    → Networking applications

    iprutils

    → System tools

    ipsec-tools

    → Networking applications

    ipset

    → Networking applications

    iptables

    → Networking applications

    iptraf-ng

    → Networking applications

    iputils

    → Networking applications

    iqvlinux

    → Hardware handling

    irda-utils

    → Hardware handling

    irqbalance

    → System tools

    irssi

    → Networking applications

    iucode-tool

    → Hardware handling

    iw

    → Networking applications

    jack2

    → Audio and video applications

    jamvm

    → Interpreter languages and scripting

    jansson

    → Libraries → JSON/XML

    janus-gateway

    → Networking applications

    jasper

    → Libraries → Graphics

    jemalloc

    → Libraries → Other

    jhead

    → Graphic libraries and applications (graphic/text)

    jimtcl

    → Interpreter languages and scripting

    joe

    → Text editors and viewers

    jpeg

    → Libraries → Graphics → jpeg variant

    jpeg-turbo

    → Libraries → Graphics → jpeg variant

    jq

    → Development tools

    jQuery

    → Libraries → Javascript

    jquery-datetimepicker

    → Libraries → Javascript → External jQuery plugins

    jquery-keyboard

    → Libraries → Javascript → External jQuery plugins

    jquery-mobile

    → Libraries → Javascript → External jQuery plugins

    jquery-sidebar

    → Libraries → Javascript → External jQuery plugins

    jquery-sparkline

    → Libraries → Javascript → External jQuery plugins

    jquery-ui

    → Libraries → Javascript → External jQuery plugins

    jquery-ui-themes

    → Libraries → Javascript → External jQuery plugins

    jquery-validation

    → Libraries → Javascript → External jQuery plugins

    jsmin

    → Libraries → Javascript

    json-c

    → Libraries → JSON/XML

    json-glib

    → Libraries → JSON/XML

    json-javascript

    → Libraries → Javascript

    jsoncpp

    → Libraries → JSON/XML

    kbd

    → Hardware handling

    kbproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    kernel-module-imx-gpu-viv

    → Hardware handling

    kexec

    → Debugging, profiling and benchmark

    kexec-lite

    → Debugging, profiling and benchmark

    keyutils

    → System tools

    kismet

    → Networking applications

    kmod

    → System tools

    kms++

    → Libraries → Graphics

    knock

    → Networking applications

    kodi

    → Audio and video applications

    kodi-addon-xvdr (deprecated)

    → Audio and video applications → PVR addons

    kodi-adsp-basic

    → Audio and video applications → Audio DSP addons

    kodi-adsp-freesurround

    → Audio and video applications → Audio DSP addons

    kodi-audiodecoder-modplug

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-nosefart

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-opus

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-sidplay

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-snesapu

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-stsound

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-timidity

    → Audio and video applications → Audio decoder addons

    kodi-audiodecoder-vgmstream

    → Audio and video applications → Audio decoder addons

    kodi-audioencoder-flac

    → Audio and video applications → Audio encoder addons

    kodi-audioencoder-lame

    → Audio and video applications → Audio encoder addons

    kodi-audioencoder-vorbis

    → Audio and video applications → Audio encoder addons

    kodi-audioencoder-wav

    → Audio and video applications → Audio encoder addons

    kodi-pvr-argustv

    → Audio and video applications → PVR addons

    kodi-pvr-dvblink

    → Audio and video applications → PVR addons

    kodi-pvr-dvbviewer

    → Audio and video applications → PVR addons

    kodi-pvr-filmon

    → Audio and video applications → PVR addons

    kodi-pvr-hdhomerun

    → Audio and video applications → PVR addons

    kodi-pvr-hts

    → Audio and video applications → PVR addons

    kodi-pvr-iptvsimple

    → Audio and video applications → PVR addons

    kodi-pvr-mediaportal-tvserver

    → Audio and video applications → PVR addons

    kodi-pvr-mythtv

    → Audio and video applications → PVR addons

    kodi-pvr-nextpvr

    → Audio and video applications → PVR addons

    kodi-pvr-njoy

    → Audio and video applications → PVR addons

    kodi-pvr-pctv

    → Audio and video applications → PVR addons

    kodi-pvr-stalker

    → Audio and video applications → PVR addons

    kodi-pvr-vbox

    → Audio and video applications → PVR addons

    kodi-pvr-vdr-vnsi

    → Audio and video applications → PVR addons

    kodi-pvr-vuplus

    → Audio and video applications → PVR addons

    kodi-pvr-wmc

    → Audio and video applications → PVR addons

    kodi-screensaver-asteroids

    → Audio and video applications → Screensavers

    kodi-screensaver-asterwave

    → Audio and video applications → Screensavers

    kodi-screensaver-biogenesis

    → Audio and video applications → Screensavers

    kodi-screensaver-cpblobs

    → Audio and video applications → Screensavers

    kodi-screensaver-crystalmorph

    → Audio and video applications → Screensavers

    kodi-screensaver-greynetic

    → Audio and video applications → Screensavers

    kodi-screensaver-matrixtrails

    → Audio and video applications → Screensavers

    kodi-screensaver-pingpong

    → Audio and video applications → Screensavers

    kodi-screensaver-planestate

    → Audio and video applications → Screensavers

    kodi-screensaver-pyro

    → Audio and video applications → Screensavers

    kodi-screensaver-rsxs

    → Audio and video applications → Screensavers

    kodi-screensaver-stars

    → Audio and video applications → Screensavers

    kodi-visualisation-fishbmc

    → Audio and video applications → Visualisations

    kodi-visualisation-fountain

    → Audio and video applications → Visualisations

    kodi-visualisation-goom

    → Audio and video applications → Visualisations

    kodi-visualisation-shadertoy

    → Audio and video applications → Visualisations

    kodi-visualisation-spectrum

    → Audio and video applications → Visualisations

    kodi-visualisation-waveforhue

    → Audio and video applications → Visualisations

    kodi-visualisation-waveform

    → Audio and video applications → Visualisations

    kompexsqlite

    → Libraries → Database

    ktap

    → Debugging, profiling and benchmark

    kvmtool

    → System tools

    kyua

    → Debugging, profiling and benchmark

    lame

    → Audio and video applications

    lapack/blas

    → Libraries → Other

    latencytop

    → Debugging, profiling and benchmark

    lbase64

    → Interpreter languages and scripting → Lua libraries/modules

    LBreakout2

    → Games

    lcdapi

    → Libraries → Hardware handling

    lcdproc

    → Hardware handling

    lcms2

    → Libraries → Graphics

    leafnode2

    → Networking applications

    leafpad

    → Graphic libraries and applications (graphic/text)

    less

    → Text editors and viewers

    lesstif

    → Libraries → Graphics

    leveldb

    → Libraries → Database

    lft

    → Networking applications

    lftp

    → Networking applications

    libaacs

    → Libraries → Multimedia

    libaio

    → Libraries → Hardware handling

    libamcodec

    → Libraries → Multimedia

    libao

    → Libraries → Audio/Sound

    libarchive

    → Libraries → Compression and decompression

    libargtable2

    → Libraries → Other

    libart

    → Libraries → Graphics

    libasplib

    → Libraries → Audio/Sound

    libass

    → Libraries → Multimedia

    libassuan

    → Libraries → Crypto

    libatasmart

    → Libraries → Hardware handling

    libatomic_ops

    → Libraries → Other

    libbdplus

    → Libraries → Multimedia

    libbluray

    → Libraries → Multimedia

    libbroadvoice

    → Libraries → Audio/Sound

    libbsd

    → Libraries → Other

    libcap

    → Libraries → Other

    libcap-ng

    → Libraries → Other

    libcdaudio

    → Libraries → Audio/Sound

    libcddb

    → Libraries → Audio/Sound

    libcdio

    → Libraries → Audio/Sound

    libcec

    → Libraries → Hardware handling

    libcgi

    → Libraries → Networking

    libcgicc

    → Libraries → Networking

    libcgroup

    → Libraries → Other

    libcli

    → Libraries → Text and terminal handling

    libcoap

    → Libraries → Networking

    libcodec2

    → Libraries → Audio/Sound

    libcofi

    → Libraries → Other

    libconfig

    → Libraries → Filesystem

    libconfuse

    → Libraries → Filesystem

    libcroco

    → Libraries → Other

    libcrossguid

    → Libraries → Other

    libcue

    → Libraries → Audio/Sound

    libcuefile

    → Libraries → Audio/Sound

    libcurl

    → Libraries → Networking

    libdaemon

    → Libraries → Other

    libdcadec

    → Libraries → Multimedia

    libdmtx

    → Libraries → Graphics

    libdmx

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libdnet

    → Libraries → Networking

    libdri2

    → Libraries → Graphics

    libdrm

    → Libraries → Graphics

    libdvbcsa

    → Libraries → Multimedia

    libdvbpsi

    → Libraries → Multimedia

    libdvbsi

    → Libraries → Multimedia

    libdvdcss

    → Libraries → Multimedia

    libdvdnav

    → Libraries → Multimedia

    libdvdread

    → Libraries → Multimedia

    libebml

    → Libraries → Multimedia

    libebur128

    → Libraries → Audio/Sound

    libedit

    → Libraries → Text and terminal handling

    libee

    → Libraries → Other

    libenca

    → Libraries → Text and terminal handling

    libepoxy

    → Libraries → Graphics

    Liberation (Free fonts)

    → Fonts, cursors, icons, sounds and themes

    libesmtp

    → Mail

    libestr

    → Libraries → Text and terminal handling

    libev

    → Libraries → Other

    libevas generic loaders

    → Libraries → Graphics

    libevdev

    → Libraries → Other

    libevent

    → Libraries → Other

    libexif

    → Libraries → Graphics

    libeXosip2

    → Libraries → Networking

    libfastjson

    → Libraries → JSON/XML

    libfcgi

    → Libraries → Networking

    libffi

    → Libraries → Other

    libfm

    → Libraries → Graphics

    libfm-extra

    → Libraries → Graphics

    libfontenc

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libfreefare

    → Libraries → Hardware handling

    libfreeglut

    → Libraries → Graphics

    libfreeimage

    → Libraries → Graphics

    libfribidi

    → Libraries → Text and terminal handling

    libFS

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libftdi

    → Libraries → Hardware handling

    libftdi1

    → Libraries → Hardware handling

    libfuse

    → Libraries → Filesystem

    libg7221

    → Libraries → Audio/Sound

    libgail (deprecated)

    → Libraries → Graphics

    libgcrypt

    → Libraries → Crypto

    libgdiplus

    → Libraries → Graphics

    libgee

    → Libraries → Other

    libgeotiff

    → Libraries → Graphics

    libglade

    → Libraries → Graphics

    libglew

    → Libraries → Graphics

    libglfw

    → Libraries → Graphics

    libglib2

    → Libraries → Other

    libglu

    → Libraries → Graphics

    libgpg-error

    → Libraries → Crypto

    libgpgme

    → Libraries → Crypto

    libgsasl

    → Libraries → Networking

    libgtk2

    → Libraries → Graphics

    libgtk3

    → Libraries → Graphics

    libgudev

    → Libraries → Hardware handling

    libhdhomerun

    → Libraries → Multimedia

    libhid

    → Libraries → Hardware handling

    libhttpparser

    → Libraries → Networking

    libical

    → Libraries → Other

    libICE

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libiconv

    → Libraries → Text and terminal handling

    libid3tag

    → Libraries → Audio/Sound

    libidn

    → Libraries → Networking

    libiio

    → Libraries → Hardware handling

    libilbc

    → Libraries → Audio/Sound

    libimxvpuapi

    → Libraries → Multimedia

    libinput

    → Libraries → Hardware handling

    libiqrf

    → Libraries → Hardware handling

    libiscsi

    → Libraries → Networking

    libjson

    → Libraries → JSON/XML

    libksba

    → Libraries → Crypto

    libldns

    → Libraries → Networking

    liblinear

    → Libraries → Other

    libllcp

    → Libraries → Hardware handling

    liblo

    → Libraries → Audio/Sound

    liblockfile

    → Libraries → Filesystem

    liblog4c-localtime

    → Libraries → Logging

    liblogging

    → Libraries → Logging

    libmad

    → Libraries → Audio/Sound

    libmatroska

    → Libraries → Multimedia

    libmbim

    → Libraries → Hardware handling

    libmbus

    → Libraries → Networking

    libmcrypt

    → Libraries → Crypto

    libmemcached

    → Libraries → Networking

    libmhash

    → Libraries → Crypto

    libmicrohttpd

    → Libraries → Networking

    libminiupnpc

    → Libraries → Networking

    libmms

    → Libraries → Multimedia

    libmng

    → Libraries → Graphics

    libmnl

    → Libraries → Networking

    libmodbus

    → Libraries → Networking

    libmodplug

    → Libraries → Audio/Sound

    libmpd

    → Libraries → Audio/Sound

    libmpdclient

    → Libraries → Audio/Sound

    libmpeg2

    → Libraries → Multimedia

    libnatpmp

    → Libraries → Networking

    libndp

    → Libraries → Networking

    libneon

    → Libraries → Networking

    libnet

    → Libraries → Networking

    libnetfilter_acct

    → Libraries → Networking

    libnetfilter_conntrack

    → Libraries → Networking

    libnetfilter_cthelper

    → Libraries → Networking

    libnetfilter_cttimeout

    → Libraries → Networking

    libnetfilter_log

    → Libraries → Networking

    libnetfilter_queue

    → Libraries → Networking

    libnfc

    → Libraries → Hardware handling

    libnfnetlink

    → Libraries → Networking

    libnfs

    → Libraries → Filesystem

    libnftnl

    → Libraries → Networking

    libnice

    → Libraries → Networking

    libnl

    → Libraries → Networking

    libnspr

    → Libraries → Other

    libnss

    → Libraries → Crypto

    liboauth

    → Libraries → Networking

    libogg

    → Libraries → Multimedia

    libopenh264

    → Libraries → Multimedia

    liboping

    → Libraries → Networking

    libosip2

    → Libraries → Networking

    libpam-radius-auth

    → Libraries → Other

    libpam-tacplus

    → Libraries → Other

    libpcap

    → Libraries → Networking

    libpciaccess

    → Libraries → Hardware handling

    libpfm4

    → Libraries → Other

    libphidget

    → Libraries → Hardware handling

    libpjsip

    → Libraries → Networking

    libplayer

    → Libraries → Multimedia

    libplist

    → Libraries → Other

    libpng

    → Libraries → Graphics

    libpqxx

    → Libraries → Database

    libpthread-stubs

    → Libraries → Other

    libpthsem

    → Libraries → Other

    libqmi

    → Libraries → Hardware handling

    libqrencode

    → Libraries → Graphics

    libraw

    → Libraries → Graphics

    libraw1394

    → Libraries → Hardware handling

    libreplaygain

    → Libraries → Audio/Sound

    librsvg

    → Libraries → Graphics

    librsync

    → Libraries → Networking

    librtas

    → Libraries → Hardware handling

    librtlsdr

    → Libraries → Hardware handling

    librtmp

    → Libraries → Networking

    libsamplerate

    → Libraries → Audio/Sound

    libseccomp

    → Libraries → Other

    libsecret

    → Libraries → Crypto

    libselinux

    → Libraries → Security

    libsemanage

    → Libraries → Security

    libsepol

    → Libraries → Security

    libserial

    → Libraries → Hardware handling

    libserialport

    → Libraries → Hardware handling

    libsexy

    → Graphic libraries and applications (graphic/text)

    libsha1

    → Libraries → Crypto

    libshairplay

    → Libraries → Networking

    libshout

    → Libraries → Networking

    libsidplay2

    → Libraries → Audio/Sound

    libsigc++

    → Libraries → Other

    libsigrok

    → Libraries → Hardware handling

    libsigrokdecode

    → Libraries → Hardware handling

    libsigsegv

    → Libraries → Other

    libsilk

    → Libraries → Audio/Sound

    libSM

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libsndfile

    → Libraries → Audio/Sound

    libsoc

    → Libraries → Hardware handling

    libsocketcan

    → Libraries → Networking

    libsodium

    → Libraries → Crypto

    libsoil

    → Libraries → Graphics

    libsoundtouch

    → Libraries → Audio/Sound

    libsoup

    → Libraries → Networking

    libsoxr

    → Libraries → Audio/Sound

    libsquish

    → Libraries → Compression and decompression

    libsrtp

    → Libraries → Networking

    libssh

    → Libraries → Crypto

    libssh2

    → Libraries → Crypto

    libstrophe

    → Libraries → Networking

    libsvg

    → Libraries → Graphics

    libsvg-cairo

    → Libraries → Graphics

    libsvgtiny

    → Libraries → Graphics

    libsysfs

    → Libraries → Filesystem

    libtasn1

    → Libraries → Other

    libtheora

    → Libraries → Multimedia

    libtirpc

    → Libraries → Networking

    libtomcrypt

    → Libraries → Crypto

    libtommath

    → Libraries → Other

    libtool

    → Development tools

    libtorrent

    → Libraries → Networking

    libtpl

    → Libraries → Other

    libubox

    → Libraries → Other

    libuci

    → Libraries → Other

    libucl

    → Libraries → JSON/XML

    libuecc

    → Libraries → Crypto

    libuio

    → Hardware handling

    libump

    → Hardware handling

    libunistring

    → Libraries → Text and terminal handling

    libunwind

    → Libraries → Other

    libupnp

    → Libraries → Networking

    libupnpp

    → Libraries → Networking

    liburcu

    → Libraries → Other

    liburiparser

    → Libraries → Networking

    libusb

    → Libraries → Hardware handling

    libusb-compat

    → Libraries → Hardware handling

    libusbgx

    → Libraries → Hardware handling

    libuv

    → Libraries → Other

    libv4l

    → Libraries → Hardware handling

    libva

    → Libraries → Graphics

    libva-intel-driver

    → Libraries → Graphics

    libvdpau

    → Libraries → Graphics

    libvips

    → Libraries → Graphics

    libvncserver

    → Libraries → Networking

    libvorbis

    → Libraries → Audio/Sound

    libvpx

    → Libraries → Multimedia

    libwebsock

    → Libraries → Networking

    libwebsockets

    → Libraries → Networking

    libX11

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXau

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXaw

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxcb

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXcomposite

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXcursor

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXdamage

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXdmcp

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXext

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXfixes

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXfont

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXft

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXi

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXinerama

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxkbcommon

    → Libraries → Hardware handling

    libxkbfile

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxml++

    → Libraries → JSON/XML

    libxml2

    → Libraries → JSON/XML

    libxmlrpc

    → Libraries → JSON/XML

    libXmu

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXpm

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXrandr

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXrender

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXres

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXScrnSaver

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxshmfence

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libxslt

    → Libraries → JSON/XML

    libXt

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXtst

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXv

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXvMC

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXxf86dga

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libXxf86vm

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    libyaml

    → Libraries → JSON/XML

    libyuv

    → Libraries → Multimedia

    libz160

    → Hardware handling

    libzip

    → Libraries → Compression and decompression

    lightning

    → Libraries → Other

    lighttpd

    → Networking applications

    linenoise

    → Libraries → Text and terminal handling

    linknx

    → Networking applications

    links

    → Networking applications

    linphone

    → Networking applications

    linux-backports

    → Hardware handling

    linux-firmware

    → Hardware handling → Firmware

    linux-fusion communication layer for DirectFB multi

    → Graphic libraries and applications (graphic/text)

    linux-pam

    → Libraries → Other

    linux-zigbee

    → Networking applications

    liquid-dsp

    → Libraries → Other

    lirc-tools

    → Hardware handling

    listres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    LiTE (toolbox engine)

    → Graphic libraries and applications (graphic/text)

    live555

    → Libraries → Multimedia

    ljlinenoise

    → Interpreter languages and scripting → Lua libraries/modules

    ljsyscall

    → Interpreter languages and scripting → Lua libraries/modules

    lksctp-tools

    → Libraries → Networking

    lldpd

    → Networking applications

    lm-sensors

    → Hardware handling

    lmbench

    → Debugging, profiling and benchmark

    lockdev

    → Libraries → Filesystem

    lockfile programs

    → Shell and utilities

    log4cplus

    → Libraries → Logging

    log4cpp

    → Libraries → Logging

    log4cxx

    → Libraries → Logging

    logrotate

    → Shell and utilities

    logsurfer

    → Shell and utilities

    lpeg

    → Interpreter languages and scripting → Lua libraries/modules

    lpty

    → Interpreter languages and scripting → Lua libraries/modules

    lrandom

    → Interpreter languages and scripting → Lua libraries/modules

    lrzsz

    → Networking applications

    lshw

    → Hardware handling

    lsof

    → Debugging, profiling and benchmark

    lsqlite3

    → Interpreter languages and scripting → Lua libraries/modules

    lsuio

    → Hardware handling

    ltp-testsuite

    → Debugging, profiling and benchmark

    ltrace

    → Debugging, profiling and benchmark

    LTris

    → Games

    lttng-babeltrace

    → Debugging, profiling and benchmark

    lttng-libust

    → Libraries → Other

    lttng-modules

    → Debugging, profiling and benchmark

    lttng-tools

    → Debugging, profiling and benchmark

    lua

    → Interpreter languages and scripting

    lua-cjson

    → Interpreter languages and scripting → Lua libraries/modules

    lua-coat

    → Interpreter languages and scripting → Lua libraries/modules

    lua-coatpersistent

    → Interpreter languages and scripting → Lua libraries/modules

    lua-csnappy

    → Interpreter languages and scripting → Lua libraries/modules

    lua-ev

    → Interpreter languages and scripting → Lua libraries/modules

    lua-iconv

    → Interpreter languages and scripting → Lua libraries/modules

    lua-messagepack

    → Interpreter languages and scripting → Lua libraries/modules

    lua-msgpack-native

    → Interpreter languages and scripting → Lua libraries/modules

    lua-periphery

    → Interpreter languages and scripting → Lua libraries/modules

    lua-testmore

    → Interpreter languages and scripting → Lua libraries/modules

    luabitop

    → Interpreter languages and scripting → Lua libraries/modules

    luacrypto

    → Interpreter languages and scripting → Lua libraries/modules

    luaexpat

    → Interpreter languages and scripting → Lua libraries/modules

    luaexpatutils

    → Interpreter languages and scripting → Lua libraries/modules

    luafilesystem

    → Interpreter languages and scripting → Lua libraries/modules

    luajit

    → Interpreter languages and scripting

    luajson

    → Interpreter languages and scripting → Lua libraries/modules

    lualogging

    → Interpreter languages and scripting → Lua libraries/modules

    luaposix

    → Interpreter languages and scripting → Lua libraries/modules

    luasec

    → Interpreter languages and scripting → Lua libraries/modules

    luasocket

    → Interpreter languages and scripting → Lua libraries/modules

    luasql-sqlite3

    → Interpreter languages and scripting → Lua libraries/modules

    luit

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    lunit

    → Interpreter languages and scripting → Lua libraries/modules

    lutok

    → Interpreter languages and scripting

    luv

    → Interpreter languages and scripting → Lua libraries/modules

    luvi

    → Interpreter languages and scripting → Lua libraries/modules

    lvm2 & device mapper

    → Hardware handling

    lxc

    → System tools

    lz4

    → Compressors and decompressors

    lzip

    → Compressors and decompressors

    lzlib

    → Interpreter languages and scripting → Lua libraries/modules

    lzo

    → Libraries → Compression and decompression

    lzop

    → Compressors and decompressors

    macchanger

    → Networking applications

    madplay

    → Audio and video applications

    make

    → Development tools

    makedepend

    → Graphic libraries and applications (graphic/text) → X11R7 Utilities

    makedevs

    → Filesystem and flash utilities

    mali-t76x

    → Hardware handling

    matchbox

    → Graphic libraries and applications (graphic/text)

    matchbox-common

    → Graphic libraries and applications (graphic/text)

    matchbox-desktop

    → Graphic libraries and applications (graphic/text)

    matchbox-fakekey

    → Graphic libraries and applications (graphic/text)

    matchbox-keyboard

    → Graphic libraries and applications (graphic/text)

    matchbox-lib

    → Graphic libraries and applications (graphic/text)

    matchbox-panel

    → Graphic libraries and applications (graphic/text)

    matchbox-startup-monitor

    → Graphic libraries and applications (graphic/text)

    mbedtls

    → Libraries → Crypto

    mc

    → Text editors and viewers

    mcelog

    → Debugging, profiling and benchmark

    mcookie

    → Graphic libraries and applications (graphic/text) → X11R7 Utilities

    mcrypt

    → Miscellaneous

    mdadm

    → Hardware handling

    mediastreamer

    → Libraries → Multimedia

    memcached

    → Networking applications

    memstat

    → Debugging, profiling and benchmark

    memtest86

    → Hardware handling

    memtester

    → Hardware handling

    menu-cache

    → Libraries → Graphics

    mesa3d

    → Graphic libraries and applications (graphic/text)

    mesa3d-demos

    → Graphic libraries and applications (graphic/text)

    metacity

    → Graphic libraries and applications (graphic/text)

    micropython

    → Interpreter languages and scripting

    micropython-lib

    → Interpreter languages and scripting

    midori

    → Graphic libraries and applications (graphic/text)

    mii-diag

    → Networking applications

    Mini-XML

    → Libraries → JSON/XML

    minicom

    → Hardware handling

    minidlna

    → Networking applications

    minissdpd

    → Networking applications

    minizip

    → Libraries → Compression and decompression

    miraclecast

    → Audio and video applications

    mjpegtools

    → Audio and video applications

    mjpg-streamer

    → Networking applications

    mkfontdir

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    mkfontscale

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    mmc-utils

    → Filesystem and flash utilities

    moarvm

    → Interpreter languages and scripting

    mobile-broadband-provider-info

    → Miscellaneous

    modemmanager

    → Networking applications

    modplugtools

    → Audio and video applications

    mongodb

    → Libraries → Database

    mongoose

    → Libraries → Networking

    mongrel2

    → Networking applications

    monit

    → System tools

    monkey

    → Networking applications

    mono

    → Interpreter languages and scripting

    mosh

    → Networking applications

    mosquitto

    → Networking applications

    mp4v2

    → Libraries → Audio/Sound

    mpc

    → Libraries → Other

    mpd

    → Audio and video applications

    mpd-mpc

    → Audio and video applications

    mpdecimal

    → Libraries → Other

    mpfr

    → Libraries → Other

    mpg123

    → Audio and video applications

    mplayer

    → Audio and video applications

    mpv

    → Audio and video applications

    mraa

    → Libraries → Hardware handling

    mrouted

    → Networking applications

    msgpack

    → Libraries → Other

    msmtp

    → Mail

    msr-tools

    → Hardware handling

    mtd, jffs2 and ubi/ubifs tools

    → Filesystem and flash utilities

    mtdev

    → Libraries → Hardware handling

    mtdev2tuio

    → Libraries → Other

    mtools

    → Filesystem and flash utilities

    mtr

    → Networking applications

    multicat

    → Audio and video applications

    Multimedia Module

    → Graphic libraries and applications (graphic/text)

    musepack

    → Audio and video applications

    mutt

    → Mail

    MySQL

    → Libraries → Database

    nano

    → Text editors and viewers

    nanocom

    → Hardware handling

    nbd

    → Networking applications

    ncdu

    → System tools

    ncftp

    → Networking applications

    ncmpc

    → Audio and video applications

    ncurses

    → Libraries → Text and terminal handling

    ndisc6 tools

    → Networking applications

    ne10

    → Libraries → Hardware handling

    neard

    → Hardware handling

    neardal

    → Libraries → Hardware handling

    net-tools

    → Networking applications

    netatalk

    → Networking applications

    netcat

    → Networking applications

    netcat-openbsd

    → Networking applications

    netperf

    → Debugging, profiling and benchmark

    netplug

    → Networking applications

    netsniff-ng

    → Debugging, profiling and benchmark

    netsnmp

    → Networking applications

    netstat-nat

    → Networking applications

    nettle

    → Libraries → Crypto

    networkmanager

    → Networking applications

    newt

    → Libraries → Text and terminal handling

    nfacct

    → Networking applications

    nfs-utils

    → Filesystem and flash utilities

    nftables

    → Networking applications

    nginx

    → Networking applications

    nginx-naxsi

    → Networking applications → External nginx modules

    nginx-upload

    → Networking applications → External nginx modules

    ngircd

    → Networking applications

    ngrep

    → Networking applications

    nload

    → Networking applications

    nmap

    → Networking applications

    nodejs

    → Interpreter languages and scripting

    nodm

    → Graphic libraries and applications (graphic/text)

    noip

    → Networking applications

    norm

    → Libraries → Networking

    nss-mdns

    → Libraries → Networking

    nss-pam-ldapd

    → Libraries → Networking

    ntfs-3g

    → Filesystem and flash utilities

    ntp

    → Networking applications

    numactl

    → System tools

    nut

    → System tools

    nuttcp

    → Networking applications

    nvidia-driver

    → Hardware handling

    nvidia-tegra23

    → Hardware handling

    nvidia-tegra23 binaries

    → Hardware handling

    nvidia-tegra23 codecs

    → Hardware handling

    nvme

    → Hardware handling

    obsidian-cursors

    → Fonts, cursors, icons, sounds and themes

    ocf-linux

    → Libraries → Crypto → cryptodev variant

    oclock

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    ocrad

    → Graphic libraries and applications (graphic/text)

    odhcp6c

    → Networking applications

    odhcploc

    → Networking applications

    odroid-mali

    → Hardware handling

    odroid-scripts

    → Hardware handling

    ofono

    → Hardware handling

    ola (open lighting architecture)

    → Hardware handling

    olsrd

    → Networking applications

    omniorb

    → Libraries → Networking

    omxplayer

    → Audio and video applications

    on2-8170-libs

    → Audio and video applications

    on2-8170-modules

    → Hardware handling

    open-plc-utils

    → Networking applications

    open2300

    → Hardware handling

    openal

    → Libraries → Audio/Sound

    openblas

    → Libraries → Other

    openbox

    → Graphic libraries and applications (graphic/text)

    opencore-amr

    → Libraries → Audio/Sound

    opencv-2.4

    → Libraries → Graphics

    opencv3

    → Libraries → Graphics

    openipmi

    → Hardware handling

    openjpeg

    → Libraries → Graphics

    openldap

    → Libraries → Networking

    openmpi

    → Libraries → Networking

    openntpd

    → Networking applications

    openobex

    → Networking applications

    openocd

    → Hardware handling

    openpgm

    → Libraries → Networking

    openpowerlink

    → Hardware handling

    openssh

    → Networking applications

    openssl

    → Libraries → Crypto

    openswan

    → Networking applications

    OpenTyrian

    → Games

    OpenTyrian data

    → Games

    openvmtools

    → System tools

    openvpn

    → Networking applications

    openzwave

    → Libraries → Networking

    opkg

    → Package managers

    oprofile

    → Debugging, profiling and benchmark

    opus

    → Libraries → Audio/Sound

    opus-tools

    → Audio and video applications

    opusfile

    → Libraries → Audio/Sound

    orbit

    → Interpreter languages and scripting → Lua libraries/modules

    orc

    → Libraries → Other

    oRTP

    → Libraries → Networking

    owfs

    → Libraries → Hardware handling

    owl-linux

    → Hardware handling

    p11-kit

    → Libraries → Other

    p7zip

    → Compressors and decompressors

    p910nd

    → Networking applications

    pango

    → Libraries → Graphics

    pangomm

    → Libraries → Graphics

    parted

    → Hardware handling

    patch

    → Development tools

    pax-utils

    → Debugging, profiling and benchmark

    pciutils

    → Hardware handling

    pcmanfm

    → Graphic libraries and applications (graphic/text)

    pcre

    → Libraries → Text and terminal handling

    pcsc-lite

    → Libraries → Hardware handling

    pdbg

    → Hardware handling

    perl

    → Interpreter languages and scripting

    perl-crypt-openssl-random

    → Interpreter languages and scripting → Perl libraries/modules

    perl-crypt-openssl-rsa

    → Interpreter languages and scripting → Perl libraries/modules

    perl-datetime-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-db-file

    → Interpreter languages and scripting → Perl libraries/modules

    perl-digest-hmac

    → Interpreter languages and scripting → Perl libraries/modules

    perl-digest-sha1

    → Interpreter languages and scripting → Perl libraries/modules

    perl-encode-detect

    → Interpreter languages and scripting → Perl libraries/modules

    perl-encode-locale

    → Interpreter languages and scripting → Perl libraries/modules

    perl-file-listing

    → Interpreter languages and scripting → Perl libraries/modules

    perl-file-util

    → Interpreter languages and scripting → Perl libraries/modules

    perl-gd

    → Interpreter languages and scripting → Perl libraries/modules

    perl-gdgraph

    → Interpreter languages and scripting → Perl libraries/modules

    perl-gdtextutil

    → Interpreter languages and scripting → Perl libraries/modules

    perl-html-parser

    → Interpreter languages and scripting → Perl libraries/modules

    perl-html-tagset

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-cookies

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-daemon

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-date

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-message

    → Interpreter languages and scripting → Perl libraries/modules

    perl-http-negotiate

    → Interpreter languages and scripting → Perl libraries/modules

    perl-io-html

    → Interpreter languages and scripting → Perl libraries/modules

    perl-io-socket-ssl

    → Interpreter languages and scripting → Perl libraries/modules

    perl-json-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-libwww-perl

    → Interpreter languages and scripting → Perl libraries/modules

    perl-lwp-mediatypes

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mail-dkim

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mailtools

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mime-base64

    → Interpreter languages and scripting → Perl libraries/modules

    perl-mojolicious

    → Interpreter languages and scripting → Perl libraries/modules

    perl-net-dns

    → Interpreter languages and scripting → Perl libraries/modules

    perl-net-http

    → Interpreter languages and scripting → Perl libraries/modules

    perl-net-ssleay

    → Interpreter languages and scripting → Perl libraries/modules

    perl-netaddr-ip

    → Interpreter languages and scripting → Perl libraries/modules

    perl-path-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-time-hires

    → Interpreter languages and scripting → Perl libraries/modules

    perl-timedate

    → Interpreter languages and scripting → Perl libraries/modules

    perl-try-tiny

    → Interpreter languages and scripting → Perl libraries/modules

    perl-uri

    → Interpreter languages and scripting → Perl libraries/modules

    perl-www-robotrules

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-libxml

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-namespacesupport

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-sax

    → Interpreter languages and scripting → Perl libraries/modules

    perl-xml-sax-base

    → Interpreter languages and scripting → Perl libraries/modules

    phidgetwebservice

    → Networking applications

    php

    → Interpreter languages and scripting

    php-geoip

    → Interpreter languages and scripting → External php extensions

    php-gnupg

    → Interpreter languages and scripting → External php extensions

    php-imagick

    → Interpreter languages and scripting → External php extensions

    php-memcached

    → Interpreter languages and scripting → External php extensions

    php-ssh2

    → Interpreter languages and scripting → External php extensions

    php-yaml

    → Interpreter languages and scripting → External php extensions

    php-zmq

    → Interpreter languages and scripting → External php extensions

    picocom

    → Hardware handling

    pifmrds

    → Hardware handling

    pinentry

    → Shell and utilities

    pixman

    → Libraries → Graphics

    pkgconf

    → Development tools

    poco

    → Libraries → Other

    polarssl

    → Libraries → Crypto

    polkit

    → System tools

    poppler

    → Libraries → Graphics

    popt

    → Libraries → Text and terminal handling

    portaudio

    → Libraries → Audio/Sound

    portmap

    → Networking applications

    postgresql

    → Libraries → Database

    pound

    → Networking applications

    powerpc-utils

    → System tools

    powertop

    → Hardware handling

    pppd

    → Networking applications

    pps-tools

    → Hardware handling

    pptp-linux

    → Networking applications

    prboom

    → Games

    presentproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    privoxy

    → Networking applications

    procps-ng

    → System tools

    procrank_linux

    → System tools

    proftpd

    → Networking applications

    protobuf

    → Libraries → Other

    protobuf-c

    → Libraries → Other

    proxychains-ng

    → Networking applications

    psmisc

    → System tools

    psplash

    → Graphic libraries and applications (graphic/text)

    ptpd

    → Networking applications

    ptpd2

    → Networking applications

    pulseaudio

    → Audio and video applications

    pulseview

    → Hardware handling

    pure-ftpd

    → Networking applications

    putty

    → Networking applications

    pv

    → Debugging, profiling and benchmark

    pwgen

    → System tools

    python

    → Interpreter languages and scripting

    python-alsaaudio

    → Interpreter languages and scripting → External python modules

    python-argh

    → Interpreter languages and scripting → External python modules

    python-autobahn

    → Interpreter languages and scripting → External python modules

    python-backports-abc

    → Interpreter languages and scripting → External python modules

    python-beautifulsoup4

    → Interpreter languages and scripting → External python modules

    python-bottle

    → Interpreter languages and scripting → External python modules

    python-can

    → Interpreter languages and scripting → External python modules

    python-cbor

    → Interpreter languages and scripting → External python modules

    python-certifi

    → Interpreter languages and scripting → External python modules

    python-cffi

    → Interpreter languages and scripting → External python modules

    python-characteristic

    → Interpreter languages and scripting → External python modules

    python-cheetah

    → Interpreter languages and scripting → External python modules

    python-cherrypy

    → Interpreter languages and scripting → External python modules

    python-click

    → Interpreter languages and scripting → External python modules

    python-coherence

    → Interpreter languages and scripting → External python modules

    python-configobj

    → Interpreter languages and scripting → External python modules

    python-configshell-fb

    → Interpreter languages and scripting → External python modules

    python-crc16

    → Interpreter languages and scripting → External python modules

    python-crossbar

    → Interpreter languages and scripting → External python modules

    python-cryptography

    → Interpreter languages and scripting → External python modules

    python-cssselect

    → Interpreter languages and scripting → External python modules

    python-daemon

    → Interpreter languages and scripting → External python modules

    python-dataproperty

    → Interpreter languages and scripting → External python modules

    python-dateutil

    → Interpreter languages and scripting → External python modules

    python-dialog

    → Interpreter languages and scripting → External python modules

    python-dialog3

    → Interpreter languages and scripting → External python modules

    python-dicttoxml

    → Interpreter languages and scripting → External python modules

    python-django

    → Interpreter languages and scripting → External python modules

    python-docopt

    → Interpreter languages and scripting → External python modules

    python-dominate

    → Interpreter languages and scripting → External python modules

    python-dpkt

    → Interpreter languages and scripting → External python modules

    python-ecdsa

    → Interpreter languages and scripting → External python modules

    python-engineio

    → Interpreter languages and scripting → External python modules

    python-enum

    → Interpreter languages and scripting → External python modules

    python-enum34

    → Interpreter languages and scripting → External python modules

    python-flask

    → Interpreter languages and scripting → External python modules

    python-flask-jsonrpc

    → Interpreter languages and scripting → External python modules

    python-flask-login

    → Interpreter languages and scripting → External python modules

    python-flup

    → Interpreter languages and scripting → External python modules

    python-gobject

    → Interpreter languages and scripting → External python modules

    python-html5lib

    → Interpreter languages and scripting → External python modules

    python-httplib2

    → Interpreter languages and scripting → External python modules

    python-humanize

    → Interpreter languages and scripting → External python modules

    python-id3

    → Interpreter languages and scripting → External python modules

    python-idna

    → Interpreter languages and scripting → External python modules

    python-iniparse

    → Interpreter languages and scripting → External python modules

    python-iowait

    → Interpreter languages and scripting → External python modules

    python-ipaddr

    → Interpreter languages and scripting → External python modules

    python-ipaddress

    → Interpreter languages and scripting → External python modules

    python-ipy

    → Interpreter languages and scripting → External python modules

    python-ipython

    → Interpreter languages and scripting → External python modules

    python-itsdangerous

    → Interpreter languages and scripting → External python modules

    python-jinja2

    → Interpreter languages and scripting → External python modules

    python-json-schema-validator

    → Interpreter languages and scripting → External python modules

    python-keyring

    → Interpreter languages and scripting → External python modules

    python-libconfig

    → Interpreter languages and scripting → External python modules

    python-lmdb

    → Interpreter languages and scripting → External python modules

    python-lxml

    → Interpreter languages and scripting → External python modules

    python-mad

    → Interpreter languages and scripting → External python modules

    python-mako

    → Interpreter languages and scripting → External python modules

    python-markdown

    → Interpreter languages and scripting → External python modules

    python-markupsafe

    → Interpreter languages and scripting → External python modules

    python-meld3

    → Interpreter languages and scripting → External python modules

    python-mistune

    → Interpreter languages and scripting → External python modules

    python-msgpack

    → Interpreter languages and scripting → External python modules

    python-netaddr

    → Interpreter languages and scripting → External python modules

    python-netifaces

    → Interpreter languages and scripting → External python modules

    python-networkmanager

    → Interpreter languages and scripting → External python modules

    python-nfc

    → Interpreter languages and scripting → External python modules

    python-numpy

    → Interpreter languages and scripting → External python modules

    python-paho-mqtt

    → Interpreter languages and scripting → External python modules

    python-pam

    → Interpreter languages and scripting → External python modules

    python-paramiko

    → Interpreter languages and scripting → External python modules

    python-pathtools

    → Interpreter languages and scripting → External python modules

    python-pathvalidate

    → Interpreter languages and scripting → External python modules

    python-pexpect

    → Interpreter languages and scripting → External python modules

    python-pillow

    → Interpreter languages and scripting → External python modules

    python-posix-ipc

    → Interpreter languages and scripting → External python modules

    python-prompt-toolkit

    → Interpreter languages and scripting → External python modules

    python-protobuf

    → Interpreter languages and scripting → External python modules

    python-psutil

    → Interpreter languages and scripting → External python modules

    python-ptyprocess

    → Interpreter languages and scripting → External python modules

    python-pyasn

    → Interpreter languages and scripting → External python modules

    python-pyasn-modules

    → Interpreter languages and scripting → External python modules

    python-pycli

    → Interpreter languages and scripting → External python modules

    python-pycparser

    → Interpreter languages and scripting → External python modules

    python-pycrypto

    → Interpreter languages and scripting → External python modules

    python-pydal

    → Interpreter languages and scripting → External python modules

    python-pyftpdlib

    → Interpreter languages and scripting → External python modules

    python-pygame

    → Interpreter languages and scripting → External python modules

    python-pygments

    → Interpreter languages and scripting → External python modules

    python-pyinotify

    → Interpreter languages and scripting → External python modules

    python-pymysql

    → Interpreter languages and scripting → External python modules

    python-pynacl

    → Interpreter languages and scripting → External python modules

    python-pyopenssl

    → Interpreter languages and scripting → External python modules

    python-pyparsing

    → Interpreter languages and scripting → External python modules

    python-pyparted

    → Interpreter languages and scripting → External python modules

    python-pypcap

    → Interpreter languages and scripting → External python modules

    python-pyqt

    → Interpreter languages and scripting → External python modules

    python-pyratemp

    → Interpreter languages and scripting → External python modules

    python-pyro

    → Interpreter languages and scripting → External python modules

    python-pyroute2

    → Interpreter languages and scripting → External python modules

    python-pysendfile

    → Interpreter languages and scripting → External python modules

    python-pysmb

    → Interpreter languages and scripting → External python modules

    python-pysnmp

    → Interpreter languages and scripting → External python modules

    python-pysnmp-apps

    → Interpreter languages and scripting → External python modules

    python-pysnmp-mibs

    → Interpreter languages and scripting → External python modules

    python-pysocks

    → Interpreter languages and scripting → External python modules

    python-pytablewriter

    → Interpreter languages and scripting → External python modules

    python-pytrie

    → Interpreter languages and scripting → External python modules

    python-pytz

    → Interpreter languages and scripting → External python modules

    python-pyudev

    → Interpreter languages and scripting → External python modules

    python-pyusb

    → Interpreter languages and scripting → External python modules

    python-pyxb

    → Interpreter languages and scripting → External python modules

    python-pyyaml

    → Interpreter languages and scripting → External python modules

    python-pyzmq

    → Interpreter languages and scripting → External python modules

    python-requests

    → Interpreter languages and scripting → External python modules

    python-rpi-gpio

    → Interpreter languages and scripting → External python modules

    python-rtslib-fb

    → Interpreter languages and scripting → External python modules

    python-scapy3k

    → Interpreter languages and scripting → External python modules

    python-sdnotify

    → Interpreter languages and scripting → External python modules

    python-serial

    → Interpreter languages and scripting → External python modules

    python-service-identity

    → Interpreter languages and scripting → External python modules

    python-setproctitle

    → Interpreter languages and scripting → External python modules

    python-setuptools

    → Interpreter languages and scripting → External python modules

    python-shutilwhich

    → Interpreter languages and scripting → External python modules

    python-simplejson

    → Interpreter languages and scripting → External python modules

    python-singledispatch

    → Interpreter languages and scripting → External python modules

    python-sip

    → Interpreter languages and scripting → External python modules

    python-six

    → Interpreter languages and scripting → External python modules

    python-smbus-cffi

    → Interpreter languages and scripting → External python modules

    python-socketio

    → Interpreter languages and scripting → External python modules

    python-spidev

    → Interpreter languages and scripting → External python modules

    python-thrift

    → Interpreter languages and scripting → External python modules

    python-tomako

    → Interpreter languages and scripting → External python modules

    python-tornado

    → Interpreter languages and scripting → External python modules

    python-treq

    → Interpreter languages and scripting → External python modules

    python-twisted

    → Interpreter languages and scripting → External python modules

    python-txaio

    → Interpreter languages and scripting → External python modules

    python-u-msgpack

    → Interpreter languages and scripting → External python modules

    python-ubjson

    → Interpreter languages and scripting → External python modules

    python-ujson

    → Interpreter languages and scripting → External python modules

    python-urllib3

    → Interpreter languages and scripting → External python modules

    python-urwid

    → Interpreter languages and scripting → External python modules

    python-versiontools

    → Interpreter languages and scripting → External python modules

    python-watchdog

    → Interpreter languages and scripting → External python modules

    python-wcwidth

    → Interpreter languages and scripting → External python modules

    python-web2py

    → Interpreter languages and scripting → External python modules

    python-webpy

    → Interpreter languages and scripting → External python modules

    python-werkzeug

    → Interpreter languages and scripting → External python modules

    python-ws4py

    → Interpreter languages and scripting → External python modules

    python-wsaccel

    → Interpreter languages and scripting → External python modules

    python-xlrd

    → Interpreter languages and scripting → External python modules

    python-xlsxwriter

    → Interpreter languages and scripting → External python modules

    python-xlutils

    → Interpreter languages and scripting → External python modules

    python-xlwt

    → Interpreter languages and scripting → External python modules

    python-zope-interface

    → Interpreter languages and scripting → External python modules

    python3

    → Interpreter languages and scripting

    qdecoder

    → Libraries → Networking

    QEMU

    → Miscellaneous

    qextserialport

    → Graphic libraries and applications (graphic/text)

    qhull

    → Libraries → Other

    qjson

    → Graphic libraries and applications (graphic/text)

    qlibc

    → Libraries → Other

    qpdf

    → Miscellaneous

    qpid-proton

    → Libraries → Networking

    Qt

    → Graphic libraries and applications (graphic/text)

    qt-webkit-kiosk

    → Graphic libraries and applications (graphic/text)

    Qt5

    → Graphic libraries and applications (graphic/text)

    qt53d

    → Graphic libraries and applications (graphic/text)

    qt5base

    → Graphic libraries and applications (graphic/text)

    qt5canvas3d

    → Graphic libraries and applications (graphic/text)

    qt5cinex

    → Graphic libraries and applications (graphic/text)

    qt5connectivity

    → Graphic libraries and applications (graphic/text)

    qt5declarative

    → Graphic libraries and applications (graphic/text)

    qt5enginio

    → Graphic libraries and applications (graphic/text)

    qt5graphicaleffects

    → Graphic libraries and applications (graphic/text)

    qt5imageformats

    → Graphic libraries and applications (graphic/text)

    qt5location

    → Graphic libraries and applications (graphic/text)

    qt5multimedia

    → Graphic libraries and applications (graphic/text)

    qt5quickcontrols

    → Graphic libraries and applications (graphic/text)

    qt5quickcontrols2

    → Graphic libraries and applications (graphic/text)

    qt5script

    → Graphic libraries and applications (graphic/text)

    qt5sensors

    → Graphic libraries and applications (graphic/text)

    qt5serialbus

    → Graphic libraries and applications (graphic/text)

    qt5serialport

    → Graphic libraries and applications (graphic/text)

    qt5svg

    → Graphic libraries and applications (graphic/text)

    qt5tools

    → Graphic libraries and applications (graphic/text)

    qt5webchannel

    → Graphic libraries and applications (graphic/text)

    qt5webkit

    → Graphic libraries and applications (graphic/text)

    qt5websockets

    → Graphic libraries and applications (graphic/text)

    qt5x11extras

    → Graphic libraries and applications (graphic/text)

    qt5xmlpatterns

    → Graphic libraries and applications (graphic/text)

    qtuio

    → Graphic libraries and applications (graphic/text)

    quagga

    → Networking applications

    quazip

    → Graphic libraries and applications (graphic/text)

    quota

    → System tools

    qwt

    → Graphic libraries and applications (graphic/text)

    rabbitmq-c

    → Libraries → Networking

    racehound

    → Debugging, profiling and benchmark

    radvd

    → Networking applications

    ramspeed

    → Debugging, profiling and benchmark

    ramspeed/smp

    → Debugging, profiling and benchmark

    randrproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    ranger

    → Shell and utilities

    rapidjson

    → Libraries → JSON/XML

    rapidxml

    → Libraries → JSON/XML

    raptor

    → Libraries → JSON/XML

    rdesktop

    → Graphic libraries and applications (graphic/text)

    read-edid

    → Hardware handling

    readline

    → Libraries → Text and terminal handling

    recordproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    redis

    → Libraries → Database

    renderproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    resourceproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    rfkill

    → Hardware handling

    rgb

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    rings

    → Interpreter languages and scripting → Lua libraries/modules

    rng-tools

    → Hardware handling

    roxml

    → Libraries → JSON/XML

    rp-pppoe

    → Networking applications

    rpcbind

    → Networking applications

    rpi-firmware

    → Hardware handling → Firmware

    rpi-userland

    → Hardware handling

    rpm

    → Package managers

    rrdtool

    → Graphic libraries and applications (graphic/text)

    rs485conf

    → Hardware handling

    rsh-redone

    → Networking applications

    rstart

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    rsync

    → Networking applications

    rsyslog

    → System tools

    rt-tests

    → Debugging, profiling and benchmark

    rtai

    → Real-Time

    rtl8188eu

    → Hardware handling

    rtl8821au

    → Hardware handling

    rtorrent

    → Networking applications

    rtptools

    → Networking applications

    rubix

    → Games

    ruby

    → Interpreter languages and scripting

    runc

    → System tools

    samba4

    → Networking applications

    sane-backends

    → Hardware handling

    sbc

    → Libraries → Audio/Sound

    sconeserver

    → Networking applications

    screen

    → Shell and utilities

    Script Module

    → Graphic libraries and applications (graphic/text)

    scripts

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    scrnsaverproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    scrub

    → System tools

    scrypt

    → System tools

    SDL

    → Graphic libraries and applications (graphic/text)

    sdl2

    → Graphic libraries and applications (graphic/text)

    sdl2_gfx

    → Graphic libraries and applications (graphic/text)

    sdl2_image

    → Graphic libraries and applications (graphic/text)

    sdl2_ttf

    → Graphic libraries and applications (graphic/text)

    SDL_gfx

    → Graphic libraries and applications (graphic/text)

    SDL_image

    → Graphic libraries and applications (graphic/text)

    SDL_mixer

    → Graphic libraries and applications (graphic/text)

    SDL_net

    → Graphic libraries and applications (graphic/text)

    SDL_sound

    → Graphic libraries and applications (graphic/text)

    SDL_TTF

    → Graphic libraries and applications (graphic/text)

    sdparm

    → Hardware handling

    sed

    → Development tools

    ser2net

    → Networking applications

    sessreg

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    setools

    → Security

    setserial

    → Hardware handling

    setxkbmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    sg3-utils

    → Hardware handling

    shairport-sync

    → Networking applications

    shared-mime-info

    → Miscellaneous

    shareware Doom WAD file

    → Games

    shellinabox

    → Networking applications

    showfont

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    sigrok-cli

    → Hardware handling

    simicsfs

    → Filesystem and flash utilities

    sispmctl

    → Hardware handling

    sl

    → Games

    slang

    → Libraries → Text and terminal handling

    slirp

    → Libraries → Networking

    smack

    → System tools

    smartmontools

    → Hardware handling

    smcroute

    → Networking applications

    smproxy

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    smstools3

    → Hardware handling

    snappy

    → Libraries → Compression and decompression

    snmp++

    → Libraries → Networking

    snowball-hdmiservice

    → Hardware handling

    snowball-init

    → Miscellaneous

    socat

    → Networking applications

    socketcand

    → Networking applications

    sofia-sip

    → Libraries → Networking

    softether

    → Networking applications

    sound-theme-borealis

    → Fonts, cursors, icons, sounds and themes

    sound-theme-freedesktop

    → Fonts, cursors, icons, sounds and themes

    sox

    → Audio and video applications

    sp-oops-extract

    → Filesystem and flash utilities

    spawn-fcgi

    → Networking applications

    speex

    → Libraries → Audio/Sound

    sphinxbase

    → Libraries → Other

    spi-tools

    → Hardware handling

    spice protocol

    → Networking applications

    spice server

    → Networking applications

    spidev_test

    → Debugging, profiling and benchmark

    sqlcipher

    → Libraries → Database

    sqlite

    → Libraries → Database

    squashfs

    → Filesystem and flash utilities

    squeezelite

    → Audio and video applications

    squid

    → Networking applications

    sredird

    → Hardware handling

    sshfs (FUSE)

    → Filesystem and flash utilities

    sshpass

    → Networking applications

    sstrip (deprecated)

    → Development tools

    start-stop-daemon

    → System tools

    startup-notification

    → Libraries → Other

    statserial

    → Hardware handling

    stella

    → Games

    stm32flash

    → Hardware handling

    strace

    → Debugging, profiling and benchmark

    stress

    → Debugging, profiling and benchmark

    stress-ng

    → Debugging, profiling and benchmark

    strongswan

    → Networking applications

    stunnel

    → Networking applications

    subversion

    → Development tools

    sudo

    → Shell and utilities

    sunxi nand-part

    → Filesystem and flash utilities

    sunxi script.bin board file

    → Hardware handling → Firmware

    sunxi-cedarx

    → Hardware handling

    sunxi-mali

    → Hardware handling

    supertuxkart

    → Games

    supervisor

    → System tools

    SVG Module

    → Graphic libraries and applications (graphic/text)

    swupdate

    → System tools

    sylpheed

    → Mail

    synergy

    → Graphic libraries and applications (graphic/text)

    sysdig

    → Debugging, profiling and benchmark

    syslog-ng

    → System tools

    syslogd & klogd

    → System tools

    sysprof

    → Debugging, profiling and benchmark

    sysstat

    → Hardware handling

    systemd

    → System tools

    systemd-bootchart

    → System tools

    sysvinit

    → System tools

    szip

    → Libraries → Compression and decompression

    taglib

    → Libraries → Audio/Sound

    tar

    → System tools

    targetcli-fb

    → Hardware handling

    taskd

    → Miscellaneous

    tcl

    → Interpreter languages and scripting

    tclap

    → Libraries → Text and terminal handling

    tcllib

    → Interpreter languages and scripting → Tcl libraries/modules

    tcpdump

    → Networking applications

    tcping

    → Networking applications

    tcpreplay

    → Networking applications

    tekui

    → Graphic libraries and applications (graphic/text)

    terminology

    → Shell and utilities

    tftpd

    → Networking applications

    thrift

    → Libraries → Networking

    thttpd

    → Networking applications

    ti-gfx

    → Hardware handling

    ti-sgx-demos

    → Hardware handling

    ti-sgx-km

    → Hardware handling

    ti-sgx-um

    → Hardware handling

    ti-uim

    → Hardware handling

    ti-utils

    → Hardware handling

    tidsp-binaries

    → Audio and video applications

    tiff

    → Libraries → Graphics

    time

    → Shell and utilities

    tinc

    → Networking applications

    tinyalsa

    → Libraries → Audio/Sound

    tinycbor

    → Libraries → Other

    tinydtls

    → Libraries → Crypto

    tinyhttpd

    → Networking applications

    tinymembench

    → Debugging, profiling and benchmark

    tinyxml

    → Libraries → JSON/XML

    tinyxml2

    → Libraries → JSON/XML

    tmux

    → Shell and utilities

    tn5250

    → Networking applications

    tor

    → Networking applications

    torsmo (deprecated)

    → Graphic libraries and applications (graphic/text)

    tovid

    → Audio and video applications

    tpm-tools

    → System tools

    trace-cmd

    → Debugging, profiling and benchmark

    transmission

    → Networking applications

    tree

    → Development tools

    tremor (fixed point vorbis decoder)

    → Libraries → Audio/Sound

    triggerhappy

    → Hardware handling

    trinity

    → Debugging, profiling and benchmark

    trousers

    → Libraries → Crypto

    tslib

    → Libraries → Hardware handling

    tstools

    → Audio and video applications

    tunctl

    → Networking applications

    turbolua

    → Interpreter languages and scripting → Lua libraries/modules

    tvheadend

    → Networking applications

    twm

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    twolame

    → Audio and video applications

    u-boot tools

    → Hardware handling

    ubus

    → Hardware handling

    udisks

    → Hardware handling

    udpcast

    → Networking applications

    uemacs

    → Text editors and viewers

    ulogd

    → Networking applications

    unionfs (FUSE)

    → Filesystem and flash utilities

    unixodbc

    → Libraries → Database

    unrar

    → Compressors and decompressors

    unscd

    → System tools

    unzip

    → Compressors and decompressors

    upmpdcli

    → Audio and video applications

    urg

    → Libraries → Hardware handling

    usb_modeswitch

    → Hardware handling

    usb_modeswitch_data

    → Hardware handling

    usbmount

    → Hardware handling

    usbredir

    → Libraries → Networking

    usbutils

    → Hardware handling

    ushare

    → Networking applications

    ussp-push

    → Networking applications

    ustr

    → Libraries → Text and terminal handling

    util-linux

    → System tools

    util-macros

    → Miscellaneous

    ux500-firmware

    → Hardware handling → Firmware

    v4l2grab

    → Audio and video applications

    valgrind

    → Debugging, profiling and benchmark

    valijson

    → Libraries → JSON/XML

    vde2

    → Networking applications

    videoproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    viewres

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    vim

    → Text editors and viewers

    vlc

    → Audio and video applications

    vnstat

    → Networking applications

    vo-aacenc

    → Libraries → Audio/Sound

    vorbis-tools

    → Audio and video applications

    vpnc

    → Networking applications

    vsftpd

    → Networking applications

    vtun

    → Networking applications

    w_scan

    → Hardware handling

    wavemon

    → Networking applications

    wavpack

    → Audio and video applications

    wayland

    → Libraries → Graphics

    wayland-protocols

    → Libraries → Graphics

    webkit (deprecated)

    → Libraries → Graphics

    WebKit Module

    → Graphic libraries and applications (graphic/text)

    webkitgtk

    → Libraries → Graphics

    webkitgtk 2.4.x (deprecated)

    → Libraries → Graphics

    webp

    → Libraries → Graphics

    webrtc-audio-processing

    → Libraries → Audio/Sound

    weston

    → Graphic libraries and applications (graphic/text)

    wf111

    → Hardware handling

    wget

    → Networking applications

    whetstone

    → Debugging, profiling and benchmark

    which

    → Shell and utilities

    whois

    → Networking applications

    wilc1000-firmware

    → Hardware handling → Firmware

    windowswmproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    wine

    → Miscellaneous

    wipe

    → Hardware handling

    wireless tools

    → Networking applications

    wireless-regdb

    → Networking applications

    wireshark

    → Networking applications

    wiringpi

    → Libraries → Hardware handling

    wmctrl

    → Graphic libraries and applications (graphic/text)

    wpa_supplicant

    → Networking applications

    wpan-tools

    → Networking applications

    wsapi

    → Interpreter languages and scripting → Lua libraries/modules

    wvdial

    → Networking applications

    wvstreams

    → Libraries → Networking

    x11perf

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    x11vnc

    → Graphic libraries and applications (graphic/text)

    x264

    → Libraries → Multimedia

    x265

    → Libraries → Multimedia

    xauth

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xavante

    → Interpreter languages and scripting → Lua libraries/modules

    xbacklight

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xbiff

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xbitmaps

    → Graphic libraries and applications (graphic/text) → X11R7 Other data

    xcalc

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcb-proto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xcb-util

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-cursor

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-image

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-keysyms

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-renderutil

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xcb-util-wm

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xclipboard

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xclock

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcmiscproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xcmsdb

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcompmgr

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xconsole

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xcursor-transparent-theme

    → Graphic libraries and applications (graphic/text) → X11R7 Other data

    xcursorgen

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdata_xcursor-themes

    → Graphic libraries and applications (graphic/text) → X11R7 Other data

    xdbedizzy

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xditview

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdm

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdotool

    → Graphic libraries and applications (graphic/text)

    xdpyinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xdriinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xedit

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xen

    → System tools

    Xenomai Userspace

    → Real-Time

    xerces-c++

    → Libraries → JSON/XML

    xev

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xextproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xeyes

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xf86-input-evdev

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-joystick

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-keyboard

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-libinput

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-mouse

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-synaptics

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-tslib

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-input-vmmouse

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-amdgpu

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-ark

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-ast

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-ati

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-cirrus

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-dummy

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-fbdev

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-fbturbo

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-geode

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-glide

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-glint

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-i128

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-imx

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-imx-viv

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-intel

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-mach64

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-mga

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-neomagic

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-nouveau

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-nv

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-openchrome

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-qxl

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-r128

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-savage

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-siliconmotion

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-sis

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-tdfx

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-tga

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-trident

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-v4l

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-vesa

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-vmware

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-voodoo

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86-video-wsfb

    → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    xf86bigfontproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xf86dga

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xf86dgaproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xf86driproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xf86vidmodeproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xfd

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfindproxy

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfontsel

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfs

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfsinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xfsprogs

    → Filesystem and flash utilities

    xgamma

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xgc

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xhost

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xineramaproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xinetd

    → Networking applications

    xinit

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xinput

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xinput-calibrator

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbcomp

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbevd

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbprint

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkbutils

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xkeyboard-config

    → Graphic libraries and applications (graphic/text)

    xkill

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xl2tp

    → Networking applications

    xload

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlogo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlsatoms

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlsclients

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xlsfonts

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmag

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xman

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmessage

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmh

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    XML Patterns Module

    → Graphic libraries and applications (graphic/text)

    xmlstarlet

    → Shell and utilities

    xmodmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xmore

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xorg-server

    → Graphic libraries and applications (graphic/text) → X11R7 Servers

    xorriso

    → Hardware handling

    xpr

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xprop

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xproto

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xproxymanagementprotocol

    → Graphic libraries and applications (graphic/text) → X11R7 X protocols

    xrandr

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xrdb

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xrefresh

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xscreensaver

    → Graphic libraries and applications (graphic/text)

    xset

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsetmode

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsetpointer

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsetroot

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xsm

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xstdcmap

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xtables-addons

    → Networking applications

    xterm

    → Graphic libraries and applications (graphic/text)

    xtrans

    → Graphic libraries and applications (graphic/text) → X11R7 Libraries

    xvidtune

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xvinfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xvkbd

    → Graphic libraries and applications (graphic/text)

    xwd

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xwininfo

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xwud

    → Graphic libraries and applications (graphic/text) → X11R7 Applications

    xxhash

    → Shell and utilities

    xz-utils

    → Compressors and decompressors

    yad

    → Graphic libraries and applications (graphic/text)

    yajl

    → Libraries → JSON/XML

    yaml-cpp

    → Libraries → JSON/XML

    yasm

    → Development tools

    yavta

    → Audio and video applications

    ympd

    → Audio and video applications

    zbar

    → Libraries → Graphics

    zd1211-firmware

    → Hardware handling → Firmware

    zeromq

    → Libraries → Networking

    zip

    → Compressors and decompressors

    zlib

    → Libraries → Compression and decompression

    zlog

    → Libraries → Logging

    zmqpp

    → Libraries → Networking

    znc

    → Networking applications

    zsh

    → Shell and utilities

    zxing-cpp

    → Libraries → Graphics

    zyre

    → Libraries → Networking

    Chapter 25. List of virtual packages

    These are the virtual packages known to Buildroot, with the +corresponding symbols and providers.

    Virtual packages Symbols Providers

    cryptodev

    BR2_PACKAGE_HAS_CRYPTODEV

    cryptodev-linux, ocf-linux

    jpeg

    BR2_PACKAGE_HAS_JPEG

    jpeg, jpeg-turbo

    libegl

    BR2_PACKAGE_HAS_LIBEGL

    mesa3d (w/ OpenGL EGL), gpu-amd-bin-mx51 (also imx53), imx-gpu-viv, mali-t76x, nvidia-driver (w/ X.org drivers), nvidia-tegra23 binaries, odroid-mali, rpi-userland, sunxi-mali, ti-gfx, ti-sgx-um

    libgl

    BR2_PACKAGE_HAS_LIBGL

    mesa3d (w/ DRI swrast driver), mesa3d (w/ DRI i915 driver), mesa3d (w/ DRI i965 driver), mesa3d (w/ DRI nouveau driver), mesa3d (w/ DRI radeon driver), xf86-video-imx-viv, nvidia-driver (w/ X.org drivers)

    libgles

    BR2_PACKAGE_HAS_LIBGLES

    mesa3d (w/ OpenGL ES), gpu-amd-bin-mx51 (also imx53), imx-gpu-viv, mali-t76x, nvidia-driver (w/ X.org drivers), nvidia-tegra23 binaries, odroid-mali, rpi-userland, sunxi-mali, ti-gfx, ti-sgx-um

    libopenmax

    BR2_PACKAGE_HAS_LIBOPENMAX

    bellagio, nvidia-tegra23 binaries, rpi-userland

    libopenvg

    BR2_PACKAGE_HAS_LIBOPENVG

    gpu-amd-bin-mx51 (also imx53), imx-gpu-viv, rpi-userland

    luainterpreter

    BR2_PACKAGE_HAS_LUAINTERPRETER

    lua, luajit

    powervr

    BR2_PACKAGE_HAS_POWERVR

    ti-gfx, ti-sgx-um

    udev

    BR2_PACKAGE_HAS_UDEV

    eudev, systemd

    Chapter 26. List of host utilities available in Buildroot

    The following packages are all available in the menu Host utilities.

    Packages

    host aespipe

    host android-tools

    host cbootimage

    host checkpolicy

    host cramfs

    host dfu-util

    host dos2unix

    host dosfstools

    host dtc

    host e2fsprogs

    host e2tools

    host faketime

    host fwup

    host genext2fs

    host genimage

    host genpart

    host gptfdisk

    host imx-usb-loader

    host jq

    host jsmin

    host lpc3250loader

    host mke2img

    host mtd, jffs2 and ubi/ubifs tools

    host mtools

    host mxsldr

    host omap-u-boot-utils

    host openocd

    host parted

    host patchelf

    host pwgen

    host qemu

    host sam-ba

    host squashfs

    host sunxi-tools

    host tegrarcm

    host u-boot tools

    host util-linux

    host vboot utils

    host xorriso

    host zip

    Chapter 27. Deprecated features

    The following features are marked as deprecated in Buildroot due to them being either too old or unmaintained. They will be removed at some point, so stop using them. Each deprecated symbol in kconfig depends on a symbol BR2_DEPRECATED_SINCE_xxxx_xx, which provides an indication of when the feature can be removed: features will not be removed within the year following deprecation. For example, a symbol depending on -BR2_DEPRECATED_SINCE_2013_05 can be removed from 2014.05 onwards.

    Features Location

    SuperH64

    Target options → Target Architecture

    Linux 3.17.x kernel headers

    Toolchain → Kernel Headers

    Linux 3.19.x kernel headers

    Toolchain → Kernel Headers

    Linux 4.0.x kernel headers

    Toolchain → Kernel Headers

    Linux 4.2.x kernel headers

    Toolchain → Kernel Headers

    eglibc

    Toolchain → C library

    gcc 4.5.x

    Toolchain → GCC compiler Version

    gdb 7.7.x

    Toolchain → GDB debugger Version

    xf86-input-void

    Target packages → Graphic libraries and applications (graphic/text) → X11R7 Drivers

    torsmo

    Target packages → Graphic libraries and applications (graphic/text)

    libgail

    Target packages → Libraries → Graphics

    webkit

    Target packages → Libraries → Graphics

    foomatic_filters

    Target packages → Networking applications

    gutenprint

    Target packages → Networking applications

    samba

    Target packages → Networking applications

    custom patch dir

    Bootloaders

    \ No newline at end of file +BR2_DEPRECATED_SINCE_2013_05 can be removed from 2014.05 onwards.

    Features Location

    SuperH64

    Target options → Target Architecture

    Linux 3.19.x kernel headers

    Toolchain → Kernel Headers

    Linux 4.0.x kernel headers

    Toolchain → Kernel Headers

    Linux 4.2.x kernel headers

    Toolchain → Kernel Headers

    Linux 4.3.x kernel headers

    Toolchain → Kernel Headers

    gcc 4.7.x

    Toolchain → GCC compiler Version

    kodi-addon-xvdr

    Target packages → Audio and video applications → PVR addons

    sstrip

    Target packages → Development tools

    torsmo

    Target packages → Graphic libraries and applications (graphic/text)

    libgail

    Target packages → Libraries → Graphics

    webkit

    Target packages → Libraries → Graphics

    webkitgtk 2.4.x

    Target packages → Libraries → Graphics

    ipkg

    Target packages → Package managers

    \ No newline at end of file diff --git a/bsp/buildroot/docs/manual/manual.pdf b/bsp/buildroot/docs/manual/manual.pdf index ef505c0747a7ce79257e92d1a88ed53700d5e5f5..008e5609d18204904cad6fc910037e5507fb5e1a 100644 GIT binary patch delta 427071 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�u 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%0Do#_O550yVqN1qC!dh6VQ0mJ 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⋘13 zFylJZ;+yC5UWCwqB;)*@H=Sudld2eJ2cpDLbtAjRvZe+3u6%bjlNS2wFQVchMB*XY z*&j&>5$aLUm0wDS$nwWhdjGK6q9*})omcTP?ez^-0R;J$N$WouwRtgY)}h}^;iRe( zzhlQEki>kK$d9e6IL@{frp28kKO3M1(jGOaKEMe&z9F@<*T!Fv1S>6U6GwzeYGNs#H0>ZjQgnN{~jq7J}H4}nB*sq{bcIahvb{r zAp{IsEu5#ZHEWliSQ3dVM+I&O@=f1KE_89)9W{T$N&wSu%w3b-Oy*jxYm7Huy6 z{rT7;6&!@UH*c_3yp3A=^L9jK$YEe?m_arla2d+QHh&kz)bm!Y?LO}|{f70+Cv+wt zNz7H>jwO9=guIkP#LM|v2e#SPQP!8>xFCR_TH&0$n4~)=aXi-mtFsN zzE`f^c2C$NfsJf_z^(I)-{*{8l}2pE%RJip&$b)>a~>MR8U}q9(6?42Te)$G_tR{*-2mXqg2Eqk+P>lkMYs&{d9g4&kbky-n>rRl@C{q?-QKD+gO_r3lL zC5Sf<2ey)>if0u~LGfoA836ToR||DoclU56_VlAtIT? zqWVw3Vjh12HuKS6?a!lJC)qfcev;`XuIGktsg6)G^t~B_@9;_1( zUg-sxw92=ZR$eJgIUMoYSK-(zb&$V07ytPTS3E90v$&J`AB zq=U=#bX{Q@43$J$Z7QQ{BDJjAN}$fmiF^%pNmeyfb98XED!wZ3bZQ2{Plc6G!#Pt! zkd8~28x>tuntwyOn=0oB2&I`dG9?4Z=*{bzvyb@{S}V@LR@N*QHH|8RWIZLw6U#Ro zMM|pHlIf7OtCZKIo8B)X!mQDSYVU0@v`aM1)tQ@u>dio->*;ctnfeCn5i9b|1Qbl< z{cPKSYyvB{tC50^byHHdcT^DBQzZVPqn`OHi{x|T47&P@17r_*00qRN!(vVUaWNZZGFECU>yc-&3Z)Bf5=UxV*OjkP zkLPtzZ>QQ+!isTGc*Z#3nll>qe3WNAWa_y`7o0z}k~WPRox{;7w|I2ZyS73a3^FRj zGC&Mr13Ip=^>2JJPv?heU#MYVf1*PwZ&=c_jq+85;~O;u}KNHLdL>jJI}1J2#P1rBR% zpQp9jY6(rK;}O*DU-_56fe2zEIRERC%gy>tX>({2?Y!dXIYw zdPHc$P$O}|DBWyRY22H`%fJ-2#xEhK1~#A7ky*^hX_PN9*MJ!#BrC(m+=GF+kBh*j#%M2LB4M8sB-rUCEsRa&CU4Iho#(F0nJNc;vudz556`(NE;vcS=X`RY` zK;jE;6ZOb`b5c9L+Vhv5Xy*qSZm_Jg)GyjUR9+VlhTcZCn|w3_Tt+nEn^OWo%n9!& zqNQ7a5j+9U2vXUF*ot;@!ww5_+Yi!<9AZ)pGnkEu77xS9gpjDkZ-fM5bYO&$ZMJ4; zu&ty&w5(QJ^h@i!8$g##c7caObqej7xrS6H zsg4^@var%GiW3kPC^4~#CYQ0FZ!v#leWSyCVY+Rw*WoY8uuR$^lDym|LLggWPcN*# zM_i8{z-8zv;tOgd2M#^71g)Nx0Keu8w*{kBJcOm9jw`Nu39urqR(bD`WUkS*RaVfV z3=2y-jdF{fT!7Q#c z$*b>%exA=_0$97bJO#64@DNwRu87!VLIN`tK$6+BL^<}xYHpcC8o@xmt3p5I z6ftTg3P{4&-O`0Lq)t#{kM3_bTCB_a$?OJz-^7FNmiN=hLP>_5`$?-$e@=q;f-bL3+Ap$`tI)^Mp~z`hTx%GVfd5}S}3qHGep`KW1|Ax}kdM&^902b0+d7yx9v^d1o z4D$1?aD6`e!pTI(uo49RI32PhCzN;(V9eDODcWqeZGo7HJu(HtS0vSlK1hJr*70G( z2)X15c*TF+c3<0lBj-Kz#B3XBwZeXbV_0ja!OjP_he3NJXc1z7swMee)aGN_9@6_{ zI;8bq`{v|mM`_F!UF+=D1*+@-x*{A$4M+)dY65`1s$KRULQhBW`@_-t$zwb?pslrr z-5i$7xL;n05VShbEemoW@OS(?6_%@$ir_}+pPPYbmI*$nPdAPlOcZ4#Ce-Y*CmZ9b6IZ#!-(lg7=Y zk9)z~2Ai=8OGbuU1^7!|d2TMazO0F88(Nb@>D}&2%=JQW^8-mG#sALorxG1`tyo}= ze!Q}<+@ChYO-IRPTW4Oh`#acmj38vwrh9WyzacU{A0Pj(J3B4P3IrOMEzJ=I0v(i% zmFdU2od%$3zb}sB_gpupZDO#oNEv6);BPL@s>ovPJ(dY1jDpqtOM6(dSVZaeY}?*d zos*H>bWB)p*eq|!)lU^IhfnV0U~#o;WOY5xkS{_C@5Z3fBfZ=otRX#^nNO7CKl;8L z=J~@%AT5t?+bl;_BbAlUrn+TBjcwv}()8rRpUnP=NoTMwZX+0G&xHwg}m93TOk&?4%pn5 zjNR;)xAR}| zKLGip{e-cV{U&dyqA*#Kop6RgHY<FNs*(7dp?)^@QA>XN%j)Mw zeVVJvoVYd{>#ClOvg(pPQ@q2lGtjEL{s8Xp%1B$Sx~7lY?Oa&aos`}(-6TyToKKQt zOp?^ab1!%th)GIJB?l62NHy$=e@&U|u;^<)kL8GqF7;D8?fJ~RGeT$9Y1CQ4nZnX3 z#tSux<=6#>lx5pQ)SCzHBzKd7Y+A&nAC>ZuC%%;SguLedV3Xc5F2KBkDvbvVR{k8vj(3uGBGY_b*h-2Cm6^Ey5WHtd58QQ9g*U{ z@s73Yg}d2m8tGX#8VW>l>GvS-i~?Y&nFYz4&Km0U+c$)FyJZ}pH{Fr1mNa<)*bL}z@%}8nyTB( zz?cO_(S86iXJ40Eym%5Xjz2O*GLqyRCX@yJBnWR5q|dUQ+IfHQJup}NA)=|$(xIQ` z_3ssR&tHE$h0uOvOfUKD1R~+TRLySk$XPSzM_~8Wjkc{)(#2H_T7_}5aYRln0{6_* zi!9o?T!euI;kY9l-3=Jz0MhUzmMh-T4p-<5bfw0MY8iL%@H5GUNfueFxZ)KtQ};74 zoFe|mwX2;T0>~tIi;I(`bsfG*V+e#$hy`~kVo?Q$V-7I67st8?V@JMClWiFv@I~Y_Q=*Wf!qjRd9Uxn54GKgcTl%Fr5_~ue#fIXATZ9SuZMFEs?_Rm z$roVtF8N0$OC?12nHsBt+yMHvb#-)B1^ZV%m{ER{8tg?nBcGQByn|?X=wit1sTCV) zk91%q<-i}$uXtn(F<)doD@w9#qW+kcqiSzpVX~@Xxf}QcrR4SE85yur3A&|8dII|QURm<3C+sOf&i zo$yFs&)r+B(BHHClc_61*Ee0aCvVoymp3YYT(ZaPc=rCescL=o{Gg8Wa6fCyHyiM@ zNK342rQYj5Jur`bU$s7Rcs%QV^KR+)IN=VHZ?HPZ92K(Qb()=oe;trmH5l^iQnmM5 zn=YM5ovd^jknlO$fs@$`(k8%(5gni*$ec76;{u&eO^x`Xh4~_*rgt#S1?{=<{2_ow zm>^lPXqSUbAV$!3wTfUQO(n)Dh3dk#N6Pxu*(+j2KV)XOQnK&J-_|k}E2(;K5$T5G%zZfHlTf_XMeEs6niODAC0<%grmd zRCfEb09-`kr2@PRC;Cx`^|WeI49qOQh_pTwvMl8c!||w;8Vn36n@tXu4kN^_$f9)D zBBV9I`vz~G1sb_i_9og+#jwxpQrT%5h!Anb%R?5pmYvkva7%?ftCU|NcN*_cProeq&^ZzGJI*hz&5 zn72k~A~QzK4d>VP>FLn^aN37ga|lGiS7%HI{Q8EGhyADQ>r$4)!KA`20|n?x)2Qn4jSrzTtMDb%8rA!cqzp{Q0PN;u!sdWGyY6<( zn=2_I{fU?glpW(!nU;k((+c)iqejUxKH2LZZbbE9&9c(Lh}M0lry8}GKbiz&A+4VZ z80$$=Z6My3!iTJx1M3F}=iIGk%DFrufXB*L$`g~Zl?`ZEi ziyEuoSTXfFRcVJ$2Q4}FDZ5?HC8g-GmSsA~`gc!+T$@Ye$d?*V_K>@U~^(%0DK~XfVB5Pw1dvDHbuCYSQsJqpc6x#M1#&&#igUD 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
    EO>1#u(j1(#@WF(F-#K0*RyJY5PTe}jFHct!vA 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%0A~G3;}^X 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 ^a!C0-9l`SL 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

    pZ=G1D+Owspt0tvj}D+qQpW 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%0D*FA|V~-G#4Kx!5`rADdBUcSI15 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%0AeJ=b8(anDF>{?ZK=_1R3(tmBm(ae8) z=`N7g?QKt=C~Hoi*Ru&jnmQw`wo;{SV%R z|G&D!eb3YR$l0Xj39(}>Uq>Z!y7O7+plCN66?41!x;;n&8XTySfT!^bnt!`FO`r(H z+P^Ol=RIbyDcYen26nEjZQs6 zrZ!Y{4>g#-uoGo&VSC{xJ`Y=(dkxKp15JMta9?>pp>ofHTwZZ1=L%QuNwy48xxd|6 zDmRA=}hokEx-T^n!jms&pSx9G2Q9`1Nr{4{z|3ZDpNXH+utWes2WX~MU@BXDy#IbosK*J?T4Z%6?5}Ln< z(`x+OXhA8eMux?uKQeP66`Eg%P{9A{^C_Bx2C3Hw)(aAf1Uyc{4v3OLYJV=GBvdQpNjJ42jKQ`}pTK-cyKkvC_ zZKU*BWYaX%9tt(SMlpWo^v{^pn+~?h0wyur&^*m0?&phv4Ce; zNCJx+HjNBR7`VdTuG>_|^p9iIA2k1U4Nc<#dwK3N0e#POCD@JNAjNY`U@6Ak4Do9D z^#`(O__TDn5RZXTItj%L=k(MG&jOsZ7i)cRyKm`%0;#H$#lt)AJpybZ|5<2+Q+cIS z8_>fgF}a%=O6NjmnEoS{o2pOYv_.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

    @u>4KN?(#p#G7%Gn5|(ph>^5;}4I_~q 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 diff --git a/bsp/buildroot/docs/manual/manual.text b/bsp/buildroot/docs/manual/manual.text index 3d74d129..c1dd6149 100644 --- a/bsp/buildroot/docs/manual/manual.text +++ b/bsp/buildroot/docs/manual/manual.text @@ -155,8 +155,8 @@ List of Examples --------------------------------------------------------------------- -Buildroot 2016.02 manual generated on 2016-03-01 20:53:10 UTC from -git revision aaf6c28 +Buildroot 2016.08.1 manual generated on 2016-09-21 20:57:15 UTC from +git revision b1001ac The Buildroot manual is written by the Buildroot developers. It is licensed under the GNU General Public License, version 2. Refer to @@ -638,8 +638,8 @@ by itself a cross-compilation toolchain, before building the userspace applications and libraries for your target embedded system. This backend supports several C libraries: uClibc [http:// -www.uclibc.org], the glibc [http://www.gnu.org/software/libc/ -libc.html] and eglibc [http://www.eglibc.org]. +www.uclibc.org], glibc [http://www.gnu.org/software/libc/libc.html] +and musl [http://www.musl-libc.org]. Once you have selected this backend, a number of options appear. The most important ones allow to: @@ -1687,9 +1687,9 @@ The normal operation of Buildroot is to download a tarball, extract it, configure, compile and install the software component found inside this tarball. The source code is extracted in output/build/ -, which is a temporary directory: whenever make -clean is used, this directory is entirely removed, and re-recreated -at the next make invocation. Even when a Git or Subversion repository -is used as the input for the package source code, Buildroot creates a +clean is used, this directory is entirely removed, and re-created at +the next make invocation. Even when a Git or Subversion repository is +used as the input for the package source code, Buildroot creates a tarball out of it, and then behaves as it normally does with tarballs. @@ -2113,7 +2113,7 @@ Post-build scripts (BR2_ROOTFS_POST_BUILD_SCRIPT) are stored + BASE_DIR: the base output directory -Below two more methods of customizing the target filesystem are +Below three more methods of customizing the target filesystem are described, but they are not recommended. Direct modification of the target filesystem @@ -2160,6 +2160,39 @@ Custom target skeleton (BR2_ROOTFS_SKELETON_CUSTOM) improvements brought to the default skeleton in later Buildroot releases. +Post-fakeroot scripts (BR2_ROOTFS_POST_FAKEROOT_SCRIPT) + + When aggregating the final images, some parts of the process + requires root rights: creating device nodes in /dev, setting + permissions or ownership to files and directories… To avoid + requiring actual root rights, Buildroot uses fakeroot to simulate + root rights. This is not a complete substitute for actually being + root, but is enough for what Buildroot needs. + + Post-fakeroot scripts are shell scripts that are called at the + end of the fakeroot phase, right before the filesystem image + generator is called. As such, they are called in the fakeroot + context. + + Post-fakeroot scripts can be useful in case you need to tweak the + filesystem to do modifications that are usually only available to + the root user. + + Note: It is recommended to use the existing mechanisms to set + file permissions or create entries in /dev (see Section 9.5.1, + “Setting file permissions and ownership and adding custom devices + nodes”) or to create users (see Section 9.6, “Adding custom user + accounts”) + + Note: The difference between post-build scripts (above) and + fakeroot scripts, is that post-build scripts are not called in + the fakeroot context. + + Note;. Using fakeroot is not an absolute substitute for actually + being root. fakeroot only ever fakes the file access rights and + types (regular, block-or-char device…) and uid/gid; these are + emulated in-memory. + 9.5.1. Setting file permissions and ownership and adding custom devices nodes @@ -2661,16 +2694,16 @@ Chapter 11. Known issues DO_XSI_MATH, UCLIBC_HAS_OBSOLETE_BSD_SIGNAL and UCLIBC_SV4_DEPRECATED are needed if one wants to build the ltp-testsuite package with uClibc. You need to either use a glibc - or eglibc based toolchain, or enable the appropriate options in - the uClibc configuration. + based toolchain, or enable the appropriate options in the uClibc + configuration. * The xfsprogs package does not build with the default uClibc configuration used by the Buildroot toolchain backend. You need - to either use a glibc or eglibc based toolchain, or enable the - appropriate options in the uClibc configuration. + to either use a glibc based toolchain, or enable the appropriate + options in the uClibc configuration. * The mrouted package does not build with the default uClibc configuration used by the Buildroot toolchain backend. You need - to either use a glibc or eglibc based toolchain, or enable the - appropriate options in the uClibc configuration. + to either use a glibc based toolchain, or enable the appropriate + options in the uClibc configuration. * The libffi package is not supported on the SuperH 2 and ARC architectures. * The prboom package triggers a compiler failure with the SuperH 4 @@ -2711,10 +2744,14 @@ directory, under the legal-info/ subdirectory. There you will find: * The source code for all packages; this is saved in the sources/ and host-sources/ subdirectories for target and host packages respectively. The source code for packages that set - _REDISTRIBUTE = NO will not be saved. Patches applied to some - packages by Buildroot are distributed with the Buildroot sources - and are not duplicated in the sources/ and host-sources/ - subdirectories. + _REDISTRIBUTE = NO will not be saved. Patches that were applied + are also saved, along with a file named series that lists the + patches in the order they were applied. Patches are under the + same license as the files that they modify. Note: Buildroot + applies additional patches to Libtool scripts of autotools-based + packages. These patches can be found under support/libtool in the + Buildroot source and, due to technical limitations, are not saved + with the package sources. You may need to collect them manually. * A manifest file (one for host and one for target packages) listing the configured packages, their version, license and related information. Some of this information might not be @@ -3443,12 +3480,16 @@ the text to use in the comment. + Dependency symbol: BR2_TOOLCHAIN_USES_GLIBC, BR2_TOOLCHAIN_USES_MUSL, BR2_TOOLCHAIN_USES_UCLIBC + Comment string: for the C library, a slightly different - comment text is used: foo needs an (e)glibc toolchain, or foo - needs an (e)glibc toolchain w/ C++ + comment text is used: foo needs a glibc toolchain, or foo + needs a glibc toolchain w/ C++ * C++ support + Dependency symbol: BR2_INSTALL_LIBSTDCPP + Comment string: C++ + * Fortran support + + + Dependency symbol: BR2_TOOLCHAIN_HAS_FORTRAN + + Comment string: fortran * thread support + Dependency symbol: BR2_TOOLCHAIN_HAS_THREADS @@ -3668,7 +3709,7 @@ based on hand-written Makefiles or shell scripts. 14: LIBFOO_DEPENDENCIES = host-libaaa libbbb 15: 16: define LIBFOO_BUILD_CMDS -17: $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all +17: $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) all 18: endef 19: 20: define LIBFOO_INSTALL_STAGING_CMDS @@ -3924,6 +3965,11 @@ information is (assuming the package name is libfoo) : when LIBFOO_SITE specifies a local directory path containing the package source code. Buildroot copies the contents of the source directory into the package’s build directory. + * LIBFOO_GIT_SUBMODULES, when LIBFOO_SITE_METHOD=git, will create + an archive with the git submodules in the repository. Note that + we try not to use such git submodules when they contain bundled + libraries, in which case we prefer to use those libraries from + their own package. * LIBFOO_STRIP_COMPONENTS is the number of leading components (directories) that tar must strip from file names on extraction. The tarball for most packages has one leading component named " @@ -3993,7 +4039,18 @@ information is (assuming the package name is libfoo) : ambiguous names such as BSD which actually name a family of licenses. This variable is optional. If it is not defined, unknown will appear in the license field of the manifest file for - this package. + this package. The expected format for this variable must comply + with the following rules: + + + If different parts of the package are released under + different licenses, then comma separate licenses (e.g. + LIBFOO_LICENSE = GPLv2+, LGPLv2.1+). If there is clear + distinction between which component is licensed under what + license, then annotate the license with that component, + between parenthesis (e.g. LIBFOO_LICENSE = GPLv2+ (programs), + LGPLv2.1+ (libraries)). + + If the package is dual licensed, then separate licenses with + the or keyword (e.g. LIBFOO_LICENSE = AFLv2.1 or GPLv2+). * LIBFOO_LICENSE_FILES is a space-separated list of files in the package tarball that contain the license(s) under which the package is released. make legal-info copies all of these files in @@ -4083,6 +4140,11 @@ different steps of the build process. commands will be run only when the relevant init system is installed (i.e. if systemd is selected as the init system in the configuration, only LIBFOO_INSTALL_INIT_SYSTEMD will be run). + * LIBFOO_HELP_CMDS lists the actions to print the package help, + which is included to the main make help output. These commands + can print anything in any format. This is seldom used, as + packages rarely have custom rules. Do not use this variable, + unless you really know that you need to print help. The preferred way to define these variables is: @@ -4552,6 +4614,82 @@ still possible to customize what is done in any particular step: restricted to very specific cases. Do not use it in the general case. +17.8.3. Generating a python-package from a PyPI repository + +If the Python package for which you would like to create a Buildroot +package is available on PyPI, you may want to use the scanpypi tool +located in support/scripts to automate the process. + +You can find the list of existing PyPI packages here [https:// +pypi.python.org]. + +scanpypi requires Python’s setuptools package to be installed on your +host. + +When at the root of your buildroot directory just do : + +./support/script/scanpypi foo bar -o package + +This will generate packages python-foo and python-bar in the package +folder if they exist on https://pypi.python.org. + +Find the external python modules menu and insert your package inside. +Keep in mind that the items inside a menu should be in alphabetical +order. + +Please keep in mind that you’ll most likely have to manually check +the package for any mistakes as there are things that cannot be +guessed by the generator (e.g. dependencies on any of the python core +modules such as BR2_PACKAGE_PYTHON_ZLIB). Also, please take note that +the license and license files are guessed and must be checked. You +also need to manually add the package to the package/Config.in file. + +If your Buildroot package is not in the official Buildroot tree but +in a BR2_EXTERNAL tree, use the -o flag as follows: + +./support/script/scanpypi foo bar -o other_package_dir + +This will generate packages python-foo and python-bar in the +other_package_directory instead of package. + +Option -h will list the available options: + +./support/script/scanpypi -h + +17.8.4. python-package CFFI backend + +C Foreign Function Interface for Python (CFFI) provides a convenient +and reliable way to call compiled C code from Python using interface +declarations written in C. Python packages relying on this backend +can be identified by the appearance of a cffi dependency in the +install_requires field of their setup.py file. + +Such a package should: + + * add python-cffi as a runtime dependency in order to install the + compiled C library wrapper on the target. This is achieved by + adding select BR2_PACKAGE_PYTHON_CFFI to the package Config.in. + +config BR2_PACKAGE_PYTHON_FOO + bool "python-foo" + select BR2_PACKAGE_PYTHON_CFFI # runtime + + * add host-python-cffi as a build-time dependency in order to + cross-compile the C wrapper. This is achieved by adding + host-python-cffi to the PYTHON_FOO_DEPENDENCIES variable. + +################################################################################ +# +# python-foo +# +################################################################################ + +... + +PYTHON_FOO_DEPENDENCIES = host-python-cffi + +$(eval $(python-package)) + 17.9. Infrastructure for LuaRocks-based packages 17.9.1. luarocks-package tutorial @@ -5488,6 +5626,13 @@ among others, use the following variables: * $(SRCDIR): the path to the overridden source directory * $(@D): the path to the build directory +17.17.2. Target-finalize hook + +Packages may also register hooks in LIBFOO_TARGET_FINALIZE_HOOKS. +These hooks are run after all packages are built, but before the +filesystem images are generated. They are seldom used, and your +package probably do not need them. + 17.18. Gettext integration and interaction with packages Many packages that support internationalization use the gettext @@ -5687,12 +5832,11 @@ patches” for details. + If a series file exists in the package directory, then patches are applied according to the series file; - + Otherwise, patch files matching -*.patch are - applied in alphabetical order. So, to ensure they are applied - in the right order, it is highly recommended to name the - patch files like this: -- - .patch, where refers to the apply order - . + + Otherwise, patch files matching *.patch are applied in + alphabetical order. So, to ensure they are applied in the + right order, it is highly recommended to name the patch files + like this: -.patch, where + refers to the apply order. 5. If BR2_GLOBAL_PATCH_DIR is defined, the directories will be enumerated in the order they are specified. The patches are applied as described in the previous step. @@ -6282,7 +6426,7 @@ this syntax, you will need to write: /usr/bin/foo f 755 0 0 - - - - - /usr/bin/bar f 755 root root - - - - - -/data/buz f buz-user buz-group - - - - - +/data/buz f 644 buz-user buz-group - - - - - Alternatively, if you want to change owner/permission of a directory recursively, you can write (to set UID to foo, GID to bar and access @@ -6302,6 +6446,33 @@ hda, /dev/hdaX, X ranging from 1 to 15: /dev/hda b 640 root root 3 1 1 1 15 +Extended attributes are supported if +BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is enabled. This +is done by adding a line starting with |xattr after the line +describing the file. Right now, only capability is supported as +extended attribute. + ++------------------+ +||xattr|capability | ++------------------+ + + * |xattr is a "flag" that indicate an extended attribute + * capability is a capability to add to the previous file + +If you want to add the capability cap_sys_admin to the binary foo, +you will write : + +/usr/bin/foo f 755 root root - - - - - +|xattr cap_sys_admin+eip + +You can add several capabilities to a file by using several |xattr +lines. If you want to add the capability cap_sys_admin and +cap_net_admin to the binary foo, you will write : + +/usr/bin/foo f 755 root root - - - - - +|xattr cap_sys_admin+eip +|xattr cap_net_admin+eip + Chapter 23. Makeusers syntax documentation The syntax to create users is inspired by the makedev syntax, above, @@ -6392,17 +6563,26 @@ Chapter 24. List of target packages available in Buildroot +-------------------------------------------------------------------+ | Packages |Target packages → … | |-------------------------------+-----------------------------------| +| 4th |→ Interpreter languages and | +| |scripting | +|-------------------------------+-----------------------------------| | a10disp |→ Hardware handling | |-------------------------------+-----------------------------------| | acl |→ System tools | |-------------------------------+-----------------------------------| +| acpica |→ Hardware handling | +|-------------------------------+-----------------------------------| | acpid |→ Hardware handling | |-------------------------------+-----------------------------------| +| acpitool |→ Hardware handling | +|-------------------------------+-----------------------------------| | acsccid |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| | adwaita icon theme |→ Fonts, cursors, icons, sounds and| | |themes | |-------------------------------+-----------------------------------| +| aer-inject |→ Hardware handling | +|-------------------------------+-----------------------------------| | aespipe |→ Miscellaneous | |-------------------------------+-----------------------------------| | agent++ |→ Libraries → Networking | @@ -6411,6 +6591,14 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | aircrack-ng |→ Networking applications | |-------------------------------+-----------------------------------| +| alljoyn |→ Libraries → Networking | +|-------------------------------+-----------------------------------| +| alljoyn-base |→ Libraries → Networking | +|-------------------------------+-----------------------------------| +| alljoyn-tcl |→ Libraries → Networking | +|-------------------------------+-----------------------------------| +| alljoyn-tcl-base |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | alsa-lib |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| | alsa-utils |→ Audio and video applications | @@ -6422,6 +6610,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | am33x-cm3 |→ Hardware handling → Firmware | |-------------------------------+-----------------------------------| +| android-tools |→ System tools | +|-------------------------------+-----------------------------------| | angularjs |→ Libraries → Javascript | |-------------------------------+-----------------------------------| | apache |→ Networking applications | @@ -6443,6 +6633,9 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | argp-standalone |→ Libraries → Other | |-------------------------------+-----------------------------------| +| argparse |→ Interpreter languages and | +| |scripting → Lua libraries/modules | +|-------------------------------+-----------------------------------| | argus |→ Networking applications | |-------------------------------+-----------------------------------| | armadillo |→ Libraries → Other | @@ -6481,12 +6674,16 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | b43-firmware |→ Hardware handling → Firmware | |-------------------------------+-----------------------------------| +| babeld |→ Networking applications | +|-------------------------------+-----------------------------------| | bandwidthd |→ Networking applications | |-------------------------------+-----------------------------------| | bash |→ Shell and utilities | |-------------------------------+-----------------------------------| | batctl |→ Networking applications | |-------------------------------+-----------------------------------| +| batman-adv |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | bc |→ Miscellaneous | |-------------------------------+-----------------------------------| | bcache tools |→ Hardware handling | @@ -6591,6 +6788,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | canfestival |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| cannelloni |→ Networking applications | +|-------------------------------+-----------------------------------| | cantarell |→ Fonts, cursors, icons, sounds and| | |themes | |-------------------------------+-----------------------------------| @@ -6614,6 +6813,8 @@ Chapter 24. List of target packages available in Buildroot | cgilua |→ Interpreter languages and | | |scripting → Lua libraries/modules | |-------------------------------+-----------------------------------| +| cgroupfs-mount |→ System tools | +|-------------------------------+-----------------------------------| | check |→ Development tools | |-------------------------------+-----------------------------------| | chocolate-doom |→ Games | @@ -6622,6 +6823,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | cifs-utils |→ Filesystem and flash utilities | |-------------------------------+-----------------------------------| +| circus |→ System tools | +|-------------------------------+-----------------------------------| | civetweb |→ Networking applications | |-------------------------------+-----------------------------------| | cJSON |→ Libraries → JSON/XML | @@ -6641,6 +6844,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | connman |→ Networking applications | |-------------------------------+-----------------------------------| +| connman-gtk |→ Networking applications | +|-------------------------------+-----------------------------------| | conntrack-tools |→ Networking applications | |-------------------------------+-----------------------------------| | copas |→ Interpreter languages and | @@ -6670,6 +6875,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | crda |→ Networking applications | |-------------------------------+-----------------------------------| +| crudini |→ Shell and utilities | +|-------------------------------+-----------------------------------| | cryptodev-linux |→ Libraries → Crypto → cryptodev | | |variant | |-------------------------------+-----------------------------------| @@ -6696,6 +6903,8 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |X protocols | |-------------------------------+-----------------------------------| +| dante |→ Networking applications | +|-------------------------------+-----------------------------------| | dash |→ Shell and utilities | |-------------------------------+-----------------------------------| | dawgdic |→ Libraries → Other | @@ -6762,6 +6971,12 @@ Chapter 24. List of target packages available in Buildroot | docker |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| docker-containerd |→ System tools | +|-------------------------------+-----------------------------------| +| docker-engine |→ System tools | +|-------------------------------+-----------------------------------| +| domoticz |→ Miscellaneous | +|-------------------------------+-----------------------------------| | dos2unix |→ Development tools | |-------------------------------+-----------------------------------| | dosfstools |→ Filesystem and flash utilities | @@ -6790,6 +7005,9 @@ Chapter 24. List of target packages available in Buildroot | dstat |→ Debugging, profiling and | | |benchmark | |-------------------------------+-----------------------------------| +| dt |→ Debugging, profiling and | +| |benchmark | +|-------------------------------+-----------------------------------| | dtach |→ Shell and utilities | |-------------------------------+-----------------------------------| | dtc (libfdt) |→ Libraries → Hardware handling | @@ -6827,6 +7045,10 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | eeprog |→ Hardware handling | |-------------------------------+-----------------------------------| +| efibootmgr |→ System tools | +|-------------------------------+-----------------------------------| +| efivar |→ System tools | +|-------------------------------+-----------------------------------| | efl |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -6856,10 +7078,6 @@ Chapter 24. List of target packages available in Buildroot | enscript |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| -| epoxy |→ Graphic libraries and | -| |applications (graphic/text) → X11R7| -| |Libraries | -|-------------------------------+-----------------------------------| | erlang |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| @@ -6986,6 +7204,9 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | fftw |→ Libraries → Other | |-------------------------------+-----------------------------------| +| ficl |→ Interpreter languages and | +| |scripting | +|-------------------------------+-----------------------------------| | file |→ Shell and utilities | |-------------------------------+-----------------------------------| | filemq |→ Libraries → Networking | @@ -7007,6 +7228,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | flann |→ Libraries → Other | |-------------------------------+-----------------------------------| +| flannel |→ Networking applications | +|-------------------------------+-----------------------------------| | flashbench |→ Filesystem and flash utilities | |-------------------------------+-----------------------------------| | flashrom |→ Hardware handling | @@ -7058,6 +7281,9 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |Fonts | |-------------------------------+-----------------------------------| +| font-awesome |→ Fonts, cursors, icons, sounds and| +| |themes | +|-------------------------------+-----------------------------------| | font-bh-100dpi |→ Graphic libraries and | | |applications (graphic/text) → X11R7| | |Fonts | @@ -7188,8 +7414,6 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |Applications | |-------------------------------+-----------------------------------| -| foomatic_filters (deprecated) |→ Networking applications | -|-------------------------------+-----------------------------------| | fping |→ Networking applications | |-------------------------------+-----------------------------------| | freeradius-client |→ Libraries → Networking | @@ -7199,6 +7423,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | Freescale i.MX libraries |→ Hardware handling | |-------------------------------+-----------------------------------| +| freeswitch |→ Networking applications | +|-------------------------------+-----------------------------------| | freetype |→ Libraries → Graphics | |-------------------------------+-----------------------------------| | fslsfonts |→ Graphic libraries and | @@ -7214,6 +7440,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | ftop |→ System tools | |-------------------------------+-----------------------------------| +| fwup |→ Filesystem and flash utilities | +|-------------------------------+-----------------------------------| | fxload |→ Hardware handling | |-------------------------------+-----------------------------------| | gadgetfs-test |→ Hardware handling | @@ -7283,6 +7511,8 @@ Chapter 24. List of target packages available in Buildroot | gmpc |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| gmrender-resurrect |→ Audio and video applications | +|-------------------------------+-----------------------------------| | gnu-efi |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| | gnuchess |→ Games | @@ -7319,6 +7549,10 @@ Chapter 24. List of target packages available in Buildroot | gqview |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| gr-osmosdr |→ Miscellaneous | +|-------------------------------+-----------------------------------| +| granite |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| | grantlee |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -7326,6 +7560,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | grep |→ Development tools | |-------------------------------+-----------------------------------| +| gsettings-desktop-schemas |→ Miscellaneous | +|-------------------------------+-----------------------------------| | gsl |→ Libraries → Other | |-------------------------------+-----------------------------------| | gssdp |→ Libraries → Networking | @@ -7381,6 +7617,8 @@ Chapter 24. List of target packages available in Buildroot | gtkperf (performance test for |→ Graphic libraries and | | GTK2) |applications (graphic/text) | |-------------------------------+-----------------------------------| +| gtksourceview |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| | guile |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| @@ -7388,7 +7626,11 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | gupnp-av |→ Libraries → Networking | |-------------------------------+-----------------------------------| -| gutenprint (deprecated) |→ Networking applications | +| gupnp-dlna |→ Libraries → Networking | +|-------------------------------+-----------------------------------| +| gupnp-tools |→ Networking applications | +|-------------------------------+-----------------------------------| +| gutenprint |→ Networking applications | |-------------------------------+-----------------------------------| | gvfs |→ Hardware handling | |-------------------------------+-----------------------------------| @@ -7428,6 +7670,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | i2c-tools |→ Hardware handling | |-------------------------------+-----------------------------------| +| i7z |→ Hardware handling | +|-------------------------------+-----------------------------------| | ibrcommon |→ Libraries → Networking | |-------------------------------+-----------------------------------| | ibrdtn |→ Libraries → Networking | @@ -7453,6 +7697,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | ifupdown |→ Networking applications | |-------------------------------+-----------------------------------| +| igd2-for-linux |→ Networking applications | +|-------------------------------+-----------------------------------| | igh-ethercat |→ Networking applications | |-------------------------------+-----------------------------------| | igmpproxy |→ Networking applications | @@ -7464,14 +7710,22 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | imlib2 |→ Libraries → Graphics | |-------------------------------+-----------------------------------| +| imx-codec |→ Hardware handling | +|-------------------------------+-----------------------------------| | imx-gpu-viv |→ Hardware handling | |-------------------------------+-----------------------------------| | imx-kobs |→ Hardware handling | |-------------------------------+-----------------------------------| | imx-lib |→ Hardware handling | |-------------------------------+-----------------------------------| +| imx-parser |→ Hardware handling | +|-------------------------------+-----------------------------------| +| imx-uuc |→ Hardware handling | +|-------------------------------+-----------------------------------| | imx-vpu |→ Hardware handling | |-------------------------------+-----------------------------------| +| imx-vpuwrap |→ Hardware handling | +|-------------------------------+-----------------------------------| | inadyn |→ Networking applications | |-------------------------------+-----------------------------------| | inconsolata |→ Fonts, cursors, icons, sounds and| @@ -7504,7 +7758,7 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | iperf3 |→ Networking applications | |-------------------------------+-----------------------------------| -| ipkg |→ Package managers | +| ipkg (deprecated) |→ Package managers | |-------------------------------+-----------------------------------| | ipmitool |→ Hardware handling | |-------------------------------+-----------------------------------| @@ -7547,6 +7801,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | jasper |→ Libraries → Graphics | |-------------------------------+-----------------------------------| +| jemalloc |→ Libraries → Other | +|-------------------------------+-----------------------------------| | jhead |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -7619,19 +7875,30 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | kmod |→ System tools | |-------------------------------+-----------------------------------| +| kms++ |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| | knock |→ Networking applications | |-------------------------------+-----------------------------------| | kodi |→ Audio and video applications | |-------------------------------+-----------------------------------| -| kodi-addon-xvdr |→ Audio and video applications → | +| kodi-addon-xvdr (deprecated) |→ Audio and video applications → | | |PVR addons | |-------------------------------+-----------------------------------| +| kodi-adsp-basic |→ Audio and video applications → | +| |Audio DSP addons | +|-------------------------------+-----------------------------------| +| kodi-adsp-freesurround |→ Audio and video applications → | +| |Audio DSP addons | +|-------------------------------+-----------------------------------| | kodi-audiodecoder-modplug |→ Audio and video applications → | | |Audio decoder addons | |-------------------------------+-----------------------------------| | kodi-audiodecoder-nosefart |→ Audio and video applications → | | |Audio decoder addons | |-------------------------------+-----------------------------------| +| kodi-audiodecoder-opus |→ Audio and video applications → | +| |Audio decoder addons | +|-------------------------------+-----------------------------------| | kodi-audiodecoder-sidplay |→ Audio and video applications → | | |Audio decoder addons | |-------------------------------+-----------------------------------| @@ -7671,6 +7938,9 @@ Chapter 24. List of target packages available in Buildroot | kodi-pvr-filmon |→ Audio and video applications → | | |PVR addons | |-------------------------------+-----------------------------------| +| kodi-pvr-hdhomerun |→ Audio and video applications → | +| |PVR addons | +|-------------------------------+-----------------------------------| | kodi-pvr-hts |→ Audio and video applications → | | |PVR addons | |-------------------------------+-----------------------------------| @@ -7710,24 +7980,48 @@ Chapter 24. List of target packages available in Buildroot | kodi-screensaver-asteroids |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| +| kodi-screensaver-asterwave |→ Audio and video applications → | +| |Screensavers | +|-------------------------------+-----------------------------------| | kodi-screensaver-biogenesis |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| +| kodi-screensaver-cpblobs |→ Audio and video applications → | +| |Screensavers | +|-------------------------------+-----------------------------------| | kodi-screensaver-crystalmorph |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| | kodi-screensaver-greynetic |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| +| kodi-screensaver-matrixtrails |→ Audio and video applications → | +| |Screensavers | +|-------------------------------+-----------------------------------| | kodi-screensaver-pingpong |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| +| kodi-screensaver-planestate |→ Audio and video applications → | +| |Screensavers | +|-------------------------------+-----------------------------------| | kodi-screensaver-pyro |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| +| kodi-screensaver-rsxs |→ Audio and video applications → | +| |Screensavers | +|-------------------------------+-----------------------------------| | kodi-screensaver-stars |→ Audio and video applications → | | |Screensavers | |-------------------------------+-----------------------------------| +| kodi-visualisation-fishbmc |→ Audio and video applications → | +| |Visualisations | +|-------------------------------+-----------------------------------| +| kodi-visualisation-fountain |→ Audio and video applications → | +| |Visualisations | +|-------------------------------+-----------------------------------| +| kodi-visualisation-goom |→ Audio and video applications → | +| |Visualisations | +|-------------------------------+-----------------------------------| | kodi-visualisation-shadertoy |→ Audio and video applications → | | |Visualisations | |-------------------------------+-----------------------------------| @@ -7752,6 +8046,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | lame |→ Audio and video applications | |-------------------------------+-----------------------------------| +| lapack/blas |→ Libraries → Other | +|-------------------------------+-----------------------------------| | latencytop |→ Debugging, profiling and | | |benchmark | |-------------------------------+-----------------------------------| @@ -7777,10 +8073,16 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | leveldb |→ Libraries → Database | |-------------------------------+-----------------------------------| +| lft |→ Networking applications | +|-------------------------------+-----------------------------------| | lftp |→ Networking applications | |-------------------------------+-----------------------------------| +| libaacs |→ Libraries → Multimedia | +|-------------------------------+-----------------------------------| | libaio |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| +| libamcodec |→ Libraries → Multimedia | +|-------------------------------+-----------------------------------| | libao |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| | libarchive |→ Libraries → Compression and | @@ -7800,6 +8102,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libatomic_ops |→ Libraries → Other | |-------------------------------+-----------------------------------| +| libbdplus |→ Libraries → Multimedia | +|-------------------------------+-----------------------------------| | libbluray |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| | libbroadvoice |→ Libraries → Audio/Sound | @@ -7827,6 +8131,8 @@ Chapter 24. List of target packages available in Buildroot | libcli |→ Libraries → Text and terminal | | |handling | |-------------------------------+-----------------------------------| +| libcoap |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | libcodec2 |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| | libcofi |→ Libraries → Other | @@ -7867,12 +8173,16 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libdvbsi |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| +| libdvdcss |→ Libraries → Multimedia | +|-------------------------------+-----------------------------------| | libdvdnav |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| | libdvdread |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| | libebml |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| +| libebur128 |→ Libraries → Audio/Sound | +|-------------------------------+-----------------------------------| | libedit |→ Libraries → Text and terminal | | |handling | |-------------------------------+-----------------------------------| @@ -7881,6 +8191,8 @@ Chapter 24. List of target packages available in Buildroot | libenca |→ Libraries → Text and terminal | | |handling | |-------------------------------+-----------------------------------| +| libepoxy |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| | Liberation (Free fonts) |→ Fonts, cursors, icons, sounds and| | |themes | |-------------------------------+-----------------------------------| @@ -7901,6 +8213,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libeXosip2 |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| libfastjson |→ Libraries → JSON/XML | +|-------------------------------+-----------------------------------| | libfcgi |→ Libraries → Networking | |-------------------------------+-----------------------------------| | libffi |→ Libraries → Other | @@ -7926,12 +8240,6 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |Libraries | |-------------------------------+-----------------------------------| -| libfslcodec |→ Libraries → Multimedia | -|-------------------------------+-----------------------------------| -| libfslparser |→ Libraries → Multimedia | -|-------------------------------+-----------------------------------| -| libfslvpuwrap |→ Libraries → Multimedia | -|-------------------------------+-----------------------------------| | libftdi |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| | libftdi1 |→ Libraries → Hardware handling | @@ -7946,6 +8254,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libgdiplus |→ Libraries → Graphics | |-------------------------------+-----------------------------------| +| libgee |→ Libraries → Other | +|-------------------------------+-----------------------------------| | libgeotiff |→ Libraries → Graphics | |-------------------------------+-----------------------------------| | libglade |→ Libraries → Graphics | @@ -7993,6 +8303,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libilbc |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| +| libimxvpuapi |→ Libraries → Multimedia | +|-------------------------------+-----------------------------------| | libinput |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| | libiqrf |→ Libraries → Hardware handling | @@ -8033,6 +8345,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libmicrohttpd |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| libminiupnpc |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | libmms |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| | libmng |→ Libraries → Graphics | @@ -8049,6 +8363,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libmpeg2 |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| +| libnatpmp |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | libndp |→ Libraries → Networking | |-------------------------------+-----------------------------------| | libneon |→ Libraries → Networking | @@ -8105,12 +8421,16 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libphidget |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| +| libpjsip |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | libplayer |→ Libraries → Multimedia | |-------------------------------+-----------------------------------| | libplist |→ Libraries → Other | |-------------------------------+-----------------------------------| | libpng |→ Libraries → Graphics | |-------------------------------+-----------------------------------| +| libpqxx |→ Libraries → Database | +|-------------------------------+-----------------------------------| | libpthread-stubs |→ Libraries → Other | |-------------------------------+-----------------------------------| | libpthsem |→ Libraries → Other | @@ -8217,6 +8537,10 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libtirpc |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| libtomcrypt |→ Libraries → Crypto | +|-------------------------------+-----------------------------------| +| libtommath |→ Libraries → Other | +|-------------------------------+-----------------------------------| | libtool |→ Development tools | |-------------------------------+-----------------------------------| | libtorrent |→ Libraries → Networking | @@ -8231,6 +8555,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libuecc |→ Libraries → Crypto | |-------------------------------+-----------------------------------| +| libuio |→ Hardware handling | +|-------------------------------+-----------------------------------| | libump |→ Hardware handling | |-------------------------------+-----------------------------------| | libunistring |→ Libraries → Text and terminal | @@ -8250,6 +8576,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libusb-compat |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| +| libusbgx |→ Libraries → Hardware handling | +|-------------------------------+-----------------------------------| | libuv |→ Libraries → Other | |-------------------------------+-----------------------------------| | libv4l |→ Libraries → Hardware handling | @@ -8258,6 +8586,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | libva-intel-driver |→ Libraries → Graphics | |-------------------------------+-----------------------------------| +| libvdpau |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| | libvips |→ Libraries → Graphics | |-------------------------------+-----------------------------------| | libvncserver |→ Libraries → Networking | @@ -8444,6 +8774,8 @@ Chapter 24. List of target packages available in Buildroot | ljsyscall |→ Interpreter languages and | | |scripting → Lua libraries/modules | |-------------------------------+-----------------------------------| +| lksctp-tools |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | lldpd |→ Networking applications | |-------------------------------+-----------------------------------| | lm-sensors |→ Hardware handling | @@ -8457,6 +8789,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | log4cplus |→ Libraries → Logging | |-------------------------------+-----------------------------------| +| log4cpp |→ Libraries → Logging | +|-------------------------------+-----------------------------------| | log4cxx |→ Libraries → Logging | |-------------------------------+-----------------------------------| | logrotate |→ Shell and utilities | @@ -8616,6 +8950,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | makedevs |→ Filesystem and flash utilities | |-------------------------------+-----------------------------------| +| mali-t76x |→ Hardware handling | +|-------------------------------+-----------------------------------| | matchbox |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -8694,6 +9030,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | minidlna |→ Networking applications | |-------------------------------+-----------------------------------| +| minissdpd |→ Networking applications | +|-------------------------------+-----------------------------------| | minizip |→ Libraries → Compression and | | |decompression | |-------------------------------+-----------------------------------| @@ -8755,6 +9093,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | mplayer |→ Audio and video applications | |-------------------------------+-----------------------------------| +| mpv |→ Audio and video applications | +|-------------------------------+-----------------------------------| | mraa |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| | mrouted |→ Networking applications | @@ -8763,6 +9103,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | msmtp |→ Mail | |-------------------------------+-----------------------------------| +| msr-tools |→ Hardware handling | +|-------------------------------+-----------------------------------| |mtd, jffs2 and ubi/ubifs tools |→ Filesystem and flash utilities | |-------------------------------+-----------------------------------| | mtdev |→ Libraries → Hardware handling | @@ -8773,6 +9115,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | mtr |→ Networking applications | |-------------------------------+-----------------------------------| +| multicat |→ Audio and video applications | +|-------------------------------+-----------------------------------| | Multimedia Module |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -8840,17 +9184,30 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | nginx |→ Networking applications | |-------------------------------+-----------------------------------| +| nginx-naxsi |→ Networking applications → | +| |External nginx modules | +|-------------------------------+-----------------------------------| +| nginx-upload |→ Networking applications → | +| |External nginx modules | +|-------------------------------+-----------------------------------| | ngircd |→ Networking applications | |-------------------------------+-----------------------------------| | ngrep |→ Networking applications | |-------------------------------+-----------------------------------| +| nload |→ Networking applications | +|-------------------------------+-----------------------------------| | nmap |→ Networking applications | |-------------------------------+-----------------------------------| | nodejs |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| +| nodm |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| | noip |→ Networking applications | |-------------------------------+-----------------------------------| +| norm |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | nss-mdns |→ Libraries → Networking | |-------------------------------+-----------------------------------| | nss-pam-ldapd |→ Libraries → Networking | @@ -8873,6 +9230,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | nvidia-tegra23 codecs |→ Hardware handling | |-------------------------------+-----------------------------------| +| nvme |→ Hardware handling | +|-------------------------------+-----------------------------------| | obsidian-cursors |→ Fonts, cursors, icons, sounds and| | |themes | |-------------------------------+-----------------------------------| @@ -8890,6 +9249,10 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | odhcploc |→ Networking applications | |-------------------------------+-----------------------------------| +| odroid-mali |→ Hardware handling | +|-------------------------------+-----------------------------------| +| odroid-scripts |→ Hardware handling | +|-------------------------------+-----------------------------------| | ofono |→ Hardware handling | |-------------------------------+-----------------------------------| | ola (open lighting |→ Hardware handling | @@ -8899,6 +9262,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | omniorb |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| omxplayer |→ Audio and video applications | +|-------------------------------+-----------------------------------| | on2-8170-libs |→ Audio and video applications | |-------------------------------+-----------------------------------| | on2-8170-modules |→ Hardware handling | @@ -8909,6 +9274,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | openal |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| +| openblas |→ Libraries → Other | +|-------------------------------+-----------------------------------| | openbox |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -8924,6 +9291,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | openldap |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| openmpi |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | openntpd |→ Networking applications | |-------------------------------+-----------------------------------| | openobex |→ Networking applications | @@ -8948,6 +9317,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | openvpn |→ Networking applications | |-------------------------------+-----------------------------------| +| openzwave |→ Libraries → Networking | +|-------------------------------+-----------------------------------| | opkg |→ Package managers | |-------------------------------+-----------------------------------| | oprofile |→ Debugging, profiling and | @@ -8966,10 +9337,14 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | oRTP |→ Libraries → Networking | |-------------------------------+-----------------------------------| +| owfs |→ Libraries → Hardware handling | +|-------------------------------+-----------------------------------| | owl-linux |→ Hardware handling | |-------------------------------+-----------------------------------| | p11-kit |→ Libraries → Other | |-------------------------------+-----------------------------------| +| p7zip |→ Compressors and decompressors | +|-------------------------------+-----------------------------------| | p910nd |→ Networking applications | |-------------------------------+-----------------------------------| | pango |→ Libraries → Graphics | @@ -8993,6 +9368,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | pcsc-lite |→ Libraries → Hardware handling | |-------------------------------+-----------------------------------| +| pdbg |→ Hardware handling | +|-------------------------------+-----------------------------------| | perl |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| @@ -9178,6 +9555,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | postgresql |→ Libraries → Database | |-------------------------------+-----------------------------------| +| pound |→ Networking applications | +|-------------------------------+-----------------------------------| | powerpc-utils |→ System tools | |-------------------------------+-----------------------------------| | powertop |→ Hardware handling | @@ -9194,8 +9573,12 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |X protocols | |-------------------------------+-----------------------------------| +| privoxy |→ Networking applications | +|-------------------------------+-----------------------------------| | procps-ng |→ System tools | |-------------------------------+-----------------------------------| +| procrank_linux |→ System tools | +|-------------------------------+-----------------------------------| | proftpd |→ Networking applications | |-------------------------------+-----------------------------------| | protobuf |→ Libraries → Other | @@ -9219,6 +9602,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | pure-ftpd |→ Networking applications | |-------------------------------+-----------------------------------| +| putty |→ Networking applications | +|-------------------------------+-----------------------------------| | pv |→ Debugging, profiling and | | |benchmark | |-------------------------------+-----------------------------------| @@ -9230,6 +9615,12 @@ Chapter 24. List of target packages available in Buildroot | python-alsaaudio |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-argh |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-autobahn |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-backports-abc |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9251,6 +9642,9 @@ Chapter 24. List of target packages available in Buildroot | python-cffi |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-characteristic |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-cheetah |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9272,27 +9666,51 @@ Chapter 24. List of target packages available in Buildroot | python-crc16 |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-crossbar |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-cryptography |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-cssselect |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| | python-daemon |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-dataproperty |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-dateutil |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-dialog |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-dialog3 |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-dicttoxml |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-django |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| | python-docopt |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-dominate |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-dpkt |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| | python-ecdsa |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-engineio |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-enum |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9302,6 +9720,12 @@ Chapter 24. List of target packages available in Buildroot | python-flask |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-flask-jsonrpc |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-flask-login |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-flup |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9314,12 +9738,21 @@ Chapter 24. List of target packages available in Buildroot | python-httplib2 |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-humanize |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-id3 |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| | python-idna |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-iniparse |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-iowait |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-ipaddr |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9347,6 +9780,9 @@ Chapter 24. List of target packages available in Buildroot | python-libconfig |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-lmdb |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-lxml |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9395,21 +9831,45 @@ Chapter 24. List of target packages available in Buildroot | python-paramiko |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-pathtools |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pathvalidate |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pexpect |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pillow |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-posix-ipc |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-prompt-toolkit |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-protobuf |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| | python-psutil |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-ptyprocess |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-pyasn |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-pyasn-modules |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-pycli |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-pycparser |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-pycrypto |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9422,9 +9882,21 @@ Chapter 24. List of target packages available in Buildroot | python-pygame |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-pygments |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-pyinotify |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-pymysql |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pynacl |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pyopenssl |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-pyparsing |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9461,6 +9933,18 @@ Chapter 24. List of target packages available in Buildroot | python-pysnmp-mibs |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-pysocks |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pytablewriter |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pytrie |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-pytz |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-pyudev |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9479,15 +9963,33 @@ Chapter 24. List of target packages available in Buildroot | python-requests |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-rpi-gpio |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-rtslib-fb |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-scapy3k |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-sdnotify |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-serial |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-service-identity |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-setproctitle |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-setuptools |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-shutilwhich |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-simplejson |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9503,18 +10005,39 @@ Chapter 24. List of target packages available in Buildroot | python-smbus-cffi |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-socketio |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-spidev |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| | python-thrift |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-tomako |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-tornado |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-treq |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-twisted |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-txaio |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-u-msgpack |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-ubjson |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-ujson |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-urllib3 |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9524,6 +10047,12 @@ Chapter 24. List of target packages available in Buildroot | python-versiontools |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-watchdog |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-wcwidth |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-web2py |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9536,6 +10065,21 @@ Chapter 24. List of target packages available in Buildroot | python-ws4py |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| +| python-wsaccel |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-xlrd |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-xlsxwriter |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-xlutils |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| +| python-xlwt |→ Interpreter languages and | +| |scripting → External python modules| +|-------------------------------+-----------------------------------| | python-zope-interface |→ Interpreter languages and | | |scripting → External python modules| |-------------------------------+-----------------------------------| @@ -9575,6 +10119,9 @@ Chapter 24. List of target packages available in Buildroot | qt5base |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| qt5canvas3d |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| | qt5cinex |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -9593,13 +10140,16 @@ Chapter 24. List of target packages available in Buildroot | qt5imageformats |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| qt5location |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| | qt5multimedia |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| -| qt5quick1 |→ Graphic libraries and | +| qt5quickcontrols |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| -| qt5quickcontrols |→ Graphic libraries and | +| qt5quickcontrols2 |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| | qt5script |→ Graphic libraries and | @@ -9608,21 +10158,24 @@ Chapter 24. List of target packages available in Buildroot | qt5sensors |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| qt5serialbus |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| | qt5serialport |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| | qt5svg |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| qt5tools |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| | qt5webchannel |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| | qt5webkit |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| -| qt5webkit examples |→ Graphic libraries and | -| |applications (graphic/text) | -|-------------------------------+-----------------------------------| | qt5websockets |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -9668,6 +10221,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | rapidxml |→ Libraries → JSON/XML | |-------------------------------+-----------------------------------| +| raptor |→ Libraries → JSON/XML | +|-------------------------------+-----------------------------------| | rdesktop |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -9716,6 +10271,8 @@ Chapter 24. List of target packages available in Buildroot | rrdtool |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| rs485conf |→ Hardware handling | +|-------------------------------+-----------------------------------| | rsh-redone |→ Networking applications | |-------------------------------+-----------------------------------| | rstart |→ Graphic libraries and | @@ -9744,7 +10301,7 @@ Chapter 24. List of target packages available in Buildroot | ruby |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| -| samba (deprecated) |→ Networking applications | +| runc |→ System tools | |-------------------------------+-----------------------------------| | samba4 |→ Networking applications | |-------------------------------+-----------------------------------| @@ -9767,6 +10324,8 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |X protocols | |-------------------------------+-----------------------------------| +| scrub |→ System tools | +|-------------------------------+-----------------------------------| | scrypt |→ System tools | |-------------------------------+-----------------------------------| | SDL |→ Graphic libraries and | @@ -9775,6 +10334,15 @@ Chapter 24. List of target packages available in Buildroot | sdl2 |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| +| sdl2_gfx |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| +| sdl2_image |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| +| sdl2_ttf |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| | SDL_gfx |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| @@ -9819,6 +10387,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | shareware Doom WAD file |→ Games | |-------------------------------+-----------------------------------| +| shellinabox |→ Networking applications | +|-------------------------------+-----------------------------------| | showfont |→ Graphic libraries and | | |applications (graphic/text) → X11R7| | |Applications | @@ -9879,6 +10449,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | speex |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| +| sphinxbase |→ Libraries → Other | +|-------------------------------+-----------------------------------| | spi-tools |→ Hardware handling | |-------------------------------+-----------------------------------| | spice protocol |→ Networking applications | @@ -9904,7 +10476,7 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | sshpass |→ Networking applications | |-------------------------------+-----------------------------------| -| sstrip |→ Development tools | +| sstrip (deprecated) |→ Development tools | |-------------------------------+-----------------------------------| | start-stop-daemon |→ System tools | |-------------------------------+-----------------------------------| @@ -9912,6 +10484,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | statserial |→ Hardware handling | |-------------------------------+-----------------------------------| +| stella |→ Games | +|-------------------------------+-----------------------------------| | stm32flash |→ Hardware handling | |-------------------------------+-----------------------------------| | strace |→ Debugging, profiling and | @@ -9939,6 +10513,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | sunxi-mali |→ Hardware handling | |-------------------------------+-----------------------------------| +| supertuxkart |→ Games | +|-------------------------------+-----------------------------------| | supervisor |→ System tools | |-------------------------------+-----------------------------------| | SVG Module |→ Graphic libraries and | @@ -9965,6 +10541,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | systemd |→ System tools | |-------------------------------+-----------------------------------| +| systemd-bootchart |→ System tools | +|-------------------------------+-----------------------------------| | sysvinit |→ System tools | |-------------------------------+-----------------------------------| | szip |→ Libraries → Compression and | @@ -9976,6 +10554,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | targetcli-fb |→ Hardware handling | |-------------------------------+-----------------------------------| +| taskd |→ Miscellaneous | +|-------------------------------+-----------------------------------| | tcl |→ Interpreter languages and | | |scripting | |-------------------------------+-----------------------------------| @@ -9991,6 +10571,11 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | tcpreplay |→ Networking applications | |-------------------------------+-----------------------------------| +| tekui |→ Graphic libraries and | +| |applications (graphic/text) | +|-------------------------------+-----------------------------------| +| terminology |→ Shell and utilities | +|-------------------------------+-----------------------------------| | tftpd |→ Networking applications | |-------------------------------+-----------------------------------| | thrift |→ Libraries → Networking | @@ -9999,6 +10584,12 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | ti-gfx |→ Hardware handling | |-------------------------------+-----------------------------------| +| ti-sgx-demos |→ Hardware handling | +|-------------------------------+-----------------------------------| +| ti-sgx-km |→ Hardware handling | +|-------------------------------+-----------------------------------| +| ti-sgx-um |→ Hardware handling | +|-------------------------------+-----------------------------------| | ti-uim |→ Hardware handling | |-------------------------------+-----------------------------------| | ti-utils |→ Hardware handling | @@ -10013,6 +10604,10 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | tinyalsa |→ Libraries → Audio/Sound | |-------------------------------+-----------------------------------| +| tinycbor |→ Libraries → Other | +|-------------------------------+-----------------------------------| +| tinydtls |→ Libraries → Crypto | +|-------------------------------+-----------------------------------| | tinyhttpd |→ Networking applications | |-------------------------------+-----------------------------------| | tinymembench |→ Debugging, profiling and | @@ -10056,6 +10651,11 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | tstools |→ Audio and video applications | |-------------------------------+-----------------------------------| +| tunctl |→ Networking applications | +|-------------------------------+-----------------------------------| +| turbolua |→ Interpreter languages and | +| |scripting → Lua libraries/modules | +|-------------------------------+-----------------------------------| | tvheadend |→ Networking applications | |-------------------------------+-----------------------------------| | twm |→ Graphic libraries and | @@ -10118,6 +10718,8 @@ Chapter 24. List of target packages available in Buildroot | valgrind |→ Debugging, profiling and | | |benchmark | |-------------------------------+-----------------------------------| +| valijson |→ Libraries → JSON/XML | +|-------------------------------+-----------------------------------| | vde2 |→ Networking applications | |-------------------------------+-----------------------------------| | videoproto |→ Graphic libraries and | @@ -10146,16 +10748,22 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | w_scan |→ Hardware handling | |-------------------------------+-----------------------------------| +| wavemon |→ Networking applications | +|-------------------------------+-----------------------------------| | wavpack |→ Audio and video applications | |-------------------------------+-----------------------------------| | wayland |→ Libraries → Graphics | |-------------------------------+-----------------------------------| +| wayland-protocols |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| | webkit (deprecated) |→ Libraries → Graphics | |-------------------------------+-----------------------------------| | WebKit Module |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| -| webkitgtk 2.4.x |→ Libraries → Graphics | +| webkitgtk |→ Libraries → Graphics | +|-------------------------------+-----------------------------------| +| webkitgtk 2.4.x (deprecated) |→ Libraries → Graphics | |-------------------------------+-----------------------------------| | webp |→ Libraries → Graphics | |-------------------------------+-----------------------------------| @@ -10175,6 +10783,8 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | whois |→ Networking applications | |-------------------------------+-----------------------------------| +| wilc1000-firmware |→ Hardware handling → Firmware | +|-------------------------------+-----------------------------------| | windowswmproto |→ Graphic libraries and | | |applications (graphic/text) → X11R7| | |X protocols | @@ -10189,11 +10799,15 @@ Chapter 24. List of target packages available in Buildroot |-------------------------------+-----------------------------------| | wireshark |→ Networking applications | |-------------------------------+-----------------------------------| +| wiringpi |→ Libraries → Hardware handling | +|-------------------------------+-----------------------------------| | wmctrl |→ Graphic libraries and | | |applications (graphic/text) | |-------------------------------+-----------------------------------| | wpa_supplicant |→ Networking applications | |-------------------------------+-----------------------------------| +| wpan-tools |→ Networking applications | +|-------------------------------+-----------------------------------| | wsapi |→ Interpreter languages and | | |scripting → Lua libraries/modules | |-------------------------------+-----------------------------------| @@ -10326,6 +10940,8 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |Applications | |-------------------------------+-----------------------------------| +| xen |→ System tools | +|-------------------------------+-----------------------------------| | Xenomai Userspace |→ Real-Time | |-------------------------------+-----------------------------------| | xerces-c++ |→ Libraries → JSON/XML | @@ -10374,7 +10990,7 @@ Chapter 24. List of target packages available in Buildroot | |applications (graphic/text) → X11R7| | |Drivers | |-------------------------------+-----------------------------------| -| xf86-input-void (deprecated) |→ Graphic libraries and | +| xf86-video-amdgpu |→ Graphic libraries and | | |applications (graphic/text) → X11R7| | |Drivers | |-------------------------------+-----------------------------------| @@ -10809,12 +11425,15 @@ corresponding symbols and providers. | | |gpu-amd-bin-mx51 | | | |(also imx53), | | | |imx-gpu-viv, | +| | |mali-t76x, | | | |nvidia-driver (w/ | | | |X.org drivers), | | | |nvidia-tegra23 | | | |binaries, | +| | |odroid-mali, | | | |rpi-userland, | -| | |sunxi-mali, ti-gfx | +| | |sunxi-mali, ti-gfx, | +| | |ti-sgx-um | |--------------+------------------------------+---------------------| | libgl |BR2_PACKAGE_HAS_LIBGL |mesa3d (w/ DRI swrast| | | |driver), mesa3d (w/ | @@ -10832,12 +11451,15 @@ corresponding symbols and providers. | | |ES), gpu-amd-bin-mx51| | | |(also imx53), | | | |imx-gpu-viv, | +| | |mali-t76x, | | | |nvidia-driver (w/ | | | |X.org drivers), | | | |nvidia-tegra23 | | | |binaries, | +| | |odroid-mali, | | | |rpi-userland, | -| | |sunxi-mali, ti-gfx | +| | |sunxi-mali, ti-gfx, | +| | |ti-sgx-um | |--------------+------------------------------+---------------------| | libopenmax |BR2_PACKAGE_HAS_LIBOPENMAX |bellagio, | | | |nvidia-tegra23 | @@ -10851,7 +11473,7 @@ corresponding symbols and providers. |--------------+------------------------------+---------------------| |luainterpreter|BR2_PACKAGE_HAS_LUAINTERPRETER|lua, luajit | |--------------+------------------------------+---------------------| -| powervr |BR2_PACKAGE_HAS_POWERVR |ti-gfx | +| powervr |BR2_PACKAGE_HAS_POWERVR |ti-gfx, ti-sgx-um | |--------------+------------------------------+---------------------| | udev |BR2_PACKAGE_HAS_UDEV |eudev, systemd | +-------------------------------------------------------------------+ @@ -10865,6 +11487,10 @@ The following packages are all available in the menu Host utilities. |------------------| | host aespipe | |------------------| +|host android-tools| +|------------------| +| host cbootimage | +|------------------| | host checkpolicy | |------------------| | host cramfs | @@ -10883,6 +11509,8 @@ The following packages are all available in the menu Host utilities. |------------------| | host faketime | |------------------| +| host fwup | +|------------------| | host genext2fs | |------------------| | host genimage | @@ -10891,8 +11519,13 @@ The following packages are all available in the menu Host utilities. |------------------| | host gptfdisk | |------------------| +| host | +| imx-usb-loader | +|------------------| | host jq | |------------------| +| host jsmin | +|------------------| |host lpc3250loader| |------------------| | host mke2img | @@ -10903,6 +11536,8 @@ The following packages are all available in the menu Host utilities. |------------------| | host mtools | |------------------| +| host mxsldr | +|------------------| | host | |omap-u-boot-utils | |------------------| @@ -10922,14 +11557,17 @@ The following packages are all available in the menu Host utilities. |------------------| | host sunxi-tools | |------------------| +| host tegrarcm | +|------------------| |host u-boot tools | |------------------| | host util-linux | |------------------| | host vboot utils | |------------------| -| host-imx-usb | -| loader | +| host xorriso | +|------------------| +| host zip | +------------------+ Chapter 27. Deprecated features @@ -10944,43 +11582,37 @@ depending on BR2_DEPRECATED_SINCE_2013_05 can be removed from 2014.05 onwards. +-------------------------------------------------------------------+ -| Features |Location | -|----------------+--------------------------------------------------| -| SuperH64 |Target options → Target Architecture | -|----------------+--------------------------------------------------| -| Linux 3.17.x |Toolchain → Kernel Headers | -| kernel headers | | -|----------------+--------------------------------------------------| -| Linux 3.19.x |Toolchain → Kernel Headers | -| kernel headers | | -|----------------+--------------------------------------------------| -| Linux 4.0.x |Toolchain → Kernel Headers | -| kernel headers | | -|----------------+--------------------------------------------------| -| Linux 4.2.x |Toolchain → Kernel Headers | -| kernel headers | | -|----------------+--------------------------------------------------| -| eglibc |Toolchain → C library | -|----------------+--------------------------------------------------| -| gcc 4.5.x |Toolchain → GCC compiler Version | -|----------------+--------------------------------------------------| -| gdb 7.7.x |Toolchain → GDB debugger Version | -|----------------+--------------------------------------------------| -|xf86-input-void |Target packages → Graphic libraries and | -| |applications (graphic/text) → X11R7 Drivers | -|----------------+--------------------------------------------------| -| torsmo |Target packages → Graphic libraries and | -| |applications (graphic/text) | -|----------------+--------------------------------------------------| -| libgail |Target packages → Libraries → Graphics | -|----------------+--------------------------------------------------| -| webkit |Target packages → Libraries → Graphics | -|----------------+--------------------------------------------------| -|foomatic_filters|Target packages → Networking applications | -|----------------+--------------------------------------------------| -| gutenprint |Target packages → Networking applications | -|----------------+--------------------------------------------------| -| samba |Target packages → Networking applications | -|----------------+--------------------------------------------------| -|custom patch dir|Bootloaders | +| Features |Location | +|-------------------+-----------------------------------------------| +| SuperH64 |Target options → Target Architecture | +|-------------------+-----------------------------------------------| +|Linux 3.19.x kernel|Toolchain → Kernel Headers | +| headers | | +|-------------------+-----------------------------------------------| +|Linux 4.0.x kernel |Toolchain → Kernel Headers | +| headers | | +|-------------------+-----------------------------------------------| +|Linux 4.2.x kernel |Toolchain → Kernel Headers | +| headers | | +|-------------------+-----------------------------------------------| +|Linux 4.3.x kernel |Toolchain → Kernel Headers | +| headers | | +|-------------------+-----------------------------------------------| +| gcc 4.7.x |Toolchain → GCC compiler Version | +|-------------------+-----------------------------------------------| +| kodi-addon-xvdr |Target packages → Audio and video applications | +| |→ PVR addons | +|-------------------+-----------------------------------------------| +| sstrip |Target packages → Development tools | +|-------------------+-----------------------------------------------| +| torsmo |Target packages → Graphic libraries and | +| |applications (graphic/text) | +|-------------------+-----------------------------------------------| +| libgail |Target packages → Libraries → Graphics | +|-------------------+-----------------------------------------------| +| webkit |Target packages → Libraries → Graphics | +|-------------------+-----------------------------------------------| +| webkitgtk 2.4.x |Target packages → Libraries → Graphics | +|-------------------+-----------------------------------------------| +| ipkg |Target packages → Package managers | +-------------------------------------------------------------------+ diff --git a/bsp/buildroot/docs/manual/patch-policy.txt b/bsp/buildroot/docs/manual/patch-policy.txt index 5a1fe4f4..e1df8b00 100644 --- a/bsp/buildroot/docs/manual/patch-policy.txt +++ b/bsp/buildroot/docs/manual/patch-policy.txt @@ -73,12 +73,12 @@ details. * If a +series+ file exists in the package directory, then patches are applied according to the +series+ file; + -* Otherwise, patch files matching +-*.patch+ - are applied in alphabetical order. +* Otherwise, patch files matching +*.patch+ are applied in alphabetical + order. So, to ensure they are applied in the right order, it is highly recommended to name the patch files like this: - +--.patch+, where ++ - refers to the 'apply order'. + +-.patch+, where ++ refers to the + 'apply order'. . If +BR2_GLOBAL_PATCH_DIR+ is defined, the directories will be enumerated in the order they are specified. The patches are applied diff --git a/bsp/buildroot/docs/manual/using-buildroot-development.txt b/bsp/buildroot/docs/manual/using-buildroot-development.txt index a075416b..e167849c 100644 --- a/bsp/buildroot/docs/manual/using-buildroot-development.txt +++ b/bsp/buildroot/docs/manual/using-buildroot-development.txt @@ -8,7 +8,7 @@ it, configure, compile and install the software component found inside this tarball. The source code is extracted in +output/build/-+, which is a temporary directory: whenever +make clean+ is used, this directory is entirely removed, and -re-recreated at the next +make+ invocation. Even when a Git or +re-created at the next +make+ invocation. Even when a Git or Subversion repository is used as the input for the package source code, Buildroot creates a tarball out of it, and then behaves as it normally does with tarballs. diff --git a/bsp/buildroot/docs/website/css/main.css b/bsp/buildroot/docs/website/css/main.css index db9c4c90..5255531b 100644 --- a/bsp/buildroot/docs/website/css/main.css +++ b/bsp/buildroot/docs/website/css/main.css @@ -163,7 +163,7 @@ i { } .panel-sponsor { - min-height: 300px; + min-height: 350px; text-align: justify; text-justify: inter-word; } diff --git a/bsp/buildroot/docs/website/download.html b/bsp/buildroot/docs/website/download.html index 9e1642b3..6380d9a9 100644 --- a/bsp/buildroot/docs/website/download.html +++ b/bsp/buildroot/docs/website/download.html @@ -8,71 +8,71 @@

    -

    Latest stable release: 2016.02

    +

    Latest stable release: 2016.08

    diff --git a/bsp/buildroot/docs/website/images/owi-smile-logo.png b/bsp/buildroot/docs/website/images/owi-smile-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9744ca153113043094c4f89b5fd526f6983eac91 GIT binary patch literal 25258 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 z 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 BA3*>B literal 0 HcmV?d00001 diff --git a/bsp/buildroot/docs/website/index.html b/bsp/buildroot/docs/website/index.html index 61c22489..f0d0175b 100644 --- a/bsp/buildroot/docs/website/index.html +++ b/bsp/buildroot/docs/website/index.html @@ -78,7 +78,7 @@
    -

    Supports several hundreds of packages

    +

    Supports hundreds of packages

    X.org stack, Gtk3, Qt 5, GStreamer, Webkit, Kodi, a large number of network-related and system-related utilities are supported.

    diff --git a/bsp/buildroot/docs/website/news.html b/bsp/buildroot/docs/website/news.html index 62f1b5dc..0fefb053 100644 --- a/bsp/buildroot/docs/website/news.html +++ b/bsp/buildroot/docs/website/news.html @@ -9,6 +9,181 @@

    News

      +
    • +
      +
      +
      +

      2016.08 released

      +

      1 September 2016

      +
      +
      +

      The stable 2016.08 release is out - Thanks to everyone + contributing and testing the release candidates. See the + CHANGES + file for more details + and go to the downloads page to pick up the + 2016.08 release.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.08-rc3 released

      +

      30 August 2016

      +
      +
      +

      Release candidate 3 is out with more cleanups and security + / build fixes. See + the CHANGES + file for details.

      +

      Head to the downloads page to + pick up + the 2016.08-rc3 + release candidate, and report any problems found to + the mailing list + or bug tracker.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.08-rc2 released

      +

      17 August 2016

      +
      +
      +

      Another week, another release candidate with more cleanups + and build fixes. See + the CHANGES + file for details.

      + +

      Head to the downloads page to pick up the + 2016.08-rc2 + release candidate, and report any problems found to + the mailing list + or bug tracker.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.08-rc1 released

      +

      6 August 2016

      +
      +
      +

      We have a new release candidate! Lots of + changes all over the tree, see + the CHANGES + file for details and read the + announcement +

      + +

      Head to the downloads page to pick up the + 2016.08-rc1 + release candidate, and report any + problems found to the + mailing list or + bug tracker.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.05 released

      +

      1 March 2016

      +
      +
      +

      The stable 2016.05 release is out - Thanks to everyone + contributing and testing the release candidates. See the + CHANGES + file for more details, read the + announcement + and go to the downloads page to pick up the + 2016.05 release.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.05-rc3 released

      +

      26 May 2016

      +
      +
      +

      Release candidate 3 is out with more cleanups and security + / build fixes. See + the CHANGES + file for details.

      +

      Head to the downloads page to + pick up + the 2016.05-rc3 + release candidate, and report any problems found to + the mailing list + or bug tracker.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.05-rc2 released

      +

      17 May 2016

      +
      +
      +

      Another week, another release candidate with more cleanups + and build fixes. See + the CHANGES + file for details.

      + +

      Head to the downloads page to pick up the + 2016.05-rc2 + release candidate, and report any problems found to + the mailing list + or bug tracker.

      +
      +
      +
    • + +
    • +
      +
      +
      +

      2016.05-rc1 released

      +

      10 May 2016

      +
      +
      +

      We have a new release candidate! Lots of + changes all over the tree, see + the CHANGES + file for details and read the + announcement. +

      + +

      Head to the downloads page to pick up the + 2016.05-rc1 + release candidate, and report any + problems found to the + mailing list or + bug tracker.

      +
      +
      +
    • +
    • @@ -20,7 +195,8 @@

      The stable 2016.02 release is out - Thanks to everyone contributing and testing the release candidates. See the CHANGES - file for more details + file for more details, read the + announcement and go to the downloads page to pick up the 2016.02 release.

      diff --git a/bsp/buildroot/docs/website/sponsors.html b/bsp/buildroot/docs/website/sponsors.html index 200e7e4c..7a176ee1 100644 --- a/bsp/buildroot/docs/website/sponsors.html +++ b/bsp/buildroot/docs/website/sponsors.html @@ -13,41 +13,14 @@
      - Google is sponsoring - the Buildroot - Developers Meeting colocated with the FOSDEM conference, - taking place on February 1-2 2016 in Brussels, Belgium. Google is - providing the meeting room and lunch for the two days of the - meeting. -
      -
      -
      - - -
      -
      -
      -
      - - - -
      -
      - Mind is the Embedded - Software division of Essensium, which provides consultancy - and services specifically in the field of Linux and Open - Source SW for Embedded Systems. - - Mind is sponsoring - the Buildroot - Developers Meeting colocated with the FOSDEM conference, - taking place on February 1-2 2016 in Brussels, Belgium. Mind has - funded the Monday dinner for the meeting participants. + OpenWide/Smile is sponsoring + the Buildroot Summer Camp taking place on July 1-5 2016 in Toulouse, France. OpenWide/Smile is + sponsoring the participation of Romain Naour and paid the food expenses for the meeting participants.
      @@ -71,7 +44,7 @@
      -
      +
      Mind sponsored the dinner of the FOSDEM 2014, 2015 and 2016 Developers Meeting (Brussels), the meeting room and the dinner diff --git a/bsp/buildroot/docs/website/support.html b/bsp/buildroot/docs/website/support.html index 2f16efe0..92ee03b0 100644 --- a/bsp/buildroot/docs/website/support.html +++ b/bsp/buildroot/docs/website/support.html @@ -45,11 +45,6 @@ Only subscribers to the Buildroot mailing list are allowed to post to this list.

      -

      The list is also available - through Gmane - at gmane.comp.lib.uclibc.buildroot. -

      -

      Search the List Archives

      Please search the mailing list archives before asking questions on the mailing list, since there is a good chance someone else has asked the same question diff --git a/bsp/buildroot/fs/cloop/cloop.mk b/bsp/buildroot/fs/cloop/cloop.mk index f783adeb..9e42a3a2 100644 --- a/bsp/buildroot/fs/cloop/cloop.mk +++ b/bsp/buildroot/fs/cloop/cloop.mk @@ -7,7 +7,8 @@ ROOTFS_CLOOP_DEPENDENCIES = host-cloop host-cdrkit define ROOTFS_CLOOP_CMD - $(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $@ + $(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | \ + $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $@ endef -$(eval $(call ROOTFS_TARGET,cloop)) \ No newline at end of file +$(eval $(call ROOTFS_TARGET,cloop)) diff --git a/bsp/buildroot/fs/common.mk b/bsp/buildroot/fs/common.mk index 3a424f65..2b31e129 100644 --- a/bsp/buildroot/fs/common.mk +++ b/bsp/buildroot/fs/common.mk @@ -26,7 +26,7 @@ # In terms of configuration option, this macro assumes that the # BR2_TARGET_ROOTFS_$(FSTYPE) config option allows to enable/disable # the generation of a filesystem image of a particular type. If -# configura options BR2_TARGET_ROOTFS_$(FSTYPE)_GZIP, +# the configuration options BR2_TARGET_ROOTFS_$(FSTYPE)_GZIP, # BR2_TARGET_ROOTFS_$(FSTYPE)_BZIP2 or # BR2_TARGET_ROOTFS_$(FSTYPE)_LZMA exist and are enabled, then the # macro will automatically generate a compressed filesystem image. @@ -76,22 +76,26 @@ $$(BINARIES_DIR)/rootfs.$(1): target-finalize $$(ROOTFS_$(2)_DEPENDENCIES) rm -f $$(FAKEROOT_SCRIPT) rm -f $$(TARGET_DIR_WARNING_FILE) rm -f $$(USERS_TABLE) + echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT) echo "set -e" >> $$(FAKEROOT_SCRIPT) echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT) ifneq ($$(ROOTFS_USERS_TABLES),) cat $$(ROOTFS_USERS_TABLES) >> $$(USERS_TABLE) endif - printf '$$(subst $$(sep),\n,$$(PACKAGES_USERS))' >> $$(USERS_TABLE) + $$(call PRINTF,$$(PACKAGES_USERS)) >> $$(USERS_TABLE) PATH=$$(BR_PATH) $$(TOPDIR)/support/scripts/mkusers $$(USERS_TABLE) $$(TARGET_DIR) >> $$(FAKEROOT_SCRIPT) ifneq ($$(ROOTFS_DEVICE_TABLES),) cat $$(ROOTFS_DEVICE_TABLES) > $$(FULL_DEVICE_TABLE) ifeq ($$(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) - printf '$$(subst $$(sep),\n,$$(PACKAGES_DEVICES_TABLE))' >> $$(FULL_DEVICE_TABLE) + $$(call PRINTF,$$(PACKAGES_DEVICES_TABLE)) >> $$(FULL_DEVICE_TABLE) endif - printf '$$(subst $$(sep),\n,$$(PACKAGES_PERMISSIONS_TABLE))' >> $$(FULL_DEVICE_TABLE) + $$(call PRINTF,$$(PACKAGES_PERMISSIONS_TABLE)) >> $$(FULL_DEVICE_TABLE) echo "$$(HOST_DIR)/usr/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT) endif - echo "$$(ROOTFS_$(2)_CMD)" >> $$(FAKEROOT_SCRIPT) + $$(foreach s,$$(call qstrip,$$(BR2_ROOTFS_POST_FAKEROOT_SCRIPT)),\ + echo "echo '$$(TERM_BOLD)>>> Executing fakeroot script $$(s)$$(TERM_RESET)'" >> $$(FAKEROOT_SCRIPT); \ + echo $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep)) + $$(call PRINTF,$$(ROOTFS_$(2)_CMD)) >> $$(FAKEROOT_SCRIPT) chmod a+x $$(FAKEROOT_SCRIPT) PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT) $$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE) diff --git a/bsp/buildroot/fs/jffs2/jffs2.mk b/bsp/buildroot/fs/jffs2/jffs2.mk index a9cd4146..9a36a75f 100644 --- a/bsp/buildroot/fs/jffs2/jffs2.mk +++ b/bsp/buildroot/fs/jffs2/jffs2.mk @@ -39,8 +39,8 @@ ROOTFS_JFFS2_DEPENDENCIES = host-mtd ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),) define ROOTFS_JFFS2_CMD - $(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@.nosummary && \ - $(SUMTOOL) $(SUMTOOL_OPTS) -i $@.nosummary -o $@ && \ + $(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@.nosummary + $(SUMTOOL) $(SUMTOOL_OPTS) -i $@.nosummary -o $@ rm $@.nosummary endef else diff --git a/bsp/buildroot/fs/squashfs/squashfs.mk b/bsp/buildroot/fs/squashfs/squashfs.mk index a71d9cc5..c4d9ca50 100644 --- a/bsp/buildroot/fs/squashfs/squashfs.mk +++ b/bsp/buildroot/fs/squashfs/squashfs.mk @@ -26,8 +26,7 @@ endif define ROOTFS_SQUASHFS_CMD $(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $@ -noappend \ - $(ROOTFS_SQUASHFS_ARGS) && \ - chmod 0644 $@ + $(ROOTFS_SQUASHFS_ARGS) endef $(eval $(call ROOTFS_TARGET,squashfs)) diff --git a/bsp/buildroot/fs/tar/tar.mk b/bsp/buildroot/fs/tar/tar.mk index 28219cf0..11c69c5a 100644 --- a/bsp/buildroot/fs/tar/tar.mk +++ b/bsp/buildroot/fs/tar/tar.mk @@ -7,7 +7,7 @@ TAR_OPTS := $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS)) define ROOTFS_TAR_CMD - tar -c$(TAR_OPTS)f $@ --numeric-owner -C $(TARGET_DIR) . + tar $(TAR_OPTS) -cf $@ --numeric-owner -C $(TARGET_DIR) . endef $(eval $(call ROOTFS_TARGET,tar)) diff --git a/bsp/buildroot/fs/ubifs/ubi.mk b/bsp/buildroot/fs/ubifs/ubi.mk index aba3bea8..cda4bf48 100644 --- a/bsp/buildroot/fs/ubifs/ubi.mk +++ b/bsp/buildroot/fs/ubifs/ubi.mk @@ -21,9 +21,9 @@ UBINIZE_CONFIG_FILE_PATH = fs/ubifs/ubinize.cfg endif define ROOTFS_UBI_CMD - $(INSTALL) -m 0644 $(UBINIZE_CONFIG_FILE_PATH) $(BUILD_DIR)/ubinize.cfg ;\ - $(SED) 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' $(BUILD_DIR)/ubinize.cfg ;\ - $(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg ;\ + $(INSTALL) -m 0644 $(UBINIZE_CONFIG_FILE_PATH) $(BUILD_DIR)/ubinize.cfg + $(SED) 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' $(BUILD_DIR)/ubinize.cfg + $(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg rm $(BUILD_DIR)/ubinize.cfg endef diff --git a/bsp/buildroot/linux/Config.in b/bsp/buildroot/linux/Config.in index 4d009052..c7bc4d84 100644 --- a/bsp/buildroot/linux/Config.in +++ b/bsp/buildroot/linux/Config.in @@ -18,16 +18,15 @@ config BR2_LINUX_NEEDS_MODULES # Version selection. We provide the choice between: # # 1. A single fairly recent stable kernel version -# 2. In case an internal toolchain has been built, the same kernel -# version as the kernel headers -# 3. A custom stable version -# 4. A custom tarball +# 2. A custom stable version +# 3. A custom tarball +# 4. A set of custom repository locations # choice prompt "Kernel version" config BR2_LINUX_KERNEL_LATEST_VERSION - bool "4.4.3" + bool "Latest version (4.7.2)" config BR2_LINUX_KERNEL_CUSTOM_VERSION bool "Custom version" @@ -63,6 +62,12 @@ config BR2_LINUX_KERNEL_CUSTOM_HG This option allows Buildroot to get the Linux kernel source code from a Mercurial repository. +config BR2_LINUX_KERNEL_CUSTOM_SVN + bool "Custom Subversion repository" + help + This option allows Buildroot to get the Linux kernel source + code from a Subversion repository. + config BR2_LINUX_KERNEL_CUSTOM_LOCAL bool "Local directory" help @@ -79,7 +84,7 @@ config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION string "URL of custom kernel tarball" depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL -if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG +if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN config BR2_LINUX_KERNEL_CUSTOM_REPO_URL string "URL of custom repository" @@ -91,7 +96,7 @@ config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \ if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy help - Revision to use in the typical format used by Git/Mercurial + Revision to use in the typical format used by Git/Mercurial/Subversion E.G. a sha id, a tag, branch, .. endif @@ -104,12 +109,12 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH config BR2_LINUX_KERNEL_VERSION string - default "4.4.3" if BR2_LINUX_KERNEL_LATEST_VERSION + default "4.7.2" if BR2_LINUX_KERNEL_LATEST_VERSION default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \ if BR2_LINUX_KERNEL_CUSTOM_VERSION default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \ - if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG + if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN default "custom" if BR2_LINUX_KERNEL_CUSTOM_LOCAL # @@ -136,6 +141,14 @@ choice config BR2_LINUX_KERNEL_USE_DEFCONFIG bool "Using an in-tree defconfig file" +config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG + bool "Use the architecture default configuration" + help + This option will use the default configuration for the + selected architecture. I.e, it is equivalent to running + "make ARCH= defconfig". This is useful on architectures + that have a single defconfig file, such as ARM64. + config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG bool "Using a custom (def)config file" @@ -173,6 +186,7 @@ config BR2_LINUX_KERNEL_UBOOT_IMAGE choice prompt "Kernel binary format" + default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb config BR2_LINUX_KERNEL_UIMAGE bool "uImage" diff --git a/bsp/buildroot/linux/Config.tools.in b/bsp/buildroot/linux/Config.tools.in index 24ef8cd7..5ada98d9 100644 --- a/bsp/buildroot/linux/Config.tools.in +++ b/bsp/buildroot/linux/Config.tools.in @@ -3,11 +3,17 @@ menu "Linux Kernel Tools" config BR2_LINUX_KERNEL_TOOL_CPUPOWER bool "cpupower" depends on !BR2_bfin # pciutils + depends on BR2_USE_WCHAR || !BR2_NEEDS_GETTEXT # gettext select BR2_PACKAGE_PCIUTILS + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT help cpupower is a collection of tools to examine and tune power saving related features of your processor. +comment "cpupower needs a toolchain w/ wchar" + depends on !BR2_bfin + depends on !BR2_USE_WCHAR && BR2_NEEDS_GETTEXT + config BR2_LINUX_KERNEL_TOOL_PERF bool "perf" help @@ -26,4 +32,26 @@ config BR2_LINUX_KERNEL_TOOL_PERF https://perf.wiki.kernel.org/ +config BR2_LINUX_KERNEL_TOOL_SELFTESTS + bool"selftests" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash + depends on BR2_USE_MMU # bash + select BR2_PACKAGE_BASH # runtime + select BR2_PACKAGE_POPT + select BR2_PACKAGE_LIBCAP_NG + help + Build and install (to /usr/lib/kselftests) kernel selftests. + + Use of this option implies you know the process of using and + compiling the kernel selftests. The Makefile to build and + install these is very noisy and may appear to cause your + build to fail for strange reasons. + + This is very much a use at your risk option and may not work + for every setup or every architecture. + +comment "selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS" + depends on BR2_USE_MMU + depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + endmenu diff --git a/bsp/buildroot/linux/linux-tool-cpupower.mk b/bsp/buildroot/linux/linux-tool-cpupower.mk index 4551cda1..095a5efa 100644 --- a/bsp/buildroot/linux/linux-tool-cpupower.mk +++ b/bsp/buildroot/linux/linux-tool-cpupower.mk @@ -6,10 +6,12 @@ LINUX_TOOLS += cpupower -CPUPOWER_DEPENDENCIES = pciutils +CPUPOWER_DEPENDENCIES = pciutils $(if $(BR2_NEEDS_GETTEXT),gettext) CPUPOWER_MAKE_OPTS = CROSS=$(TARGET_CROSS) \ CPUFREQ_BENCH=false \ + NLS=false \ + $(if $(BR2_NEEDS_GETTEXT),LDFLAGS=-lintl) \ DEBUG=false define CPUPOWER_BUILD_CMDS diff --git a/bsp/buildroot/linux/linux-tool-perf.mk b/bsp/buildroot/linux/linux-tool-perf.mk index 1070a1c0..8143474b 100644 --- a/bsp/buildroot/linux/linux-tool-perf.mk +++ b/bsp/buildroot/linux/linux-tool-perf.mk @@ -16,16 +16,17 @@ endif PERF_MAKE_FLAGS = \ $(LINUX_MAKE_FLAGS) \ + JOBS=$(PARALLEL_JOBS) \ ARCH=$(PERF_ARCH) \ + DESTDIR=$(TARGET_DIR) \ + prefix=/usr \ + WERROR=0 \ NO_LIBAUDIT=1 \ NO_NEWT=1 \ NO_GTK2=1 \ NO_LIBPERL=1 \ NO_LIBPYTHON=1 \ - DESTDIR=$(TARGET_DIR) \ - prefix=/usr \ - WERROR=0 \ - ASCIIDOC= + NO_LIBBIONIC=1 # We need to pass an argument to ld for setting the endianness when # building it for MIPS architecture, otherwise the default one will @@ -52,14 +53,20 @@ endif ifeq ($(BR2_PACKAGE_SLANG),y) PERF_DEPENDENCIES += slang +else +PERF_MAKE_FLAGS += NO_SLANG=1 endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) PERF_DEPENDENCIES += libunwind +else +PERF_MAKE_FLAGS += NO_LIBUNWIND=1 endif ifeq ($(BR2_PACKAGE_NUMACTL),y) PERF_DEPENDENCIES += numactl +else +PERF_MAKE_FLAGS += NO_LIBNUMA=1 endif ifeq ($(BR2_PACKAGE_ELFUTILS),y) @@ -68,6 +75,32 @@ else PERF_MAKE_FLAGS += NO_LIBELF=1 NO_DWARF=1 endif +ifeq ($(BR2_PACKAGE_ZLIB),y) +PERF_DEPENDENCIES += zlib +else +PERF_MAKE_FLAGS += NO_ZLIB=1 +endif + +# lzma is provided by xz +ifeq ($(BR2_PACKAGE_XZ),y) +PERF_DEPENDENCIES += xz +else +PERF_MAKE_FLAGS += NO_LZMA=1 +endif + +# We really do not want to build the perf documentation, because it +# has stringent requirement on the documentation generation tools, +# like xmlto and asciidoc), which may be lagging behind on some +# distributions. +# We name it 'GNUmakefile' so that GNU make will use it instead of +# the existing 'Makefile'. +define PERF_DISABLE_DOCUMENTATION + if [ -f $(@D)/tools/perf/Documentation/Makefile ]; then \ + printf "%%:\n\t@:\n" >$(@D)/tools/perf/Documentation/GNUmakefile; \ + fi +endef +LINUX_POST_PATCH_HOOKS += PERF_DISABLE_DOCUMENTATION + # O must be redefined here to overwrite the one used by Buildroot for # out of tree build. We build perf in $(@D)/tools/perf/ and not just # $(@D) so that it isn't built in the root directory of the kernel diff --git a/bsp/buildroot/linux/linux-tool-selftests.mk b/bsp/buildroot/linux/linux-tool-selftests.mk new file mode 100644 index 00000000..3cbfed2d --- /dev/null +++ b/bsp/buildroot/linux/linux-tool-selftests.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# selftests +# +################################################################################ + +LINUX_TOOLS += selftests + +ifeq ($(KERNEL_ARCH),x86_64) +SELFTESTS_ARCH=x86 +else +ifeq ($(KERNEL_ARCH),i386) +SELFTESTS_ARCH=x86 +else +SELFTESTS_ARCH=$(KERNEL_ARCH) +endif +endif + +SELFTESTS_DEPENDENCIES = libcap-ng popt + +SELFTESTS_MAKE_FLAGS = \ + $(LINUX_MAKE_FLAGS) \ + ARCH=$(SELFTESTS_ARCH) + +# O must be redefined here to overwrite the one used by Buildroot for +# out of tree build. We build the selftests in $(@D)/tools/selftests and +# not just $(@D) so that it isn't built in the root directory of the kernel +# sources. +# +# The headers_install step here is important as some kernel selftests use a +# hardcoded CFLAGS to find kernel headers e.g: +# CFLAGS += -I../../../../usr/include/ +# The headers_install target will install the kernel headers locally inside +# the Linux build dir +define SELFTESTS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) $(SELFTESTS_MAKE_FLAGS) \ + headers_install + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)/tools/testing/selftests \ + $(SELFTESTS_MAKE_FLAGS) O=$(@D)/tools/testing/selftests +endef + +define SELFTESTS_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)/tools/testing/selftests \ + $(SELFTESTS_MAKE_FLAGS) O=$(@D)/tools/testing/selftests \ + INSTALL_PATH=$(TARGET_DIR)/usr/lib/kselftests install +endef diff --git a/bsp/buildroot/linux/linux.mk b/bsp/buildroot/linux/linux.mk index 7e202559..fb844ef7 100644 --- a/bsp/buildroot/linux/linux.mk +++ b/bsp/buildroot/linux/linux.mk @@ -8,6 +8,13 @@ LINUX_VERSION = $(call qstrip,$(BR2_LINUX_KERNEL_VERSION)) LINUX_LICENSE = GPLv2 LINUX_LICENSE_FILES = COPYING +define LINUX_HELP_CMDS + @echo ' linux-menuconfig - Run Linux kernel menuconfig' + @echo ' linux-savedefconfig - Run Linux kernel savedefconfig' + @echo ' linux-update-defconfig - Save the Linux configuration to the path specified' + @echo ' by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE' +endef + # Compute LINUX_SOURCE and LINUX_SITE from the configuration ifeq ($(BR2_LINUX_KERNEL_CUSTOM_TARBALL),y) LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION)) @@ -23,6 +30,9 @@ LINUX_SITE_METHOD = git else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_HG),y) LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)) LINUX_SITE_METHOD = hg +else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_SVN),y) +LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)) +LINUX_SITE_METHOD = svn else LINUX_SOURCE = linux-$(LINUX_VERSION).tar.xz ifeq ($(BR2_LINUX_KERNEL_CUSTOM_VERSION),y) @@ -196,6 +206,8 @@ LINUX_POST_PATCH_HOOKS += LINUX_TRY_PATCH_TIMECONST ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) LINUX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig +else ifeq ($(BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG),y) +LINUX_KCONFIG_DEFCONFIG = defconfig else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)) endif @@ -206,6 +218,20 @@ LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS) # If no package has yet set it, set it from the Kconfig option LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES) +# Make sure the Linux kernel is built with the right endianness. Not +# all architectures support +# CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN in Linux, but the +# option will be thrown away and ignored if it doesn't exist. +ifeq ($(BR2_ENDIAN),"BIG") +define LINUX_FIXUP_CONFIG_ENDIANNESS + $(call KCONFIG_ENABLE_OPT,CONFIG_CPU_BIG_ENDIAN,$(@D)/.config) +endef +else +define LINUX_FIXUP_CONFIG_ENDIANNESS + $(call KCONFIG_ENABLE_OPT,CONFIG_CPU_LITTLE_ENDIAN,$(@D)/.config) +endef +endif + define LINUX_KCONFIG_FIXUP_CMDS $(if $(LINUX_NEEDS_MODULES), $(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config)) @@ -213,6 +239,7 @@ define LINUX_KCONFIG_FIXUP_CMDS $(foreach opt, $(LINUX_COMPRESSION_OPT_), $(call KCONFIG_DISABLE_OPT,$(opt),$(@D)/.config) ) + $(LINUX_FIXUP_CONFIG_ENDIANNESS) $(if $(BR2_arm)$(BR2_armeb), $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config)) $(if $(BR2_TARGET_ROOTFS_CPIO), @@ -348,6 +375,9 @@ define LINUX_INSTALL_HOST_TOOLS # Installing dtc (device tree compiler) as host tool, if selected if grep -q "CONFIG_DTC=y" $(@D)/.config; then \ $(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/linux-dtc ; \ + if [ ! -e $(HOST_DIR)/usr/bin/dtc ]; then \ + ln -sf linux-dtc $(HOST_DIR)/usr/bin/dtc ; \ + fi \ fi endef @@ -444,8 +474,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI # Build the kernel. $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) $(LINUX_APPEND_DTB) - # Copy the kernel image to its final destination - cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR) + # Copy the kernel image(s) to its(their) final destination + $(call LINUX_INSTALL_IMAGE,$(BINARIES_DIR)) # If there is a .ub file copy it to the final destination test ! -f $(LINUX_IMAGE_PATH).ub || cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR) $(Q)touch $@ diff --git a/bsp/buildroot/package/4th/0001-avoid-regen-during-install.patch b/bsp/buildroot/package/4th/0001-avoid-regen-during-install.patch new file mode 100644 index 00000000..436cff1f --- /dev/null +++ b/bsp/buildroot/package/4th/0001-avoid-regen-during-install.patch @@ -0,0 +1,17 @@ +avoid regen during install + +Signed-off-by: Francois Perrad + +--- a/sources/Makefile ++++ b/sources/Makefile +@@ -120,7 +120,7 @@ + ln -sf $(SHARED_LIB) $(LIBRARIES)/lib4th.so + endif + +-mostlyinstall: libinstall all ++mostlyinstall: libinstall + cp 4th 4tsh pp4th $(BINARIES) + + install: mostlyinstall +-- + diff --git a/bsp/buildroot/package/4th/4th.hash b/bsp/buildroot/package/4th/4th.hash new file mode 100644 index 00000000..97083da8 --- /dev/null +++ b/bsp/buildroot/package/4th/4th.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 1c7adbb1a56dad4c4c781e6e023d77ac862842560c05246b691d07e9a4460ab2 4th-3.62.4-unix.tar.gz diff --git a/bsp/buildroot/package/4th/4th.mk b/bsp/buildroot/package/4th/4th.mk new file mode 100644 index 00000000..071c2d4d --- /dev/null +++ b/bsp/buildroot/package/4th/4th.mk @@ -0,0 +1,70 @@ +################################################################################ +# +# 4th +# +################################################################################ + +4TH_VERSION = 3.62.4 +4TH_SOURCE = 4th-$(4TH_VERSION)-unix.tar.gz +4TH_SITE = http://downloads.sourceforge.net/project/forth-4th/4th-$(4TH_VERSION) +4TH_LICENSE = GPLv3+, LGPLv3+ +# The COPYING file only contains the text of the LGPLv3, but the +# source code really contains parts under GPLv3+. +4TH_LICENSE_FILES = COPYING +4TH_DEPENDENCIES = host-4th +4TH_INSTALL_STAGING = YES + +4TH_CFLAGS = $(TARGET_CFLAGS) -DUNIX -fsigned-char + +ifeq ($(BR2_STATIC_LIBS),y) +4TH_MAKE_ENV = STATIC=1 +else +4TH_MAKE_ENV = SHARED=1 +4TH_CFLAGS += -fPIC +endif + +define 4TH_BUILD_CMDS + $(4TH_MAKE_ENV) $(MAKE) -C $(@D)/sources all \ + CROSS="$(TARGET_CROSS)" \ + CFLAGS="$(4TH_CFLAGS)" \ + FOURTH=$(HOST_DIR)/usr/bin/4th +endef + +define 4TH_INSTALL_STAGING_CMDS + $(4TH_MAKE_ENV) $(MAKE) -C $(@D)/sources libinstall \ + LIBRARIES=$(STAGING_DIR)/usr/lib + $(INSTALL) -D -m 0644 $(@D)/sources/4th.h \ + $(STAGING_DIR)/usr/include/4th.h +endef + +define 4TH_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/bin + mkdir -p $(TARGET_DIR)/usr/lib + $(4TH_MAKE_ENV) $(MAKE) -C $(@D)/sources mostlyinstall \ + BINARIES=$(TARGET_DIR)/usr/bin \ + LIBRARIES=$(TARGET_DIR)/usr/lib + mkdir -p $(TARGET_DIR)/usr/share/4th/lib + cp -dpf $(@D)/4th/*.4th $(TARGET_DIR)/usr/share/4th + cp -dpf $(@D)/4th/lib/*.4th $(TARGET_DIR)/usr/share/4th/lib + mkdir -p $(TARGET_DIR)/usr/share/4th/demo + cp -dpf $(@D)/4th/demo/*.4th $(TARGET_DIR)/usr/share/4th/demo + mkdir -p $(TARGET_DIR)/usr/share/4th/4pp/lib + cp -dpf $(@D)/4th/4pp/*.4pp $(TARGET_DIR)/usr/share/4th/4pp + cp -dpf $(@D)/4th/4pp/lib/*.4pp $(TARGET_DIR)/usr/share/4th/4pp/lib +endef + +define HOST_4TH_BUILD_CMDS + $(MAKE) -C $(@D)/sources all \ + CFLAGS="$(HOST_CFLAGS) -DUNIX -fsigned-char" +endef + +define HOST_4TH_INSTALL_CMDS + mkdir -p $(HOST_DIR)/usr/bin + mkdir -p $(HOST_DIR)/usr/lib + $(MAKE) -C $(@D)/sources mostlyinstall \ + BINARIES=$(HOST_DIR)/usr/bin \ + LIBRARIES=$(HOST_DIR)/usr/lib +endef + +$(eval $(generic-package)) +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/4th/Config.in b/bsp/buildroot/package/4th/Config.in new file mode 100644 index 00000000..4554664a --- /dev/null +++ b/bsp/buildroot/package/4th/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_4TH + bool "4th" + help + 4tH is a Forth compiler that can create bytecode, + C-embeddable bytecode, standalone executables, but also + works fine as a scripting language + + http://thebeez.home.xs4all.nl/4tH/ diff --git a/bsp/buildroot/package/Config.in b/bsp/buildroot/package/Config.in index 529ad336..1e51a453 100644 --- a/bsp/buildroot/package/Config.in +++ b/bsp/buildroot/package/Config.in @@ -15,6 +15,7 @@ menu "Audio and video applications" source "package/ffmpeg/Config.in" source "package/flac/Config.in" source "package/flite/Config.in" + source "package/gmrender-resurrect/Config.in" source "package/gstreamer/Config.in" source "package/gstreamer1/Config.in" source "package/jack2/Config.in" @@ -28,8 +29,11 @@ menu "Audio and video applications" source "package/mpd-mpc/Config.in" source "package/mpg123/Config.in" source "package/mplayer/Config.in" + source "package/mpv/Config.in" + source "package/multicat/Config.in" source "package/musepack/Config.in" source "package/ncmpc/Config.in" + source "package/omxplayer/Config.in" source "package/on2-8170-libs/Config.in" source "package/opus-tools/Config.in" source "package/pulseaudio/Config.in" @@ -50,16 +54,13 @@ endmenu menu "Compressors and decompressors" source "package/bzip2/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/gzip/Config.in" -endif source "package/lz4/Config.in" source "package/lzip/Config.in" source "package/lzop/Config.in" + source "package/p7zip/Config.in" source "package/unrar/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/unzip/Config.in" -endif source "package/xz/Config.in" source "package/zip/Config.in" endmenu @@ -72,6 +73,7 @@ menu "Debugging, profiling and benchmark" source "package/dmalloc/Config.in" source "package/dropwatch/Config.in" source "package/dstat/Config.in" + source "package/dt/Config.in" source "package/duma/Config.in" source "package/fio/Config.in" source "package/gdb/Config.in" @@ -83,9 +85,7 @@ menu "Debugging, profiling and benchmark" source "package/kyua/Config.in" source "package/latencytop/Config.in" source "package/lmbench/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/lsof/Config.in" -endif source "package/ltp-testsuite/Config.in" source "package/ltrace/Config.in" source "package/lttng-babeltrace/Config.in" @@ -124,32 +124,22 @@ menu "Development tools" source "package/cppunit/Config.in" source "package/cvs/Config.in" source "package/cxxtest/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/diffutils/Config.in" source "package/dos2unix/Config.in" source "package/findutils/Config.in" -endif source "package/flex/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/gawk/Config.in" -endif source "package/gettext/Config.in" source "package/git/Config.in" source "package/gperf/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/grep/Config.in" -endif source "package/intltool/Config.in" source "package/jq/Config.in" source "package/libtool/Config.in" source "package/make/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/patch/Config.in" -endif source "package/pkgconf/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/sed/Config.in" -endif source "package/sstrip/Config.in" source "package/subversion/Config.in" source "package/tree/Config.in" @@ -171,6 +161,7 @@ menu "Filesystem and flash utilities" source "package/exfat-utils/Config.in" source "package/f2fs-tools/Config.in" source "package/flashbench/Config.in" + source "package/fwup/Config.in" source "package/genext2fs/Config.in" source "package/genpart/Config.in" source "package/genromfs/Config.in" @@ -199,6 +190,7 @@ comment "Fonts" source "package/bitstream-vera/Config.in" source "package/cantarell/Config.in" source "package/dejavu/Config.in" + source "package/font-awesome/Config.in" source "package/ghostscript-fonts/Config.in" source "package/inconsolata/Config.in" source "package/liberation/Config.in" @@ -228,6 +220,8 @@ menu "Games" source "package/prboom/Config.in" source "package/rubix/Config.in" source "package/sl/Config.in" + source "package/stella/Config.in" + source "package/supertuxkart/Config.in" endmenu menu "Graphic libraries and applications (graphic/text)" @@ -250,9 +244,7 @@ comment "Graphic libraries" source "package/elementary/Config.in" source "package/fbdump/Config.in" source "package/fbgrab/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/fbset/Config.in" -endif source "package/fb-test-app/Config.in" source "package/fbterm/Config.in" source "package/fbv/Config.in" @@ -272,6 +264,9 @@ endif source "package/sdl_sound/Config.in" source "package/sdl_ttf/Config.in" source "package/sdl2/Config.in" + source "package/sdl2_gfx/Config.in" + source "package/sdl2_image/Config.in" + source "package/sdl2_ttf/Config.in" comment "Other GUIs" source "package/qt/Config.in" @@ -285,10 +280,13 @@ comment "QT libraries and helper libraries" source "package/quazip/Config.in" source "package/qwt/Config.in" endif + source "package/tekui/Config.in" source "package/weston/Config.in" source "package/x11r7/Config.in" comment "X applications" + depends on BR2_PACKAGE_XORG7 + source "package/alsamixergui/Config.in" source "package/apitrace/Config.in" source "package/dillo/Config.in" @@ -299,6 +297,7 @@ comment "X applications" source "package/gtkperf/Config.in" source "package/leafpad/Config.in" source "package/midori/Config.in" + source "package/nodm/Config.in" source "package/pcmanfm/Config.in" source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" @@ -313,10 +312,14 @@ comment "X applications" source "package/yad/Config.in" comment "X libraries and helper libraries" + depends on BR2_PACKAGE_XORG7 + source "package/libsexy/Config.in" source "package/x11r7/xkeyboard-config/Config.in" comment "X window managers" + depends on BR2_PACKAGE_XORG7 + source "package/enlightenment/Config.in" source "package/fluxbox/Config.in" source "package/matchbox/Config.in" @@ -332,10 +335,14 @@ menu "Firmware" source "package/rpi-firmware/Config.in" source "package/sunxi-boards/Config.in" source "package/ux500-firmware/Config.in" + source "package/wilc1000-firmware/Config.in" source "package/zd1211-firmware/Config.in" endmenu source "package/a10disp/Config.in" + source "package/acpica/Config.in" source "package/acpid/Config.in" + source "package/acpitool/Config.in" + source "package/aer-inject/Config.in" source "package/am335x-pru-package/Config.in" source "package/avrdude/Config.in" source "package/bcache-tools/Config.in" @@ -349,9 +356,7 @@ endmenu source "package/dbus-glib/Config.in" source "package/dbus-python/Config.in" source "package/dbus-triggerd/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/devmem2/Config.in" -endif source "package/dmidecode/Config.in" source "package/dmraid/Config.in" source "package/dtv-scan-tables/Config.in" @@ -375,12 +380,11 @@ endif source "package/gpsd/Config.in" source "package/gptfdisk/Config.in" source "package/gvfs/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/hdparm/Config.in" -endif source "package/hwdata/Config.in" source "package/hwloc/Config.in" source "package/i2c-tools/Config.in" + source "package/i7z/Config.in" source "package/input-event-daemon/Config.in" source "package/input-tools/Config.in" source "package/intel-microcode/Config.in" @@ -392,6 +396,7 @@ endif source "package/iucode-tool/Config.in" source "package/kbd/Config.in" source "package/lcdproc/Config.in" + source "package/libuio/Config.in" source "package/libump/Config.in" source "package/linux-backports/Config.in" source "package/lirc-tools/Config.in" @@ -399,14 +404,19 @@ endif source "package/lshw/Config.in" source "package/lsuio/Config.in" source "package/lvm2/Config.in" + source "package/mali-t76x/Config.in" source "package/mdadm/Config.in" source "package/memtest86/Config.in" source "package/memtester/Config.in" source "package/minicom/Config.in" + source "package/msr-tools/Config.in" source "package/nanocom/Config.in" source "package/neard/Config.in" source "package/nvidia-driver/Config.in" source "package/nvidia-tegra23/Config.in" + source "package/nvme/Config.in" + source "package/odroid-mali/Config.in" + source "package/odroid-scripts/Config.in" source "package/ofono/Config.in" source "package/ola/Config.in" source "package/on2-8170-modules/Config.in" @@ -417,6 +427,7 @@ endif source "package/owl-linux/Config.in" source "package/parted/Config.in" source "package/pciutils/Config.in" + source "package/pdbg/Config.in" source "package/picocom/Config.in" source "package/pifmrds/Config.in" source "package/powertop/Config.in" @@ -426,6 +437,7 @@ endif source "package/rfkill/Config.in" source "package/rng-tools/Config.in" source "package/rpi-userland/Config.in" + source "package/rs485conf/Config.in" source "package/rtl8188eu/Config.in" source "package/rtl8821au/Config.in" source "package/sane-backends/Config.in" @@ -443,10 +455,12 @@ endif source "package/stm32flash/Config.in" source "package/sunxi-cedarx/Config.in" source "package/sunxi-mali/Config.in" - source "package/sunxi-mali-prop/Config.in" source "package/sysstat/Config.in" source "package/targetcli-fb/Config.in" source "package/ti-gfx/Config.in" + source "package/ti-sgx-demos/Config.in" + source "package/ti-sgx-km/Config.in" + source "package/ti-sgx-um/Config.in" source "package/ti-uim/Config.in" source "package/ti-utils/Config.in" source "package/triggerhappy/Config.in" @@ -465,6 +479,7 @@ endif endmenu menu "Interpreter languages and scripting" + source "package/4th/Config.in" source "package/enscript/Config.in" source "package/erlang/Config.in" if BR2_PACKAGE_ERLANG @@ -483,6 +498,7 @@ menu "Erlang libraries/modules" source "package/erlang-p1-zlib/Config.in" endmenu endif + source "package/ficl/Config.in" source "package/gauche/Config.in" source "package/guile/Config.in" source "package/haserl/Config.in" @@ -494,6 +510,7 @@ endif if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_STATIC_LIBS # lua modules are dynamically loaded, so not available on static builds menu "Lua libraries/modules" + source "package/argparse/Config.in" source "package/cgilua/Config.in" source "package/copas/Config.in" source "package/cosmo/Config.in" @@ -533,6 +550,7 @@ menu "Lua libraries/modules" source "package/lzlib/Config.in" source "package/orbit/Config.in" source "package/rings/Config.in" + source "package/turbolua/Config.in" source "package/wsapi/Config.in" source "package/xavante/Config.in" endmenu @@ -618,6 +636,8 @@ endif if BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 menu "External python modules" source "package/python-alsaaudio/Config.in" + source "package/python-argh/Config.in" + source "package/python-autobahn/Config.in" source "package/python-backports-abc/Config.in" source "package/python-beautifulsoup4/Config.in" source "package/python-bottle/Config.in" @@ -625,6 +645,7 @@ menu "External python modules" source "package/python-cbor/Config.in" source "package/python-certifi/Config.in" source "package/python-cffi/Config.in" + source "package/python-characteristic/Config.in" source "package/python-cheetah/Config.in" source "package/python-cherrypy/Config.in" source "package/python-click/Config.in" @@ -632,22 +653,35 @@ menu "External python modules" source "package/python-configobj/Config.in" source "package/python-configshell-fb/Config.in" source "package/python-crc16/Config.in" + source "package/python-crossbar/Config.in" + source "package/python-cryptography/Config.in" source "package/python-cssselect/Config.in" source "package/python-daemon/Config.in" + source "package/python-dataproperty/Config.in" + source "package/python-dateutil/Config.in" source "package/python-dialog/Config.in" + source "package/python-dialog3/Config.in" + source "package/python-dicttoxml/Config.in" source "package/python-django/Config.in" source "package/python-docopt/Config.in" + source "package/python-dominate/Config.in" source "package/python-dpkt/Config.in" source "package/python-ecdsa/Config.in" + source "package/python-engineio/Config.in" source "package/python-enum/Config.in" source "package/python-enum34/Config.in" source "package/python-flask/Config.in" + source "package/python-flask-jsonrpc/Config.in" + source "package/python-flask-login/Config.in" source "package/python-flup/Config.in" source "package/python-gobject/Config.in" source "package/python-html5lib/Config.in" source "package/python-httplib2/Config.in" + source "package/python-humanize/Config.in" source "package/python-id3/Config.in" source "package/python-idna/Config.in" + source "package/python-iniparse/Config.in" + source "package/python-iowait/Config.in" source "package/python-ipaddr/Config.in" source "package/python-ipaddress/Config.in" source "package/python-ipy/Config.in" @@ -657,6 +691,7 @@ menu "External python modules" source "package/python-json-schema-validator/Config.in" source "package/python-keyring/Config.in" source "package/python-libconfig/Config.in" + source "package/python-lmdb/Config.in" source "package/python-lxml/Config.in" source "package/python-mad/Config.in" source "package/python-mako/Config.in" @@ -673,16 +708,28 @@ menu "External python modules" source "package/python-paho-mqtt/Config.in" source "package/python-pam/Config.in" source "package/python-paramiko/Config.in" + source "package/python-pathtools/Config.in" + source "package/python-pathvalidate/Config.in" + source "package/python-pexpect/Config.in" + source "package/python-pillow/Config.in" source "package/python-posix-ipc/Config.in" + source "package/python-prompt-toolkit/Config.in" source "package/python-protobuf/Config.in" source "package/python-psutil/Config.in" + source "package/python-ptyprocess/Config.in" source "package/python-pyasn/Config.in" + source "package/python-pyasn-modules/Config.in" source "package/python-pycli/Config.in" + source "package/python-pycparser/Config.in" source "package/python-pycrypto/Config.in" source "package/python-pydal/Config.in" source "package/python-pyftpdlib/Config.in" source "package/python-pygame/Config.in" + source "package/python-pygments/Config.in" source "package/python-pyinotify/Config.in" + source "package/python-pymysql/Config.in" + source "package/python-pynacl/Config.in" + source "package/python-pyopenssl/Config.in" source "package/python-pyparsing/Config.in" source "package/python-pyparted/Config.in" source "package/python-pypcap/Config.in" @@ -695,31 +742,55 @@ menu "External python modules" source "package/python-pysnmp/Config.in" source "package/python-pysnmp-apps/Config.in" source "package/python-pysnmp-mibs/Config.in" + source "package/python-pysocks/Config.in" + source "package/python-pytablewriter/Config.in" + source "package/python-pytrie/Config.in" + source "package/python-pytz/Config.in" source "package/python-pyudev/Config.in" source "package/python-pyusb/Config.in" source "package/python-pyxb/Config.in" source "package/python-pyyaml/Config.in" source "package/python-pyzmq/Config.in" source "package/python-requests/Config.in" + source "package/python-rpi-gpio/Config.in" source "package/python-rtslib-fb/Config.in" + source "package/python-scapy3k/Config.in" + source "package/python-sdnotify/Config.in" source "package/python-serial/Config.in" + source "package/python-service-identity/Config.in" + source "package/python-setproctitle/Config.in" source "package/python-setuptools/Config.in" + source "package/python-shutilwhich/Config.in" source "package/python-simplejson/Config.in" source "package/python-singledispatch/Config.in" source "package/python-sip/Config.in" source "package/python-six/Config.in" source "package/python-smbus-cffi/Config.in" + source "package/python-socketio/Config.in" source "package/python-spidev/Config.in" source "package/python-thrift/Config.in" + source "package/python-tomako/Config.in" source "package/python-tornado/Config.in" + source "package/python-treq/Config.in" source "package/python-twisted/Config.in" + source "package/python-txaio/Config.in" + source "package/python-u-msgpack/Config.in" + source "package/python-ubjson/Config.in" + source "package/python-ujson/Config.in" source "package/python-urllib3/Config.in" source "package/python-urwid/Config.in" source "package/python-versiontools/Config.in" + source "package/python-watchdog/Config.in" + source "package/python-wcwidth/Config.in" source "package/python-web2py/Config.in" source "package/python-webpy/Config.in" source "package/python-werkzeug/Config.in" source "package/python-ws4py/Config.in" + source "package/python-wsaccel/Config.in" + source "package/python-xlrd/Config.in" + source "package/python-xlsxwriter/Config.in" + source "package/python-xlutils/Config.in" + source "package/python-xlwt/Config.in" source "package/python-zope-interface/Config.in" endmenu endif @@ -749,6 +820,7 @@ menu "Audio/Sound" source "package/libcodec2/Config.in" source "package/libcue/Config.in" source "package/libcuefile/Config.in" + source "package/libebur128/Config.in" source "package/libg7221/Config.in" source "package/libid3tag/Config.in" source "package/libilbc/Config.in" @@ -811,11 +883,13 @@ menu "Crypto" source "package/libsodium/Config.in" source "package/libssh/Config.in" source "package/libssh2/Config.in" + source "package/libtomcrypt/Config.in" source "package/libuecc/Config.in" source "package/mbedtls/Config.in" source "package/nettle/Config.in" source "package/openssl/Config.in" source "package/polarssl/Config.in" + source "package/tinydtls/Config.in" source "package/trousers/Config.in" endmenu @@ -825,6 +899,7 @@ menu "Database" source "package/gdbm/Config.in" source "package/kompexsqlite/Config.in" source "package/leveldb/Config.in" + source "package/libpqxx/Config.in" source "package/mongodb/Config.in" source "package/mysql/Config.in" source "package/postgresql/Config.in" @@ -860,19 +935,23 @@ menu "Graphics" source "package/gdk-pixbuf/Config.in" source "package/giblib/Config.in" source "package/giflib/Config.in" + source "package/granite/Config.in" source "package/graphite2/Config.in" source "package/gtkmm3/Config.in" + source "package/gtksourceview/Config.in" source "package/harfbuzz/Config.in" source "package/ijs/Config.in" source "package/imlib2/Config.in" source "package/jasper/Config.in" source "package/jpeg/Config.in" + source "package/kmsxx/Config.in" source "package/lcms2/Config.in" source "package/lesstif/Config.in" source "package/libart/Config.in" source "package/libdmtx/Config.in" source "package/libdri2/Config.in" source "package/libdrm/Config.in" + source "package/libepoxy/Config.in" source "package/libevas-generic-loaders/Config.in" source "package/libexif/Config.in" source "package/libfm/Config.in" @@ -899,6 +978,7 @@ menu "Graphics" source "package/libsvgtiny/Config.in" source "package/libva/Config.in" source "package/libva-intel-driver/Config.in" + source "package/libvdpau/Config.in" source "package/libvips/Config.in" source "package/menu-cache/Config.in" source "package/opencv/Config.in" @@ -912,7 +992,9 @@ menu "Graphics" source "package/powervr/Config.in" source "package/tiff/Config.in" source "package/wayland/Config.in" + source "package/wayland-protocols/Config.in" source "package/webkit/Config.in" + source "package/webkitgtk/Config.in" source "package/webkitgtk24/Config.in" source "package/webp/Config.in" source "package/zbar/Config.in" @@ -955,15 +1037,18 @@ menu "Hardware handling" source "package/libsoc/Config.in" source "package/libusb/Config.in" source "package/libusb-compat/Config.in" + source "package/libusbgx/Config.in" source "package/libv4l/Config.in" source "package/libxkbcommon/Config.in" source "package/mraa/Config.in" source "package/mtdev/Config.in" source "package/ne10/Config.in" source "package/neardal/Config.in" + source "package/owfs/Config.in" source "package/pcsc-lite/Config.in" source "package/tslib/Config.in" source "package/urg/Config.in" + source "package/wiringpi/Config.in" endmenu menu "Javascript" @@ -997,6 +1082,7 @@ menu "JSON/XML" source "package/json-c/Config.in" source "package/json-glib/Config.in" source "package/jsoncpp/Config.in" + source "package/libfastjson/Config.in" source "package/libjson/Config.in" source "package/libroxml/Config.in" source "package/libucl/Config.in" @@ -1008,8 +1094,10 @@ menu "JSON/XML" source "package/mxml/Config.in" source "package/rapidjson/Config.in" source "package/rapidxml/Config.in" + source "package/raptor/Config.in" source "package/tinyxml/Config.in" source "package/tinyxml2/Config.in" + source "package/valijson/Config.in" source "package/xerces/Config.in" source "package/yajl/Config.in" source "package/yaml-cpp/Config.in" @@ -1021,25 +1109,28 @@ menu "Logging" source "package/liblog4c-localtime/Config.in" source "package/liblogging/Config.in" source "package/log4cplus/Config.in" + source "package/log4cpp/Config.in" source "package/log4cxx/Config.in" source "package/zlog/Config.in" endmenu menu "Multimedia" source "package/bitstream/Config.in" + source "package/libaacs/Config.in" + source "package/libamcodec/Config.in" source "package/libass/Config.in" + source "package/libbdplus/Config.in" source "package/libbluray/Config.in" source "package/libdcadec/Config.in" source "package/libdvbcsa/Config.in" source "package/libdvbpsi/Config.in" source "package/libdvbsi/Config.in" + source "package/libdvdcss/Config.in" source "package/libdvdnav/Config.in" source "package/libdvdread/Config.in" source "package/libebml/Config.in" - source "package/libfslcodec/Config.in" - source "package/libfslparser/Config.in" - source "package/libfslvpuwrap/Config.in" source "package/libhdhomerun/Config.in" + source "package/libimxvpuapi/Config.in" source "package/libmatroska/Config.in" source "package/libmms/Config.in" source "package/libmpeg2/Config.in" @@ -1057,6 +1148,11 @@ endmenu menu "Networking" source "package/agentpp/Config.in" + source "package/alljoyn/Config.in" + source "package/alljoyn-base/Config.in" + source "package/alljoyn-tcl/Config.in" + source "package/alljoyn-tcl-base/Config.in" + source "package/batman-adv/Config.in" source "package/c-ares/Config.in" source "package/canfestival/Config.in" source "package/cgic/Config.in" @@ -1071,10 +1167,12 @@ menu "Networking" source "package/gssdp/Config.in" source "package/gupnp/Config.in" source "package/gupnp-av/Config.in" + source "package/gupnp-dlna/Config.in" source "package/ibrcommon/Config.in" source "package/ibrdtn/Config.in" source "package/libcgi/Config.in" source "package/libcgicc/Config.in" + source "package/libcoap/Config.in" source "package/libcurl/Config.in" source "package/libdnet/Config.in" source "package/libeXosip2/Config.in" @@ -1087,8 +1185,10 @@ menu "Networking" source "package/libmbus/Config.in" source "package/libmemcached/Config.in" source "package/libmicrohttpd/Config.in" + source "package/libminiupnpc/Config.in" source "package/libmnl/Config.in" source "package/libmodbus/Config.in" + source "package/libnatpmp/Config.in" source "package/libndp/Config.in" source "package/libnet/Config.in" source "package/libnetfilter_acct/Config.in" @@ -1105,6 +1205,7 @@ menu "Networking" source "package/liboping/Config.in" source "package/libosip2/Config.in" source "package/libpcap/Config.in" + source "package/libpjsip/Config.in" source "package/librsync/Config.in" source "package/libshairplay/Config.in" source "package/libshout/Config.in" @@ -1120,13 +1221,17 @@ menu "Networking" source "package/libvncserver/Config.in" source "package/libwebsock/Config.in" source "package/libwebsockets/Config.in" + source "package/lksctp-tools/Config.in" source "package/mongoose/Config.in" source "package/neon/Config.in" + source "package/norm/Config.in" source "package/nss-mdns/Config.in" source "package/nss-pam-ldapd/Config.in" source "package/omniorb/Config.in" source "package/openldap/Config.in" + source "package/openmpi/Config.in" source "package/openpgm/Config.in" + source "package/openzwave/Config.in" source "package/ortp/Config.in" source "package/qdecoder/Config.in" source "package/qpid-proton/Config.in" @@ -1167,6 +1272,8 @@ menu "Other" source "package/gmp/Config.in" source "package/gsl/Config.in" source "package/gtest/Config.in" + source "package/jemalloc/Config.in" + source "package/lapack/Config.in" source "package/libargtable2/Config.in" source "package/libatomic_ops/Config.in" source "package/libbsd/Config.in" @@ -1182,6 +1289,7 @@ menu "Other" source "package/libevdev/Config.in" source "package/libevent/Config.in" source "package/libffi/Config.in" + source "package/libgee/Config.in" source "package/libglib2/Config.in" source "package/libical/Config.in" source "package/liblinear/Config.in" @@ -1195,6 +1303,7 @@ menu "Other" source "package/libsigc/Config.in" source "package/libsigsegv/Config.in" source "package/libtasn1/Config.in" + source "package/libtommath/Config.in" source "package/libtpl/Config.in" source "package/libubox/Config.in" source "package/libuci/Config.in" @@ -1215,7 +1324,8 @@ endif source "package/mpfr/Config.in" source "package/msgpack/Config.in" source "package/mtdev2tuio/Config.in" - source "package/netbsd-queue/Config.in" + source "package/musl-compat-headers/Config.in" + source "package/openblas/Config.in" source "package/orc/Config.in" source "package/p11-kit/Config.in" source "package/poco/Config.in" @@ -1223,7 +1333,9 @@ endif source "package/protobuf-c/Config.in" source "package/qhull/Config.in" source "package/qlibc/Config.in" + source "package/sphinxbase/Config.in" source "package/startup-notification/Config.in" + source "package/tinycbor/Config.in" source "package/tz/Config.in" source "package/tzdata/Config.in" endmenu @@ -1273,9 +1385,12 @@ menu "Miscellaneous" source "package/bc/Config.in" source "package/clamav/Config.in" source "package/collectd/Config.in" + source "package/domoticz/Config.in" source "package/empty/Config.in" source "package/gnuradio/Config.in" source "package/googlefontdirectory/Config.in" + source "package/gr-osmosdr/Config.in" + source "package/gsettings-desktop-schemas/Config.in" source "package/haveged/Config.in" source "package/mcrypt/Config.in" source "package/mobile-broadband-provider-info/Config.in" @@ -1283,6 +1398,7 @@ menu "Miscellaneous" source "package/qpdf/Config.in" source "package/shared-mime-info/Config.in" source "package/snowball-init/Config.in" + source "package/taskd/Config.in" source "package/wine/Config.in" source "package/xutil_util-macros/Config.in" endmenu @@ -1297,6 +1413,7 @@ menu "Networking applications" source "package/autossh/Config.in" source "package/avahi/Config.in" source "package/axel/Config.in" + source "package/babeld/Config.in" source "package/bandwidthd/Config.in" source "package/batctl/Config.in" source "package/bcusdk/Config.in" @@ -1310,16 +1427,17 @@ menu "Networking applications" source "package/c-icap/Config.in" source "package/c-icap-modules/Config.in" source "package/can-utils/Config.in" + source "package/cannelloni/Config.in" source "package/chrony/Config.in" source "package/civetweb/Config.in" source "package/connman/Config.in" + source "package/connman-gtk/Config.in" source "package/conntrack-tools/Config.in" source "package/crda/Config.in" source "package/ctorrent/Config.in" source "package/cups/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + source "package/dante/Config.in" source "package/dhcp/Config.in" -endif source "package/dhcpcd/Config.in" source "package/dhcpdump/Config.in" source "package/dnsmasq/Config.in" @@ -1331,9 +1449,11 @@ endif source "package/faifa/Config.in" source "package/fastd/Config.in" source "package/fcgiwrap/Config.in" + source "package/flannel/Config.in" source "package/fmc/Config.in" - source "package/foomatic-filters/Config.in" source "package/fping/Config.in" + source "package/freeswitch/Config.in" + source "package/gupnp-tools/Config.in" source "package/gesftpserver/Config.in" source "package/gutenprint/Config.in" source "package/hans/Config.in" @@ -1343,13 +1463,10 @@ endif source "package/httping/Config.in" source "package/ibrdtn-tools/Config.in" source "package/ibrdtnd/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/ifplugd/Config.in" -endif source "package/iftop/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/ifupdown/Config.in" -endif + source "package/igd2-for-linux/Config.in" source "package/igh-ethercat/Config.in" source "package/igmpproxy/Config.in" source "package/inadyn/Config.in" @@ -1368,6 +1485,7 @@ endif source "package/kismet/Config.in" source "package/knock/Config.in" source "package/leafnode2/Config.in" + source "package/lft/Config.in" source "package/lftp/Config.in" source "package/lighttpd/Config.in" source "package/linknx/Config.in" @@ -1380,6 +1498,7 @@ endif source "package/memcached/Config.in" source "package/mii-diag/Config.in" source "package/minidlna/Config.in" + source "package/minissdpd/Config.in" source "package/mjpg-streamer/Config.in" source "package/modem-manager/Config.in" source "package/mongrel2/Config.in" @@ -1392,22 +1511,25 @@ endif source "package/ncftp/Config.in" source "package/ndisc6/Config.in" source "package/netatalk/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/netcat/Config.in" source "package/netcat-openbsd/Config.in" -endif source "package/netplug/Config.in" source "package/netsnmp/Config.in" source "package/netstat-nat/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/net-tools/Config.in" -endif source "package/network-manager/Config.in" source "package/nfacct/Config.in" source "package/nftables/Config.in" source "package/nginx/Config.in" +if BR2_PACKAGE_NGINX +menu "External nginx modules" + source "package/nginx-naxsi/Config.in" + source "package/nginx-upload/Config.in" +endmenu +endif source "package/ngircd/Config.in" source "package/ngrep/Config.in" + source "package/nload/Config.in" source "package/nmap/Config.in" source "package/noip/Config.in" source "package/ntp/Config.in" @@ -1424,13 +1546,16 @@ endif source "package/p910nd/Config.in" source "package/phidgetwebservice/Config.in" source "package/portmap/Config.in" + source "package/pound/Config.in" source "package/pppd/Config.in" source "package/pptp-linux/Config.in" + source "package/privoxy/Config.in" source "package/proftpd/Config.in" source "package/proxychains-ng/Config.in" source "package/ptpd/Config.in" source "package/ptpd2/Config.in" source "package/pure-ftpd/Config.in" + source "package/putty/Config.in" source "package/quagga/Config.in" source "package/radvd/Config.in" source "package/rp-pppoe/Config.in" @@ -1439,11 +1564,11 @@ endif source "package/rsync/Config.in" source "package/rtorrent/Config.in" source "package/rtptools/Config.in" - source "package/samba/Config.in" source "package/samba4/Config.in" source "package/sconeserver/Config.in" source "package/ser2net/Config.in" source "package/shairport-sync/Config.in" + source "package/shellinabox/Config.in" source "package/smcroute/Config.in" source "package/socat/Config.in" source "package/socketcand/Config.in" @@ -1458,15 +1583,14 @@ endif source "package/tcpdump/Config.in" source "package/tcping/Config.in" source "package/tcpreplay/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/tftpd/Config.in" -endif source "package/thttpd/Config.in" source "package/tinc/Config.in" source "package/tinyhttpd/Config.in" source "package/tn5250/Config.in" source "package/tor/Config.in" source "package/transmission/Config.in" + source "package/tunctl/Config.in" source "package/tvheadend/Config.in" source "package/udpcast/Config.in" source "package/ulogd/Config.in" @@ -1477,14 +1601,14 @@ endif source "package/vpnc/Config.in" source "package/vsftpd/Config.in" source "package/vtun/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + source "package/wavemon/Config.in" source "package/wget/Config.in" source "package/whois/Config.in" -endif source "package/wireless-regdb/Config.in" source "package/wireless_tools/Config.in" source "package/wireshark/Config.in" source "package/wpa_supplicant/Config.in" + source "package/wpan-tools/Config.in" source "package/wvdial/Config.in" source "package/xinetd/Config.in" source "package/xl2tp/Config.in" @@ -1507,9 +1631,7 @@ comment "http://buildroot.org/manual.html#faq-no-binary-packages" comment "-------------------------------------------------------" source "package/ipkg/Config.in" source "package/opkg/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/rpm/Config.in" -endif endmenu menu "Real-Time" @@ -1523,14 +1645,13 @@ endmenu menu "Shell and utilities" comment "Shells" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/bash/Config.in" source "package/dash/Config.in" source "package/zsh/Config.in" -endif comment "Utilities" source "package/at/Config.in" source "package/ccrypt/Config.in" + source "package/crudini/Config.in" source "package/dialog/Config.in" source "package/dtach/Config.in" source "package/file/Config.in" @@ -1544,31 +1665,31 @@ comment "Utilities" source "package/ranger/Config.in" source "package/screen/Config.in" source "package/sudo/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + source "package/terminology/Config.in" source "package/time/Config.in" -endif source "package/tmux/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/which/Config.in" -endif source "package/xmlstarlet/Config.in" source "package/xxhash/Config.in" endmenu menu "System tools" source "package/acl/Config.in" + source "package/android-tools/Config.in" source "package/attr/Config.in" source "package/audit/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/bootutils/Config.in" + source "package/cgroupfs-mount/Config.in" + source "package/circus/Config.in" source "package/coreutils/Config.in" -endif source "package/cpuload/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/dcron/Config.in" source "package/debianutils/Config.in" -endif + source "package/docker-containerd/Config.in" + source "package/docker-engine/Config.in" source "package/dsp-tools/Config.in" + source "package/efibootmgr/Config.in" + source "package/efivar/Config.in" source "package/emlog/Config.in" source "package/ftop/Config.in" source "package/getent/Config.in" @@ -1588,48 +1709,39 @@ endif source "package/openvmtools/Config.in" source "package/polkit/Config.in" source "package/powerpc-utils/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/procps-ng/Config.in" + source "package/procrank_linux/Config.in" source "package/psmisc/Config.in" -endif source "package/pwgen/Config.in" source "package/quota/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/rsyslog/Config.in" -endif + source "package/runc/Config.in" + source "package/scrub/Config.in" source "package/scrypt/Config.in" source "package/smack/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/start-stop-daemon/Config.in" -endif source "package/supervisor/Config.in" source "package/swupdate/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/sysklogd/Config.in" source "package/syslog-ng/Config.in" -endif source "package/systemd/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + source "package/systemd-bootchart/Config.in" source "package/sysvinit/Config.in" source "package/tar/Config.in" -endif source "package/tpm-tools/Config.in" source "package/unscd/Config.in" source "package/util-linux/Config.in" + source "package/xen/Config.in" endmenu menu "Text editors and viewers" source "package/ed/Config.in" source "package/joe/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/less/Config.in" -endif source "package/mc/Config.in" source "package/nano/Config.in" source "package/uemacs/Config.in" -if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS source "package/vim/Config.in" -endif endmenu endmenu diff --git a/bsp/buildroot/package/Config.in.host b/bsp/buildroot/package/Config.in.host index 1c691a35..6d61f19d 100644 --- a/bsp/buildroot/package/Config.in.host +++ b/bsp/buildroot/package/Config.in.host @@ -1,6 +1,8 @@ menu "Host utilities" source "package/aespipe/Config.in.host" + source "package/android-tools/Config.in.host" + source "package/cbootimage/Config.in.host" source "package/checkpolicy/Config.in.host" source "package/cramfs/Config.in.host" source "package/dfu-util/Config.in.host" @@ -10,16 +12,20 @@ menu "Host utilities" source "package/e2fsprogs/Config.in.host" source "package/e2tools/Config.in.host" source "package/faketime/Config.in.host" + source "package/fwup/Config.in.host" source "package/genext2fs/Config.in.host" source "package/genimage/Config.in.host" source "package/genpart/Config.in.host" + source "package/go/Config.in.host" source "package/gptfdisk/Config.in.host" source "package/imx-usb-loader/Config.in.host" source "package/jq/Config.in.host" + source "package/jsmin/Config.in.host" source "package/lpc3250loader/Config.in.host" source "package/mke2img/Config.in.host" source "package/mtd/Config.in.host" source "package/mtools/Config.in.host" + source "package/mxsldr/Config.in.host" source "package/omap-u-boot-utils/Config.in.host" source "package/openocd/Config.in.host" source "package/parted/Config.in.host" @@ -29,8 +35,11 @@ menu "Host utilities" source "package/sam-ba/Config.in.host" source "package/squashfs/Config.in.host" source "package/sunxi-tools/Config.in.host" + source "package/tegrarcm/Config.in.host" source "package/uboot-tools/Config.in.host" source "package/util-linux/Config.in.host" source "package/vboot-utils/Config.in.host" + source "package/xorriso/Config.in.host" + source "package/zip/Config.in.host" endmenu diff --git a/bsp/buildroot/package/Makefile.in b/bsp/buildroot/package/Makefile.in index dd595e2b..afd5d3a5 100644 --- a/bsp/buildroot/package/Makefile.in +++ b/bsp/buildroot/package/Makefile.in @@ -122,6 +122,9 @@ endif ifeq ($(BR2_OPTIMIZE_3),y) TARGET_OPTIMIZATION = -O3 endif +ifeq ($(BR2_OPTIMIZE_G),y) +TARGET_OPTIMIZATION = -Og +endif ifeq ($(BR2_OPTIMIZE_S),y) TARGET_OPTIMIZATION = -Os endif @@ -138,6 +141,7 @@ endif TARGET_CPPFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 TARGET_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) TARGET_CXXFLAGS = $(TARGET_CFLAGS) +TARGET_FCFLAGS = $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS)) ifeq ($(BR2_BINFMT_FLAT),y) @@ -145,29 +149,36 @@ TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FL -Wl$(comma)-elf2flt) TARGET_CXXFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\ -Wl$(comma)-elf2flt) -TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-elf2flt) +TARGET_FCFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\ + -Wl$(comma)-elf2flt) +TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt) endif ifeq ($(BR2_BINFMT_FLAT_SHARED),y) TARGET_LDFLAGS += -mid-shared-library -mshared-library-id=0 TARGET_CFLAGS += -mid-shared-library -mshared-library-id=0 +TARGET_FCFLAGS += -mid-shared-library -mshared-library-id=0 TARGET_CXXFLAGS += -mid-shared-library -mshared-library-id=0 endif ifeq ($(BR2_BINFMT_FLAT_SEP_DATA),y) TARGET_LDFLAGS += -msep-data TARGET_CFLAGS += -msep-data +TARGET_FCFLAGS += -msep-data TARGET_CXXFLAGS += -msep-data endif ifeq ($(BR2_SSP_REGULAR),y) TARGET_CFLAGS += -fstack-protector TARGET_CXXFLAGS += -fstack-protector +TARGET_FCFLAGS += -fstack-protector else ifeq ($(BR2_SSP_STRONG),y) TARGET_CFLAGS += -fstack-protector-strong TARGET_CXXFLAGS += -fstack-protector-strong +TARGET_FCFLAGS += -fstack-protector-strong else ifeq ($(BR2_SSP_ALL),y) TARGET_CFLAGS += -fstack-protector-all TARGET_CXXFLAGS += -fstack-protector-all +TARGET_FCFLAGS += -fstack-protector-all endif ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) @@ -198,14 +209,6 @@ TARGET_STRIP = $(TARGET_CROSS)strip STRIPCMD = $(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note KSTRIPCMD = $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) endif -ifeq ($(BR2_STRIP_sstrip),y) -STRIP_STRIP_DEBUG := -STRIP_STRIP_UNNEEDED := -STRIP_STRIP_ALL := -TARGET_STRIP = $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-sstrip -STRIPCMD = $(TARGET_STRIP) -KSTRIPCMD = $(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note --strip-unneeded -endif ifeq ($(BR2_STRIP_none),y) TARGET_STRIP = true STRIPCMD = $(TARGET_STRIP) @@ -247,6 +250,7 @@ TARGET_CONFIGURE_OPTS = \ CPP="$(TARGET_CPP)" \ CXX="$(TARGET_CXX)" \ FC="$(TARGET_FC)" \ + F77="$(TARGET_FC)" \ RANLIB="$(TARGET_RANLIB)" \ READELF="$(TARGET_READELF)" \ STRIP="$(TARGET_STRIP)" \ @@ -270,6 +274,7 @@ TARGET_CONFIGURE_OPTS = \ CXXFLAGS="$(TARGET_CXXFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ FCFLAGS="$(TARGET_FCFLAGS)" \ + FFLAGS="$(TARGET_FCFLAGS)" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ STAGING_DIR="$(STAGING_DIR)" \ INTLTOOL_PERL=$(PERL) @@ -378,6 +383,7 @@ ifeq ($(BR2_STATIC_LIBS),y) SHARED_STATIC_LIBS_OPTS = --enable-static --disable-shared TARGET_CFLAGS += -static TARGET_CXXFLAGS += -static +TARGET_FCFLAGS += -static TARGET_LDFLAGS += -static else ifeq ($(BR2_SHARED_LIBS),y) SHARED_STATIC_LIBS_OPTS = --disable-static --enable-shared diff --git a/bsp/buildroot/package/a10disp/a10disp.hash b/bsp/buildroot/package/a10disp/a10disp.hash new file mode 100644 index 00000000..a1ec11c7 --- /dev/null +++ b/bsp/buildroot/package/a10disp/a10disp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 5077405030e8f97a1edd4b86d469466abbc4d32b4a4609e58459347fcd1ba35b a10disp-v0.6.1.tar.gz diff --git a/bsp/buildroot/package/acl/acl.mk b/bsp/buildroot/package/acl/acl.mk index 62e5d151..cbe5e939 100644 --- a/bsp/buildroot/package/acl/acl.mk +++ b/bsp/buildroot/package/acl/acl.mk @@ -16,15 +16,15 @@ ACL_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL # While the configuration system uses autoconf, the Makefiles are # hand-written and do not use automake. Therefore, we have to hack # around their deficiencies by passing installation paths. -ACL_INSTALL_STAGING_OPTS = \ - prefix=$(STAGING_DIR)/usr \ - exec_prefix=$(STAGING_DIR)/usr \ - PKG_DEVLIB_DIR=$(STAGING_DIR)/usr/lib \ +ACL_INSTALL_STAGING_OPTS = \ + prefix=$(STAGING_DIR)/usr \ + exec_prefix=$(STAGING_DIR)/usr \ + PKG_DEVLIB_DIR=$(STAGING_DIR)/usr/lib \ install-dev install-lib -ACL_INSTALL_TARGET_OPTS = \ - prefix=$(TARGET_DIR)/usr \ - exec_prefix=$(TARGET_DIR)/usr \ +ACL_INSTALL_TARGET_OPTS = \ + prefix=$(TARGET_DIR)/usr \ + exec_prefix=$(TARGET_DIR)/usr \ install install-lib # The libdir variable in libacl.la is empty, so let's fix it. This is diff --git a/bsp/buildroot/package/acpica/0001-build-do-not-use-Werror.patch b/bsp/buildroot/package/acpica/0001-build-do-not-use-Werror.patch new file mode 100644 index 00000000..4ccb4d4d --- /dev/null +++ b/bsp/buildroot/package/acpica/0001-build-do-not-use-Werror.patch @@ -0,0 +1,62 @@ +From 9382ae2431d2962c430e7149302c8690f5bc159c Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Sun, 10 Jul 2016 15:06:15 +0200 +Subject: [PATCH] build: do not use -Werror + +Warnings come and go with various compiler versions, so using -Werror is +prone to cause build failures with various compiler versions, especially +newer versions that introduce new warnings. + +Remove use of -Werror. + +Signed-off-by: "Yann E. MORIN" +--- + generate/unix/Makefile.config | 1 - + generate/unix/iasl/Makefile | 12 ++++++------ + 2 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config +index da0f61d..1476e27 100644 +--- a/generate/unix/Makefile.config ++++ b/generate/unix/Makefile.config +@@ -185,7 +185,6 @@ CWARNINGFLAGS = \ + -Wall\ + -Wbad-function-cast\ + -Wdeclaration-after-statement\ +- -Werror\ + -Wformat=2\ + -Wmissing-declarations\ + -Wmissing-prototypes\ +diff --git a/generate/unix/iasl/Makefile b/generate/unix/iasl/Makefile +index a3759cc..c2dc8f0 100644 +--- a/generate/unix/iasl/Makefile ++++ b/generate/unix/iasl/Makefile +@@ -320,19 +320,19 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparse + # by the utilities above and they are not necessarily ANSI C, etc. + # + $(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c +- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< ++ $(CC) -c $(CFLAGS) -Wall -o$@ $< + + $(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c +- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< ++ $(CC) -c $(CFLAGS) -Wall -o$@ $< + + $(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c +- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< ++ $(CC) -c $(CFLAGS) -Wall -o$@ $< + + $(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c +- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< ++ $(CC) -c $(CFLAGS) -Wall -o$@ $< + + $(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c +- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< ++ $(CC) -c $(CFLAGS) -Wall -o$@ $< + + $(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c +- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< ++ $(CC) -c $(CFLAGS) -Wall -o$@ $< +-- +2.7.4 + diff --git a/bsp/buildroot/package/acpica/Config.in b/bsp/buildroot/package/acpica/Config.in new file mode 100644 index 00000000..c5ffb005 --- /dev/null +++ b/bsp/buildroot/package/acpica/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_ACPICA + bool "acpica" + depends on BR2_TOOLCHAIN_HAS_THREADS + help + The ACPI Component Architecture (ACPICA) project provides an + operating system (OS)-independent reference implementation + of the Advanced Configuration and Power Interface + Specification (ACPI). + + https://www.acpica.org + +comment "acpica needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/acpica/acpica.hash b/bsp/buildroot/package/acpica/acpica.hash new file mode 100644 index 00000000..8d5257ff --- /dev/null +++ b/bsp/buildroot/package/acpica/acpica.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 4ac73a5887b643dcca483f0241cbb808a53326846928edad9a2f86cffcde5850 acpica-unix2-20160527.tar.gz diff --git a/bsp/buildroot/package/acpica/acpica.mk b/bsp/buildroot/package/acpica/acpica.mk new file mode 100644 index 00000000..b8459d87 --- /dev/null +++ b/bsp/buildroot/package/acpica/acpica.mk @@ -0,0 +1,26 @@ +################################################################################ +# +# acpica +# +################################################################################ + +ACPICA_VERSION = 20160527 +ACPICA_SOURCE = acpica-unix2-$(ACPICA_VERSION).tar.gz +ACPICA_SITE = https://acpica.org/sites/acpica/files +ACPICA_LICENSE = BSD-3c or GPLv2 +ACPICA_LICENSE_FILES = source/include/acpi.h +ACPICA_DEPENDENCIES = host-bison host-flex + +define ACPICA_BUILD_CMDS + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ + HARDWARE_NAME=$(BR2_ARCH) HOST=_LINUX CC="$(TARGET_CC)" \ + all +endef + +define ACPICA_INSTALL_TARGET_CMDS + $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \ + HARDWARE_NAME=$(BR2_ARCH) DESTDIR="$(TARGET_DIR)" \ + INSTALLFLAGS=-m755 install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/acpid/0003-support-for-non-glibc-libcs.patch b/bsp/buildroot/package/acpid/0003-support-for-non-glibc-libcs.patch deleted file mode 100644 index f152d32c..00000000 --- a/bsp/buildroot/package/acpid/0003-support-for-non-glibc-libcs.patch +++ /dev/null @@ -1,184 +0,0 @@ -From a3dac1c3cee169e52c7d644dd565235a1cd833e3 Mon Sep 17 00:00:00 2001 -From: Brendan Heading -Date: Wed, 22 Jul 2015 23:10:11 +0100 -Subject: [PATCH] support for non-glibc libcs - -Added a TEMP_FAILURE_RETRY macro. This is a glibcism provided by -glibc and uclibc, but missing from musl (& possibly other libcs). - -Upstream-status: submitted (see https://sourceforge.net/p/acpid2/tickets/7/) ---- - acpi_listen.c | 2 ++ - acpid.c | 1 + - event.c | 2 ++ - input_layer.c | 1 + - kacpimon/libnetlink.h | 2 ++ - libc_compat.h | 40 ++++++++++++++++++++++++++++++++++++++++ - libnetlink.c | 2 ++ - netlink.c | 1 + - proc.c | 1 + - ud_socket.c | 1 + - 10 files changed, 53 insertions(+) - create mode 100644 libc_compat.h - -diff --git a/acpi_listen.c b/acpi_listen.c -index d0bc175..839e4f9 100644 ---- a/acpi_listen.c -+++ b/acpi_listen.c -@@ -39,6 +39,8 @@ - #include "acpid.h" - #include "ud_socket.h" - -+#include "libc_compat.h" -+ - static int handle_cmdline(int *argc, char ***argv); - static char *read_line(int fd); - -diff --git a/acpid.c b/acpid.c -index 23f1e58..8555c82 100644 ---- a/acpid.c -+++ b/acpid.c -@@ -41,6 +41,7 @@ - #include "input_layer.h" - #include "inotify_handler.h" - #include "netlink.h" -+#include "libc_compat.h" - - static int handle_cmdline(int *argc, char ***argv); - static void close_fds(void); -diff --git a/event.c b/event.c -index 324078f..3b069a2 100644 ---- a/event.c -+++ b/event.c -@@ -39,6 +39,8 @@ - #include "log.h" - #include "sock.h" - #include "ud_socket.h" -+#include "libc_compat.h" -+ - #include "event.h" - /* - * What is a rule? It's polymorphic, pretty much. -diff --git a/input_layer.c b/input_layer.c -index 9aa19c6..cbf8085 100644 ---- a/input_layer.c -+++ b/input_layer.c -@@ -42,6 +42,7 @@ - #include "log.h" - #include "connection_list.h" - #include "event.h" -+#include "libc_compat.h" - - #include "input_layer.h" - -diff --git a/kacpimon/libnetlink.h b/kacpimon/libnetlink.h -index 6185cbc..0c61896 100644 ---- a/kacpimon/libnetlink.h -+++ b/kacpimon/libnetlink.h -@@ -7,6 +7,8 @@ - #include - #include - -+#include "libc_compat.h" -+ - struct rtnl_handle - { - int fd; -diff --git a/libc_compat.h b/libc_compat.h -new file mode 100644 -index 0000000..39f2336 ---- /dev/null -+++ b/libc_compat.h -@@ -0,0 +1,40 @@ -+/* -+ * libc_compat.h - implement defs/macros missing from some libcs -+ * -+ * Copyright (C) 1999-2000 Andrew Henroid -+ * Copyright (C) 2001 Sun Microsystems -+ * Portions Copyright (C) 2004 Tim Hockin (thockin@hockin.org) -+ * -+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ */ -+ -+#ifndef LIBC_COMPAT_H__ -+#define LIBC_COMPAT_H__ -+ -+/* Evaluate EXPRESSION, and repeat as long as it returns -1 with `errno' -+ set to EINTR. This macro is present on glibc/uclibc but may not be in other cases. */ -+ -+#ifndef ____GLIBC__ -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+#endif /* __GLIBC__ */ -+ -+#endif /* LIBC_COMPAT_H__ */ -diff --git a/libnetlink.c b/libnetlink.c -index e61d417..cc7aedc 100644 ---- a/libnetlink.c -+++ b/libnetlink.c -@@ -24,6 +24,8 @@ - #include - #include - -+#include "libc_compat.h" -+ - #include "libnetlink.h" - - void rtnl_close(struct rtnl_handle *rth) -diff --git a/netlink.c b/netlink.c -index c64e878..27e3536 100644 ---- a/netlink.c -+++ b/netlink.c -@@ -41,6 +41,7 @@ - #include "libnetlink.h" - #include "genetlink.h" - #include "acpi_genetlink.h" -+#include "libc_compat.h" - - #include "acpi_ids.h" - #include "connection_list.h" -diff --git a/proc.c b/proc.c -index 5bb8fa2..f96b913 100644 ---- a/proc.c -+++ b/proc.c -@@ -31,6 +31,7 @@ - #include "log.h" - #include "event.h" - #include "connection_list.h" -+#include "libc_compat.h" - - #include "proc.h" - -diff --git a/ud_socket.c b/ud_socket.c -index 2790686..1790917 100644 ---- a/ud_socket.c -+++ b/ud_socket.c -@@ -21,6 +21,7 @@ - #include "acpid.h" - #include "log.h" - #include "ud_socket.h" -+#include "libc_compat.h" - - int - ud_create_socket(const char *name, mode_t socketmode) --- -2.4.3 - diff --git a/bsp/buildroot/package/acpid/acpid.hash b/bsp/buildroot/package/acpid/acpid.hash index b7e4206e..91990fd1 100644 --- a/bsp/buildroot/package/acpid/acpid.hash +++ b/bsp/buildroot/package/acpid/acpid.hash @@ -1,2 +1,3 @@ -# Locally computed: -sha256 3d11454f4283c8f771d8dbd5eb6b5f2bbd9d94d9f77d68bab89e35d98b67ab31 acpid-2.0.22.tar.xz +# From https://sourceforge.net/projects/acpid2/files/ +md5 e41bdf628e122edb4342fca432ea7db9 acpid-2.0.27.tar.xz +sha1 aabf129499f99b3c14e7a9f5b5ec717b0913e9c8 acpid-2.0.27.tar.xz diff --git a/bsp/buildroot/package/acpid/acpid.mk b/bsp/buildroot/package/acpid/acpid.mk index 7a6a478e..510282bb 100644 --- a/bsp/buildroot/package/acpid/acpid.mk +++ b/bsp/buildroot/package/acpid/acpid.mk @@ -4,7 +4,7 @@ # ################################################################################ -ACPID_VERSION = 2.0.22 +ACPID_VERSION = 2.0.27 ACPID_SOURCE = acpid-$(ACPID_VERSION).tar.xz ACPID_SITE = http://downloads.sourceforge.net/project/acpid2 ACPID_LICENSE = GPLv2+ diff --git a/bsp/buildroot/package/acpitool/Config.in b/bsp/buildroot/package/acpitool/Config.in new file mode 100644 index 00000000..7992e0f9 --- /dev/null +++ b/bsp/buildroot/package/acpitool/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_ACPITOOL + bool "acpitool" + depends on BR2_INSTALL_LIBSTDCPP + help + A small, convenient command-line ACPI client with a lot of + features for Linux + + http://acpitool.sourceforge.net + +comment "acpitool needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/acpitool/acpitool.hash b/bsp/buildroot/package/acpitool/acpitool.hash new file mode 100644 index 00000000..e25dc546 --- /dev/null +++ b/bsp/buildroot/package/acpitool/acpitool.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 004fb6cd43102918b6302cf537a2db7ceadda04aef2e0906ddf230f820dad34f acpitool-0.5.1.tar.bz2 diff --git a/bsp/buildroot/package/acpitool/acpitool.mk b/bsp/buildroot/package/acpitool/acpitool.mk new file mode 100644 index 00000000..f663fbb9 --- /dev/null +++ b/bsp/buildroot/package/acpitool/acpitool.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# acpitool +# +################################################################################ + +ACPITOOL_VERSION = 0.5.1 +ACPITOOL_SOURCE = acpitool-$(ACPITOOL_VERSION).tar.bz2 +ACPITOOL_SITE = http://downloads.sourceforge.net/sourceforge/acpitool +ACPITOOL_LICENSE = GPLv2+ +ACPITOOL_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.hash b/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.hash index 14e88ed1..a416e235 100644 --- a/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.hash +++ b/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.18/adwaita-icon-theme-3.18.0.sha256sum -sha256 5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58 adwaita-icon-theme-3.18.0.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.20/adwaita-icon-theme-3.20.sha256sum +sha256 7a0a887349f340dd644032f89d81264b694c4b006bd51af1c2c368d431e7ae35 adwaita-icon-theme-3.20.tar.xz diff --git a/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.mk b/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.mk index cf39d04d..24ce3504 100644 --- a/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.mk +++ b/bsp/buildroot/package/adwaita-icon-theme/adwaita-icon-theme.mk @@ -4,9 +4,8 @@ # ################################################################################ -ADWAITA_ICON_THEME_VERSION_MAJOR = 3.18 -ADWAITA_ICON_THEME_VERSION = $(ADWAITA_ICON_THEME_VERSION_MAJOR).0 -ADWAITA_ICON_THEME_SITE = http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/$(ADWAITA_ICON_THEME_VERSION_MAJOR) +ADWAITA_ICON_THEME_VERSION = 3.20 +ADWAITA_ICON_THEME_SITE = http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/$(ADWAITA_ICON_THEME_VERSION) ADWAITA_ICON_THEME_SOURCE = adwaita-icon-theme-$(ADWAITA_ICON_THEME_VERSION).tar.xz ADWAITA_ICON_THEME_LICENSE = LGPLv3 or CC-BY-SA-3.0 ADWAITA_ICON_THEME_LICENSE_FILES = COPYING COPYING_LGPL COPYING_CCBYSA3 diff --git a/bsp/buildroot/package/aer-inject/Config.in b/bsp/buildroot/package/aer-inject/Config.in new file mode 100644 index 00000000..7c737d42 --- /dev/null +++ b/bsp/buildroot/package/aer-inject/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_AER_INJECT + bool "aer-inject" + help + aer-inject allows to inject PCIE AER errors on the software + level into a running Linux kernel. This is intended for + validation of the PCIE driver error recovery handler and + PCIE AER core handler. + + Requires a new Linux kernel with PCIE AER error injection + patches. + + https://git.kernel.org/cgit/linux/kernel/git/gong.chen/aer-inject.git/ diff --git a/bsp/buildroot/package/aer-inject/aer-inject.mk b/bsp/buildroot/package/aer-inject/aer-inject.mk new file mode 100644 index 00000000..69189b16 --- /dev/null +++ b/bsp/buildroot/package/aer-inject/aer-inject.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# aer-inject +# +################################################################################ + +AER_INJECT_VERSION = 9bd5e2c7886fca72f139cd8402488a2235957d41 +AER_INJECT_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/gong.chen/aer-inject.git +AER_INJECT_SITE_METHOD = git +AER_INJECT_LICENSE = GPLv2 +AER_INJECT_LICENSE_FILES = README +AER_INJECT_DEPENDENCIES = host-flex host-bison + +define AER_INJECT_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) +endef + +define AER_INJECT_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \ + DESTDIR=$(TARGET_DIR) PREFIX=/usr/bin install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/aiccu/Config.in b/bsp/buildroot/package/aiccu/Config.in index 2bfd649d..b346328d 100644 --- a/bsp/buildroot/package/aiccu/Config.in +++ b/bsp/buildroot/package/aiccu/Config.in @@ -3,8 +3,6 @@ config BR2_PACKAGE_AICCU depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII select BR2_PACKAGE_GNUTLS help SixXS Automatic IPv6 Connectivity Client Utility @@ -23,4 +21,3 @@ config BR2_PACKAGE_AICCU comment "aiccu needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !(BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS) - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/aircrack-ng/0004-fix-musl-build.patch b/bsp/buildroot/package/aircrack-ng/0004-fix-musl-build.patch deleted file mode 100644 index cc093d38..00000000 --- a/bsp/buildroot/package/aircrack-ng/0004-fix-musl-build.patch +++ /dev/null @@ -1,53 +0,0 @@ -From da6e87670ad4639371da056f9e36201a9236dfa2 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Wed, 29 Jul 2015 19:38:46 +0200 -Subject: [PATCH] fix musl build - -aircrack-ng doesn't build with a musl toolchain due to -cdefs.h internal glibc header being used in internal -ethernet.h [1]. - -[1] http://wiki.musl-libc.org/wiki/FAQ - -Signed-off-by: Romain Naour ---- - src/include/ethernet.h | 20 +++++++++++--------- - 1 file changed, 11 insertions(+), 9 deletions(-) - -diff --git a/src/include/ethernet.h b/src/include/ethernet.h -index 72d5e81..e9d9236 100644 ---- a/src/include/ethernet.h -+++ b/src/include/ethernet.h -@@ -389,18 +389,20 @@ void ether_vlan_mtap(struct bpf_if *, struct mbuf *, - - #else /* _KERNEL */ - --#include -- - /* - * Ethernet address conversion/parsing routines. - */ --__BEGIN_DECLS --struct ether_addr *ether_aton(const char *); --int ether_hostton(const char *, struct ether_addr *); --int ether_line(const char *, struct ether_addr *, char *); --char *ether_ntoa(const struct ether_addr *); --int ether_ntohost(char *, const struct ether_addr *); --__END_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif -+ struct ether_addr *ether_aton(const char *); -+ int ether_hostton(const char *, struct ether_addr *); -+ int ether_line(const char *, struct ether_addr *, char *); -+ char *ether_ntoa(const struct ether_addr *); -+ int ether_ntohost(char *, const struct ether_addr *); -+#ifdef __cplusplus -+} -+#endif - - #endif /* !_KERNEL */ - --- -2.4.3 - diff --git a/bsp/buildroot/package/aircrack-ng/Config.in b/bsp/buildroot/package/aircrack-ng/Config.in index bb100b88..00ce4e48 100644 --- a/bsp/buildroot/package/aircrack-ng/Config.in +++ b/bsp/buildroot/package/aircrack-ng/Config.in @@ -10,6 +10,9 @@ config BR2_PACKAGE_AIRCRACK_NG help A set of tools for auditing wireless networks + For complete functionality, also select ethtool, iw, rfkill, + util-linux utilities, and wireless_tools. + http://www.aircrack-ng.org/ comment "aircrack-ng needs a toolchain w/ threads" diff --git a/bsp/buildroot/package/alljoyn-base/Config.in b/bsp/buildroot/package/alljoyn-base/Config.in new file mode 100644 index 00000000..8556d66c --- /dev/null +++ b/bsp/buildroot/package/alljoyn-base/Config.in @@ -0,0 +1,51 @@ +config BR2_PACKAGE_ALLJOYN_BASE + bool "alljoyn-base" + depends on BR2_USE_MMU # alljoyn + depends on !BR2_STATIC_LIBS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_WCHAR # alljoyn + depends on BR2_TOOLCHAIN_HAS_SYNC_4 # alljoyn + select BR2_PACKAGE_ALLJOYN + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL if \ + !BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION && \ + !BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING + help + + AllJoyn Base Services are common services used by many + devices, providing a set of interfaces for different devices + to interact and interoperate with one another. + + https://allseenalliance.org + +if BR2_PACKAGE_ALLJOYN_BASE + +config BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL + bool "controlpanel" + help + Enable AllJoyn Control Panel base service which allows + devices to advertise a virtual control panel to be + controlled remotely. + +config BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION + bool "notification" + help + Enable AllJoyn Notification base service which allows + text-based notifications to be sent and received by devices + on the AllJoyn network. Also supports audio and images via + URLs. + +config BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING + bool "onboarding" + help + Enable AllJoyn Onboarding base service which provides a + consistent way to bring a new device onto the Wi-Fi network. + +endif # BR2_PACKAGE_ALLJOYN_BASE + +comment "alljoyn-base needs a toolchain w/ C++, threads, wchar, dynamic library" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_USE_WCHAR || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/alljoyn-base/alljoyn-base.hash b/bsp/buildroot/package/alljoyn-base/alljoyn-base.hash new file mode 100644 index 00000000..dbec3a35 --- /dev/null +++ b/bsp/buildroot/package/alljoyn-base/alljoyn-base.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 742f724b3a06c8fc4039591dba24871755728221ca5dc4afb78ebd9a7e3beb44 alljoyn-base-16.04.00.tar.gz diff --git a/bsp/buildroot/package/alljoyn-base/alljoyn-base.mk b/bsp/buildroot/package/alljoyn-base/alljoyn-base.mk new file mode 100644 index 00000000..bb073771 --- /dev/null +++ b/bsp/buildroot/package/alljoyn-base/alljoyn-base.mk @@ -0,0 +1,92 @@ +################################################################################ +# +# alljoyn-base +# +################################################################################ + +ALLJOYN_BASE_REV = 16.04 +ALLJOYN_BASE_VERSION = $(ALLJOYN_BASE_REV).00 +ALLJOYN_BASE_SOURCE = alljoyn-base-$(ALLJOYN_BASE_VERSION).tar.gz +ALLJOYN_BASE_SITE = \ + https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_BASE_REV) +# See https://allseenalliance.org/alliance/ip-policy +ALLJOYN_BASE_LICENSE = ISC + +ALLJOYN_BASE_DEPENDENCIES = host-scons alljoyn openssl +ALLJOYN_BASE_INSTALL_STAGING = YES + +ALLJOYN_BASE_CRYPTO = openssl + +# AllJoyn can be compiled in debug or release mode. By default, +# AllJoyn is built in debug mode. +ALLJOYN_BASE_VARIANT = release + +ALLJOYN_BASE_BINDINGS = c,cpp + +# By setting openwrt for OS and CPU, AllJoyn cross-compilation can be finely +# tuned through TARGET_xxx options. All TARGET_xxx variables must be defined +# otherwise compilation will fail. +# CROSS_COMPILE option should not be used as it works only for linux/ARM. +ALLJOYN_BASE_OS = openwrt +ALLJOYN_BASE_CPU = openwrt + +# AllJoyn install everything in this relative path +ALLJOYN_BASE_DISTDIR = \ + build/$(ALLJOYN_OS)/$(ALLJOYN_CPU)/$(ALLJOYN_VARIANT)/dist + +ALLJOYN_BASE_SCONS_OPTS = \ + -j$(PARALLEL_JOBS) \ + V=1 \ + OS=$(ALLJOYN_BASE_OS) \ + CPU=$(ALLJOYN_BASE_CPU) \ + VARIANT=$(ALLJOYN_BASE_VARIANT) \ + BR=off \ + CRYPTO=$(ALLJOYN_BASE_CRYPTO) \ + BINDINGS=$(ALLJOYN_BASE_BINDINGS) \ + ALLJOYN_DISTDIR="$(STAGING_DIR)"\ + TARGET_CFLAGS="$(TARGET_CFLAGS)" \ + TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \ + TARGET_LINKFLAGS="$(TARGET_LINKFLAGS)" \ + TARGET_CC="$(TARGET_CC)" \ + TARGET_CXX="$(TARGET_CXX)" \ + TARGET_LD="$(TARGET_LD)" \ + TARGET_LINK="$(TARGET_CXX)" \ + TARGET_AR="$(TARGET_AR)" \ + TARGET_RANLIB="$(TARGET_RANLIB)" \ + TARGET_PATH="$(BR_PATH)" + +ifeq ($(BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL), y) +ALLJOYN_BASE_TARGETS += controlpanel +endif + +ifeq ($(BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION), y) +ALLJOYN_BASE_TARGETS += notification +endif + +ifeq ($(BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING), y) +ALLJOYN_BASE_TARGETS += onboarding +endif + +define ALLJOYN_BASE_BUILD_CMDS + $(foreach target,$(ALLJOYN_BASE_TARGETS),\ + cd $(@D)/$(target); $(SCONS) $(ALLJOYN_BASE_SCONS_OPTS) + ) +endef + +define ALLJOYN_BASE_INSTALL_STAGING_CMDS + $(foreach target,$(ALLJOYN_BASE_TARGETS),\ + cp -a $(@D)/$(target)/$(ALLJOYN_BASE_DISTDIR)/*/lib/lib* \ + $(STAGING_DIR)/usr/lib/ + cp -a $(@D)/$(target)/$(ALLJOYN_BASE_DISTDIR)/*/inc/* \ + $(STAGING_DIR)/usr/include/ + ) +endef + +define ALLJOYN_BASE_INSTALL_TARGET_CMDS + $(foreach target,$(ALLJOYN_BASE_TARGETS),\ + cp -a $(@D)/$(target)/$(ALLJOYN_BASE_DISTDIR)/*/lib/lib* \ + $(TARGET_DIR)/usr/lib/ + ) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/alljoyn-tcl-base/Config.in b/bsp/buildroot/package/alljoyn-tcl-base/Config.in new file mode 100644 index 00000000..ebc3370a --- /dev/null +++ b/bsp/buildroot/package/alljoyn-tcl-base/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_ALLJOYN_TCL_BASE + bool "alljoyn-tcl-base" + depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_THREADS # alljoyn-tcl + select BR2_PACKAGE_ALLJOYN_TCL + help + AllJoyn Base Services are common services used by many + devices, providing a set of interfaces for different devices + to interact and interoperate with one another. + + Thin Client Library is designed to bring the benefits of the + AllJoyn distributed programming environment to embedded + systems. + + https://allseenalliance.org + +comment "alljoyn-tcl-base needs a toolchain w/ threads and dynamic library" + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.hash b/bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.hash new file mode 100644 index 00000000..882839d7 --- /dev/null +++ b/bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 741f7a71929ccd6a66bf75d2b03affc62411e229b70bb89399be9b1b2ce40629 alljoyn-base_tcl-16.04.00.tar.gz diff --git a/bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.mk b/bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.mk new file mode 100644 index 00000000..461cd097 --- /dev/null +++ b/bsp/buildroot/package/alljoyn-tcl-base/alljoyn-tcl-base.mk @@ -0,0 +1,45 @@ +################################################################################ +# +# alljoyn-tcl-base +# +################################################################################ + +ALLJOYN_TCL_BASE_REV = 16.04 +ALLJOYN_TCL_BASE_VERSION = $(ALLJOYN_TCL_BASE_REV).00 +ALLJOYN_TCL_BASE_SOURCE = alljoyn-base_tcl-$(ALLJOYN_TCL_BASE_VERSION).tar.gz +ALLJOYN_TCL_BASE_SITE = \ + https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_TCL_BASE_REV) +# See https://allseenalliance.org/alliance/ip-policy +ALLJOYN_TCL_BASE_LICENSE = ISC + +ALLJOYN_TCL_BASE_DEPENDENCIES = host-scons alljoyn-tcl +ALLJOYN_TCL_BASE_INSTALL_STAGING = YES + +# AllJoyn Base Thin Core can be compiled in debug or release mode. By default, +# AllJoyn Base Thin Core is built in debug mode. +ALLJOYN_TCL_BASE_VARIANT = release + +ALLJOYN_TCL_BASE_SCONS_OPTS = \ + -j$(PARALLEL_JOBS) \ + V=1 \ + VARIANT=$(ALLJOYN_TCL_BASE_VARIANT) \ + CC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" \ + AJTCL_DIST=$(STAGING_DIR) \ + WS=off + +define ALLJOYN_TCL_BASE_BUILD_CMDS + cd $(@D); $(SCONS) $(ALLJOYN_TCL_BASE_SCONS_OPTS) +endef + +define ALLJOYN_TCL_BASE_INSTALL_STAGING_CMDS + cp -a $(@D)/dist/lib/lib* $(STAGING_DIR)/usr/lib/ + cp -a $(@D)/dist/include/* $(STAGING_DIR)/usr/include/ +endef + +# Only install AllJoyn Base Thin Core dynamic libraries into target directory +define ALLJOYN_TCL_BASE_INSTALL_TARGET_CMDS + cp -a $(@D)/dist/lib/lib*.so* $(TARGET_DIR)/usr/lib/ +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/alljoyn-tcl/Config.in b/bsp/buildroot/package/alljoyn-tcl/Config.in new file mode 100644 index 00000000..fe54af08 --- /dev/null +++ b/bsp/buildroot/package/alljoyn-tcl/Config.in @@ -0,0 +1,20 @@ +config BR2_PACKAGE_ALLJOYN_TCL + bool "alljoyn-tcl" + depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + The AllJoyn framework defines a common way for devices and + apps to communicate with one another regardless of brands, + categories, transports, and OSes. Developers write + applications that discover nearby devices, and communicate + with each other directly and through the cloud, unleashing + new possibilities in the Internet of Things. + + AllJoyn Thin Core Library (AJTCL) is designed to bring the + benefits of the AllJoyn distributed programming environment + to embedded systems. + + https://allseenalliance.org + +comment "alljoyn-tcl needs a toolchain w/ threads and dynamic library" + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.hash b/bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.hash new file mode 100644 index 00000000..a1cdf162 --- /dev/null +++ b/bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 ce6a05a67ff405ba6274e85fe750d98f40cbe7ab2c968218c7741a10bd86e21a ajtcl-16.04.00-src.tar.gz diff --git a/bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.mk b/bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.mk new file mode 100644 index 00000000..a5c7e4ec --- /dev/null +++ b/bsp/buildroot/package/alljoyn-tcl/alljoyn-tcl.mk @@ -0,0 +1,43 @@ +################################################################################ +# +# alljoyn-tcl +# +################################################################################ + +ALLJOYN_TCL_REV = 16.04 +ALLJOYN_TCL_VERSION = $(ALLJOYN_TCL_REV).00 +ALLJOYN_TCL_SOURCE = ajtcl-$(ALLJOYN_TCL_VERSION)-src.tar.gz +ALLJOYN_TCL_SITE = \ + https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_TCL_REV) +# See https://allseenalliance.org/alliance/ip-policy +ALLJOYN_TCL_LICENSE = ISC + +ALLJOYN_TCL_DEPENDENCIES = host-scons +ALLJOYN_TCL_INSTALL_STAGING = YES + +# AllJoyn Thin Core can be compiled in debug or release mode. By default, +# AllJoyn Thin Core is built in debug mode. +ALLJOYN_TCL_VARIANT = release + +ALLJOYN_TCL_SCONS_OPTS = \ + -j$(PARALLEL_JOBS) \ + V=1 \ + VARIANT=$(ALLJOYN_TCL_VARIANT) \ + CC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" + +define ALLJOYN_TCL_BUILD_CMDS + cd $(@D); $(SCONS) $(ALLJOYN_TCL_SCONS_OPTS) +endef + +define ALLJOYN_TCL_INSTALL_STAGING_CMDS + cp -a $(@D)/dist/lib/lib* $(STAGING_DIR)/usr/lib/ + cp -a $(@D)/dist/include/* $(STAGING_DIR)/usr/include/ +endef + +# Only install AllJoyn Thin Core dynamic libraries into target directory +define ALLJOYN_TCL_INSTALL_TARGET_CMDS + cp -a $(@D)/dist/lib/lib*.so* $(TARGET_DIR)/usr/lib/ +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/alljoyn/0001-UARTStreamLinux-fix-build-on-sparc.patch b/bsp/buildroot/package/alljoyn/0001-UARTStreamLinux-fix-build-on-sparc.patch new file mode 100644 index 00000000..efca67fe --- /dev/null +++ b/bsp/buildroot/package/alljoyn/0001-UARTStreamLinux-fix-build-on-sparc.patch @@ -0,0 +1,56 @@ +From b8e35cf95184ff18bcf923f900439f56c93609db Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 16 Jul 2016 15:23:41 +0200 +Subject: [PATCH] UARTStreamLinux: fix build on sparc + +Some of the serial port highest speed are not defined on SPARC, so +alljoyn should not use them, so we add a patch to fix that. + +From: +https://git.buildroot.org/buildroot/commit/?id=c5e96d8935016456bea342db170ae6a139a8470f + +Fixes: +http://autobuild.buildroot.net/results/e5b/e5b30b5e0d86b44b97410d434b771e1fb7b18de0 + +Signed-off-by: Romain Naour +--- + common/os/posix/UARTStreamLinux.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/common/os/posix/UARTStreamLinux.cc b/common/os/posix/UARTStreamLinux.cc +index c193b70..ae81d9d 100644 +--- a/common/os/posix/UARTStreamLinux.cc ++++ b/common/os/posix/UARTStreamLinux.cc +@@ -111,21 +111,29 @@ QStatus UART(const qcc::String& devName, uint32_t baud, uint8_t databits, const + speed = B2000000; + break; + ++#ifdef B2500000 + case 2500000: + speed = B2500000; + break; ++#endif + ++#ifdef B3000000 + case 3000000: + speed = B3000000; + break; ++#endif + ++#ifdef B3500000 + case 3500000: + speed = B3500000; + break; ++#endif + ++#ifdef B4000000 + case 4000000: + speed = B4000000; + break; ++#endif + + default: + QCC_LogError(ER_BAD_ARG_2, ("Invalid baud %d", baud)); +-- +2.5.5 + diff --git a/bsp/buildroot/package/alljoyn/Config.in b/bsp/buildroot/package/alljoyn/Config.in new file mode 100644 index 00000000..6eb417da --- /dev/null +++ b/bsp/buildroot/package/alljoyn/Config.in @@ -0,0 +1,25 @@ +config BR2_PACKAGE_ALLJOYN + bool "alljoyn" + depends on BR2_USE_MMU # fork() + depends on !BR2_STATIC_LIBS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_WCHAR + select BR2_PACKAGE_LIBCAP + select BR2_PACKAGE_OPENSSL + help + The AllJoyn framework defines a common way for devices and + apps to communicate with one another regardless of brands, + categories, transports, and OSes. Developers write + applications that discover nearby devices, and communicate + with each other directly and through the cloud, unleashing + new possibilities in the Internet of Things. + + https://allseenalliance.org + +comment "alljoyn needs a toolchain w/ C++, threads, wchar and dynamic library" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_USE_WCHAR || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/alljoyn/alljoyn.hash b/bsp/buildroot/package/alljoyn/alljoyn.hash new file mode 100644 index 00000000..e18d66e7 --- /dev/null +++ b/bsp/buildroot/package/alljoyn/alljoyn.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 41bd424d376d22dc2b48cc035400bd63595d19467eeb6a7ae81429f5a43ed2e2 alljoyn-16.04.00-src.tar.gz diff --git a/bsp/buildroot/package/alljoyn/alljoyn.mk b/bsp/buildroot/package/alljoyn/alljoyn.mk new file mode 100644 index 00000000..71262587 --- /dev/null +++ b/bsp/buildroot/package/alljoyn/alljoyn.mk @@ -0,0 +1,69 @@ +################################################################################ +# +# alljoyn +# +################################################################################ + +ALLJOYN_REV = 16.04 +ALLJOYN_VERSION = $(ALLJOYN_REV).00 +ALLJOYN_SOURCE = alljoyn-$(ALLJOYN_VERSION)-src.tar.gz +ALLJOYN_SITE = https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_REV) +# See https://allseenalliance.org/alliance/ip-policy +ALLJOYN_LICENSE = ISC + +ALLJOYN_DEPENDENCIES = host-scons libcap openssl +ALLJOYN_INSTALL_STAGING = YES + +ALLJOYN_CRYPTO = openssl + +# AllJoyn can be compiled in debug or release mode. By default, AllJoyn is built +# in debug mode. +ALLJOYN_VARIANT = release + +ALLJOYN_BINDINGS = c,cpp + +# By setting openwrt for OS and CPU, AllJoyn cross-compilation can be finely +# tuned through TARGET_xxx options. All TARGET_xxx variables must be defined +# otherwise compilation will fail. +# CROSS_COMPILE option should not be used as it works only for linux/ARM. +ALLJOYN_OS = openwrt +ALLJOYN_CPU = openwrt + +# AllJoyn installs everything in this relative path +ALLJOYN_DISTDIR = build/$(ALLJOYN_OS)/$(ALLJOYN_CPU)/$(ALLJOYN_VARIANT)/dist/ + +ALLJOYN_SCONS_OPTS = \ + -j$(PARALLEL_JOBS) \ + V=1 \ + OS=$(ALLJOYN_OS) \ + CPU=$(ALLJOYN_CPU) \ + VARIANT=$(ALLJOYN_VARIANT) \ + BR=off \ + CRYPTO=$(ALLJOYN_CRYPTO) \ + BINDINGS=$(ALLJOYN_BINDINGS) \ + TARGET_CFLAGS="$(TARGET_CFLAGS)" \ + TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \ + TARGET_LINKFLAGS="$(TARGET_LINKFLAGS)" \ + TARGET_CC="$(TARGET_CC)" \ + TARGET_CXX="$(TARGET_CXX)" \ + TARGET_LD="$(TARGET_LD)" \ + TARGET_LINK="$(TARGET_CXX)" \ + TARGET_AR="$(TARGET_AR)" \ + TARGET_RANLIB="$(TARGET_RANLIB)" \ + TARGET_PATH="$(BR_PATH)" + +define ALLJOYN_BUILD_CMDS + cd $(@D); $(SCONS) $(ALLJOYN_SCONS_OPTS) +endef + +define ALLJOYN_INSTALL_STAGING_CMDS + cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/lib/lib* $(STAGING_DIR)/usr/lib/ + cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/inc/* $(STAGING_DIR)/usr/include/ +endef + +# Only install alljoyn dynamic libraries into target directory +define ALLJOYN_INSTALL_TARGET_CMDS + cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/lib/lib*.so* $(TARGET_DIR)/usr/lib/ +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/alsa-lib/0001-add-missing-include.patch b/bsp/buildroot/package/alsa-lib/0001-add-missing-include.patch deleted file mode 100644 index ac7dfa95..00000000 --- a/bsp/buildroot/package/alsa-lib/0001-add-missing-include.patch +++ /dev/null @@ -1,29 +0,0 @@ -Subject: [PATCH] topology: Add missing include sys/stat.h - -Necessary for proper definitions of S_IRUSR & co. Otherwise it -results in compile errors with old glibc: - parser.c: In function 'snd_tplg_build_file': - parser.c:262: error: 'S_IRUSR' undeclared (first use in this function) - parser.c:262: error: (Each undeclared identifier is reported only once - parser.c:262: error: for each function it appears in.) - -Signed-off-by: Takashi Iwai -Signed-off-by: Gustavo Zacarias ---- -Status: upstream - -diff --git a/src/topology/parser.c b/src/topology/parser.c -index 80a0ae0..18bb9c7 100644 ---- a/src/topology/parser.c -+++ b/src/topology/parser.c -@@ -16,6 +16,7 @@ - Liam Girdwood - */ - -+#include - #include "list.h" - #include "tplg_local.h" - --- -1.7.11.7 - diff --git a/bsp/buildroot/package/alsa-lib/0005-musl-pcm-h.patch b/bsp/buildroot/package/alsa-lib/0001-musl-pcm-h.patch similarity index 100% rename from bsp/buildroot/package/alsa-lib/0005-musl-pcm-h.patch rename to bsp/buildroot/package/alsa-lib/0001-musl-pcm-h.patch diff --git a/bsp/buildroot/package/alsa-lib/alsa-lib.hash b/bsp/buildroot/package/alsa-lib/alsa-lib.hash index 506416d2..47542e5f 100644 --- a/bsp/buildroot/package/alsa-lib/alsa-lib.hash +++ b/bsp/buildroot/package/alsa-lib/alsa-lib.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 dfde65d11e82b68f82e562ab6228c1fb7c78854345d3c57e2c68a9dd3dae1f15 alsa-lib-1.1.0.tar.bz2 +sha256 d38dacd9892b06b8bff04923c380b38fb2e379ee5538935ff37e45b395d861d6 alsa-lib-1.1.2.tar.bz2 diff --git a/bsp/buildroot/package/alsa-lib/alsa-lib.mk b/bsp/buildroot/package/alsa-lib/alsa-lib.mk index 2075d419..a86d6bbe 100644 --- a/bsp/buildroot/package/alsa-lib/alsa-lib.mk +++ b/bsp/buildroot/package/alsa-lib/alsa-lib.mk @@ -4,11 +4,11 @@ # ################################################################################ -ALSA_LIB_VERSION = 1.1.0 +ALSA_LIB_VERSION = 1.1.2 ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2 ALSA_LIB_SITE = ftp://ftp.alsa-project.org/pub/lib -ALSA_LIB_LICENSE = LGPLv2.1+ -ALSA_LIB_LICENSE_FILES = COPYING +ALSA_LIB_LICENSE = LGPLv2.1+ (library), GPLv2+ (aserver) +ALSA_LIB_LICENSE_FILES = COPYING aserver/COPYING ALSA_LIB_INSTALL_STAGING = YES ALSA_LIB_CFLAGS = $(TARGET_CFLAGS) ALSA_LIB_AUTORECONF = YES @@ -62,10 +62,6 @@ else ALSA_LIB_CONF_OPTS += --disable-python endif -ifeq ($(BR2_SOFT_FLOAT),y) -ALSA_LIB_CONF_OPTS += --with-softfloat -endif - ifeq ($(BR2_bfin),y) # blackfin external toolchains don't have versionsort. Fake it using alphasort # instead diff --git a/bsp/buildroot/package/alsa-utils/0001-bat-Avoid-local-signal.h-file.patch b/bsp/buildroot/package/alsa-utils/0001-bat-Avoid-local-signal.h-file.patch deleted file mode 100644 index 250f77db..00000000 --- a/bsp/buildroot/package/alsa-utils/0001-bat-Avoid-local-signal.h-file.patch +++ /dev/null @@ -1,143 +0,0 @@ -bat: Avoid local signal.h file - -Patch backported from upstream: - - http://git.alsa-project.org/?p=alsa-utils.git;a=commit;h=3bf8e79c3bfee3ca14277aad3d9c406dfc053bbf - -Signed-off-by: Vicente Olivert Riera - -From 3bf8e79c3bfee3ca14277aad3d9c406dfc053bbf Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Mon, 9 Nov 2015 14:04:11 +0100 -Subject: [PATCH 1/2] bat: Avoid local signal.h file - -The local header file named as "signal.h" causes mysterious compile -error when built with an old glibc. - signal.h:27: error: conflicting types for 'sin_generator_init' - ./signal.h:27: error: previous declaration of 'sin_generator_init' was here - signal.h:28: error: conflicting types for 'sin_generator_next_sample' - ./signal.h:28: error: previous declaration of 'sin_generator_next_sample' was here - .... - -This turned out to be the conflict of signal.h; namely, pthread.h that -is included before our local signal.h also includes "pthread.h". -Since our local "signal.h" has a higher priority, it gets loaded -instead of the expected pthread's one. Then we load it again, and it -screws up. - -Although it's basically a bug of pthread, it's anyway not good to have -a header file conflicting with the standard header file. So, let's -name it more explicitly as specific to BAT, bat-signal.h, for avoiding -such a conflict. - -Signed-off-by: Takashi Iwai ---- - bat/Makefile.am | 2 +- - bat/alsa.c | 2 +- - bat/bat-signal.h | 30 ++++++++++++++++++++++++++++++ - bat/signal.h | 30 ------------------------------ - 4 files changed, 32 insertions(+), 32 deletions(-) - create mode 100644 bat/bat-signal.h - delete mode 100644 bat/signal.h - -diff --git a/bat/Makefile.am b/bat/Makefile.am -index 842ae6b..f0dc5ab 100644 ---- a/bat/Makefile.am -+++ b/bat/Makefile.am -@@ -13,7 +13,7 @@ bat_SOURCES = \ - - noinst_HEADERS = \ - common.h \ -- signal.h \ -+ bat-signal.h \ - alsa.h \ - convert.h \ - analyze.h -diff --git a/bat/alsa.c b/bat/alsa.c -index 582c604..d31a633 100644 ---- a/bat/alsa.c -+++ b/bat/alsa.c -@@ -27,7 +27,7 @@ - - #include "common.h" - #include "alsa.h" --#include "signal.h" -+#include "bat-signal.h" - - struct pcm_container { - snd_pcm_t *handle; -diff --git a/bat/bat-signal.h b/bat/bat-signal.h -new file mode 100644 -index 0000000..a295517 ---- /dev/null -+++ b/bat/bat-signal.h -@@ -0,0 +1,30 @@ -+/* -+ * Copyright (C) 2015 Caleb Crome -+ * Copyright (C) 2013-2015 Intel Corporation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License 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. -+ * -+ */ -+ -+/* -+ * Here's a generic sine wave generator that will work indefinitely -+ * for any frequency. -+ * -+ * Note: the state & phasor are stored as doubles (and updated as -+ * doubles) because after a million samples the magnitude drifts a -+ * bit. If we really need floats, it can be done with periodic -+ * renormalization of the state_real+state_imag magnitudes. -+ */ -+ -+int sin_generator_init(struct sin_generator *, float, float, float); -+float sin_generator_next_sample(struct sin_generator *); -+void sin_generator_vfill(struct sin_generator *, float *, int); -+int generate_sine_wave(struct bat *, int, void *); -diff --git a/bat/signal.h b/bat/signal.h -deleted file mode 100644 -index a295517..0000000 ---- a/bat/signal.h -+++ /dev/null -@@ -1,30 +0,0 @@ --/* -- * Copyright (C) 2015 Caleb Crome -- * Copyright (C) 2013-2015 Intel Corporation -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License 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. -- * -- */ -- --/* -- * Here's a generic sine wave generator that will work indefinitely -- * for any frequency. -- * -- * Note: the state & phasor are stored as doubles (and updated as -- * doubles) because after a million samples the magnitude drifts a -- * bit. If we really need floats, it can be done with periodic -- * renormalization of the state_real+state_imag magnitudes. -- */ -- --int sin_generator_init(struct sin_generator *, float, float, float); --float sin_generator_next_sample(struct sin_generator *); --void sin_generator_vfill(struct sin_generator *, float *, int); --int generate_sine_wave(struct bat *, int, void *); --- -2.4.10 - diff --git a/bsp/buildroot/package/alsa-utils/0002-bat-Don-t-pass-incompatible-function-pointers-to-pth.patch b/bsp/buildroot/package/alsa-utils/0002-bat-Don-t-pass-incompatible-function-pointers-to-pth.patch deleted file mode 100644 index 1aee9aea..00000000 --- a/bsp/buildroot/package/alsa-utils/0002-bat-Don-t-pass-incompatible-function-pointers-to-pth.patch +++ /dev/null @@ -1,61 +0,0 @@ -bat: Don't pass incompatible function pointers to pthread_cleanup_push() - -Patch backported from upstream: - - http://git.alsa-project.org/?p=alsa-utils.git;a=commit;h=ed0cce1b6061aade0077982cb5d22fa68ddffd2f - -Signed-off-by: Vicente Olivert Riera - -From ed0cce1b6061aade0077982cb5d22fa68ddffd2f Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Mon, 9 Nov 2015 14:09:50 +0100 -Subject: [PATCH 2/2] bat: Don't pass incompatible function pointers to - pthread_cleanup_push() - -pthread_cleanup_push() takes a function pointer for void (void *). -Although it may work in most cases, we shouldn't pass an incompatible -function pointer there, as some old gcc complains: - alsa.c:560: warning: initialization from incompatible pointer type - alsa.c:562: warning: initialization from incompatible pointer type - -Signed-off-by: Takashi Iwai ---- - bat/alsa.c | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/bat/alsa.c b/bat/alsa.c -index d31a633..5eaa25b 100644 ---- a/bat/alsa.c -+++ b/bat/alsa.c -@@ -505,6 +505,16 @@ static int read_from_pcm_loop(FILE *fp, int count, - return 0; - } - -+static void pcm_cleanup(void *p) -+{ -+ snd_pcm_close(p); -+} -+ -+static void file_cleanup(void *p) -+{ -+ fclose(p); -+} -+ - /** - * Record - */ -@@ -557,9 +567,9 @@ void *record_alsa(struct bat *bat) - - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); -- pthread_cleanup_push(snd_pcm_close, sndpcm.handle); -+ pthread_cleanup_push(pcm_cleanup, sndpcm.handle); - pthread_cleanup_push(free, sndpcm.buffer); -- pthread_cleanup_push(fclose, fp); -+ pthread_cleanup_push(file_cleanup, fp); - - err = write_wav_header(fp, &wav, bat); - if (err != 0) { --- -2.4.10 - diff --git a/bsp/buildroot/package/alsa-utils/alsa-utils.hash b/bsp/buildroot/package/alsa-utils/alsa-utils.hash index e6530ebd..c2c089fc 100644 --- a/bsp/buildroot/package/alsa-utils/alsa-utils.hash +++ b/bsp/buildroot/package/alsa-utils/alsa-utils.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 3b1c3135b76e14532d3dd23fb15759ddd7daf9ffbc183f7a9a0a3a86374748f1 alsa-utils-1.1.0.tar.bz2 +sha256 7af603c0877d1251599d65b4fbc372e63a54371b888f5c26c6a86ac1d0519071 alsa-utils-1.1.2.tar.bz2 diff --git a/bsp/buildroot/package/alsa-utils/alsa-utils.mk b/bsp/buildroot/package/alsa-utils/alsa-utils.mk index b5dc698e..fc2ac16f 100644 --- a/bsp/buildroot/package/alsa-utils/alsa-utils.mk +++ b/bsp/buildroot/package/alsa-utils/alsa-utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -ALSA_UTILS_VERSION = 1.1.0 +ALSA_UTILS_VERSION = 1.1.2 ALSA_UTILS_SOURCE = alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2 ALSA_UTILS_SITE = ftp://ftp.alsa-project.org/pub/utils ALSA_UTILS_LICENSE = GPLv2 @@ -55,7 +55,7 @@ ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSATPLG) += usr/bin/alsatplg ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_AMIDI) += usr/bin/amidi ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_AMIXER) += usr/bin/amixer ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_APLAY) += usr/bin/aplay usr/bin/arecord -ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_BAT) += usr/bin/bat +ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_BAT) += usr/bin/alsabat ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_IECSET) += usr/bin/iecset ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ACONNECT) += usr/bin/aconnect ALSA_UTILS_TARGETS_$(BR2_PACKAGE_ALSA_UTILS_ALSAUCM) += usr/bin/alsaucm diff --git a/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.hash b/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.hash new file mode 100644 index 00000000..36671b48 --- /dev/null +++ b/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 2a902f825ccc1885c5dccd83e1ccee104aa30e601c9964a24f49459f76f674b9 am335x-pru-package-5f374ad57cc195f28bf5e585c3d446aba6ee7096.tar.gz diff --git a/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.mk b/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.mk index a4ff201c..a97e8a49 100644 --- a/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.mk +++ b/bsp/buildroot/package/am335x-pru-package/am335x-pru-package.mk @@ -4,7 +4,7 @@ # ################################################################################ -AM335X_PRU_PACKAGE_VERSION = 506e074859891a2b350eb4f5fcb451c4961410ea +AM335X_PRU_PACKAGE_VERSION = 5f374ad57cc195f28bf5e585c3d446aba6ee7096 AM335X_PRU_PACKAGE_SITE = $(call github,beagleboard,am335x_pru_package,$(AM335X_PRU_PACKAGE_VERSION)) AM335X_PRU_PACKAGE_LICENSE = BSD-3c AM335X_PRU_PACKAGE_LICENSE_FILES = pru_sw/utils/LICENCE.txt diff --git a/bsp/buildroot/package/am33x-cm3/Config.in b/bsp/buildroot/package/am33x-cm3/Config.in index 060d0efc..d33dfaa6 100644 --- a/bsp/buildroot/package/am33x-cm3/Config.in +++ b/bsp/buildroot/package/am33x-cm3/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_AM33X_CM3 bool "am33x-cm3" depends on BR2_arm # only relevant for TI am335x + depends on BR2_BINFMT_ELF # assumes the compiler builds ELF file help Cortex-M3 binary blob for suspend-resume on am335x diff --git a/bsp/buildroot/package/android-tools/0001-Fix-makefiles-for-out-of-tree-build.patch b/bsp/buildroot/package/android-tools/0001-Fix-makefiles-for-out-of-tree-build.patch new file mode 100644 index 00000000..af072362 --- /dev/null +++ b/bsp/buildroot/package/android-tools/0001-Fix-makefiles-for-out-of-tree-build.patch @@ -0,0 +1,162 @@ +[PATCH] Fix makefiles for out-of-tree build + +Signed-off-by: Gary Bisson +--- + debian/makefiles/adb.mk | 10 +++++----- + debian/makefiles/adbd.mk | 33 ++++++++++++++++----------------- + debian/makefiles/fastboot.mk | 17 +++++++++-------- + 3 files changed, 30 insertions(+), 30 deletions(-) + +diff --git a/debian/makefiles/adb.mk b/debian/makefiles/adb.mk +index d9d4feb..654b9f1 100644 +--- a/debian/makefiles/adb.mk ++++ b/debian/makefiles/adb.mk +@@ -1,5 +1,6 @@ + # Makefile for adb; from https://heiher.info/2227.html + ++VPATH+= $(SRCDIR)/core/adb + SRCS+= adb.c + SRCS+= adb_client.c + SRCS+= adb_auth_host.c +@@ -17,7 +18,7 @@ SRCS+= usb_linux.c + SRCS+= usb_vendors.c + SRCS+= utils.c + +-VPATH+= ../libcutils ++VPATH+= $(SRCDIR)/core/libcutils + SRCS+= abort_socket.c + SRCS+= socket_inaddr_any_server.c + SRCS+= socket_local_client.c +@@ -28,7 +29,7 @@ SRCS+= socket_network_client.c + SRCS+= list.c + SRCS+= load_file.c + +-VPATH+= ../libzipfile ++VPATH+= $(SRCDIR)/core/libzipfile + SRCS+= centraldir.c + SRCS+= zipfile.c + +@@ -37,9 +38,8 @@ CPPFLAGS+= -DADB_HOST=1 + CPPFLAGS+= -DHAVE_FORKEXEC=1 + CPPFLAGS+= -DHAVE_SYMLINKS + CPPFLAGS+= -DHAVE_TERMIO_H +-CPPFLAGS+= -I. +-CPPFLAGS+= -I../include +-CPPFLAGS+= -I../../../external/zlib ++CPPFLAGS+= -I$(SRCDIR)/core/adb ++CPPFLAGS+= -I$(SRCDIR)/core/include + + LIBS+= -lc -lpthread -lz -lcrypto + +diff --git a/debian/makefiles/adbd.mk b/debian/makefiles/adbd.mk +index 94d3a90..49dab8c 100644 +--- a/debian/makefiles/adbd.mk ++++ b/debian/makefiles/adbd.mk +@@ -1,18 +1,6 @@ + # Makefile for adbd + +-VPATH+= ../libcutils +-SRCS+= abort_socket.c +-SRCS+= socket_inaddr_any_server.c +-SRCS+= socket_local_client.c +-SRCS+= socket_local_server.c +-SRCS+= socket_loopback_client.c +-SRCS+= socket_loopback_server.c +-SRCS+= socket_network_client.c +-SRCS+= list.c +-SRCS+= load_file.c +-SRCS+= android_reboot.c +- +-#VPATH+= ../adb ++VPATH+= $(SRCDIR)/core/adbd + SRCS+= adb.c + SRCS+= backup_service.c + SRCS+= fdevent.c +@@ -31,7 +19,19 @@ SRCS+= log_service.c + SRCS+= utils.c + SRCS+= base64.c + +-VPATH+= ../libzipfile ++VPATH+= $(SRCDIR)/core/libcutils ++SRCS+= abort_socket.c ++SRCS+= socket_inaddr_any_server.c ++SRCS+= socket_local_client.c ++SRCS+= socket_local_server.c ++SRCS+= socket_loopback_client.c ++SRCS+= socket_loopback_server.c ++SRCS+= socket_network_client.c ++SRCS+= list.c ++SRCS+= load_file.c ++SRCS+= android_reboot.c ++ ++VPATH+= $(SRCDIR)/core/libzipfile + SRCS+= centraldir.c + SRCS+= zipfile.c + +@@ -40,10 +40,9 @@ CPPFLAGS+= -O2 -g -Wall -Wno-unused-parameter + CPPFLAGS+= -DADB_HOST=0 -DHAVE_FORKEXEC=1 -D_XOPEN_SOURCE -D_GNU_SOURCE -DALLOW_ADBD_ROOT=1 + CPPFLAGS+= -DHAVE_SYMLINKS -DBOARD_ALWAYS_INSECURE + CPPFLAGS+= -DHAVE_TERMIO_H +-CPPFLAGS+= -I. +-CPPFLAGS+= -I../include +-CPPFLAGS+= -I../../../external/zlib + CPPFLAGS+= `pkg-config --cflags glib-2.0 gio-2.0` ++CPPFLAGS+= -I$(SRCDIR)/core/adbd ++CPPFLAGS+= -I$(SRCDIR)/core/include + + LIBS+= -lc -lpthread -lz -lcrypto -lcrypt `pkg-config --libs glib-2.0 gio-2.0` + +diff --git a/debian/makefiles/fastboot.mk b/debian/makefiles/fastboot.mk +index 9e8b751..94a069b 100644 +--- a/debian/makefiles/fastboot.mk ++++ b/debian/makefiles/fastboot.mk +@@ -1,5 +1,6 @@ + # Makefile for fastboot; from https://heiher.info/2227.html + ++VPATH+= $(SRCDIR)/core/fastboot + SRCS+= bootimg.c + SRCS+= engine.c + SRCS+= fastboot.c +@@ -7,11 +8,11 @@ SRCS+= protocol.c + SRCS+= usb_linux.c + SRCS+= util_linux.c + +-VPATH+= ../libzipfile ++VPATH+= $(SRCDIR)/core/libzipfile + SRCS+= centraldir.c + SRCS+= zipfile.c + +-VPATH+= ../libsparse ++VPATH+= $(SRCDIR)/core/libsparse + SRCS+= backed_block.c + SRCS+= sparse_crc32.c + SRCS+= sparse.c +@@ -19,7 +20,7 @@ SRCS+= sparse_read.c + SRCS+= sparse_err.c + SRCS+= output_file.c + +-VPATH+= ../../extras/ext4_utils/ ++VPATH+= $(SRCDIR)/extras/ext4_utils/ + SRCS+= make_ext4fs.c + SRCS+= crc16.c + SRCS+= ext4_utils.c +@@ -31,11 +32,11 @@ SRCS+= extent.c + SRCS+= wipe.c + SRCS+= sha1.c + +-CPPFLAGS+= -I. +-CPPFLAGS+= -I../include +-CPPFLAGS+= -I../mkbootimg +-CPPFLAGS+= -I../../extras/ext4_utils/ +-CPPFLAGS+= -I../libsparse/include/ ++CPPFLAGS+= -I$(SRCDIR)/core/fastboot ++CPPFLAGS+= -I$(SRCDIR)/core/include ++CPPFLAGS+= -I$(SRCDIR)/core/mkbootimg ++CPPFLAGS+= -I$(SRCDIR)/extras/ext4_utils/ ++CPPFLAGS+= -I$(SRCDIR)/core/libsparse/include/ + + LIBS+= -lz -lselinux + +-- +2.5.1 + diff --git a/bsp/buildroot/package/android-tools/0002-Fix-adbd-for-non-Ubuntu-systems.patch b/bsp/buildroot/package/android-tools/0002-Fix-adbd-for-non-Ubuntu-systems.patch new file mode 100644 index 00000000..35f6c8a3 --- /dev/null +++ b/bsp/buildroot/package/android-tools/0002-Fix-adbd-for-non-Ubuntu-systems.patch @@ -0,0 +1,264 @@ +[PATCH] Fix adbd for non-Ubuntu systems + +Remove glib/dbus dependencies and partially restore services.c to be +closer to the original source code in order to run on systems without +sudo. + +Signed-off-by: Gary Bisson +--- + core/adbd/adb.c | 1 - + core/adbd/services.c | 160 ++++------------------------------------------- + debian/makefiles/adbd.mk | 4 +- + 3 files changed, 14 insertions(+), 151 deletions(-) + +diff --git a/core/adbd/adb.c b/core/adbd/adb.c +index d90e6b8..7fe6445 100644 +--- a/core/adbd/adb.c ++++ b/core/adbd/adb.c +@@ -1165,7 +1165,6 @@ void build_local_name(char* target_str, size_t target_size, int server_port) + + #if !ADB_HOST + static int should_drop_privileges() { +- return 1; + #ifndef ALLOW_ADBD_ROOT + return 1; + #else /* ALLOW_ADBD_ROOT */ +diff --git a/core/adbd/services.c b/core/adbd/services.c +index 05bd0d0..5adcefe 100644 +--- a/core/adbd/services.c ++++ b/core/adbd/services.c +@@ -20,15 +20,6 @@ + #include + #include + #include +-#include +-#include +- +-#define UNITY_SERVICE "com.canonical.UnityGreeter" +-#define GREETER_OBJ "/" +-#define GREETER_INTERFACE "com.canonical.UnityGreeter" +-#define PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties" +-#define ACTIVE_PROPERTY "IsActive" +-#define UNLOCK_PATH "/userdata/.adb_onlock" + + #include "sysdeps.h" + +@@ -268,11 +259,11 @@ static int create_service_thread(void (*func)(int, void *), void *cookie) + } + + #if !ADB_HOST +-static int create_subprocess(const char *cmd, const char *arg0, const char *arg1, const char *arg2, const char *arg3, const char *arg4, pid_t *pid) ++static int create_subprocess(const char *cmd, const char *arg0, const char *arg1, pid_t *pid) + { + #ifdef HAVE_WIN32_PROC +- D("create_subprocess(cmd=%s, arg0=%s, arg1=%s, arg2=%s, arg3=%, arg4=%ss)\n", cmd, arg0, arg1, arg2, arg3, arg4); +- fprintf(stderr, "error: create_subprocess not implemented on Win32 (%s %s %s %s %s %s)\n", cmd, arg0, arg1, arg2, arg3, arg4); ++ D("create_subprocess(cmd=%s, arg0=%s, arg1=%s)\n", cmd, arg0, arg1); ++ fprintf(stderr, "error: create_subprocess not implemented on Win32 (%s %s %s)\n", cmd, arg0, arg1); + return -1; + #else /* !HAVE_WIN32_PROC */ + char *devname; +@@ -327,7 +318,7 @@ static int create_subprocess(const char *cmd, const char *arg0, const char *arg1 + } else { + D("adb: unable to open %s\n", text); + } +- execl(cmd, cmd, arg0, arg1, arg2, arg3, arg4, NULL); ++ execl(cmd, cmd, arg0, arg1, NULL); + fprintf(stderr, "- exec '%s' failed: %s (%d) -\n", + cmd, strerror(errno), errno); + exit(-1); +@@ -342,7 +333,7 @@ static int create_subprocess(const char *cmd, const char *arg0, const char *arg1 + } + #endif /* !ABD_HOST */ + +-#if ADB_HOST ++#if ADB_HOST || ADBD_NON_ANDROID + #define SHELL_COMMAND "/bin/sh" + #else + #define SHELL_COMMAND "/system/bin/sh" +@@ -380,139 +371,16 @@ static void subproc_waiter_service(int fd, void *cookie) + } + } + +-int is_phone_locked() { +- GError *error = NULL; +- GVariant *variant = NULL; +- GDBusConnection *connection = NULL; +- +- if (g_file_test(UNLOCK_PATH, G_FILE_TEST_EXISTS)) { +- D("unlock path present."); +- return 0; +- } +- +- // check if the environment variable is present, if not we grab it from +- // the phablet user +- if (g_getenv("DBUS_SESSION_BUS_ADDRESS") == NULL) { +- D("DBUS_SESSION_BUS_ADDRESS missing.\n"); +- struct passwd *pw = getpwuid(AID_SHELL); +- char user_id[15]; +- gchar *path = NULL; +- gchar *contents = NULL; +- gchar *session_path = NULL; +- +- snprintf(user_id, sizeof user_id, "%d", pw->pw_uid); +- +- path = g_build_filename("/run", "user", user_id, "dbus-session", NULL); +- +- g_file_get_contents(path, &contents, NULL, &error); +- session_path = g_strstrip(g_strsplit(contents, "DBUS_SESSION_BUS_ADDRESS=", -1)[1]); +- D("Session bus is %s\n", session_path); +- +- // path is not longer used +- g_free(path); +- +- if (error != NULL) { +- g_clear_error(&error); +- D("Couldn't set session bus\n"); +- return 1; +- } +- +- g_setenv("DBUS_SESSION_BUS_ADDRESS", session_path, TRUE); +- g_free(contents); +- } +- +- // set the uid to be able to connect to the phablet user session bus +- setuid(AID_SHELL); +- connection = g_dbus_connection_new_for_address_sync(g_getenv("DBUS_SESSION_BUS_ADDRESS"), +- G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION, +- NULL, +- NULL, +- &error); +- if (connection == NULL) { +- D("session bus not available: %s", error->message); +- g_error_free (error); +- return 1; +- } +- +- variant = g_dbus_connection_call_sync(connection, +- UNITY_SERVICE, +- GREETER_OBJ, +- PROPERTIES_INTERFACE, +- "Get", +- g_variant_new("(ss)", GREETER_INTERFACE, ACTIVE_PROPERTY), +- g_variant_type_new("(v)"), +- G_DBUS_CALL_FLAGS_NONE, +- -1, +- NULL, +- &error); +- +- if (error != NULL) { +- D("Could not get property: %s", error->message); +- g_object_unref(connection); +- g_error_free(error); +- return 1; +- } +- +- if (variant == NULL) { +- D("Failed to get property '%s': %s", "IsActive", error->message); +- g_object_unref(connection); +- g_error_free(error); +- return 1; +- } +- +- variant = g_variant_get_variant(g_variant_get_child_value(variant, 0)); +- +- int active = 1; +- if (!g_variant_get_boolean(variant)) { +- active = 0; +- } +- +- // get back to be root and return the value +- g_object_unref(connection); +- g_variant_unref(variant); +- setuid(0); +- return active; +-} +- + static int create_subproc_thread(const char *name) + { +- if (is_phone_locked() ) { +- fprintf(stderr, "device is locked\n"); +- return -1; +- } +- + stinfo *sti; + adb_thread_t t; + int ret_fd; + pid_t pid; +- +- struct passwd *user = getpwuid(getuid()); +- char *shell; +- char *shellopts = "-c"; +- char *home; +- char *sudo = "/usr/bin/sudo"; +- char useropt[256] = "-u"; +- +- if (user->pw_name) +- strcat(useropt, user->pw_name); +- +- if (user && user->pw_shell) { +- shell = user->pw_shell; +- shellopts = "-cl"; +- } else { +- shell = SHELL_COMMAND; +- } +- +- if (user->pw_dir) +- home = user->pw_dir; +- if(chdir(home) < 0 ) +- return 1; +- + if(name) { +- ret_fd = create_subprocess(sudo, useropt, "-i", shell, shellopts, name, &pid); ++ ret_fd = create_subprocess(SHELL_COMMAND, "-c", name, &pid); + } else { +- shellopts = "-l"; +- ret_fd = create_subprocess(sudo, useropt, "-i", shell, shellopts, 0, &pid); ++ ret_fd = create_subprocess(SHELL_COMMAND, "-", 0, &pid); + } + D("create_subprocess() ret_fd=%d pid=%d\n", ret_fd, pid); + +@@ -585,17 +453,13 @@ int service_to_fd(const char *name) + } else if (!strncmp(name, "log:", 4)) { + ret = create_service_thread(log_service, get_log_file_path(name + 4)); + } else if(!HOST && !strncmp(name, "shell:", 6)) { +- if (!is_phone_locked() ) { +- if(name[6]) { +- ret = create_subproc_thread(name + 6); +- } else { +- ret = create_subproc_thread(0); +- } ++ if(name[6]) { ++ ret = create_subproc_thread(name + 6); ++ } else { ++ ret = create_subproc_thread(0); + } + } else if(!strncmp(name, "sync:", 5)) { +- if (!is_phone_locked() ) { +- ret = create_service_thread(file_sync_service, NULL); +- } ++ ret = create_service_thread(file_sync_service, NULL); + } else if(!strncmp(name, "remount:", 8)) { + ret = create_service_thread(remount_service, NULL); + } else if(!strncmp(name, "reboot:", 7)) { +diff --git a/debian/makefiles/adbd.mk b/debian/makefiles/adbd.mk +index 49dab8c..22c1816 100644 +--- a/debian/makefiles/adbd.mk ++++ b/debian/makefiles/adbd.mk +@@ -40,11 +40,11 @@ CPPFLAGS+= -O2 -g -Wall -Wno-unused-parameter + CPPFLAGS+= -DADB_HOST=0 -DHAVE_FORKEXEC=1 -D_XOPEN_SOURCE -D_GNU_SOURCE -DALLOW_ADBD_ROOT=1 + CPPFLAGS+= -DHAVE_SYMLINKS -DBOARD_ALWAYS_INSECURE + CPPFLAGS+= -DHAVE_TERMIO_H +-CPPFLAGS+= `pkg-config --cflags glib-2.0 gio-2.0` ++CPPFLAGS+= -DADBD_NON_ANDROID + CPPFLAGS+= -I$(SRCDIR)/core/adbd + CPPFLAGS+= -I$(SRCDIR)/core/include + +-LIBS+= -lc -lpthread -lz -lcrypto -lcrypt `pkg-config --libs glib-2.0 gio-2.0` ++LIBS+= -lc -lpthread -lz -lcrypto -lcrypt + + OBJS= $(patsubst %, %.o, $(basename $(SRCS))) + +-- +2.5.1 + diff --git a/bsp/buildroot/package/android-tools/0003-Fix-build-issue-with-uclibc.patch b/bsp/buildroot/package/android-tools/0003-Fix-build-issue-with-uclibc.patch new file mode 100644 index 00000000..95517c30 --- /dev/null +++ b/bsp/buildroot/package/android-tools/0003-Fix-build-issue-with-uclibc.patch @@ -0,0 +1,36 @@ +[PATCH] Fix build issue with uclibc + +Signed-off-by: Gary Bisson +--- + core/adbd/adb_auth_client.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/core/adb/adb_auth_client.c b/core/adb/adb_auth_client.c +index 0b4913e..068d837 100644 +--- a/core/adb/adb_auth_client.c ++++ b/core/adb/adb_auth_client.c +@@ -72,7 +72,7 @@ static void read_keys(const char *file, struct listnode *list) + if (sep) + *sep = '\0'; + +- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); ++ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); + if (ret != sizeof(key->key)) { + D("%s: Invalid base64 data ret=%d\n", file, ret); + free(key); +diff --git a/core/adbd/adb_auth_client.c b/core/adbd/adb_auth_client.c +index 0b4913e..068d837 100644 +--- a/core/adbd/adb_auth_client.c ++++ b/core/adbd/adb_auth_client.c +@@ -72,7 +72,7 @@ static void read_keys(const char *file, struct listnode *list) + if (sep) + *sep = '\0'; + +- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); ++ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4); + if (ret != sizeof(key->key)) { + D("%s: Invalid base64 data ret=%d\n", file, ret); + free(key); +-- +2.6.1 + diff --git a/bsp/buildroot/package/android-tools/0004-Fix-build-issue-with-musl.patch b/bsp/buildroot/package/android-tools/0004-Fix-build-issue-with-musl.patch new file mode 100644 index 00000000..964eb87a --- /dev/null +++ b/bsp/buildroot/package/android-tools/0004-Fix-build-issue-with-musl.patch @@ -0,0 +1,54 @@ +[PATCH] Fix build issue with musl + +arpa/nameser.h doesn't use the same macro name to avoid several +inclusions. + +Finally had an issue with framebuffer_service.c since it was missing the +TEMP_FAILURE_RETRY macro. + +Signed-off-by: Gary Bisson +--- + core/adbd/arpa_nameser.h | 12 +++++++++--- + core/adbd/base64.c | 1 - + core/adbd/framebuffer_service.c | 1 + + core/adbd/qemu_pipe.h | 1 - + core/include/cutils/android_reboot.h | 8 ++++++-- + core/include/cutils/bitops.h | 10 ++++++---- + core/include/cutils/partition_utils.h | 8 ++++++-- + extras/ext4_utils/sha1.c | 3 --- + extras/ext4_utils/sha1.h | 13 ++++++------- + 9 files changed, 34 insertions(+), 23 deletions(-) + +diff --git a/core/adbd/arpa_nameser.h b/core/adbd/arpa_nameser.h +index 438dc04..b2a28d6 100644 +--- a/core/adbd/arpa_nameser.h ++++ b/core/adbd/arpa_nameser.h +@@ -52,6 +52,8 @@ + + #ifndef _ARPA_NAMESER_H_ + #define _ARPA_NAMESER_H_ ++#ifndef _ARPA_NAMESER_H ++#define _ARPA_NAMESER_H + + #define BIND_4_COMPAT + +@@ -574,4 +579,5 @@ __END_DECLS + #define XLOG(...) do {} while (0) + #endif + ++#endif /* !_ARPA_NAMESER_H */ + #endif /* !_ARPA_NAMESER_H_ */ +diff --git a/core/adbd/framebuffer_service.c b/core/adbd/framebuffer_service.c +index 20c08d2..48e0241 100644 +--- a/core/adbd/framebuffer_service.c ++++ b/core/adbd/framebuffer_service.c +@@ -26,6 +26,7 @@ + #include "fdevent.h" + #include "adb.h" + ++#include + #include + #include + #include +-- +2.6.1 diff --git a/bsp/buildroot/package/android-tools/0005-fix-static-link-zlib.patch b/bsp/buildroot/package/android-tools/0005-fix-static-link-zlib.patch new file mode 100644 index 00000000..dff4df6e --- /dev/null +++ b/bsp/buildroot/package/android-tools/0005-fix-static-link-zlib.patch @@ -0,0 +1,36 @@ +Fix static linking of adb/adbd + +Both adb and adbd use OpenSSL, which indirectly uses zlib. Since +adb/adbd also use zlib directly -lz is included in the linker flags, +but not at the right position to ensure that static linking works: to +make it possible for OpenSSL symbols to see zlib symbols, -lz must +appear after -lcrypto. + +Signed-off-by: Thomas Petazzoni + +Index: b/debian/makefiles/adb.mk +=================================================================== +--- a/debian/makefiles/adb.mk ++++ b/debian/makefiles/adb.mk +@@ -41,7 +41,7 @@ + CPPFLAGS+= -I$(SRCDIR)/core/adb + CPPFLAGS+= -I$(SRCDIR)/core/include + +-LIBS+= -lc -lpthread -lz -lcrypto ++LIBS+= -lc -lpthread -lcrypto -lz + + OBJS= $(SRCS:.c=.o) + +Index: b/debian/makefiles/adbd.mk +=================================================================== +--- a/debian/makefiles/adbd.mk ++++ b/debian/makefiles/adbd.mk +@@ -44,7 +44,7 @@ + CPPFLAGS+= -I$(SRCDIR)/core/adbd + CPPFLAGS+= -I$(SRCDIR)/core/include + +-LIBS+= -lc -lpthread -lz -lcrypto -lcrypt ++LIBS+= -lc -lpthread -lcrypto -lz -lcrypt + + OBJS= $(patsubst %, %.o, $(basename $(SRCS))) + diff --git a/bsp/buildroot/package/android-tools/0006-fix-big-endian-build.patch b/bsp/buildroot/package/android-tools/0006-fix-big-endian-build.patch new file mode 100644 index 00000000..c35fdcb8 --- /dev/null +++ b/bsp/buildroot/package/android-tools/0006-fix-big-endian-build.patch @@ -0,0 +1,61 @@ +Fix build on big endian systems + +The usb_linux_client.c file defines cpu_to_le16/32 by using the C +library htole16/32 function calls. However, cpu_to_le16/32 are used +when initializing structures, i.e in a context where a function call +is not allowed. + +It works fine on little endian systems because htole16/32 are defined +by the C library as no-ops. But on big-endian systems, they are +actually doing something, which might involve calling a function, +causing build failures. + +To solve this, we simply open-code cpu_to_le16/32 in a way that allows +them to be used when initializing structures. + +Signed-off-by: Thomas Petazzoni + +Index: b/core/adb/usb_linux_client.c +=================================================================== +--- a/core/adb/usb_linux_client.c ++++ b/core/adb/usb_linux_client.c +@@ -34,8 +34,15 @@ + #define MAX_PACKET_SIZE_FS 64 + #define MAX_PACKET_SIZE_HS 512 + +-#define cpu_to_le16(x) htole16(x) +-#define cpu_to_le32(x) htole32(x) ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++# define cpu_to_le16(x) (x) ++# define cpu_to_le32(x) (x) ++#else ++# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)) ++# define cpu_to_le32(x) \ ++ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \ ++ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) ++#endif + + struct usb_handle + { +Index: b/core/adbd/usb_linux_client.c +=================================================================== +--- a/core/adbd/usb_linux_client.c ++++ b/core/adbd/usb_linux_client.c +@@ -34,8 +34,15 @@ + #define MAX_PACKET_SIZE_FS 64 + #define MAX_PACKET_SIZE_HS 512 + +-#define cpu_to_le16(x) htole16(x) +-#define cpu_to_le32(x) htole32(x) ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++# define cpu_to_le16(x) (x) ++# define cpu_to_le32(x) (x) ++#else ++# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)) ++# define cpu_to_le32(x) \ ++ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \ ++ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) ++#endif + + struct usb_handle + { diff --git a/bsp/buildroot/package/android-tools/0007-include-cdefs-h-when-needed.patch b/bsp/buildroot/package/android-tools/0007-include-cdefs-h-when-needed.patch new file mode 100644 index 00000000..da4ee13a --- /dev/null +++ b/bsp/buildroot/package/android-tools/0007-include-cdefs-h-when-needed.patch @@ -0,0 +1,41 @@ +Include cdefs.h wherever it is needed + +cdefs.h is included from within a lot of glibc headers, so it almost +invariably and automagically gets pulled in with glibc. + +However, this might not be the case with other C libraries. musl does +not provide cdefs.h so it does not include it from its own headers +(cdefs.h must be provided separately). + +So we must include it when we are going to use macros it provides. + +Signed-off-by: "Yann E. MORIN" +--- + core/adbd/services.c | 1 + + core/libcutils/android_reboot.c | 1 + + 2 files changed, 2 insertions(+), 0 deletion(-) + +diff --git a/core/adbd/services.c b/core/adbd/services.c +index 20c08d2..48e0241 100644 +--- a/core/adbd/services.c ++++ b/core/adbd/services.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + #include "sysdeps.h" + +diff --git a/core/libcutils/android_reboot.c b/core/libcutils/android_reboot.c +index 20c08d2..48e0241 100644 +--- a/core/libcutils/android_reboot.c ++++ b/core/libcutils/android_reboot.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #include + diff --git a/bsp/buildroot/package/android-tools/Config.in b/bsp/buildroot/package/android-tools/Config.in new file mode 100644 index 00000000..19772ad4 --- /dev/null +++ b/bsp/buildroot/package/android-tools/Config.in @@ -0,0 +1,82 @@ +config BR2_PACKAGE_ANDROID_TOOLS + bool "android-tools" + # Technically, fastboot could build on noMMU systems. But + # since we need at least one of the three sub-options enabled, + # and adb/adbd can't be built on noMMU systems, and fastboot + # has some complicated dependencies, we simply make the whole + # package not available on noMMU platforms. + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_ANDROID_TOOLS_ADBD if \ + !BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT && \ + !BR2_PACKAGE_ANDROID_TOOLS_ADB + help + This package contains the fastboot and adb utilities, that + can be used to interact with target devices using of these + protocols. + +if BR2_PACKAGE_ANDROID_TOOLS + +# We need kernel headers that support the __SANE_USERSPACE_TYPES__ +# mechanism for 64 bits architectures, so that u64 gets defined as +# "unsigned long long" and not "unsigned long". We know that >= 3.16 +# is needed for MIPS64 (kernel commit +# f4b3aa7cd9d32407670e67238c5ee752bb98f481) and >= 3.10 is needed for +# PowerPC64 (kernel commit +# 2c9c6ce0199a4d252e20c531cfdc9d24e39235c0). Without this, the build +# fails with a bad redefinition of u64 (the android-tools fastboot +# code defines it as "unsigned long long"). +config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS + bool + default y if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 && (BR2_powerpc64 || BR2_powerpc64le) + default y if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 && (BR2_mips64 || BR2_mips64el) + default y if !BR2_powerpc64 && !BR2_powerpc64le && !BR2_mips64 && !BR2_mips64el + +config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT + bool "fastboot" + select BR2_PACKAGE_LIBSELINUX + select BR2_PACKAGE_ZLIB + depends on BR2_TOOLCHAIN_HAS_THREADS # libselinux + depends on !BR2_STATIC_LIBS # libselinux + depends on BR2_TOOLCHAIN_USES_GLIBC # libselinux + depends on !BR2_arc # libselinux + depends on BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS + help + This option will build and install the fastboot utility for + the target, which can be used to reflash other target devices + implementing the fastboot protocol. + +comment "fastboot needs a glibc toolchain w/ threads, dynamic library" + depends on !BR2_arc + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_USES_GLIBC + +comment "fastboot needs headers >= 3.10 (PowerPC64), headers >= 3.16 (MIPS64)" + depends on !BR2_arc + depends on !BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS + +config BR2_PACKAGE_ANDROID_TOOLS_ADB + bool "adb" + depends on BR2_USE_MMU # uses fork() + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_ZLIB + help + This option will build and install the adb utility for the + target, which can be used to interact with other target + devices implementing the ADB protocol. + +config BR2_PACKAGE_ANDROID_TOOLS_ADBD + bool "adbd" + depends on BR2_USE_MMU # uses fork() + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_ZLIB + help + This option will build and install the adbd utility for the + target, which can be used to interact with a host machine + implementing the ADB protocol. + +endif + +comment "android-tools needs a toolchain w/ threads" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/android-tools/Config.in.host b/bsp/buildroot/package/android-tools/Config.in.host new file mode 100644 index 00000000..993c4c9f --- /dev/null +++ b/bsp/buildroot/package/android-tools/Config.in.host @@ -0,0 +1,26 @@ +config BR2_PACKAGE_HOST_ANDROID_TOOLS + bool "host android-tools" + select BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB if \ + !BR2_PACKAGE_HOST_ANDROID_TOOLS_FASTBOOT + help + This package contains the fastboot and adb utilities, that + can be used to interact with target devices using of these + protocols. + +if BR2_PACKAGE_HOST_ANDROID_TOOLS + +config BR2_PACKAGE_HOST_ANDROID_TOOLS_FASTBOOT + bool "fastboot" + help + This option will build and install the fastboot utility for + the host, which can be used to reflash target devices + implementing the fastboot protocol. + +config BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB + bool "adb" + help + This option will build and install the adb utility for the + host, which can be used to interact with target devices + implementing the ADB protocol. + +endif diff --git a/bsp/buildroot/package/android-tools/android-tools.hash b/bsp/buildroot/package/android-tools/android-tools.hash new file mode 100644 index 00000000..7afa0443 --- /dev/null +++ b/bsp/buildroot/package/android-tools/android-tools.hash @@ -0,0 +1,3 @@ +# locally computed +sha256 9bfba987e1351b12aa983787b9ae4424ab752e9e646d8e93771538dc1e5d932f android-tools_4.2.2+git20130218.orig.tar.xz +sha256 73c3078de3e44d8a3cadf7a360863c63155d9d558c2f0933cf38ad901a3f5998 android-tools_4.2.2+git20130218-3ubuntu41.debian.tar.gz diff --git a/bsp/buildroot/package/android-tools/android-tools.mk b/bsp/buildroot/package/android-tools/android-tools.mk new file mode 100644 index 00000000..45103923 --- /dev/null +++ b/bsp/buildroot/package/android-tools/android-tools.mk @@ -0,0 +1,85 @@ +################################################################################ +# +# android-tools +# +################################################################################ + +ANDROID_TOOLS_SITE = https://launchpad.net/ubuntu/+archive/primary/+files +ANDROID_TOOLS_VERSION = 4.2.2+git20130218 +ANDROID_TOOLS_SOURCE = android-tools_$(ANDROID_TOOLS_VERSION).orig.tar.xz +ANDROID_TOOLS_EXTRA_DOWNLOADS = android-tools_$(ANDROID_TOOLS_VERSION)-3ubuntu41.debian.tar.gz +HOST_ANDROID_TOOLS_EXTRA_DOWNLOADS = $(ANDROID_TOOLS_EXTRA_DOWNLOADS) +ANDROID_TOOLS_LICENSE = Apache-2.0 +ANDROID_TOOLS_LICENSE_FILES = debian/copyright + +# Extract the Debian tarball inside the sources +define ANDROID_TOOLS_DEBIAN_EXTRACT + $(call suitable-extractor,$(notdir $(ANDROID_TOOLS_EXTRA_DOWNLOADS))) \ + $(DL_DIR)/$(notdir $(ANDROID_TOOLS_EXTRA_DOWNLOADS)) | \ + $(TAR) -C $(@D) $(TAR_OPTIONS) - +endef + +HOST_ANDROID_TOOLS_POST_EXTRACT_HOOKS += ANDROID_TOOLS_DEBIAN_EXTRACT +ANDROID_TOOLS_POST_EXTRACT_HOOKS += ANDROID_TOOLS_DEBIAN_EXTRACT + +# Apply the Debian patches before applying the Buildroot patches +define ANDROID_TOOLS_DEBIAN_PATCH + $(APPLY_PATCHES) $(@D) $(@D)/debian/patches \* +endef + +HOST_ANDROID_TOOLS_PRE_PATCH_HOOKS += ANDROID_TOOLS_DEBIAN_PATCH +ANDROID_TOOLS_PRE_PATCH_HOOKS += ANDROID_TOOLS_DEBIAN_PATCH + +ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_FASTBOOT),y) +HOST_ANDROID_TOOLS_TARGETS += fastboot +HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-libselinux +endif + +ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB),y) +HOST_ANDROID_TOOLS_TARGETS += adb +HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-openssl +endif + +ifeq ($(BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT),y) +ANDROID_TOOLS_TARGETS += fastboot +ANDROID_TOOLS_DEPENDENCIES += zlib libselinux +endif + +ifeq ($(BR2_PACKAGE_ANDROID_TOOLS_ADB),y) +ANDROID_TOOLS_TARGETS += adb +ANDROID_TOOLS_DEPENDENCIES += zlib openssl +endif + +ifeq ($(BR2_PACKAGE_ANDROID_TOOLS_ADBD),y) +ANDROID_TOOLS_TARGETS += adbd +ANDROID_TOOLS_DEPENDENCIES += zlib openssl +endif + +# Build each tool in its own directory not to share object files + +define HOST_ANDROID_TOOLS_BUILD_CMDS + $(foreach t,$(HOST_ANDROID_TOOLS_TARGETS),\ + mkdir -p $(@D)/build-$(t) && \ + $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) SRCDIR=$(@D) \ + -C $(@D)/build-$(t) -f $(@D)/debian/makefiles/$(t).mk$(sep)) +endef + +define ANDROID_TOOLS_BUILD_CMDS + $(foreach t,$(ANDROID_TOOLS_TARGETS),\ + mkdir -p $(@D)/build-$(t) && \ + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) SRCDIR=$(@D) \ + -C $(@D)/build-$(t) -f $(@D)/debian/makefiles/$(t).mk$(sep)) +endef + +define HOST_ANDROID_TOOLS_INSTALL_CMDS + $(foreach t,$(HOST_ANDROID_TOOLS_TARGETS),\ + $(INSTALL) -D -m 0755 $(@D)/build-$(t)/$(t) $(HOST_DIR)/usr/bin/$(t)$(sep)) +endef + +define ANDROID_TOOLS_INSTALL_TARGET_CMDS + $(foreach t,$(ANDROID_TOOLS_TARGETS),\ + $(INSTALL) -D -m 0755 $(@D)/build-$(t)/$(t) $(TARGET_DIR)/usr/bin/$(t)$(sep)) +endef + +$(eval $(host-generic-package)) +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/angularjs/Config.in b/bsp/buildroot/package/angularjs/Config.in index 206b3d84..f0d2015a 100644 --- a/bsp/buildroot/package/angularjs/Config.in +++ b/bsp/buildroot/package/angularjs/Config.in @@ -1,79 +1,6 @@ -menuconfig BR2_PACKAGE_ANGULARJS +config BR2_PACKAGE_ANGULARJS bool "angularjs" help AngularJS web application framework. http://angularjs.org - -if BR2_PACKAGE_ANGULARJS - -config BR2_ANGULARJS_MODULES - bool "angularjs modules" - help - Select which modules to install. If disabled, all modules - will be installed. - -if BR2_ANGULARJS_MODULES - -config BR2_ANGULARJS_MODULE_ANIMATE - bool "animate" - help - The ngAnimate module provides support for CSS-based animations - (keyframes and transitions) as well as JavaScript-based animations - via callback hooks. Animations are not enabled by default, however, - by including ngAnimate then the animation hooks are enabled for an - Angular app. - -config BR2_ANGULARJS_MODULE_ARIA - bool "aria" - help - The ngAria module provides support for common ARIA attributes that - convey state or semantic information about the application for users - of assistive technologies, such as screen readers. - -config BR2_ANGULARJS_MODULE_COOKIES - bool "cookies" - help - The ngCookies module provides a convenient wrapper for reading and - writing browser cookies. - -config BR2_ANGULARJS_MODULE_MESSAGE_FORMAT - bool "message-format" - help - The ngMessageFormat module is used recognize MessageFormat extensions - in interpolation expressions. - -config BR2_ANGULARJS_MODULE_MESSAGES - bool "messages" - help - The ngMessages module provides enhanced support for displaying - messages within templates (typically within forms or when rendering - message objects that return key/value data). - -config BR2_ANGULARJS_MODULE_RESOURCE - bool "resource" - help - The ngResource module provides interaction support with RESTful - services via the $resource service. - -config BR2_ANGULARJS_MODULE_ROUTE - bool "route" - help - The ngRoute module provides routing and deeplinking services and - directives for angular apps. - -config BR2_ANGULARJS_MODULE_SANITIZE - bool "sanitize" - help - The ngSanitize module provides functionality to sanitize HTML. - -config BR2_ANGULARJS_MODULE_TOUCH - bool "touch" - help - The ngTouch module provides touch events and other helpers for - touch-enabled devices. The implementation is based on jQuery Mobile - touch event handling (jquerymobile.com). - -endif - -endif diff --git a/bsp/buildroot/package/angularjs/angularjs.mk b/bsp/buildroot/package/angularjs/angularjs.mk index 60dbdb6d..08a4b608 100644 --- a/bsp/buildroot/package/angularjs/angularjs.mk +++ b/bsp/buildroot/package/angularjs/angularjs.mk @@ -17,23 +17,11 @@ define ANGULARJS_EXTRACT_CMDS rmdir $(@D)/angular-$(ANGULARJS_VERSION) endef -ANGULARJS_FILES = angular - -ANGULARJS_MODULES = animate aria cookies message-format messages resource \ - route sanitize touch - -ifeq ($(BR2_ANGULARJS_MODULES),y) -ANGULARJS_FILES += $(foreach mod,$(ANGULARJS_MODULES),\ - $(if $(BR2_ANGULARJS_MODULE_$(call UPPERCASE,$(mod))),\ - angular-$(mod))) -else -ANGULARJS_FILES += $(foreach mod,$(ANGULARJS_MODULES),angular-$(mod)) -endif - +# install .min.js as .js define ANGULARJS_INSTALL_TARGET_CMDS - $(foreach f,$(ANGULARJS_FILES),\ - $(INSTALL) -m 0644 -D $(@D)/$(f).min.js \ - $(TARGET_DIR)/var/www/$(f).js$(sep)) + $(foreach f,$(notdir $(wildcard $(@D)/*.min.js)), + $(INSTALL) -m 0644 -D $(@D)/$(f) \ + $(TARGET_DIR)/var/www/$(f:.min.js=.js)$(sep)) endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/apache/apache.hash b/bsp/buildroot/package/apache/apache.hash index d4a8a9fe..e4710b04 100644 --- a/bsp/buildroot/package/apache/apache.hash +++ b/bsp/buildroot/package/apache/apache.hash @@ -1,2 +1,2 @@ -# From http://www.apache.org/dist/httpd/httpd-2.4.18.tar.bz2.sha1 -sha1 271a129f2f04e3aa694e5c2091df9b707bf8ef80 httpd-2.4.18.tar.bz2 +# From http://www.apache.org/dist/httpd/httpd-2.4.23.tar.bz2.sha1 +sha1 5101be34ac4a509b245adb70a56690a84fcc4e7f httpd-2.4.23.tar.bz2 diff --git a/bsp/buildroot/package/apache/apache.mk b/bsp/buildroot/package/apache/apache.mk index e752fcc6..e78545a0 100644 --- a/bsp/buildroot/package/apache/apache.mk +++ b/bsp/buildroot/package/apache/apache.mk @@ -4,7 +4,7 @@ # ################################################################################ -APACHE_VERSION = 2.4.18 +APACHE_VERSION = 2.4.23 APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2 APACHE_SITE = http://archive.apache.org/dist/httpd APACHE_LICENSE = Apache-2.0 diff --git a/bsp/buildroot/package/apitrace/Config.in b/bsp/buildroot/package/apitrace/Config.in index a9777128..7fdd35af 100644 --- a/bsp/buildroot/package/apitrace/Config.in +++ b/bsp/buildroot/package/apitrace/Config.in @@ -1,4 +1,4 @@ -comment "apitrace needs a (e)glibc toolchain w/ C++, gcc >= 4.6" +comment "apitrace needs a glibc toolchain w/ C++, gcc >= 4.6" depends on BR2_PACKAGE_XORG7 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 diff --git a/bsp/buildroot/package/apitrace/apitrace.hash b/bsp/buildroot/package/apitrace/apitrace.hash new file mode 100644 index 00000000..eac470b0 --- /dev/null +++ b/bsp/buildroot/package/apitrace/apitrace.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 21d0cc765b84e537c5a3a117073818942653b85685b9633d364836ccfe0b9fd5 apitrace-7.0.tar.gz diff --git a/bsp/buildroot/package/argparse/Config.in b/bsp/buildroot/package/argparse/Config.in new file mode 100644 index 00000000..d207b048 --- /dev/null +++ b/bsp/buildroot/package/argparse/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_ARGPARSE + bool "argparse" + help + Argparse is a feature-rich command line parser for Lua + inspired by argparse for Python. Argparse supports + positional arguments, options, flags, optional arguments, + subcommands and more. Argparse automatically generates + usage, help and error messages. + + https://github.com/mpeterv/argparse diff --git a/bsp/buildroot/package/argparse/argparse.hash b/bsp/buildroot/package/argparse/argparse.hash new file mode 100644 index 00000000..a4746bc6 --- /dev/null +++ b/bsp/buildroot/package/argparse/argparse.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 e00e5637c937d7bfca96025f2c598ba4fffe9eb818d69952e77b4c08167a6be3 argparse-0.5.0-1.src.rock diff --git a/bsp/buildroot/package/argparse/argparse.mk b/bsp/buildroot/package/argparse/argparse.mk new file mode 100644 index 00000000..095f0a31 --- /dev/null +++ b/bsp/buildroot/package/argparse/argparse.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# argparse +# +################################################################################ + +ARGPARSE_VERSION_UPSTREAM = 0.5.0 +ARGPARSE_VERSION = $(ARGPARSE_VERSION_UPSTREAM)-1 +ARGPARSE_SUBDIR = argparse +ARGPARSE_LICENSE = MIT +ARGPARSE_LICENSE_FILES = $(ARGPARSE_SUBDIR)/LICENSE + +$(eval $(luarocks-package)) diff --git a/bsp/buildroot/package/armadillo/Config.in b/bsp/buildroot/package/armadillo/Config.in index 18bf750e..9483f181 100644 --- a/bsp/buildroot/package/armadillo/Config.in +++ b/bsp/buildroot/package/armadillo/Config.in @@ -3,8 +3,9 @@ comment "armadillo needs a toolchain w/ C++" depends on !(BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el) depends on !BR2_powerpc depends on !BR2_bfin + depends on !BR2_m68k_cf -comment "armadillo needs an (e)glibc toolchain w/ C++" +comment "armadillo needs a glibc toolchain w/ C++" depends on BR2_powerpc depends on !BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_USES_UCLIBC @@ -14,6 +15,7 @@ config BR2_PACKAGE_ARMADILLO depends on !(BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el) # clapack depends on !BR2_powerpc || BR2_TOOLCHAIN_USES_GLIBC # clapack depends on !BR2_bfin # clapack + depends on !BR2_m68k_cf # clapack select BR2_PACKAGE_CLAPACK help Armadillo: An Open Source C++ Linear Algebra Library for diff --git a/bsp/buildroot/package/assimp/Config.in b/bsp/buildroot/package/assimp/Config.in index 35e2f239..93020f72 100644 --- a/bsp/buildroot/package/assimp/Config.in +++ b/bsp/buildroot/package/assimp/Config.in @@ -1,5 +1,9 @@ config BR2_PACKAGE_ASSIMP bool "assimp" + # All gcc versions affected by + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71124, that + # cause an infinite loop in gcc when building this package. + depends on !BR2_microblaze depends on BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_ZLIB help @@ -11,4 +15,5 @@ config BR2_PACKAGE_ASSIMP http://www.assimp.org comment "assimp needs a toolchain w/ C++" + depends on !BR2_microblaze depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/assimp/assimp.hash b/bsp/buildroot/package/assimp/assimp.hash new file mode 100644 index 00000000..bee26fb4 --- /dev/null +++ b/bsp/buildroot/package/assimp/assimp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 187f825c563e84b1b17527a4da0351aa3d575dfd696a9d204ae4bb19ee7df94a assimp-v3.2.tar.gz diff --git a/bsp/buildroot/package/assimp/assimp.mk b/bsp/buildroot/package/assimp/assimp.mk index fd556e59..cda02dda 100644 --- a/bsp/buildroot/package/assimp/assimp.mk +++ b/bsp/buildroot/package/assimp/assimp.mk @@ -11,6 +11,11 @@ ASSIMP_LICENSE_FILES = LICENSE ASSIMP_DEPENDENCIES = zlib ASSIMP_INSTALL_STAGING = YES -ASSIMP_CONF_OPTS += -DASSIMP_BUILD_TESTS=OFF +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k),y) +ASSIMP_CXXFLAGS += -mxgot +endif + +ASSIMP_CONF_OPTS += -DASSIMP_BUILD_TESTS=OFF -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) $(ASSIMP_CXXFLAGS)" $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/atk/atk.hash b/bsp/buildroot/package/atk/atk.hash index 986497c4..7178ccc8 100644 --- a/bsp/buildroot/package/atk/atk.hash +++ b/bsp/buildroot/package/atk/atk.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/atk/2.18/atk-2.18.0.sha256sum -sha256 ce6c48d77bf951083029d5a396dd552d836fff3c1715d3a7022e917e46d0c92b atk-2.18.0.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/atk/2.20/atk-2.20.0.sha256sum +sha256 493a50f6c4a025f588d380a551ec277e070b28a82e63ef8e3c06b3ee7c1238f0 atk-2.20.0.tar.xz diff --git a/bsp/buildroot/package/atk/atk.mk b/bsp/buildroot/package/atk/atk.mk index 1c5b90c7..663d13ae 100644 --- a/bsp/buildroot/package/atk/atk.mk +++ b/bsp/buildroot/package/atk/atk.mk @@ -4,7 +4,7 @@ # ################################################################################ -ATK_VERSION_MAJOR = 2.18 +ATK_VERSION_MAJOR = 2.20 ATK_VERSION = $(ATK_VERSION_MAJOR).0 ATK_SOURCE = atk-$(ATK_VERSION).tar.xz ATK_SITE = http://ftp.gnome.org/pub/gnome/sources/atk/$(ATK_VERSION_MAJOR) diff --git a/bsp/buildroot/package/attr/attr.mk b/bsp/buildroot/package/attr/attr.mk index a66891b8..4d5a07df 100644 --- a/bsp/buildroot/package/attr/attr.mk +++ b/bsp/buildroot/package/attr/attr.mk @@ -9,23 +9,29 @@ ATTR_SOURCE = attr-$(ATTR_VERSION).src.tar.gz ATTR_SITE = http://download.savannah.gnu.org/releases/attr ATTR_INSTALL_STAGING = YES ATTR_CONF_OPTS = --enable-gettext=no +HOST_ATTR_CONF_OPTS = --enable-gettext=no ATTR_LICENSE = GPLv2+ (programs), LGPLv2.1+ (libraries) ATTR_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL # While the configuration system uses autoconf, the Makefiles are # hand-written and do not use automake. Therefore, we have to hack # around their deficiencies by passing installation paths. -ATTR_INSTALL_STAGING_OPTS = \ - prefix=$(STAGING_DIR)/usr \ - exec_prefix=$(STAGING_DIR)/usr \ - PKG_DEVLIB_DIR=$(STAGING_DIR)/usr/lib \ +ATTR_INSTALL_STAGING_OPTS = \ + prefix=$(STAGING_DIR)/usr \ + exec_prefix=$(STAGING_DIR)/usr \ + PKG_DEVLIB_DIR=$(STAGING_DIR)/usr/lib \ install-dev install-lib -ATTR_INSTALL_TARGET_OPTS = \ - prefix=$(TARGET_DIR)/usr \ - exec_prefix=$(TARGET_DIR)/usr \ +ATTR_INSTALL_TARGET_OPTS = \ + prefix=$(TARGET_DIR)/usr \ + exec_prefix=$(TARGET_DIR)/usr \ install install-lib +HOST_ATTR_INSTALL_OPTS = \ + prefix=$(HOST_DIR)/usr \ + exec_prefix=$(HOST_DIR)/usr \ + install-dev install-lib + # The libdir variable in libattr.la is empty, so let's fix it. This is # probably due to attr not using automake, and not doing fully the # right thing with libtool. @@ -37,3 +43,4 @@ endef ATTR_POST_INSTALL_STAGING_HOOKS += ATTR_FIX_LIBTOOL_LA_LIBDIR $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/audiofile/0002-cast-to-unsigned-gcc6.patch b/bsp/buildroot/package/audiofile/0002-cast-to-unsigned-gcc6.patch new file mode 100644 index 00000000..01baeb5e --- /dev/null +++ b/bsp/buildroot/package/audiofile/0002-cast-to-unsigned-gcc6.patch @@ -0,0 +1,28 @@ +From 28cfdbbcb96a69087c3d21faf69b5eae7bcf6d69 Mon Sep 17 00:00:00 2001 +From: Hodorgasm +Date: Wed, 11 May 2016 21:42:07 -0400 +Subject: [PATCH] Cast to unsigned while left bit-shifting + +GCC-6 now treats the left bitwise-shift of a negative integer as nonconformant so explicitly cast to an unsigned int while bit-shifting. + +Downloaded from upstream PR: +https://github.com/mpruett/audiofile/pull/28 + +Signed-off-by: Bernd Kuhls +--- + libaudiofile/modules/SimpleModule.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h +index 03c6c69..4014fb2 100644 +--- a/libaudiofile/modules/SimpleModule.h ++++ b/libaudiofile/modules/SimpleModule.h +@@ -123,7 +123,7 @@ struct signConverter + typedef typename IntTypes::UnsignedType UnsignedType; + + static const int kScaleBits = (Format + 1) * CHAR_BIT - 1; +- static const int kMinSignedValue = -1 << kScaleBits; ++ static const int kMinSignedValue = static_cast(static_cast(-1) << kScaleBits);; + + struct signedToUnsigned : public std::unary_function + { diff --git a/bsp/buildroot/package/audit/Config.in b/bsp/buildroot/package/audit/Config.in index 717c364f..df5a5cc8 100644 --- a/bsp/buildroot/package/audit/Config.in +++ b/bsp/buildroot/package/audit/Config.in @@ -19,7 +19,7 @@ config BR2_PACKAGE_AUDIT http://people.redhat.com/sgrubb/audit/ -comment "audit needs a uClibc or (e)glibc toolchain w/ threads, dynamic library" +comment "audit needs a uClibc or glibc toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ || BR2_TOOLCHAIN_USES_MUSL depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS diff --git a/bsp/buildroot/package/audit/audit.hash b/bsp/buildroot/package/audit/audit.hash index f234fdb2..2ce381fb 100644 --- a/bsp/buildroot/package/audit/audit.hash +++ b/bsp/buildroot/package/audit/audit.hash @@ -1,2 +1,2 @@ #Locally computed -sha256 25f57f465f3230d7b1166b615ffd6748818a3dc225d0e8b396c5b2e951674e23 audit-2.4.4.tar.gz +sha256 d99339a63fc6efaaee89efe7fa0e0c395f661392a4ae5056b2c9d10c67ca63a1 audit-2.6.5.tar.gz diff --git a/bsp/buildroot/package/audit/audit.mk b/bsp/buildroot/package/audit/audit.mk index 329f8c5a..06ec9595 100644 --- a/bsp/buildroot/package/audit/audit.mk +++ b/bsp/buildroot/package/audit/audit.mk @@ -4,10 +4,12 @@ # ################################################################################ -AUDIT_VERSION = 2.4.4 +AUDIT_VERSION = 2.6.5 AUDIT_SITE = http://people.redhat.com/sgrubb/audit AUDIT_LICENSE = GPLv2 AUDIT_LICENSE_FILES = COPYING +# 0002-Fix-usage-of-audit_status.feature_bitmap.patch +AUDIT_AUTORECONF = YES AUDIT_INSTALL_STAGING = YES @@ -46,7 +48,6 @@ define AUDIT_INSTALL_INIT_SYSTEMD ln -fs ../../../../usr/lib/systemd/system/auditd.service \ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/auditd.service - mkdir -p $(TARGET_DIR)/usr/lib/tmpfiles.d $(INSTALL) -D -m 644 package/audit/audit_tmpfiles.conf \ $(TARGET_DIR)/usr/lib/tmpfiles.d/audit.conf endef @@ -57,4 +58,11 @@ define AUDIT_INSTALL_CLEANUP endef AUDIT_POST_INSTALL_TARGET_HOOKS += AUDIT_INSTALL_CLEANUP +HOST_AUDIT_CONF_OPTS = \ + --without-python \ + --without-python3 \ + --disable-zos-remote \ + --without-libcap-ng + $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch b/bsp/buildroot/package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch new file mode 100644 index 00000000..ade6d1cd --- /dev/null +++ b/bsp/buildroot/package/autofs/0002-autofs-build-check-for-clock_gettime-in-librt.patch @@ -0,0 +1,62 @@ +From a38ab6c0f2790e047fc64867865eb2a073135618 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Sun, 19 Jun 2016 00:17:41 -0300 +Subject: [PATCH] autofs: build: check for clock_gettime in librt + +Glibc versions older than 2.17 define clock_gettime() in librt, so add a +check for this. + +Signed-off-by: Gustavo Zacarias +--- +Patch status: sent to autofs@ mailing list + + Makefile.conf.in | 3 +++ + Makefile.rules | 2 ++ + configure.in | 4 ++++ + 3 files changed, 9 insertions(+) + +diff --git a/Makefile.conf.in b/Makefile.conf.in +index cb53e66..2bc3202 100644 +--- a/Makefile.conf.in ++++ b/Makefile.conf.in +@@ -11,6 +11,9 @@ + DAEMON_CFLAGS = @DAEMON_CFLAGS@ + DAEMON_LDFLAGS = @DAEMON_LDFLAGS@ + ++# Glibc < 2.17 requires librt for clock_gettime() ++LIBCLOCK_GETTIME = @LIBCLOCK_GETTIME@ ++ + # Special parameters for glibc (libc 6) + LIBNSL = @LIBNSL@ + LIBRESOLV = @LIBRESOLV@ +diff --git a/Makefile.rules b/Makefile.rules +index 6fa3e02..7d1af2e 100644 +--- a/Makefile.rules ++++ b/Makefile.rules +@@ -56,6 +56,8 @@ endif + + LIBS += $(LIBNSL) + ++LIBS += $(LIBCLOCK_GETTIME) ++ + # Standard rules + + .SUFFIXES: .c .o .s .so +diff --git a/configure.in b/configure.in +index 25d7c4e..a4318e8 100644 +--- a/configure.in ++++ b/configure.in +@@ -177,6 +177,10 @@ if test "$ac_cv_search_versionsort" = "no"; then + [Define if your C library does not provide versionsort]) + fi + ++# glibc < 2.17 needs librt for clock_gettime() ++AC_CHECK_LIB(rt, clock_gettime, LIBCLOCK_GETTIME="-lrt") ++AC_SUBST(LIBCLOCK_GETTIME) ++ + # + # glibc/libc 6 new libraries + # +-- +2.7.3 + diff --git a/bsp/buildroot/package/autofs/0003-configure-add-cache-variable-for-Linux-proc-filesyst.patch b/bsp/buildroot/package/autofs/0003-configure-add-cache-variable-for-Linux-proc-filesyst.patch new file mode 100644 index 00000000..93f3f9cf --- /dev/null +++ b/bsp/buildroot/package/autofs/0003-configure-add-cache-variable-for-Linux-proc-filesyst.patch @@ -0,0 +1,47 @@ +From bb5cc9cee1963362fe56b4fac65fed4912da4215 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 30 Jul 2016 22:30:01 +0200 +Subject: [PATCH] configure: add cache variable for Linux proc filesystem check + +When cross-compiling, whether the /proc filesystem is available in the +build environment does not give any indication as to whether it will +be available in the execution environment. + +This commit therefore adjust the AF_LINUX_PROCFS macro to use +AC_CACHE_CHECK(), so that an ac_cv_linux_procfs variable can be +preseeded in the environment to force the result of this check. + +Signed-off-by: Thomas Petazzoni +--- + aclocal.m4 | 15 +++++---------- + 1 file changed, 5 insertions(+), 10 deletions(-) + +diff --git a/aclocal.m4 b/aclocal.m4 +index 2115204..333699c 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -80,16 +80,11 @@ dnl + dnl Check for the Linux /proc filesystem + dnl -------------------------------------------------------------------------- + AC_DEFUN(AF_LINUX_PROCFS, +-[AC_MSG_CHECKING(for Linux proc filesystem) +-if test "x`cat /proc/sys/kernel/ostype 2>&-`" = "xLinux" +-then +- linux_procfs=yes +-else +- linux_procfs=no +-fi +-AC_MSG_RESULT($linux_procfs) +-if test $linux_procfs = yes +-then ++[AC_CACHE_CHECK([for Linux proc filesystem], [ac_cv_linux_procfs], ++ [ac_cv_linux_procfs=no ++ test "x`cat /proc/sys/kernel/ostype 2>&-`" = "xLinux" && ac_cv_linux_procfs=yes]) ++ if test $ac_cv_linux_procfs = yes ++ then + AC_DEFINE(HAVE_LINUX_PROCFS, 1, + [Define if you have the Linux /proc filesystem.]) + fi]) +-- +2.7.4 + diff --git a/bsp/buildroot/package/autofs/Config.in b/bsp/buildroot/package/autofs/Config.in index dbe66744..8e08357a 100644 --- a/bsp/buildroot/package/autofs/Config.in +++ b/bsp/buildroot/package/autofs/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_AUTOFS bool "autofs" - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC depends on !BR2_STATIC_LIBS # dlfcn @@ -15,7 +15,7 @@ config BR2_PACKAGE_AUTOFS http://www.linuxfromscratch.org/blfs/view/svn/general/autofs.html -comment "autofs needs a toolchain w/ threads, RPC, dynamic library" +comment "autofs needs a toolchain w/ NPTL, RPC, dynamic library" depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_NATIVE_RPC diff --git a/bsp/buildroot/package/autofs/autofs.hash b/bsp/buildroot/package/autofs/autofs.hash index 2d98375a..72b13785 100644 --- a/bsp/buildroot/package/autofs/autofs.hash +++ b/bsp/buildroot/package/autofs/autofs.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/linux/daemons/autofs/v5/sha256sums.asc -sha256 e08ff0ef9ff365d87b6c33dca136d20e4e07675197a324f2816894cb437021c3 autofs-5.1.1.tar.xz +sha256 88b7de39088aead983e02072a7b753d5ee52ce419c8913f7a3d4ff5521313f0c autofs-5.1.2.tar.xz diff --git a/bsp/buildroot/package/autofs/autofs.mk b/bsp/buildroot/package/autofs/autofs.mk index a98e5eb6..23e68368 100644 --- a/bsp/buildroot/package/autofs/autofs.mk +++ b/bsp/buildroot/package/autofs/autofs.mk @@ -4,17 +4,22 @@ # ################################################################################ -AUTOFS_VERSION = 5.1.1 +AUTOFS_VERSION = 5.1.2 AUTOFS_SOURCE = autofs-$(AUTOFS_VERSION).tar.xz AUTOFS_SITE = $(BR2_KERNEL_MIRROR)/linux/daemons/autofs/v5 AUTOFS_LICENSE = GPLv2+ AUTOFS_LICENSE_FILES = COPYING COPYRIGHT AUTOFS_DEPENDENCIES = host-flex host-bison +# For 0002-autofs-configure-check-for-clock_gettime-in-librt.patch and +# 0003-configure-add-cache-variable-for-Linux-proc-filesyst.patch. +AUTOFS_AUTORECONF = YES # autofs looks on the build machine for the path of modprobe, so tell # it explicitly where it will be located on the target. AUTOFS_CONF_ENV = \ - ac_cv_path_MODPROBE=/sbin/modprobe + ac_cv_path_KRB5_CONFIG=no \ + ac_cv_path_MODPROBE=/sbin/modprobe \ + ac_cv_linux_procfs=yes # instead of looking in the PATH like any reasonable package, autofs # configure looks only in an hardcoded search path for host tools, @@ -24,7 +29,8 @@ AUTOFS_CONF_OPTS = \ --enable-ignore-busy \ --without-openldap \ --without-sasl \ - --with-path="$(BR_PATH)" + --with-path="$(BR_PATH)" \ + --with-hesiod=no AUTOFS_MAKE_ENV = DONTSTRIP=1 diff --git a/bsp/buildroot/package/avahi/0004-no-gtk-deprecations.patch b/bsp/buildroot/package/avahi/0004-no-gtk-deprecations.patch deleted file mode 100644 index d187053c..00000000 --- a/bsp/buildroot/package/avahi/0004-no-gtk-deprecations.patch +++ /dev/null @@ -1,30 +0,0 @@ -Patch from http://pkgs.fedoraproject.org/cgit/avahi.git/plain/avahi-0.6.31-no-deprecations.patch?id=b3f4de05e331258c5123e3acc144e452595c2112 - -Don't disable deprecated GTK support, as that breaks builds with modern GTK3 -versions. - -For more details, see the Fedora bugzilla: -https://bugzilla.redhat.com/show_bug.cgi?id=1001676 - -[Peter: patch Makefile.in so we don't need autoreconf] -Signed-off-by: Peter Korsgaard ---- - avahi-ui/Makefile.am | 2 +- - avahi-ui/Makefile.in | 3 +-- - configure.ac | 2 +- - 3 files changed, 3 insertions(+), 4 deletions(-) - -Index: avahi-0.6.31/avahi-ui/Makefile.in -=================================================================== ---- avahi-0.6.31.orig/avahi-ui/Makefile.in -+++ avahi-0.6.31/avahi-ui/Makefile.in -@@ -464,8 +464,7 @@ - top_srcdir = @top_srcdir@ - - # This cool debug trap works on i386/gcc only --AM_CFLAGS = -I$(top_srcdir) -DG_DISABLE_DEPRECATED=1 \ -- -DGDK_DISABLE_DEPRECATED=1 -DGTK_DISABLE_DEPRECATED=1 \ -+AM_CFLAGS = -I$(top_srcdir) \ - '-DDEBUG_TRAP=__asm__("int $$3")' $(am__append_1) - pkglibdatadir = $(libdir)/avahi - desktopdir = $(datadir)/applications diff --git a/bsp/buildroot/package/avahi/avahi.hash b/bsp/buildroot/package/avahi/avahi.hash index 99bbd513..09c5d424 100644 --- a/bsp/buildroot/package/avahi/avahi.hash +++ b/bsp/buildroot/package/avahi/avahi.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a2dab48 avahi-0.6.31.tar.gz +sha256 d54991185d514a0aba54ebeb408d7575b60f5818a772e28fa0e18b98bc1db454 avahi-0.6.32.tar.gz diff --git a/bsp/buildroot/package/avahi/avahi.mk b/bsp/buildroot/package/avahi/avahi.mk index b7ad81dc..069b45a9 100644 --- a/bsp/buildroot/package/avahi/avahi.mk +++ b/bsp/buildroot/package/avahi/avahi.mk @@ -11,8 +11,8 @@ # either version 2.1 of the License, or (at your option) any # later version. -AVAHI_VERSION = 0.6.31 -AVAHI_SITE = http://www.avahi.org/download +AVAHI_VERSION = 0.6.32 +AVAHI_SITE = https://github.com/lathiat/avahi/releases/download/v$(AVAHI_VERSION) AVAHI_LICENSE = LGPLv2.1+ AVAHI_LICENSE_FILES = LICENSE AVAHI_INSTALL_STAGING = YES @@ -220,13 +220,13 @@ define AVAHI_INSTALL_INIT_SYSV $(AVAHI_INSTALL_DAEMON_INIT_SYSV) endef +ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y) # applications expects to be able to #include define AVAHI_STAGING_INSTALL_LIBDNSSD_LINK ln -sf avahi-compat-libdns_sd/dns_sd.h \ $(STAGING_DIR)/usr/include/dns_sd.h endef -ifeq ($(BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY),y) AVAHI_POST_INSTALL_STAGING_HOOKS += AVAHI_STAGING_INSTALL_LIBDNSSD_LINK endif diff --git a/bsp/buildroot/package/avrdude/Config.in b/bsp/buildroot/package/avrdude/Config.in index 460f1550..8aca8412 100644 --- a/bsp/buildroot/package/avrdude/Config.in +++ b/bsp/buildroot/package/avrdude/Config.in @@ -15,7 +15,7 @@ config BR2_PACKAGE_AVRDUDE https://github.com/kcuzner/avrdude -comment "avrdude needs a uclibc or (e)glibc toolchain w/ threads, wchar, dynamic library" +comment "avrdude needs a uClibc or glibc toolchain w/ threads, wchar, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) depends on !BR2_bfin diff --git a/bsp/buildroot/package/avrdude/avrdude.hash b/bsp/buildroot/package/avrdude/avrdude.hash new file mode 100644 index 00000000..b2c61259 --- /dev/null +++ b/bsp/buildroot/package/avrdude/avrdude.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 b32128f4812d5e852cfba2e863d950ec30e0f72f09bc14fb41c02528bbc5dd18 avrdude-ad04c429a90f4c34f000ea4ae11db2705915a31f.tar.gz diff --git a/bsp/buildroot/package/avrdude/avrdude.mk b/bsp/buildroot/package/avrdude/avrdude.mk index 18118934..327618a6 100644 --- a/bsp/buildroot/package/avrdude/avrdude.mk +++ b/bsp/buildroot/package/avrdude/avrdude.mk @@ -4,7 +4,7 @@ # ################################################################################ -AVRDUDE_VERSION = eabe067c4527bc2eedc5db9288ef5cf1818ec720 +AVRDUDE_VERSION = ad04c429a90f4c34f000ea4ae11db2705915a31f AVRDUDE_SITE = $(call github,kcuzner,avrdude,$(AVRDUDE_VERSION)) AVRDUDE_LICENSE = GPLv2+ AVRDUDR_LICENSE_FILES = avrdude/COPYING diff --git a/bsp/buildroot/package/axel/axel.mk b/bsp/buildroot/package/axel/axel.mk index 6328d997..25357a37 100644 --- a/bsp/buildroot/package/axel/axel.mk +++ b/bsp/buildroot/package/axel/axel.mk @@ -9,13 +9,14 @@ AXEL_SITE = http://sources.buildroot.net AXEL_LICENSE = GPLv2+ AXEL_LICENSE_FILES = COPYING -AXEL_LDFLAGS = -lpthread - ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y) AXEL_DEPENDENCIES += gettext AXEL_LDFLAGS += -lintl endif +# -lintl may use symbols from -lpthread +AXEL_LDFLAGS += -lpthread + ifneq ($(BR2_ENABLE_LOCALE),y) AXEL_DISABLE_I18N = --i18n=0 endif diff --git a/bsp/buildroot/package/axfsutils/axfsutils.hash b/bsp/buildroot/package/axfsutils/axfsutils.hash index 4a3b3fb3..bde94a0b 100644 --- a/bsp/buildroot/package/axfsutils/axfsutils.hash +++ b/bsp/buildroot/package/axfsutils/axfsutils.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 9c041393131bdfebefa89cfaba7788b514b56ffc51bda8f130fd49b39fe89dc0 axfsutils-f26ae785e33df76f658b71ef2cfbc7f511ff875d.tar.gz +sha256 80dd97305b005262643e9fad04ec03b860430ea2c58666ce5b007897afbc9693 axfsutils-64886703fdff6cfc64eb20fbe7d7295bbeec867b.tar.gz diff --git a/bsp/buildroot/package/axfsutils/axfsutils.mk b/bsp/buildroot/package/axfsutils/axfsutils.mk index 4dd60efc..1bd62809 100644 --- a/bsp/buildroot/package/axfsutils/axfsutils.mk +++ b/bsp/buildroot/package/axfsutils/axfsutils.mk @@ -4,11 +4,11 @@ # ################################################################################ -AXFSUTILS_VERSION = f26ae785e33df76f658b71ef2cfbc7f511ff875d +AXFSUTILS_VERSION = 64886703fdff6cfc64eb20fbe7d7295bbeec867b AXFSUTILS_SITE = $(call github,jaredeh,axfs,$(AXFSUTILS_VERSION)) AXFSUTILS_LICENSE = GPLv2 AXFSUTILS_LICENSE_FILES = mkfs.axfs-legacy/COPYING -AXFSUTILS_DEPENDENCIES = host-zlib +HOST_AXFSUTILS_DEPENDENCIES = host-zlib # The 'new' mkfs.axfs version requires GNUstep which is not a buildroot # prerequisite. The 'legacy' one works just as well without that requirement. diff --git a/bsp/buildroot/package/babeld/0001-kernel_netlink.c-don-t-include-linux-if_bridge.h.patch b/bsp/buildroot/package/babeld/0001-kernel_netlink.c-don-t-include-linux-if_bridge.h.patch new file mode 100644 index 00000000..efadd203 --- /dev/null +++ b/bsp/buildroot/package/babeld/0001-kernel_netlink.c-don-t-include-linux-if_bridge.h.patch @@ -0,0 +1,78 @@ +From 723bbfd8bdb76012a3da937c7499cf3c0b111dd5 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 20 Aug 2016 11:13:56 +0200 +Subject: [PATCH] kernel_netlink.c: don't include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Including causes the inclusion of , +which defines 'struct in6_addr', also defined in , causing +a build failure with the musl C library: + +In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_bridge.h:18:0, + from kernel_netlink.c:42, + from kernel.c:31: +/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:32:8: error: redefinition of ‘struct in6_addr’ + struct in6_addr { + ^ +In file included from kernel_netlink.c:33:0, + from kernel.c:31: +/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:23:8: note: originally defined here + struct in6_addr { + ^ +In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_bridge.h:18:0, + from kernel_netlink.c:42, + from kernel.c:31: +/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:49:8: error: redefinition of ‘struct sockaddr_in6’ + struct sockaddr_in6 { + ^ +In file included from kernel_netlink.c:33:0, + from kernel.c:31: +/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:34:8: note: originally defined here + struct sockaddr_in6 { + ^ +In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_bridge.h:18:0, + from kernel_netlink.c:42, + from kernel.c:31: +/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:59:8: error: redefinition of ‘struct ipv6_mreq’ + struct ipv6_mreq { + ^ +In file included from kernel_netlink.c:33:0, + from kernel.c:31: +/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:42:8: note: originally defined here + struct ipv6_mreq { + ^ + +In order to address this, this patch removes the +inclusion, and instead defines BRCTL_GET_BRIDGES to the appropriate +value if it's not provided by the C library. + +Signed-off-by: Thomas Petazzoni +--- + kernel_netlink.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/kernel_netlink.c b/kernel_netlink.c +index 4eadc39..1a5b3dd 100644 +--- a/kernel_netlink.c ++++ b/kernel_netlink.c +@@ -39,10 +39,14 @@ THE SOFTWARE. + #include + #include + #include +-#include + #include + #include + ++/* From */ ++#ifndef BRCTL_GET_BRIDGES ++#define BRCTL_GET_BRIDGES 1 ++#endif ++ + #if(__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 5) + #define RTA_TABLE 15 + #endif +-- +2.7.4 + diff --git a/bsp/buildroot/package/babeld/Config.in b/bsp/buildroot/package/babeld/Config.in new file mode 100644 index 00000000..5d08c084 --- /dev/null +++ b/bsp/buildroot/package/babeld/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_BABELD + bool "babeld" + depends on BR2_USE_MMU # fork() + help + Babel is a loop-avoiding distance-vector routing protocol for IPv6 + and IPv4 with fast convergence properties. + + http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ diff --git a/bsp/buildroot/package/babeld/S50babeld b/bsp/buildroot/package/babeld/S50babeld new file mode 100644 index 00000000..c75b4c37 --- /dev/null +++ b/bsp/buildroot/package/babeld/S50babeld @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Starts babeld. +# + +# Allow a few customizations from a config file +test -r /etc/default/babeld && . /etc/default/babeld + +start() { + printf "Starting babeld: " + start-stop-daemon -S -q -p /run/babeld.pid \ + --exec /usr/sbin/babeld -- $DAEMON_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping babeld: " + start-stop-daemon -K -q -p /run/babeld.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/babeld/babeld.hash b/bsp/buildroot/package/babeld/babeld.hash new file mode 100644 index 00000000..0ee64c4f --- /dev/null +++ b/bsp/buildroot/package/babeld/babeld.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 2c955e7d4ad971da1e860e5cedbaf1dd79903468ff6488b3f67102b2a8d087b6 babeld-1.7.1.tar.gz diff --git a/bsp/buildroot/package/babeld/babeld.mk b/bsp/buildroot/package/babeld/babeld.mk new file mode 100644 index 00000000..ca39c714 --- /dev/null +++ b/bsp/buildroot/package/babeld/babeld.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# babeld +# +################################################################################ + +BABELD_VERSION = 1.7.1 +BABELD_SITE = http://www.pps.univ-paris-diderot.fr/~jch/software/files +BALELD_LICENSE = MIT +BALELD_LICENSE_FILES = LICENSE + +define BABELD_BUILD_CMDS + $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) +endef + +define BABELD_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 755 $(@D)/babeld $(TARGET_DIR)/usr/sbin/babeld +endef + +define BABELD_INSTALL_INIT_SYSV + $(INSTALL) -D -m 755 package/babeld/S50babeld \ + $(TARGET_DIR)/etc/init.d/S50babeld +endef + +define BABELD_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/babeld/babeld.service \ + $(TARGET_DIR)/usr/lib/systemd/system/babeld.service + + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + + ln -fs ../../../../usr/lib/systemd/system/babeld.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/babeld.service +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/babeld/babeld.service b/bsp/buildroot/package/babeld/babeld.service new file mode 100644 index 00000000..abe72a8c --- /dev/null +++ b/bsp/buildroot/package/babeld/babeld.service @@ -0,0 +1,10 @@ +[Unit] +Description=Babel daemon + +[Service] +EnvironmentFile=-/etc/default/babeld +ExecStart=/usr/sbin/babeld $DAEMON_ARGS +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/bsp/buildroot/package/bandwidthd/bandwidthd.hash b/bsp/buildroot/package/bandwidthd/bandwidthd.hash new file mode 100644 index 00000000..248f9ff9 --- /dev/null +++ b/bsp/buildroot/package/bandwidthd/bandwidthd.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 0270d0def6cc53c8d47d59a9dd093d51fbca1620adeef85c15e35a32010e26ab bandwidthd-v2.0.1-auto-r11.tar.gz diff --git a/bsp/buildroot/package/bash/0043-patchlevel-43.patch b/bsp/buildroot/package/bash/0043-patchlevel-43.patch new file mode 100644 index 00000000..a30a9817 --- /dev/null +++ b/bsp/buildroot/package/bash/0043-patchlevel-43.patch @@ -0,0 +1,63 @@ +From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-043 + +Signed-off-by: Bernd Kuhls + + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-043 + +Bug-Reported-by: lolilolicon +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00040.html + +Bug-Description: + +When the lastpipe option is enabled, the last component can contain nested +pipelines and cause a segmentation fault under certain circumestances. + +Patch (apply with `patch -p0'): + +*** a/execute_cmd.c 2014-07-30 10:26:52.000000000 -0400 +--- b/execute_cmd.c 2014-08-15 08:55:24.000000000 -0400 +*************** +*** 2406,2412 **** + { + #if defined (JOB_CONTROL) +! append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid); +! #endif + lstdin = wait_for (lastpid); + #if defined (JOB_CONTROL) + /* If wait_for removes the job from the jobs table, use result of last +--- 2433,2447 ---- + { + #if defined (JOB_CONTROL) +! if (INVALID_JOB (lastpipe_jid) == 0) +! { +! append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid); +! lstdin = wait_for (lastpid); +! } +! else +! lstdin = wait_for_single_pid (lastpid); /* checks bgpids list */ +! #else + lstdin = wait_for (lastpid); ++ #endif ++ + #if defined (JOB_CONTROL) + /* If wait_for removes the job from the jobs table, use result of last +*** a/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- b/patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bsp/buildroot/package/bash/0044-patchlevel-44.patch b/bsp/buildroot/package/bash/0044-patchlevel-44.patch new file mode 100644 index 00000000..62d54122 --- /dev/null +++ b/bsp/buildroot/package/bash/0044-patchlevel-44.patch @@ -0,0 +1,52 @@ +From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-044 + +Signed-off-by: Bernd Kuhls + + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-044 + +Bug-Reported-by: Ondrej Oprala +Bug-Reference-ID: <539ED55B.2080103@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00046.html + +Bug-Description: + +A typo prevents the `compat42' shopt option from working as intended. + +Patch (apply with `patch -p0'): + +diff -rC 2 bash-4.3.42/builtins/shopt.def bash-4.3.43/builtins/shopt.def +*** a/builtins/shopt.def 2013-02-27 09:43:20.000000000 -0500 +--- b/builtins/shopt.def 2015-10-16 11:25:28.000000000 -0400 +*************** +*** 161,165 **** + { "compat40", &shopt_compat40, set_compatibility_level }, + { "compat41", &shopt_compat41, set_compatibility_level }, +! { "compat42", &shopt_compat41, set_compatibility_level }, + #if defined (READLINE) + { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, +--- 161,165 ---- + { "compat40", &shopt_compat40, set_compatibility_level }, + { "compat41", &shopt_compat41, set_compatibility_level }, +! { "compat42", &shopt_compat42, set_compatibility_level }, + #if defined (READLINE) + { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, + +*** a/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- b/patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bsp/buildroot/package/bash/0045-patchlevel-45.patch b/bsp/buildroot/package/bash/0045-patchlevel-45.patch new file mode 100644 index 00000000..bb11b1a0 --- /dev/null +++ b/bsp/buildroot/package/bash/0045-patchlevel-45.patch @@ -0,0 +1,56 @@ +From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-045 + +Signed-off-by: Bernd Kuhls + + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-045 + +Bug-Reported-by: Basin Ilya +Bug-Reference-ID: <5624C0AC.8070802@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-10/msg00141.html + +Bug-Description: + +If a file open attempted as part of a redirection fails because it is interrupted +by a signal, the shell needs to process any pending traps to allow the redirection +to be canceled. + +Patch (apply with `patch -p0'): + +*** a/redir.c 2014-12-03 10:47:38.000000000 -0500 +--- b/redir.c 2015-01-16 10:15:47.000000000 -0500 +*************** +*** 672,676 **** + e = errno; + if (fd < 0 && e == EINTR) +! QUIT; + errno = e; + } +--- 672,679 ---- + e = errno; + if (fd < 0 && e == EINTR) +! { +! QUIT; +! run_pending_traps (); +! } + errno = e; + } + +*** a/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- b/patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bsp/buildroot/package/bash/0046-patchlevel-46.patch b/bsp/buildroot/package/bash/0046-patchlevel-46.patch new file mode 100644 index 00000000..bc3798a0 --- /dev/null +++ b/bsp/buildroot/package/bash/0046-patchlevel-46.patch @@ -0,0 +1,59 @@ +From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-046 + +Signed-off-by: Bernd Kuhls + + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-046 + +Bug-Reported-by: Sergey Tselikh +Bug-Reference-ID: <20150816110235.91f3e12e3f20d20cdaad963e@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-08/msg00080.html + +Bug-Description: + +An incorrect conversion from an indexed to associative array can result in a +core dump. + +Patch (apply with `patch -p0'): + +*** a/subst.c 2015-08-13 11:32:54.000000000 -0400 +--- b/subst.c 2015-08-18 10:13:59.000000000 -0400 +*************** +*** 9562,9566 **** + opts[opti] = '\0'; + if (opti > 0) +! make_internal_declare (tlist->word->word, opts); + + t = do_word_assignment (tlist->word, 0); +--- 9562,9573 ---- + opts[opti] = '\0'; + if (opti > 0) +! { +! t = make_internal_declare (tlist->word->word, opts); +! if (t != EXECUTION_SUCCESS) +! { +! last_command_exit_value = t; +! exp_jump_to_top_level (DISCARD); +! } +! } + + t = do_word_assignment (tlist->word, 0); + +*** a/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- b/patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bsp/buildroot/package/bash/Config.in b/bsp/buildroot/package/bash/Config.in index 2f823dcc..783e4b38 100644 --- a/bsp/buildroot/package/bash/Config.in +++ b/bsp/buildroot/package/bash/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_BASH select BR2_PACKAGE_READLINE # uses fork() depends on BR2_USE_MMU + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The standard GNU Bourne again shell. diff --git a/bsp/buildroot/package/bash/bash.mk b/bsp/buildroot/package/bash/bash.mk index 97d7182e..3cd8d827 100644 --- a/bsp/buildroot/package/bash/bash.mk +++ b/bsp/buildroot/package/bash/bash.mk @@ -22,10 +22,6 @@ BASH_CONF_ENV += \ bash_cv_func_sigsetjmp=present \ bash_cv_printf_a_format=yes -# Parallel build sometimes fails because some of the generator tools -# are built twice (i.e. while executing). -BASH_MAKE = $(MAKE1) - # The static build needs some trickery ifeq ($(BR2_STATIC_LIBS),y) BASH_CONF_OPTS += --enable-static-link --without-bash-malloc diff --git a/bsp/buildroot/package/batctl/batctl.hash b/bsp/buildroot/package/batctl/batctl.hash index 1a045f43..5920ff09 100644 --- a/bsp/buildroot/package/batctl/batctl.hash +++ b/bsp/buildroot/package/batctl/batctl.hash @@ -1,4 +1,4 @@ -# http://downloads.open-mesh.org/batman/releases/batman-adv-2015.1/batctl-2015.1.tar.gz.sha1 -sha1 ae086f334ff912ab2a8116caedf0a2a1816acf1a batctl-2015.1.tar.gz +# http://downloads.open-mesh.org/batman/releases/batman-adv-2016.1/batctl-2016.1.tar.gz.sha1 +sha1 72b974bde707594e2cf0cc122d7d7da0f1f65160 batctl-2016.1.tar.gz # Locally calculated -sha256 ea67ee22785e6fcd5149472bdf2df4e9f21716968e025e7dd41556a010a8d14a batctl-2015.1.tar.gz +sha256 c854397b2ddd2cb8d15d1e65839819380648ccb37507d0303e133011fe6f03c9 batctl-2016.1.tar.gz diff --git a/bsp/buildroot/package/batctl/batctl.mk b/bsp/buildroot/package/batctl/batctl.mk index e91dff99..ed1b06ca 100644 --- a/bsp/buildroot/package/batctl/batctl.mk +++ b/bsp/buildroot/package/batctl/batctl.mk @@ -4,7 +4,7 @@ # ################################################################################ -BATCTL_VERSION = 2015.1 +BATCTL_VERSION = 2016.1 BATCTL_SITE = http://downloads.open-mesh.org/batman/releases/batman-adv-$(BATCTL_VERSION) BATCTL_LICENSE = GPLv2 BATCTL_DEPENDENCIES = libnl host-pkgconf diff --git a/bsp/buildroot/package/batman-adv/Config.in b/bsp/buildroot/package/batman-adv/Config.in new file mode 100644 index 00000000..fbef0d8d --- /dev/null +++ b/bsp/buildroot/package/batman-adv/Config.in @@ -0,0 +1,35 @@ +comment "batman-adv needs a Linux kernel to be built" + depends on !BR2_LINUX_KERNEL + +config BR2_PACKAGE_BATMAN_ADV + bool "batman-adv" + depends on BR2_LINUX_KERNEL + help + batman-adv mesh networking kernel module + + https://www.open-mesh.org/projects/batman-adv/ + +if BR2_PACKAGE_BATMAN_ADV + +config BR2_PACKAGE_BATMAN_ADV_DEBUG + bool "enable debugging" + help + Enables B.A.T.M.A.N. debugging. + +config BR2_PACKAGE_BATMAN_ADV_NC + bool "enable network coding" + help + Enables B.A.T.M.A.N. network coding. + Note: this requires promiscuous mode on ALL nodes! + + https://www.open-mesh.org/projects/batman-adv/wiki/NetworkCoding + +config BR2_PACKAGE_BATMAN_ADV_BATMAN_V + bool "enable B.A.T.M.A.N. V protocol (experimental)" + help + Enables B.A.T.M.A.N. V network protocol. + This is the next-gen protocol and is experimental at this time. + + https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_V + +endif diff --git a/bsp/buildroot/package/batman-adv/batman-adv.hash b/bsp/buildroot/package/batman-adv/batman-adv.hash new file mode 100644 index 00000000..6c0e5cac --- /dev/null +++ b/bsp/buildroot/package/batman-adv/batman-adv.hash @@ -0,0 +1,2 @@ +# From https://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-2016.1.tar.gz.sha1 +sha1 c9ca52c913fbf81aca266695a77359ecdbcc8bd8 batman-adv-2016.1.tar.gz diff --git a/bsp/buildroot/package/batman-adv/batman-adv.mk b/bsp/buildroot/package/batman-adv/batman-adv.mk new file mode 100644 index 00000000..0691773e --- /dev/null +++ b/bsp/buildroot/package/batman-adv/batman-adv.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# batman-adv +# +################################################################################ + +BATMAN_ADV_VERSION = 2016.1 +BATMAN_ADV_SITE = https://downloads.open-mesh.org/batman/stable/sources/batman-adv +BATMAN_ADV_SOURCE = batman-adv-$(BATMAN_ADV_VERSION).tar.gz +BATMAN_ADV_LICENSE = GPLv2 + +# Bridge Loop Avoidance, Distributed Arp Table are always enabled +BATMAN_ADV_CFLAGS = \ + -I$(@D)/compat-include/ \ + -include $(@D)/compat.h \ + -DBATADV_SOURCE_VERSION=\"\\\"$(BATMAN_ADV_VERSION)\\\"\" +BATMAN_ADV_MODULE_MAKE_OPTS = \ + KVER=$(LINUX_VERSION_PROBED) \ + INSTALL_MOD_DIR=updates/net/batman-adv \ + NOSTDINC_FLAGS="$(BATMAN_ADV_CFLAGS)" \ + CONFIG_BATMAN_ADV=m \ + CONFIG_BATMAN_ADV_BATMAN_V=$(BR2_PACKAGE_BATMAN_ADV_BATMAN_V) \ + CONFIG_BATMAN_ADV_BLA=y \ + CONFIG_BATMAN_ADV_DAT=y \ + CONFIG_BATMAN_ADV_DEBUG=$(BR2_PACKAGE_BATMAN_ADV_DEBUG) \ + CONFIG_BATMAN_ADV_MCAST=y \ + CONFIG_BATMAN_ADV_NC=$(BR2_PACKAGE_BATMAN_ADV_NC) +BATMAN_ADV_MODULE_SUBDIRS = net/batman-adv + +define BATMAN_ADV_CONFIGURE_CMDS + $(BATMAN_ADV_MODULE_MAKE_OPTS) $(@D)/gen-compat-autoconf.sh $(@D)/compat-autoconf.h +endef + +$(eval $(kernel-module)) +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch b/bsp/buildroot/package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch deleted file mode 100644 index fc64386c..00000000 --- a/bsp/buildroot/package/bcusdk/0001-Do-not-use-the-non-standard-sys-cdefs.h-header.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c36db3f798bf576f42d81a0c51198b17d7112e8c Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sat, 8 Aug 2015 17:43:28 +0200 -Subject: [PATCH] Do not use the non-standard header - - is glibc-specific, and should be used only internally by -glibc, not by external libraries/programs. It is not available in all -standard C libraries. - -Submitted upstream: https://sourceforge.net/p/bcusdk/patches/3/ - -Signed-off-by: Thomas Petazzoni ---- - eibd/include/eibclient.h | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/eibd/include/eibclient.h b/eibd/include/eibclient.h -index 2781878..b095a1c 100644 ---- a/eibd/include/eibclient.h -+++ b/eibd/include/eibclient.h -@@ -27,10 +27,11 @@ - #ifndef EIBCLIENT_H - #define EIBCLIENT_H - --#include - #include - --__BEGIN_DECLS; -+#ifdef __cplusplus -+extern "C" { -+#endif - - #include "eibloadresult.h" - -@@ -889,5 +890,9 @@ int EIB_Cache_LastUpdates_async (EIBConnection * con, uint16_t start, - uint16_t * end); - - --__END_DECLS -+ -+#ifdef __cplusplus -+} -+#endif -+ - #endif --- -2.5.0 - diff --git a/bsp/buildroot/package/bcusdk/0002-fd_set-requires-inclusion-of-sys-select.h.patch b/bsp/buildroot/package/bcusdk/0001-fd_set-requires-inclusion-of-sys-select.h.patch similarity index 100% rename from bsp/buildroot/package/bcusdk/0002-fd_set-requires-inclusion-of-sys-select.h.patch rename to bsp/buildroot/package/bcusdk/0001-fd_set-requires-inclusion-of-sys-select.h.patch diff --git a/bsp/buildroot/package/bdwgc/0004-configure-match-uclinux-pattern.patch b/bsp/buildroot/package/bdwgc/0004-configure-match-uclinux-pattern.patch new file mode 100644 index 00000000..78bad1c5 --- /dev/null +++ b/bsp/buildroot/package/bdwgc/0004-configure-match-uclinux-pattern.patch @@ -0,0 +1,32 @@ +From f8ecc7fb09adf34a23d324f373e667c81311fc1c Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 6 Aug 2016 23:24:35 +0200 +Subject: [PATCH] configure: match uclinux pattern + +bdwgc does not recognize "uclinux" as a valid OS part of the target +tuple which is used by some arm cortex-M toolchains. + +Fixes: +http://autobuild.buildroot.net/results/94f/94fbc1e5afe183e5b071d1e869b2d780025389e2 + +Signed-off-by: Romain Naour +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b1ce2b2..a69d101 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -186,7 +186,7 @@ case "$THREADS" in + AC_DEFINE(THREAD_LOCAL_ALLOC) + AC_MSG_WARN("Explicit GC_INIT() calls may be required."); + ;; +- *-*-linux*) ++ *-*-*linux*) + AC_DEFINE(GC_LINUX_THREADS) + AC_DEFINE(_REENTRANT) + ;; +-- +2.5.5 + diff --git a/bsp/buildroot/package/bdwgc/bdwgc.mk b/bsp/buildroot/package/bdwgc/bdwgc.mk index 46031511..0e9054df 100644 --- a/bsp/buildroot/package/bdwgc/bdwgc.mk +++ b/bsp/buildroot/package/bdwgc/bdwgc.mk @@ -11,6 +11,7 @@ BDWGC_INSTALL_STAGING = YES BDWGC_LICENSE = bdwgc license BDWGC_LICENSE_FILES = README.QUICK BDWGC_DEPENDENCIES = libatomic_ops host-pkgconf +HOST_BDWGC_DEPENDENCIES = host-libatomic_ops host-pkgconf # The libtool shipped with the package is bogus and generates some # -L/usr/lib flags. It uses a version not supported by Buildroot diff --git a/bsp/buildroot/package/beecrypt/beecrypt.mk b/bsp/buildroot/package/beecrypt/beecrypt.mk index e66cec10..bd29b3b2 100644 --- a/bsp/buildroot/package/beecrypt/beecrypt.mk +++ b/bsp/buildroot/package/beecrypt/beecrypt.mk @@ -17,6 +17,16 @@ BEECRYPT_CONF_OPTS = \ --without-python \ --disable-openmp +# disable optimized m68k assembly as it doesn't compile for coldfire +ifeq ($(BR2_m68k_cf),y) +BEECRYPT_CONF_OPTS += --enable-debug +endif + +# arm asm optimization doesn't work for thumb-only +ifeq ($(BR2_arm):$(BR2_ARM_CPU_HAS_ARM),y:) +BEECRYPT_CONF_OPTS += --enable-debug +endif + ifeq ($(BR2_PACKAGE_BEECRYPT_CPP),y) BEECRYPT_DEPENDENCIES += icu BEECRYPT_CONF_OPTS += --with-cplusplus diff --git a/bsp/buildroot/package/bind/0001-Fix-LibreSSL-compatibility.-RT-40977.patch b/bsp/buildroot/package/bind/0001-Fix-LibreSSL-compatibility.-RT-40977.patch deleted file mode 100644 index 921ec367..00000000 --- a/bsp/buildroot/package/bind/0001-Fix-LibreSSL-compatibility.-RT-40977.patch +++ /dev/null @@ -1,129 +0,0 @@ -From f824c65d1fb6a2490b03228e63cc43dae6844f73 Mon Sep 17 00:00:00 2001 -From: Mark Andrews -Date: Mon, 19 Oct 2015 10:43:58 +1100 -Subject: [PATCH] 4340. [port] Fix LibreSSL compatibility. [RT - #40977] - -Status: upstream git - -Signed-off-by: Gustavo Zacarias ---- - lib/dns/dst_openssl.h | 2 +- - lib/dns/openssl_link.c | 8 ++++---- - lib/dns/openssldh_link.c | 4 ++-- - lib/dns/openssldsa_link.c | 4 ++-- - lib/dns/opensslrsa_link.c | 2 +- - -diff --git a/lib/dns/dst_openssl.h b/lib/dns/dst_openssl.h -index dd67405..12f8bfc 100644 ---- a/lib/dns/dst_openssl.h -+++ b/lib/dns/dst_openssl.h -@@ -36,7 +36,7 @@ - #define USE_ENGINE 1 - #endif - --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - /* - * These are new in OpenSSL 1.1.0. BN_GENCB _cb needs to be declared in - * the function like this before the BN_GENCB_new call: -diff --git a/lib/dns/openssl_link.c b/lib/dns/openssl_link.c -index 8683bee..6a52b31 100644 ---- a/lib/dns/openssl_link.c -+++ b/lib/dns/openssl_link.c -@@ -88,7 +88,7 @@ entropy_getpseudo(unsigned char *buf, int num) { - return (result == ISC_R_SUCCESS ? 1 : -1); - } - --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - static void - entropy_add(const void *buf, int num, double entropy) { - /* -@@ -121,7 +121,7 @@ lock_callback(int mode, int type, const char *file, int line) { - UNLOCK(&locks[type]); - } - --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - static unsigned long - id_callback(void) { - return ((unsigned long)isc_thread_self()); -@@ -187,7 +187,7 @@ dst__openssl_init(const char *engine) { - if (result != ISC_R_SUCCESS) - goto cleanup_mutexalloc; - CRYPTO_set_locking_callback(lock_callback); --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - CRYPTO_set_id_callback(id_callback); - #endif - -@@ -287,7 +287,7 @@ dst__openssl_destroy(void) { - CRYPTO_cleanup_all_ex_data(); - #endif - ERR_clear_error(); --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - ERR_remove_state(0); - #endif - ERR_free_strings(); -diff --git a/lib/dns/openssldh_link.c b/lib/dns/openssldh_link.c -index 9f42219..67fbf69 100644 ---- a/lib/dns/openssldh_link.c -+++ b/lib/dns/openssldh_link.c -@@ -173,7 +173,7 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) { - DH *dh = NULL; - #if OPENSSL_VERSION_NUMBER > 0x00908000L - BN_GENCB *cb; --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - BN_GENCB _cb; - #endif - union { -@@ -210,7 +210,7 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) { - if (dh == NULL) - return (dst__openssl_toresult(ISC_R_NOMEMORY)); - cb = BN_GENCB_new(); --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - if (cb == NULL) { - DH_free(dh); - return (dst__openssl_toresult(ISC_R_NOMEMORY)); -diff --git a/lib/dns/openssldsa_link.c b/lib/dns/openssldsa_link.c -index 963e2f5..d47b265 100644 ---- a/lib/dns/openssldsa_link.c -+++ b/lib/dns/openssldsa_link.c -@@ -359,7 +359,7 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) { - isc_result_t result; - #if OPENSSL_VERSION_NUMBER > 0x00908000L - BN_GENCB *cb; --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - BN_GENCB _cb; - #endif - union { -@@ -383,7 +383,7 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) { - if (dsa == NULL) - return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); - cb = BN_GENCB_new(); --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - if (cb == NULL) { - DSA_free(dsa); - return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); -diff --git a/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c -index 94aced2..d799be0 100644 ---- a/lib/dns/opensslrsa_link.c -+++ b/lib/dns/opensslrsa_link.c -@@ -771,7 +771,7 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) { - } u; - RSA *rsa = RSA_new(); - BIGNUM *e = BN_new(); --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - BN_GENCB _cb; - #endif - BN_GENCB *cb = BN_GENCB_new(); --- -2.4.10 - diff --git a/bsp/buildroot/package/bind/bind.hash b/bsp/buildroot/package/bind/bind.hash index fea800c7..0fb4eb47 100644 --- a/bsp/buildroot/package/bind/bind.hash +++ b/bsp/buildroot/package/bind/bind.hash @@ -1,2 +1,2 @@ -# Verified from ftp://ftp.isc.org/isc/bind9/9.10.3-P3/bind-9.10.3-P3.tar.gz.sha256.asc -sha256 690810d1fbb72afa629e74638d19cd44e28d2b2e5eb63f55c705ad85d1a4cb83 bind-9.10.3-P3.tar.gz +# Verified from ftp://ftp.isc.org/isc/bind9/9.10.4-P2/bind-9.10.4-P2.tar.gz.sha256.asc +sha256 b35b8af8fe030196d03b3e487f5ecd0c0836b5e124abc7a3ecd184740b444423 bind-9.10.4-P2.tar.gz diff --git a/bsp/buildroot/package/bind/bind.mk b/bsp/buildroot/package/bind/bind.mk index 12dd52e7..fc9e30e3 100644 --- a/bsp/buildroot/package/bind/bind.mk +++ b/bsp/buildroot/package/bind/bind.mk @@ -4,7 +4,7 @@ # ################################################################################ -BIND_VERSION = 9.10.3-P3 +BIND_VERSION = 9.10.4-P2 BIND_SITE = ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION) # bind does not support parallel builds. BIND_MAKE = $(MAKE1) diff --git a/bsp/buildroot/package/binutils/2.23.2/120-sh-conf.patch b/bsp/buildroot/package/binutils/2.23.2/120-sh-conf.patch deleted file mode 100644 index ea3d1b60..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/120-sh-conf.patch +++ /dev/null @@ -1,29 +0,0 @@ -r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines - -Likewise, binutils has no idea about any of these new targets either, so we -fix that up too.. now we're able to actually build a real toolchain for -sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more -inept targets than that one, really. Go look, I promise). - ---- a/configure -+++ b/configure -@@ -1495,7 +1495,7 @@ - mips*-*-*) - noconfigdirs="$noconfigdirs gprof" - ;; -- sh-*-* | sh64-*-*) -+ sh*-*-* | sh64-*-*) - case "${target}" in - sh*-*-elf) - ;; ---- a/configure.ac -+++ b/configure.ac -@@ -712,7 +712,7 @@ - mips*-*-*) - noconfigdirs="$noconfigdirs gprof" - ;; -- sh-*-* | sh64-*-*) -+ sh*-*-* | sh64-*-*) - case "${target}" in - sh*-*-elf) - ;; diff --git a/bsp/buildroot/package/binutils/2.23.2/300-001_ld_makefile_patch.patch b/bsp/buildroot/package/binutils/2.23.2/300-001_ld_makefile_patch.patch deleted file mode 100644 index 5cb0f614..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/300-001_ld_makefile_patch.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am ---- binutils-2.17.50.0.17.oorig/ld/Makefile.am 2007-06-18 19:29:29.000000000 +0200 -+++ binutils-2.17.50.0.17/ld/Makefile.am 2007-06-25 10:00:36.000000000 +0200 -@@ -18,7 +18,7 @@ - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ -diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in ---- binutils-2.17.50.0.17.oorig/ld/Makefile.in 2007-06-18 19:29:29.000000000 +0200 -+++ binutils-2.17.50.0.17/ld/Makefile.in 2007-06-25 10:00:36.000000000 +0200 -@@ -287,7 +287,7 @@ - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - BASEDIR = $(srcdir)/.. - BFDDIR = $(BASEDIR)/bfd - INCDIR = $(BASEDIR)/include diff --git a/bsp/buildroot/package/binutils/2.23.2/300-012_check_ldrunpath_length.patch b/bsp/buildroot/package/binutils/2.23.2/300-012_check_ldrunpath_length.patch deleted file mode 100644 index df783109..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/300-012_check_ldrunpath_length.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em ---- binutils-2.21.orig/ld/emultempl/elf32.em 2010-10-29 09:10:36.000000000 -0300 -+++ binutils-2.21/ld/emultempl/elf32.em 2010-12-10 09:26:56.746102724 -0300 -@@ -1270,6 +1270,8 @@ - && command_line.rpath == NULL) - { - lib_path = (const char *) getenv ("LD_RUN_PATH"); -+ if ((lib_path) && (strlen (lib_path) == 0)) -+ lib_path = NULL; - if (gld${EMULATION_NAME}_search_needed (lib_path, &n, - force)) - break; -@@ -1497,6 +1499,8 @@ - rpath = command_line.rpath; - if (rpath == NULL) - rpath = (const char *) getenv ("LD_RUN_PATH"); -+ if ((rpath) && (strlen (rpath) == 0)) -+ rpath = NULL; - - for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next) - if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) diff --git a/bsp/buildroot/package/binutils/2.23.2/900-xtensa-trampolines.patch b/bsp/buildroot/package/binutils/2.23.2/900-xtensa-trampolines.patch deleted file mode 100644 index b5b934fc..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/900-xtensa-trampolines.patch +++ /dev/null @@ -1,846 +0,0 @@ -From a82c7d9030b67a6a76a5403d0e1641f9e42141ac Mon Sep 17 00:00:00 2001 -From: David Weatherford -Date: Fri, 21 Mar 2014 11:53:42 +0000 -Subject: [PATCH] Add support to the Xtensa target for creating trampolines for - out-of-range branches. - - * tc-xtensa.c (xtensa_check_frag_count, xtensa_create_trampoline_frag) - (xtensa_maybe_create_trampoline_frag, init_trampoline_frag) - (find_trampoline_seg, search_trampolines, get_best_trampoline) - (check_and_update_trampolines, add_jump_to_trampoline) - (dump_trampolines): New function. - (md_parse_option): Add cases for --[no-]trampolines options. - (md_assemble, finish_vinsn, xtensa_end): Add call to - xtensa_check_frag_count. - (xg_assemble_vliw_tokens): Add call to - xtensa_maybe_create_trampoline_frag. - (xtensa_relax_frag): Relax fragments with RELAX_TRAMPOLINE state. - (relax_frag_immed): Relax jump instructions that cannot reach its - target. - * tc-xtensa.h (xtensa_relax_statesE::RELAX_TRAMPOLINE): New relax - state. - - * as.texinfo: Document --[no-]trampolines command-line options. - * c-xtensa.texi: Document trampolines relaxation and command line - options. - - * frags.c (get_frag_count, clear_frag_count): New function. - (frag_alloc): Increment totalfrags counter. - * frags.h (get_frag_count, clear_frag_count): New function. - - * all.exp: Add test for trampoline relaxation. - * trampoline.d: Trampoline relaxation expected dump. - * trampoline.s: Trampoline relaxation test source. ---- -Backported from: a82c7d9030b67a6a76a5403d0e1641f9e42141ac -Changes to Changelog files are dropped. - - gas/config/tc-xtensa.c | 558 +++++++++++++++++++++++++++++++++- - gas/config/tc-xtensa.h | 5 + - gas/frags.c | 15 + - gas/frags.h | 3 + - gas/testsuite/gas/xtensa/all.exp | 1 + - gas/testsuite/gas/xtensa/trampoline.d | 26 ++ - gas/testsuite/gas/xtensa/trampoline.s | 21 ++ - 11 files changed, 753 insertions(+), 2 deletions(-) - create mode 100644 gas/testsuite/gas/xtensa/trampoline.d - create mode 100644 gas/testsuite/gas/xtensa/trampoline.s - -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index fe8ec0f..ea23c96 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -468,6 +468,12 @@ static void xtensa_set_frag_assembly_state (fragS *); - static void finish_vinsn (vliw_insn *); - static bfd_boolean emit_single_op (TInsn *); - static int total_frag_text_expansion (fragS *); -+static bfd_boolean use_trampolines = TRUE; -+static void xtensa_check_frag_count (void); -+static void xtensa_create_trampoline_frag (bfd_boolean); -+static void xtensa_maybe_create_trampoline_frag (void); -+struct trampoline_frag; -+static int init_trampoline_frag (struct trampoline_frag *); - - /* Alignment Functions. */ - -@@ -520,6 +526,7 @@ static void tinsn_from_chars (TInsn *, char *, int); - static void tinsn_immed_from_frag (TInsn *, fragS *, int); - static int get_num_stack_text_bytes (IStack *); - static int get_num_stack_literal_bytes (IStack *); -+static bfd_boolean tinsn_to_slotbuf (xtensa_format, int, TInsn *, xtensa_insnbuf); - - /* vliw_insn functions. */ - -@@ -687,7 +694,10 @@ enum - option_prefer_l32r, - option_prefer_const16, - -- option_target_hardware -+ option_target_hardware, -+ -+ option_trampolines, -+ option_no_trampolines, - }; - - const char *md_shortopts = ""; -@@ -760,6 +770,9 @@ struct option md_longopts[] = - - { "target-hardware", required_argument, NULL, option_target_hardware }, - -+ { "trampolines", no_argument, NULL, option_trampolines }, -+ { "no-trampolines", no_argument, NULL, option_no_trampolines }, -+ - { NULL, no_argument, NULL, 0 } - }; - -@@ -940,6 +953,14 @@ md_parse_option (int c, char *arg) - directive_state[directive_transform] = FALSE; - return 1; - -+ case option_trampolines: -+ use_trampolines = TRUE; -+ return 1; -+ -+ case option_no_trampolines: -+ use_trampolines = FALSE; -+ return 1; -+ - default: - return 0; - } -@@ -963,7 +984,9 @@ Xtensa options:\n\ - flix bundles\n\ - --no-allow-flix neither allow hand-written nor generate\n\ - flix bundles\n\ -- --rename-section old=new Rename section 'old' to 'new'\n", stream); -+ --rename-section old=new Rename section 'old' to 'new'\n\ -+ --[no-]trampolines [Do not] generate trampolines (jumps to jumps)\n\ -+ when jumps do not reach their targets\n", stream); - } - - -@@ -5568,6 +5591,8 @@ md_assemble (char *str) - - /* We've just emitted a new instruction so clear the list of labels. */ - xtensa_clear_insn_labels (); -+ -+ xtensa_check_frag_count (); - } - - -@@ -6372,6 +6397,8 @@ finish_vinsn (vliw_insn *vinsn) - xg_assemble_vliw_tokens (vinsn); - - xg_clear_vinsn (vinsn); -+ -+ xtensa_check_frag_count (); - } - - -@@ -7140,6 +7167,7 @@ xg_assemble_vliw_tokens (vliw_insn *vinsn) - RELAX_UNREACHABLE, - frag_now->fr_symbol, frag_now->fr_offset, NULL); - xtensa_set_frag_assembly_state (frag_now); -+ xtensa_maybe_create_trampoline_frag (); - } - else if (is_branch && do_align_targets ()) - { -@@ -7222,9 +7250,164 @@ xtensa_end (void) - xtensa_sanity_check (); - - xtensa_add_config_info (); -+ -+ xtensa_check_frag_count (); -+} -+ -+ -+struct trampoline_frag -+{ -+ struct trampoline_frag *next; -+ bfd_boolean needs_jump_around; -+ fragS *fragP; -+ fixS *fixP; -+}; -+ -+struct trampoline_seg -+{ -+ struct trampoline_seg *next; -+ asection *seg; -+ struct trampoline_frag trampoline_list; -+}; -+ -+static struct trampoline_seg trampoline_seg_list; -+#define J_RANGE (128 * 1024) -+ -+static int unreachable_count = 0; -+ -+ -+static void -+xtensa_maybe_create_trampoline_frag (void) -+{ -+ if (!use_trampolines) -+ return; -+ -+ /* We create an area for possible trampolines every 10 unreachable frags. -+ These are preferred over the ones not preceded by an unreachable frag, -+ because we don't have to jump around them. This function is called after -+ each RELAX_UNREACHABLE frag is created. */ -+ -+ if (++unreachable_count > 10) -+ { -+ xtensa_create_trampoline_frag (FALSE); -+ clear_frag_count (); -+ unreachable_count = 0; -+ } -+} -+ -+static void -+xtensa_check_frag_count (void) -+{ -+ if (!use_trampolines || frag_now->tc_frag_data.is_no_transform) -+ return; -+ -+ /* We create an area for possible trampolines every 8000 frags or so. This -+ is an estimate based on the max range of a "j" insn (+/-128K) divided -+ by a typical frag byte count (16), minus a few for safety. This function -+ is called after each source line is processed. */ -+ -+ if (get_frag_count () > 8000) -+ { -+ xtensa_create_trampoline_frag (TRUE); -+ clear_frag_count (); -+ unreachable_count = 0; -+ } -+} -+ -+static xtensa_insnbuf trampoline_buf = NULL; -+static xtensa_insnbuf trampoline_slotbuf = NULL; -+ -+#define TRAMPOLINE_FRAG_SIZE 3000 -+ -+static void -+xtensa_create_trampoline_frag (bfd_boolean needs_jump_around) -+{ -+ /* Emit a frag where we can place intermediate jump instructions, -+ in case we need to jump farther than 128K bytes. -+ Each jump instruction takes three bytes. -+ We allocate enough for 1000 trampolines in each frag. -+ If that's not enough, oh well. */ -+ -+ struct trampoline_seg *ts = trampoline_seg_list.next; -+ struct trampoline_frag *tf; -+ char *varP; -+ fragS *fragP; -+ int size = TRAMPOLINE_FRAG_SIZE; -+ -+ for ( ; ts; ts = ts->next) -+ { -+ if (ts->seg == now_seg) -+ break; -+ } -+ -+ if (ts == NULL) -+ { -+ ts = (struct trampoline_seg *)xcalloc(sizeof (struct trampoline_seg), 1); -+ ts->next = trampoline_seg_list.next; -+ trampoline_seg_list.next = ts; -+ ts->seg = now_seg; -+ } -+ -+ frag_wane (frag_now); -+ frag_new (0); -+ xtensa_set_frag_assembly_state (frag_now); -+ varP = frag_var (rs_machine_dependent, size, size, RELAX_TRAMPOLINE, NULL, 0, NULL); -+ fragP = (fragS *)(varP - SIZEOF_STRUCT_FRAG); -+ if (trampoline_buf == NULL) -+ { -+ trampoline_buf = xtensa_insnbuf_alloc (xtensa_default_isa); -+ trampoline_slotbuf = xtensa_insnbuf_alloc (xtensa_default_isa); -+ } -+ tf = (struct trampoline_frag *)xmalloc(sizeof (struct trampoline_frag)); -+ tf->next = ts->trampoline_list.next; -+ ts->trampoline_list.next = tf; -+ tf->needs_jump_around = needs_jump_around; -+ tf->fragP = fragP; -+ tf->fixP = NULL; -+} -+ -+ -+static struct trampoline_seg * -+find_trampoline_seg (asection *seg) -+{ -+ struct trampoline_seg *ts = trampoline_seg_list.next; -+ -+ for ( ; ts; ts = ts->next) -+ { -+ if (ts->seg == seg) -+ return ts; -+ } -+ -+ return NULL; - } - - -+void dump_trampolines (void); -+ -+void -+dump_trampolines (void) -+{ -+ struct trampoline_seg *ts = trampoline_seg_list.next; -+ -+ for ( ; ts; ts = ts->next) -+ { -+ asection *seg = ts->seg; -+ -+ if (seg == NULL) -+ continue; -+ fprintf(stderr, "SECTION %s\n", seg->name); -+ struct trampoline_frag *tf = ts->trampoline_list.next; -+ for ( ; tf; tf = tf->next) -+ { -+ if (tf->fragP == NULL) -+ continue; -+ fprintf(stderr, " 0x%08x: fix=%d, jump_around=%s\n", -+ (int)tf->fragP->fr_address, (int)tf->fragP->fr_fix, -+ tf->needs_jump_around ? "T" : "F"); -+ } -+ } -+} -+ - static void - xtensa_cleanup_align_frags (void) - { -@@ -8708,6 +8891,149 @@ xtensa_relax_frag (fragS *fragP, long stretch, int *stretched_p) - new_stretch += relax_frag_for_align (fragP, stretch); - break; - -+ case RELAX_TRAMPOLINE: -+ if (fragP->tc_frag_data.relax_seen) -+ { -+ segment_info_type *seginfo = seg_info (now_seg); -+ fragS *fP; /* The out-of-range jump. */ -+ fixS *fixP; -+ -+ /* Scan for jumps that will not reach. */ -+ for (fixP = seginfo->fix_root; fixP ; fixP = fixP->fx_next) -+ { -+ symbolS *s = fixP->fx_addsy; -+ xtensa_opcode opcode; -+ int target; -+ int addr; -+ int delta; -+ -+ if (fixP->fx_r_type < BFD_RELOC_XTENSA_SLOT0_OP || -+ fixP->fx_r_type > BFD_RELOC_XTENSA_SLOT14_OP) -+ continue; -+ xtensa_insnbuf_from_chars (isa, trampoline_buf, -+ (unsigned char *) fixP->fx_frag->fr_literal + fixP->fx_where, -+ 0); -+ fmt = xtensa_format_decode (isa, trampoline_buf); -+ gas_assert (fmt != XTENSA_UNDEFINED); -+ slot = fixP->tc_fix_data.slot; -+ xtensa_format_get_slot (isa, fmt, slot, trampoline_buf, trampoline_slotbuf); -+ opcode = xtensa_opcode_decode (isa, fmt, slot, trampoline_slotbuf); -+ if (opcode != xtensa_j_opcode) -+ continue; -+ target = S_GET_VALUE (s); -+ addr = fixP->fx_frag->fr_address; -+ delta = target - addr + stretch; -+ if (delta > J_RANGE || delta < -1 * J_RANGE) -+ { /* Found an out-of-range jump; scan the list of trampolines for the best match. */ -+ struct trampoline_seg *ts = find_trampoline_seg (now_seg); -+ struct trampoline_frag *tf = ts->trampoline_list.next; -+ struct trampoline_frag *prev = &ts->trampoline_list; -+ int lower = (target < addr) ? target : addr; -+ int upper = (target > addr) ? target : addr; -+ int midpoint = lower + (upper - lower) / 2; -+ -+ if ((upper - lower) > 2 * J_RANGE) -+ { -+ /* One trampoline won't suffice; we need multiple jumps. -+ Jump to the trampoline that's farthest, but still in -+ range relative to the original "j" instruction. */ -+ for ( ; tf; prev = tf, tf = tf->next ) -+ { -+ int this_addr = tf->fragP->fr_address + tf->fragP->fr_fix; -+ int next_addr = (tf->next) ? tf->next->fragP->fr_address + tf->next->fragP->fr_fix : 0 ; -+ -+ if (addr == lower) -+ { -+ /* Forward jump. */ -+ if (this_addr - addr < J_RANGE) -+ break; -+ } -+ else -+ { -+ /* Backward jump. */ -+ if (next_addr == 0 || addr - next_addr > J_RANGE) -+ break; -+ } -+ } -+ } -+ else -+ { -+ struct trampoline_frag *best_tf = NULL; -+ int best_delta = 0; -+ -+ for ( ; tf; prev = tf, tf = tf->next ) -+ { -+ int this_addr = tf->fragP->fr_address + tf->fragP->fr_fix; -+ int this_delta = abs (this_addr - midpoint); -+ -+ if (!best_tf || this_delta < best_delta) -+ { -+ best_tf = tf; -+ best_delta = this_delta; -+ } -+ } -+ tf = best_tf; -+ } -+ if (tf->fragP == fragP) -+ { -+ int trampaddr = fragP->fr_address + fragP->fr_fix; -+ -+ if (abs (addr - trampaddr) < J_RANGE) -+ { /* The trampoline is in range of original; fix it! */ -+ fixS *newfixP; -+ int offset; -+ TInsn insn; -+ symbolS *lsym; -+ -+ new_stretch += init_trampoline_frag (tf); -+ offset = fragP->fr_fix; /* Where to assemble the j insn. */ -+ lsym = fragP->fr_symbol; -+ fP = fixP->fx_frag; -+ /* Assemble a jump to the target label here. */ -+ tinsn_init (&insn); -+ insn.insn_type = ITYPE_INSN; -+ insn.opcode = xtensa_j_opcode; -+ insn.ntok = 1; -+ set_expr_symbol_offset (&insn.tok[0], lsym, offset); -+ fmt = xg_get_single_format (xtensa_j_opcode); -+ tinsn_to_slotbuf (fmt, 0, &insn, trampoline_slotbuf); -+ xtensa_format_set_slot (isa, fmt, 0, trampoline_buf, trampoline_slotbuf); -+ xtensa_insnbuf_to_chars (isa, trampoline_buf, (unsigned char *)fragP->fr_literal + offset, 3); -+ fragP->fr_fix += 3; -+ fragP->fr_var -= 3; -+ /* Add a fix-up for the original j insn. */ -+ newfixP = fix_new (fP, fixP->fx_where, fixP->fx_size, lsym, fragP->fr_fix - 3, TRUE, fixP->fx_r_type); -+ newfixP->fx_no_overflow = 1; -+ newfixP->tc_fix_data.X_add_symbol = lsym; -+ newfixP->tc_fix_data.X_add_number = offset; -+ newfixP->tc_fix_data.slot = slot; -+ /* Move the fix-up from the original j insn to this one. */ -+ fixP->fx_frag = fragP; -+ fixP->fx_where = fragP->fr_fix - 3; -+ fixP->tc_fix_data.slot = 0; -+ /* Adjust the jump around this trampoline (if present). */ -+ if (tf->fixP != NULL) -+ { -+ tf->fixP->fx_offset += 3; -+ } -+ new_stretch += 3; -+ fragP->tc_frag_data.relax_seen = FALSE; /* Need another pass. */ -+ /* Do we have room for more? */ -+ if (fragP->fr_var < 3) -+ { /* No, convert to fill. */ -+ frag_wane (fragP); -+ fragP->fr_subtype = 0; -+ /* Remove from the trampoline_list. */ -+ prev->next = tf->next; -+ break; -+ } -+ } -+ } -+ } -+ } -+ } -+ break; -+ - default: - as_bad (_("bad relaxation state")); - } -@@ -9146,6 +9472,200 @@ bytes_to_stretch (fragS *this_frag, - } - - -+static struct trampoline_frag * -+search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only) -+{ -+ struct trampoline_seg *ts = find_trampoline_seg (now_seg); -+ struct trampoline_frag *tf = (ts) ? ts->trampoline_list.next : NULL; -+ struct trampoline_frag *best_tf = NULL; -+ int best_delta = 0; -+ int best_addr = 0; -+ symbolS *sym = tinsn->tok[0].X_add_symbol; -+ offsetT target = S_GET_VALUE (sym) + tinsn->tok[0].X_add_number; -+ offsetT addr = fragP->fr_address; -+ offsetT lower = (addr < target) ? addr : target; -+ offsetT upper = (addr > target) ? addr : target; -+ int delta = upper - lower; -+ offsetT midpoint = lower + delta / 2; -+ int this_delta = -1; -+ int this_addr = -1; -+ -+ if (delta > 2 * J_RANGE) -+ { -+ /* One trampoline won't do; we need multiple. -+ Choose the farthest trampoline that's still in range of the original -+ and let a later pass finish the job. */ -+ for ( ; tf; tf = tf->next) -+ { -+ int next_addr = (tf->next) ? tf->next->fragP->fr_address + tf->next->fragP->fr_fix : 0; -+ -+ this_addr = tf->fragP->fr_address + tf->fragP->fr_fix; -+ if (lower == addr) -+ { -+ /* Forward jump. */ -+ if (this_addr - addr < J_RANGE) -+ break; -+ } -+ else -+ { -+ /* Backward jump. */ -+ if (next_addr == 0 || addr - next_addr > J_RANGE) -+ break; -+ } -+ if (abs (addr - this_addr) < J_RANGE) -+ return tf; -+ -+ return NULL; -+ } -+ } -+ for ( ; tf; tf = tf->next) -+ { -+ this_addr = tf->fragP->fr_address + tf->fragP->fr_fix; -+ this_delta = abs (this_addr - midpoint); -+ if (unreachable_only && tf->needs_jump_around) -+ continue; -+ if (!best_tf || this_delta < best_delta) -+ { -+ best_tf = tf; -+ best_delta = this_delta; -+ best_addr = this_addr; -+ } -+ } -+ -+ if (best_tf && -+ best_delta < J_RANGE && -+ abs(best_addr - lower) < J_RANGE && -+ abs(best_addr - upper) < J_RANGE) -+ return best_tf; -+ -+ return NULL; /* No suitable trampoline found. */ -+} -+ -+ -+static struct trampoline_frag * -+get_best_trampoline (TInsn *tinsn, fragS *fragP) -+{ -+ struct trampoline_frag *tf = NULL; -+ -+ tf = search_trampolines (tinsn, fragP, TRUE); /* Try unreachable first. */ -+ -+ if (tf == NULL) -+ tf = search_trampolines (tinsn, fragP, FALSE); /* Try ones needing a jump-around, too. */ -+ -+ return tf; -+} -+ -+ -+static void -+check_and_update_trampolines (void) -+{ -+ struct trampoline_seg *ts = find_trampoline_seg (now_seg); -+ struct trampoline_frag *tf = ts->trampoline_list.next; -+ struct trampoline_frag *prev = &ts->trampoline_list; -+ -+ for ( ; tf; prev = tf, tf = tf->next) -+ { -+ if (tf->fragP->fr_var < 3) -+ { -+ frag_wane (tf->fragP); -+ prev->next = tf->next; -+ tf->fragP = NULL; -+ } -+ } -+} -+ -+ -+static int -+init_trampoline_frag (struct trampoline_frag *trampP) -+{ -+ fragS *fp = trampP->fragP; -+ int growth = 0; -+ -+ if (fp->fr_fix == 0) -+ { -+ symbolS *lsym; -+ char label[10 + 2 * sizeof(fp)]; -+ sprintf (label, ".L0_TR_%p", fp); -+ -+ lsym = (symbolS *)local_symbol_make (label, now_seg, 0, fp); -+ fp->fr_symbol = lsym; -+ if (trampP->needs_jump_around) -+ { -+ /* Add a jump around this block of jumps, in case -+ control flows into this block. */ -+ fixS *fixP; -+ TInsn insn; -+ xtensa_format fmt; -+ xtensa_isa isa = xtensa_default_isa; -+ -+ fp->tc_frag_data.is_insn = 1; -+ /* Assemble a jump insn. */ -+ tinsn_init (&insn); -+ insn.insn_type = ITYPE_INSN; -+ insn.opcode = xtensa_j_opcode; -+ insn.ntok = 1; -+ set_expr_symbol_offset (&insn.tok[0], lsym, 3); -+ fmt = xg_get_single_format (xtensa_j_opcode); -+ tinsn_to_slotbuf (fmt, 0, &insn, trampoline_slotbuf); -+ xtensa_format_set_slot (isa, fmt, 0, trampoline_buf, trampoline_slotbuf); -+ xtensa_insnbuf_to_chars (isa, trampoline_buf, (unsigned char *)fp->fr_literal, 3); -+ fp->fr_fix += 3; -+ fp->fr_var -= 3; -+ growth = 3; -+ fixP = fix_new (fp, 0, 3, lsym, 3, TRUE, BFD_RELOC_XTENSA_SLOT0_OP); -+ trampP->fixP = fixP; -+ } -+ } -+ return growth; -+} -+ -+ -+static int -+add_jump_to_trampoline (struct trampoline_frag *trampP, fragS *origfrag) -+{ -+ fragS *tramp = trampP->fragP; -+ fixS *fixP; -+ int offset = tramp->fr_fix; /* Where to assemble the j insn. */ -+ TInsn insn; -+ symbolS *lsym; -+ symbolS *tsym; -+ int toffset; -+ xtensa_format fmt; -+ xtensa_isa isa = xtensa_default_isa; -+ int growth = 0; -+ -+ lsym = tramp->fr_symbol; -+ /* Assemble a jump to the target label in the trampoline frag. */ -+ tsym = origfrag->tc_frag_data.slot_symbols[0]; -+ toffset = origfrag-> tc_frag_data.slot_offsets[0]; -+ tinsn_init (&insn); -+ insn.insn_type = ITYPE_INSN; -+ insn.opcode = xtensa_j_opcode; -+ insn.ntok = 1; -+ set_expr_symbol_offset (&insn.tok[0], tsym, toffset); -+ fmt = xg_get_single_format (xtensa_j_opcode); -+ tinsn_to_slotbuf (fmt, 0, &insn, trampoline_slotbuf); -+ xtensa_format_set_slot (isa, fmt, 0, trampoline_buf, trampoline_slotbuf); -+ xtensa_insnbuf_to_chars (isa, trampoline_buf, (unsigned char *)tramp->fr_literal + offset, 3); -+ tramp->fr_fix += 3; -+ tramp->fr_var -= 3; -+ growth = 3; -+ /* add a fix-up for the trampoline jump. */ -+ fixP = fix_new (tramp, tramp->fr_fix - 3, 3, tsym, toffset, TRUE, BFD_RELOC_XTENSA_SLOT0_OP); -+ /* Modify the jump at the start of this trampoline to point past the newly-added jump. */ -+ fixP = trampP->fixP; -+ if (fixP) -+ fixP->fx_offset += 3; -+ /* Modify the original j to point here. */ -+ origfrag->tc_frag_data.slot_symbols[0] = lsym; -+ origfrag->tc_frag_data.slot_offsets[0] = tramp->fr_fix - 3; -+ /* If trampoline is full, remove it from the list. */ -+ check_and_update_trampolines (); -+ -+ return growth; -+} -+ -+ - static long - relax_frag_immed (segT segP, - fragS *fragP, -@@ -9284,6 +9804,37 @@ relax_frag_immed (segT segP, - if (negatable_branch && istack.ninsn > 1) - update_next_frag_state (fragP); - -+ /* If last insn is a jump, and it cannot reach its target, try to find a trampoline. */ -+ if (istack.ninsn > 2 && -+ istack.insn[istack.ninsn - 1].insn_type == ITYPE_LABEL && -+ istack.insn[istack.ninsn - 2].insn_type == ITYPE_INSN && -+ istack.insn[istack.ninsn - 2].opcode == xtensa_j_opcode) -+ { -+ TInsn *jinsn = &istack.insn[istack.ninsn - 2]; -+ -+ if (!xg_symbolic_immeds_fit (jinsn, segP, fragP, fragP->fr_offset, total_text_diff)) -+ { -+ struct trampoline_frag *tf = get_best_trampoline (jinsn, fragP); -+ -+ if (tf) -+ { -+ this_text_diff += init_trampoline_frag (tf); -+ this_text_diff += add_jump_to_trampoline (tf, fragP); -+ } -+ else -+ { -+ /* If target symbol is undefined, assume it will reach once linked. */ -+ expressionS *exp = &istack.insn[istack.ninsn - 2].tok[0]; -+ -+ if (exp->X_op == O_symbol && S_IS_DEFINED (exp->X_add_symbol)) -+ { -+ as_bad_where (fragP->fr_file, fragP->fr_line, -+ _("jump target out of range; no usable trampoline found")); -+ } -+ } -+ } -+ } -+ - return this_text_diff; - } - -@@ -9404,6 +9955,9 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec, fragS *fragp) - else - as_bad (_("invalid relaxation fragment result")); - break; -+ -+ case RELAX_TRAMPOLINE: -+ break; - } - - fragp->fr_var = 0; -diff --git a/gas/config/tc-xtensa.h b/gas/config/tc-xtensa.h -index 0bf1240..4672bc6 100644 ---- a/gas/config/tc-xtensa.h -+++ b/gas/config/tc-xtensa.h -@@ -180,6 +180,11 @@ enum xtensa_relax_statesE - prevent the linker from changing the size of any frag between the - section start and the org frag. */ - -+ RELAX_TRAMPOLINE, -+ /* Every few thousand frags, we insert one of these, just in case we may -+ need some space for a trampoline (jump to a jump) because the function -+ has gotten too big. If not needed, it disappears. */ -+ - RELAX_NONE - }; - -diff --git a/gas/frags.c b/gas/frags.c -index 5f68480..e14099d 100644 ---- a/gas/frags.c -+++ b/gas/frags.c -@@ -24,6 +24,20 @@ - - extern fragS zero_address_frag; - extern fragS predefined_address_frag; -+ -+static int totalfrags; -+ -+int -+get_frag_count (void) -+{ -+ return totalfrags; -+} -+ -+void -+clear_frag_count (void) -+{ -+ totalfrags = 0; -+} - - /* Initialization for frag routines. */ - -@@ -70,6 +84,7 @@ frag_alloc (struct obstack *ob) - ptr = (fragS *) obstack_alloc (ob, SIZEOF_STRUCT_FRAG); - obstack_alignment_mask (ob) = oalign; - memset (ptr, 0, SIZEOF_STRUCT_FRAG); -+ totalfrags++; - return ptr; - } - -diff --git a/gas/frags.h b/gas/frags.h -index 319898f..2f9e1b5 100644 ---- a/gas/frags.h -+++ b/gas/frags.h -@@ -155,4 +155,7 @@ char *frag_var (relax_stateT type, - - bfd_boolean frag_offset_fixed_p (const fragS *, const fragS *, offsetT *); - -+int get_frag_count (void); -+void clear_frag_count (void); -+ - #endif /* FRAGS_H */ -diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp -index 2b2c294..3683b78 100644 ---- a/gas/testsuite/gas/xtensa/all.exp -+++ b/gas/testsuite/gas/xtensa/all.exp -@@ -98,6 +98,7 @@ if [istarget xtensa*-*-*] then { - run_dump_test "pcrel" - run_dump_test "weak-call" - run_dump_test "jlong" -+ run_dump_test "trampoline" - } - - if [info exists errorInfo] then { -diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d -new file mode 100644 -index 0000000..b4f65dc ---- /dev/null -+++ b/gas/testsuite/gas/xtensa/trampoline.d -@@ -0,0 +1,26 @@ -+#as: -+#objdump: -d -+#name: trampolines relaxation -+ -+.*: +file format .*xtensa.* -+#... -+.*0:.*j.0x1194c -+.*3:.*j.0x1194f -+.*6:.*j.0x11952 -+.*9:.*j.0x1d4e4 -+#... -+.*11949:.*j.0x11955 -+.*1194c:.*j.0x24a0e -+.*1194f:.*j.0x24a0e -+.*11952:.*j.0x24a11 -+#... -+.*1d4e1:.*j.0x1d4e7 -+.*1d4e4:.*j.0x33462 -+#... -+.*24a0e:.*j.0x24a0e -+.*24a11:.*j.0x24a11 -+#... -+.*3345f:.*ret -+.*33462:.*j.0x49407 -+#... -+.*49407:.*j.0x49407 -diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s -new file mode 100644 -index 0000000..259a3bb ---- /dev/null -+++ b/gas/testsuite/gas/xtensa/trampoline.s -@@ -0,0 +1,21 @@ -+ .text -+ j 1f -+ j 1f -+ j 2f -+ j 3f -+ .rep 25000 -+99: -+ and a2, a2, a3 -+ bne a2, a3, 99b -+ .endr -+1: -+ j 1b -+2: -+ j 2b -+ -+ .rep 25000 -+ and a2, a2, a3 -+ _ret -+ .endr -+3: -+ j 3b --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/901-xtensa-gas-first-frag-alignment.patch b/bsp/buildroot/package/binutils/2.23.2/901-xtensa-gas-first-frag-alignment.patch deleted file mode 100644 index e1c2d85a..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/901-xtensa-gas-first-frag-alignment.patch +++ /dev/null @@ -1,51 +0,0 @@ -From a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Tue, 15 Apr 2014 19:12:46 +0400 -Subject: [PATCH] Fix alignment for the first section frag on xtensa - -Linking object files produced by partial linking with link-time -relaxation enabled sometimes fails with the following error message: - -dangerous relocation: call8: misaligned call target: (.text.unlikely+0x63) - -This happens because no basic block with an XTENSA_PROP_ALIGN flag in the -property table is generated for the first basic block, even if the -.align directive is present. -It was believed that the first frag alignment could be derived from the -section alignment, but this was not implemented for the partial linking -case: after partial linking first frag of a section may become not -first, but no additional alignment frag is inserted before it. -Basic block for such frag may be merged with previous basic block into -extended basic block during relaxation pass losing its alignment -restrictions. - -Fix this by always recording alignment for the first section frag. - -2014-04-22 Max Filippov - -gas/ - * config/tc-xtensa.c (xtensa_handle_align): record alignment for the - first section frag. - ---- -Backported from: a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 -Changes to Changelog files and tests are dropped. - - gas/config/tc-xtensa.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index ea23c96..58ace38 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -5609,7 +5609,6 @@ xtensa_handle_align (fragS *fragP) - && ! fragP->tc_frag_data.is_literal - && (fragP->fr_type == rs_align - || fragP->fr_type == rs_align_code) -- && fragP->fr_address + fragP->fr_fix > 0 - && fragP->fr_offset > 0 - && now_seg != bss_section) - { --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/902-xtensa-gas-ld-diff-relocation-signed.patch b/bsp/buildroot/package/binutils/2.23.2/902-xtensa-gas-ld-diff-relocation-signed.patch deleted file mode 100644 index ba24f4e4..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/902-xtensa-gas-ld-diff-relocation-signed.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 6a17eba5358549d0d6d195bb22b34cdbc068def2 Mon Sep 17 00:00:00 2001 -From: Volodymyr Arbatov -Date: Mon, 6 May 2013 09:43:21 -0800 -Subject: [PATCH] Use signed data type for R_XTENSA_DIFF* relocation offsets. - -R_XTENSA_DIFF relocation offsets are in fact signed. Treat them as such. -Add testcase that examines ld behaviour on R_XTENSA_DIFF relocation -changing sign during relaxation. - -2014-05-02 Volodymyr Arbatov - David Weatherford - Max Filippov - -bfd/ - * elf32-xtensa.c (relax_section): treat R_XTENSA_DIFF* relocations as - signed. - -gas/ - * config/tc-xtensa.c (md_apply_fix): mark BFD_RELOC_XTENSA_DIFF* - fixups as signed. ---- -Backported from: 1058c7532d0b012ac329219264ddad59049fb6e6 -Changes to Changelog files and tests are dropped. - - bfd/elf32-xtensa.c | 32 ++++++++++++----------- - gas/config/tc-xtensa.c | 3 +++ - 2 files changed, 20 insertions(+), 15 deletions(-) - -diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c -index edb04b4..8818d67 100644 ---- a/bfd/elf32-xtensa.c -+++ b/bfd/elf32-xtensa.c -@@ -222,11 +222,11 @@ static reloc_howto_type elf_howto_table[] = - FALSE, 0, 0, FALSE), - - /* Relocations for supporting difference of symbols. */ -- HOWTO (R_XTENSA_DIFF8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, -+ HOWTO (R_XTENSA_DIFF8, 0, 0, 8, FALSE, 0, complain_overflow_signed, - bfd_elf_xtensa_reloc, "R_XTENSA_DIFF8", FALSE, 0, 0xff, FALSE), -- HOWTO (R_XTENSA_DIFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, -+ HOWTO (R_XTENSA_DIFF16, 0, 1, 16, FALSE, 0, complain_overflow_signed, - bfd_elf_xtensa_reloc, "R_XTENSA_DIFF16", FALSE, 0, 0xffff, FALSE), -- HOWTO (R_XTENSA_DIFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, -+ HOWTO (R_XTENSA_DIFF32, 0, 2, 32, FALSE, 0, complain_overflow_signed, - bfd_elf_xtensa_reloc, "R_XTENSA_DIFF32", FALSE, 0, 0xffffffff, FALSE), - - /* General immediate operand relocations. */ -@@ -9013,7 +9013,8 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) - || r_type == R_XTENSA_DIFF16 - || r_type == R_XTENSA_DIFF32) - { -- bfd_vma diff_value = 0, new_end_offset, diff_mask = 0; -+ bfd_signed_vma diff_value = 0; -+ bfd_vma new_end_offset, diff_mask = 0; - - if (bfd_get_section_limit (abfd, sec) < old_source_offset) - { -@@ -9027,15 +9028,15 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) - { - case R_XTENSA_DIFF8: - diff_value = -- bfd_get_8 (abfd, &contents[old_source_offset]); -+ bfd_get_signed_8 (abfd, &contents[old_source_offset]); - break; - case R_XTENSA_DIFF16: - diff_value = -- bfd_get_16 (abfd, &contents[old_source_offset]); -+ bfd_get_signed_16 (abfd, &contents[old_source_offset]); - break; - case R_XTENSA_DIFF32: - diff_value = -- bfd_get_32 (abfd, &contents[old_source_offset]); -+ bfd_get_signed_32 (abfd, &contents[old_source_offset]); - break; - } - -@@ -9047,24 +9048,25 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info) - switch (r_type) - { - case R_XTENSA_DIFF8: -- diff_mask = 0xff; -- bfd_put_8 (abfd, diff_value, -+ diff_mask = 0x7f; -+ bfd_put_signed_8 (abfd, diff_value, - &contents[old_source_offset]); - break; - case R_XTENSA_DIFF16: -- diff_mask = 0xffff; -- bfd_put_16 (abfd, diff_value, -+ diff_mask = 0x7fff; -+ bfd_put_signed_16 (abfd, diff_value, - &contents[old_source_offset]); - break; - case R_XTENSA_DIFF32: -- diff_mask = 0xffffffff; -- bfd_put_32 (abfd, diff_value, -+ diff_mask = 0x7fffffff; -+ bfd_put_signed_32 (abfd, diff_value, - &contents[old_source_offset]); - break; - } - -- /* Check for overflow. */ -- if ((diff_value & ~diff_mask) != 0) -+ /* Check for overflow. Sign bits must be all zeroes or all ones */ -+ if ((diff_value & ~diff_mask) != 0 && -+ (diff_value & ~diff_mask) != (-1 & ~diff_mask)) - { - (*link_info->callbacks->reloc_dangerous) - (link_info, _("overflow after relaxation"), -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index 58ace38..7547c0a0 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -5867,12 +5867,15 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) - { - case BFD_RELOC_8: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8; -+ fixP->fx_signed = 1; - break; - case BFD_RELOC_16: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16; -+ fixP->fx_signed = 1; - break; - case BFD_RELOC_32: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32; -+ fixP->fx_signed = 1; - break; - default: - break; --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/903-xtensa-fix-ld-segfault-when-linking-linux-modules.patch b/bsp/buildroot/package/binutils/2.23.2/903-xtensa-fix-ld-segfault-when-linking-linux-modules.patch deleted file mode 100644 index 6a0846ef..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/903-xtensa-fix-ld-segfault-when-linking-linux-modules.patch +++ /dev/null @@ -1,47 +0,0 @@ -From e7d17e71cdc10a2e81e454ce3b9637f1b2a587f2 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Thu, 10 Jul 2014 01:47:33 +0400 -Subject: [PATCH] Fix xtensa ld segfault when linking linux modules - -is_inconsistent_linkonce_section makes an assumption that section name -that starts with ".gnu.linkonce.prop." has one more dot in its suffix. -However gas generates such section name by insertion of "prop." right -after ".gnu.linkonce." part of the name of the original section. So, for -section named ".gnu.linkonce.this_module" corresponding property section -name does not satisfy the assumption. Such section names are common in -linux modules. This bug was exposed by the patch "a35d5e8 Fix alignment -for the first section frag on xtensa", that makes gas produce property -section for each section that has ".align" directive in it. - -Use suffix that immediately follows ".gnu.linkonce.prop." when there are -no more dots following it. - -2014-07-10 Max Filippov - -ld/ - * emultempl/xtensaelf.em (is_inconsistent_linkonce_section): - correctly handle missing dot in section name after - ".gnu.linkonce.prop.". ---- -Backported from: e7d17e71cdc10a2e81e454ce3b9637f1b2a587f2 -Changes to ld/ChangeLog file are dropped. - - ld/emultempl/xtensaelf.em | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em -index 151eea4..948d18d 100644 ---- a/ld/emultempl/xtensaelf.em -+++ b/ld/emultempl/xtensaelf.em -@@ -1310,7 +1310,7 @@ is_inconsistent_linkonce_section (asection *sec) - for Tensilica's XCC compiler. */ - name = sec_name + linkonce_len; - if (CONST_STRNEQ (name, "prop.")) -- name = strchr (name + 5, '.') + 1; -+ name = strchr (name + 5, '.') ? strchr (name + 5, '.') + 1 : name + 5; - else if (name[1] == '.' - && (name[0] == 'p' || name[0] == 'e' || name[0] == 'h')) - name += 2; --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/904-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch b/bsp/buildroot/package/binutils/2.23.2/904-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch deleted file mode 100644 index dba7620b..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/904-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 7fc39194f8fb48914c995f8ec3826d50086f1ec0 Mon Sep 17 00:00:00 2001 -From: Sterling Augustine -Date: Tue, 25 Jan 2011 13:59:13 -0800 -Subject: [PATCH] Fix 'call8: call target out of range' xtensa ld relaxation - bug - -During link-time relaxation distance between cross-section call site and -its target may grow, producing 'call target out of range' error for -relaxed calls. Be more conservative when calculating whether or not a -callx can be converted to a straight call. - -2014-09-23 Sterling Augustine - -bfd/ - * elf32-xtensa.c (is_resolvable_asm_expansion): for cross-section - call relaxation use furthermost addresses where call source and - destination can be to check whether it's in the range of a direct - call. - -Signed-off-by: Max Filippov ---- - bfd/elf32-xtensa.c | 41 +++++++++++++++++++++++++++++++++++++---- - 1 file changed, 37 insertions(+), 4 deletions(-) - -diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c -index 09862e3..e32496a 100644 ---- a/bfd/elf32-xtensa.c -+++ b/bfd/elf32-xtensa.c -@@ -7124,10 +7124,43 @@ is_resolvable_asm_expansion (bfd *abfd, - || is_reloc_sym_weak (abfd, irel))) - return FALSE; - -- self_address = (sec->output_section->vma -- + sec->output_offset + irel->r_offset + 3); -- dest_address = (target_sec->output_section->vma -- + target_sec->output_offset + target_offset); -+ if (target_sec->output_section != sec->output_section) -+ { -+ /* If the two sections are sufficiently far away that relaxation -+ might take the call out of range, we can't simplify. For -+ example, a positive displacement call into another memory -+ could get moved to a lower address due to literal removal, -+ but the destination won't move, and so the displacment might -+ get larger. -+ -+ If the displacement is negative, assume the destination could -+ move as far back as the start of the output section. The -+ self_address will be at least as far into the output section -+ as it is prior to relaxation. -+ -+ If the displacement is postive, assume the destination will be in -+ it's pre-relaxed location (because relaxation only makes sections -+ smaller). The self_address could go all the way to the beginning -+ of the output section. */ -+ -+ dest_address = target_sec->output_section->vma; -+ self_address = sec->output_section->vma; -+ -+ if (sec->output_section->vma > target_sec->output_section->vma) -+ self_address += sec->output_offset + irel->r_offset + 3; -+ else -+ dest_address += bfd_get_section_limit (abfd, target_sec->output_section); -+ /* Call targets should be four-byte aligned. */ -+ dest_address = (dest_address + 3) & ~3; -+ } -+ else -+ { -+ -+ self_address = (sec->output_section->vma -+ + sec->output_offset + irel->r_offset + 3); -+ dest_address = (target_sec->output_section->vma -+ + target_sec->output_offset + target_offset); -+ } - - *is_reachable_p = pcrel_reloc_fits (direct_call_opcode, 0, - self_address, dest_address); --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/905-Fix-trampolines-search-code-for-conditional-branches.patch b/bsp/buildroot/package/binutils/2.23.2/905-Fix-trampolines-search-code-for-conditional-branches.patch deleted file mode 100644 index 8aeb0642..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/905-Fix-trampolines-search-code-for-conditional-branches.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 415480d6471e67aef97c0241d451ef2423a1da9d Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Tue, 25 Nov 2014 21:33:21 +0300 -Subject: [PATCH] Fix trampolines search code for conditional branches - -For conditional branches that need more than one trampoline to reach its -target assembler couldn't always find suitable trampoline because -post-loop condition check was placed inside the loop, resulting in -premature loop termination. Move check outside the loop. - -This fixes the following build errors seen when assembling huge files -produced by gcc: - Error: jump target out of range; no usable trampoline found - Error: operand 1 of 'j' has out of range value '307307' - -2014-11-25 Max Filippov - -gas/ - * config/tc-xtensa.c (search_trampolines): Move post-loop - condition check outside the search loop. - -gas/testsuite/ - * gas/xtensa/trampoline.d: Add expected output for branches. - * gas/xtensa/trampoline.s: Add test case for branches. - -Signed-off-by: Max Filippov ---- -Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3 -Changes to ChangeLogs are dropped. - - gas/config/tc-xtensa.c | 8 ++++---- - gas/testsuite/gas/xtensa/trampoline.d | 9 +++++++++ - gas/testsuite/gas/xtensa/trampoline.s | 7 +++++++ - 3 files changed, 20 insertions(+), 4 deletions(-) - -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index d11b0c7..f23ccf8 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -9514,11 +9514,11 @@ search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only) - if (next_addr == 0 || addr - next_addr > J_RANGE) - break; - } -- if (abs (addr - this_addr) < J_RANGE) -- return tf; -- -- return NULL; - } -+ if (abs (addr - this_addr) < J_RANGE) -+ return tf; -+ -+ return NULL; - } - for ( ; tf; tf = tf->next) - { -diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d -index b4f65dc..5ae32a6 100644 ---- a/gas/testsuite/gas/xtensa/trampoline.d -+++ b/gas/testsuite/gas/xtensa/trampoline.d -@@ -24,3 +24,12 @@ - .*33462:.*j.0x49407 - #... - .*49407:.*j.0x49407 -+.*4940a:.*beqz.n.a2,.0x4940f -+.*4940c:.*j.0x693d1 -+#... -+.*693d1:.*j.0x7ddd4 -+#... -+.*7ddd4:.*j.0x927f5 -+#... -+.*927f5:.*j.0x927f5 -+#... -diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s -index 259a3bb..4465786 100644 ---- a/gas/testsuite/gas/xtensa/trampoline.s -+++ b/gas/testsuite/gas/xtensa/trampoline.s -@@ -19,3 +19,10 @@ - .endr - 3: - j 3b -+ bnez a2, 4f -+ .rep 50000 -+ and a2, a2, a3 -+ _ret -+ .endr -+4: -+ j 4b --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch b/bsp/buildroot/package/binutils/2.23.2/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch deleted file mode 100644 index 9ad6b3be..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 8ec76b16f62d1bf386fb2c39af5f66c3afddc5cb Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Thu, 14 May 2015 05:22:55 +0300 -Subject: [PATCH] xtensa: fix localized symbol refcounting with --gc-sections - -elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were -made local, that results in link failure with the following message: - - BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line - 3372 in elf_xtensa_finish_dynamic_sections - -elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by -relocation type. Relocation types are not changed when symbol becomes -local, but its PLT references are added to GOT references and -plt.refcount is set to 0. Such symbol cannot be unreferences in the -elf_xtensa_gc_sweep_hook and its extra references make calculated GOT -relocations section size not match number of GOT relocations. - -Fix it by treating PLT reference as GOT reference when plt.refcount is -not positive. - -2015-05-14 Max Filippov -bfd/ - * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference - as GOT reference when plt.refcount is not positive. - -Signed-off-by: Max Filippov ---- -Backported from: e6c9a083ec5ae7a45bd71682b26aae1939849388 -Changes to ChangeLog are dropped. - - bfd/elf32-xtensa.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c -index 53af1c6..2523670 100644 ---- a/bfd/elf32-xtensa.c -+++ b/bfd/elf32-xtensa.c -@@ -1360,10 +1360,14 @@ elf_xtensa_gc_sweep_hook (bfd *abfd, - { - if (is_plt) - { -+ /* If the symbol has been localized its plt.refcount got moved -+ to got.refcount. Handle it as GOT. */ - if (h->plt.refcount > 0) - h->plt.refcount--; -+ else -+ is_got = TRUE; - } -- else if (is_got) -+ if (is_got) - { - if (h->got.refcount > 0) - h->got.refcount--; --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/912-xtensa-fix-gas-segfault-with-text-section-literals.patch b/bsp/buildroot/package/binutils/2.23.2/912-xtensa-fix-gas-segfault-with-text-section-literals.patch deleted file mode 100644 index 4a3de2c8..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/912-xtensa-fix-gas-segfault-with-text-section-literals.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 2d0522e76e4afeeb2e104e0a4332d94fa0d2fbf6 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Sun, 17 May 2015 06:46:15 +0300 -Subject: [PATCH] xtensa: fix gas segfault with --text-section-literals - -When --text-section-literals is used and code in the .init or .fini -emits literal in the absence of .literal_position, xtensa_move_literals -segfaults. - -Check that search_frag is non-NULL in the xtensa_move_literals and -report error otherwise. - -2015-05-26 Max Filippov -gas/ - * config/tc-xtensa.c (xtensa_move_literals): Check that - search_frag is non-NULL. Report error if literal frag is not - found. - -Signed-off-by: Max Filippov ---- -Backported from: 4de0562a4c69fef4952aa7e19d7bda359f02e8b4 -Changes to ChangeLog are dropped. - - gas/config/tc-xtensa.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index 31c0b6b..18307c1 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -10808,13 +10808,21 @@ xtensa_move_literals (void) - frchain_to = NULL; - frag_splice = &(frchain_from->frch_root); - -- while (!search_frag->tc_frag_data.literal_frag) -+ while (search_frag && !search_frag->tc_frag_data.literal_frag) - { - gas_assert (search_frag->fr_fix == 0 - || search_frag->fr_type == rs_align); - search_frag = search_frag->fr_next; - } - -+ if (!search_frag) -+ { -+ search_frag = frchain_from->frch_root; -+ as_bad_where (search_frag->fr_file, search_frag->fr_line, -+ _("literal pool location required for text-section-literals; specify with .literal_position")); -+ continue; -+ } -+ - gas_assert (search_frag->tc_frag_data.literal_frag->fr_subtype - == RELAX_LITERAL_POOL_BEGIN); - xtensa_switch_section_emit_state (&state, segment->seg, 0); --- -1.8.1.4 - diff --git a/bsp/buildroot/package/binutils/2.23.2/914-xtensa-fix-signedness-of-gas-relocations.patch b/bsp/buildroot/package/binutils/2.23.2/914-xtensa-fix-signedness-of-gas-relocations.patch deleted file mode 100644 index 2955e114..00000000 --- a/bsp/buildroot/package/binutils/2.23.2/914-xtensa-fix-signedness-of-gas-relocations.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6c7c5c477ef9ccf2d2548cf2ac3cec9bd3c9c5b6 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Tue, 2 Feb 2016 17:11:38 +0300 -Subject: [PATCH] xtensa: fix signedness of gas relocations - -Change 1058c7532d0b "Use signed data type for R_XTENSA_DIFF* relocation -offsets." changed signedness of BFD_RELOC_XTENSA_DIFF* relocations -substituted for BFD_RELOC_*. This made it impossible to encode arbitrary -8-, 16- and 32-bit values, which broke e.g. debug info encoding by .loc -directive. Revert this part and add test. - -gas/ -2016-02-03 Max Filippov - * config/tc-xtensa.c (md_apply_fix): Mark BFD_RELOC_XTENSA_DIFF* - substitutions for BFD_RELOC_* as unsigned. - -Signed-off-by: Max Filippov ---- - gas/config/tc-xtensa.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c -index a119871..36a06cc 100644 ---- a/gas/config/tc-xtensa.c -+++ b/gas/config/tc-xtensa.c -@@ -5961,15 +5961,15 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) - { - case BFD_RELOC_8: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8; -- fixP->fx_signed = 1; -+ fixP->fx_signed = 0; - break; - case BFD_RELOC_16: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16; -- fixP->fx_signed = 1; -+ fixP->fx_signed = 0; - break; - case BFD_RELOC_32: - fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32; -- fixP->fx_signed = 1; -+ fixP->fx_signed = 0; - break; - default: - break; --- -2.1.4 - diff --git a/bsp/buildroot/package/binutils/2.26.1/0120-sh-conf.patch b/bsp/buildroot/package/binutils/2.26.1/0120-sh-conf.patch new file mode 100644 index 00000000..cc14ef40 --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0120-sh-conf.patch @@ -0,0 +1,46 @@ +From 1ceee199e9a32034c6def7700fdbb26335ca76a3 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:38:13 +0100 +Subject: [PATCH] sh-conf + +Likewise, binutils has no idea about any of these new targets either, so we +fix that up too.. now we're able to actually build a real toolchain for +sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more +inept targets than that one, really. Go look, I promise). + +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 34b66f7..905bc7b 100755 +--- a/configure ++++ b/configure +@@ -3939,7 +3939,7 @@ case "${target}" in + or1k*-*-*) + noconfigdirs="$noconfigdirs gdb" + ;; +- sh-*-* | sh64-*-*) ++ sh*-*-* | sh64-*-*) + case "${target}" in + sh*-*-elf) + ;; +diff --git a/configure.ac b/configure.ac +index 4977d97..1e69ee2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1276,7 +1276,7 @@ case "${target}" in + or1k*-*-*) + noconfigdirs="$noconfigdirs gdb" + ;; +- sh-*-* | sh64-*-*) ++ sh*-*-* | sh64-*-*) + case "${target}" in + sh*-*-elf) + ;; +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.26.1/0300-ld-makefile.patch b/bsp/buildroot/package/binutils/2.26.1/0300-ld-makefile.patch new file mode 100644 index 00000000..73cc0980 --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0300-ld-makefile.patch @@ -0,0 +1,41 @@ +From d76a7549b43974fe8564971a3f40459bc495a8a7 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:40:53 +0100 +Subject: [PATCH] ld-makefile + +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + ld/Makefile.am | 2 +- + ld/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ld/Makefile.am b/ld/Makefile.am +index 0b3b049..3871c74 100644 +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -57,7 +57,7 @@ endif + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +diff --git a/ld/Makefile.in b/ld/Makefile.in +index ed98f87..530e4c9 100644 +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -413,7 +413,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.26.1/0301-check-ldrunpath-length.patch b/bsp/buildroot/package/binutils/2.26.1/0301-check-ldrunpath-length.patch new file mode 100644 index 00000000..3b4c204c --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0301-check-ldrunpath-length.patch @@ -0,0 +1,36 @@ +From ebe1cba46df52d7bf86def3d681271fd05fb453b Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:41:47 +0100 +Subject: [PATCH] check-ldrunpath-length + +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + ld/emultempl/elf32.em | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em +index 0405d4f..efd3300 100644 +--- a/ld/emultempl/elf32.em ++++ b/ld/emultempl/elf32.em +@@ -1242,6 +1242,8 @@ fragment <link.next) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.23.2/500-sysroot.patch b/bsp/buildroot/package/binutils/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch similarity index 69% rename from bsp/buildroot/package/binutils/2.23.2/500-sysroot.patch rename to bsp/buildroot/package/binutils/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch index e49c7953..f67a43ef 100644 --- a/bsp/buildroot/package/binutils/2.23.2/500-sysroot.patch +++ b/bsp/buildroot/package/binutils/2.26.1/0500-add-sysroot-fix-from-bug-3049.patch @@ -1,13 +1,25 @@ -Signed-off-by: Sven Rebhan +From 30628870e583375f8927c04398c7219c6e9f703c Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:42:48 +0100 +Subject: [PATCH] add sysroot fix from bug #3049 Always try to prepend the sysroot prefix to absolute filenames first. http://bugs.gentoo.org/275666 http://sourceware.org/bugzilla/show_bug.cgi?id=10340 +Signed-off-by: Sven Rebhan +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + ld/ldfile.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/ld/ldfile.c b/ld/ldfile.c +index 96f9ecc..1439309 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c -@@ -308,18 +308,25 @@ +@@ -335,18 +335,25 @@ ldfile_open_file_search (const char *arch, directory first. */ if (! entry->flags.maybe_archive) { @@ -35,3 +47,6 @@ http://sourceware.org/bugzilla/show_bug.cgi?id=10340 return TRUE; if (IS_ABSOLUTE_PATH (entry->filename)) +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.23.2/600-poison-system-directories.patch b/bsp/buildroot/package/binutils/2.26.1/0600-poison-system-directories.patch similarity index 70% rename from bsp/buildroot/package/binutils/2.23.2/600-poison-system-directories.patch rename to bsp/buildroot/package/binutils/2.26.1/0600-poison-system-directories.patch index 780e48e8..d16994ec 100644 --- a/bsp/buildroot/package/binutils/2.23.2/600-poison-system-directories.patch +++ b/bsp/buildroot/package/binutils/2.26.1/0600-poison-system-directories.patch @@ -1,7 +1,16 @@ +From be366461dd49e760440fb28eaee5164eb281adcc Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:45:38 +0100 +Subject: [PATCH] poison-system-directories + Patch adapted to binutils 2.23.2 and extended to use BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni. +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +[Gustavo: adapt to binutils 2.25] Signed-off-by: Thomas Petazzoni +Signed-off-by: Gustavo Zacarias Upstream-Status: Inappropriate [distribution: codesourcery] @@ -48,7 +57,7 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ - * configure.in (--enable-poison-system-directories): New option. + * configure.ac (--enable-poison-system-directories): New option. * configure, config.in: Regenerate. * ldfile.c (ldfile_add_library_path): If ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, @@ -56,12 +65,23 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 Signed-off-by: Mark Hatle Signed-off-by: Scott Garman +--- + ld/config.in | 3 +++ + ld/configure | 14 ++++++++++++++ + ld/configure.ac | 10 ++++++++++ + ld/ld.h | 8 ++++++++ + ld/ld.texinfo | 12 ++++++++++++ + ld/ldfile.c | 17 +++++++++++++++++ + ld/ldlex.h | 2 ++ + ld/ldmain.c | 2 ++ + ld/lexsup.c | 21 +++++++++++++++++++++ + 9 files changed, 89 insertions(+) -Index: b/ld/config.in -=================================================================== +diff --git a/ld/config.in b/ld/config.in +index 276fb77..35c58eb 100644 --- a/ld/config.in +++ b/ld/config.in -@@ -11,6 +11,9 @@ +@@ -14,6 +14,9 @@ language is requested. */ #undef ENABLE_NLS @@ -71,20 +91,20 @@ Index: b/ld/config.in /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION -Index: b/ld/configure -=================================================================== +diff --git a/ld/configure b/ld/configure +index a446283..d1f9504 100755 --- a/ld/configure +++ b/ld/configure -@@ -773,6 +773,7 @@ +@@ -786,6 +786,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got - enable_werror -@@ -1428,6 +1429,8 @@ - (and sometimes confusing) to the casual installer + enable_compressed_debug_sections +@@ -1442,6 +1443,8 @@ Optional Features: + --disable-largefile omit support for large files --enable-targets alternative target configurations --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) + --enable-poison-system-directories @@ -92,7 +112,7 @@ Index: b/ld/configure --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) -@@ -4338,7 +4341,18 @@ +@@ -15491,7 +15494,18 @@ else fi @@ -111,11 +131,11 @@ Index: b/ld/configure # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : -Index: b/ld/configure.in -=================================================================== ---- a/ld/configure.in -+++ b/ld/configure.in -@@ -70,6 +70,16 @@ +diff --git a/ld/configure.ac b/ld/configure.ac +index 188172d..2cd8443 100644 +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) @@ -132,11 +152,53 @@ Index: b/ld/configure.in dnl Use --enable-gold to decide if this linker should be the default. dnl "install_as_default" is set to false if gold is the default linker. dnl "installed_linker" is the installed BFD linker name. -Index: b/ld/ldfile.c -=================================================================== +diff --git a/ld/ld.h b/ld/ld.h +index d84ec4e..3476b26 100644 +--- a/ld/ld.h ++++ b/ld/ld.h +@@ -164,6 +164,14 @@ typedef struct { + /* If set, display the target memory usage (per memory region). */ + bfd_boolean print_memory_usage; + ++ /* If TRUE (the default) warn for uses of system directories when ++ cross linking. */ ++ bfd_boolean poison_system_directories; ++ ++ /* If TRUE (default FALSE) give an error for uses of system ++ directories when cross linking instead of a warning. */ ++ bfd_boolean error_poison_system_directories; ++ + /* Big or little endian as set on command line. */ + enum endian_enum endian; + +diff --git a/ld/ld.texinfo b/ld/ld.texinfo +index 1dd7492..fb1438e 100644 +--- a/ld/ld.texinfo ++++ b/ld/ld.texinfo +@@ -2332,6 +2332,18 @@ string identifying the original linked file does not change. + + Passing @code{none} for @var{style} disables the setting from any + @code{--build-id} options earlier on the command line. ++ ++@kindex --no-poison-system-directories ++@item --no-poison-system-directories ++Do not warn for @option{-L} options using system directories such as ++@file{/usr/lib} when cross linking. This option is intended for use ++in chroot environments when such directories contain the correct ++libraries for the target system rather than the host. ++ ++@kindex --error-poison-system-directories ++@item --error-poison-system-directories ++Give an error instead of a warning for @option{-L} options using ++system directories when cross linking. + @end table + + @c man end +diff --git a/ld/ldfile.c b/ld/ldfile.c +index 1439309..086b354 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c -@@ -116,6 +116,23 @@ +@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL); else new_dirs->name = xstrdup (name); @@ -160,81 +222,52 @@ Index: b/ld/ldfile.c } /* Try to open a BFD for a lang_input_statement. */ -Index: b/ld/ld.h -=================================================================== ---- a/ld/ld.h -+++ b/ld/ld.h -@@ -203,6 +203,14 @@ - /* If TRUE we'll just print the default output on stdout. */ - bfd_boolean print_output_format; +diff --git a/ld/ldlex.h b/ld/ldlex.h +index 6f11e7b..0ca3110 100644 +--- a/ld/ldlex.h ++++ b/ld/ldlex.h +@@ -144,6 +144,8 @@ enum option_values + OPTION_PRINT_MEMORY_USAGE, + OPTION_REQUIRE_DEFINED_SYMBOL, + OPTION_ORPHAN_HANDLING, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, + }; -+ /* If TRUE (the default) warn for uses of system directories when -+ cross linking. */ -+ bfd_boolean poison_system_directories; -+ -+ /* If TRUE (default FALSE) give an error for uses of system -+ directories when cross linking instead of a warning. */ -+ bfd_boolean error_poison_system_directories; -+ - /* Big or little endian as set on command line. */ - enum endian_enum endian; - -Index: b/ld/ldmain.c -=================================================================== + /* The initial parser states. */ +diff --git a/ld/ldmain.c b/ld/ldmain.c +index bb0b9cc..a23c56c 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c -@@ -265,6 +265,8 @@ +@@ -257,6 +257,8 @@ main (int argc, char **argv) + command_line.warn_mismatch = TRUE; command_line.warn_search_mismatch = TRUE; command_line.check_section_addresses = -1; - command_line.disable_target_specific_optimizations = -1; + command_line.poison_system_directories = TRUE; + command_line.error_poison_system_directories = FALSE; /* We initialize DEMANGLING based on the environment variable COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the -Index: b/ld/ld.texinfo -=================================================================== ---- a/ld/ld.texinfo -+++ b/ld/ld.texinfo -@@ -2154,6 +2154,18 @@ - - Passing @code{none} for @var{style} disables the setting from any - @code{--build-id} options earlier on the command line. -+ -+@kindex --no-poison-system-directories -+@item --no-poison-system-directories -+Do not warn for @option{-L} options using system directories such as -+@file{/usr/lib} when cross linking. This option is intended for use -+in chroot environments when such directories contain the correct -+libraries for the target system rather than the host. -+ -+@kindex --error-poison-system-directories -+@item --error-poison-system-directories -+Give an error instead of a warning for @option{-L} options using -+system directories when cross linking. - @end table - - @c man end -Index: b/ld/lexsup.c -=================================================================== +diff --git a/ld/lexsup.c b/ld/lexsup.c +index 4cad209..be7d584 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c -@@ -498,6 +498,14 @@ +@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] = + { {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING}, + '\0', N_("=MODE"), N_("Control how orphan sections are handled."), TWO_DASHES }, - { {"wrap", required_argument, NULL, OPTION_WRAP}, - '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES }, + { {"no-poison-system-directories", no_argument, NULL, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, + '\0', NULL, N_("Do not warn for -L options using system directories"), + TWO_DASHES }, + { {"error-poison-system-directories", no_argument, NULL, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) -@@ -510,6 +518,7 @@ +@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; @@ -242,19 +275,23 @@ Index: b/ld/lexsup.c struct option *longopts; struct option *really_longopts; int last_optind; -@@ -1427,9 +1436,21 @@ - einfo (_("%P%X: --hash-size needs a numeric argument\n")); +@@ -1516,6 +1525,14 @@ parse_args (unsigned argc, char **argv) } break; + ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; + -+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: -+ command_line.poison_system_directories = FALSE; -+ break; ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; ++ break; + -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: -+ command_line.error_poison_system_directories = TRUE; -+ break; - } + case OPTION_PUSH_STATE: + input_flags.pushed = xmemdup (&input_flags, + sizeof (input_flags), +@@ -1559,6 +1576,10 @@ parse_args (unsigned argc, char **argv) + command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); @@ -264,16 +301,6 @@ Index: b/ld/lexsup.c while (ingroup) { lang_leave_group (); -Index: b/ld/ldlex.h -=================================================================== ---- a/ld/ldlex.h -+++ b/ld/ldlex.h -@@ -136,6 +136,8 @@ - #endif /* ENABLE_PLUGINS */ - OPTION_DEFAULT_SCRIPT, - OPTION_PRINT_OUTPUT_FORMAT, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, - }; - - /* The initial parser states. */ +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch b/bsp/buildroot/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch new file mode 100644 index 00000000..81986f51 --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0900-Correct-nios2-_gp-address-computation.patch @@ -0,0 +1,108 @@ +From 5eeb7401eed2f26d5fc255de816ca70a2cb9374e Mon Sep 17 00:00:00 2001 +From: Sandra Loosemore +Date: Sun, 27 Dec 2015 12:30:26 -0800 +Subject: [PATCH 900/901] Correct nios2 _gp address computation. + +2015-12-27 Sandra Loosemore + + bfd/ + * elf32-nios2.c (nios2_elf_assign_gp): Correct computation of _gp + address. + (nios2_elf32_relocate_section): Tidy code for R_NIOS2_GPREL error + messages. + +[Romain: + - backport upstream patch on 2.26 + - drop bfd/ChangeLog entry] +Signed-off-by: Romain Naour +--- + bfd/elf32-nios2.c | 31 +++++++++++++++++++++---------- + 1 file changed, 21 insertions(+), 10 deletions(-) + +diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c +index 6b29d8b..01ebd6e 100644 +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -3086,7 +3086,15 @@ lookup: + case bfd_link_hash_defined: + case bfd_link_hash_defweak: + gp_found = TRUE; +- *pgp = lh->u.def.value; ++ { ++ asection *sym_sec = lh->u.def.section; ++ bfd_vma sym_value = lh->u.def.value; ++ ++ if (sym_sec->output_section) ++ sym_value = (sym_value + sym_sec->output_offset ++ + sym_sec->output_section->vma); ++ *pgp = sym_value; ++ } + break; + case bfd_link_hash_indirect: + case bfd_link_hash_warning: +@@ -3719,7 +3727,6 @@ nios2_elf32_relocate_section (bfd *output_bfd, + struct elf32_nios2_link_hash_entry *eh; + bfd_vma relocation; + bfd_vma gp; +- bfd_vma reloc_address; + bfd_reloc_status_type r = bfd_reloc_ok; + const char *name = NULL; + int r_type; +@@ -3762,12 +3769,6 @@ nios2_elf32_relocate_section (bfd *output_bfd, + if (bfd_link_relocatable (info)) + continue; + +- if (sec && sec->output_section) +- reloc_address = (sec->output_section->vma + sec->output_offset +- + rel->r_offset); +- else +- reloc_address = 0; +- + if (howto) + { + switch (howto->type) +@@ -3816,6 +3817,15 @@ nios2_elf32_relocate_section (bfd *output_bfd, + /* Turns an absolute address into a gp-relative address. */ + if (!nios2_elf_assign_gp (output_bfd, &gp, info)) + { ++ bfd_vma reloc_address; ++ ++ if (sec && sec->output_section) ++ reloc_address = (sec->output_section->vma ++ + sec->output_offset ++ + rel->r_offset); ++ else ++ reloc_address = 0; ++ + format = _("global pointer relative relocation at address " + "0x%08x when _gp not defined\n"); + sprintf (msgbuf, format, reloc_address); +@@ -3825,7 +3835,7 @@ nios2_elf32_relocate_section (bfd *output_bfd, + else + { + bfd_vma symbol_address = rel->r_addend + relocation; +- relocation = relocation + rel->r_addend - gp; ++ relocation = symbol_address - gp; + rel->r_addend = 0; + if (((signed) relocation < -32768 + || (signed) relocation > 32767) +@@ -3833,6 +3843,8 @@ nios2_elf32_relocate_section (bfd *output_bfd, + || h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak)) + { ++ if (h) ++ name = h->root.root.string; + format = _("Unable to reach %s (at 0x%08x) from the " + "global pointer (at 0x%08x) because the " + "offset (%d) is out of the allowed range, " +@@ -3848,7 +3860,6 @@ nios2_elf32_relocate_section (bfd *output_bfd, + rel->r_offset, relocation, + rel->r_addend); + } +- + break; + case R_NIOS2_UJMP: + r = nios2_elf32_do_ujmp_relocate (input_bfd, howto, +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch b/bsp/buildroot/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch new file mode 100644 index 00000000..a490780f --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0901-Fix-assertion-reduce-number-of-messages-about-FDE-en.patch @@ -0,0 +1,67 @@ +From 39c481c2fb0e7fb127a15facf70b55d517462809 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 6 Feb 2016 00:35:31 +0100 +Subject: [PATCH 901/901] Fix assertion, reduce number of messages about FDE + encoding + +Patch by Nick Clifton [1] + +[1] https://sourceware.org/bugzilla/show_bug.cgi?id=19405 + +Signed-off-by: Romain Naour +--- + bfd/elf-eh-frame.c | 17 ++++++++++++++--- + bfd/elf32-nios2.c | 4 ++-- + 2 files changed, 16 insertions(+), 5 deletions(-) + +diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c +index e303189..e79bff0 100644 +--- a/bfd/elf-eh-frame.c ++++ b/bfd/elf-eh-frame.c +@@ -1369,14 +1369,25 @@ _bfd_elf_discard_section_eh_frame + && ent->make_relative == 0) + || (ent->fde_encoding & 0x70) == DW_EH_PE_aligned)) + { ++ static int num_warnings_issued = 0; + /* If a shared library uses absolute pointers + which we cannot turn into PC relative, + don't create the binary search table, + since it is affected by runtime relocations. */ + hdr_info->u.dwarf.table = FALSE; +- (*info->callbacks->einfo) +- (_("%P: FDE encoding in %B(%A) prevents .eh_frame_hdr" +- " table being created.\n"), abfd, sec); ++ if (num_warnings_issued < 10) ++ { ++ (*info->callbacks->einfo) ++ (_("%P: FDE encoding in %B(%A) prevents .eh_frame_hdr" ++ " table being created.\n"), abfd, sec); ++ num_warnings_issued ++; ++ } ++ else if (num_warnings_issued == 10) ++ { ++ (*info->callbacks->einfo) ++ (_("%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n")); ++ num_warnings_issued ++; ++ } + } + ent->removed = 0; + hdr_info->u.dwarf.fde_count++; +diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c +index 01ebd6e..d1b7f83 100644 +--- a/bfd/elf32-nios2.c ++++ b/bfd/elf32-nios2.c +@@ -1905,8 +1905,8 @@ nios2_elf32_install_imm16 (asection *sec, bfd_vma offset, bfd_vma value) + { + bfd_vma word = bfd_get_32 (sec->owner, sec->contents + offset); + +- BFD_ASSERT(value <= 0xffff); +- ++ BFD_ASSERT (value <= 0xffff || ((bfd_signed_vma) value) >= -0xffff); ++ + bfd_put_32 (sec->owner, word | ((value & 0xffff) << 6), + sec->contents + offset); + } +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch b/bsp/buildroot/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch new file mode 100644 index 00000000..4ba2f75c --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0902-xtensa-fix-signedness-of-gas-relocations.patch @@ -0,0 +1,101 @@ +From eb3e02b484ff75f4a2f54192422a88baa275bdfc Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Tue, 2 Feb 2016 17:11:38 +0300 +Subject: [PATCH] xtensa: fix signedness of gas relocations + +Change 1058c7532d0b "Use signed data type for R_XTENSA_DIFF* relocation +offsets." changed signedness of BFD_RELOC_XTENSA_DIFF* relocations +substituted for BFD_RELOC_*. This made it impossible to encode arbitrary +8-, 16- and 32-bit values, which broke e.g. debug info encoding by .loc +directive. Revert this part and add test. + +gas/ +2016-02-03 Max Filippov + * config/tc-xtensa.c (md_apply_fix): Mark BFD_RELOC_XTENSA_DIFF* + substitutions for BFD_RELOC_* as unsigned. + +gas/testsuite/ +2016-02-03 Max Filippov + * gas/xtensa/all.exp: Add loc to list of xtensa tests. + * gas/xtensa/loc.d: New file: loc test result patterns. + * gas/xtensa/loc.s: New file: loc test. + +Signed-off-by: Max Filippov +[Rebase on 2.26] +Signed-off-by: Romain Naour +--- + gas/config/tc-xtensa.c | 6 +++--- + gas/testsuite/gas/xtensa/all.exp | 1 + + gas/testsuite/gas/xtensa/loc.d | 10 ++++++++++ + gas/testsuite/gas/xtensa/loc.s | 7 +++++++ + 4 files changed, 21 insertions(+), 3 deletions(-) + create mode 100644 gas/testsuite/gas/xtensa/loc.d + create mode 100644 gas/testsuite/gas/xtensa/loc.s + +diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c +index d707da8..f623add 100644 +--- a/gas/config/tc-xtensa.c ++++ b/gas/config/tc-xtensa.c +@@ -5961,15 +5961,15 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) + { + case BFD_RELOC_8: + fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8; +- fixP->fx_signed = 1; ++ fixP->fx_signed = 0; + break; + case BFD_RELOC_16: + fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16; +- fixP->fx_signed = 1; ++ fixP->fx_signed = 0; + break; + case BFD_RELOC_32: + fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32; +- fixP->fx_signed = 1; ++ fixP->fx_signed = 0; + break; + default: + break; +diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp +index db39629..4daeff2 100644 +--- a/gas/testsuite/gas/xtensa/all.exp ++++ b/gas/testsuite/gas/xtensa/all.exp +@@ -101,6 +101,7 @@ if [istarget xtensa*-*-*] then { + run_dump_test "trampoline" + run_dump_test "first_frag_align" + run_dump_test "auto-litpools" ++ run_dump_test "loc" + } + + if [info exists errorInfo] then { +diff --git a/gas/testsuite/gas/xtensa/loc.d b/gas/testsuite/gas/xtensa/loc.d +new file mode 100644 +index 0000000..71983cc +--- /dev/null ++++ b/gas/testsuite/gas/xtensa/loc.d +@@ -0,0 +1,10 @@ ++#as: ++#objdump: -r ++#name: .loc directive relocs ++ ++.*: +file format .*xtensa.* ++ ++RELOCATION RECORDS FOR \[\.debug_line\]: ++#... ++.*R_XTENSA_DIFF16.*\.text\+0x00009c42 ++#... +diff --git a/gas/testsuite/gas/xtensa/loc.s b/gas/testsuite/gas/xtensa/loc.s +new file mode 100644 +index 0000000..029e14e +--- /dev/null ++++ b/gas/testsuite/gas/xtensa/loc.s +@@ -0,0 +1,7 @@ ++ .text ++ .file 1 "loc.s" ++ .loc 1 3 ++ nop ++ .space 40000 ++ .loc 1 5 ++ nop +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/2.23.2/915-xtensa-fix-.init-.fini-literals-moving.patch b/bsp/buildroot/package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch similarity index 50% rename from bsp/buildroot/package/binutils/2.23.2/915-xtensa-fix-.init-.fini-literals-moving.patch rename to bsp/buildroot/package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch index 4bdd8a02..ead3e42b 100644 --- a/bsp/buildroot/package/binutils/2.23.2/915-xtensa-fix-.init-.fini-literals-moving.patch +++ b/bsp/buildroot/package/binutils/2.26.1/0903-xtensa-fix-.init-.fini-literals-moving.patch @@ -27,21 +27,33 @@ and don't let it move literals from there in the presence of gas/ * config/tc-xtensa.c (xtensa_move_literals): Fix check for .init.literal/.fini.literal section name. + * testsuite/gas/xtensa/all.exp: Add init-fini-literals to the + list of xtensa tests. + * testsuite/gas/xtensa/init-fini-literals.d: New file: + init-fini-literals test result patterns. + * testsuite/gas/xtensa/init-fini-literals.s: New file: + init-fini-literals test. Signed-off-by: Max Filippov --- Backported from: 4111950f363221c4641dc2f33bea61cc94f34906 gas/config/tc-xtensa.c | 12 ++++++++++-- - 1 file changed, 19 insertions(+), 2 deletions(-) + gas/testsuite/gas/xtensa/all.exp | 1 + + gas/testsuite/gas/xtensa/init-fini-literals.d | 24 ++++++++++++++++++++++++ + gas/testsuite/gas/xtensa/init-fini-literals.s | 19 +++++++++++++++++++ + 4 files changed, 54 insertions(+), 2 deletions(-) + create mode 100644 gas/testsuite/gas/xtensa/init-fini-literals.d + create mode 100644 gas/testsuite/gas/xtensa/init-fini-literals.s diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 36a06cc..5773634 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c -@@ -10625,5 +10625,9 @@ xtensa_move_literals (void) +@@ -11061,6 +11061,10 @@ xtensa_move_literals (void) fixS *fix, *next_fix, **fix_splice; sym_list *lit; + struct litpool_seg *lps; + const char *init_name = INIT_SECTION_NAME; + const char *fini_name = FINI_SECTION_NAME; + int init_name_len = strlen(init_name); @@ -49,7 +61,7 @@ index 36a06cc..5773634 100644 mark_literal_frags (literal_head->next); -@@ -10632,9 +10636,13 @@ xtensa_move_literals (void) +@@ -11171,9 +11175,13 @@ xtensa_move_literals (void) for (segment = literal_head->next; segment; segment = segment->next) { @@ -65,6 +77,73 @@ index 36a06cc..5773634 100644 continue; frchain_from = seg_info (segment->seg)->frchainP; +diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp +index 7ff7bd7..6b67320 100644 +--- a/gas/testsuite/gas/xtensa/all.exp ++++ b/gas/testsuite/gas/xtensa/all.exp +@@ -102,6 +102,7 @@ if [istarget xtensa*-*-*] then { + run_dump_test "first_frag_align" + run_dump_test "auto-litpools" + run_dump_test "loc" ++ run_dump_test "init-fini-literals" + } + + if [info exists errorInfo] then { +diff --git a/gas/testsuite/gas/xtensa/init-fini-literals.d b/gas/testsuite/gas/xtensa/init-fini-literals.d +new file mode 100644 +index 0000000..19ed121 +--- /dev/null ++++ b/gas/testsuite/gas/xtensa/init-fini-literals.d +@@ -0,0 +1,24 @@ ++#as: --text-section-literals ++#objdump: -r ++#name: check that literals for .init and .fini always go to separate sections ++ ++.*: +file format .*xtensa.* ++#... ++RELOCATION RECORDS FOR \[\.init\.literal\]: ++#... ++00000000 R_XTENSA_PLT init ++#... ++RELOCATION RECORDS FOR \[\.fini\.literal\]: ++#... ++00000000 R_XTENSA_PLT fini ++#... ++RELOCATION RECORDS FOR \[\.init\]: ++#... ++.* R_XTENSA_SLOT0_OP \.init\.literal ++.* R_XTENSA_SLOT0_OP \.init\.literal\+0x00000004 ++#... ++RELOCATION RECORDS FOR \[\.fini\]: ++#... ++.* R_XTENSA_SLOT0_OP \.fini\.literal ++.* R_XTENSA_SLOT0_OP \.fini\.literal\+0x00000004 ++#... +diff --git a/gas/testsuite/gas/xtensa/init-fini-literals.s b/gas/testsuite/gas/xtensa/init-fini-literals.s +new file mode 100644 +index 0000000..7c9ec17 +--- /dev/null ++++ b/gas/testsuite/gas/xtensa/init-fini-literals.s +@@ -0,0 +1,19 @@ ++ .section .init,"ax",@progbits ++ .literal_position ++ .literal .LC0, init@PLT ++ .literal_position ++ .literal .LC1, 1 ++ .align 4 ++ ++ l32r a2, .LC0 ++ l32r a2, .LC1 ++ ++ .section .fini,"ax",@progbits ++ .literal_position ++ .literal .LC2, fini@PLT ++ .literal_position ++ .literal .LC3, 1 ++ .align 4 ++ ++ l32r a2, .LC2 ++ l32r a2, .LC3 -- 2.1.4 diff --git a/bsp/buildroot/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch b/bsp/buildroot/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch new file mode 100644 index 00000000..ffbacc4c --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0904-bfin-fdpic-upstream.patch @@ -0,0 +1,30 @@ +From ed3056ebdb9795446157af03d3e08fbb93c1b01d Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Tue, 29 Mar 2016 10:24:16 +0100 +Subject: [PATCH] Relax assertion in BFIN linker to allow for discard GOT relocs. + + PR 17334 + * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax + assertion on the size of the got section to allow it to be bigger + than the number of relocs. +diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c +index 7cc8b6d..b2fcf38 100644 +--- a/bfd/elf32-bfin.c ++++ b/bfd/elf32-bfin.c +@@ -4457,7 +4457,13 @@ elf32_bfinfdpic_finish_dynamic_sections (bfd *output_bfd, + if (bfinfdpic_got_section (info)) + { + BFD_ASSERT (bfinfdpic_gotrel_section (info)->size +- == (bfinfdpic_gotrel_section (info)->reloc_count ++ /* PR 17334: It appears that the GOT section can end up ++ being bigger than the number of relocs. Presumably ++ because some relocs have been deleted. A test case has ++ yet to be generated for verify this, but in the meantime ++ the test below has been changed from == to >= so that ++ applications can continue to be built. */ ++ >= (bfinfdpic_gotrel_section (info)->reloc_count + * sizeof (Elf32_External_Rel))); + + if (bfinfdpic_gotfixup_section (info)) +-- +1.7.1 diff --git a/bsp/buildroot/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch b/bsp/buildroot/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch new file mode 100644 index 00000000..da9d5865 --- /dev/null +++ b/bsp/buildroot/package/binutils/2.26.1/0905-bfin-rofixup-bug.patch @@ -0,0 +1,21 @@ +Fixes: LINKER BUG: .rofixup section size mismatch + +Workaround from adi-toolchain commit: +af414ec1fb628ddb1562f062f3db49823ca14ca2 +[#6798] binutils-2.21/bfd: temp workaround for rofixup mismatch errors. + +Signed-off-by: Waldemar Brodkorb + +diff -Nur binutils-2.26.1.orig/bfd/elf32-bfin.c binutils-2.26.1/bfd/elf32-bfin.c +--- binutils-2.26.1.orig/bfd/elf32-bfin.c 2015-11-13 09:27:40.000000000 +0100 ++++ binutils-2.26.1/bfd/elf32-bfin.c 2016-07-31 00:50:48.357995132 +0200 +@@ -4879,7 +4879,8 @@ + + case R_BFIN_FUNCDESC: + picrel->fd++; +- picrel->relocsfd++; ++ if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC) ++ picrel->relocsfd++; + break; + + /* This relocation describes the C++ object vtable hierarchy. diff --git a/bsp/buildroot/package/binutils/Config.in b/bsp/buildroot/package/binutils/Config.in index 64d0a09c..fdfdfe90 100644 --- a/bsp/buildroot/package/binutils/Config.in +++ b/bsp/buildroot/package/binutils/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_BINUTILS bool "binutils" select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE - depends on !BR2_aarch64 && !BR2_nios2 + depends on !BR2_nios2 depends on BR2_USE_WCHAR help Install binutils on the target @@ -22,5 +22,5 @@ config BR2_PACKAGE_BINUTILS_TARGET endif comment "binutils needs a toolchain w/ wchar" - depends on !BR2_aarch64 && !BR2_nios2 + depends on !BR2_nios2 depends on !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/binutils/Config.in.host b/bsp/buildroot/package/binutils/Config.in.host index df3c385d..86daa0cb 100644 --- a/bsp/buildroot/package/binutils/Config.in.host +++ b/bsp/buildroot/package/binutils/Config.in.host @@ -3,35 +3,35 @@ comment "Binutils Options" choice prompt "Binutils Version" depends on !BR2_arc - default BR2_BINUTILS_VERSION_2_24_X + default BR2_BINUTILS_VERSION_2_25_X help Select the version of binutils you wish to use. - config BR2_BINUTILS_VERSION_2_23_X - depends on !BR2_aarch64 && !BR2_microblaze && \ - !BR2_powerpc64le && !BR2_nios2 - # Unsupported for MIPS R6 - depends on !BR2_mips_32r6 && !BR2_mips_64r6 - bool "binutils 2.23.2" - config BR2_BINUTILS_VERSION_2_24_X - # supported, but broken on Nios-II and powerpc64le - depends on !BR2_nios2 && !BR2_powerpc64le + # supported, but broken on Nios-II, Blackfin and powerpc64le + depends on !BR2_nios2 && !BR2_powerpc64le && !BR2_bfin # Unsupported for MIPS R6 depends on !BR2_mips_32r6 && !BR2_mips_64r6 + # Unsupported ARM cores + depends on !BR2_cortex_a17 bool "binutils 2.24" config BR2_BINUTILS_VERSION_2_25_X bool "binutils 2.25.1" + # supported but broken on Blackfin + depends on !BR2_bfin + + config BR2_BINUTILS_VERSION_2_26_X + bool "binutils 2.26.1" endchoice config BR2_BINUTILS_VERSION string - default "arc-2015.12" if BR2_arc - default "2.23.2" if BR2_BINUTILS_VERSION_2_23_X + default "arc-2016.09-eng010" if BR2_arc default "2.24" if BR2_BINUTILS_VERSION_2_24_X default "2.25.1" if BR2_BINUTILS_VERSION_2_25_X + default "2.26.1" if BR2_BINUTILS_VERSION_2_26_X config BR2_BINUTILS_ENABLE_LTO bool diff --git a/bsp/buildroot/package/binutils/arc-2015.12/0001-PR-other-56780.patch b/bsp/buildroot/package/binutils/arc-2015.12/0001-PR-other-56780.patch deleted file mode 100644 index b418a2f4..00000000 --- a/bsp/buildroot/package/binutils/arc-2015.12/0001-PR-other-56780.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 7827cdf59a1894abe18aa20043a63c8c875c3fce Mon Sep 17 00:00:00 2001 -From: DJ Delorie -Date: Sat, 1 Jun 2013 01:01:44 +0000 -Subject: [PATCH] PR other/56780 merge from gcc - -binutils-gdb upstream a4818a052efb4cea976a03a2f7cb0b38b23d12d0 - -libiberty: fix --enable-install-libiberty flag [PR 56780] - -Commit 199570 fixed the --disable-install-libiberty behavior, but it also -added a bug where the enable path never works because the initial clear -of target_header_dir wasn't deleted. So we end up initializing properly -at the top only to reset it at the end all the time. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4 - -[Romain - rename patch name - squash the two upstream commits - Remove the ChangeLog] -Signed-off-by: Romain Naour ---- - libiberty/Makefile.in | 24 ++++++++++----------- - libiberty/configure | 57 +++++++++++++++++++++++++++----------------------- - libiberty/configure.ac | 47 ++++++++++++++++++++++------------------- - 3 files changed, 68 insertions(+), 60 deletions(-) - -diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in -index 0a5da31..4f40c72 100644 ---- a/libiberty/Makefile.in -+++ b/libiberty/Makefile.in -@@ -354,19 +354,19 @@ install-strip: install - # since it will be passed the multilib flags. - MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` - install_to_libdir: all -- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR) -- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n -- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ) -- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB) - if test -n "${target_header_dir}"; then \ -- case "${target_header_dir}" in \ -- /*) thd=${target_header_dir};; \ -- *) thd=${includedir}/${target_header_dir};; \ -- esac; \ -- ${mkinstalldirs} $(DESTDIR)$${thd}; \ -- for h in ${INSTALLED_HEADERS}; do \ -- ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \ -- done; \ -+ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ -+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \ -+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \ -+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \ -+ case "${target_header_dir}" in \ -+ /*) thd=${target_header_dir};; \ -+ *) thd=${includedir}/${target_header_dir};; \ -+ esac; \ -+ ${mkinstalldirs} $(DESTDIR)$${thd}; \ -+ for h in ${INSTALLED_HEADERS}; do \ -+ ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \ -+ done; \ - fi - @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install - -diff --git a/libiberty/configure b/libiberty/configure -index 6e98352..44d1f78 100755 ---- a/libiberty/configure -+++ b/libiberty/configure -@@ -675,8 +675,8 @@ with_cross_host - with_newlib - enable_maintainer_mode - enable_multilib --enable_largefile - enable_install_libiberty -+enable_largefile - ' - ac_precious_vars='build_alias - host_alias -@@ -1303,8 +1303,8 @@ Optional Features: - enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-multilib build many library versions (default) -+ --enable-install-libiberty Install headers and library for end users - --disable-largefile omit support for large files -- --enable-install-libiberty Install headers for end users - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \ - cross_compiling=maybe - fi - -+# We may wish to install the target headers somewhere. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5 -+$as_echo_n "checking whether to install libiberty headers and static library... " >&6; } -+ -+# Check whether --enable-install-libiberty was given. -+if test "${enable_install_libiberty+set}" = set; then : -+ enableval=$enable_install_libiberty; enable_install_libiberty=$enableval -+else -+ enable_install_libiberty=no -+fi -+ -+# Option parsed, now set things appropriately. -+case x"$enable_install_libiberty" in -+ xyes|x) -+ target_header_dir=libiberty -+ ;; -+ xno) -+ target_header_dir= -+ ;; -+ *) -+ # This could be sanity-checked in various ways... -+ target_header_dir="${enable_install_libiberty}" -+ ;; -+esac -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5 -+$as_echo "$enable_install_libiberty" >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5 -+$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;} -+ - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' -@@ -5475,7 +5504,6 @@ fi - - setobjs= - CHECK= --target_header_dir= - if test -n "${with_target_subdir}"; then - - # We are being configured as a target library. AC_REPLACE_FUNCS -@@ -5752,29 +5780,6 @@ _ACEOF - - esac - -- # We may wish to install the target headers somewhere. -- # Check whether --enable-install-libiberty was given. --if test "${enable_install_libiberty+set}" = set; then : -- enableval=$enable_install_libiberty; enable_install_libiberty=$enableval --else -- enable_install_libiberty=no --fi -- -- # Option parsed, now set things appropriately. -- case x"$enable_install_libiberty" in -- xyes|x) -- target_header_dir=libiberty -- ;; -- xno) -- target_header_dir= -- ;; -- *) -- # This could be sanity-checked in various ways... -- target_header_dir="${enable_install_libiberty}" -- ;; -- esac -- -- - else - - # Not a target library, so we set things up to run the test suite. -diff --git a/libiberty/configure.ac b/libiberty/configure.ac -index 754b66a..04260ec 100644 ---- a/libiberty/configure.ac -+++ b/libiberty/configure.ac -@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \ - cross_compiling=maybe - fi - -+# We may wish to install the target headers somewhere. -+AC_MSG_CHECKING([whether to install libiberty headers and static library]) -+dnl install-libiberty is disabled by default -+ -+AC_ARG_ENABLE(install-libiberty, -+[ --enable-install-libiberty Install headers and library for end users], -+enable_install_libiberty=$enableval, -+enable_install_libiberty=no)dnl -+ -+# Option parsed, now set things appropriately. -+case x"$enable_install_libiberty" in -+ xyes|x) -+ target_header_dir=libiberty -+ ;; -+ xno) -+ target_header_dir= -+ ;; -+ *) -+ # This could be sanity-checked in various ways... -+ target_header_dir="${enable_install_libiberty}" -+ ;; -+esac -+AC_MSG_RESULT($enable_install_libiberty) -+AC_MSG_NOTICE([target_header_dir = $target_header_dir]) -+ - GCC_NO_EXECUTABLES - AC_PROG_CC - AC_SYS_LARGEFILE -@@ -379,7 +404,6 @@ fi - - setobjs= - CHECK= --target_header_dir= - if test -n "${with_target_subdir}"; then - - # We are being configured as a target library. AC_REPLACE_FUNCS -@@ -490,27 +514,6 @@ if test -n "${with_target_subdir}"; then - - esac - -- # We may wish to install the target headers somewhere. -- AC_ARG_ENABLE(install-libiberty, -- [ --enable-install-libiberty Install headers for end users], -- enable_install_libiberty=$enableval, -- enable_install_libiberty=no)dnl -- -- # Option parsed, now set things appropriately. -- case x"$enable_install_libiberty" in -- xyes|x) -- target_header_dir=libiberty -- ;; -- xno) -- target_header_dir= -- ;; -- *) -- # This could be sanity-checked in various ways... -- target_header_dir="${enable_install_libiberty}" -- ;; -- esac -- -- - else - - # Not a target library, so we set things up to run the test suite. --- -1.9.3 - diff --git a/bsp/buildroot/package/binutils/arc-2016.09-eng010/0300-ld-makefile.patch b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0300-ld-makefile.patch new file mode 100644 index 00000000..73cc0980 --- /dev/null +++ b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0300-ld-makefile.patch @@ -0,0 +1,41 @@ +From d76a7549b43974fe8564971a3f40459bc495a8a7 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:40:53 +0100 +Subject: [PATCH] ld-makefile + +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + ld/Makefile.am | 2 +- + ld/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ld/Makefile.am b/ld/Makefile.am +index 0b3b049..3871c74 100644 +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -57,7 +57,7 @@ endif + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +diff --git a/ld/Makefile.in b/ld/Makefile.in +index ed98f87..530e4c9 100644 +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -413,7 +413,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/arc-2016.09-eng010/0301-check-ldrunpath-length.patch b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0301-check-ldrunpath-length.patch new file mode 100644 index 00000000..3b4c204c --- /dev/null +++ b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0301-check-ldrunpath-length.patch @@ -0,0 +1,36 @@ +From ebe1cba46df52d7bf86def3d681271fd05fb453b Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:41:47 +0100 +Subject: [PATCH] check-ldrunpath-length + +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + ld/emultempl/elf32.em | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em +index 0405d4f..efd3300 100644 +--- a/ld/emultempl/elf32.em ++++ b/ld/emultempl/elf32.em +@@ -1242,6 +1242,8 @@ fragment <link.next) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/arc-2016.09-eng010/0500-add-sysroot-fix-from-bug-3049.patch b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0500-add-sysroot-fix-from-bug-3049.patch new file mode 100644 index 00000000..f67a43ef --- /dev/null +++ b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0500-add-sysroot-fix-from-bug-3049.patch @@ -0,0 +1,52 @@ +From 30628870e583375f8927c04398c7219c6e9f703c Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:42:48 +0100 +Subject: [PATCH] add sysroot fix from bug #3049 + +Always try to prepend the sysroot prefix to absolute filenames first. + +http://bugs.gentoo.org/275666 +http://sourceware.org/bugzilla/show_bug.cgi?id=10340 + +Signed-off-by: Sven Rebhan +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +--- + ld/ldfile.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/ld/ldfile.c b/ld/ldfile.c +index 96f9ecc..1439309 100644 +--- a/ld/ldfile.c ++++ b/ld/ldfile.c +@@ -335,18 +335,25 @@ ldfile_open_file_search (const char *arch, + directory first. */ + if (! entry->flags.maybe_archive) + { +- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)) ++ /* For absolute pathnames, try to always open the file in the ++ sysroot first. If this fails, try to open the file at the ++ given location. */ ++ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename); ++ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename) ++ && ld_sysroot) + { + char *name = concat (ld_sysroot, entry->filename, + (const char *) NULL); + if (ldfile_try_open_bfd (name, entry)) + { + entry->filename = name; ++ entry->flags.sysrooted = TRUE; + return TRUE; + } + free (name); + } +- else if (ldfile_try_open_bfd (entry->filename, entry)) ++ ++ if (ldfile_try_open_bfd (entry->filename, entry)) + return TRUE; + + if (IS_ABSOLUTE_PATH (entry->filename)) +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/arc-2015.12/600-poison-system-directories.patch b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0600-poison-system-directories.patch similarity index 70% rename from bsp/buildroot/package/binutils/arc-2015.12/600-poison-system-directories.patch rename to bsp/buildroot/package/binutils/arc-2016.09-eng010/0600-poison-system-directories.patch index 8a3bdc64..d16994ec 100644 --- a/bsp/buildroot/package/binutils/arc-2015.12/600-poison-system-directories.patch +++ b/bsp/buildroot/package/binutils/arc-2016.09-eng010/0600-poison-system-directories.patch @@ -1,7 +1,16 @@ -Patch adapted to binutils arc-4.8-R3 and extended to use +From be366461dd49e760440fb28eaee5164eb281adcc Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 25 Dec 2015 11:45:38 +0100 +Subject: [PATCH] poison-system-directories + +Patch adapted to binutils 2.23.2 and extended to use BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni. +[Romain: rebase on top of 2.26] +Signed-off-by: Romain Naour +[Gustavo: adapt to binutils 2.25] Signed-off-by: Thomas Petazzoni +Signed-off-by: Gustavo Zacarias Upstream-Status: Inappropriate [distribution: codesourcery] @@ -48,7 +57,7 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2007-03-20 Joseph Myers Based on patch by Mark Hatle . ld/ - * configure.in (--enable-poison-system-directories): New option. + * configure.ac (--enable-poison-system-directories): New option. * configure, config.in: Regenerate. * ldfile.c (ldfile_add_library_path): If ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, @@ -56,12 +65,23 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 Signed-off-by: Mark Hatle Signed-off-by: Scott Garman +--- + ld/config.in | 3 +++ + ld/configure | 14 ++++++++++++++ + ld/configure.ac | 10 ++++++++++ + ld/ld.h | 8 ++++++++ + ld/ld.texinfo | 12 ++++++++++++ + ld/ldfile.c | 17 +++++++++++++++++ + ld/ldlex.h | 2 ++ + ld/ldmain.c | 2 ++ + ld/lexsup.c | 21 +++++++++++++++++++++ + 9 files changed, 89 insertions(+) -Index: b/ld/config.in -=================================================================== +diff --git a/ld/config.in b/ld/config.in +index 276fb77..35c58eb 100644 --- a/ld/config.in +++ b/ld/config.in -@@ -11,6 +11,9 @@ +@@ -14,6 +14,9 @@ language is requested. */ #undef ENABLE_NLS @@ -71,20 +91,20 @@ Index: b/ld/config.in /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION -Index: b/ld/configure -=================================================================== +diff --git a/ld/configure b/ld/configure +index a446283..d1f9504 100755 --- a/ld/configure +++ b/ld/configure -@@ -773,6 +773,7 @@ +@@ -786,6 +786,7 @@ with_lib_path enable_targets enable_64_bit_bfd with_sysroot +enable_poison_system_directories enable_gold enable_got - enable_werror -@@ -1428,6 +1429,8 @@ - (and sometimes confusing) to the casual installer + enable_compressed_debug_sections +@@ -1442,6 +1443,8 @@ Optional Features: + --disable-largefile omit support for large files --enable-targets alternative target configurations --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) + --enable-poison-system-directories @@ -92,7 +112,7 @@ Index: b/ld/configure --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) -@@ -4338,7 +4341,18 @@ +@@ -15491,7 +15494,18 @@ else fi @@ -111,11 +131,11 @@ Index: b/ld/configure # Check whether --enable-got was given. if test "${enable_got+set}" = set; then : -Index: b/ld/configure.in -=================================================================== ---- a/ld/configure.in -+++ b/ld/configure.in -@@ -70,6 +70,16 @@ +diff --git a/ld/configure.ac b/ld/configure.ac +index 188172d..2cd8443 100644 +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot) AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) @@ -132,11 +152,53 @@ Index: b/ld/configure.in dnl Use --enable-gold to decide if this linker should be the default. dnl "install_as_default" is set to false if gold is the default linker. dnl "installed_linker" is the installed BFD linker name. -Index: b/ld/ldfile.c -=================================================================== +diff --git a/ld/ld.h b/ld/ld.h +index d84ec4e..3476b26 100644 +--- a/ld/ld.h ++++ b/ld/ld.h +@@ -164,6 +164,14 @@ typedef struct { + /* If set, display the target memory usage (per memory region). */ + bfd_boolean print_memory_usage; + ++ /* If TRUE (the default) warn for uses of system directories when ++ cross linking. */ ++ bfd_boolean poison_system_directories; ++ ++ /* If TRUE (default FALSE) give an error for uses of system ++ directories when cross linking instead of a warning. */ ++ bfd_boolean error_poison_system_directories; ++ + /* Big or little endian as set on command line. */ + enum endian_enum endian; + +diff --git a/ld/ld.texinfo b/ld/ld.texinfo +index 1dd7492..fb1438e 100644 +--- a/ld/ld.texinfo ++++ b/ld/ld.texinfo +@@ -2332,6 +2332,18 @@ string identifying the original linked file does not change. + + Passing @code{none} for @var{style} disables the setting from any + @code{--build-id} options earlier on the command line. ++ ++@kindex --no-poison-system-directories ++@item --no-poison-system-directories ++Do not warn for @option{-L} options using system directories such as ++@file{/usr/lib} when cross linking. This option is intended for use ++in chroot environments when such directories contain the correct ++libraries for the target system rather than the host. ++ ++@kindex --error-poison-system-directories ++@item --error-poison-system-directories ++Give an error instead of a warning for @option{-L} options using ++system directories when cross linking. + @end table + + @c man end +diff --git a/ld/ldfile.c b/ld/ldfile.c +index 1439309..086b354 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c -@@ -116,6 +116,23 @@ +@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL); else new_dirs->name = xstrdup (name); @@ -160,81 +222,52 @@ Index: b/ld/ldfile.c } /* Try to open a BFD for a lang_input_statement. */ -Index: b/ld/ld.h -=================================================================== ---- a/ld/ld.h -+++ b/ld/ld.h -@@ -203,6 +203,14 @@ - /* If TRUE we'll just print the default output on stdout. */ - bfd_boolean print_output_format; +diff --git a/ld/ldlex.h b/ld/ldlex.h +index 6f11e7b..0ca3110 100644 +--- a/ld/ldlex.h ++++ b/ld/ldlex.h +@@ -144,6 +144,8 @@ enum option_values + OPTION_PRINT_MEMORY_USAGE, + OPTION_REQUIRE_DEFINED_SYMBOL, + OPTION_ORPHAN_HANDLING, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, + }; -+ /* If TRUE (the default) warn for uses of system directories when -+ cross linking. */ -+ bfd_boolean poison_system_directories; -+ -+ /* If TRUE (default FALSE) give an error for uses of system -+ directories when cross linking instead of a warning. */ -+ bfd_boolean error_poison_system_directories; -+ - /* Big or little endian as set on command line. */ - enum endian_enum endian; - -Index: b/ld/ldmain.c -=================================================================== + /* The initial parser states. */ +diff --git a/ld/ldmain.c b/ld/ldmain.c +index bb0b9cc..a23c56c 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c -@@ -265,6 +265,8 @@ +@@ -257,6 +257,8 @@ main (int argc, char **argv) + command_line.warn_mismatch = TRUE; command_line.warn_search_mismatch = TRUE; command_line.check_section_addresses = -1; - command_line.disable_target_specific_optimizations = -1; + command_line.poison_system_directories = TRUE; + command_line.error_poison_system_directories = FALSE; /* We initialize DEMANGLING based on the environment variable COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the -Index: b/ld/ld.texinfo -=================================================================== ---- a/ld/ld.texinfo -+++ b/ld/ld.texinfo -@@ -2156,6 +2156,18 @@ - - Passing @code{none} for @var{style} disables the setting from any - @code{--build-id} options earlier on the command line. -+ -+@kindex --no-poison-system-directories -+@item --no-poison-system-directories -+Do not warn for @option{-L} options using system directories such as -+@file{/usr/lib} when cross linking. This option is intended for use -+in chroot environments when such directories contain the correct -+libraries for the target system rather than the host. -+ -+@kindex --error-poison-system-directories -+@item --error-poison-system-directories -+Give an error instead of a warning for @option{-L} options using -+system directories when cross linking. - @end table - - @c man end -Index: b/ld/lexsup.c -=================================================================== +diff --git a/ld/lexsup.c b/ld/lexsup.c +index 4cad209..be7d584 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c -@@ -498,6 +498,14 @@ +@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] = + { {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING}, + '\0', N_("=MODE"), N_("Control how orphan sections are handled."), TWO_DASHES }, - { {"wrap", required_argument, NULL, OPTION_WRAP}, - '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES }, + { {"no-poison-system-directories", no_argument, NULL, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, + '\0', NULL, N_("Do not warn for -L options using system directories"), + TWO_DASHES }, + { {"error-poison-system-directories", no_argument, NULL, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, + '\0', NULL, N_("Give an error for -L options using system directories"), + TWO_DASHES }, }; #define OPTION_COUNT ARRAY_SIZE (ld_options) -@@ -510,6 +518,7 @@ +@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv) int ingroup = 0; char *default_dirlist = NULL; char *shortopts; @@ -242,19 +275,23 @@ Index: b/ld/lexsup.c struct option *longopts; struct option *really_longopts; int last_optind; -@@ -1427,9 +1436,21 @@ - einfo (_("%P%X: --hash-size needs a numeric argument\n")); +@@ -1516,6 +1525,14 @@ parse_args (unsigned argc, char **argv) } break; + ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; + -+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: -+ command_line.poison_system_directories = FALSE; -+ break; ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; ++ break; + -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: -+ command_line.error_poison_system_directories = TRUE; -+ break; - } + case OPTION_PUSH_STATE: + input_flags.pushed = xmemdup (&input_flags, + sizeof (input_flags), +@@ -1559,6 +1576,10 @@ parse_args (unsigned argc, char **argv) + command_line.soname = NULL; } + BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); @@ -264,16 +301,6 @@ Index: b/ld/lexsup.c while (ingroup) { lang_leave_group (); -Index: b/ld/ldlex.h -=================================================================== ---- a/ld/ldlex.h -+++ b/ld/ldlex.h -@@ -136,6 +136,8 @@ - #endif /* ENABLE_PLUGINS */ - OPTION_DEFAULT_SCRIPT, - OPTION_PRINT_OUTPUT_FORMAT, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, - }; - - /* The initial parser states. */ +-- +2.4.3 + diff --git a/bsp/buildroot/package/binutils/binutils.hash b/bsp/buildroot/package/binutils/binutils.hash index 4af54982..39796288 100644 --- a/bsp/buildroot/package/binutils/binutils.hash +++ b/bsp/buildroot/package/binutils/binutils.hash @@ -1,7 +1,7 @@ # From ftp://gcc.gnu.org/pub/binutils/releases/sha512.sum -sha512 ffe8ef263ef99183e8cc823fe8487ff7d0f7bf9a8efd2853b5f4636aca0023850d13de4eac7d77a5f69413d8a50e6f95bb14569be53df86c0bce38034525ab74 binutils-2.22.tar.bz2 -sha512 dec753bbba008f1526b89cf1bd85feba78f362f5333ffdf93953fd131eb755976dec82a0a4ba38c43d2434da007137780cfe674de5414be5cf7ce7fbc6af6d16 binutils-2.23.2.tar.bz2 sha512 5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12 binutils-2.24.tar.bz2 sha512 0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d binutils-2.25.1.tar.bz2 -# No hash for the ARC variant, comes from the github-helper: -none xxx binutils-arc-2015.12.tar.gz +sha512 9d9165609fd3b0f20d616f9891fc8e2b466eb13e2bfce40125e12427f8f201d20e2b8322bb6cb2b45e8df812f0e8ac059149f8a1f69ba3ed9d86a35c6a540b67 binutils-2.26.1.tar.bz2 + +# Locally calculated (fetched from Github) +sha512 32d2f04ec62ee0491fd711baf7e6f28052170b1fa4cb8f6046ca4709e03250335a65b362295c13c7c44f8a28d91d2c54b0ab7c8f0f2e2324ea8ba2c80cbee29a binutils-arc-2016.09-eng010.tar.gz diff --git a/bsp/buildroot/package/binutils/binutils.mk b/bsp/buildroot/package/binutils/binutils.mk index 0f75c1d9..ff90a16d 100644 --- a/bsp/buildroot/package/binutils/binutils.mk +++ b/bsp/buildroot/package/binutils/binutils.mk @@ -9,9 +9,9 @@ BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION)) ifeq ($(BINUTILS_VERSION),) ifeq ($(BR2_arc),y) -BINUTILS_VERSION = arc-2015.12 +BINUTILS_VERSION = arc-2016.09-eng010 else -BINUTILS_VERSION = 2.24 +BINUTILS_VERSION = 2.25.1 endif endif # BINUTILS_VERSION @@ -25,13 +25,23 @@ BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.bz2 BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS)) BINUTILS_INSTALL_STAGING = YES BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) -HOST_BINUTILS_DEPENDENCIES = BINUTILS_LICENSE = GPLv3+, libiberty LGPLv2.1+ BINUTILS_LICENSE_FILES = COPYING3 COPYING.LIB ifeq ($(BINUTILS_FROM_GIT),y) -BINUTILS_DEPENDENCIES += host-flex host-bison -HOST_BINUTILS_DEPENDENCIES += host-flex host-bison +BINUTILS_DEPENDENCIES += host-flex host-bison host-texinfo +HOST_BINUTILS_DEPENDENCIES += host-flex host-bison host-texinfo +endif + +# The .info files in the 2.26 tarball have an incorrect timestamp, so +# binutils tries to re-generate them. In order to avoid the dependency +# on host-texinfo, we simply update the timestamps. +ifeq ($(BR2_BINUTILS_VERSION_2_26_X),y) +define BINUTILS_FIXUP_INFO_TIMESTAMPS + find $(@D) -name '*.info' -exec touch {} \; +endef +BINUTILS_POST_PATCH_HOOKS += BINUTILS_FIXUP_INFO_TIMESTAMPS +HOST_BINUTILS_POST_PATCH_HOOKS += BINUTILS_FIXUP_INFO_TIMESTAMPS endif # When binutils sources are fetched from the binutils-gdb repository, @@ -48,14 +58,25 @@ BINUTILS_CONF_OPTS = \ --host=$(GNU_TARGET_NAME) \ --target=$(GNU_TARGET_NAME) \ --enable-install-libiberty \ + --enable-build-warnings=no \ $(BINUTILS_DISABLE_GDB_CONF_OPTS) \ $(BINUTILS_EXTRA_CONFIG_OPTIONS) +ifeq ($(BR2_STATIC_LIBS),y) +BINUTILS_CONF_OPTS += --disable-plugins +endif + # Don't build documentation. It takes up extra space / build time, # and sometimes needs specific makeinfo versions to work BINUTILS_CONF_ENV += ac_cv_prog_MAKEINFO=missing HOST_BINUTILS_CONF_ENV += ac_cv_prog_MAKEINFO=missing +# gcc bug with Os/O2/O3, PR77311 +# error: unable to find a register to spill in class 'CCREGS' +ifeq ($(BR2_bfin),y) +BINUTILS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -O1" +endif + # Install binutils after busybox to prefer full-blown utilities ifeq ($(BR2_PACKAGE_BUSYBOX),y) BINUTILS_DEPENDENCIES += busybox diff --git a/bsp/buildroot/package/blktrace/Config.in b/bsp/buildroot/package/blktrace/Config.in index ed5d78a5..c17de806 100644 --- a/bsp/buildroot/package/blktrace/Config.in +++ b/bsp/buildroot/package/blktrace/Config.in @@ -11,5 +11,6 @@ config BR2_PACKAGE_BLKTRACE http://git.kernel.dk/?p=blktrace.git;a=summary -comment "blktrace needs a (e)glibc or musl toolchain" +comment "blktrace needs a glibc or musl toolchain" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) diff --git a/bsp/buildroot/package/bluez5_utils/0001-tools-avinfo-Fix-big-endian-build.patch b/bsp/buildroot/package/bluez5_utils/0001-tools-avinfo-Fix-big-endian-build.patch deleted file mode 100644 index 06c368d8..00000000 --- a/bsp/buildroot/package/bluez5_utils/0001-tools-avinfo-Fix-big-endian-build.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 01d85fdf6a45150e82143803be3373d779d18522 Mon Sep 17 00:00:00 2001 -From: John Keeping -Date: Wed, 24 Feb 2016 13:57:38 +0000 -Subject: [PATCH] tools/avinfo: Fix big endian build - -Commit 101b439 (tools/avinfo: Add partial support for Sony LDAC) added a -new a2dp_ldac_t structure but only inside a little endian ifdef. Add -the same structure in the big endian code. - -The structure definition doesn't differ for the big/little endian cases -but if the unknown fields are discovered in the future it might, so a -copy is added rather than pulling the existing definition below the -endif. - -[John: backport from upstream commit 01d85fdf6a45150e82143803be3373d779d18522.] -Signed-off-by: John Keeping ---- - profiles/audio/a2dp-codecs.h | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/profiles/audio/a2dp-codecs.h b/profiles/audio/a2dp-codecs.h -index e9da0bf..4fb5c0c 100644 ---- a/profiles/audio/a2dp-codecs.h -+++ b/profiles/audio/a2dp-codecs.h -@@ -234,6 +234,11 @@ typedef struct { - uint8_t channel_mode:4; - } __attribute__ ((packed)) a2dp_aptx_t; - -+typedef struct { -+ a2dp_vendor_codec_t info; -+ uint8_t unknown[2]; -+} __attribute__ ((packed)) a2dp_ldac_t; -+ - #else - #error "Unknown byte order" - #endif --- -2.7.0.226.gfe986fe - diff --git a/bsp/buildroot/package/bluez5_utils/0001-tools-bneptest.c-Remove-include-linux-if_bridge.h-to.patch b/bsp/buildroot/package/bluez5_utils/0001-tools-bneptest.c-Remove-include-linux-if_bridge.h-to.patch new file mode 100644 index 00000000..e8a3ff47 --- /dev/null +++ b/bsp/buildroot/package/bluez5_utils/0001-tools-bneptest.c-Remove-include-linux-if_bridge.h-to.patch @@ -0,0 +1,45 @@ +From 7c136b4f1941e5bb2a6c8d93985c5734c6aefb29 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Sun, 22 May 2016 09:48:57 +0200 +Subject: [PATCH 1/1] tools/bneptest.c: Remove include linux/if_bridge.h to fix + musl build + +Inspired by busybox commit: +https://git.busybox.net/busybox/commit/networking/brctl.c?id=5fa6d1a632505789409a2ba6cf8e112529f9db18 + +The build error was found by the autobuilders of the buildroot project: +http://autobuild.buildroot.net/results/eba/ebaa0bcb9c325aa6ed0bbd6c7ec75d44befa7645/build-end.log + +Signed-off-by: Bernd Kuhls +(Patch sent upstream: + http://article.gmane.org/gmane.linux.bluez.kernel/67621) +--- + tools/bneptest.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/tools/bneptest.c b/tools/bneptest.c +index 1404252..b832d72 100644 +--- a/tools/bneptest.c ++++ b/tools/bneptest.c +@@ -36,7 +36,17 @@ + #include + #include + #include +-#include ++/* #include ++ * breaks on musl: we already included netinet/in.h, ++ * if we also include here, we get this: ++ * In file included from /usr/include/linux/if_bridge.h:18, ++ * from networking/brctl.c:67: ++ * /usr/include/linux/in6.h:32: error: redefinition of 'struct in6_addr' ++ * /usr/include/linux/in6.h:49: error: redefinition of 'struct sockaddr_in6' ++ * /usr/include/linux/in6.h:59: error: redefinition of 'struct ipv6_mreq' ++ */ ++/* From */ ++#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8 + + #include + +-- +2.8.1 + diff --git a/bsp/buildroot/package/bluez5_utils/bluez5_utils.hash b/bsp/buildroot/package/bluez5_utils/bluez5_utils.hash index 75c53b30..cbb3aa3c 100644 --- a/bsp/buildroot/package/bluez5_utils/bluez5_utils.hash +++ b/bsp/buildroot/package/bluez5_utils/bluez5_utils.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc: -sha256 c14ba9ddcb0055522073477b8fd8bf1ddf5d219e75fdfd4699b7e0ce5350d6b0 bluez-5.37.tar.xz +sha256 21d1bc9150d3576296595217efb98a746b592389d25d5637e8bee5da7272593b bluez-5.39.tar.xz diff --git a/bsp/buildroot/package/bluez5_utils/bluez5_utils.mk b/bsp/buildroot/package/bluez5_utils/bluez5_utils.mk index 1308e4e7..49cc7c21 100644 --- a/bsp/buildroot/package/bluez5_utils/bluez5_utils.mk +++ b/bsp/buildroot/package/bluez5_utils/bluez5_utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -BLUEZ5_UTILS_VERSION = 5.37 +BLUEZ5_UTILS_VERSION = 5.39 BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth BLUEZ5_UTILS_INSTALL_STAGING = YES @@ -12,9 +12,6 @@ BLUEZ5_UTILS_DEPENDENCIES = dbus libglib2 BLUEZ5_UTILS_LICENSE = GPLv2+, LGPLv2.1+ BLUEZ5_UTILS_LICENSE_FILES = COPYING COPYING.LIB -# 0001-Link-mcaptest-with-lrt.patch -BLUEZ5_UTILS_AUTORECONF = YES - BLUEZ5_UTILS_CONF_OPTS = \ --enable-tools \ --enable-library \ @@ -79,4 +76,12 @@ else BLUEZ5_UTILS_CONF_OPTS += --disable-systemd endif +define BLUEZ5_UTILS_INSTALL_INIT_SYSTEMD + mkdir -p $(TARGET_DIR)/etc/systemd/system/bluetooth.target.wants + ln -fs ../../../../usr/lib/systemd/system/bluetooth.service \ + $(TARGET_DIR)/etc/systemd/system/bluetooth.target.wants/bluetooth.service + ln -fs ../../../../usr/lib/systemd/system/bluetooth.service \ + $(TARGET_DIR)/etc/systemd/system/dbus-org.bluez.service +endef + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/bluez_utils/bluez_utils.mk b/bsp/buildroot/package/bluez_utils/bluez_utils.mk index c2e82951..1c93f2e5 100644 --- a/bsp/buildroot/package/bluez_utils/bluez_utils.mk +++ b/bsp/buildroot/package/bluez_utils/bluez_utils.mk @@ -54,4 +54,8 @@ BLUEZ_UTILS_CONF_OPTS += \ --disable-usb endif +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) +BLUEZ_UTILS_CONF_OPTS += --disable-pie +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/bmon/Config.in b/bsp/buildroot/package/bmon/Config.in index 09ae9cb9..bb796936 100644 --- a/bsp/buildroot/package/bmon/Config.in +++ b/bsp/buildroot/package/bmon/Config.in @@ -9,7 +9,7 @@ config BR2_PACKAGE_BMON various input modules. It provides various output methods including a curses based interface. - http://www.infradead.org/~tgr/bmon/ + https://github.com/tgraf/bmon/ comment "bmon needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/bmon/bmon.hash b/bsp/buildroot/package/bmon/bmon.hash index 810a0b9b..7f28b746 100644 --- a/bsp/buildroot/package/bmon/bmon.hash +++ b/bsp/buildroot/package/bmon/bmon.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 a9f3d7010074a3190038a8d95df5d47aaf2046b47d872590336b5f93be084685 bmon-3.7.tar.gz +sha256 9c08332520497ef1d51a733ca531ffedbb5a30c7c3f55579efe86c36138f93e1 bmon-3.9.tar.gz diff --git a/bsp/buildroot/package/bmon/bmon.mk b/bsp/buildroot/package/bmon/bmon.mk index 09396093..91993b65 100644 --- a/bsp/buildroot/package/bmon/bmon.mk +++ b/bsp/buildroot/package/bmon/bmon.mk @@ -4,7 +4,7 @@ # ################################################################################ -BMON_VERSION = 3.7 +BMON_VERSION = 3.9 BMON_SITE = https://github.com/tgraf/bmon/releases/download/v$(BMON_VERSION) BMON_DEPENDENCIES = host-pkgconf libconfuse libnl ncurses BMON_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' diff --git a/bsp/buildroot/package/boa/boa.conf b/bsp/buildroot/package/boa/boa.conf index f51c2373..e9402966 100644 --- a/bsp/buildroot/package/boa/boa.conf +++ b/bsp/buildroot/package/boa/boa.conf @@ -46,7 +46,7 @@ Port 80 # Group: The group name or GID the server should run as. User nobody -Group nobody +Group nogroup # ServerAdmin: The email address where server problems should be sent. # Note: this is not currently used, except as an environment variable diff --git a/bsp/buildroot/package/boost/0003-fenv.patch b/bsp/buildroot/package/boost/0003-fenv.patch new file mode 100644 index 00000000..95c769ae --- /dev/null +++ b/bsp/buildroot/package/boost/0003-fenv.patch @@ -0,0 +1,37 @@ +Disable fenv.h in certain configurations + +The boost build system does not properly test whether fenv.h is +available, and if it is, if it supports all the features used by +Boost. This causes build failures with uClibc (reported upstream at +https://svn.boost.org/trac/boost/ticket/11756) but also with glibc on +specific architectures that don't have a full fenv implementation, +such as NIOSII or Microblaze. + +To address this, we forcefully disable the use of fenv support in the +affected configurations. + +Signed-off-by: Bernd Kuhls +[Thomas: add Microblaze/NIOSII exclusions.] +Signed-off-by: Thomas Petazzoni + +Index: b/boost/config/platform/linux.hpp +=================================================================== +--- a/boost/config/platform/linux.hpp ++++ b/boost/config/platform/linux.hpp +@@ -47,6 +47,16 @@ + #endif + + // ++// uClibc has no support for fenv.h, and also a few architectures ++// don't have fenv.h support at all (or incomplete support) even with ++// glibc. ++ ++// ++#if defined(__UCLIBC__) || defined(__nios2__) || defined(__microblaze__) ++# define BOOST_NO_FENV_H ++#endif ++ ++// + // If glibc is past version 2 then we definitely have + // gettimeofday, earlier versions may or may not have it: + // diff --git a/bsp/buildroot/package/boost/0003-fix-libquadmath-issue.patch b/bsp/buildroot/package/boost/0003-fix-libquadmath-issue.patch deleted file mode 100644 index 49772e82..00000000 --- a/bsp/buildroot/package/boost/0003-fix-libquadmath-issue.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 74ff2db959c5fa75bec770c41ed2951a740fe936 Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Fri, 1 Jan 2016 16:49:48 +0000 -Subject: [PATCH] Change config to not use it at all if we don't - have __has_include as GCC may be configured with --disable-libquadmath but - still signal that it supports __float128 - -Backported from: 74ff2db959c5fa75bec770c41ed2951a740fe936 - -[Jörg Krause: adjust pathes to match sourceforge release tarball] -Signed-off-by: Jörg Krause - ---- - boost/math/special_functions/fpclassify.hpp | 16 +++++++++++++--- - boost/math/tools/config.hpp | 12 ------------ - 2 files changed, 13 insertions(+), 15 deletions(-) - -diff --git a/boost/math/special_functions/fpclassify.hpp b/boost/math/special_functions/fpclassify.hpp -index 0a4e1ac..58fad13 100644 ---- a/boost/math/special_functions/fpclassify.hpp -+++ b/boost/math/special_functions/fpclassify.hpp -@@ -81,7 +81,12 @@ is used. - #include - #endif - #ifdef BOOST_MATH_USE_FLOAT128 -+#ifdef __has_include -+#if __has_include("quadmath.h") - #include "quadmath.h" -+#define BOOST_MATH_HAS_QUADMATH_H -+#endif -+#endif - #endif - - #ifdef BOOST_NO_STDC_NAMESPACE -@@ -124,9 +129,14 @@ inline bool is_nan_helper(T, const boost::false_type&) - { - return false; - } --#ifdef BOOST_MATH_USE_FLOAT128 -+#if defined(BOOST_MATH_USE_FLOAT128) -+#if defined(BOOST_MATH_HAS_QUADMATH_H) - inline bool is_nan_helper(__float128 f, const boost::true_type&) { return ::isnanq(f); } - inline bool is_nan_helper(__float128 f, const boost::false_type&) { return ::isnanq(f); } -+#else -+inline bool is_nan_helper(__float128 f, const boost::true_type&) { return ::isnan(static_cast(f)); } -+inline bool is_nan_helper(__float128 f, const boost::false_type&) { return ::isnan(static_cast(f)); } -+#endif - #endif - } - -@@ -519,7 +529,7 @@ inline bool (isinf)(long double x) - return detail::isinf_impl(static_cast(x), method()); - } - #endif --#ifdef BOOST_MATH_USE_FLOAT128 -+#if defined(BOOST_MATH_USE_FLOAT128) && defined(BOOST_MATH_HAS_QUADMATH_H) - template<> - inline bool (isinf)(__float128 x) - { -@@ -611,7 +621,7 @@ inline bool (isnan)(long double x) - return detail::isnan_impl(x, method()); - } - #endif --#ifdef BOOST_MATH_USE_FLOAT128 -+#if defined(BOOST_MATH_USE_FLOAT128) && defined(BOOST_MATH_HAS_QUADMATH_H) - template<> - inline bool (isnan)(__float128 x) - { -diff --git a/boost/math/tools/config.hpp b/boost/math/tools/config.hpp -index ffd0ab4..75d29b6 100644 ---- a/boost/math/tools/config.hpp -+++ b/boost/math/tools/config.hpp -@@ -265,18 +265,6 @@ - # define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##SUF - #endif - // --// Test whether to support __float128, if we don't have quadmath.h then this can't currently work: --// --#ifndef BOOST_MATH_USE_FLOAT128 --#ifdef __has_include --#if ! __has_include("quadmath.h") --#define BOOST_MATH_DISABLE_FLOAT128 --#endif --#elif !defined(BOOST_ARCH_X86) --#define BOOST_MATH_DISABLE_FLOAT128 --#endif --#endif --// - // And then the actual configuration: - // - #if defined(_GLIBCXX_USE_FLOAT128) && defined(BOOST_GCC) && !defined(__STRICT_ANSI__) \ diff --git a/bsp/buildroot/package/boost/0004-fix-declaration-error-with-gcc-4-4.patch b/bsp/buildroot/package/boost/0004-fix-declaration-error-with-gcc-4-4.patch deleted file mode 100644 index 073ec041..00000000 --- a/bsp/buildroot/package/boost/0004-fix-declaration-error-with-gcc-4-4.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a4e9686f8a0258bc30f9da2abab65673d6b9bd50 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jupp=20M=C3=BCller?= -Date: Wed, 23 Dec 2015 09:18:51 +0100 -Subject: [PATCH] Fix declaration changes meaning error with GCC 4.4.7 (#11856) - -Backported from a4e9686f8a0258bc30f9da2abab65673d6b9bd50 - -[Jörg Krause: adjust pathes to match sourceforge release tarball] -Signed-off-by: Jörg Krause - ---- - libs/container/src/pool_resource.cpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libs/container/src/pool_resource.cpp b/libs/container/src/pool_resource.cpp -index 4df7ee2..45f1564 100644 ---- a/libs/container/src/pool_resource.cpp -+++ b/libs/container/src/pool_resource.cpp -@@ -32,11 +32,11 @@ namespace pmr { - class pool_data_t - : public block_slist_base<> - { -- typedef block_slist_base<> block_slist_base; -+ typedef block_slist_base<> block_slist_base_t; - - public: - explicit pool_data_t(std::size_t initial_blocks_per_chunk) -- : block_slist_base(), next_blocks_per_chunk(initial_blocks_per_chunk) -+ : block_slist_base_t(), next_blocks_per_chunk(initial_blocks_per_chunk) - { slist_algo::init_header(&free_slist); } - - void *allocate_block() BOOST_NOEXCEPT -@@ -59,7 +59,7 @@ class pool_data_t - void release(memory_resource &upstream) - { - slist_algo::init_header(&free_slist); -- this->block_slist_base::release(upstream); -+ this->block_slist_base_t::release(upstream); - next_blocks_per_chunk = pool_options_minimum_max_blocks_per_chunk; - } - -@@ -72,7 +72,7 @@ class pool_data_t - - //Minimum block size is at least max_align, so all pools allocate sizes that are multiple of max_align, - //meaning that all blocks are max_align-aligned. -- char *p = static_cast(block_slist_base::allocate(blocks_per_chunk*pool_block, mr)); -+ char *p = static_cast(block_slist_base_t::allocate(blocks_per_chunk*pool_block, mr)); - - //Create header types. This is no-throw - for(std::size_t i = 0, max = blocks_per_chunk; i != max; ++i){ diff --git a/bsp/buildroot/package/boost/0004-fix-getchar-with-uclibc-and-gcc-bug-58952.patch b/bsp/buildroot/package/boost/0004-fix-getchar-with-uclibc-and-gcc-bug-58952.patch new file mode 100644 index 00000000..960f0ea2 --- /dev/null +++ b/bsp/buildroot/package/boost/0004-fix-getchar-with-uclibc-and-gcc-bug-58952.patch @@ -0,0 +1,45 @@ +From 4f1c6784b37a11c78fe84bb238fb7cc377ce0d36 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Wed, 30 Mar 2016 23:28:33 +0200 +Subject: [PATCH] Fix for uClibc and gcc <= 4.8.2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +getchar() is defined as a macro in uClibc. This hits gcc bug 58952 [1] for all +gcc version <= 4.8.2 and building boost/test fails: + +./boost/test/impl/unit_test_main.ipp: In function 'int boost::unit_test::unit_test_main(boost::unit_test::init_unit_test_func, int, char**)': +./boost/test/impl/unit_test_main.ipp:194:18: error: expected unqualified-id before '(' token + +To allow building boost/test with uClibc based toolchains with gcc <= 4.8.2 use +parenthesis for std::getchar. + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58952 + +Upstream status: Pending +https://github.com/boostorg/test/pull/97 + +Signed-off-by: Jörg Krause +--- + include/boost/test/impl/unit_test_main.ipp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/boost/test/impl/unit_test_main.ipp b/boost/test/impl/unit_test_main.ipp +index 1f30c02..db61930 100644 +--- a/boost/test/impl/unit_test_main.ipp ++++ b/boost/test/impl/unit_test_main.ipp +@@ -191,7 +191,9 @@ unit_test_main( init_unit_test_func init_func, int argc, char* argv[] ) + if( runtime_config::get( runtime_config::WAIT_FOR_DEBUGGER ) ) { + results_reporter::get_stream() << "Press any key to continue..." << std::endl; + +- std::getchar(); ++ // getchar is defined as a macro in uClibc. Use parenthesis to fix ++ // gcc bug 58952 for gcc <= 4.8.2. ++ (std::getchar)(); + results_reporter::get_stream() << "Continuing..." << std::endl; + } + +-- +2.7.4 + diff --git a/bsp/buildroot/package/boost/0005-fix-undeclared-isnan.patch b/bsp/buildroot/package/boost/0005-fix-undeclared-isnan.patch deleted file mode 100644 index 95d8fedc..00000000 --- a/bsp/buildroot/package/boost/0005-fix-undeclared-isnan.patch +++ /dev/null @@ -1,32 +0,0 @@ -From fbd1393858719c7bda7d251f742950c1bc691ea8 Mon Sep 17 00:00:00 2001 -From: Kohei Takahashi -Date: Wed, 6 Jan 2016 19:39:55 +0900 -Subject: [PATCH] Qualify std:: for isnan in some situation. - -Because isnan is implemented as a macro and libstdc++ undef it within - (at least FreeBSD 10). - -Backported from fbd1393858719c7bda7d251f742950c1bc691ea8 - -[Jörg Krause: adjust pathes to match sourceforge release tarball] -Signed-off-by: Jörg Krause - ---- - boost/math/special_functions/fpclassify.hpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/boost/math/special_functions/fpclassify.hpp b/boost/math/special_functions/fpclassify.hpp -index 58fad13..d83e111 100644 ---- a/boost/math/special_functions/fpclassify.hpp -+++ b/boost/math/special_functions/fpclassify.hpp -@@ -133,6 +133,10 @@ inline bool is_nan_helper(T, const boost::false_type&) - #if defined(BOOST_MATH_HAS_QUADMATH_H) - inline bool is_nan_helper(__float128 f, const boost::true_type&) { return ::isnanq(f); } - inline bool is_nan_helper(__float128 f, const boost::false_type&) { return ::isnanq(f); } -+#elif defined(BOOST_GNU_STDLIB) && BOOST_GNU_STDLIB && \ -+ _GLIBCXX_USE_C99_MATH && !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC -+inline bool is_nan_helper(__float128 f, const boost::true_type&) { return std::isnan(static_cast(f)); } -+inline bool is_nan_helper(__float128 f, const boost::false_type&) { return std::isnan(static_cast(f)); } - #else - inline bool is_nan_helper(__float128 f, const boost::true_type&) { return ::isnan(static_cast(f)); } - inline bool is_nan_helper(__float128 f, const boost::false_type&) { return ::isnan(static_cast(f)); } diff --git a/bsp/buildroot/package/boost/0006-uclibc-fenv.patch b/bsp/buildroot/package/boost/0006-uclibc-fenv.patch deleted file mode 100644 index ea10f8cc..00000000 --- a/bsp/buildroot/package/boost/0006-uclibc-fenv.patch +++ /dev/null @@ -1,26 +0,0 @@ -Disable fenv.h support for uClibc-based toolchains. - -The boost build system does not recognize the fact that fenv.h is an -optional module in uClibc and tries to use it even if UCLIBC_HAS_FENV -is disabled. This patch disables fenv support completely when compiling -with a uClibc-based toolchain. Bug was reported upstream: -https://svn.boost.org/trac/boost/ticket/11756 - -Signed-off-by: Bernd Kuhls - ---- boost_1_60_0.org/boost/config/platform/linux.hpp 2015-12-08 19:55:19.000000000 +0100 -+++ boost_1_60_0/boost/config/platform/linux.hpp 2016-02-06 12:35:25.692754553 +0100 -@@ -47,6 +47,13 @@ - #endif - - // -+// uClibc has no support for fenv.h -+// -+#if defined(__UCLIBC__) -+# define BOOST_NO_FENV_H -+#endif -+ -+// - // If glibc is past version 2 then we definitely have - // gettimeofday, earlier versions may or may not have it: - // diff --git a/bsp/buildroot/package/boost/Config.in b/bsp/buildroot/package/boost/Config.in index ed67285a..403bbf31 100644 --- a/bsp/buildroot/package/boost/Config.in +++ b/bsp/buildroot/package/boost/Config.in @@ -1,14 +1,9 @@ comment "boost needs a toolchain w/ C++, threads, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR -config BR2_PACKAGE_BOOST_ARCH_SUPPORTS - bool - default y if !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII - config BR2_PACKAGE_BOOST bool "boost" depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS # Boost could theorically be built with threading=single, but # that unfortunately doesn't work. Until someone fixes that, # let's depend on threads. @@ -70,8 +65,8 @@ config BR2_PACKAGE_BOOST_CONTAINER # supported, but it doesn't build. config BR2_PACKAGE_BOOST_CONTEXT bool "boost-context" - depends on (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel \ - || BR2_powerpc || BR2_x86_64) + depends on ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) || \ + BR2_i386 || BR2_mips || BR2_mipsel || BR2_powerpc || BR2_x86_64 config BR2_PACKAGE_BOOST_COROUTINE bool "boost-coroutine" @@ -119,6 +114,11 @@ comment "boost-log needs a toolchain w/ NPTL" config BR2_PACKAGE_BOOST_MATH bool "boost-math" +config BR2_PACKAGE_BOOST_METAPARSE + depends on BR2_USE_MMU # boost-test + select BR2_PACKAGE_BOOST_TEST + bool "boost-metaparse" + config BR2_PACKAGE_BOOST_MPI bool "boost-mpi" @@ -154,7 +154,13 @@ config BR2_PACKAGE_BOOST_THREAD config BR2_PACKAGE_BOOST_TIMER bool "boost-timer" +config BR2_PACKAGE_BOOST_TYPE_ERASURE + bool "boost-type_erasure" + config BR2_PACKAGE_BOOST_WAVE bool "boost-wave" + # limitation of assembler for coldfire + # error: Tried to convert PC relative branch to absolute jump + depends on !BR2_m68k_cf endif diff --git a/bsp/buildroot/package/boost/boost.hash b/bsp/buildroot/package/boost/boost.hash index 294282a6..c4af22e5 100644 --- a/bsp/buildroot/package/boost/boost.hash +++ b/bsp/buildroot/package/boost/boost.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/boost/files/boost/1.60.0/ -md5 65a840e1a0b13a558ff19eeb2c4f0cbe boost_1_60_0.tar.bz2 -sha1 7f56ab507d3258610391b47fef6b11635861175a boost_1_60_0.tar.bz2 +# From http://sourceforge.net/projects/boost/files/boost/1.61.0/ +md5 6095876341956f65f9d35939ccea1a9f boost_1_61_0.tar.bz2 +sha1 f84b1a1ce764108ec3c2b7bd7704cf8dfd3c9d01 boost_1_61_0.tar.bz2 diff --git a/bsp/buildroot/package/boost/boost.mk b/bsp/buildroot/package/boost/boost.mk index 15f0b77a..1bed6b25 100644 --- a/bsp/buildroot/package/boost/boost.mk +++ b/bsp/buildroot/package/boost/boost.mk @@ -4,21 +4,20 @@ # ################################################################################ -BOOST_VERSION = 1.60.0 +BOOST_VERSION = 1.61.0 BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2 BOOST_SITE = http://downloads.sourceforge.net/project/boost/boost/$(BOOST_VERSION) BOOST_INSTALL_STAGING = YES BOOST_LICENSE = Boost Software License 1.0 BOOST_LICENSE_FILES = LICENSE_1_0.txt -HOST_BOOST_DEPENDENCIES = - # keep host variant as minimal as possible HOST_BOOST_FLAGS = --without-icu \ --without-libraries=$(subst $(space),$(comma),atomic chrono context \ coroutine coroutine2 date_time exception filesystem graph \ graph_parallel iostreams locale log math mpi program_options python \ - random regex serialization signals system test thread timer wave) + random regex serialization signals system test thread timer type_erasure \ + wave) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_ATOMIC),,atomic) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CHRONO),,chrono) @@ -35,6 +34,7 @@ BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_IOSTREAMS),,iostreams) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOCALE),,locale) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOG),,log) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MATH),,math) +BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_METAPARSE),,metaparse) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MPI),,mpi) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PROGRAM_OPTIONS),,program_options) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PYTHON),,python) @@ -46,6 +46,7 @@ BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SYSTEM),,system) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TEST),,test) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_THREAD),,thread) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TIMER),,timer) +BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TYPE_ERASURE),,type_erasure) BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_WAVE),,wave) BOOST_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) diff --git a/bsp/buildroot/package/bootutils/Config.in b/bsp/buildroot/package/bootutils/Config.in index 370da0d1..af4a170c 100644 --- a/bsp/buildroot/package/bootutils/Config.in +++ b/bsp/buildroot/package/bootutils/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_BOOTUTILS bool "bootutils" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help BootUtils is a collection of utilities to facilitate booting of Linux 2.6-based systems. The process of finding the root volume diff --git a/bsp/buildroot/package/botan/botan.hash b/bsp/buildroot/package/botan/botan.hash index ab8788eb..3da5f690 100644 --- a/bsp/buildroot/package/botan/botan.hash +++ b/bsp/buildroot/package/botan/botan.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 c2cdb47a8b1ac2368de5b9c51a8fab2a72a5641fbc1afd1abe81d5c6e4197420 Botan-1.10.8.tgz +sha256 23ec973d4b4a4fe04f490d409e08ac5638afe3aa09acd7f520daaff38ba19b90 Botan-1.10.13.tgz diff --git a/bsp/buildroot/package/botan/botan.mk b/bsp/buildroot/package/botan/botan.mk index 6ac3ce7e..69c973ea 100644 --- a/bsp/buildroot/package/botan/botan.mk +++ b/bsp/buildroot/package/botan/botan.mk @@ -4,9 +4,9 @@ # ################################################################################ -BOTAN_VERSION = 1.10.8 +BOTAN_VERSION = 1.10.13 BOTAN_SOURCE = Botan-$(BOTAN_VERSION).tgz -BOTAN_SITE = http://files.randombit.net/botan +BOTAN_SITE = http://botan.randombit.net/releases BOTAN_LICENSE = BSD-2c BOTAN_LICENSE_FILES = doc/license.txt diff --git a/bsp/buildroot/package/btrfs-progs/0004-Makefile.in-install-static-library-and-headers-in-in.patch b/bsp/buildroot/package/btrfs-progs/0004-Makefile.in-install-static-library-and-headers-in-in.patch new file mode 100644 index 00000000..e6e9eab8 --- /dev/null +++ b/bsp/buildroot/package/btrfs-progs/0004-Makefile.in-install-static-library-and-headers-in-in.patch @@ -0,0 +1,45 @@ +From 2c2c2d992c3b298793983317588f73cf41675652 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 27 Jul 2016 22:49:58 +0200 +Subject: [PATCH] Makefile.in: install static library and headers in + install-static + +Currently, the install-static target only installs the statically +compiled tools. However, some programs outside of btrfs-progs (for +example docker) link with the btrfs libraries. If such programs want +to link statically against the btrfs-progs library, then this library +should be installed by "install-static". Indeed, "make install" cannot +be used if the support for shared library is not enabled. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.in | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 8450ab3..0d3b490 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -183,7 +183,7 @@ test: test-fsck test-convert test-misc + # NOTE: For static compiles, you need to have all the required libs + # static equivalent available + # +-static: $(progs_static) ++static: $(progs_static) $(libs_static) + + version.h: version.sh version.h.in configure.ac + @echo " [SH] $@" +@@ -346,6 +346,10 @@ install-static: $(progs_static) $(INSTALLDIRS) + for p in $(progs_static) ; do \ + $(INSTALL) -D -m755 $$p $(DESTDIR)$(bindir)/`basename $$p .static` ; \ + done ++ $(INSTALL) -m755 -d $(DESTDIR)$(libdir) ++ $(INSTALL) $(libs_static) $(DESTDIR)$(libdir) ++ $(INSTALL) -m755 -d $(DESTDIR)$(incdir) ++ $(INSTALL) -m644 $(headers) $(DESTDIR)$(incdir) + + $(INSTALLDIRS): + @echo "Making install in $(patsubst install-%,%,$@)" +-- +2.7.4 + diff --git a/bsp/buildroot/package/btrfs-progs/btrfs-progs.mk b/bsp/buildroot/package/btrfs-progs/btrfs-progs.mk index 2c3dc50d..87680574 100644 --- a/bsp/buildroot/package/btrfs-progs/btrfs-progs.mk +++ b/bsp/buildroot/package/btrfs-progs/btrfs-progs.mk @@ -11,11 +11,13 @@ BTRFS_PROGS_DEPENDENCIES = host-pkgconf e2fsprogs lzo util-linux zlib BTRFS_PROGS_CONF_OPTS = --disable-backtrace BTRFS_PROGS_LICENSE = GPLv2 BTRFS_PROGS_LICENSE_FILES = COPYING +BTRFS_PROGS_INSTALL_STAGING = YES # Doesn't autodetect static-only and tries to build both ifeq ($(BR2_STATIC_LIBS),y) BTRFS_PROGS_MAKE_OPTS = static BTRFS_PROGS_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-static +BTRFS_PROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-static endif $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/bullet/bullet.hash b/bsp/buildroot/package/bullet/bullet.hash new file mode 100644 index 00000000..5b5360c6 --- /dev/null +++ b/bsp/buildroot/package/bullet/bullet.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 c26ac96b487d7e44136ff4406dbbfe5a4d7d254ed1a2c09122c464803e7d1314 bullet-19f999ac087e68ffc2551ffb73e35e60271a0d27.tar.gz diff --git a/bsp/buildroot/package/busybox/0008-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch b/bsp/buildroot/package/busybox/0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch similarity index 100% rename from bsp/buildroot/package/busybox/0008-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch rename to bsp/buildroot/package/busybox/0002-Makefile.flags-strip-non-l-arguments-returned-by-pkg.patch diff --git a/bsp/buildroot/package/busybox/0002-unzip.patch b/bsp/buildroot/package/busybox/0002-unzip.patch deleted file mode 100644 index 400e5284..00000000 --- a/bsp/buildroot/package/busybox/0002-unzip.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 1de25a6e87e0e627aa34298105a3d17c60a1f44e Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Mon, 26 Oct 2015 19:33:05 +0100 -Subject: [PATCH] unzip: test for bad archive SEGVing - -function old new delta -huft_build 1296 1300 +4 - -Signed-off-by: Denys Vlasenko -Signed-off-by: Gustavo Zacarias ---- - archival/libarchive/decompress_gunzip.c | 11 +++++++---- - testsuite/unzip.tests | 23 ++++++++++++++++++++++- - 2 files changed, 29 insertions(+), 5 deletions(-) - -diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c -index 7b6f459..30bf451 100644 ---- a/archival/libarchive/decompress_gunzip.c -+++ b/archival/libarchive/decompress_gunzip.c -@@ -305,11 +305,12 @@ static int huft_build(const unsigned *b, const unsigned n, - unsigned i; /* counter, current code */ - unsigned j; /* counter */ - int k; /* number of bits in current code */ -- unsigned *p; /* pointer into c[], b[], or v[] */ -+ const unsigned *p; /* pointer into c[], b[], or v[] */ - huft_t *q; /* points to current table */ - huft_t r; /* table entry for structure assignment */ - huft_t *u[BMAX]; /* table stack */ - unsigned v[N_MAX]; /* values in order of bit length */ -+ unsigned v_end; - int ws[BMAX + 1]; /* bits decoded stack */ - int w; /* bits decoded */ - unsigned x[BMAX + 1]; /* bit offsets, then code stack */ -@@ -324,7 +325,7 @@ static int huft_build(const unsigned *b, const unsigned n, - - /* Generate counts for each bit length */ - memset(c, 0, sizeof(c)); -- p = (unsigned *) b; /* cast allows us to reuse p for pointing to b */ -+ p = b; - i = n; - do { - c[*p]++; /* assume all entries <= BMAX */ -@@ -365,12 +366,14 @@ static int huft_build(const unsigned *b, const unsigned n, - } - - /* Make a table of values in order of bit lengths */ -- p = (unsigned *) b; -+ p = b; - i = 0; -+ v_end = 0; - do { - j = *p++; - if (j != 0) { - v[x[j]++] = i; -+ v_end = x[j]; - } - } while (++i < n); - -@@ -432,7 +435,7 @@ static int huft_build(const unsigned *b, const unsigned n, - - /* set up table entry in r */ - r.b = (unsigned char) (k - w); -- if (p >= v + n) { -+ if (p >= v + v_end) { // Was "if (p >= v + n)" but v[] can be shorter! - r.e = 99; /* out of values--invalid code */ - } else if (*p < s) { - r.e = (unsigned char) (*p < 256 ? 16 : 15); /* 256 is EOB code */ -diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests -index 8677a03..ca0a458 100755 ---- a/testsuite/unzip.tests -+++ b/testsuite/unzip.tests -@@ -7,7 +7,7 @@ - - . ./testing.sh - --# testing "test name" "options" "expected result" "file input" "stdin" -+# testing "test name" "commands" "expected result" "file input" "stdin" - # file input will be file called "input" - # test can create a file "actual" instead of writing to stdout - -@@ -30,6 +30,27 @@ testing "unzip (subdir only)" "unzip -q foo.zip foo/ && test -d foo && test ! -f - rmdir foo - rm foo.zip - -+# File containing some damaged encrypted stream -+testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \ -+"Archive: bad.zip -+ inflating: ]3j½r«IK-%Ix -+unzip: inflate error -+1 -+" \ -+"" "\ -+begin-base64 644 bad.zip -+UEsDBBQAAgkIAAAAIQA5AAAANwAAADwAAAAQAAcAXTNqwr1ywqtJGxJLLSVJ -+eCkBD0AdKBk8JzQsIj01JC0/ORJQSwMEFAECCAAAAAAhADoAAAAPAAAANgAA -+AAwAAQASw73Ct1DCokohPXQiNjoUNTUiHRwgLT4WHlBLAQIQABQAAggIAAAA -+oQA5AAAANwAAADwAAAAQQAcADAAAACwAMgCAAAAAAABdM2rCvXLCq0kbEkst -+JUl4KQEPQB0oGSY4Cz4QNgEnJSYIPVBLAQIAABQAAggAAAAAIQAqAAAADwAA -+BDYAAAAMAAEADQAAADIADQAAAEEAAAASw73Ct1DKokohPXQiNzA+FAI1HCcW -+NzITNFBLBQUKAC4JAA04Cw0EOhZQSwUGAQAABAIAAgCZAAAAeQAAAAIALhM= -+==== -+" -+ -+rm * -+ - # Clean up scratch directory. - - cd .. --- -2.6.2 - diff --git a/bsp/buildroot/package/busybox/0003-g-unzip-fix-recent-breakage.patch b/bsp/buildroot/package/busybox/0003-g-unzip-fix-recent-breakage.patch deleted file mode 100644 index 061e2c47..00000000 --- a/bsp/buildroot/package/busybox/0003-g-unzip-fix-recent-breakage.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 6bd3fff51aa74e2ee2d87887b12182a3b09792ef Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Fri, 30 Oct 2015 23:41:53 +0100 -Subject: [PATCH] [g]unzip: fix recent breakage. - -Also, do emit error message we so painstakingly pass from gzip internals - -Signed-off-by: Denys Vlasenko -Signed-off-by: Arnout Vandecappelle (Essensium/Mind) ---- - archival/libarchive/decompress_gunzip.c | 33 +++++++++++++++++++++------------ - testsuite/unzip.tests | 1 + - 2 files changed, 22 insertions(+), 12 deletions(-) - -diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c -index 30bf451..20e4d9a 100644 ---- a/archival/libarchive/decompress_gunzip.c -+++ b/archival/libarchive/decompress_gunzip.c -@@ -309,8 +309,7 @@ static int huft_build(const unsigned *b, const unsigned n, - huft_t *q; /* points to current table */ - huft_t r; /* table entry for structure assignment */ - huft_t *u[BMAX]; /* table stack */ -- unsigned v[N_MAX]; /* values in order of bit length */ -- unsigned v_end; -+ unsigned v[N_MAX + 1]; /* values in order of bit length. last v[] is never used */ - int ws[BMAX + 1]; /* bits decoded stack */ - int w; /* bits decoded */ - unsigned x[BMAX + 1]; /* bit offsets, then code stack */ -@@ -365,15 +364,17 @@ static int huft_build(const unsigned *b, const unsigned n, - *xp++ = j; - } - -- /* Make a table of values in order of bit lengths */ -+ /* Make a table of values in order of bit lengths. -+ * To detect bad input, unused v[i]'s are set to invalid value UINT_MAX. -+ * In particular, last v[i] is never filled and must not be accessed. -+ */ -+ memset(v, 0xff, sizeof(v)); - p = b; - i = 0; -- v_end = 0; - do { - j = *p++; - if (j != 0) { - v[x[j]++] = i; -- v_end = x[j]; - } - } while (++i < n); - -@@ -435,7 +436,9 @@ static int huft_build(const unsigned *b, const unsigned n, - - /* set up table entry in r */ - r.b = (unsigned char) (k - w); -- if (p >= v + v_end) { // Was "if (p >= v + n)" but v[] can be shorter! -+ if (/*p >= v + n || -- redundant, caught by the second check: */ -+ *p == UINT_MAX /* do we access uninited v[i]? (see memset(v))*/ -+ ) { - r.e = 99; /* out of values--invalid code */ - } else if (*p < s) { - r.e = (unsigned char) (*p < 256 ? 16 : 15); /* 256 is EOB code */ -@@ -520,8 +523,9 @@ static NOINLINE int inflate_codes(STATE_PARAM_ONLY) - e = t->e; - if (e > 16) - do { -- if (e == 99) -- abort_unzip(PASS_STATE_ONLY);; -+ if (e == 99) { -+ abort_unzip(PASS_STATE_ONLY); -+ } - bb >>= t->b; - k -= t->b; - e -= 16; -@@ -557,8 +561,9 @@ static NOINLINE int inflate_codes(STATE_PARAM_ONLY) - e = t->e; - if (e > 16) - do { -- if (e == 99) -+ if (e == 99) { - abort_unzip(PASS_STATE_ONLY); -+ } - bb >>= t->b; - k -= t->b; - e -= 16; -@@ -824,8 +829,9 @@ static int inflate_block(STATE_PARAM smallint *e) - - b_dynamic >>= 4; - k_dynamic -= 4; -- if (nl > 286 || nd > 30) -+ if (nl > 286 || nd > 30) { - abort_unzip(PASS_STATE_ONLY); /* bad lengths */ -+ } - - /* read in bit-length-code lengths */ - for (j = 0; j < nb; j++) { -@@ -906,12 +912,14 @@ static int inflate_block(STATE_PARAM smallint *e) - bl = lbits; - - i = huft_build(ll, nl, 257, cplens, cplext, &inflate_codes_tl, &bl); -- if (i != 0) -+ if (i != 0) { - abort_unzip(PASS_STATE_ONLY); -+ } - bd = dbits; - i = huft_build(ll + nl, nd, 0, cpdist, cpdext, &inflate_codes_td, &bd); -- if (i != 0) -+ if (i != 0) { - abort_unzip(PASS_STATE_ONLY); -+ } - - /* set up data for inflate_codes() */ - inflate_codes_setup(PASS_STATE bl, bd); -@@ -999,6 +1007,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate) - error_msg = "corrupted data"; - if (setjmp(error_jmp)) { - /* Error from deep inside zip machinery */ -+ bb_error_msg(error_msg); - n = -1; - goto ret; - } -diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests -index ca0a458..d8738a3 100755 ---- a/testsuite/unzip.tests -+++ b/testsuite/unzip.tests -@@ -34,6 +34,7 @@ rm foo.zip - testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \ - "Archive: bad.zip - inflating: ]3j½r«IK-%Ix -+unzip: corrupted data - unzip: inflate error - 1 - " \ --- -2.6.2 - diff --git a/bsp/buildroot/package/busybox/0003-gzip.patch b/bsp/buildroot/package/busybox/0003-gzip.patch new file mode 100644 index 00000000..f9b321fc --- /dev/null +++ b/bsp/buildroot/package/busybox/0003-gzip.patch @@ -0,0 +1,18 @@ +From upstream: https://busybox.net/downloads/fixes-1.25.0/ + +Signed-off-by: Gustavo Zacarias + +--- busybox-1.25.0/archival/gzip.c ++++ busybox-1.25.0-gzip/archival/gzip.c +@@ -2220,10 +2220,7 @@ int gzip_main(int argc UNUSED_PARAM, cha + opt >>= ENABLE_GUNZIP ? 7 : 5; /* drop cfv[dt]qn bits */ + if (opt == 0) + opt = 1 << 6; /* default: 6 */ +- /* Map 1..3 to 4 */ +- if (opt & 0x7) +- opt |= 1 << 4; +- opt = ffs(opt >> 3); ++ opt = ffs(opt >> 4); /* Maps -1..-4 to [0], -5 to [1] ... -9 to [5] */ + max_chain_length = 1 << gzip_level_config[opt].chain_shift; + good_match = gzip_level_config[opt].good; + max_lazy_match = gzip_level_config[opt].lazy2 * 2; diff --git a/bsp/buildroot/package/busybox/0004-ip.patch b/bsp/buildroot/package/busybox/0004-ip.patch new file mode 100644 index 00000000..d392adc1 --- /dev/null +++ b/bsp/buildroot/package/busybox/0004-ip.patch @@ -0,0 +1,18 @@ +From upstream: https://busybox.net/downloads/fixes-1.25.0/ + +Signed-off-by: Gustavo Zacarias + +--- busybox-1.25.0/networking/libiproute/iproute.c ++++ busybox-1.25.0-ip/networking/libiproute/iproute.c +@@ -362,10 +362,9 @@ IF_FEATURE_IP_RULE(ARG_table,) + req.r.rtm_scope = RT_SCOPE_NOWHERE; + + if (cmd != RTM_DELROUTE) { ++ req.r.rtm_scope = RT_SCOPE_UNIVERSE; + if (RTPROT_BOOT != 0) + req.r.rtm_protocol = RTPROT_BOOT; +- if (RT_SCOPE_UNIVERSE != 0) +- req.r.rtm_scope = RT_SCOPE_UNIVERSE; + if (RTN_UNICAST != 0) + req.r.rtm_type = RTN_UNICAST; + } diff --git a/bsp/buildroot/package/busybox/0004-truncate-open-mode.patch b/bsp/buildroot/package/busybox/0004-truncate-open-mode.patch deleted file mode 100644 index f0dc6d1f..00000000 --- a/bsp/buildroot/package/busybox/0004-truncate-open-mode.patch +++ /dev/null @@ -1,74 +0,0 @@ -From be729c1d3b5c923f10871dd68ea94156d0f8c803 Mon Sep 17 00:00:00 2001 -From: Ari Sundholm -Date: Mon, 4 Jan 2016 15:40:37 +0200 -Subject: [PATCH] truncate: always set mode when opening file to avoid fortify - errors - -Busybox crashes due to no mode being given when opening: -$ ./busybox truncate -s 1M foo -*** invalid open64 call: O_CREAT without mode ***: ./busybox terminated -======= Backtrace: ========= -/lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7f66d921338f] -/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f66d92aac9c] -/lib/x86_64-linux-gnu/libc.so.6(+0xeb6aa)[0x7f66d928b6aa] -./busybox[0x4899f9] -======= Memory map: ======== -00400000-004d0000 r-xp 00000000 00:1a 137559 /home/ari/busybox/busybox -006cf000-006d0000 r--p 000cf000 00:1a 137559 /home/ari/busybox/busybox -006d0000-006d1000 rw-p 000d0000 00:1a 137559 /home/ari/busybox/busybox -006d1000-006d4000 rw-p 00000000 00:00 0 -014e7000-01508000 rw-p 00000000 00:00 0 [heap] -7f66d8f8a000-7f66d8fa0000 r-xp 00000000 08:07 1579008 /lib/x86_64-linux-gnu/libgcc_s.so.1 -7f66d8fa0000-7f66d919f000 ---p 00016000 08:07 1579008 /lib/x86_64-linux-gnu/libgcc_s.so.1 -7f66d919f000-7f66d91a0000 rw-p 00015000 08:07 1579008 /lib/x86_64-linux-gnu/libgcc_s.so.1 -7f66d91a0000-7f66d935b000 r-xp 00000000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so -7f66d935b000-7f66d955a000 ---p 001bb000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so -7f66d955a000-7f66d955e000 r--p 001ba000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so -7f66d955e000-7f66d9560000 rw-p 001be000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so -7f66d9560000-7f66d9565000 rw-p 00000000 00:00 0 -7f66d9565000-7f66d966a000 r-xp 00000000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so -7f66d966a000-7f66d9869000 ---p 00105000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so -7f66d9869000-7f66d986a000 r--p 00104000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so -7f66d986a000-7f66d986b000 rw-p 00105000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so -7f66d986b000-7f66d988e000 r-xp 00000000 08:07 1578981 /lib/x86_64-linux-gnu/ld-2.19.so -7f66d9a64000-7f66d9a67000 rw-p 00000000 00:00 0 -7f66d9a8a000-7f66d9a8d000 rw-p 00000000 00:00 0 -7f66d9a8d000-7f66d9a8e000 r--p 00022000 08:07 1578981 /lib/x86_64-linux-gnu/ld-2.19.so -7f66d9a8e000-7f66d9a8f000 rw-p 00023000 08:07 1578981 /lib/x86_64-linux-gnu/ld-2.19.so -7f66d9a8f000-7f66d9a90000 rw-p 00000000 00:00 0 -7ffc47761000-7ffc47782000 rw-p 00000000 00:00 0 [stack] -7ffc477ab000-7ffc477ad000 r-xp 00000000 00:00 0 [vdso] -ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] -Aborted (core dumped) -$ - -Fix this by simply always setting the mode, as it doesn't hurt even -when O_CREAT is not specified. - -This bug is a regression introduced in fc3e40e, as xopen(), which -was originally used, would automatically set the mode. - -Signed-off-by: Ari Sundholm -Signed-off-by: Mike Frysinger -(cherry picked from commit e111a1640494fe87fc913f94fae3bb805de0fc99) -Signed-off-by: Gustavo Zacarias ---- - coreutils/truncate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/coreutils/truncate.c b/coreutils/truncate.c -index e5fa656..4c997bf 100644 ---- a/coreutils/truncate.c -+++ b/coreutils/truncate.c -@@ -64,7 +64,7 @@ int truncate_main(int argc UNUSED_PARAM, char **argv) - - argv += optind; - while (*argv) { -- int fd = open(*argv, flags); -+ int fd = open(*argv, flags, 0666); - if (fd < 0) { - if (errno != ENOENT || !(opts & OPT_NOCREATE)) { - bb_perror_msg("%s: open", *argv); --- -2.6.2 - diff --git a/bsp/buildroot/package/busybox/0005-ntpd.patch b/bsp/buildroot/package/busybox/0005-ntpd.patch new file mode 100644 index 00000000..f652ec66 --- /dev/null +++ b/bsp/buildroot/package/busybox/0005-ntpd.patch @@ -0,0 +1,20 @@ +From upstream: https://busybox.net/downloads/fixes-1.25.0/ + +Signed-off-by: Gustavo Zacarias + +--- busybox-1.25.0/networking/ntpd.c ++++ busybox-1.25.0-ntpd/networking/ntpd.c +@@ -2051,6 +2051,13 @@ recv_and_process_client_pkt(void /*int f + goto bail; + } + ++ /* Respond only to client and symmetric active packets */ ++ if ((msg.m_status & MODE_MASK) != MODE_CLIENT ++ && (msg.m_status & MODE_MASK) != MODE_SYM_ACT ++ ) { ++ goto bail; ++ } ++ + query_status = msg.m_status; + query_xmttime = msg.m_xmttime; + diff --git a/bsp/buildroot/package/busybox/0006-top-move-free-prev_hist-out-of-signal-path.patch b/bsp/buildroot/package/busybox/0006-top-move-free-prev_hist-out-of-signal-path.patch new file mode 100644 index 00000000..f5e29420 --- /dev/null +++ b/bsp/buildroot/package/busybox/0006-top-move-free-prev_hist-out-of-signal-path.patch @@ -0,0 +1,48 @@ +From aedc3fe19fac368dc363050e0387d263b7e01cc6 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Fri, 19 Aug 2016 11:07:31 +0200 +Subject: [PATCH] top: move free(prev_hist) out of signal path + +It was seen being called recursively on repeated signals, +leading to double free + +Signed-off-by: Denys Vlasenko +Backported-from: https://git.busybox.net/busybox/commit/?id=aedc3fe19fac368dc363050e0387d263b7e01cc6 +Signed-off-by: Luca Ceresoli + +--- + procps/top.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/procps/top.c b/procps/top.c +index 73cd285..6f7f7d3 100644 +--- a/procps/top.c ++++ b/procps/top.c +@@ -728,12 +728,6 @@ static void reset_term(void) + { + if (!OPT_BATCH_MODE) + tcsetattr_stdin_TCSANOW(&initial_settings); +- if (ENABLE_FEATURE_CLEAN_UP) { +- clearmems(); +-# if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE +- free(prev_hist); +-# endif +- } + } + + static void sig_catcher(int sig) +@@ -1258,5 +1252,11 @@ int top_main(int argc UNUSED_PARAM, char **argv) + #if ENABLE_FEATURE_USE_TERMIOS + reset_term(); + #endif ++ if (ENABLE_FEATURE_CLEAN_UP) { ++ clearmems(); ++#if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE ++ free(prev_hist); ++#endif ++ } + return EXIT_SUCCESS; + } +-- +2.7.4 + diff --git a/bsp/buildroot/package/busybox/Config.in b/bsp/buildroot/package/busybox/Config.in index a3a328d4..7ef3f0ed 100644 --- a/bsp/buildroot/package/busybox/Config.in +++ b/bsp/buildroot/package/busybox/Config.in @@ -26,6 +26,8 @@ config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES A space-separated list of configuration fragment files, that will be merged to the main BusyBox configuration file. +# This option is not an option of Busybox, it can be selected even +# if Busybox is not enabled. config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS bool "Show packages that are also provided by busybox" help @@ -36,6 +38,7 @@ config BR2_PACKAGE_BUSYBOX_SELINUX select BR2_PACKAGE_LIBSELINUX depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_arc bool "Enable SELinux support" help @@ -74,8 +77,10 @@ endif if !BR2_PACKAGE_BUSYBOX # kconfig doesn't support else -# add dummy config so the stuff with busybox alternatives are shown -# when busybox is disabled +# This option is not an option of Busybox, it can be selected even if +# Busybox is not enabled. This dummy option ensures that packages that +# depend on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS are visible when Busybox +# is disabled. config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS default y endif diff --git a/bsp/buildroot/package/busybox/S01logging b/bsp/buildroot/package/busybox/S01logging index a72c69d2..4632a4cc 100644 --- a/bsp/buildroot/package/busybox/S01logging +++ b/bsp/buildroot/package/busybox/S01logging @@ -3,10 +3,14 @@ # Start logging # +SYSLOGD_ARGS=-n +KLOGD_ARGS=-n +[ -r /etc/default/logging ] && . /etc/default/logging + start() { printf "Starting logging: " - start-stop-daemon -b -S -q -m -p /var/run/syslogd.pid --exec /sbin/syslogd -- -n - start-stop-daemon -b -S -q -m -p /var/run/klogd.pid --exec /sbin/klogd -- -n + start-stop-daemon -b -S -q -m -p /var/run/syslogd.pid --exec /sbin/syslogd -- $SYSLOGD_ARGS + start-stop-daemon -b -S -q -m -p /var/run/klogd.pid --exec /sbin/klogd -- $KLOGD_ARGS echo "OK" } diff --git a/bsp/buildroot/package/busybox/S10mdev b/bsp/buildroot/package/busybox/S10mdev index d386d420..63ca955b 100644 --- a/bsp/buildroot/package/busybox/S10mdev +++ b/bsp/buildroot/package/busybox/S10mdev @@ -8,6 +8,8 @@ case "$1" in echo "Starting mdev..." echo /sbin/mdev >/proc/sys/kernel/hotplug /sbin/mdev -s + # coldplug modules + find /sys/ -name modalias -print0 | xargs -0 sort -u -z | xargs -0 modprobe -abq ;; stop) ;; diff --git a/bsp/buildroot/package/busybox/busybox-minimal.config b/bsp/buildroot/package/busybox/busybox-minimal.config new file mode 100644 index 00000000..a394a1e6 --- /dev/null +++ b/bsp/buildroot/package/busybox/busybox-minimal.config @@ -0,0 +1,1070 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.25.0 +# Tue Jun 21 20:21:32 2016 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +# CONFIG_DESKTOP is not set +# CONFIG_EXTRA_COMPAT is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_PLATFORM_LINUX=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +# CONFIG_SHOW_USAGE is not set +# CONFIG_FEATURE_VERBOSE_USAGE is not set +# CONFIG_FEATURE_COMPRESS_USAGE is not set +CONFIG_BUSYBOX=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +# CONFIG_LOCALE_SUPPORT is not set +# CONFIG_UNICODE_SUPPORT is not set +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_PAM is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_LONG_OPTS=y +CONFIG_FEATURE_DEVPTS=y +CONFIG_FEATURE_CLEAN_UP=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +# CONFIG_FEATURE_PIDFILE is not set +CONFIG_PID_FILE_PATH="" +CONFIG_FEATURE_SUID=y +# CONFIG_FEATURE_SUID_CONFIG is not set +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +# CONFIG_FEATURE_HAVE_RPC is not set + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +CONFIG_NOMMU=y +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Installation Options ("make install" behavior) +# +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FEATURE_RTMINMAX=y +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=1 +CONFIG_SHA3_SMALL=1 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=999 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +CONFIG_FEATURE_HWIB=y + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_XZ is not set +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +# CONFIG_FEATURE_SEAMLESS_BZ2 is not set +# CONFIG_FEATURE_SEAMLESS_GZ is not set +# CONFIG_FEATURE_SEAMLESS_Z is not set +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +# CONFIG_GUNZIP is not set +# CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set +# CONFIG_BUNZIP2 is not set +# CONFIG_UNLZMA is not set +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_LZMA is not set +# CONFIG_UNXZ is not set +# CONFIG_XZ is not set +# CONFIG_BZIP2 is not set +# CONFIG_CPIO is not set +# CONFIG_FEATURE_CPIO_O is not set +# CONFIG_FEATURE_CPIO_P is not set +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +# CONFIG_GZIP is not set +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set +CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set +# CONFIG_LZOP is not set +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM2CPIO is not set +# CONFIG_RPM is not set +# CONFIG_TAR is not set +# CONFIG_FEATURE_TAR_CREATE is not set +# CONFIG_FEATURE_TAR_AUTODETECT is not set +# CONFIG_FEATURE_TAR_FROM is not set +# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set +# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set +# CONFIG_FEATURE_TAR_SELINUX is not set +# CONFIG_UNZIP is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y +CONFIG_HOSTID=y +CONFIG_ID=y +# CONFIG_GROUPS is not set +# CONFIG_SHUF is not set +# CONFIG_STAT is not set +# CONFIG_FEATURE_STAT_FORMAT is not set +# CONFIG_FEATURE_STAT_FILESYSTEM is not set +CONFIG_SYNC=y +# CONFIG_FEATURE_SYNC_FANCY is not set +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +# CONFIG_FEATURE_TOUCH_NODEREF is not set +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUNCATE=y +CONFIG_UNLINK=y +# CONFIG_BASE64 is not set +CONFIG_WHO=y +# CONFIG_USERS is not set +# CONFIG_CAL is not set +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set +CONFIG_CHROOT=y +CONFIG_CKSUM=y +# CONFIG_COMM is not set +CONFIG_CP=y +# CONFIG_FEATURE_CP_LONG_OPTIONS is not set +CONFIG_CUT=y +CONFIG_DF=y +# CONFIG_FEATURE_DF_FANCY is not set +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set +# CONFIG_EXPAND is not set +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +# CONFIG_FSYNC is not set +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_FEATURE_FLOAT_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +# CONFIG_SPLIT is not set +# CONFIG_FEATURE_SPLIT_FANCY is not set +CONFIG_STTY=y +# CONFIG_SUM is not set +# CONFIG_TAC is not set +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="GNU/Linux" +# CONFIG_UNEXPAND is not set +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +# CONFIG_FEATURE_WC_LARGE is not set +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +# CONFIG_CHVT is not set +# CONFIG_FGCONSOLE is not set +# CONFIG_CLEAR is not set +# CONFIG_DEALLOCVT is not set +# CONFIG_DUMPKMAP is not set +# CONFIG_KBD_MODE is not set +# CONFIG_LOADFONT is not set +# CONFIG_LOADKMAP is not set +# CONFIG_OPENVT is not set +# CONFIG_RESET is not set +# CONFIG_RESIZE is not set +# CONFIG_FEATURE_RESIZE_PRINT is not set +# CONFIG_SETCONSOLE is not set +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_SETKEYCODES is not set +# CONFIG_SETLOGCONS is not set +# CONFIG_SHOWKEY is not set +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set + +# +# Debian Utilities +# +# CONFIG_MKTEMP is not set +# CONFIG_PIPE_PROGRESS is not set +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +# CONFIG_AWK is not set +# CONFIG_FEATURE_AWK_LIBM is not set +# CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set +# CONFIG_CMP is not set +# CONFIG_DIFF is not set +# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set +# CONFIG_FEATURE_DIFF_DIR is not set +# CONFIG_ED is not set +# CONFIG_PATCH is not set +CONFIG_SED=y +# CONFIG_VI is not set +CONFIG_FEATURE_VI_MAX_LEN=0 +# CONFIG_FEATURE_VI_8BIT is not set +# CONFIG_FEATURE_VI_COLON is not set +# CONFIG_FEATURE_VI_YANKMARK is not set +# CONFIG_FEATURE_VI_SEARCH is not set +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set +# CONFIG_FEATURE_VI_USE_SIGNALS is not set +# CONFIG_FEATURE_VI_DOT_CMD is not set +# CONFIG_FEATURE_VI_READONLY is not set +# CONFIG_FEATURE_VI_SETOPTS is not set +# CONFIG_FEATURE_VI_SET is not set +# CONFIG_FEATURE_VI_WIN_RESIZE is not set +# CONFIG_FEATURE_VI_ASK_TERMINAL is not set +# CONFIG_FEATURE_VI_UNDO is not set +# CONFIG_FEATURE_VI_UNDO_QUEUE is not set +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0 +# CONFIG_FEATURE_ALLOW_EXEC is not set + +# +# Finding Utilities +# +# CONFIG_FIND is not set +# CONFIG_FEATURE_FIND_PRINT0 is not set +# CONFIG_FEATURE_FIND_MTIME is not set +# CONFIG_FEATURE_FIND_MMIN is not set +# CONFIG_FEATURE_FIND_PERM is not set +# CONFIG_FEATURE_FIND_TYPE is not set +# CONFIG_FEATURE_FIND_XDEV is not set +# CONFIG_FEATURE_FIND_MAXDEPTH is not set +# CONFIG_FEATURE_FIND_NEWER is not set +# CONFIG_FEATURE_FIND_INUM is not set +# CONFIG_FEATURE_FIND_EXEC is not set +# CONFIG_FEATURE_FIND_EXEC_PLUS is not set +# CONFIG_FEATURE_FIND_USER is not set +# CONFIG_FEATURE_FIND_GROUP is not set +# CONFIG_FEATURE_FIND_NOT is not set +# CONFIG_FEATURE_FIND_DEPTH is not set +# CONFIG_FEATURE_FIND_PAREN is not set +# CONFIG_FEATURE_FIND_SIZE is not set +# CONFIG_FEATURE_FIND_PRUNE is not set +# CONFIG_FEATURE_FIND_DELETE is not set +# CONFIG_FEATURE_FIND_PATH is not set +# CONFIG_FEATURE_FIND_REGEX is not set +# CONFIG_FEATURE_FIND_CONTEXT is not set +# CONFIG_FEATURE_FIND_LINKS is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +CONFIG_HALT=y +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +CONFIG_INIT=y +CONFIG_LINUXRC=y +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=0 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="linux" +CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y +CONFIG_MESG=y +CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +# CONFIG_USE_BB_CRYPT_SHA is not set +# CONFIG_ADDGROUP is not set +# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +# CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=60000 +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +# CONFIG_CHPASSWD is not set +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" +# CONFIG_CRYPTPW is not set +# CONFIG_MKPASSWD is not set +# CONFIG_DELUSER is not set +# CONFIG_DELGROUP is not set +# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set +CONFIG_GETTY=y +CONFIG_LOGIN=y +# CONFIG_LOGIN_SESSION_AS_CHILD is not set +# CONFIG_LOGIN_SCRIPTS is not set +CONFIG_FEATURE_NOLOGIN=y +CONFIG_FEATURE_SECURETTY=y +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +# CONFIG_SU is not set +# CONFIG_FEATURE_SU_SYSLOG is not set +# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set +# CONFIG_SULOGIN is not set +# CONFIG_VLOCK is not set + +# +# Linux Ext2 FS Progs +# +# CONFIG_CHATTR is not set +# CONFIG_FSCK is not set +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +# CONFIG_MODINFO is not set +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +# CONFIG_INSMOD is not set +# CONFIG_RMMOD is not set +# CONFIG_LSMOD is not set +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +# CONFIG_MODPROBE is not set +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +# CONFIG_DEPMOD is not set + +# +# Options common to multiple modutils +# +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_MODUTILS_ALIAS is not set +# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set +CONFIG_DEFAULT_MODULES_DIR="" +CONFIG_DEFAULT_DEPMOD_FILE="" + +# +# Linux System Utilities +# +# CONFIG_BLKDISCARD is not set +# CONFIG_BLOCKDEV is not set +# CONFIG_FATATTR is not set +# CONFIG_FSTRIM is not set +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_MOUNT=y +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +# CONFIG_FEATURE_MOUNT_LABEL is not set +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_FEATURE_MOUNT_OTHERTAB=y +# CONFIG_NSENTER is not set +# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set +# CONFIG_REV is not set +# CONFIG_SETARCH is not set +# CONFIG_UEVENT is not set +# CONFIG_UNSHARE is not set +# CONFIG_ACPID is not set +# CONFIG_FEATURE_ACPID_COMPAT is not set +# CONFIG_BLKID is not set +# CONFIG_FEATURE_BLKID_TYPE is not set +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +# CONFIG_FBSET is not set +# CONFIG_FEATURE_FBSET_FANCY is not set +# CONFIG_FEATURE_FBSET_READMODE is not set +# CONFIG_FDFLUSH is not set +# CONFIG_FDFORMAT is not set +# CONFIG_FDISK is not set +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +# CONFIG_FEATURE_FDISK_WRITABLE is not set +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +# CONFIG_FEATURE_GPT_LABEL is not set +# CONFIG_FEATURE_FDISK_ADVANCED is not set +# CONFIG_FINDFS is not set +# CONFIG_FLOCK is not set +CONFIG_FREERAMDISK=y +# CONFIG_FSCK_MINIX is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +# CONFIG_MKFS_VFAT is not set +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +# CONFIG_HEXDUMP is not set +# CONFIG_FEATURE_HEXDUMP_REVERSE is not set +# CONFIG_HD is not set +# CONFIG_HWCLOCK is not set +# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set +# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +# CONFIG_IPCRM is not set +# CONFIG_IPCS is not set +# CONFIG_LOSETUP is not set +# CONFIG_LSPCI is not set +# CONFIG_LSUSB is not set +# CONFIG_MKSWAP is not set +# CONFIG_FEATURE_MKSWAP_UUID is not set +CONFIG_MORE=y +# CONFIG_PIVOT_ROOT is not set +# CONFIG_RDATE is not set +# CONFIG_RDEV is not set +# CONFIG_READPROFILE is not set +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SWAPONOFF is not set +# CONFIG_FEATURE_SWAPON_DISCARD is not set +# CONFIG_FEATURE_SWAPON_PRI is not set +# CONFIG_SWITCH_ROOT is not set +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +# CONFIG_FEATURE_MTAB_SUPPORT is not set +# CONFIG_VOLUMEID is not set +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set +# CONFIG_FEATURE_VOLUMEID_BTRFS is not set +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_EXFAT is not set +# CONFIG_FEATURE_VOLUMEID_EXT is not set +# CONFIG_FEATURE_VOLUMEID_F2FS is not set +# CONFIG_FEATURE_VOLUMEID_FAT is not set +# CONFIG_FEATURE_VOLUMEID_HFS is not set +# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_NILFS is not set +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set + +# +# Miscellaneous Utilities +# +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_FEATURE_CROND_DIR="" +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +# CONFIG_LESS is not set +CONFIG_FEATURE_LESS_MAXLINES=0 +# CONFIG_FEATURE_LESS_BRACKETS is not set +# CONFIG_FEATURE_LESS_FLAGS is not set +# CONFIG_FEATURE_LESS_TRUNCATE is not set +# CONFIG_FEATURE_LESS_MARKS is not set +# CONFIG_FEATURE_LESS_REGEXP is not set +# CONFIG_FEATURE_LESS_WINCH is not set +# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set +# CONFIG_FEATURE_LESS_DASHCMD is not set +# CONFIG_FEATURE_LESS_LINENUMS is not set +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +# CONFIG_RFKILL is not set +CONFIG_SETSERIAL=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_UBIRENAME is not set +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_WALL is not set +# CONFIG_ADJTIMEX is not set +# CONFIG_BBCONFIG is not set +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +# CONFIG_BEEP is not set +CONFIG_FEATURE_BEEP_FREQ=0 +CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CHRT is not set +# CONFIG_CRONTAB is not set +# CONFIG_DC is not set +# CONFIG_FEATURE_DC_LIBM is not set +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +# CONFIG_FBSPLASH is not set +# CONFIG_FLASHCP is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_IONICE is not set +# CONFIG_INOTIFYD is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +# CONFIG_MOUNTPOINT is not set +# CONFIG_MT is not set +# CONFIG_RAIDAUTORUN is not set +# CONFIG_READAHEAD is not set +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +# CONFIG_SETSID is not set +# CONFIG_STRINGS is not set +# CONFIG_TIME is not set +# CONFIG_TIMEOUT is not set +# CONFIG_TTYSIZE is not set +# CONFIG_VOLNAME is not set +# CONFIG_WATCHDOG is not set + +# +# Networking Utilities +# +# CONFIG_NAMEIF is not set +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +# CONFIG_NBDCLIENT is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +# CONFIG_NC_EXTRA is not set +# CONFIG_NC_110_COMPAT is not set +CONFIG_PING=y +# CONFIG_PING6 is not set +# CONFIG_FEATURE_FANCY_PING is not set +CONFIG_WGET=y +# CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set +# CONFIG_FEATURE_WGET_TIMEOUT is not set +# CONFIG_FEATURE_WGET_OPENSSL is not set +# CONFIG_FEATURE_WGET_SSL_HELPER is not set +# CONFIG_WHOIS is not set +# CONFIG_FEATURE_IPV6 is not set +# CONFIG_FEATURE_UNIX_LOCAL is not set +# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_ARP is not set +# CONFIG_ARPING is not set +# CONFIG_BRCTL is not set +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +# CONFIG_DNSD is not set +# CONFIG_ETHER_WAKE is not set +# CONFIG_FAKEIDENTD is not set +# CONFIG_FTPD is not set +# CONFIG_FEATURE_FTP_WRITE is not set +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +# CONFIG_FEATURE_FTP_AUTHENTICATION is not set +# CONFIG_FTPGET is not set +# CONFIG_FTPPUT is not set +# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +# CONFIG_FEATURE_IFCONFIG_SLIP is not set +# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +# CONFIG_IFENSLAVE is not set +# CONFIG_IFPLUGD is not set +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +# CONFIG_FEATURE_IP_TUNNEL is not set +# CONFIG_FEATURE_IP_RULE is not set +# CONFIG_FEATURE_IP_NEIGH is not set +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +# CONFIG_IPTUNNEL is not set +# CONFIG_IPRULE is not set +# CONFIG_IPNEIGH is not set +# CONFIG_IPCALC is not set +# CONFIG_FEATURE_IPCALC_FANCY is not set +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +# CONFIG_NSLOOKUP is not set +# CONFIG_NTPD is not set +# CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_PSCAN is not set +CONFIG_ROUTE=y +# CONFIG_SLATTACH is not set +# CONFIG_TCPSVD is not set +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +# CONFIG_TELNETD is not set +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +# CONFIG_TFTP is not set +# CONFIG_TFTPD is not set +# CONFIG_FEATURE_TFTP_GET is not set +# CONFIG_FEATURE_TFTP_PUT is not set +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_TFTP_DEBUG is not set +# CONFIG_TRACEROUTE is not set +# CONFIG_TRACEROUTE6 is not set +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_TUNCTL is not set +# CONFIG_FEATURE_TUNCTL_UG is not set +# CONFIG_UDHCPC6 is not set +# CONFIG_UDHCPD is not set +# CONFIG_DHCPRELAY is not set +# CONFIG_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +CONFIG_DHCPD_LEASES_FILE="" +CONFIG_UDHCPC=y +# CONFIG_FEATURE_UDHCPC_ARPING is not set +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=9 +# CONFIG_FEATURE_UDHCP_RFC3397 is not set +# CONFIG_FEATURE_UDHCP_8021Q is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" +# CONFIG_UDPSVD is not set +# CONFIG_VCONFIG is not set +# CONFIG_ZCIP is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +# CONFIG_MAKEMIME is not set +CONFIG_FEATURE_MIME_CHARSET="" +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +# CONFIG_REFORMIME is not set +# CONFIG_FEATURE_REFORMIME_COMPAT is not set +# CONFIG_SENDMAIL is not set + +# +# Process Utilities +# +# CONFIG_IOSTAT is not set +# CONFIG_LSOF is not set +# CONFIG_MPSTAT is not set +# CONFIG_NMETER is not set +# CONFIG_PMAP is not set +# CONFIG_POWERTOP is not set +# CONFIG_PSTREE is not set +# CONFIG_PWDX is not set +# CONFIG_SMEMCAP is not set +# CONFIG_TOP is not set +# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set +# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set +# CONFIG_FEATURE_TOP_SMP_CPU is not set +# CONFIG_FEATURE_TOP_DECIMALS is not set +# CONFIG_FEATURE_TOP_SMP_PROCESS is not set +# CONFIG_FEATURE_TOPMEM is not set +# CONFIG_UPTIME is not set +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +# CONFIG_FREE is not set +# CONFIG_FUSER is not set +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +# CONFIG_PGREP is not set +# CONFIG_PIDOF is not set +# CONFIG_FEATURE_PIDOF_SINGLE is not set +# CONFIG_FEATURE_PIDOF_OMIT is not set +# CONFIG_PKILL is not set +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_LONG=y +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +# CONFIG_RENICE is not set +# CONFIG_BB_SYSCTL is not set +# CONFIG_FEATURE_SHOW_THREADS is not set +# CONFIG_WATCH is not set + +# +# Runit Utilities +# +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVLOGD is not set +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Shells +# +# CONFIG_ASH is not set +# CONFIG_ASH_BASH_COMPAT is not set +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_JOB_CONTROL is not set +# CONFIG_ASH_ALIAS is not set +# CONFIG_ASH_GETOPTS is not set +# CONFIG_ASH_BUILTIN_ECHO is not set +# CONFIG_ASH_BUILTIN_PRINTF is not set +# CONFIG_ASH_BUILTIN_TEST is not set +# CONFIG_ASH_HELP is not set +# CONFIG_ASH_CMDCMD is not set +# CONFIG_ASH_MAIL is not set +# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set +# CONFIG_ASH_RANDOM_SUPPORT is not set +# CONFIG_ASH_EXPAND_PRMT is not set +# CONFIG_CTTYHACK is not set +CONFIG_HUSH=y +CONFIG_HUSH_BASH_COMPAT=y +CONFIG_HUSH_BRACE_EXPANSION=y +CONFIG_HUSH_HELP=y +CONFIG_HUSH_INTERACTIVE=y +CONFIG_HUSH_SAVEHISTORY=y +CONFIG_HUSH_JOB=y +CONFIG_HUSH_TICK=y +CONFIG_HUSH_IF=y +CONFIG_HUSH_LOOPS=y +CONFIG_HUSH_CASE=y +CONFIG_HUSH_FUNCTIONS=y +CONFIG_HUSH_LOCAL=y +CONFIG_HUSH_RANDOM_SUPPORT=y +CONFIG_HUSH_EXPORT_N=y +CONFIG_HUSH_MODE_X=y +# CONFIG_MSH is not set +# CONFIG_FEATURE_SH_IS_ASH is not set +CONFIG_FEATURE_SH_IS_HUSH=y +# CONFIG_FEATURE_SH_IS_NONE is not set +# CONFIG_FEATURE_BASH_IS_ASH is not set +# CONFIG_FEATURE_BASH_IS_HUSH is not set +CONFIG_FEATURE_BASH_IS_NONE=y +CONFIG_SH_MATH_SUPPORT=y +# CONFIG_SH_MATH_SUPPORT_64 is not set +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +# CONFIG_FEATURE_SH_HISTFILESIZE is not set + +# +# System Logging Utilities +# +# CONFIG_KLOGD is not set +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set +# CONFIG_LOGGER is not set +# CONFIG_LOGREAD is not set +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set +# CONFIG_SYSLOGD is not set +# CONFIG_FEATURE_ROTATE_LOGFILE is not set +# CONFIG_FEATURE_REMOTE_LOG is not set +# CONFIG_FEATURE_SYSLOGD_DUP is not set +# CONFIG_FEATURE_SYSLOGD_CFG is not set +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 +# CONFIG_FEATURE_IPC_SYSLOG is not set +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 +# CONFIG_FEATURE_KMSG_SYSLOG is not set diff --git a/bsp/buildroot/package/busybox/busybox.config b/bsp/buildroot/package/busybox/busybox.config index bb138f95..02b1ee1b 100644 --- a/bsp/buildroot/package/busybox/busybox.config +++ b/bsp/buildroot/package/busybox/busybox.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.23.0 -# Sun Dec 28 21:14:57 2014 +# Busybox version: 1.25.0 +# Wed Jun 22 20:07:11 2016 # CONFIG_HAVE_DOT_CONFIG=y @@ -23,6 +23,7 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y # CONFIG_FEATURE_COMPRESS_USAGE is not set +CONFIG_BUSYBOX=y CONFIG_FEATURE_INSTALLER=y # CONFIG_INSTALL_NO_USR is not set # CONFIG_LOCALE_SUPPORT is not set @@ -63,7 +64,7 @@ CONFIG_FEATURE_SYSLOG=y # CONFIG_BUILD_LIBBUSYBOX is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -# CONFIG_LFS is not set +CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" @@ -75,6 +76,7 @@ CONFIG_EXTRA_LDLIBS="" # # CONFIG_DEBUG is not set # CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set # CONFIG_UNIT_TEST is not set # CONFIG_WERROR is not set CONFIG_NO_DEBUG_LIB=y @@ -96,7 +98,7 @@ CONFIG_PREFIX="./_install" # # Busybox Library Tuning # -# CONFIG_FEATURE_SYSTEMD is not set +# CONFIG_FEATURE_USE_BSS_TAIL is not set CONFIG_FEATURE_RTMINMAX=y CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 @@ -140,6 +142,7 @@ CONFIG_AR=y CONFIG_FEATURE_AR_CREATE=y # CONFIG_UNCOMPRESS is not set CONFIG_GUNZIP=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y CONFIG_BUNZIP2=y CONFIG_UNLZMA=y # CONFIG_FEATURE_LZMA_FAST is not set @@ -156,6 +159,7 @@ CONFIG_CPIO=y CONFIG_GZIP=y # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set # CONFIG_LZOP is not set # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM2CPIO is not set @@ -183,10 +187,20 @@ CONFIG_DATE=y CONFIG_FEATURE_DATE_ISOFMT=y # CONFIG_FEATURE_DATE_NANO is not set CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y CONFIG_HOSTID=y CONFIG_ID=y # CONFIG_GROUPS is not set # CONFIG_SHUF is not set +# CONFIG_STAT is not set +# CONFIG_FEATURE_STAT_FORMAT is not set +# CONFIG_FEATURE_STAT_FILESYSTEM is not set +CONFIG_SYNC=y +# CONFIG_FEATURE_SYNC_FANCY is not set CONFIG_TEST=y CONFIG_FEATURE_TEST_64=y CONFIG_TOUCH=y @@ -195,6 +209,7 @@ CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUNCATE=y CONFIG_UNLINK=y # CONFIG_BASE64 is not set CONFIG_WHO=y @@ -211,10 +226,6 @@ CONFIG_CKSUM=y CONFIG_CP=y # CONFIG_FEATURE_CP_LONG_OPTIONS is not set CONFIG_CUT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set -CONFIG_FEATURE_DD_IBS_OBS=y CONFIG_DF=y # CONFIG_FEATURE_DF_FANCY is not set CONFIG_DIRNAME=y @@ -279,12 +290,8 @@ CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y # CONFIG_SPLIT is not set # CONFIG_FEATURE_SPLIT_FANCY is not set -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set CONFIG_STTY=y # CONFIG_SUM is not set -CONFIG_SYNC=y -# CONFIG_FEATURE_SYNC_FANCY is not set # CONFIG_TAC is not set CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y @@ -293,6 +300,7 @@ CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_TRUE=y CONFIG_TTY=y CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="GNU/Linux" # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set CONFIG_UNIQ=y @@ -452,6 +460,7 @@ CONFIG_HALT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" CONFIG_INIT=y +CONFIG_LINUXRC=y CONFIG_FEATURE_USE_INITTAB=y CONFIG_FEATURE_KILL_REMOVED=y CONFIG_FEATURE_KILL_DELAY=0 @@ -459,30 +468,34 @@ CONFIG_FEATURE_INIT_SCTTY=y CONFIG_FEATURE_INIT_SYSLOG=y CONFIG_FEATURE_EXTRA_QUIET=y # CONFIG_FEATURE_INIT_COREDUMPS is not set -CONFIG_FEATURE_INITRD=y CONFIG_INIT_TERMINAL_TYPE="linux" +CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y CONFIG_MESG=y CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y # # Login/Password Management Utilities # -# CONFIG_ADD_SHELL is not set -# CONFIG_REMOVE_SHELL is not set CONFIG_FEATURE_SHADOWPASSWDS=y # CONFIG_USE_BB_PWD_GRP is not set # CONFIG_USE_BB_SHADOW is not set CONFIG_USE_BB_CRYPT=y # CONFIG_USE_BB_CRYPT_SHA is not set +CONFIG_ADDGROUP=y +# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set CONFIG_ADDUSER=y # CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 CONFIG_LAST_SYSTEM_ID=999 -CONFIG_ADDGROUP=y -# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set -# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_CHPASSWD is not set +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="md5" +# CONFIG_CRYPTPW is not set +CONFIG_MKPASSWD=y CONFIG_DELUSER=y CONFIG_DELGROUP=y # CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set @@ -494,9 +507,6 @@ CONFIG_FEATURE_NOLOGIN=y CONFIG_FEATURE_SECURETTY=y CONFIG_PASSWD=y CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -# CONFIG_CRYPTPW is not set -# CONFIG_CHPASSWD is not set -CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y @@ -545,6 +555,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # # Linux System Utilities # +# CONFIG_BLKDISCARD is not set # CONFIG_BLOCKDEV is not set # CONFIG_FATATTR is not set CONFIG_FSTRIM=y @@ -554,7 +565,22 @@ CONFIG_FEATURE_MDEV_RENAME=y # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set CONFIG_FEATURE_MDEV_EXEC=y # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_MOUNT=y +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +# CONFIG_FEATURE_MOUNT_LABEL is not set +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_FEATURE_MOUNT_OTHERTAB=y +# CONFIG_NSENTER is not set +# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set # CONFIG_REV is not set +CONFIG_SETARCH=y +CONFIG_UEVENT=y +# CONFIG_UNSHARE is not set # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set CONFIG_BLKID=y @@ -567,7 +593,7 @@ CONFIG_FEATURE_FBSET_READMODE=y CONFIG_FDFLUSH=y CONFIG_FDFORMAT=y CONFIG_FDISK=y -CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set CONFIG_FEATURE_FDISK_WRITABLE=y # CONFIG_FEATURE_AIX_LABEL is not set # CONFIG_FEATURE_SGI_LABEL is not set @@ -600,15 +626,6 @@ CONFIG_LSUSB=y CONFIG_MKSWAP=y # CONFIG_FEATURE_MKSWAP_UUID is not set CONFIG_MORE=y -CONFIG_MOUNT=y -# CONFIG_FEATURE_MOUNT_FAKE is not set -# CONFIG_FEATURE_MOUNT_VERBOSE is not set -# CONFIG_FEATURE_MOUNT_HELPERS is not set -# CONFIG_FEATURE_MOUNT_LABEL is not set -# CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y CONFIG_PIVOT_ROOT=y CONFIG_RDATE=y # CONFIG_RDEV is not set @@ -616,7 +633,6 @@ CONFIG_READPROFILE=y # CONFIG_RTCWAKE is not set # CONFIG_SCRIPT is not set # CONFIG_SCRIPTREPLAY is not set -CONFIG_SETARCH=y CONFIG_SWAPONOFF=y # CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_PRI is not set @@ -635,6 +651,7 @@ CONFIG_VOLUMEID=y # # Filesystem/Volume identification # +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set # CONFIG_FEATURE_VOLUMEID_BTRFS is not set # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set CONFIG_FEATURE_VOLUMEID_EXFAT=y @@ -665,10 +682,15 @@ CONFIG_CROND=y # CONFIG_FEATURE_CROND_D is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_DIR="/var/spool/cron" +CONFIG_I2CGET=y +CONFIG_I2CSET=y +CONFIG_I2CDUMP=y +CONFIG_I2CDETECT=y CONFIG_LESS=y CONFIG_FEATURE_LESS_MAXLINES=9999999 CONFIG_FEATURE_LESS_BRACKETS=y CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y # CONFIG_FEATURE_LESS_MARKS is not set CONFIG_FEATURE_LESS_REGEXP=y # CONFIG_FEATURE_LESS_WINCH is not set @@ -681,6 +703,7 @@ CONFIG_FEATURE_LESS_REGEXP=y CONFIG_SETSERIAL=y # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set +CONFIG_UBIRENAME=y # CONFIG_UBIATTACH is not set # CONFIG_UBIDETACH is not set # CONFIG_UBIMKVOL is not set @@ -722,7 +745,6 @@ CONFIG_EJECT=y # CONFIG_IONICE is not set # CONFIG_INOTIFYD is not set CONFIG_LAST=y -CONFIG_FEATURE_LAST_SMALL=y # CONFIG_FEATURE_LAST_FANCY is not set CONFIG_HDPARM=y CONFIG_FEATURE_HDPARM_GET_IDENTITY=y @@ -763,10 +785,17 @@ CONFIG_NAMEIF=y CONFIG_PING=y # CONFIG_PING6 is not set CONFIG_FEATURE_FANCY_PING=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_TIMEOUT=y +# CONFIG_FEATURE_WGET_OPENSSL is not set +# CONFIG_FEATURE_WGET_SSL_HELPER is not set # CONFIG_WHOIS is not set -# CONFIG_FEATURE_IPV6 is not set +CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set -# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set CONFIG_ARP=y CONFIG_ARPING=y @@ -810,7 +839,7 @@ CONFIG_FEATURE_IFUPDOWN_IP=y # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set CONFIG_FEATURE_IFUPDOWN_IPV4=y -# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set +CONFIG_FEATURE_IFUPDOWN_IPV6=y CONFIG_FEATURE_IFUPDOWN_MAPPING=y # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set CONFIG_INETD=y @@ -824,8 +853,10 @@ CONFIG_IP=y CONFIG_FEATURE_IP_ADDRESS=y CONFIG_FEATURE_IP_LINK=y CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" CONFIG_FEATURE_IP_TUNNEL=y CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y CONFIG_FEATURE_IP_SHORT_FORMS=y # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set CONFIG_IPADDR=y @@ -833,6 +864,7 @@ CONFIG_IPLINK=y CONFIG_IPROUTE=y CONFIG_IPTUNNEL=y CONFIG_IPRULE=y +CONFIG_IPNEIGH=y # CONFIG_IPCALC is not set # CONFIG_FEATURE_IPCALC_FANCY is not set # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set @@ -890,11 +922,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" # CONFIG_UDPSVD is not set CONFIG_VCONFIG=y -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y # CONFIG_ZCIP is not set # @@ -960,17 +987,17 @@ CONFIG_WATCH=y # # Runit Utilities # +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set # CONFIG_RUNSV is not set # CONFIG_RUNSVDIR is not set # CONFIG_FEATURE_RUNSVDIR_LOG is not set # CONFIG_SV is not set CONFIG_SV_DEFAULT_SERVICE_DIR="" # CONFIG_SVLOGD is not set -# CONFIG_CHPST is not set -# CONFIG_SETUIDGID is not set -# CONFIG_ENVUIDGID is not set -# CONFIG_ENVDIR is not set -# CONFIG_SOFTLIMIT is not set # CONFIG_CHCON is not set # CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set @@ -1039,6 +1066,11 @@ CONFIG_FEATURE_SH_EXTRA_QUIET=y # # System Logging Utilities # +CONFIG_KLOGD=y +CONFIG_FEATURE_KLOGD_KLOGCTL=y +CONFIG_LOGGER=y +# CONFIG_LOGREAD is not set +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set CONFIG_SYSLOGD=y CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y @@ -1047,9 +1079,4 @@ CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 -# CONFIG_LOGREAD is not set -# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set # CONFIG_FEATURE_KMSG_SYSLOG is not set -CONFIG_KLOGD=y -CONFIG_FEATURE_KLOGD_KLOGCTL=y -CONFIG_LOGGER=y diff --git a/bsp/buildroot/package/busybox/busybox.hash b/bsp/buildroot/package/busybox/busybox.hash index 99fb8e4e..e9e06915 100644 --- a/bsp/buildroot/package/busybox/busybox.hash +++ b/bsp/buildroot/package/busybox/busybox.hash @@ -1,3 +1,3 @@ -# From http://busybox.net/downloads/busybox-1.24.1.tar.bz2.sign -md5 be98a40cadf84ce2d6b05fa41a275c6a busybox-1.24.1.tar.bz2 -sha1 157d14d24748b4505b1a418535688706a2b81680 busybox-1.24.1.tar.bz2 +# From http://busybox.net/downloads/busybox-1.25.0.tar.bz2.sign +md5 b05af9645076f75429a8683f8afcbdb3 busybox-1.25.0.tar.bz2 +sha1 c6c759bf4c4f24b37f52e136e2b15d921a8d44cb busybox-1.25.0.tar.bz2 diff --git a/bsp/buildroot/package/busybox/busybox.mk b/bsp/buildroot/package/busybox/busybox.mk index 7f6dbd69..895f4ca9 100644 --- a/bsp/buildroot/package/busybox/busybox.mk +++ b/bsp/buildroot/package/busybox/busybox.mk @@ -4,12 +4,16 @@ # ################################################################################ -BUSYBOX_VERSION = 1.24.1 +BUSYBOX_VERSION = 1.25.0 BUSYBOX_SITE = http://www.busybox.net/downloads BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_LICENSE = GPLv2 BUSYBOX_LICENSE_FILES = LICENSE +define BUSYBOX_HELP_CMDS + @echo ' busybox-menuconfig - Run BusyBox menuconfig' +endef + BUSYBOX_CFLAGS = \ $(TARGET_CFLAGS) @@ -107,16 +111,6 @@ define BUSYBOX_SET_MMU endef endif -define BUSYBOX_SET_LARGEFILE - $(call KCONFIG_ENABLE_OPT,CONFIG_LFS,$(BUSYBOX_BUILD_CONFIG)) - $(call KCONFIG_ENABLE_OPT,CONFIG_FDISK_SUPPORT_LARGE_DISKS,$(BUSYBOX_BUILD_CONFIG)) -endef - -define BUSYBOX_SET_IPV6 - $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_IPV6,$(BUSYBOX_BUILD_CONFIG)) - $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_IFUPDOWN_IPV6,$(BUSYBOX_BUILD_CONFIG)) -endef - # If we're using static libs do the same for busybox ifeq ($(BR2_STATIC_LIBS),y) define BUSYBOX_PREFER_STATIC @@ -219,8 +213,6 @@ endef define BUSYBOX_KCONFIG_FIXUP_CMDS $(BUSYBOX_SET_MMU) - $(BUSYBOX_SET_LARGEFILE) - $(BUSYBOX_SET_IPV6) $(BUSYBOX_PREFER_STATIC) $(BUSYBOX_SET_MDEV) $(BUSYBOX_SET_CRYPT_SHA) diff --git a/bsp/buildroot/package/busybox/mdev.conf b/bsp/buildroot/package/busybox/mdev.conf index 247c0ed0..241c1c27 100644 --- a/bsp/buildroot/package/busybox/mdev.conf +++ b/bsp/buildroot/package/busybox/mdev.conf @@ -20,6 +20,7 @@ tty root:tty 666 tty[0-9]* root:tty 660 vcsa*[0-9]* root:tty 660 ttyS[0-9]* root:root 660 +ttyUSB[0-9]* root:root 660 # alsa sound devices pcm.* root:audio 660 =snd/ @@ -33,3 +34,6 @@ event[0-9]+ root:root 640 =input/ mice root:root 640 =input/ mouse[0-9] root:root 640 =input/ ts[0-9] root:root 600 =input/ + +# load modules +$MODALIAS=.* root:root 660 @modprobe "$MODALIAS" diff --git a/bsp/buildroot/package/busybox/udhcpc.script b/bsp/buildroot/package/busybox/udhcpc.script index 50c52e6f..ad110d3a 100755 --- a/bsp/buildroot/package/busybox/udhcpc.script +++ b/bsp/buildroot/package/busybox/udhcpc.script @@ -56,7 +56,16 @@ case "$1" in cat $TMPFILE > $RESOLV_CONF rm -f $TMPFILE - [ -n "$domain" ] && echo "search $domain # $interface" >> $RESOLV_CONF + # prefer rfc3359 domain search list (option 119) if available + if [ -n "$search" ]; then + search_list=$search + elif [ -n "$domain" ]; then + search_list=$domain + fi + + [ -n "$search_list" ] && + echo "search $search_list # $interface" >> $RESOLV_CONF + for i in $dns ; do echo adding dns $i echo "nameserver $i # $interface" >> $RESOLV_CONF diff --git a/bsp/buildroot/package/c-ares/c-ares.hash b/bsp/buildroot/package/c-ares/c-ares.hash index 40f703b0..f24cc362 100644 --- a/bsp/buildroot/package/c-ares/c-ares.hash +++ b/bsp/buildroot/package/c-ares/c-ares.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 3d701674615d1158e56a59aaede7891f2dde3da0f46a6d3c684e0ae70f52d3db c-ares-1.10.0.tar.gz +sha256 b3612e6617d9682928a1d50c1040de4db6519f977f0b25d40cf1b632900b3efd c-ares-1.11.0.tar.gz diff --git a/bsp/buildroot/package/c-ares/c-ares.mk b/bsp/buildroot/package/c-ares/c-ares.mk index 77ae4b96..298fe416 100644 --- a/bsp/buildroot/package/c-ares/c-ares.mk +++ b/bsp/buildroot/package/c-ares/c-ares.mk @@ -4,7 +4,7 @@ # ################################################################################ -C_ARES_VERSION = 1.10.0 +C_ARES_VERSION = 1.11.0 C_ARES_SITE = http://c-ares.haxx.se/download C_ARES_INSTALL_STAGING = YES C_ARES_CONF_OPTS = --with-random=/dev/urandom diff --git a/bsp/buildroot/package/c-icap-modules/c-icap-modules.hash b/bsp/buildroot/package/c-icap-modules/c-icap-modules.hash index cf325ecd..5df14498 100644 --- a/bsp/buildroot/package/c-icap-modules/c-icap-modules.hash +++ b/bsp/buildroot/package/c-icap-modules/c-icap-modules.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/c-icap/files/c-icap-modules/0.3.x/ -md5 25a904f98cddbcc7431b22720cd3996e c_icap_modules-0.3.2.tar.gz -sha1 98dd7b3bf40b8831e297ffa8c4e1eaf7cef57cd0 c_icap_modules-0.3.2.tar.gz +# From http://sourceforge.net/projects/c-icap/files/c-icap-modules/0.4.x/ +md5 5acd9487679ed47fbee00270d436718d c_icap_modules-0.4.2.tar.gz +sha1 e5f4203980b732b9de165c1e83c4703734c3e0e2 c_icap_modules-0.4.2.tar.gz diff --git a/bsp/buildroot/package/c-icap-modules/c-icap-modules.mk b/bsp/buildroot/package/c-icap-modules/c-icap-modules.mk index 5252a810..cf388aaa 100644 --- a/bsp/buildroot/package/c-icap-modules/c-icap-modules.mk +++ b/bsp/buildroot/package/c-icap-modules/c-icap-modules.mk @@ -4,7 +4,7 @@ # ################################################################################ -C_ICAP_MODULES_VERSION = 0.3.2 +C_ICAP_MODULES_VERSION = 0.4.2 C_ICAP_MODULES_SOURCE = c_icap_modules-$(C_ICAP_MODULES_VERSION).tar.gz C_ICAP_MODULES_SITE = http://downloads.sourceforge.net/c-icap C_ICAP_MODULES_LICENSE = GPLv2+ diff --git a/bsp/buildroot/package/c-icap/c-icap.hash b/bsp/buildroot/package/c-icap/c-icap.hash index 89c70f42..2b083ef6 100644 --- a/bsp/buildroot/package/c-icap/c-icap.hash +++ b/bsp/buildroot/package/c-icap/c-icap.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 46b97fab73dbb9e8def8e34c3f94048c92f50a5341bb85bec4f6f6349aec529a c_icap-0.3.5.tar.gz +sha256 b138c7d7d9828d54c3307bcfe7b4917911266593832ffc26a60df9a0dfd2511e c_icap-0.4.2.tar.gz diff --git a/bsp/buildroot/package/c-icap/c-icap.mk b/bsp/buildroot/package/c-icap/c-icap.mk index b4defb87..3078721b 100644 --- a/bsp/buildroot/package/c-icap/c-icap.mk +++ b/bsp/buildroot/package/c-icap/c-icap.mk @@ -4,7 +4,7 @@ # ################################################################################ -C_ICAP_VERSION = 0.3.5 +C_ICAP_VERSION = 0.4.2 C_ICAP_SOURCE = c_icap-$(C_ICAP_VERSION).tar.gz C_ICAP_SITE = http://downloads.sourceforge.net/c-icap C_ICAP_LICENSE = LGPLv2.1+ @@ -17,6 +17,16 @@ C_ICAP_CONF_OPTS = \ --without-perl \ --enable-large-files \ --enable-ipv6 +# Pre-seed cache variables for tests done with AC_TRY_RUN that are not +# cross-compile friendly +C_ICAP_CONF_ENV = ac_cv_10031b_ipc_sem=yes ac_cv_fcntl=yes +# c-icap adds '-Wl,-rpath -Wl,/usr/lib' to the link command line. This +# causes the linker to search for libraries that are listed as NEEDED +# in the libicapapi.so ELF header in host libraries, which breaks the +# build. The affected library is libz. Forcing AUTORECONF adds -lz to +# the link command line, and that makes the linker look first in +# sysroot, thus avoiding the build breakage. +C_ICAP_AUTORECONF = YES ifeq ($(BR2_PACKAGE_BERKELEYDB),y) C_ICAP_CONF_OPTS += --with-berkeleydb diff --git a/bsp/buildroot/package/c-periphery/c-periphery.hash b/bsp/buildroot/package/c-periphery/c-periphery.hash new file mode 100644 index 00000000..516d340d --- /dev/null +++ b/bsp/buildroot/package/c-periphery/c-periphery.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 5ae4c3f9de0e64d8153ee58b85c4a5defb9f755c6ae215f11b46719bbbac1335 c-periphery-v1.0.3.tar.gz diff --git a/bsp/buildroot/package/ca-certificates/ca-certificates.hash b/bsp/buildroot/package/ca-certificates/ca-certificates.hash index 06120f5e..b4673168 100644 --- a/bsp/buildroot/package/ca-certificates/ca-certificates.hash +++ b/bsp/buildroot/package/ca-certificates/ca-certificates.hash @@ -1,3 +1,3 @@ # hashes from: $(CA_CERTIFICATES_SITE)/ca-certificates_$(CA_CERTIFICATES_VERSION).dsc : -sha1 c2d7ae81e28ff1f8a6b9ef7602c4e756ff08503c ca-certificates_20150426.tar.xz -sha256 37dbaa93ed64cc4ae93ac295f9248fbc741bd51376438cfb1257f17efab5494f ca-certificates_20150426.tar.xz +sha1 4525a194736c6691dbd59fa87281b722837b4768 ca-certificates_20160104.tar.xz +sha256 09eb770122e23260316120c0cbbddc8a1d33e7147210ce44e146084d5d5abcdd ca-certificates_20160104.tar.xz diff --git a/bsp/buildroot/package/ca-certificates/ca-certificates.mk b/bsp/buildroot/package/ca-certificates/ca-certificates.mk index b64120e5..393c8cdd 100644 --- a/bsp/buildroot/package/ca-certificates/ca-certificates.mk +++ b/bsp/buildroot/package/ca-certificates/ca-certificates.mk @@ -4,10 +4,14 @@ # ################################################################################ -CA_CERTIFICATES_VERSION = 20150426 +CA_CERTIFICATES_VERSION = 20160104 CA_CERTIFICATES_SOURCE = ca-certificates_$(CA_CERTIFICATES_VERSION).tar.xz -CA_CERTIFICATES_SITE = http://snapshot.debian.org/archive/debian/20150528T221654Z/pool/main/c/ca-certificates -CA_CERTIFICATES_DEPENDENCIES = host-openssl host-python +CA_CERTIFICATES_SITE = http://snapshot.debian.org/archive/debian/20160104T220912Z/pool/main/c/ca-certificates +CA_CERTIFICATES_DEPENDENCIES = host-openssl +# ca-certificates can be built with either python 2 or python 3 +# but it must be at least python 2.7 +CA_CERTIFICATES_DEPENDENCIES += \ + $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python) CA_CERTIFICATES_LICENSE = GPLv2+ (script), MPLv2.0 (data) CA_CERTIFICATES_LICENSE_FILES = debian/copyright diff --git a/bsp/buildroot/package/cairo/cairo.hash b/bsp/buildroot/package/cairo/cairo.hash index 1440185a..225850f3 100644 --- a/bsp/buildroot/package/cairo/cairo.hash +++ b/bsp/buildroot/package/cairo/cairo.hash @@ -1,2 +1,4 @@ -# From http://cairographics.org/releases/cairo-1.14.4.tar.xz.sha1 -sha1 5b44471e7c328f96de6830baf8ea65030de797f9 cairo-1.14.4.tar.xz +# From http://cairographics.org/releases/cairo-1.14.6.tar.xz.sha1 +sha1 0a59324e6cbe031b5b898ff8b9e2ffceb9d114f5 cairo-1.14.6.tar.xz +# Calculated based on the hash above +sha256 613cb38447b76a93ff7235e17acd55a78b52ea84a9df128c3f2257f8eaa7b252 cairo-1.14.6.tar.xz diff --git a/bsp/buildroot/package/cairo/cairo.mk b/bsp/buildroot/package/cairo/cairo.mk index 6b54b286..d7e370ae 100644 --- a/bsp/buildroot/package/cairo/cairo.mk +++ b/bsp/buildroot/package/cairo/cairo.mk @@ -4,7 +4,7 @@ # ################################################################################ -CAIRO_VERSION = 1.14.4 +CAIRO_VERSION = 1.14.6 CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz CAIRO_LICENSE = LGPLv2.1+ CAIRO_LICENSE_FILES = COPYING @@ -12,13 +12,18 @@ CAIRO_SITE = http://cairographics.org/releases CAIRO_INSTALL_STAGING = YES CAIRO_AUTORECONF = YES +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k_cf),y) +CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot" +endif + ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1" endif # cairo can use C++11 atomics when available, so we need to link with # libatomic for the architectures who need libatomic. -ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8),y) +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) CAIRO_CONF_ENV += LIBS="-latomic" endif @@ -79,11 +84,17 @@ else CAIRO_CONF_OPTS += --disable-gobject endif +# Can use GL or GLESv2 but not both +ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) +CAIRO_CONF_OPTS += --enable-gl --disable-glesv2 +CAIRO_DEPENDENCIES += libgl +else ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) -CAIRO_CONF_OPTS += --enable-glesv2 +CAIRO_CONF_OPTS += --disable-gl --enable-glesv2 CAIRO_DEPENDENCIES += libgles else -CAIRO_CONF_OPTS += --disable-glesv2 +CAIRO_CONF_OPTS += --disable-gl --disable-glesv2 +endif endif ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y) diff --git a/bsp/buildroot/package/can-utils/can-utils.hash b/bsp/buildroot/package/can-utils/can-utils.hash new file mode 100644 index 00000000..09e3c4d6 --- /dev/null +++ b/bsp/buildroot/package/can-utils/can-utils.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 8db112e69fceef16617895fa9d4222221fdf44c19eef64912480336c59904765 can-utils-b70a76670dbe8925c2a7c75f90d36a28a8878d7a.tar.gz diff --git a/bsp/buildroot/package/can-utils/can-utils.mk b/bsp/buildroot/package/can-utils/can-utils.mk index 8e8ed4e5..e95cf229 100644 --- a/bsp/buildroot/package/can-utils/can-utils.mk +++ b/bsp/buildroot/package/can-utils/can-utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -CAN_UTILS_VERSION = f0abaaacb0a3f620f73dd6fd716d7daa3c36a8e3 +CAN_UTILS_VERSION = b70a76670dbe8925c2a7c75f90d36a28a8878d7a CAN_UTILS_SITE = $(call github,linux-can,can-utils,$(CAN_UTILS_VERSION)) CAN_UTILS_AUTORECONF = YES diff --git a/bsp/buildroot/package/canfestival/Config.in b/bsp/buildroot/package/canfestival/Config.in index 4e734964..5522afe5 100644 --- a/bsp/buildroot/package/canfestival/Config.in +++ b/bsp/buildroot/package/canfestival/Config.in @@ -2,7 +2,7 @@ config BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS bool default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm -comment "canfestival needs a (e)glibc or uClibc toolchain w/ threads and dynamic library" +comment "canfestival needs a glibc or uClibc toolchain w/ threads and dynamic library" depends on BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_USES_MUSL || \ !BR2_TOOLCHAIN_HAS_THREADS || \ diff --git a/bsp/buildroot/package/cannelloni/Config.in b/bsp/buildroot/package/cannelloni/Config.in new file mode 100644 index 00000000..e137e60c --- /dev/null +++ b/bsp/buildroot/package/cannelloni/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_CANNELLONI + bool "cannelloni" + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_USE_MMU # lksctp-tools + depends on BR2_TOOLCHAIN_HAS_THREADS # lksctp-tools + depends on !BR2_STATIC_LIBS # lksctp-tools + help + A SocketCAN over Ethernet tunnel. The tunnel supports both + UDP and SCTP protocols. + + https://github.com/mguentner/cannelloni + +comment "cannelloni needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8" + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/cannelloni/cannelloni.hash b/bsp/buildroot/package/cannelloni/cannelloni.hash new file mode 100644 index 00000000..c14dceb7 --- /dev/null +++ b/bsp/buildroot/package/cannelloni/cannelloni.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 fe5abb1c9e523049c48dd906603bc762cc55ccd20c16dbec7dc64163b9eefccf cannelloni-20160414.tar.gz diff --git a/bsp/buildroot/package/cannelloni/cannelloni.mk b/bsp/buildroot/package/cannelloni/cannelloni.mk new file mode 100644 index 00000000..fffdb4ba --- /dev/null +++ b/bsp/buildroot/package/cannelloni/cannelloni.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# cannelloni +# +################################################################################ + +CANNELLONI_VERSION = 20160414 +CANNELLONI_SITE = $(call github,mguentner,cannelloni,$(CANNELLONI_VERSION)) +CANNELLONI_LICENSE = GPLv2 +CANNELLONI_LICENSE_FILES = gpl-2.0.txt + +ifeq ($(BR2_PACKAGE_LKSCTP_TOOLS),y) +CANNELLONI_CONF_OPTS += -DSCTP_SUPPORT=ON +CANNELLONI_DEPENDENCIES += lksctp-tools +else +CANNELLONI_CONF_OPTS += -DSCTP_SUPPORT=OFF +endif + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/cantarell/cantarell.hash b/bsp/buildroot/package/cantarell/cantarell.hash index d776647e..e2cc00ed 100644 --- a/bsp/buildroot/package/cantarell/cantarell.hash +++ b/bsp/buildroot/package/cantarell/cantarell.hash @@ -1,2 +1,2 @@ -# From http://ftp.acc.umu.se/pub/gnome/sources/cantarell-fonts/0.0/cantarell-fonts-0.0.20.1.sha256sum -sha256 0f933516f3270fb7307d9c2e26e4703b403608c5cc9da3127cba4395bcd4ec91 cantarell-fonts-0.0.20.1.tar.xz +# From http://ftp.acc.umu.se/pub/gnome/sources/cantarell-fonts/0.0/cantarell-fonts-0.0.24.sha256sum +sha256 9cad649ae84f7e4ca1be637c27e2fa19e1fbf00d4bf6480171ccfad405b39264 cantarell-fonts-0.0.24.tar.xz diff --git a/bsp/buildroot/package/cantarell/cantarell.mk b/bsp/buildroot/package/cantarell/cantarell.mk index aaad85a8..b4133ecd 100644 --- a/bsp/buildroot/package/cantarell/cantarell.mk +++ b/bsp/buildroot/package/cantarell/cantarell.mk @@ -5,7 +5,7 @@ ################################################################################ CANTARELL_VERSION_MAJOR = 0.0 -CANTARELL_VERSION = $(CANTARELL_VERSION_MAJOR).20.1 +CANTARELL_VERSION = $(CANTARELL_VERSION_MAJOR).24 CANTARELL_SITE = http://ftp.gnome.org/pub/gnome/sources/cantarell-fonts/$(CANTARELL_VERSION_MAJOR) CANTARELL_SOURCE = cantarell-fonts-$(CANTARELL_VERSION).tar.xz CANTARELL_DEPENDENCIES = host-pkgconf diff --git a/bsp/buildroot/package/cbootimage/Config.in.host b/bsp/buildroot/package/cbootimage/Config.in.host new file mode 100644 index 00000000..1913afa2 --- /dev/null +++ b/bsp/buildroot/package/cbootimage/Config.in.host @@ -0,0 +1,9 @@ +config BR2_PACKAGE_HOST_CBOOTIMAGE + bool "host cbootimage" + depends on BR2_arm || BR2_armeb + help + This project provides a tool which compiles BCT (Boot + Configuration Table) images to place into the boot flash of + a Tegra-based device. + + https://github.com/NVIDIA/cbootimage diff --git a/bsp/buildroot/package/cbootimage/cbootimage.hash b/bsp/buildroot/package/cbootimage/cbootimage.hash new file mode 100644 index 00000000..96cf172e --- /dev/null +++ b/bsp/buildroot/package/cbootimage/cbootimage.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 373c108d7b6778c62a33e59ad0cd5ea9ebb379319a0c8b4cf469eaa8bec5521b cbootimage-v1.7.tar.gz diff --git a/bsp/buildroot/package/cbootimage/cbootimage.mk b/bsp/buildroot/package/cbootimage/cbootimage.mk new file mode 100644 index 00000000..20b17dde --- /dev/null +++ b/bsp/buildroot/package/cbootimage/cbootimage.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# cbootimage +# +################################################################################ + +CBOOTIMAGE_VERSION = v1.7 +CBOOTIMAGE_SITE = $(call github,NVIDIA,cbootimage,$(CBOOTIMAGE_VERSION)) +CBOOTIMAGE_LICENSE = GPLv2 +CBOOTIMAGE_LICENSE_FILES = COPYING +CBOOTIMAGE_AUTORECONF = YES + +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/cc-tool/Config.in b/bsp/buildroot/package/cc-tool/Config.in index f8e4531e..b2cf9796 100644 --- a/bsp/buildroot/package/cc-tool/Config.in +++ b/bsp/buildroot/package/cc-tool/Config.in @@ -2,7 +2,6 @@ config BR2_PACKAGE_CC_TOOL bool "cc-tool" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_USE_WCHAR # boost-filesystem select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_BOOST @@ -19,5 +18,4 @@ config BR2_PACKAGE_CC_TOOL http://sourceforge.net/projects/cctool/ comment "cc-tool needs a toolchain w/ C++, threads, wchar" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/ccache/ccache.hash b/bsp/buildroot/package/ccache/ccache.hash index 483243b0..7e616cec 100644 --- a/bsp/buildroot/package/ccache/ccache.hash +++ b/bsp/buildroot/package/ccache/ccache.hash @@ -1,2 +1,2 @@ -# Verified key https://samba.org/ftp/ccache/ccache-3.2.4.tar.xz.asc - sha256 computed locally -sha256 1c3da93f654e78a4ac71a54b0f63b19bc0fef9aa5522f4ebb9c201d4361cea5d ccache-3.2.4.tar.xz +# Verified key https://samba.org/ftp/ccache/ccache-3.2.5.tar.xz.asc - sha256 computed locally +sha256 117011534b199dbe290b08acae1591c81525536a1e140da22e0fbc04c20bab85 ccache-3.2.5.tar.xz diff --git a/bsp/buildroot/package/ccache/ccache.mk b/bsp/buildroot/package/ccache/ccache.mk index bce801ed..c4f03104 100644 --- a/bsp/buildroot/package/ccache/ccache.mk +++ b/bsp/buildroot/package/ccache/ccache.mk @@ -4,7 +4,7 @@ # ################################################################################ -CCACHE_VERSION = 3.2.4 +CCACHE_VERSION = 3.2.5 CCACHE_SITE = https://samba.org/ftp/ccache CCACHE_SOURCE = ccache-$(CCACHE_VERSION).tar.xz CCACHE_LICENSE = GPLv3+, others diff --git a/bsp/buildroot/package/cdrkit/Config.in b/bsp/buildroot/package/cdrkit/Config.in index 46c0ba9b..af18ba93 100644 --- a/bsp/buildroot/package/cdrkit/Config.in +++ b/bsp/buildroot/package/cdrkit/Config.in @@ -4,7 +4,6 @@ config BR2_PACKAGE_CDRKIT select BR2_PACKAGE_LIBCAP select BR2_PACKAGE_ZLIB depends on BR2_USE_MMU # fork - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap bool "cdrkit" help cdrkit is a suite of programs for recording CDs and DVDs, @@ -12,7 +11,3 @@ config BR2_PACKAGE_CDRKIT extracting audio CD data, and more. http://www.cdrkit.org/ - -comment "cdrkit needs a toolchain w/ headers >= 3.0" - depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 diff --git a/bsp/buildroot/package/cdrkit/cdrkit.mk b/bsp/buildroot/package/cdrkit/cdrkit.mk index 2e4bb1fa..10d118c4 100644 --- a/bsp/buildroot/package/cdrkit/cdrkit.mk +++ b/bsp/buildroot/package/cdrkit/cdrkit.mk @@ -8,6 +8,7 @@ CDRKIT_VERSION = 1.1.11 CDRKIT_SOURCE = cdrkit_$(CDRKIT_VERSION).orig.tar.gz CDRKIT_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/c/cdrkit CDRKIT_DEPENDENCIES = libcap bzip2 zlib +HOST_CDRKIT_DEPENDENCIES = host-libcap host-bzip2 host-zlib CDRKIT_LICENSE = GPLv2 CDRKIT_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/cgroupfs-mount/Config.in b/bsp/buildroot/package/cgroupfs-mount/Config.in new file mode 100644 index 00000000..0b2e4ba1 --- /dev/null +++ b/bsp/buildroot/package/cgroupfs-mount/Config.in @@ -0,0 +1,19 @@ +config BR2_PACKAGE_CGROUPFS_MOUNT + bool "cgroupfs-mount" + depends on !BR2_INIT_SYSTEMD + help + cgroupfs mount and umount scripts. + + requires a Linux kernel >= 3.0 with the following options + enabled: + + - CONFIG_BLK_CGROUP + - CONFIG_CGROUPS + - CONFIG_CGROUP_CPUACCT + - CONFIG_CGROUP_DEVICE + - CONFIG_CGROUP_FREEZER + - CONFIG_CGROUP_WRITEBACK + - CONFIG_CGROUP_SCHED + - CONFIG_CGROUP_PIDS + + https://github.com/tianon/cgroupfs-mount diff --git a/bsp/buildroot/package/cgroupfs-mount/S30cgroupfs b/bsp/buildroot/package/cgroupfs-mount/S30cgroupfs new file mode 100644 index 00000000..aa0a29b1 --- /dev/null +++ b/bsp/buildroot/package/cgroupfs-mount/S30cgroupfs @@ -0,0 +1,34 @@ +#!/bin/sh +# +# Set up cgroupfs mounts. +# + +start() { + printf "Mounting cgroupfs hierarchy: " + /usr/bin/cgroupfs-mount + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Unmounting cgroupfs hierarchy: " + /usr/bin/cgroupfs-umount + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.hash b/bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.hash new file mode 100644 index 00000000..34f51676 --- /dev/null +++ b/bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 fb32a8d9de491358d28f56ab76a56e1a611b90d5b6326910d3a69395fa539027 cgroupfs-mount-7285bf44402029394808339f69f4f293730fc2c6.tar.gz diff --git a/bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.mk b/bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.mk new file mode 100644 index 00000000..b3756050 --- /dev/null +++ b/bsp/buildroot/package/cgroupfs-mount/cgroupfs-mount.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# cgroupfs-mount +# +################################################################################ + +CGROUPFS_MOUNT_VERSION = 7285bf44402029394808339f69f4f293730fc2c6 +CGROUPFS_MOUNT_SITE = $(call github,tianon,cgroupfs-mount,$(CGROUPFS_MOUNT_VERSION)) +CGROUPFS_MOUNT_LICENSE = GPLv3+ +CGROUPFS_MOUNT_LICENSE_FILES = debian/copyright + +define CGROUPFS_MOUNT_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/cgroupfs-mount $(TARGET_DIR)/usr/bin/cgroupfs-mount + $(INSTALL) -D -m 0755 $(@D)/cgroupfs-umount $(TARGET_DIR)/usr/bin/cgroupfs-umount +endef + +define CGROUPFS_MOUNT_INSTALL_INIT_SYSV + $(INSTALL) -m 0755 -D $(CGROUPFS_MOUNT_PKGDIR)/S30cgroupfs \ + $(TARGET_DIR)/etc/init.d/S30cgroupfs + +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/checkpolicy/checkpolicy.hash b/bsp/buildroot/package/checkpolicy/checkpolicy.hash index 32b5ff62..bc5199cb 100644 --- a/bsp/buildroot/package/checkpolicy/checkpolicy.hash +++ b/bsp/buildroot/package/checkpolicy/checkpolicy.hash @@ -1,2 +1,2 @@ # https://github.com/SELinuxProject/selinux/wiki/Releases -sha256 e6a0ac539b74859b4262b317eb90d9914deb15e7aa509659f47724d50fe2ecc6 checkpolicy-2.1.12.tar.gz +sha256 33af9f3eb19135a7e6536ecd3fbb9686323000016cd51eb88346346ed7546001 checkpolicy-2.5.tar.gz diff --git a/bsp/buildroot/package/checkpolicy/checkpolicy.mk b/bsp/buildroot/package/checkpolicy/checkpolicy.mk index 4b7b2f34..f1b76d0a 100644 --- a/bsp/buildroot/package/checkpolicy/checkpolicy.mk +++ b/bsp/buildroot/package/checkpolicy/checkpolicy.mk @@ -4,8 +4,8 @@ # ################################################################################ -CHECKPOLICY_VERSION = 2.1.12 -CHECKPOLICY_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20130423 +CHECKPOLICY_VERSION = 2.5 +CHECKPOLICY_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20160223 CHECKPOLICY_LICENSE = GPLv2 CHECKPOLICY_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/chocolate-doom/0004-configure-Switch-to-pkg-config-macros.patch b/bsp/buildroot/package/chocolate-doom/0004-configure-Switch-to-pkg-config-macros.patch new file mode 100644 index 00000000..2618396b --- /dev/null +++ b/bsp/buildroot/package/chocolate-doom/0004-configure-Switch-to-pkg-config-macros.patch @@ -0,0 +1,217 @@ +From 3163bf87d7b955d08dedd5ebaccb1b2a86ffdcb9 Mon Sep 17 00:00:00 2001 +From: Simon Howard +Date: Thu, 25 Feb 2016 22:55:04 -0500 +Subject: [PATCH] configure: Switch to pkg-config macros. + +All dependency libraries install pkg-config .pc files nowadays, which +makes the process of looking them up a lot simpler. Get rid of the SDL +workaround macro as it's not needed. + +[Backported from upstream commit 3163bf87d7b955d08dedd5ebaccb1b2a86ffdcb9. +Fixes static linking issues with SDL_mixer.] + +Signed-off-by: Rodrigo Rebello +--- + configure.ac | 117 ++++++++++++++-------------------------- + opl/examples/Makefile.am | 2 +- + src/Makefile.am | 7 ++- + textscreen/Makefile.am | 2 +- + textscreen/examples/Makefile.am | 2 +- + 5 files changed, 49 insertions(+), 81 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7b03485..48f83ef 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -33,89 +33,54 @@ then + CFLAGS="-O$OPT_LEVEL -g $WARNINGS $orig_CFLAGS" + fi + +-dnl Search for SDL ... +- +-AM_PATH_SDL(1.1.3) +- +-# Add the SDL compiler flags to the default compiler flag variables. +-# It is important to do this now, before checking for headers and +-# library functions. The reason being that on Windows, sdl-config +-# sets the -mno-cygwin compiler option in order to generate MinGW +-# executables. If we don't do this now, we might end up discovering +-# header files that are not actually available to us when we come +-# to compile. +- +-CFLAGS="$CFLAGS $SDL_CFLAGS" +-LDFLAGS="$LDFLAGS $SDL_LIBS" +- +-# On some platforms, SDL renames main() to SDL_main() using a #define, +-# so that its own main, stored in the SDLmain library, can be run first. +-# Unfortunately, this causes problems for autoconf, which builds +-# test programs to probe the system. All library/header/symbol checks +-# must be run in this block, that performs a workaround for the problem. +- +-AC_SDL_MAIN_WORKAROUND([ +- +- # Check for SDL_mixer. +- +- AC_CHECK_LIB(SDL_mixer,Mix_LoadMUS,[ +- SDLMIXER_LIBS="$SDLMIXER_LIBS -lSDL_mixer" +- ],[ +- echo "*** Could not find SDL_mixer. Please install it." +- exit -1 +- ]) +- +- # Check for SDL_net. +- +- AC_CHECK_LIB(SDL_net,SDLNet_UDP_Send,[ +- SDLNET_LIBS="$SDLNET_LIBS -lSDL_net" +- ],[ +- echo "*** Could not find SDL_net. Please install it." +- exit -1 +- ]) +- +- # Check for libsamplerate. +- AC_ARG_WITH([libsamplerate], +- AS_HELP_STRING([--without-libsamplerate], +- [Build without libsamplerate @<:@default=check@:>@]), +- [], +- [ +- [with_libsamplerate=check] +- ]) +- AS_IF([test "x$with_libsamplerate" != xno], [ +- AC_CHECK_LIB(samplerate, src_new, [], [ +- AS_IF([test "x$with_libsamplerate" != xcheck], [AC_MSG_FAILURE( +- [--with-libsamplerate was given, but test for libsamplerate failed]) +- ]) ++PKG_CHECK_MODULES([SDL], [sdl]) ++PKG_CHECK_MODULES([SDLMIXER], [SDL_mixer]) ++PKG_CHECK_MODULES([SDLNET], [SDL_net]) ++ ++# Check for libsamplerate. ++AC_ARG_WITH([libsamplerate], ++AS_HELP_STRING([--without-libsamplerate], ++ [Build without libsamplerate @<:@default=check@:>@]), ++[], ++[ ++ [with_libsamplerate=check] ++]) ++AS_IF([test "x$with_libsamplerate" != xno], [ ++ PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.1.8], [ ++ AC_DEFINE([HAVE_LIBSAMPLERATE], [1], [libsamplerate installed]) ++ ], [ ++ AS_IF([test "x$with_libsamplerate" != xcheck], [AC_MSG_FAILURE( ++ [--with-libsamplerate was given, but test for libsamplerate failed]) + ]) + ]) +- # Check for libpng. +- AC_ARG_WITH([libpng], +- AS_HELP_STRING([--without-libpng], +- [Build without libpng @<:@default=check@:>@]), +- [], +- [ +- [with_libpng=check] +- ]) +- AS_IF([test "x$with_libpng" != xno], [ +- AC_CHECK_LIB(z, zlibVersion) +- AC_CHECK_LIB(png, png_get_io_ptr, [], [ +- AS_IF([test "x$with_libpng" != xcheck], [AC_MSG_FAILURE( +- [--with-libpng was given, but test for libpng failed]) +- ]) ++]) ++# Check for libpng. ++AC_ARG_WITH([libpng], ++AS_HELP_STRING([--without-libpng], ++ [Build without libpng @<:@default=check@:>@]), ++[], ++[ ++ [with_libpng=check] ++]) ++AS_IF([test "x$with_libpng" != xno], [ ++ PKG_CHECK_MODULES([PNG], [libpng >= 1.6.10], [ ++ AC_DEFINE([HAVE_LIBPNG], [1], [libpng installed]) ++ ], [ ++ AS_IF([test "x$with_libpng" != xcheck], [AC_MSG_FAILURE( ++ [--with-libpng was given, but test for libpng failed]) + ]) + ]) +- AC_CHECK_LIB(m, log) ++]) ++AC_CHECK_LIB(m, log) + +- AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h dev/speaker/speaker.h]) +- AC_CHECK_FUNCS(mmap ioperm) ++AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h dev/speaker/speaker.h]) ++AC_CHECK_FUNCS(mmap ioperm) + +- # OpenBSD I/O i386 library for I/O port access. +- # (64 bit has the same thing with a different name!) ++# OpenBSD I/O i386 library for I/O port access. ++# (64 bit has the same thing with a different name!) + +- AC_CHECK_LIB(i386, i386_iopl) +- AC_CHECK_LIB(amd64, amd64_iopl) +-]) ++AC_CHECK_LIB(i386, i386_iopl) ++AC_CHECK_LIB(amd64, amd64_iopl) + + case $host in + *cygwin* | *mingw* ) +diff --git a/opl/examples/Makefile.am b/opl/examples/Makefile.am +index 9afcd51..54c37f8 100644 +--- a/opl/examples/Makefile.am ++++ b/opl/examples/Makefile.am +@@ -1,5 +1,5 @@ + +-AM_CFLAGS = -I$(top_srcdir)/opl ++AM_CFLAGS = -I$(top_srcdir)/opl @SDL_CFLAGS@ + + noinst_PROGRAMS=droplay + +diff --git a/src/Makefile.am b/src/Makefile.am +index 78ee3ba..9624e01 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -21,7 +21,8 @@ execgames_SCRIPTS = $(SETUP_BINARIES) + AM_CFLAGS = -I$(top_srcdir)/textscreen \ + -I$(top_srcdir)/opl \ + -I$(top_srcdir)/pcsound \ +- @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@ ++ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@ \ ++ @SAMPLERATE_CFLAGS@ @PNG_CFLAGS@ + + # Common source files used by absolutely everything: + +@@ -150,7 +151,9 @@ EXTRA_LIBS = \ + @LDFLAGS@ \ + @SDL_LIBS@ \ + @SDLMIXER_LIBS@ \ +- @SDLNET_LIBS@ ++ @SDLNET_LIBS@ \ ++ @SAMPLERATE_LIBS@ \ ++ @PNG_LIBS@ + + if HAVE_WINDRES + @PROGRAM_PREFIX@doom_SOURCES=$(SOURCE_FILES_WITH_DEH) resource.rc +diff --git a/textscreen/Makefile.am b/textscreen/Makefile.am +index 628d4ff..427ed40 100644 +--- a/textscreen/Makefile.am ++++ b/textscreen/Makefile.am +@@ -1,5 +1,5 @@ + +-AM_CFLAGS = -I$(top_srcdir)/src ++AM_CFLAGS = -I$(top_srcdir)/src @SDL_CFLAGS@ + + CTAGS_ARGS=-I TXT_UNCAST_ARG+ + +diff --git a/textscreen/examples/Makefile.am b/textscreen/examples/Makefile.am +index 4632d92..b857748 100644 +--- a/textscreen/examples/Makefile.am ++++ b/textscreen/examples/Makefile.am +@@ -1,5 +1,5 @@ + +-AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/textscreen ++AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/textscreen @SDL_CFLAGS@ + + noinst_PROGRAMS=guitest calculator + +-- +2.1.4 + diff --git a/bsp/buildroot/package/chocolate-doom/chocolate-doom.mk b/bsp/buildroot/package/chocolate-doom/chocolate-doom.mk index d64ad516..dad73528 100644 --- a/bsp/buildroot/package/chocolate-doom/chocolate-doom.mk +++ b/bsp/buildroot/package/chocolate-doom/chocolate-doom.mk @@ -8,7 +8,7 @@ CHOCOLATE_DOOM_VERSION = 2.2.1 CHOCOLATE_DOOM_SITE = http://www.chocolate-doom.org/downloads/$(CHOCOLATE_DOOM_VERSION) CHOCOLATE_DOOM_LICENSE = GPLv2+ CHOCOLATE_DOOM_LICENSE_FILES = COPYING -CHOCOLATE_DOOM_DEPENDENCIES = sdl sdl_mixer sdl_net +CHOCOLATE_DOOM_DEPENDENCIES = host-pkgconf sdl sdl_mixer sdl_net # We're patching configure.ac, so we need to autoreconf CHOCOLATE_DOOM_AUTORECONF = YES @@ -16,12 +16,6 @@ CHOCOLATE_DOOM_AUTORECONF = YES # Avoid installing desktop entries, icons, etc. CHOCOLATE_DOOM_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-exec -ifeq ($(BR2_STATIC_LIBS),y) -# SDL_mixer uses symbols from SDL, but ends up after it on the link -# cmdline. Fix it by forcing the SDL libs at the very end. -CHOCOLATE_DOOM_CONF_ENV = LIBS="`$(STAGING_DIR)/usr/bin/sdl-config --static-libs`" -endif - CHOCOLATE_DOOM_CONF_OPTS = \ --disable-sdltest \ --with-sdl-prefix=$(STAGING_DIR)/usr \ diff --git a/bsp/buildroot/package/chrony/chrony.hash b/bsp/buildroot/package/chrony/chrony.hash index fb8a6557..da35f6bf 100644 --- a/bsp/buildroot/package/chrony/chrony.hash +++ b/bsp/buildroot/package/chrony/chrony.hash @@ -1,3 +1,3 @@ -# From http://listengine.tuxfamily.org/chrony.tuxfamily.org/chrony-announce/2016/01/msg00000.html -md5 ce46990540aab3670d093311ee43fe17 chrony-2.2.1.tar.gz -sha1 290b761478dc90d4921c98b7030ead07c49f2afd chrony-2.2.1.tar.gz +# From http://thread.gmane.org/gmane.comp.time.chrony.announce/36 +md5 d0598aa8a9be8faccef9386f6fc0d5f2 chrony-2.4.tar.gz +sha1 8c243c545f242f869c9965e675828878970da5db chrony-2.4.tar.gz diff --git a/bsp/buildroot/package/chrony/chrony.mk b/bsp/buildroot/package/chrony/chrony.mk index 59faa10d..adfbd366 100644 --- a/bsp/buildroot/package/chrony/chrony.mk +++ b/bsp/buildroot/package/chrony/chrony.mk @@ -4,7 +4,7 @@ # ################################################################################ -CHRONY_VERSION = 2.2.1 +CHRONY_VERSION = 2.4 CHRONY_SITE = http://download.tuxfamily.org/chrony CHRONY_LICENSE = GPLv2 CHRONY_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/chrony/chrony.service b/bsp/buildroot/package/chrony/chrony.service index 6000fce4..325b63c4 100644 --- a/bsp/buildroot/package/chrony/chrony.service +++ b/bsp/buildroot/package/chrony/chrony.service @@ -4,7 +4,7 @@ After=syslog.target network.target Conflicts=systemd-timesyncd.service [Service] -ExecStart=/usr/bin/chronyd -n +ExecStart=/usr/sbin/chronyd -n Restart=always [Install] diff --git a/bsp/buildroot/package/cifs-utils/0001-mtab.c-include-paths.h-for-_PATH_MOUNTED.patch b/bsp/buildroot/package/cifs-utils/0001-mtab.c-include-paths.h-for-_PATH_MOUNTED.patch deleted file mode 100644 index 8fbec11c..00000000 --- a/bsp/buildroot/package/cifs-utils/0001-mtab.c-include-paths.h-for-_PATH_MOUNTED.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6603cef0f06c450196a1bca06bb143d8fcda5651 Mon Sep 17 00:00:00 2001 -From: Felix Janda -Date: Fri, 5 Dec 2014 23:19:29 +0100 -Subject: [PATCH 1/1] mtab.c: include for _PATH_MOUNTED -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Backported from: 6603cef0f06c450196a1bca06bb143d8fcda5651 - -Signed-off-by: Felix Janda -Signed-off-by: Jörg Krause ---- - mtab.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/mtab.c b/mtab.c -index 7b365b3..a662a3c 100644 ---- a/mtab.c -+++ b/mtab.c -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - #include "mount.h" - #include "config.h" - --- -2.5.0 - diff --git a/bsp/buildroot/package/cifs-utils/cifs-utils.hash b/bsp/buildroot/package/cifs-utils/cifs-utils.hash index 92551792..c49ced44 100644 --- a/bsp/buildroot/package/cifs-utils/cifs-utils.hash +++ b/bsp/buildroot/package/cifs-utils/cifs-utils.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 38fc63926af435dae4ebcf4406275580a692d9fb9ee3e32170317cf2ba68e6e3 cifs-utils-6.4.tar.bz2 +sha256 e2776578b8267c6dc0862897f5e10f87f10f8337fca9ca6a9118f5eb30cf49f7 cifs-utils-6.5.tar.bz2 diff --git a/bsp/buildroot/package/cifs-utils/cifs-utils.mk b/bsp/buildroot/package/cifs-utils/cifs-utils.mk index 89358b1f..6cd45e0c 100644 --- a/bsp/buildroot/package/cifs-utils/cifs-utils.mk +++ b/bsp/buildroot/package/cifs-utils/cifs-utils.mk @@ -4,13 +4,13 @@ # ################################################################################ -CIFS_UTILS_VERSION = 6.4 +CIFS_UTILS_VERSION = 6.5 CIFS_UTILS_SOURCE = cifs-utils-$(CIFS_UTILS_VERSION).tar.bz2 CIFS_UTILS_SITE = http://ftp.samba.org/pub/linux-cifs/cifs-utils CIFS_UTILS_LICENSE = GPLv3+ CIFS_UTILS_LICENSE_FILES = COPYING -ifeq ($(BR2_STATIC_LIBS),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) CIFS_UTILS_CONF_OPTS += --disable-pie endif diff --git a/bsp/buildroot/package/circus/Config.in b/bsp/buildroot/package/circus/Config.in new file mode 100644 index 00000000..e696f251 --- /dev/null +++ b/bsp/buildroot/package/circus/Config.in @@ -0,0 +1,21 @@ +config BR2_PACKAGE_CIRCUS + bool "circus" + depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 + depends on BR2_USE_WCHAR # pyzmq -> zeromq + depends on BR2_INSTALL_LIBSTDCPP # pyzmq -> zeromq + depends on BR2_TOOLCHAIN_HAS_THREADS # pyzmq -> zeromq + select BR2_PACKAGE_PYTHON_IOWAIT # runtime + select BR2_PACKAGE_PYTHON_PSUTIL # runtime + select BR2_PACKAGE_PYTHON_PYZMQ # runtime + select BR2_PACKAGE_PYTHON_TORNADO # runtime + select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime + help + Circus is a program that will let you run and watch multiple + processes and sockets. + + https://circus.readthedocs.org/en/latest/ + +comment "circus needs Python and a toolchain w/ C++, wchar, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ + !BR2_TOOLCHAIN_HAS_THREADS || \ + !(BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3) diff --git a/bsp/buildroot/package/circus/circus.hash b/bsp/buildroot/package/circus/circus.hash new file mode 100644 index 00000000..728cad52 --- /dev/null +++ b/bsp/buildroot/package/circus/circus.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/circus/json, sha256 locally computed +md5 cddd4a8844907d8b6b402ca9c713d176 circus-0.13.0.tar.gz +sha256 6201800a5fb05144b5e6c5ac9eb901b914305e8beaeb01f8edf54ab6ab1a295a circus-0.13.0.tar.gz diff --git a/bsp/buildroot/package/circus/circus.mk b/bsp/buildroot/package/circus/circus.mk new file mode 100644 index 00000000..a7693bdf --- /dev/null +++ b/bsp/buildroot/package/circus/circus.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# circus +# +################################################################################ + +CIRCUS_VERSION = 0.13.0 +CIRCUS_SOURCE = circus-$(CIRCUS_VERSION).tar.gz +CIRCUS_SITE = https://pypi.python.org/packages/source/c/circus +CIRCUS_SETUP_TYPE = setuptools +CIRCUS_LICENSE = Apache-2.0 +CIRCUS_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/civetweb/civetweb.hash b/bsp/buildroot/package/civetweb/civetweb.hash new file mode 100644 index 00000000..745f4a8c --- /dev/null +++ b/bsp/buildroot/package/civetweb/civetweb.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 79a852a26068eb6d2f8de5ee72e021f0d2c8bd176eb81f41909a876b736815d9 civetweb-v1.5.tar.gz diff --git a/bsp/buildroot/package/clamav/clamav.hash b/bsp/buildroot/package/clamav/clamav.hash index f1931ad6..d2a1a129 100644 --- a/bsp/buildroot/package/clamav/clamav.hash +++ b/bsp/buildroot/package/clamav/clamav.hash @@ -1,4 +1,2 @@ -# From http://sourceforge.net/projects/clamav/files/clamav/0.99/ -sha1 7834baf3ce4898dd856e652c9d0301a8e14b4615 clamav-0.99.tar.gz -# Locally computed -sha256 d2792c8cfadd685fffc40b2199679628815df031fd3149ccf961649fc8787ea9 clamav-0.99.tar.gz +# Locally calculated +sha256 167bd6a13e05ece326b968fdb539b05c2ffcfef6018a274a10aeda85c2c0027a clamav-0.99.2.tar.gz diff --git a/bsp/buildroot/package/clamav/clamav.mk b/bsp/buildroot/package/clamav/clamav.mk index 35afd1e8..6a82d66c 100644 --- a/bsp/buildroot/package/clamav/clamav.mk +++ b/bsp/buildroot/package/clamav/clamav.mk @@ -4,8 +4,8 @@ # ################################################################################ -CLAMAV_VERSION = 0.99 -CLAMAV_SITE = http://sourceforge.net/projects/clamav/files/clamav/$(CLAMAV_VERSION) +CLAMAV_VERSION = 0.99.2 +CLAMAV_SITE = https://www.clamav.net/downloads/production CLAMAV_LICENSE = GPLv2 CLAMAV_LICENSE_FILES = COPYING COPYING.bzip2 COPYING.file COPYING.getopt \ COPYING.LGPL COPYING.llvm COPYING.lzma COPYING.pcre COPYING.regex \ diff --git a/bsp/buildroot/package/clapack/Config.in b/bsp/buildroot/package/clapack/Config.in index 2257524e..7d1f9401 100644 --- a/bsp/buildroot/package/clapack/Config.in +++ b/bsp/buildroot/package/clapack/Config.in @@ -1,4 +1,4 @@ -comment "clapack needs an (e)glibc toolchain" +comment "clapack needs a glibc toolchain" depends on BR2_powerpc depends on !BR2_TOOLCHAIN_USES_GLIBC @@ -12,6 +12,8 @@ config BR2_PACKAGE_CLAPACK # because of the "_" symbol prefix: # http://autobuild.buildroot.net/results/a28df0ba10803e6e54c2f8160bbd8190cba4d690/ depends on !BR2_bfin + # assembler: Error: value out of range + depends on !BR2_m68k_cf help BLAS and LAPACK C implementation (f2c'ed version of). diff --git a/bsp/buildroot/package/cloog/cloog.mk b/bsp/buildroot/package/cloog/cloog.mk index 4c8b4c11..ef666d0c 100644 --- a/bsp/buildroot/package/cloog/cloog.mk +++ b/bsp/buildroot/package/cloog/cloog.mk @@ -7,7 +7,7 @@ CLOOG_VERSION = 0.18.4 CLOOG_SITE = http://www.bastoul.net/cloog/pages/download CLOOG_LICENSE = LGPLv2.1+ -CLOOG_DEPENDENCIES = gmp isl +HOST_CLOOG_DEPENDENCIES = host-gmp host-isl # Our libtool patch doesn't apply, and since this package is only # built for the host, we don't really care about it. CLOOG_LIBTOOL_PATCH = NO diff --git a/bsp/buildroot/package/cmake/cmake.hash b/bsp/buildroot/package/cmake/cmake.hash index 5b814162..e40d4ea3 100644 --- a/bsp/buildroot/package/cmake/cmake.hash +++ b/bsp/buildroot/package/cmake/cmake.hash @@ -1,2 +1,2 @@ -# From http://www.cmake.org/files/v3.4/cmake-3.4.3-SHA-256.txt -sha256 b73f8c1029611df7ed81796bf5ca8ba0ef41c6761132340c73ffe42704f980fa cmake-3.4.3.tar.gz +# From http://www.cmake.org/files/v3.5/cmake-3.5.2-SHA-256.txt +sha256 92d8410d3d981bb881dfff2aed466da55a58d34c7390d50449aa59b32bb5e62a cmake-3.5.2.tar.gz diff --git a/bsp/buildroot/package/cmake/cmake.mk b/bsp/buildroot/package/cmake/cmake.mk index 1a1ba300..7a80c1bf 100644 --- a/bsp/buildroot/package/cmake/cmake.mk +++ b/bsp/buildroot/package/cmake/cmake.mk @@ -4,13 +4,24 @@ # ################################################################################ -CMAKE_VERSION_MAJOR = 3.4 -CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).3 +CMAKE_VERSION_MAJOR = 3.5 +CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).2 CMAKE_SITE = https://cmake.org/files/v$(CMAKE_VERSION_MAJOR) CMAKE_LICENSE = BSD-3c CMAKE_LICENSE_FILES = Copyright.txt -HOST_CMAKE_DEPENDENCIES = host-pkgconf +# CMake is a particular package: +# * CMake can be built using the generic infrastructure or the cmake one. +# Since Buildroot has no requirement regarding the host system cmake +# program presence, it uses the generic infrastructure to build the +# host-cmake package, then the (target-)cmake package can be built +# using the cmake infrastructure; +# * CMake bundles its dependencies within its sources. This is the +# reason why the host-cmake package has no dependencies:, whereas +# the (target-)cmake package has a lot of dependencies, using only +# the system-wide libraries instead of rebuilding and statically +# linking with the ones bundled into the CMake sources. + CMAKE_DEPENDENCIES = zlib jsoncpp libcurl libarchive expat bzip2 xz CMAKE_CONF_OPTS = \ diff --git a/bsp/buildroot/package/collectd/Config.in b/bsp/buildroot/package/collectd/Config.in index ec7e942e..6405af6a 100644 --- a/bsp/buildroot/package/collectd/Config.in +++ b/bsp/buildroot/package/collectd/Config.in @@ -1,4 +1,4 @@ -config BR2_PACKAGE_COLLECTD +menuconfig BR2_PACKAGE_COLLECTD bool "collectd" # Uses fork() depends on BR2_USE_MMU @@ -39,6 +39,7 @@ config BR2_PACKAGE_COLLECTD_VALUE bool "value" help Select values by their data sources' values. + endmenu menu "misc plugins" @@ -333,7 +334,7 @@ config BR2_PACKAGE_COLLECTD_OPENLDAP Read monitoring information from OpenLDAP's cn=Monitor subtree. comment "openldap support needs a toolchain w/ wchar" - depends on !BR2_USE_WCHAR + depends on !BR2_USE_WCHAR config BR2_PACKAGE_COLLECTD_OPENVPN bool "openvpn" @@ -385,7 +386,7 @@ config BR2_PACKAGE_COLLECTD_SMART and bad sectors. comment "SMART requires udev to be enabled" - depends on !BR2_PACKAGE_HAS_UDEV + depends on !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_COLLECTD_STATSD bool "StatsD" diff --git a/bsp/buildroot/package/collectd/collectd.hash b/bsp/buildroot/package/collectd/collectd.hash index 3d982fec..d385c0dd 100644 --- a/bsp/buildroot/package/collectd/collectd.hash +++ b/bsp/buildroot/package/collectd/collectd.hash @@ -1,2 +1,2 @@ # From https://collectd.org/files/SHA256SUM -sha256 f9c5d526e1f0429a7db1ccd90bdf9e23923a2fd43b7285cfda8f0341e5c0bc3f collectd-5.5.1.tar.bz2 +sha256 017f3a4062187e594d8ab6af685655fb82a8a942dc574668e68242bdb8ba820f collectd-5.5.2.tar.bz2 diff --git a/bsp/buildroot/package/collectd/collectd.mk b/bsp/buildroot/package/collectd/collectd.mk index 06c5389f..b9422f3a 100644 --- a/bsp/buildroot/package/collectd/collectd.mk +++ b/bsp/buildroot/package/collectd/collectd.mk @@ -4,7 +4,7 @@ # ################################################################################ -COLLECTD_VERSION = 5.5.1 +COLLECTD_VERSION = 5.5.2 COLLECTD_SITE = http://collectd.org/files COLLECTD_SOURCE = collectd-$(COLLECTD_VERSION).tar.bz2 COLLECTD_CONF_ENV = ac_cv_lib_yajl_yajl_alloc=yes @@ -16,7 +16,7 @@ COLLECTD_LICENSE_FILES = COPYING COLLECTD_PLUGINS_DISABLE = \ amqp apple_sensors aquaero ascent barometer dbi email \ gmond hddtemp ipmi java libvirt lpar lvm madwifi mbmon \ - mic multimeter netapp notify_desktop notify_email numa \ + mic multimeter netapp notify_desktop notify_email numa \ nut onewire oracle perl pf pinba powerdns python redis routeros \ rrdcached sigrok tape target_v5upgrade teamspeak2 ted \ tokyotyrant turbostat uuid varnish virt vserver write_kafka \ @@ -185,4 +185,12 @@ define COLLECTD_INSTALL_TARGET_CMDS rm -f $(TARGET_DIR)/usr/share/collectd/postgresql_default.conf endef +define COLLECTD_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/collectd/collectd.service \ + $(TARGET_DIR)/usr/lib/systemd/system/collectd.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -fs ../../../../usr/lib/systemd/system/collectd.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/collectd.service +endef + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/collectd/collectd.service b/bsp/buildroot/package/collectd/collectd.service new file mode 100644 index 00000000..e203806f --- /dev/null +++ b/bsp/buildroot/package/collectd/collectd.service @@ -0,0 +1,17 @@ +[Unit] +Description=Statistics collection and monitoring daemon +After=local-fs.target network.target +Requires=local-fs.target network.target +ConditionPathExists=/etc/collectd.conf + +[Service] +Type=notify +NotifyAccess=main +EnvironmentFile=-/etc/default/collectd +ExecStartPre=/usr/sbin/collectd -t +ExecStart=/usr/sbin/collectd +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/bsp/buildroot/package/connman-gtk/Config.in b/bsp/buildroot/package/connman-gtk/Config.in new file mode 100644 index 00000000..467bf7ec --- /dev/null +++ b/bsp/buildroot/package/connman-gtk/Config.in @@ -0,0 +1,22 @@ +comment "connman-gtk needs libgtk3 and a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ + BR2_STATIC_LIBS || !BR2_PACKAGE_LIBGTK3 || \ + BR2_TOOLCHAIN_USES_MUSL + +config BR2_PACKAGE_CONNMAN_GTK + bool "connman-gtk" + depends on BR2_USE_WCHAR # libglib2, connman + depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, connman + depends on BR2_USE_MMU # libglib2 + depends on !BR2_STATIC_LIBS # connman + depends on BR2_TOOLCHAIN_HAS_SYNC_4 # connman + depends on !BR2_TOOLCHAIN_USES_MUSL # connman + depends on BR2_PACKAGE_LIBGTK3 + select BR2_PACKAGE_CONNMAN + select BR2_PACKAGE_LIBGLIB2 + help + GTK GUI for ConnMan. + + https://github.com/jgke/connman-gtk diff --git a/bsp/buildroot/package/connman-gtk/connman-gtk.hash b/bsp/buildroot/package/connman-gtk/connman-gtk.hash new file mode 100644 index 00000000..d71e77d2 --- /dev/null +++ b/bsp/buildroot/package/connman-gtk/connman-gtk.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 49bdc4769a7c508b0130e4705eef21aec9df1ea4f5c29fee48a0cae8db828fca connman-gtk-1.1.1.tar.bz2 diff --git a/bsp/buildroot/package/connman-gtk/connman-gtk.mk b/bsp/buildroot/package/connman-gtk/connman-gtk.mk new file mode 100644 index 00000000..2c9c1314 --- /dev/null +++ b/bsp/buildroot/package/connman-gtk/connman-gtk.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# connman-gtk +# +################################################################################ + +CONNMAN_GTK_VERSION = 1.1.1 +CONNMAN_GTK_SITE = https://github.com/jgke/connman-gtk/releases/download/v$(CONNMAN_GTK_VERSION) +CONNMAN_GTK_SOURCE = connman-gtk-$(CONNMAN_GTK_VERSION).tar.bz2 +CONNMAN_GTK_INSTALL_STAGING = YES +CONNMAN_GTK_DEPENDENCIES = host-intltool connman libglib2 libgtk3 +CONNMAN_GTK_LICENSE = GPLv2+ +CONNMAN_GTK_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/connman/0001-configure-check-for-execinfo.h.patch b/bsp/buildroot/package/connman/0001-configure-check-for-execinfo.h.patch deleted file mode 100644 index 384f41bd..00000000 --- a/bsp/buildroot/package/connman/0001-configure-check-for-execinfo.h.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 30642d5b1a3f479987c4d50a237311d84d5f0581 Mon Sep 17 00:00:00 2001 -From: "Yann E. MORIN" -Date: Thu, 24 Dec 2015 12:04:57 +0100 -Subject: [PATCH] configure: check for execinfo.h - -Not all toolchains have execinfo.h. For example, support for it is -optional in uClibc, while it is entirely missing from musl. - -Add a check in configure to look for it. - -Since execinfo.h is /only/ used to dump a backtrace in case of failure, -just do nothing when execinfo.h is missing. - -Signed-off-by: "Yann E. MORIN" ---- - configure.ac | 2 ++ - src/log.c | 4 ++++ - 2 files changed, 6 insertions(+) - -diff --git a/configure.ac b/configure.ac -index b51d6b3..28e657b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -182,6 +182,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [ - AC_MSG_ERROR(resolver library support is required)) - ]) - -+AC_CHECK_HEADERS([execinfo.h]) -+ - AC_CHECK_FUNC(signalfd, dummy=yes, - AC_MSG_ERROR(signalfd support is required)) - -diff --git a/src/log.c b/src/log.c -index a693bd0..76e10e7 100644 ---- a/src/log.c -+++ b/src/log.c -@@ -30,7 +30,9 @@ - #include - #include - #include -+#if defined(HAVE_EXECINFO_H) - #include -+#endif - #include - - #include "connman.h" -@@ -112,6 +114,7 @@ void connman_debug(const char *format, ...) - - static void print_backtrace(unsigned int offset) - { -+#if defined(HAVE_EXECINFO_H) - void *frames[99]; - size_t n_ptrs; - unsigned int i; -@@ -210,6 +213,7 @@ static void print_backtrace(unsigned int offset) - - close(outfd[1]); - close(infd[0]); -+#endif /* HAVE_EXECINFO_H */ - } - - static void signal_handler(int signo) --- -1.9.1 - diff --git a/bsp/buildroot/package/connman/0002-nat-build-failure.patch b/bsp/buildroot/package/connman/0002-nat-build-failure.patch new file mode 100644 index 00000000..0ab58501 --- /dev/null +++ b/bsp/buildroot/package/connman/0002-nat-build-failure.patch @@ -0,0 +1,30 @@ +From 68f4b4f5b220f256b17ad2f084d61fe89f3632ae Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 19 Apr 2016 08:38:38 -0300 +Subject: [PATCH] nat: fix build failure + +_GNU_SOURCE needs to be defined so that O_CLOEXEC symbols can be found in +system header files. + +Signed-off-by: Gustavo Zacarias +--- +Status: submitted upstream + + src/nat.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/nat.c b/src/nat.c +index 33ae6df..62e21d4 100644 +--- a/src/nat.c ++++ b/src/nat.c +@@ -24,6 +24,7 @@ + #include + #endif + ++#define _GNU_SOURCE + #include + #include + #include +-- +2.7.3 + diff --git a/bsp/buildroot/package/connman/Config.in b/bsp/buildroot/package/connman/Config.in index 26406c8c..6ed40bea 100644 --- a/bsp/buildroot/package/connman/Config.in +++ b/bsp/buildroot/package/connman/Config.in @@ -7,7 +7,8 @@ config BR2_PACKAGE_CONNMAN depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus, libglib2 depends on !BR2_STATIC_LIBS # needs dlopen() - depends on !BR2_sparc # needs atomic operation __sync_fetch_and_add + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_TOOLCHAIN_USES_MUSL # mixes userspace and kernel headers help The Connection Manager (ConnMan) project provides a daemon for managing internet connections within embedded devices @@ -54,7 +55,6 @@ config BR2_PACKAGE_CONNMAN_NEARD config BR2_PACKAGE_CONNMAN_OFONO bool "enable ofono support" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libcap-ng depends on BR2_TOOLCHAIN_HAS_SYNC_4 # ofono select BR2_PACKAGE_OFONO @@ -67,7 +67,8 @@ config BR2_PACKAGE_CONNMAN_CLIENT endif # BR2_PACKAGE_CONNMAN -comment "connman needs a toolchain w/ wchar, threads, resolver, dynamic library" +comment "connman needs a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library" depends on BR2_USE_MMU - depends on !BR2_sparc - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ + || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/connman/connman.hash b/bsp/buildroot/package/connman/connman.hash index 4810f811..f27af3de 100644 --- a/bsp/buildroot/package/connman/connman.hash +++ b/bsp/buildroot/package/connman/connman.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/linux/network/connman/sha256sums.asc -sha256 88fcf0b6df334796b90e2fd2e434d6f5b36cd6f13b886a119b8c90276b72b8e2 connman-1.31.tar.xz +sha256 bc8946036fa70124d663136f9f6b6238d897ca482782df907b07a428b09df5a0 connman-1.33.tar.xz diff --git a/bsp/buildroot/package/connman/connman.mk b/bsp/buildroot/package/connman/connman.mk index 1fe103cf..f7c9f231 100644 --- a/bsp/buildroot/package/connman/connman.mk +++ b/bsp/buildroot/package/connman/connman.mk @@ -4,7 +4,7 @@ # ################################################################################ -CONNMAN_VERSION = 1.31 +CONNMAN_VERSION = 1.33 CONNMAN_SOURCE = connman-$(CONNMAN_VERSION).tar.xz CONNMAN_SITE = $(BR2_KERNEL_MIRROR)/linux/network/connman CONNMAN_DEPENDENCIES = libglib2 dbus iptables diff --git a/bsp/buildroot/package/copas/copas.hash b/bsp/buildroot/package/copas/copas.hash index 35dff2ff..27e33166 100644 --- a/bsp/buildroot/package/copas/copas.hash +++ b/bsp/buildroot/package/copas/copas.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 05be032ac2f3a32eb2eb536d41d2f5af620dded6e158c54d1ab0f73d2957dc68 copas-2.0.0-1.src.rock +sha256 c94890bdc8899d05163ca963dadf4b74b2ad7a5795ea3923a792b6e928ec142a copas-2.0.1-1.src.rock diff --git a/bsp/buildroot/package/copas/copas.mk b/bsp/buildroot/package/copas/copas.mk index b3f97c70..132b5d96 100644 --- a/bsp/buildroot/package/copas/copas.mk +++ b/bsp/buildroot/package/copas/copas.mk @@ -4,8 +4,8 @@ # ################################################################################ -COPAS_VERSION = 2.0.0-1 -COPAS_SUBDIR = copas-2_0_0 +COPAS_VERSION = 2.0.1-1 +COPAS_SUBDIR = copas-2_0_1 COPAS_LICENSE = MIT $(eval $(luarocks-package)) diff --git a/bsp/buildroot/package/coreutils/Config.in b/bsp/buildroot/package/coreutils/Config.in index d9f614a0..11a6019e 100644 --- a/bsp/buildroot/package/coreutils/Config.in +++ b/bsp/buildroot/package/coreutils/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_COREUTILS bool "coreutils" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help All of the basic file/text/shell utilities. These are the core utilities which are expected to exist on every system. @@ -17,3 +18,4 @@ config BR2_PACKAGE_COREUTILS comment "coreutils needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/cosmo/cosmo.hash b/bsp/buildroot/package/cosmo/cosmo.hash new file mode 100644 index 00000000..ff885764 --- /dev/null +++ b/bsp/buildroot/package/cosmo/cosmo.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 4e81c1bba7ab3b4633c8d6dadfc8332c59c818829436435b4d5a2ec76adfbb87 cosmo-14.03.04-1.src.rock diff --git a/bsp/buildroot/package/cpio/0001-fix-CVE-2016-2037.patch b/bsp/buildroot/package/cpio/0001-fix-CVE-2016-2037.patch new file mode 100644 index 00000000..aec2ccb8 --- /dev/null +++ b/bsp/buildroot/package/cpio/0001-fix-CVE-2016-2037.patch @@ -0,0 +1,51 @@ +From: Pavel Raiskup +Subject: [Bug-cpio] [PATCH] fix 1-byte out-of-bounds write +Date: Tue, 26 Jan 2016 23:17:54 +0100 + +Other calls to cpio_safer_name_suffix seem to be safe. + +* src/copyin.c (process_copy_in): Make sure that file_hdr.c_name +has at least two bytes allocated. +* src/util.c (cpio_safer_name_suffix): Document that use of this +function requires to be careful. + +Signed-off-by: Gustavo Zacarias +--- +Patch status: fetched/submitted +URL: https://lists.gnu.org/archive/html/bug-cpio/2016-01/msg00005.html + + src/copyin.c | 2 ++ + src/util.c | 5 ++++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/copyin.c b/src/copyin.c +index cde911e..032d35f 100644 +--- a/src/copyin.c ++++ b/src/copyin.c +@@ -1385,6 +1385,8 @@ process_copy_in () + break; + } + ++ if (file_hdr.c_namesize <= 1) ++ file_hdr.c_name = xrealloc(file_hdr.c_name, 2); + cpio_safer_name_suffix (file_hdr.c_name, false, !no_abs_paths_flag, + false); + +diff --git a/src/util.c b/src/util.c +index 6ff6032..2763ac1 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -1411,7 +1411,10 @@ set_file_times (int fd, + } + + /* Do we have to ignore absolute paths, and if so, does the filename +- have an absolute path? */ ++ have an absolute path? ++ Before calling this function make sure that the allocated NAME buffer has ++ capacity at least 2 bytes to allow us to store the "." string inside. */ ++ + void + cpio_safer_name_suffix (char *name, bool link_target, bool absolute_names, + bool strip_leading_dots) +-- +2.5.0 diff --git a/bsp/buildroot/package/cppcms/Config.in b/bsp/buildroot/package/cppcms/Config.in index 79f54741..2cf70052 100644 --- a/bsp/buildroot/package/cppcms/Config.in +++ b/bsp/buildroot/package/cppcms/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_CPPCMS select BR2_PACKAGE_PCRE select BR2_PACKAGE_LIBGCRYPT depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on !BR2_STATIC_LIBS # dlopen() depends on BR2_USE_WCHAR diff --git a/bsp/buildroot/package/cppzmq/cppzmq.hash b/bsp/buildroot/package/cppzmq/cppzmq.hash new file mode 100644 index 00000000..792fb17b --- /dev/null +++ b/bsp/buildroot/package/cppzmq/cppzmq.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 812b47f76c609e194b2607a186ff0d1b03b6a0c8ea13b20faa47570ddf38ef2c cppzmq-68a7b09cfce01c4c279fba2cf91686fcfc566848.tar.gz diff --git a/bsp/buildroot/package/cppzmq/cppzmq.mk b/bsp/buildroot/package/cppzmq/cppzmq.mk index 5446de8b..113b9a07 100644 --- a/bsp/buildroot/package/cppzmq/cppzmq.mk +++ b/bsp/buildroot/package/cppzmq/cppzmq.mk @@ -4,7 +4,7 @@ # ################################################################################ -CPPZMQ_VERSION = 1f05e0d111197c64be32ad5aecd59f4d1b05a819 +CPPZMQ_VERSION = 68a7b09cfce01c4c279fba2cf91686fcfc566848 CPPZMQ_SITE = $(call github,zeromq,cppzmq,$(CPPZMQ_VERSION)) CPPZMQ_INSTALL_STAGING = YES CPPZMQ_DEPENDENCIES = zeromq diff --git a/bsp/buildroot/package/cpuload/cpuload.hash b/bsp/buildroot/package/cpuload/cpuload.hash new file mode 100644 index 00000000..02861ffa --- /dev/null +++ b/bsp/buildroot/package/cpuload/cpuload.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1d61f4776dc3e2746343d68b2ea2faf138e54666b630a6060df4f3945badbcae cpuload-v0.3.tar.gz diff --git a/bsp/buildroot/package/cramfs/cramfs.mk b/bsp/buildroot/package/cramfs/cramfs.mk index 72860b6b..3cbe2744 100644 --- a/bsp/buildroot/package/cramfs/cramfs.mk +++ b/bsp/buildroot/package/cramfs/cramfs.mk @@ -10,6 +10,7 @@ CRAMFS_LICENSE = GPLv2+ CRAMFS_LICENSE_FILES = COPYING CRAMFS_DEPENDENCIES = zlib +HOST_CRAMFS_DEPENDENCIES = host-zlib define CRAMFS_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D) diff --git a/bsp/buildroot/package/crda/0001-Makefile-allow-to-override-python-interpreter.patch b/bsp/buildroot/package/crda/0001-Makefile-allow-to-override-python-interpreter.patch deleted file mode 100644 index 24813906..00000000 --- a/bsp/buildroot/package/crda/0001-Makefile-allow-to-override-python-interpreter.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 6831024a247fd89c7f7adcbee8a0be991b3caaf4 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sun, 2 Mar 2014 23:45:44 +0100 -Subject: [PATCH] Makefile: allow to override python interpreter - -Signed-off-by: Samuel Martin ---- - Makefile | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 1d34bde..d7134ff 100644 ---- a/Makefile -+++ b/Makefile -@@ -42,6 +42,7 @@ LDLIBS += -lgcrypt - reglib.o: keys-gcrypt.c - - endif -+PYTHON ?= python2 - MKDIR ?= mkdir -p - INSTALL ?= install - -@@ -103,7 +104,7 @@ $(REG_BIN): - keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem) - $(NQ) ' GEN ' $@ - $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem) -- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@ -+ $(Q)$(PYTHON) ./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@ - - %.o: %.c regdb.h reglib.h - $(NQ) ' CC ' $@ --- -1.9.0 - diff --git a/bsp/buildroot/package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch b/bsp/buildroot/package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch new file mode 100644 index 00000000..99eb11cb --- /dev/null +++ b/bsp/buildroot/package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch @@ -0,0 +1,271 @@ +From 797f2836c48f9ba2446629ae4b6867ca1a5ea512 Mon Sep 17 00:00:00 2001 +From: Taahir Ahmed +Date: Wed, 30 Mar 2016 11:23:54 -0300 +Subject: [PATCH 1/2] crda: support python 3 in utils/key2pub.py + +utils/key2pub.py can now be run under either python 2.7 or python 3.x. +This required some minor syntactical changes as well as switching from +M2Crypto to pycrypto, since M2Crypto doesn't support python 3.x. + +In addition, some errors in the generated source file keys-ssl.h are +fixed: + + * The correct OpenSSL header for BN_ULONG is included. + + * The generated constants are given the 'ull' suffix to prevent + warnings about constants that are too large. + +[Gustavo: don't call /utils/key2pub.py since that doesn't compute] + +Signed-off-by: Gustavo Zacarias +--- +Status: submitted upstream by author but not (yet) accepted +URL: http://www.spinics.net/lists/linux-wireless/msg138936.html + + Makefile | 2 +- + utils/key2pub.py | 146 ++++++++++++++++++++++++++++--------------------------- + 2 files changed, 75 insertions(+), 73 deletions(-) + +diff --git a/Makefile b/Makefile +index 1f25509..523a96e 100644 +--- a/Makefile ++++ b/Makefile +@@ -112,7 +112,7 @@ $(REG_BIN): + keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem) + $(NQ) ' GEN ' $@ + $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem) +- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@ ++ $(Q) python utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@ + + $(LIBREG): regdb.h reglib.h reglib.c + $(NQ) ' CC ' $@ +diff --git a/utils/key2pub.py b/utils/key2pub.py +index 3e84cd2..c76cbbb 100755 +--- a/utils/key2pub.py ++++ b/utils/key2pub.py +@@ -1,126 +1,128 @@ + #!/usr/bin/env python + ++import io + import sys + try: +- from M2Crypto import RSA +-except ImportError, e: +- sys.stderr.write('ERROR: Failed to import the "M2Crypto" module: %s\n' % e.message) +- sys.stderr.write('Please install the "M2Crypto" Python module.\n') +- sys.stderr.write('On Debian GNU/Linux the package is called "python-m2crypto".\n') +- sys.exit(1) ++ from Crypto.PublicKey import RSA ++except ImportError as e: ++ sys.stderr.write('ERROR: Failed to import the "Crypto.PublicKey" module: %s\n' % e.message) ++ sys.stderr.write('Please install the "Crypto.PublicKey" Python module.\n') ++ sys.stderr.write('On Debian GNU/Linux the package is called "python-crypto".\n') ++ sys.exit(1) ++ ++def bitwise_collect(value, radix_bits): ++ words = [] ++ radix_mask = (1 << radix_bits) - 1 ++ while value != 0: ++ words.append(value & radix_mask) ++ value >>= radix_bits ++ return words + + def print_ssl_64(output, name, val): +- while val[0] == '\0': +- val = val[1:] +- while len(val) % 8: +- val = '\0' + val +- vnew = [] +- while len(val): +- vnew.append((val[0], val[1], val[2], val[3], val[4], val[5], val[6], val[7])) +- val = val[8:] +- vnew.reverse() +- output.write('static BN_ULONG %s[%d] = {\n' % (name, len(vnew))) ++ # OpenSSL expects 64-bit words given least-significant-word first. ++ vwords = bitwise_collect(val, 64) ++ ++ output.write(u'static BN_ULONG {}[] = {{\n'.format(name)) + idx = 0 +- for v1, v2, v3, v4, v5, v6, v7, v8 in vnew: ++ for vword in vwords: + if not idx: +- output.write('\t') +- output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8))) ++ output.write(u'\t') ++ output.write(u'0x{:016x}ULL, '.format(vword)) + idx += 1 + if idx == 2: + idx = 0 +- output.write('\n') ++ output.write(u'\n') + if idx: +- output.write('\n') +- output.write('};\n\n') ++ output.write(u'\n') ++ output.write(u'};\n\n') + + def print_ssl_32(output, name, val): +- while val[0] == '\0': +- val = val[1:] +- while len(val) % 4: +- val = '\0' + val +- vnew = [] +- while len(val): +- vnew.append((val[0], val[1], val[2], val[3], )) +- val = val[4:] +- vnew.reverse() +- output.write('static BN_ULONG %s[%d] = {\n' % (name, len(vnew))) ++ # OpenSSL expects 32-bit words given least-significant-word first. ++ vwords = bitwise_collect(val, 32) ++ ++ output.write(u'static BN_ULONG {}[] = {{\n'.format(name)) + idx = 0 +- for v1, v2, v3, v4 in vnew: ++ for vword in vwords: + if not idx: +- output.write('\t') +- output.write('0x%.2x%.2x%.2x%.2x, ' % (ord(v1), ord(v2), ord(v3), ord(v4))) ++ output.write(u'\t') ++ output.write(u'0x{:08x}, '.format(vword)) + idx += 1 + if idx == 4: + idx = 0 +- output.write('\n') ++ output.write(u'\n') + if idx: +- output.write('\n') +- output.write('};\n\n') ++ output.write(u'\n') ++ output.write(u'};\n\n') + + def print_ssl(output, name, val): ++ ++ output.write(u'#include \n') ++ output.write(u'#include \n') ++ + import struct +- output.write('#include \n') + if len(struct.pack('@L', 0)) == 8: + return print_ssl_64(output, name, val) + else: + return print_ssl_32(output, name, val) + + def print_ssl_keys(output, n): +- output.write(r''' ++ output.write(u''' + struct pubkey { + struct bignum_st e, n; + }; + +-#define KEY(data) { \ +- .d = data, \ +- .top = sizeof(data)/sizeof(data[0]), \ ++#define KEY(data) { \\ ++ .d = data, \\ ++ .top = sizeof(data)/sizeof(data[0]), \\ + } + +-#define KEYS(e,n) { KEY(e), KEY(n), } ++#define KEYS(e,n) { KEY(e), KEY(n), } + + static struct pubkey keys[] = { + ''') + for n in xrange(n + 1): +- output.write(' KEYS(e_%d, n_%d),\n' % (n, n)) +- output.write('};\n') ++ output.write(u' KEYS(e_{0}, n_{0}),\n'.format(n)) ++ output.write(u'};\n') + pass + + def print_gcrypt(output, name, val): +- output.write('#include \n') +- while val[0] == '\0': +- val = val[1:] +- output.write('static const uint8_t %s[%d] = {\n' % (name, len(val))) ++ # gcrypt expects 8-bit words most-significant-word first ++ vwords = bitwise_collect(val, 8) ++ vwords.reverse() ++ ++ output.write(u'#include \n') ++ output.write(u'static const uint8_t %s[%d] = {\n' % (name, len(vwords))) + idx = 0 +- for v in val: ++ for vword in vwords: + if not idx: +- output.write('\t') +- output.write('0x%.2x, ' % ord(v)) ++ output.write(u'\t') ++ output.write(u'0x{:02x}, '.format(vword)) + idx += 1 + if idx == 8: + idx = 0 +- output.write('\n') ++ output.write(u'\n') + if idx: +- output.write('\n') +- output.write('};\n\n') ++ output.write(u'\n') ++ output.write(u'};\n\n') + + def print_gcrypt_keys(output, n): +- output.write(r''' ++ output.write(u''' + struct key_params { + const uint8_t *e, *n; + uint32_t len_e, len_n; + }; + +-#define KEYS(_e, _n) { \ +- .e = _e, .len_e = sizeof(_e), \ +- .n = _n, .len_n = sizeof(_n), \ ++#define KEYS(_e, _n) { \\ ++ .e = _e, .len_e = sizeof(_e), \\ ++ .n = _n, .len_n = sizeof(_n), \\ + } + + static const struct key_params keys[] = { + ''') +- for n in xrange(n + 1): +- output.write(' KEYS(e_%d, n_%d),\n' % (n, n)) +- output.write('};\n') +- ++ for n in range(n + 1): ++ output.write(u' KEYS(e_{0}, n_{0}),\n'.format(n)) ++ output.write(u'};\n') ++ + + modes = { + '--ssl': (print_ssl, print_ssl_keys), +@@ -135,21 +137,21 @@ except IndexError: + mode = None + + if not mode in modes: +- print 'Usage: %s [%s] input-file... output-file' % (sys.argv[0], '|'.join(modes.keys())) ++ print('Usage: {} [{}] input-file... output-file'.format(sys.argv[0], '|'.join(modes.keys()))) + sys.exit(2) + +-output = open(outfile, 'w') ++output = io.open(outfile, 'w') + + # load key + idx = 0 + for f in files: +- try: +- key = RSA.load_pub_key(f) +- except RSA.RSAError: +- key = RSA.load_key(f) + +- modes[mode][0](output, 'e_%d' % idx, key.e[4:]) +- modes[mode][0](output, 'n_%d' % idx, key.n[4:]) ++ key_contents = io.open(f, 'rb').read() ++ key = RSA.importKey(key_contents) ++ ++ modes[mode][0](output, 'e_{}'.format(idx), key.e) ++ modes[mode][0](output, 'n_{}'.format(idx), key.n) ++ + idx += 1 + + modes[mode][1](output, idx - 1) +-- +2.7.3 + diff --git a/bsp/buildroot/package/crda/0003-drop-werror.patch b/bsp/buildroot/package/crda/0003-drop-werror.patch new file mode 100644 index 00000000..072e3fc4 --- /dev/null +++ b/bsp/buildroot/package/crda/0003-drop-werror.patch @@ -0,0 +1,37 @@ +From f38253e066dee96b148be1b79a6b4a696ee0ae0b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sun, 1 May 2016 10:05:48 +0200 +Subject: [PATCH] drop werror +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Building crda with GCC 6 fails because of all compiler warnings are treated as +errors. Disable the compiler option '-Werror': + +keys-gcrypt.c:94:32: error: ‘keys’ defined but not used [-Werror=unused-const-variable=] + static const struct key_params keys[] = { + ^~~~ +cc1: all warnings being treated as errors + +Signed-off-by: Jörg Krause +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 74f1172..e9b417f 100644 +--- a/Makefile ++++ b/Makefile +@@ -26,7 +26,7 @@ PUBKEY_DIR?=pubkeys + RUNTIME_PUBKEY_DIR?=/etc/wireless-regdb/pubkeys + + CFLAGS += -O2 -fpic +-CFLAGS += -std=gnu99 -Wall -Werror -pedantic ++CFLAGS += -std=gnu99 -Wall -pedantic + CFLAGS += -Wall -g + LDLIBREG += -lreg + LDLIBS += $(LDLIBREG) +-- +2.8.2 + diff --git a/bsp/buildroot/package/crda/Config.in b/bsp/buildroot/package/crda/Config.in index 4eb16436..2cb04037 100644 --- a/bsp/buildroot/package/crda/Config.in +++ b/bsp/buildroot/package/crda/Config.in @@ -1,13 +1,12 @@ config BR2_PACKAGE_CRDA bool "crda" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on BR2_TOOLCHAIN_HAS_THREADS # libnl depends on !BR2_STATIC_LIBS select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBNL # regdb is a runtime dependency select BR2_PACKAGE_WIRELESS_REGDB - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help Central Regulatory Domain Agent. @@ -20,4 +19,3 @@ config BR2_PACKAGE_CRDA comment "crda needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/crda/crda.mk b/bsp/buildroot/package/crda/crda.mk index 24bfd5fc..df879f68 100644 --- a/bsp/buildroot/package/crda/crda.mk +++ b/bsp/buildroot/package/crda/crda.mk @@ -7,19 +7,12 @@ CRDA_VERSION = 3.18 CRDA_SOURCE = crda-$(CRDA_VERSION).tar.xz CRDA_SITE = $(BR2_KERNEL_MIRROR)/software/network/crda -CRDA_DEPENDENCIES = host-pkgconf host-python-m2crypto \ - libnl libgcrypt host-python +CRDA_DEPENDENCIES = host-pkgconf host-python-pycrypto libnl libgcrypt CRDA_LICENSE = ISC CRDA_LICENSE_FILES = LICENSE -# * key2pub.py currently is not python3 compliant (though python2/python3 -# compliance could rather easily be achieved. -# * key2pub.py uses M2Crypto python module, which is only available for -# python2, so we have to make sure this script is run using the python2 -# interpreter, hence the host-python dependency and the PYTHON variable. define CRDA_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) \ - PYTHON=$(HOST_DIR)/usr/bin/python2 \ $(MAKE) all_noverify -C $(@D) endef diff --git a/bsp/buildroot/package/crudini/Config.in b/bsp/buildroot/package/crudini/Config.in new file mode 100644 index 00000000..e4e26e52 --- /dev/null +++ b/bsp/buildroot/package/crudini/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_CRUDINI + bool "crudini" + depends on BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON_INIPARSE # runtime + help + A utility for handling ini files from the command line and + shell scripts + + https://pypi.python.org/pypi/crudini diff --git a/bsp/buildroot/package/crudini/crudini.hash b/bsp/buildroot/package/crudini/crudini.hash new file mode 100644 index 00000000..b9aaecf7 --- /dev/null +++ b/bsp/buildroot/package/crudini/crudini.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=7d1313f1bb9800db9cbceaa518bcf212, sha256 locally computed +md5 7d1313f1bb9800db9cbceaa518bcf212 crudini-0.7.tar.gz +sha256 5d493ae6600e54f9e0296b12d3adba99b88a439d8c4b2ebf9bc6f9c0613a03d7 crudini-0.7.tar.gz diff --git a/bsp/buildroot/package/crudini/crudini.mk b/bsp/buildroot/package/crudini/crudini.mk new file mode 100644 index 00000000..d797efcd --- /dev/null +++ b/bsp/buildroot/package/crudini/crudini.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# crudini +# +################################################################################ + +CRUDINI_VERSION = 0.7 +CRUDINI_SOURCE = crudini-$(CRUDINI_VERSION).tar.gz +CRUDINI_SITE = https://pypi.python.org/packages/source/c/crudini +CRUDINI_SETUP_TYPE = setuptools +CRUDINI_LICENSE = GPLv2 +CRUDINI_LICENSE_FILES = COPYING + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/cryptopp/cryptopp.hash b/bsp/buildroot/package/cryptopp/cryptopp.hash new file mode 100644 index 00000000..bf59c045 --- /dev/null +++ b/bsp/buildroot/package/cryptopp/cryptopp.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 9390670a14170dd0f48a6b6b06f74269ef4b056d4718a1a329f6f6069dc957c9 cryptopp563.zip +sha256 74b88c2caf7cf843bdc74d3331adaf83e516167cc8eebe66a79612189549cfa4 f707b9ef1688d4429ca6239cf2dc236440974681.patch diff --git a/bsp/buildroot/package/cryptopp/cryptopp.mk b/bsp/buildroot/package/cryptopp/cryptopp.mk new file mode 100644 index 00000000..df07cf60 --- /dev/null +++ b/bsp/buildroot/package/cryptopp/cryptopp.mk @@ -0,0 +1,32 @@ +################################################################################ +# +# cryptopp +# +################################################################################ + +CRYPTOPP_VERSION = 5.6.3 +CRYPTOPP_SOURCE = cryptopp$(subst .,,$(CRYPTOPP_VERSION)).zip +CRYPTOPP_SITE = http://cryptopp.com/ +# Upstream patch needed to fix the build with gcc < 4.5 +CRYPTOPP_PATCH = https://github.com/weidai11/cryptopp/commit/f707b9ef1688d4429ca6239cf2dc236440974681.patch +CRYPTOPP_LICENSE = Boost-v1.0 +CRYPTOPP_LICENSE_FILES = License.txt +CRYPTOPP_INSTALL_STAGING = YES + +define HOST_CRYPTOPP_EXTRACT_CMDS + $(UNZIP) $(DL_DIR)/$(CRYPTOPP_SOURCE) -d $(@D) +endef + +HOST_CRYPTOPP_MAKE_OPTS = \ + $(HOST_CONFIGURE_OPTS) \ + CXXFLAGS="$(HOST_CXXFLAGS) -fPIC" + +define HOST_CRYPTOPP_BUILD_CMDS + $(MAKE) -C $(@D) $(HOST_CRYPTOPP_MAKE_OPTS) shared +endef + +define HOST_CRYPTOPP_INSTALL_CMDS + $(MAKE) -C $(@D) PREFIX=$(HOST_DIR)/usr install +endef + +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/cryptsetup/Config.in b/bsp/buildroot/package/cryptsetup/Config.in index 321b97da..80671ee8 100644 --- a/bsp/buildroot/package/cryptsetup/Config.in +++ b/bsp/buildroot/package/cryptsetup/Config.in @@ -9,8 +9,6 @@ config BR2_PACKAGE_CRYPTSETUP depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 depends on BR2_USE_WCHAR # util-linux - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help This tool helps manipulate dm-crypt and luks partitions for on-disk encryption. @@ -20,4 +18,3 @@ config BR2_PACKAGE_CRYPTSETUP comment "cryptsetup needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/cryptsetup/cryptsetup.hash b/bsp/buildroot/package/cryptsetup/cryptsetup.hash index 8fbbc7d3..5972bf8b 100644 --- a/bsp/buildroot/package/cryptsetup/cryptsetup.hash +++ b/bsp/buildroot/package/cryptsetup/cryptsetup.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/linux/utils/cryptsetup/v1.7/sha256sums.asc -sha256 075524a7cc0db36d12119fa79116750accb1c6c8825d5faa2534b74b8ce3d148 cryptsetup-1.7.0.tar.xz +sha256 dbb35dbf5f0c1749168c86c913fe98e872247bfc8425314b494c2423e7e43342 cryptsetup-1.7.2.tar.xz diff --git a/bsp/buildroot/package/cryptsetup/cryptsetup.mk b/bsp/buildroot/package/cryptsetup/cryptsetup.mk index 986b131e..d7bd2512 100644 --- a/bsp/buildroot/package/cryptsetup/cryptsetup.mk +++ b/bsp/buildroot/package/cryptsetup/cryptsetup.mk @@ -5,7 +5,7 @@ ################################################################################ CRYPTSETUP_VERSION_MAJOR = 1.7 -CRYPTSETUP_VERSION = $(CRYPTSETUP_VERSION_MAJOR).0 +CRYPTSETUP_VERSION = $(CRYPTSETUP_VERSION_MAJOR).2 CRYPTSETUP_SOURCE = cryptsetup-$(CRYPTSETUP_VERSION).tar.xz CRYPTSETUP_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/cryptsetup/v$(CRYPTSETUP_VERSION_MAJOR) CRYPTSETUP_DEPENDENCIES = lvm2 popt util-linux host-pkgconf \ diff --git a/bsp/buildroot/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch b/bsp/buildroot/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch index c0e87a4e..30002d3c 100644 --- a/bsp/buildroot/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch +++ b/bsp/buildroot/package/cups/0001-Remove-man-from-BUILDDIRS-in-configure.patch @@ -1,21 +1,18 @@ -From a77bb18a5584bb23687ed3c522dbd91a9987d5a7 Mon Sep 17 00:00:00 2001 -From: Olivier Schonken -Date: Wed, 20 Jan 2016 22:13:11 +0200 +From 6bc1d15250841cf17d307cfb4f35c960c23d8797 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Sun, 29 May 2016 19:31:50 +0200 Subject: [PATCH] Remove man from BUILDDIRS in configure -Since cups doesn't autoreconf properly, we directly patch the -configure script. - -Signed-off-by: Olivier Schonken +Signed-off-by: Bernd Kuhls --- - configure | 2 +- + config-scripts/cups-common.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/configure b/configure -index 4170ff3..3879a75 100755 ---- a/configure -+++ b/configure -@@ -5921,7 +5921,7 @@ fi +diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 +index fbba715..77d0f5c 100644 +--- a/config-scripts/cups-common.m4 ++++ b/config-scripts/cups-common.m4 +@@ -446,7 +446,7 @@ AC_ARG_WITH(components, [ --with-components set components to build: case "$COMPONENTS" in all) @@ -25,5 +22,5 @@ index 4170ff3..3879a75 100755 core) -- -2.5.0 +2.8.1 diff --git a/bsp/buildroot/package/cups/0004-Remove-PIE-flags-from-the-build.patch b/bsp/buildroot/package/cups/0004-Remove-PIE-flags-from-the-build.patch new file mode 100644 index 00000000..492418f7 --- /dev/null +++ b/bsp/buildroot/package/cups/0004-Remove-PIE-flags-from-the-build.patch @@ -0,0 +1,30 @@ +From b341a1e1fce48012fc5bcf39337488fd33210616 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 3 Jul 2016 12:20:21 +0200 +Subject: [PATCH] Remove PIE flags from the build + +Generating a statically linked binary built with PIE requires the +Scrt1.o file, which isn't part of Buildroot uClibc toolchains. To +solve this, we simply disable the PIE flags. + +Signed-off-by: Thomas Petazzoni +--- + Makedefs.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makedefs.in b/Makedefs.in +index 3afef0a..299b297 100644 +--- a/Makedefs.in ++++ b/Makedefs.in +@@ -142,7 +142,7 @@ IPPFIND_BIN = @IPPFIND_BIN@ + IPPFIND_MAN = @IPPFIND_MAN@ + LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \ + -L../scheduler @LDARCHFLAGS@ \ +- @LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM) ++ @LDFLAGS@ @RELROFLAGS@ $(OPTIM) + LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(DNSSDLIBS) $(LIBZ) + LINKCUPSIMAGE = @LINKCUPSIMAGE@ + LIBS = $(LINKCUPS) $(COMMONLIBS) +-- +2.7.4 + diff --git a/bsp/buildroot/package/cups/0005-Fix-static-linking-with-GnuTLS.patch b/bsp/buildroot/package/cups/0005-Fix-static-linking-with-GnuTLS.patch new file mode 100644 index 00000000..5702caae --- /dev/null +++ b/bsp/buildroot/package/cups/0005-Fix-static-linking-with-GnuTLS.patch @@ -0,0 +1,39 @@ +From 79a2389f590f4d16885bdd0715f3f04fd9fa6cc5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sun, 28 Feb 2016 16:35:56 +0100 +Subject: [PATCH] Fix static linking with GnuTLS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +cups forgets to link against the libs found by pkg-config if it is build with +GnuTLS support. + +Otherwise, static build fails with: +../cups/libcups.a(tls.o): In function `http_gnutls_create_credential': +cups-2.1.2/cups/tls-gnutls.c:762: undefined reference to `gnutls_x509_crt_init' +[..] + +Status upstream: Pending + +Signed-off-by: Jörg Krause +--- + Makedefs.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makedefs.in b/Makedefs.in +index 299b297..ce9d535 100644 +--- a/Makedefs.in ++++ b/Makedefs.in +@@ -143,7 +143,7 @@ IPPFIND_MAN = @IPPFIND_MAN@ + LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \ + -L../scheduler @LDARCHFLAGS@ \ + @LDFLAGS@ @RELROFLAGS@ $(OPTIM) +-LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(DNSSDLIBS) $(LIBZ) ++LINKCUPS = @LINKCUPS@ $(SSLLIBS) $(LIBGSSAPI) $(DNSSDLIBS) $(LIBZ) + LINKCUPSIMAGE = @LINKCUPSIMAGE@ + LIBS = $(LINKCUPS) $(COMMONLIBS) + ONDEMANDFLAGS = @ONDEMANDFLAGS@ +-- +2.7.4 + diff --git a/bsp/buildroot/package/cups/cups.hash b/bsp/buildroot/package/cups/cups.hash index f38399f0..2d103f2e 100644 --- a/bsp/buildroot/package/cups/cups.hash +++ b/bsp/buildroot/package/cups/cups.hash @@ -1,2 +1,2 @@ # Locally calculated: -sha256 bab0ca3ba80eae48319b3a6b19a5b14fad5ce230f30151a0cfa4c0271df281ad cups-2.1.2-source.tar.bz2 +sha256 4b14fd833180ac529ebebea766a09094c2568bf8426e219cb3a1715304ef728d cups-2.1.4-source.tar.gz diff --git a/bsp/buildroot/package/cups/cups.mk b/bsp/buildroot/package/cups/cups.mk index c07dcb46..2f8a18ec 100644 --- a/bsp/buildroot/package/cups/cups.mk +++ b/bsp/buildroot/package/cups/cups.mk @@ -4,15 +4,21 @@ # ################################################################################ -CUPS_VERSION = 2.1.2 -CUPS_SOURCE = cups-$(CUPS_VERSION)-source.tar.bz2 -CUPS_SITE = http://www.cups.org/software/$(CUPS_VERSION) +CUPS_VERSION = 2.1.4 +CUPS_SOURCE = cups-$(CUPS_VERSION)-source.tar.gz +CUPS_SITE = https://github.com/apple/cups/releases/download/release-$(CUPS_VERSION) CUPS_LICENSE = GPLv2 LGPLv2 CUPS_LICENSE_FILES = LICENSE.txt CUPS_INSTALL_STAGING = YES CUPS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) DSTROOT=$(STAGING_DIR) install CUPS_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) DSTROOT=$(TARGET_DIR) install +# Using autoconf, not autoheader, so we cannot use AUTORECONF = YES. +define CUPS_RUN_AUTOCONF + cd $(@D); $(HOST_DIR)/usr/bin/autoconf -f +endef +CUPS_PRE_CONFIGURE_HOOKS += CUPS_RUN_AUTOCONF + CUPS_CONF_OPTS = \ --without-perl \ --without-java \ @@ -21,6 +27,7 @@ CUPS_CONF_OPTS = \ --libdir=/usr/lib CUPS_CONFIG_SCRIPTS = cups-config CUPS_DEPENDENCIES = \ + host-autoconf \ $(if $(BR2_PACKAGE_ZLIB),zlib) ifeq ($(BR2_PACKAGE_SYSTEMD),y) diff --git a/bsp/buildroot/package/czmq/czmq.hash b/bsp/buildroot/package/czmq/czmq.hash new file mode 100644 index 00000000..526ea594 --- /dev/null +++ b/bsp/buildroot/package/czmq/czmq.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 5c76de41f736f0c059e0b26174ef99200f2aba2fa38333683dbe4944b2f80555 czmq-5205ec201e97c3a652c17eb86b18b70350b54512.tar.gz diff --git a/bsp/buildroot/package/czmq/czmq.mk b/bsp/buildroot/package/czmq/czmq.mk index 0060c897..8c4de718 100644 --- a/bsp/buildroot/package/czmq/czmq.mk +++ b/bsp/buildroot/package/czmq/czmq.mk @@ -4,7 +4,7 @@ # ################################################################################ -CZMQ_VERSION = v3.0.2 +CZMQ_VERSION = 5205ec201e97c3a652c17eb86b18b70350b54512 CZMQ_SITE = $(call github,zeromq,czmq,$(CZMQ_VERSION)) # Autoreconf required as we use the git tree diff --git a/bsp/buildroot/package/dante/0001-fix-sparc-compile.patch b/bsp/buildroot/package/dante/0001-fix-sparc-compile.patch new file mode 100644 index 00000000..a23e2e22 --- /dev/null +++ b/bsp/buildroot/package/dante/0001-fix-sparc-compile.patch @@ -0,0 +1,24 @@ +Signal handling for sparc is broken, fix it. + +Signed-off-by: Waldemar Brodkorb + +--- dante-1.4.1.orig/lib/tostring.c 2014-08-21 18:21:50.000000000 +0200 ++++ dante-1.4.1/lib/tostring.c 2016-07-10 10:08:39.785662622 +0200 +@@ -1526,7 +1526,7 @@ signal2string(sig) + return "SIGKILL"; + #endif /* SIGKILL */ + +-#if (defined SIGLOST) && (!defined SIGABRT || SIGLOST != SIGABRT) ++#if (defined SIGLOST) && (!defined SIGABRT || SIGLOST != SIGABRT || SIGLOST != SIGPWR) + case SIGLOST: + return "SIGLOST"; + #endif /* SIGLOST */ +@@ -1551,7 +1551,7 @@ signal2string(sig) + return "SIGPROF"; + #endif /* SIGPROF */ + +-#ifdef SIGPWR ++#if (defined SIGPWR) && SIGPWR != SIGLOST + case SIGPWR: + return "SIGPWR"; + #endif /* SIGPWR */ diff --git a/bsp/buildroot/package/dante/0002-compiler.m4-do-not-remove-g-flag.patch b/bsp/buildroot/package/dante/0002-compiler.m4-do-not-remove-g-flag.patch new file mode 100644 index 00000000..0b41de61 --- /dev/null +++ b/bsp/buildroot/package/dante/0002-compiler.m4-do-not-remove-g-flag.patch @@ -0,0 +1,42 @@ +From c00e284dd2baa5ecdb0c9586044399cd7cacce3e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 8 Aug 2016 12:31:40 +0200 +Subject: [PATCH] compiler.m4: do not remove -g flag + +A sed expression such as 's/-g//' not only removes the -g +debugging-related flag, but also turns more specific flags such as +-mfloat-gprs=double into -mfloatprs=double, which is no longer a valid +flag. + +However, it turns out that removing -g is not necessary: having -g0 +after -g negates the -g, and having -ggdb after -g is enough to produce +debugging information for GDB. + +Signed-off-by: Thomas Petazzoni +--- + compiler.m4 | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/compiler.m4 b/compiler.m4 +index 3a23406..621372c 100644 +--- a/compiler.m4 ++++ b/compiler.m4 +@@ -378,15 +378,9 @@ else + gcc) + if test x"$aixldbug" != x; then + #disable debug info +- if echo $CFLAGS | grep -- "-g" >/dev/null; then +- CFLAGS="`echo $CFLAGS | sed -e 's/-g//g'`" +- fi + CFLAGS="$CFLAGS${CFLAGS:+ }-g0" + else + #use -ggdb also when not debugging +- if echo $CFLAGS | grep -- "-g" >/dev/null; then +- CFLAGS="`echo $CFLAGS | sed -e 's/-g//g'`" +- fi + CFLAGS="$CFLAGS${CFLAGS:+ }-ggdb" + fi + ;; +-- +2.7.4 + diff --git a/bsp/buildroot/package/dante/Config.in b/bsp/buildroot/package/dante/Config.in new file mode 100644 index 00000000..41a89990 --- /dev/null +++ b/bsp/buildroot/package/dante/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_DANTE + bool "dante" + depends on BR2_USE_MMU # fork() + help + Dante is a product developed by Inferno Nettverk A/S. It + consists of a SOCKS server and a SOCKS client, implementing + RFC 1928 and related standards. It is a flexible product + that can be used to provide convenient and secure network + connectivity. + + http://www.inet.no/dante/ diff --git a/bsp/buildroot/package/dante/S50dante b/bsp/buildroot/package/dante/S50dante new file mode 100644 index 00000000..ed51a841 --- /dev/null +++ b/bsp/buildroot/package/dante/S50dante @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Starts dante +# + +# Allow a few customizations from a config file +test -r /etc/default/dante && . /etc/default/dante + +start() { + printf "Starting dante: " + start-stop-daemon -S -q -p /var/run/dante.pid \ + --exec /usr/sbin/sockd -- $DAEMON_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping dante: " + start-stop-daemon -K -q -p /var/run/dante.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/dante/dante.hash b/bsp/buildroot/package/dante/dante.hash new file mode 100644 index 00000000..38dea61b --- /dev/null +++ b/bsp/buildroot/package/dante/dante.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 b6d232bd6fefc87d14bf97e447e4fcdeef4b28b16b048d804b50b48f261c4f53 dante-1.4.1.tar.gz diff --git a/bsp/buildroot/package/dante/dante.mk b/bsp/buildroot/package/dante/dante.mk new file mode 100644 index 00000000..1bab648b --- /dev/null +++ b/bsp/buildroot/package/dante/dante.mk @@ -0,0 +1,34 @@ +################################################################################ +# +# dante +# +################################################################################ + +DANTE_VERSION = 1.4.1 +DANTE_SITE = http://www.inet.no/dante/files +DANTE_LICENSE = BSD-3c +DANTE_LICENSE_FILES = LICENSE + +# Dante uses a *VERY* old configure.ac +DANTE_LIBTOOL_PATCH = NO + +DANTE_CONF_OPTS += --disable-client --disable-preload + +define DANTE_INSTALL_CONFIG_FILE + $(INSTALL) -D -m 644 $(@D)/example/sockd.conf \ + $(TARGET_DIR)/etc/sockd.conf +endef + +DANTE_POST_INSTALL_TARGET_HOOKS += DANTE_INSTALL_CONFIG_FILE + +define DANTE_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/dante/dante.service \ + $(TARGET_DIR)/usr/lib/systemd/system/dante.service +endef + +define DANTE_INSTALL_INIT_SYSV + $(INSTALL) -D -m 755 package/dante/S50dante \ + $(TARGET_DIR)/etc/init.d/S50dante +endef + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/dante/dante.service b/bsp/buildroot/package/dante/dante.service new file mode 100644 index 00000000..b783cee3 --- /dev/null +++ b/bsp/buildroot/package/dante/dante.service @@ -0,0 +1,15 @@ +[Unit] +Description=SOCKS v4 and v5 compatible proxy server and client +Requires=network.target +After=network.target + +[Service] +Type=forking +EnvironmentFile=-/etc/default/dante +PIDFile=/run/dante.pid +ExecStart=/usr/sbin/sockd -D -p /run/dante.pid $DAEMON_ARGS +ExecReload=/bin/kill -HUP $MAINPID +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/bsp/buildroot/package/dash/Config.in b/bsp/buildroot/package/dash/Config.in index e06087e1..af8fba40 100644 --- a/bsp/buildroot/package/dash/Config.in +++ b/bsp/buildroot/package/dash/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_DASH bool "dash" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The Debian/Linux port of the NetBSD version of ash (the Almquist SHell). diff --git a/bsp/buildroot/package/dawgdic/dawgdic.hash b/bsp/buildroot/package/dawgdic/dawgdic.hash new file mode 100644 index 00000000..da03f0b8 --- /dev/null +++ b/bsp/buildroot/package/dawgdic/dawgdic.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 54622a3e79ff3ad2c01a830ec52b997b42ead468b18af5acebab3a4ff32a5ad6 dawgdic-16ac537ba9883ff01b63b6d1fdc3072150c68fee.tar.gz diff --git a/bsp/buildroot/package/dbus-cpp/Config.in b/bsp/buildroot/package/dbus-cpp/Config.in index 8e9ed662..e90b2114 100644 --- a/bsp/buildroot/package/dbus-cpp/Config.in +++ b/bsp/buildroot/package/dbus-cpp/Config.in @@ -13,7 +13,7 @@ config BR2_PACKAGE_DBUS_CPP http://sourceforge.net/projects/dbus-cplusplus/ -comment "dbus-c++ needs a uClibc or (e)glibc toolchain w/ C++, threads" +comment "dbus-c++ needs a uClibc or glibc toolchain w/ C++, threads" depends on BR2_USE_MMU depends on BR2_PACKAGE_DBUS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ diff --git a/bsp/buildroot/package/dbus-python/dbus-python.hash b/bsp/buildroot/package/dbus-python/dbus-python.hash index 94af72e2..080aada0 100644 --- a/bsp/buildroot/package/dbus-python/dbus-python.hash +++ b/bsp/buildroot/package/dbus-python/dbus-python.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 e12c6c8b2bf3a9302f75166952cbe41d6b38c3441bbc6767dbd498942316c6df dbus-python-1.2.0.tar.gz +sha256 e2f1d6871f74fba23652e51d10873e54f71adab0525833c19bad9e99b1b2f9cc dbus-python-1.2.4.tar.gz diff --git a/bsp/buildroot/package/dbus-python/dbus-python.mk b/bsp/buildroot/package/dbus-python/dbus-python.mk index 40799678..599d0198 100644 --- a/bsp/buildroot/package/dbus-python/dbus-python.mk +++ b/bsp/buildroot/package/dbus-python/dbus-python.mk @@ -4,7 +4,7 @@ # ################################################################################ -DBUS_PYTHON_VERSION = 1.2.0 +DBUS_PYTHON_VERSION = 1.2.4 DBUS_PYTHON_SITE = http://dbus.freedesktop.org/releases/dbus-python DBUS_PYTHON_INSTALL_STAGING = YES DBUS_PYTHON_LICENSE = MIT diff --git a/bsp/buildroot/package/dbus/Config.in b/bsp/buildroot/package/dbus/Config.in index 7d49ce50..653f7482 100644 --- a/bsp/buildroot/package/dbus/Config.in +++ b/bsp/buildroot/package/dbus/Config.in @@ -4,7 +4,6 @@ config BR2_PACKAGE_DBUS # uses fork() depends on BR2_USE_MMU select BR2_PACKAGE_EXPAT - select BR2_PACKAGE_SYSTEMD_COMPAT if BR2_INIT_SYSTEMD help The D-Bus message bus system. diff --git a/bsp/buildroot/package/dbus/dbus.hash b/bsp/buildroot/package/dbus/dbus.hash index 10ebc817..d38b2980 100644 --- a/bsp/buildroot/package/dbus/dbus.hash +++ b/bsp/buildroot/package/dbus/dbus.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 b5fefa08a77edd76cd64d872db949eebc02cf6f3f8be82e4bbc641742af5d35f dbus-1.10.6.tar.gz +sha256 baf3d22baa26d3bdd9edc587736cd5562196ce67996d65b82103bedbe1f0c014 dbus-1.10.8.tar.gz diff --git a/bsp/buildroot/package/dbus/dbus.mk b/bsp/buildroot/package/dbus/dbus.mk index 33bfb315..60645012 100644 --- a/bsp/buildroot/package/dbus/dbus.mk +++ b/bsp/buildroot/package/dbus/dbus.mk @@ -4,9 +4,9 @@ # ################################################################################ -DBUS_VERSION = 1.10.6 +DBUS_VERSION = 1.10.8 DBUS_SITE = http://dbus.freedesktop.org/releases/dbus -DBUS_LICENSE = AFLv2.1, GPLv2+ +DBUS_LICENSE = AFLv2.1 or GPLv2+ (library, tools), GPLv2+ (tools) DBUS_LICENSE_FILES = COPYING DBUS_INSTALL_STAGING = YES @@ -32,7 +32,8 @@ DBUS_CONF_OPTS = \ --disable-dnotify \ --with-xml=expat \ --with-system-socket=/var/run/dbus/system_bus_socket \ - --with-system-pid-file=/var/run/messagebus.pid + --with-system-pid-file=/var/run/messagebus.pid \ + --with-init-scripts=none ifeq ($(BR2_STATIC_LIBS),y) DBUS_CONF_OPTS += LIBS='-pthread' diff --git a/bsp/buildroot/package/dcron/Config.in b/bsp/buildroot/package/dcron/Config.in index 0f4ffc9a..d7f66bdb 100644 --- a/bsp/buildroot/package/dcron/Config.in +++ b/bsp/buildroot/package/dcron/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_DCRON bool "dcron" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help dcron is a time-based job scheduler with anacron-like features. It works as a background daemon that parses diff --git a/bsp/buildroot/package/dcron/dcron.mk b/bsp/buildroot/package/dcron/dcron.mk index 4a6fc47d..7e81b638 100644 --- a/bsp/buildroot/package/dcron/dcron.mk +++ b/bsp/buildroot/package/dcron/dcron.mk @@ -25,8 +25,8 @@ define DCRON_INSTALL_TARGET_CMDS # Busybox provides run-parts, so there is no need to use nor install provided run-cron $(SED) 's#/usr/sbin/run-cron#/bin/run-parts#g' $(TARGET_DIR)/etc/cron.d/system $(INSTALL) -d -m0755 $(TARGET_DIR)/var/spool/cron/crontabs \ - $(TARGET_DIR)/etc/cron.daily $(TARGET_DIR)/etc/cron.hourly \ - $(TARGET_DIR)/etc/cron.monthly $(TARGET_DIR)/etc/cron.weekly + $(TARGET_DIR)/etc/cron.daily $(TARGET_DIR)/etc/cron.hourly \ + $(TARGET_DIR)/etc/cron.monthly $(TARGET_DIR)/etc/cron.weekly endef define DCRON_INSTALL_INIT_SYSV diff --git a/bsp/buildroot/package/debianutils/Config.in b/bsp/buildroot/package/debianutils/Config.in index c4f2fcf2..c43f3300 100644 --- a/bsp/buildroot/package/debianutils/Config.in +++ b/bsp/buildroot/package/debianutils/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_DEBIANUTILS bool "debianutils" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Miscellaneous utilities specific to Debian. diff --git a/bsp/buildroot/package/debianutils/debianutils.hash b/bsp/buildroot/package/debianutils/debianutils.hash index 43f12250..4d1b5740 100644 --- a/bsp/buildroot/package/debianutils/debianutils.hash +++ b/bsp/buildroot/package/debianutils/debianutils.hash @@ -1,2 +1,2 @@ -# From http://ftp.de.debian.org/debian/pool/main/d/debianutils/debianutils_4.5.1.dsc -sha256 a531c23e0105fe01cfa928457a8343a1e947e2621b3cd4d05f4e9656020c63b7 debianutils_4.5.1.tar.xz +# From http://ftp.de.debian.org/debian/pool/main/d/debianutils/debianutils_4.7.dsc +sha256 a269cacd40f52f2fa5d5636357714a49e8538459c16d77772efaa23711fe53d9 debianutils_4.7.tar.xz diff --git a/bsp/buildroot/package/debianutils/debianutils.mk b/bsp/buildroot/package/debianutils/debianutils.mk index 5c785049..17f0240e 100644 --- a/bsp/buildroot/package/debianutils/debianutils.mk +++ b/bsp/buildroot/package/debianutils/debianutils.mk @@ -4,9 +4,9 @@ # ################################################################################ -DEBIANUTILS_VERSION = 4.5.1 +DEBIANUTILS_VERSION = 4.7 DEBIANUTILS_SOURCE = debianutils_$(DEBIANUTILS_VERSION).tar.xz -DEBIANUTILS_SITE = http://snapshot.debian.org/archive/debian/20150526T034723Z/pool/main/d/debianutils +DEBIANUTILS_SITE = http://snapshot.debian.org/archive/debian/20160126T220153Z/pool/main/d/debianutils DEBIANUTILS_CONF_OPTS = --exec-prefix=/ # Make sure we override the busybox tools, such as which DEBIANUTILS_DEPENDENCIES = $(if $(BR2_PACKAGE_BUSYBOX),busybox) diff --git a/bsp/buildroot/package/devmem2/Config.in b/bsp/buildroot/package/devmem2/Config.in index cb00a516..64d6400b 100644 --- a/bsp/buildroot/package/devmem2/Config.in +++ b/bsp/buildroot/package/devmem2/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_DEVMEM2 bool "devmem2" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Simple program to read/write from/to any location in memory. diff --git a/bsp/buildroot/package/dfu-util/dfu-util.hash b/bsp/buildroot/package/dfu-util/dfu-util.hash index 0901717d..bf618d1a 100644 --- a/bsp/buildroot/package/dfu-util/dfu-util.hash +++ b/bsp/buildroot/package/dfu-util/dfu-util.hash @@ -1,2 +1,5 @@ -# From http://dfu-util.sourceforge.net/releases/dfu-util-0.8.tar.gz.md5 -md5 fc6daf6b0ee57d7e40ffa3e8111023d1 dfu-util-0.8.tar.gz +# From http://dfu-util.sourceforge.net/releases/dfu-util-0.9.tar.gz.md5 +md5 233bb1e08ef4b405062445d84e28fde6 dfu-util-0.9.tar.gz + +# Locally computed +sha256 36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833 dfu-util-0.9.tar.gz diff --git a/bsp/buildroot/package/dfu-util/dfu-util.mk b/bsp/buildroot/package/dfu-util/dfu-util.mk index 3e612db6..079f8759 100644 --- a/bsp/buildroot/package/dfu-util/dfu-util.mk +++ b/bsp/buildroot/package/dfu-util/dfu-util.mk @@ -4,7 +4,7 @@ # ################################################################################ -DFU_UTIL_VERSION = 0.8 +DFU_UTIL_VERSION = 0.9 DFU_UTIL_SITE = http://dfu-util.sourceforge.net/releases DFU_UTIL_LICENSE = GPLv2+ DFU_UTIL_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/dhcp/0001-dhcp-cross-compile.patch b/bsp/buildroot/package/dhcp/0001-dhcp-cross-compile.patch new file mode 100644 index 00000000..95b46891 --- /dev/null +++ b/bsp/buildroot/package/dhcp/0001-dhcp-cross-compile.patch @@ -0,0 +1,34 @@ +dhcp cross compile support integration + +Allow BINDCONFIG to be initialized in environment passed to configure. + +Allow archiver to be determined during configure. + +This patch is submitted upstream as part of a cross compiling enhancement +suggestion to dhcp-suggest@isc.org. Reference ISC-Bugs #41502. + +Signed-off-by: Doug Kehn + +Index: dhcp-4.3.3-P1/configure.ac +=================================================================== +--- dhcp-4.3.3-P1.orig/configure.ac ++++ dhcp-4.3.3-P1/configure.ac +@@ -33,7 +33,7 @@ if test "$GCC" = "yes"; then + fi + + # We can have some flags to pass to bind configure +-BINDCONFIG= ++BINDCONFIG="$BINDCONFIG" + AC_SUBST(BINDCONFIG) + + # POSIX doesn't include the IPv6 Advanced Socket API and glibc hides +@@ -43,6 +43,9 @@ AC_SUBST(BINDCONFIG) + # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. + AC_USE_SYSTEM_EXTENSIONS + ++AC_CHECK_TOOL(AR,ar) ++AC_SUBST(AR) ++ + AC_PROG_RANLIB + AC_CONFIG_HEADERS([includes/config.h]) + diff --git a/bsp/buildroot/package/dhcp/0002-bind-cross-compile.patch b/bsp/buildroot/package/dhcp/0002-bind-cross-compile.patch new file mode 100644 index 00000000..f7c42c6c --- /dev/null +++ b/bsp/buildroot/package/dhcp/0002-bind-cross-compile.patch @@ -0,0 +1,24 @@ +bind cross compile support integration + +Pass system types from dhcp configure to bind configure. + +This patch is submitted upstream as part of a cross compiling enhancement +suggestion to dhcp-suggest@isc.org. Reference ISC-Bugs #41502. + +Signed-off-by: Doug Kehn + +Index: dhcp-4.3.3-P1/bind/Makefile.in +=================================================================== +--- dhcp-4.3.3-P1.orig/bind/Makefile.in ++++ dhcp-4.3.3-P1/bind/Makefile.in +@@ -30,7 +30,9 @@ bindconfig = --disable-kqueue --disable- + --without-openssl --without-libxml2 --enable-exportlib \ + --with-gssapi=no --enable-threads=no @BINDCONFIG@ \ + --with-export-includedir=${binddir}/include \ +- --with-export-libdir=${binddir}/lib ++ --with-export-libdir=${binddir}/lib \ ++ --target=@target_alias@ --host=@host_alias@ \ ++ --build=@build_alias@ + + @BIND_ATF_FALSE@cleandirs = ./lib ./include + @BIND_ATF_TRUE@cleandirs = ./lib ./include ./atf diff --git a/bsp/buildroot/package/dhcp/0003-bind-host-cc.patch b/bsp/buildroot/package/dhcp/0003-bind-host-cc.patch new file mode 100644 index 00000000..96c144ff --- /dev/null +++ b/bsp/buildroot/package/dhcp/0003-bind-host-cc.patch @@ -0,0 +1,40 @@ +ensure host compiler is used + +dns/Makefile.in patch is derived from: +http://wiki.beyondlogic.org/patches/dhcp-4.3.0b1.bind_arm-linux-gnueabi.patch + +This patch is already accepted upstream and will be included in the next +release: +--[snip]-- +From Francis Dupont via RT +To rdkehn@yahoo.com + +Message body +It was fixed on the master branch sometimes ago. +Quoting master RELNOTES: + +- Made the embedded bind libraries able to be cross compiled + (please refer to the bind9 documentation to learn how to cross + compile DHCP and its bind library dependency). + [ISC-Bugs #38836] + +This is in the Changes since 4.3.3 so for the next release. +--[snip]-- + +Signed-off-by: Doug Kehn + +Index: dhcp-4.3.3-P1/bind/bind-9.9.7-P3/lib/export/dns/Makefile.in +=================================================================== +--- dhcp-4.3.3-P1.orig/bind/bind-9.9.7-P3/lib/export/dns/Makefile.in ++++ dhcp-4.3.3-P1/bind/bind-9.9.7-P3/lib/export/dns/Makefile.in +@@ -168,7 +168,9 @@ code.h: gen + ./gen -s ${srcdir} > code.h + + gen: ${srcdir}/gen.c +- ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS} ++ ${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \ ++ ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c \ ++ ${BUILD_LIBS} + + #We don't need rbtdb64 for this library + #rbtdb64.@O@: rbtdb.c diff --git a/bsp/buildroot/package/dhcp/Config.in b/bsp/buildroot/package/dhcp/Config.in index 99b4eec3..4a304958 100644 --- a/bsp/buildroot/package/dhcp/Config.in +++ b/bsp/buildroot/package/dhcp/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_DHCP bool "dhcp (ISC)" # fork() depends on BR2_USE_MMU + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help DHCP relay agent from the ISC DHCP distribution. diff --git a/bsp/buildroot/package/dhcp/dhcp.hash b/bsp/buildroot/package/dhcp/dhcp.hash index 84e3c638..fd9b24ad 100644 --- a/bsp/buildroot/package/dhcp/dhcp.hash +++ b/bsp/buildroot/package/dhcp/dhcp.hash @@ -1,2 +1,2 @@ -# Verified from ftp://ftp.isc.org/isc/dhcp/4.1-ESV-R12/dhcp-4.1-ESV-R12.tar.gz.sha256.asc -sha256 53265d1bf5e2073379df03c73a1a34d38a904307609c0f9cb77223912e753e5f dhcp-4.1-ESV-R12.tar.gz +# Verified from https://ftp.isc.org/isc/dhcp/4.3.3-P1/dhcp-4.3.3-P1.tar.gz.sha256.asc +sha256 c11e896dffa1bfbc49462965d3f6dec45534e34068603546d9a236f2aa669921 dhcp-4.3.3-P1.tar.gz diff --git a/bsp/buildroot/package/dhcp/dhcp.mk b/bsp/buildroot/package/dhcp/dhcp.mk index c05e6946..5cb6043e 100644 --- a/bsp/buildroot/package/dhcp/dhcp.mk +++ b/bsp/buildroot/package/dhcp/dhcp.mk @@ -4,7 +4,7 @@ # ################################################################################ -DHCP_VERSION = 4.1-ESV-R12 +DHCP_VERSION = 4.3.3-P1 DHCP_SITE = http://ftp.isc.org/isc/dhcp/$(DHCP_VERSION) DHCP_INSTALL_STAGING = YES DHCP_LICENSE = ISC @@ -12,7 +12,8 @@ DHCP_LICENSE_FILES = LICENSE DHCP_CONF_ENV = \ CPPFLAGS='-D_PATH_DHCPD_CONF=\"/etc/dhcp/dhcpd.conf\" \ -D_PATH_DHCLIENT_CONF=\"/etc/dhcp/dhclient.conf\"' \ - ac_cv_file__dev_random=yes + ac_cv_file__dev_random=yes \ + BINDCONFIG='--with-randomdev=/dev/random' DHCP_CONF_OPTS = \ --with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \ --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \ @@ -25,6 +26,29 @@ DHCP_CONF_OPTS = \ --with-relay-pid-file=/var/run/dhcrelay.pid \ --with-relay6-pid-file=/var/run/dhcrelay6.pid +# The source for the bind libraries used by dhcp are embedded in the dhcp source +# as a tar-ball. Extract the bind source to allow any patches to be applied +# during the patch phase. +define DHCP_EXTRACT_BIND + cd $(@D)/bind; tar -xvf bind.tar.gz +endef +DHCP_POST_EXTRACT_HOOKS += DHCP_EXTRACT_BIND + +# The patchset requires configure et.al. to be regenerated. +DHCP_AUTORECONF = YES + +# bind does not support parallel builds. +DHCP_MAKE = $(MAKE1) + +# bind configure is called via dhcp make instead of dhcp configure. The make env +# needs extra values for bind configure. +DHCP_MAKE_ENV = \ + $(TARGET_CONFIGURE_OPTS) \ + BUILD_CC="$(HOSTCC)" \ + BUILD_CFLAGS="$(HOST_CFLAGS)" \ + BUILD_CPPFLAGS="$(HOST_CPPFLAGS)" \ + BUILD_LDFLAGS="$(HOST_LDFLAGS)" + ifeq ($(BR2_PACKAGE_DHCP_SERVER_DELAYED_ACK),y) DHCP_CONF_OPTS += --enable-delayed-ack endif diff --git a/bsp/buildroot/package/dhcpcd/dhcpcd.hash b/bsp/buildroot/package/dhcpcd/dhcpcd.hash index ea05f868..2e74eccf 100644 --- a/bsp/buildroot/package/dhcpcd/dhcpcd.hash +++ b/bsp/buildroot/package/dhcpcd/dhcpcd.hash @@ -1,2 +1,2 @@ # Locally calculated from download (no sig, hash) -sha256 284abf8c3be0580bbac5eaca95359346ab0d78d4072317b6ce87cc68f2e8ae7b dhcpcd-6.10.1.tar.xz +sha256 5c823d607ed1d7513d16ec51c54e21657f1324899e0ba333a497682d88a8c6ee dhcpcd-6.11.1.tar.xz diff --git a/bsp/buildroot/package/dhcpcd/dhcpcd.mk b/bsp/buildroot/package/dhcpcd/dhcpcd.mk index 5d1388d5..59abaa5c 100644 --- a/bsp/buildroot/package/dhcpcd/dhcpcd.mk +++ b/bsp/buildroot/package/dhcpcd/dhcpcd.mk @@ -4,7 +4,7 @@ # ################################################################################ -DHCPCD_VERSION = 6.10.1 +DHCPCD_VERSION = 6.11.1 DHCPCD_SOURCE = dhcpcd-$(DHCPCD_VERSION).tar.xz DHCPCD_SITE = http://roy.marples.name/downloads/dhcpcd DHCPCD_DEPENDENCIES = host-pkgconf diff --git a/bsp/buildroot/package/diffutils/Config.in b/bsp/buildroot/package/diffutils/Config.in index f483c754..97cb38b8 100644 --- a/bsp/buildroot/package/diffutils/Config.in +++ b/bsp/buildroot/package/diffutils/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_DIFFUTILS bool "diffutils" depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help GNU diff. Compare files per line. @@ -9,3 +10,4 @@ config BR2_PACKAGE_DIFFUTILS comment "diffutils needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/directfb/Config.in b/bsp/buildroot/package/directfb/Config.in index 2aed63f1..b5521647 100644 --- a/bsp/buildroot/package/directfb/Config.in +++ b/bsp/buildroot/package/directfb/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_DIRECTFB bool "directfb" - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 depends on !BR2_TOOLCHAIN_USES_MUSL # sigval_t issue @@ -161,7 +161,7 @@ config BR2_PACKAGE_DIRECTFB_TESTS endif # BR2_PACKAGE_DIRECTFB -comment "directfb needs a (e)glibc or uClibc toolchain w/ C++, threads, gcc >= 4.5" +comment "directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5" depends on BR2_TOOLCHAIN_HAS_SYNC_4 - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/dmalloc/dmalloc.mk b/bsp/buildroot/package/dmalloc/dmalloc.mk index f87ae170..ffa9a397 100644 --- a/bsp/buildroot/package/dmalloc/dmalloc.mk +++ b/bsp/buildroot/package/dmalloc/dmalloc.mk @@ -56,8 +56,14 @@ define DMALLOC_INSTALL_STAGING_CMDS -C $(@D) install endef -define DMALLOC_INSTALL_TARGET_CMDS +ifeq ($(BR2_STATIC_LIBS),) +define DMALLOC_INSTALL_SHARED_LIB cp -dpf $(STAGING_DIR)/usr/lib/libdmalloc*.so $(TARGET_DIR)/usr/lib +endef +endif + +define DMALLOC_INSTALL_TARGET_CMDS + $(DMALLOC_INSTALL_SHARED_LIB) cp -dpf $(STAGING_DIR)/usr/bin/dmalloc $(TARGET_DIR)/usr/bin/dmalloc endef diff --git a/bsp/buildroot/package/dmidecode/0001-build-system-fixes.patch b/bsp/buildroot/package/dmidecode/0001-build-system-fixes.patch index 275f9df7..00897f82 100644 --- a/bsp/buildroot/package/dmidecode/0001-build-system-fixes.patch +++ b/bsp/buildroot/package/dmidecode/0001-build-system-fixes.patch @@ -21,10 +21,10 @@ Index: b/Makefile +override CFLAGS += \ + -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ + -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef - #CFLAGS += -DBIGENDIAN - #CFLAGS += -DALIGNMENT_WORKAROUND -@@ -23,7 +24,7 @@ + # Let lseek and mmap support 64-bit wide offsets + CFLAGS += -D_FILE_OFFSET_BITS=64 +@@ -27,7 +28,7 @@ CFLAGS += -O2 #CFLAGS += -g # Pass linker flags here diff --git a/bsp/buildroot/package/dmidecode/dmidecode.hash b/bsp/buildroot/package/dmidecode/dmidecode.hash index 7098ed0a..307c306a 100644 --- a/bsp/buildroot/package/dmidecode/dmidecode.hash +++ b/bsp/buildroot/package/dmidecode/dmidecode.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 5a8214b99c1762f4510bd92baa279336e5fed6e5cd2e418d46d95a4ecc783922 dmidecode-2.12.tar.gz +# http://http.debian.net/debian/pool/main/d/dmidecode/dmidecode_3.0-2.dsc +sha256 7ec35bb193729c1d593a1460b59d82d24b89102ab23fd0416e6cf4325d077e45 dmidecode-3.0.tar.xz diff --git a/bsp/buildroot/package/dmidecode/dmidecode.mk b/bsp/buildroot/package/dmidecode/dmidecode.mk index 06ac19bd..4298d881 100644 --- a/bsp/buildroot/package/dmidecode/dmidecode.mk +++ b/bsp/buildroot/package/dmidecode/dmidecode.mk @@ -4,7 +4,8 @@ # ################################################################################ -DMIDECODE_VERSION = 2.12 +DMIDECODE_VERSION = 3.0 +DMIDECODE_SOURCE = dmidecode-$(DMIDECODE_VERSION).tar.xz DMIDECODE_SITE = http://download.savannah.gnu.org/releases/dmidecode DMIDECODE_LICENSE = GPLv2+ DMIDECODE_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/dmraid/Config.in b/bsp/buildroot/package/dmraid/Config.in index d278a116..4a8cf616 100644 --- a/bsp/buildroot/package/dmraid/Config.in +++ b/bsp/buildroot/package/dmraid/Config.in @@ -3,8 +3,6 @@ config BR2_PACKAGE_DMRAID depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 - # dmraid triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII select BR2_PACKAGE_LVM2 help dmraid discovers, activates, deactivates and displays properties @@ -15,6 +13,4 @@ config BR2_PACKAGE_DMRAID comment "dmraid needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU - # dmraid triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/dnsmasq/dnsmasq.hash b/bsp/buildroot/package/dnsmasq/dnsmasq.hash index 57dc4b17..a73e911a 100644 --- a/bsp/buildroot/package/dnsmasq/dnsmasq.hash +++ b/bsp/buildroot/package/dnsmasq/dnsmasq.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 640c4e1d4c298e42458419cd78cfc26acc549401b1a34d271cd3e0e4226941f1 dnsmasq-2.75.tar.xz +sha256 4b92698dee19ca0cb2a8f2e48f1d2dffd01a21eb15d1fbed4cf085630c8c9f96 dnsmasq-2.76.tar.xz diff --git a/bsp/buildroot/package/dnsmasq/dnsmasq.mk b/bsp/buildroot/package/dnsmasq/dnsmasq.mk index b3e8c4c4..e8240b90 100644 --- a/bsp/buildroot/package/dnsmasq/dnsmasq.mk +++ b/bsp/buildroot/package/dnsmasq/dnsmasq.mk @@ -4,7 +4,7 @@ # ################################################################################ -DNSMASQ_VERSION = 2.75 +DNSMASQ_VERSION = 2.76 DNSMASQ_SOURCE = dnsmasq-$(DNSMASQ_VERSION).tar.xz DNSMASQ_SITE = http://thekelleys.org.uk/dnsmasq DNSMASQ_MAKE_ENV = $(TARGET_MAKE_ENV) CC="$(TARGET_CC)" @@ -90,7 +90,7 @@ define DNSMASQ_BUILD_CMDS $(DNSMASQ_ENABLE_DBUS) $(DNSMASQ_ENABLE_LUA) $(DNSMASQ_ENABLE_CONNTRACK) - $(DNSMASQ_MAKE_ENV) $(MAKE1) -C $(@D) $(DNSMASQ_MAKE_OPTS) all$(DNSMASQ_I18N) + $(DNSMASQ_MAKE_ENV) $(MAKE) -C $(@D) $(DNSMASQ_MAKE_OPTS) all$(DNSMASQ_I18N) endef ifeq ($(BR2_PACKAGE_DBUS),y) diff --git a/bsp/buildroot/package/doc-asciidoc.mk b/bsp/buildroot/package/doc-asciidoc.mk index 6ab5ad27..4f765b88 100644 --- a/bsp/buildroot/package/doc-asciidoc.mk +++ b/bsp/buildroot/package/doc-asciidoc.mk @@ -117,7 +117,8 @@ $$(O)/docs/$(1)/$(1).$(6): $$($(2)_SOURCES) \ $$(Q)$$(call MESSAGE,"Generating $(7) $(1)...") $$(Q)mkdir -p $$(@D) $$(Q)a2x $(8) -f $(4) -d book -L \ - $$(foreach r,$$($(2)_RESOURCES),-r $$(r)) -r $$(@D) \ + $$(foreach r,$$($(2)_RESOURCES) $$(@D), \ + --resource="$$(abspath $$(r))") \ $$($(2)_$(4)_A2X_OPTS) \ --asciidoc-opts="$$($(2)_$(4)_ASCIIDOC_OPTS)" \ $$(BUILD_DIR)/docs/$(1)/$(1).txt diff --git a/bsp/buildroot/package/docker-containerd/Config.in b/bsp/buildroot/package/docker-containerd/Config.in new file mode 100644 index 00000000..99af9171 --- /dev/null +++ b/bsp/buildroot/package/docker-containerd/Config.in @@ -0,0 +1,23 @@ +config BR2_PACKAGE_DOCKER_CONTAINERD + bool "docker-containerd" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # util-linux + depends on BR2_USE_WCHAR # util-linux + select BR2_PACKAGE_RUNC # runtime dependency + select BR2_PACKAGE_UTIL_LINUX # runtime dependency + select BR2_PACKAGE_UTIL_LINUX_BINARIES + select BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT + select BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT + select BR2_PACKAGE_UTIL_LINUX_MOUNT + help + containerd is a daemon to control runC. + + https://github.com/docker/containerd + +comment "docker-containerd needs a toolchain w/ threads, wchar" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/docker-containerd/docker-containerd.hash b/bsp/buildroot/package/docker-containerd/docker-containerd.hash new file mode 100644 index 00000000..ec9c13e5 --- /dev/null +++ b/bsp/buildroot/package/docker-containerd/docker-containerd.hash @@ -0,0 +1,2 @@ +# Computed locally +sha256 5c1bcd8e3b7bc6034e7523b6eca7de974562b7fdc72c440494234ae10a0e545b docker-containerd-0ac3cd1be170d180b2baed755e8f0da547ceb267.tar.gz diff --git a/bsp/buildroot/package/docker-containerd/docker-containerd.mk b/bsp/buildroot/package/docker-containerd/docker-containerd.mk new file mode 100644 index 00000000..06432e9a --- /dev/null +++ b/bsp/buildroot/package/docker-containerd/docker-containerd.mk @@ -0,0 +1,47 @@ +################################################################################ +# +# docker-containerd +# +################################################################################ + +DOCKER_CONTAINERD_VERSION = 0ac3cd1be170d180b2baed755e8f0da547ceb267 +DOCKER_CONTAINERD_SITE = $(call github,docker,containerd,$(DOCKER_CONTAINERD_VERSION)) +DOCKER_CONTAINERD_LICENSE = Apache-2.0 +DOCKER_CONTAINERD_LICENSE_FILES = LICENSE.code + +DOCKER_CONTAINERD_DEPENDENCIES = host-go + +DOCKER_CONTAINERD_GOPATH = "$(@D)/vendor" +DOCKER_CONTAINERD_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GOBIN="$(@D)/bin" \ + GOPATH="$(DOCKER_CONTAINERD_GOPATH)" + +DOCKER_CONTAINERD_GLDFLAGS = \ + -X github.com/docker/containerd.GitCommit=$(DOCKER_CONTAINERD_VERSION) + +ifeq ($(BR2_STATIC_LIBS),y) +DOCKER_CONTAINERD_GLDFLAGS += -extldflags '-static' +endif + +define DOCKER_CONTAINERD_CONFIGURE_CMDS + mkdir -p $(DOCKER_CONTAINERD_GOPATH)/src/github.com/docker + ln -s $(@D) $(DOCKER_CONTAINERD_GOPATH)/src/github.com/docker/containerd + mkdir -p $(DOCKER_CONTAINERD_GOPATH)/src/github.com/opencontainers + ln -s $(RUNC_SRCDIR) $(DOCKER_CONTAINERD_GOPATH)/src/github.com/opencontainers/runc +endef + +define DOCKER_CONTAINERD_BUILD_CMDS + $(foreach d,ctr containerd containerd-shim,\ + cd $(@D); $(DOCKER_CONTAINERD_MAKE_ENV) $(HOST_DIR)/usr/bin/go build \ + -v -o $(@D)/bin/$(d) -ldflags "$(DOCKER_CONTAINERD_GLDFLAGS)" ./$(d)$(sep)) +endef + +define DOCKER_CONTAINERD_INSTALL_TARGET_CMDS + ln -fs runc $(TARGET_DIR)/usr/bin/docker-runc + $(INSTALL) -D -m 0755 $(@D)/bin/containerd $(TARGET_DIR)/usr/bin/docker-containerd + $(INSTALL) -D -m 0755 $(@D)/bin/containerd-shim $(TARGET_DIR)/usr/bin/containerd-shim + ln -fs containerd-shim $(TARGET_DIR)/usr/bin/docker-containerd-shim +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/docker-engine/0001-Fix-issues-with-tailing-rotated-jsonlog-file.patch b/bsp/buildroot/package/docker-engine/0001-Fix-issues-with-tailing-rotated-jsonlog-file.patch new file mode 100644 index 00000000..413cfd6f --- /dev/null +++ b/bsp/buildroot/package/docker-engine/0001-Fix-issues-with-tailing-rotated-jsonlog-file.patch @@ -0,0 +1,297 @@ +From 8d6f2e3fe8851b581309da25fc4c32f8be675932 Mon Sep 17 00:00:00 2001 +From: Brian Goff +Date: Mon, 11 Jul 2016 16:31:42 -0400 +Subject: [PATCH] Fix issues with tailing rotated jsonlog file + +Fixes a race where the log reader would get events for both an actual +rotation as we from fsnotify (`fsnotify.Rename`). +This issue becomes extremely apparent when rotations are fast, for +example: + +``` +$ docker run -d --name test --log-opt max-size=1 --log-opt max-file=2 +busybox sh -c 'while true; do echo hello; usleep 100000; done' +``` + +With this change the log reader for jsonlogs can handle rotations that +happen as above. + +Instead of listening for both fs events AND rotation events +simultaneously, potentially meaning we see 2 rotations for only a single +rotation due to channel buffering, only listen for fs events (like +`Rename`) and then wait to be notified about rotation by the logger. +This makes sure that we don't see 2 rotations for 1, and that we don't +start trying to read until the logger is actually ready for us to. + +Signed-off-by: Brian Goff + +This commit is pending upstream commit fixing broken log tailing. The +original commit can be found in the PR here: + + - https://github.com/docker/docker/pull/24514 + +Signed-off-by: Christian Stewart +--- + daemon/logger/jsonfilelog/read.go | 180 +++++++++++++++++++++++++------------- + 1 file changed, 119 insertions(+), 61 deletions(-) + +diff --git a/daemon/logger/jsonfilelog/read.go b/daemon/logger/jsonfilelog/read.go +index bea83dd..0cb44af 100644 +--- a/daemon/logger/jsonfilelog/read.go ++++ b/daemon/logger/jsonfilelog/read.go +@@ -3,11 +3,14 @@ package jsonfilelog + import ( + "bytes" + "encoding/json" ++ "errors" + "fmt" + "io" + "os" + "time" + ++ "gopkg.in/fsnotify.v1" ++ + "github.com/Sirupsen/logrus" + "github.com/docker/docker/daemon/logger" + "github.com/docker/docker/pkg/filenotify" +@@ -44,6 +47,10 @@ func (l *JSONFileLogger) ReadLogs(config logger.ReadConfig) *logger.LogWatcher { + func (l *JSONFileLogger) readLogs(logWatcher *logger.LogWatcher, config logger.ReadConfig) { + defer close(logWatcher.Msg) + ++ // lock so the read stream doesn't get corrupted do to rotations or other log data written while we read ++ // This will block writes!!! ++ l.mu.Lock() ++ + pth := l.writer.LogPath() + var files []io.ReadSeeker + for i := l.writer.MaxFiles(); i > 1; i-- { +@@ -61,6 +68,7 @@ func (l *JSONFileLogger) readLogs(logWatcher *logger.LogWatcher, config logger.R + latestFile, err := os.Open(pth) + if err != nil { + logWatcher.Err <- err ++ l.mu.Unlock() + return + } + +@@ -80,6 +88,7 @@ func (l *JSONFileLogger) readLogs(logWatcher *logger.LogWatcher, config logger.R + if err := latestFile.Close(); err != nil { + logrus.Errorf("Error closing file: %v", err) + } ++ l.mu.Unlock() + return + } + +@@ -87,7 +96,6 @@ func (l *JSONFileLogger) readLogs(logWatcher *logger.LogWatcher, config logger.R + latestFile.Seek(0, os.SEEK_END) + } + +- l.mu.Lock() + l.readers[logWatcher] = struct{}{} + l.mu.Unlock() + +@@ -128,92 +136,142 @@ func tailFile(f io.ReadSeeker, logWatcher *logger.LogWatcher, tail int, since ti + } + } + ++func watchFile(name string) (filenotify.FileWatcher, error) { ++ fileWatcher, err := filenotify.New() ++ if err != nil { ++ return nil, err ++ } ++ ++ if err := fileWatcher.Add(name); err != nil { ++ logrus.WithField("logger", "json-file").Warnf("falling back to file poller due to error: %v", err) ++ fileWatcher.Close() ++ fileWatcher = filenotify.NewPollingWatcher() ++ ++ if err := fileWatcher.Add(name); err != nil { ++ fileWatcher.Close() ++ logrus.Debugf("error watching log file for modifications: %v", err) ++ return nil, err ++ } ++ } ++ return fileWatcher, nil ++} ++ + func followLogs(f *os.File, logWatcher *logger.LogWatcher, notifyRotate chan interface{}, since time.Time) { + dec := json.NewDecoder(f) + l := &jsonlog.JSONLog{} + +- fileWatcher, err := filenotify.New() ++ name := f.Name() ++ fileWatcher, err := watchFile(name) + if err != nil { + logWatcher.Err <- err ++ return + } + defer func() { + f.Close() + fileWatcher.Close() + }() +- name := f.Name() + +- if err := fileWatcher.Add(name); err != nil { +- logrus.WithField("logger", "json-file").Warnf("falling back to file poller due to error: %v", err) +- fileWatcher.Close() +- fileWatcher = filenotify.NewPollingWatcher() ++ var retries int ++ handleRotate := func() error { ++ f.Close() ++ fileWatcher.Remove(name) + ++ // retry when the file doesn't exist ++ for retries := 0; retries <= 5; retries++ { ++ f, err = os.Open(name) ++ if err == nil || !os.IsNotExist(err) { ++ break ++ } ++ } ++ if err != nil { ++ return err ++ } + if err := fileWatcher.Add(name); err != nil { +- logrus.Debugf("error watching log file for modifications: %v", err) +- logWatcher.Err <- err +- return ++ return err + } ++ dec = json.NewDecoder(f) ++ return nil + } + +- var retries int +- for { +- msg, err := decodeLogLine(dec, l) +- if err != nil { +- if err != io.EOF { +- // try again because this shouldn't happen +- if _, ok := err.(*json.SyntaxError); ok && retries <= maxJSONDecodeRetry { +- dec = json.NewDecoder(f) +- retries++ +- continue ++ errRetry := errors.New("retry") ++ errDone := errors.New("done") ++ waitRead := func() error { ++ select { ++ case e := <-fileWatcher.Events(): ++ switch e.Op { ++ case fsnotify.Write: ++ dec = json.NewDecoder(f) ++ return nil ++ case fsnotify.Rename, fsnotify.Remove: ++ <-notifyRotate ++ if err := handleRotate(); err != nil { ++ return err + } +- +- // io.ErrUnexpectedEOF is returned from json.Decoder when there is +- // remaining data in the parser's buffer while an io.EOF occurs. +- // If the json logger writes a partial json log entry to the disk +- // while at the same time the decoder tries to decode it, the race condition happens. +- if err == io.ErrUnexpectedEOF && retries <= maxJSONDecodeRetry { +- reader := io.MultiReader(dec.Buffered(), f) +- dec = json.NewDecoder(reader) +- retries++ +- continue ++ return nil ++ } ++ return errRetry ++ case err := <-fileWatcher.Errors(): ++ logrus.Debug("logger got error watching file: %v", err) ++ // Something happened, let's try and stay alive and create a new watcher ++ if retries <= 5 { ++ fileWatcher, err = watchFile(name) ++ if err != nil { ++ return err + } +- +- return ++ retries++ ++ return errRetry + } ++ return err ++ case <-logWatcher.WatchClose(): ++ fileWatcher.Remove(name) ++ return errDone ++ } ++ } + +- select { +- case <-fileWatcher.Events(): +- dec = json.NewDecoder(f) +- continue +- case <-fileWatcher.Errors(): +- logWatcher.Err <- err +- return +- case <-logWatcher.WatchClose(): +- fileWatcher.Remove(name) +- return +- case <-notifyRotate: +- f.Close() +- fileWatcher.Remove(name) +- +- // retry when the file doesn't exist +- for retries := 0; retries <= 5; retries++ { +- f, err = os.Open(name) +- if err == nil || !os.IsNotExist(err) { +- break +- } ++ handleDecodeErr := func(err error) error { ++ if err == io.EOF { ++ for err := waitRead(); err != nil; { ++ if err == errRetry { ++ // retry the waitRead ++ continue + } ++ return err ++ } ++ return nil ++ } ++ // try again because this shouldn't happen ++ if _, ok := err.(*json.SyntaxError); ok && retries <= maxJSONDecodeRetry { ++ dec = json.NewDecoder(f) ++ retries++ ++ return nil ++ } ++ // io.ErrUnexpectedEOF is returned from json.Decoder when there is ++ // remaining data in the parser's buffer while an io.EOF occurs. ++ // If the json logger writes a partial json log entry to the disk ++ // while at the same time the decoder tries to decode it, the race condition happens. ++ if err == io.ErrUnexpectedEOF && retries <= maxJSONDecodeRetry { ++ reader := io.MultiReader(dec.Buffered(), f) ++ dec = json.NewDecoder(reader) ++ retries++ ++ return nil ++ } ++ return err ++ } + +- if err = fileWatcher.Add(name); err != nil { +- logWatcher.Err <- err +- return +- } +- if err != nil { +- logWatcher.Err <- err ++ // main loop ++ for { ++ msg, err := decodeLogLine(dec, l) ++ if err != nil { ++ if err := handleDecodeErr(err); err != nil { ++ if err == errDone { + return + } +- +- dec = json.NewDecoder(f) +- continue ++ // we got an unrecoverable error, so return ++ logWatcher.Err <- err ++ return + } ++ // ready to try again ++ continue + } + + retries = 0 // reset retries since we've succeeded +-- +2.7.3 + diff --git a/bsp/buildroot/package/docker-engine/Config.in b/bsp/buildroot/package/docker-engine/Config.in new file mode 100644 index 00000000..a22786af --- /dev/null +++ b/bsp/buildroot/package/docker-engine/Config.in @@ -0,0 +1,64 @@ +config BR2_PACKAGE_DOCKER_ENGINE + bool "docker-engine" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + Docker is a platform to build, ship, + and run applications as lightweight containers. + + https://github.com/docker/docker + +if BR2_PACKAGE_DOCKER_ENGINE + +config BR2_PACKAGE_DOCKER_ENGINE_DAEMON + bool "docker daemon" + depends on BR2_USE_WCHAR # docker-containerd + select BR2_PACKAGE_DOCKER_CONTAINERD # runtime dependency + select BR2_PACKAGE_SQLITE # runtime dependency + default y + help + Build the Docker system daemon. + If not selected, will build client only. + +config BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL + bool "build experimental features" + +if BR2_PACKAGE_DOCKER_ENGINE_DAEMON + +config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS + bool "btrfs filesystem driver" + depends on BR2_USE_WCHAR # btrfs-progs + depends on BR2_USE_MMU # btrfs-progs + depends on BR2_TOOLCHAIN_HAS_THREADS # btrfs-progs + select BR2_PACKAGE_BTRFS_PROGS + help + Build the btrfs filesystem driver for Docker. + +config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER + bool "devicemapper filesystem driver" + depends on BR2_TOOLCHAIN_HAS_THREADS # lvm2 + depends on BR2_USE_MMU # lvm2 + depends on !BR2_STATIC_LIBS # lvm2 + select BR2_PACKAGE_LVM2 + select BR2_PACKAGE_LVM2_APP_LIBRARY + help + Build the devicemapper filesystem driver for Docker. + +config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS + bool "vfs filesystem driver" + depends on BR2_USE_WCHAR # gvfs + depends on BR2_USE_MMU # gvfs + depends on BR2_TOOLCHAIN_HAS_THREADS # gvfs + select BR2_PACKAGE_GVFS + help + Build the vfs filesystem driver for Docker. + +endif + +endif + +comment "docker-engine needs a toolchain w/ threads" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/docker-engine/docker-engine.hash b/bsp/buildroot/package/docker-engine/docker-engine.hash new file mode 100644 index 00000000..6078fbfd --- /dev/null +++ b/bsp/buildroot/package/docker-engine/docker-engine.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 f8139acba98248eb1fdb0b6d94efee89b876f9a50d00e263dc144fd2b0c372d4 docker-engine-v1.12.0.tar.gz diff --git a/bsp/buildroot/package/docker-engine/docker-engine.mk b/bsp/buildroot/package/docker-engine/docker-engine.mk new file mode 100644 index 00000000..3d39aac4 --- /dev/null +++ b/bsp/buildroot/package/docker-engine/docker-engine.mk @@ -0,0 +1,107 @@ +################################################################################ +# +# docker-engine +# +################################################################################ + +DOCKER_ENGINE_VERSION = v1.12.0 +DOCKER_ENGINE_SITE = $(call github,docker,docker,$(DOCKER_ENGINE_VERSION)) + +DOCKER_ENGINE_LICENSE = Apache-2.0 +DOCKER_ENGINE_LICENSE_FILES = LICENSE + +DOCKER_ENGINE_DEPENDENCIES = host-go + +DOCKER_ENGINE_GOPATH = "$(@D)/vendor" +DOCKER_ENGINE_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + CGO_NO_EMULATION=1 \ + GOBIN="$(@D)/bin" \ + GOPATH="$(DOCKER_ENGINE_GOPATH)" + +DOCKER_ENGINE_GLDFLAGS = \ + -X main.GitCommit=$(DOCKER_ENGINE_VERSION) \ + -X main.Version=$(DOCKER_ENGINE_VERSION) + +ifeq ($(BR2_STATIC_LIBS),y) +DOCKER_ENGINE_GLDFLAGS += -extldflags '-static' +endif + +DOCKER_ENGINE_BUILD_TAGS = cgo exclude_graphdriver_zfs autogen +DOCKER_ENGINE_BUILD_TARGETS = docker + +ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) +DOCKER_ENGINE_BUILD_TAGS += seccomp +DOCKER_ENGINE_DEPENDENCIES += libseccomp +endif + +ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y) +DOCKER_ENGINE_BUILD_TAGS += daemon +DOCKER_ENGINE_BUILD_TARGETS += dockerd +endif + +ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y) +DOCKER_ENGINE_BUILD_TAGS += experimental +endif + +ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS),y) +DOCKER_ENGINE_DEPENDENCIES += btrfs-progs +else +DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_btrfs +endif + +ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER),y) +DOCKER_ENGINE_DEPENDENCIES += lvm2 +else +DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_devicemapper +endif + +ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS),y) +DOCKER_ENGINE_DEPENDENCIES += gvfs +else +DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_vfs +endif + +define DOCKER_ENGINE_CONFIGURE_CMDS + ln -fs $(@D) $(DOCKER_ENGINE_GOPATH)/src/github.com/docker/docker + cd $(@D) && \ + GITCOMMIT="unknown" BUILDTIME="$$(date)" VERSION="$(DOCKER_ENGINE_VERSION)" \ + bash ./hack/make/.go-autogen +endef + +ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y) + +define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.service \ + $(TARGET_DIR)/usr/lib/systemd/system/docker.service + $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.socket \ + $(TARGET_DIR)/usr/lib/systemd/system/docker.socket + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/ + ln -fs ../../../../usr/lib/systemd/system/docker.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/docker.service +endef + +define DOCKER_ENGINE_USERS + - - docker -1 * - - - Docker Application Container Framework +endef + +endif + +define DOCKER_ENGINE_BUILD_CMDS + $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \ + cd $(@D); $(DOCKER_ENGINE_MAKE_ENV) \ + $(HOST_DIR)/usr/bin/go build -v \ + -o $(@D)/bin/$(target) \ + -tags "$(DOCKER_ENGINE_BUILD_TAGS)" \ + -ldflags "$(DOCKER_ENGINE_GLDFLAGS)" \ + ./cmd/$(target) + ) +endef + +define DOCKER_ENGINE_INSTALL_TARGET_CMDS + $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \ + $(INSTALL) -D -m 0755 $(@D)/bin/$(target) $(TARGET_DIR)/usr/bin/$(target) + ) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch b/bsp/buildroot/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch new file mode 100644 index 00000000..55bbb7dc --- /dev/null +++ b/bsp/buildroot/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch @@ -0,0 +1,58 @@ +From f0da50118f7bd01ed7fa97e75b790a8232d8d4dc Mon Sep 17 00:00:00 2001 +From: Rahul Bedarkar +Date: Thu, 25 Aug 2016 17:23:38 +0530 +Subject: [PATCH] add proper check for detecting header + +domoticz.cpp currently assumes that on GNU/Linux systems header + is available. But that is not true. Since it provided by +C library and uClibc can be built without backtrace support. And in +such cases we get following build error. + + domoticz-3.4834/main/domoticz.cpp:48:22: fatal error: execinfo.h: No such file or directory + #include + ^ + compilation terminated. + +Instead of depending on __gnu_linux__, add check for detecting +presence of and guard code for dumpstack accordingly. + +This build failure is detected by Buildroot autobuilder. +http://autobuild.buildroot.net/results/393/393f839e160b51ca12ac36058718ad2f0c1b50a6/ + +Signed-off-by: Rahul Bedarkar +--- + CMakeLists.txt | 7 +++++++ + main/domoticz.cpp | 2 +- + 2 files changed, 8 insertions(+), 1 deletion(-) + +Index: b/CMakeLists.txt +=================================================================== +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -61,6 +61,13 @@ + "Where to put the executables for Domoticz" + ) + ++INCLUDE(CheckIncludeFiles) ++CHECK_INCLUDE_FILES (execinfo.h HAVE_EXECINFO_H) ++ ++IF(HAVE_EXECINFO_H) ++ ADD_DEFINITIONS(-DHAVE_EXECINFO_H) ++ENDIF(HAVE_EXECINFO_H) ++ + #set(CMAKE_EXE_LINKER_FLAGS "-static") + + # Macro for setting up precompiled headers. Usage: +Index: b/main/domoticz.cpp +=================================================================== +--- a/main/domoticz.cpp ++++ b/main/domoticz.cpp +@@ -44,7 +44,7 @@ + #include + #endif + +-#ifdef __gnu_linux__ ++#ifdef HAVE_EXECINFO_H + #include + static void dumpstack(void) { + // Notes : diff --git a/bsp/buildroot/package/domoticz/Config.in b/bsp/buildroot/package/domoticz/Config.in new file mode 100644 index 00000000..3bd7824a --- /dev/null +++ b/bsp/buildroot/package/domoticz/Config.in @@ -0,0 +1,31 @@ +config BR2_PACKAGE_DOMOTICZ + bool "domoticz" + depends on BR2_USE_MMU # mosquitto + depends on !BR2_STATIC_LIBS # mosquitto + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_LUA_5_2 || BR2_PACKAGE_LUA_5_3 + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_DATE_TIME + select BR2_PACKAGE_BOOST_SYSTEM + select BR2_PACKAGE_BOOST_THREAD + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_MOSQUITTO + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_ZLIB + help + Domoticz is a Home Automation System that lets you monitor + and configure various devices like: Lights, Switches, + various sensors/meters like Temperature, Rain, Wind, UV, + Electra, Gas, Water and much more. Notifications/Alerts can + be sent to any mobile device. + + http://domoticz.com + +comment "domoticz needs lua >= 5.2 and a toolchain w/ C++, threads, wchar, dynamic library" + depends on BR2_USE_MMU + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_USE_WCHAR || BR2_STATIC_LIBS || \ + !(BR2_PACKAGE_LUA_5_2 || BR2_PACKAGE_LUA_5_3) diff --git a/bsp/buildroot/package/domoticz/S99domoticz b/bsp/buildroot/package/domoticz/S99domoticz new file mode 100644 index 00000000..a16cacad --- /dev/null +++ b/bsp/buildroot/package/domoticz/S99domoticz @@ -0,0 +1,38 @@ +#!/bin/sh + +NAME=domoticz +PIDFILE=/var/run/$NAME.pid +DAEMON=/opt/domoticz/$NAME +DAEMON_ARGS="-daemon -www 8080 -sslwww 443" + +start() { + printf "Starting $NAME: " + start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping $NAME: " + start-stop-daemon -K -q -p $PIDFILE + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/domoticz/domoticz.hash b/bsp/buildroot/package/domoticz/domoticz.hash new file mode 100644 index 00000000..9180a9b1 --- /dev/null +++ b/bsp/buildroot/package/domoticz/domoticz.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 02b4cdde8e376258aeae3d5621edf8bb6b3563c34282e50194db343fcec9c0f5 domoticz-3.4834.tar.gz diff --git a/bsp/buildroot/package/domoticz/domoticz.mk b/bsp/buildroot/package/domoticz/domoticz.mk new file mode 100644 index 00000000..adcf0617 --- /dev/null +++ b/bsp/buildroot/package/domoticz/domoticz.mk @@ -0,0 +1,77 @@ +################################################################################ +# +# domoticz +# +################################################################################ + +DOMOTICZ_VERSION = 3.4834 +DOMOTICZ_SITE = $(call github,domoticz,domoticz,$(DOMOTICZ_VERSION)) +DOMOTICZ_LICENSE = GPLv3 +DOMOTICZ_LICENSE_FILES = License.txt +DOMOTICZ_DEPENDENCIES = \ + boost \ + host-pkgconf \ + libcurl \ + lua \ + mosquitto \ + openssl \ + sqlite \ + zlib + +# Due to the dependency on mosquitto, domoticz depends on +# !BR2_STATIC_LIBS so set USE_STATIC_BOOST to OFF +DOMOTICZ_CONF_OPTS += -DUSE_STATIC_BOOST=OFF + +# Do not use any built-in libraries which are enabled by default for +# lua, sqlite and mqtt +DOMOTICZ_CONF_OPTS += \ + -DUSE_BUILTIN_LUA=OFF \ + -DUSE_BUILTIN_SQLITE=OFF \ + -DUSE_BUILTIN_MQTT=OFF + +ifeq ($(BR2_PACKAGE_LIBUSB),y) +DOMOTICZ_DEPENDENCIES += libusb +endif + +ifeq ($(BR2_PACKAGE_OPENZWAVE),y) +DOMOTICZ_DEPENDENCIES += openzwave + +# Due to the dependency on mosquitto, domoticz depends on +# !BR2_STATIC_LIBS so set USE_STATIC_OPENZWAVE to OFF otherwise +# domoticz will not find the openzwave library as it searches by +# default a static library. +DOMOTICZ_CONF_OPTS += -DUSE_STATIC_OPENZWAVE=OFF +endif + +# Install domoticz in a dedicated directory (/opt/domoticz) as +# domoticz expects by default that all its subdirectories (www, +# Config, scripts, ...) are in the binary directory. +DOMOTICZ_TARGET_DIR = /opt/domoticz +DOMOTICZ_CONF_OPTS += -DCMAKE_INSTALL_PREFIX=$(DOMOTICZ_TARGET_DIR) + +# Delete License.txt and updatedomo files installed by domoticz in target +# directory +# Do not delete History.txt as it is used in source code +define DOMOTICZ_REMOVE_UNNEEDED_FILES + $(RM) $(TARGET_DIR)/$(DOMOTICZ_TARGET_DIR)/License.txt + $(RM) $(TARGET_DIR)/$(DOMOTICZ_TARGET_DIR)/updatedomo +endef + +DOMOTICZ_POST_INSTALL_TARGET_HOOKS += DOMOTICZ_REMOVE_UNNEEDED_FILES + +# Use dedicated init scripts for systemV and systemd instead of using +# domoticz.sh as it is not compatible with buildroot init system +define DOMOTICZ_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/domoticz/S99domoticz \ + $(TARGET_DIR)/etc/init.d/S99domoticz +endef + +define DOMOTICZ_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/domoticz/domoticz.service \ + $(TARGET_DIR)/usr/lib/systemd/system/domoticz.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../../usr/lib/systemd/system/domoticz.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/domoticz.service +endef + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/domoticz/domoticz.service b/bsp/buildroot/package/domoticz/domoticz.service new file mode 100644 index 00000000..446b41a5 --- /dev/null +++ b/bsp/buildroot/package/domoticz/domoticz.service @@ -0,0 +1,10 @@ +[Unit] +Description=Domoticz Home Automation System +After=network.target + +[Service] +ExecStart=/opt/domoticz/domoticz -daemon -www 8080 -sslwww 443 +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/bsp/buildroot/package/dos2unix/Config.in b/bsp/buildroot/package/dos2unix/Config.in index ead1a8ff..0a4f5e2f 100644 --- a/bsp/buildroot/package/dos2unix/Config.in +++ b/bsp/buildroot/package/dos2unix/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_DOS2UNIX select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE bool "dos2unix" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help dos2unix converts text file line endings between CRLF and LF diff --git a/bsp/buildroot/package/dos2unix/dos2unix.hash b/bsp/buildroot/package/dos2unix/dos2unix.hash index 7e1a1200..1169592f 100644 --- a/bsp/buildroot/package/dos2unix/dos2unix.hash +++ b/bsp/buildroot/package/dos2unix/dos2unix.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 f4d5df24d181c2efecf7631aab6e894489012396092cf206829f1f9a98556b94 dos2unix-7.3.1.tar.gz +sha256 8ccda7bbc5a2f903dafd95900abb5bf5e77a769b572ef25150fde4056c5f30c5 dos2unix-7.3.4.tar.gz diff --git a/bsp/buildroot/package/dos2unix/dos2unix.mk b/bsp/buildroot/package/dos2unix/dos2unix.mk index 21e03aec..df2094e4 100644 --- a/bsp/buildroot/package/dos2unix/dos2unix.mk +++ b/bsp/buildroot/package/dos2unix/dos2unix.mk @@ -4,12 +4,11 @@ # ################################################################################ -DOS2UNIX_VERSION = 7.3.1 +DOS2UNIX_VERSION = 7.3.4 DOS2UNIX_SITE = http://waterlan.home.xs4all.nl/dos2unix DOS2UNIX_LICENSE = BSD-2c DOS2UNIX_LICENSE_FILES = COPYING.txt DOS2UNIX_DEPENDENCIES = $(if $(BR2_PACKAGE_BUSYBOX),busybox) -HOST_DOS2UNIX_DEPENDENCIES = ifeq ($(BR2_ENABLE_LOCALE),y) DOS2UNIX_DEPENDENCIES += host-gettext diff --git a/bsp/buildroot/package/dosfstools/0001-mkfs-Default-to-64-32-heads-sectors-for-targets-smalle.patch b/bsp/buildroot/package/dosfstools/0001-mkfs-Default-to-64-32-heads-sectors-for-targets-smalle.patch new file mode 100644 index 00000000..ff3c3ffa --- /dev/null +++ b/bsp/buildroot/package/dosfstools/0001-mkfs-Default-to-64-32-heads-sectors-for-targets-smalle.patch @@ -0,0 +1,42 @@ +From 1e76e5778a1885452939a79d9145b80634a5b023 Mon Sep 17 00:00:00 2001 +From: Andreas Bombe +Date: Wed, 11 May 2016 03:44:58 +0200 +Subject: [PATCH] mkfs: Default to 64/32 heads/sectors for targets smaller than + 512 MB + +This may put defaults in certain use cases a little bit more in line +with the old defaults in versions up to 3.0.28. It has mostly aesthetic +value in most cases. + +Signed-off-by: Andreas Bombe +Signed-off-by: Gustavo Zacarias +--- +Patch status: upstream + + src/mkfs.fat.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c +index 8a320fd..bad492b 100644 +--- a/src/mkfs.fat.c ++++ b/src/mkfs.fat.c +@@ -519,6 +519,16 @@ static void establish_params(struct device_info *info) + unsigned int cluster_size = 4; /* starting point for FAT12 and FAT16 */ + int def_root_dir_entries = 512; + ++ if (info->size < 512 * 1024 * 1024) { ++ /* ++ * These values are more or less meaningless, but we can at least ++ * use less extreme values for smaller filesystems where the large ++ * dummy values signifying LBA only access are not needed. ++ */ ++ sec_per_track = 32; ++ heads = 64; ++ } ++ + if (info->type != TYPE_FIXED) { + /* enter default parameters for floppy disks if the size matches */ + switch (info->size / 1024) { +-- +2.7.3 + diff --git a/bsp/buildroot/package/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch b/bsp/buildroot/package/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch deleted file mode 100644 index 34ebc240..00000000 --- a/bsp/buildroot/package/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 7a589ef6dab52ad32a296939f0ed2acb4d76b2a7 Mon Sep 17 00:00:00 2001 -From: "Yann E. MORIN" -Date: Sun, 16 Aug 2015 15:55:43 +0200 -Subject: [PATCH] mkfs.fat: fix incorrect int type - -u_int32_t is not a stanard type, while uint32_t is. This fixes builds -with the musl C library, which only defines so-called "clean" headers; -build failures are like (back-quotes and elision manually added for -readability): - - http://autobuild.buildroot.org/results/a09/a0923d7f6d4dbae02eba4c5024bbdae3a52aa85a/build-end.log - - /home/peko/autobuild/instance-1/output/host/usr/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE \ - -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -D_LARGEFILE_SOURCE \ - -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o mkfs.fat.o src/mkfs.fat.c - src/mkfs.fat.c: In function 'main': - src/mkfs.fat.c:1415:18: error: 'u_int32_t' undeclared (first use in this function) - volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); [...] - ^ - src/mkfs.fat.c:1415:18: note: each undeclared identifier is reported only once for each - function it appears in - -Signed-off-by: "Yann E. MORIN" ---- -Upstream status: applied: https://github.com/dosfstools/dosfstools/pull/9 ---- - src/mkfs.fat.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c -index b38d116..dddbe24 100644 ---- a/src/mkfs.fat.c -+++ b/src/mkfs.fat.c -@@ -1412,7 +1412,7 @@ int main(int argc, char **argv) - - gettimeofday(&create_timeval, NULL); - create_time = create_timeval.tv_sec; -- volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); /* Default volume ID = creation time, fudged for more uniqueness */ -+ volume_id = (uint32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); /* Default volume ID = creation time, fudged for more uniqueness */ - check_atari(); - - printf("mkfs.fat " VERSION " (" VERSION_DATE ")\n"); --- -1.9.1 - diff --git a/bsp/buildroot/package/dosfstools/dosfstools.hash b/bsp/buildroot/package/dosfstools/dosfstools.hash index f8521958..777b8d9e 100644 --- a/bsp/buildroot/package/dosfstools/dosfstools.hash +++ b/bsp/buildroot/package/dosfstools/dosfstools.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 ee95913044ecf2719b63ea11212917649709a6e53209a72d622135aaa8517ee2 dosfstools-3.0.28.tar.xz +sha256 9037738953559d1efe04fc5408b6846216cc0138f7f9d32de80b6ec3c35e7daf dosfstools-4.0.tar.xz diff --git a/bsp/buildroot/package/dosfstools/dosfstools.mk b/bsp/buildroot/package/dosfstools/dosfstools.mk index b7f7d96b..67c6f731 100644 --- a/bsp/buildroot/package/dosfstools/dosfstools.mk +++ b/bsp/buildroot/package/dosfstools/dosfstools.mk @@ -4,65 +4,46 @@ # ################################################################################ -DOSFSTOOLS_VERSION = 3.0.28 +DOSFSTOOLS_VERSION = 4.0 DOSFSTOOLS_SOURCE = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION) DOSFSTOOLS_LICENSE = GPLv3+ DOSFSTOOLS_LICENSE_FILES = COPYING +DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks --exec-prefix=/ +HOST_DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks -# Avoid target dosfstools dependencies, no host-libiconv -HOST_DOSFSTOOLS_DEPENDENCIES = - -DOSFSTOOLS_CFLAGS = $(TARGET_CFLAGS) -D_GNU_SOURCE +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) +DOSFSTOOLS_CONF_OPTS += --with-udev +DOSFSTOOLS_DEPENDENCIES += udev +else +DOSFSTOOLS_CONF_OPTS += --without-udev +endif ifneq ($(BR2_ENABLE_LOCALE),y) +DOSFSTOOLS_CONF_OPTS += LIBS="-liconv" DOSFSTOOLS_DEPENDENCIES += libiconv -DOSFSTOOLS_LDLIBS += -liconv endif -define DOSFSTOOLS_BUILD_CMDS - $(MAKE) $(TARGET_CONFIGURE_OPTS) \ - CFLAGS="$(DOSFSTOOLS_CFLAGS)" LDLIBS="$(DOSFSTOOLS_LDLIBS)" -C $(@D) -endef - -ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FATLABEL),y) -define DOSFSTOOLS_INSTALL_FATLABEL - $(INSTALL) -D -m 755 $(@D)/fatlabel $(TARGET_DIR)/sbin/fatlabel - ln -sf fatlabel $(TARGET_DIR)/sbin/dosfslabel +ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FATLABEL),) +define DOSFSTOOLS_REMOVE_FATLABEL + rm -f $(addprefix $(TARGET_DIR)/sbin/,dosfslabel fatlabel) endef +DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_FATLABEL endif -ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT),y) -define DOSFSTOOLS_INSTALL_FSCK_FAT - $(INSTALL) -D -m 755 $(@D)/fsck.fat $(TARGET_DIR)/sbin/fsck.fat - ln -fs fsck.fat $(TARGET_DIR)/sbin/dosfsck - ln -fs fsck.fat $(TARGET_DIR)/sbin/fsck.msdos - ln -fs fsck.fat $(TARGET_DIR)/sbin/fsck.vfat +ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT),) +define DOSFSTOOLS_REMOVE_FSCK_FAT + rm -f $(addprefix $(TARGET_DIR)/sbin/,fsck.fat dosfsck fsck.msdos fsck.vfat) endef +DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_FSCK_FAT endif -ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT),y) -define DOSFSTOOLS_INSTALL_MKFS_FAT - $(INSTALL) -D -m 755 $(@D)/mkfs.fat $(TARGET_DIR)/sbin/mkfs.fat - ln -fs mkfs.fat $(TARGET_DIR)/sbin/mkdosfs - ln -fs mkfs.fat $(TARGET_DIR)/sbin/mkfs.msdos - ln -fs mkfs.fat $(TARGET_DIR)/sbin/mkfs.vfat +ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT),) +define DOSFSTOOLS_REMOVE_MKFS_FAT + rm -f $(addprefix $(TARGET_DIR)/sbin/,mkfs.fat mkdosfs mkfs.msdos mkfs.vfat) endef +DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_MKFS_FAT endif -define DOSFSTOOLS_INSTALL_TARGET_CMDS - $(DOSFSTOOLS_INSTALL_FATLABEL) - $(DOSFSTOOLS_INSTALL_FSCK_FAT) - $(DOSFSTOOLS_INSTALL_MKFS_FAT) -endef - -define HOST_DOSFSTOOLS_BUILD_CMDS - $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) -endef - -define HOST_DOSFSTOOLS_INSTALL_CMDS - $(MAKE) -C $(@D) $(HOST_CONFIGURE_OPTS) PREFIX=$(HOST_DIR)/usr install -endef - -$(eval $(generic-package)) -$(eval $(host-generic-package)) +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.hash b/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.hash index 942046b6..f5988251 100644 --- a/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.hash +++ b/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 98a2fd79b0d9effd08c0caf04d483b1caa5e4503dae811e6d436948557bfb702 dovecot-2.2-pigeonhole-0.4.12.tar.gz +sha256 c99ace6ead310c6c3b639922da618f90d846307da4fe252d994e5e51bf8a3de3 dovecot-2.2-pigeonhole-0.4.15.tar.gz diff --git a/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.mk b/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.mk index 2b8232d4..7c0a14c3 100644 --- a/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.mk +++ b/bsp/buildroot/package/dovecot-pigeonhole/dovecot-pigeonhole.mk @@ -4,7 +4,7 @@ # ################################################################################ -DOVECOT_PIGEONHOLE_VERSION = 0.4.12 +DOVECOT_PIGEONHOLE_VERSION = 0.4.15 DOVECOT_PIGEONHOLE_SOURCE = dovecot-2.2-pigeonhole-$(DOVECOT_PIGEONHOLE_VERSION).tar.gz DOVECOT_PIGEONHOLE_SITE = http://pigeonhole.dovecot.org/releases/2.2 DOVECOT_PIGEONHOLE_LICENSE = LGPLv2.1 diff --git a/bsp/buildroot/package/dovecot/dovecot.hash b/bsp/buildroot/package/dovecot/dovecot.hash index 42a187ae..0f67f0e3 100644 --- a/bsp/buildroot/package/dovecot/dovecot.hash +++ b/bsp/buildroot/package/dovecot/dovecot.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 7ab7139e59e1f0353bf9c24251f13c893cf1a6ef4bcc47e2d44de437108d0b20 dovecot-2.2.21.tar.gz +sha256 d8d9f32c846397f7c22749a84c5cf6f59c55ff7ded3dc9f07749a255182f9667 dovecot-2.2.25.tar.gz diff --git a/bsp/buildroot/package/dovecot/dovecot.mk b/bsp/buildroot/package/dovecot/dovecot.mk index 6b693290..31c62d31 100644 --- a/bsp/buildroot/package/dovecot/dovecot.mk +++ b/bsp/buildroot/package/dovecot/dovecot.mk @@ -5,7 +5,7 @@ ################################################################################ DOVECOT_VERSION_MAJOR = 2.2 -DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).21 +DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).25 DOVECOT_SITE = http://www.dovecot.org/releases/$(DOVECOT_VERSION_MAJOR) DOVECOT_INSTALL_STAGING = YES DOVECOT_LICENSE = LGPLv2.1 diff --git a/bsp/buildroot/package/doxygen/doxygen.mk b/bsp/buildroot/package/doxygen/doxygen.mk index 14dd0905..cf7dfee2 100644 --- a/bsp/buildroot/package/doxygen/doxygen.mk +++ b/bsp/buildroot/package/doxygen/doxygen.mk @@ -9,7 +9,7 @@ DOXYGEN_SOURCE = doxygen-$(DOXYGEN_VERSION).src.tar.gz DOXYGEN_SITE = http://ftp.stack.nl/pub/users/dimitri DOXYGEN_LICENSE = GPLv2 DOXYGEN_LICENSE_FILES = LICENSE -DOXYGEN_DEPENDENCIES = host-flex host-bison +HOST_DOXYGEN_DEPENDENCIES = host-flex host-bison define HOST_DOXYGEN_CONFIGURE_CMDS (cd $(@D); $(HOST_MAKE_ENV) ./configure --shared --prefix=$(HOST_DIR)/usr) diff --git a/bsp/buildroot/package/dropbear/dropbear.hash b/bsp/buildroot/package/dropbear/dropbear.hash index 934b26b8..88f3e6ed 100644 --- a/bsp/buildroot/package/dropbear/dropbear.hash +++ b/bsp/buildroot/package/dropbear/dropbear.hash @@ -1,2 +1,2 @@ # From https://matt.ucc.asn.au/dropbear/releases/SHA256SUM.asc -sha256 376214169c0e187ee9f48ae1a99b3f835016ad5b98ede4bfd1cf581deba783af dropbear-2015.71.tar.bz2 +sha256 2720ea54ed009af812701bcc290a2a601d5c107d12993e5d92c0f5f81f718891 dropbear-2016.74.tar.bz2 diff --git a/bsp/buildroot/package/dropbear/dropbear.mk b/bsp/buildroot/package/dropbear/dropbear.mk index e7633ae8..743d5247 100644 --- a/bsp/buildroot/package/dropbear/dropbear.mk +++ b/bsp/buildroot/package/dropbear/dropbear.mk @@ -4,7 +4,7 @@ # ################################################################################ -DROPBEAR_VERSION = 2015.71 +DROPBEAR_VERSION = 2016.74 DROPBEAR_SITE = http://matt.ucc.asn.au/dropbear/releases DROPBEAR_SOURCE = dropbear-$(DROPBEAR_VERSION).tar.bz2 DROPBEAR_LICENSE = MIT, BSD-2c-like, BSD-2c diff --git a/bsp/buildroot/package/dropwatch/Config.in b/bsp/buildroot/package/dropwatch/Config.in index d331e5e8..6f04c85d 100644 --- a/bsp/buildroot/package/dropwatch/Config.in +++ b/bsp/buildroot/package/dropwatch/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_DROPWATCH bool "dropwatch" select BR2_PACKAGE_BINUTILS - depends on !BR2_aarch64 && !BR2_nios2 # binutils + depends on !BR2_nios2 # binutils depends on BR2_USE_WCHAR # binutils select BR2_PACKAGE_READLINE select BR2_PACKAGE_LIBNL @@ -13,5 +13,5 @@ config BR2_PACKAGE_DROPWATCH https://fedorahosted.org/dropwatch/ comment "dropwatch needs a toolchain w/ threads, wchar" - depends on !BR2_aarch64 && !BR2_nios2 + depends on !BR2_nios2 depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/dsp-tools/dsp-tools.hash b/bsp/buildroot/package/dsp-tools/dsp-tools.hash new file mode 100644 index 00000000..cfcf06c8 --- /dev/null +++ b/bsp/buildroot/package/dsp-tools/dsp-tools.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 734a1d5f21fb388bdbe64f7b599fef52357c3c72ff860f38456a352e7c1c3e78 dsp-tools-v2.0.tar.gz diff --git a/bsp/buildroot/package/dsp-tools/dsp-tools.mk b/bsp/buildroot/package/dsp-tools/dsp-tools.mk index 64490b82..c91ed206 100644 --- a/bsp/buildroot/package/dsp-tools/dsp-tools.mk +++ b/bsp/buildroot/package/dsp-tools/dsp-tools.mk @@ -4,8 +4,8 @@ # ################################################################################ -DSP_TOOLS_VERSION = 2.0 -DSP_TOOLS_SITE = http://gst-dsp.googlecode.com/files +DSP_TOOLS_VERSION = v2.0 +DSP_TOOLS_SITE = $(call github,felipec,dsp-tools,$(DSP_TOOLS_VERSION)) DSP_TOOLS_DEPENDENCIES = tidsp-binaries DSP_TOOLS_LICENSE = LGPLv2.1 DSP_TOOLS_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/dt/0001-adjust-os-symlink.patch b/bsp/buildroot/package/dt/0001-adjust-os-symlink.patch new file mode 100644 index 00000000..1af9d64d --- /dev/null +++ b/bsp/buildroot/package/dt/0001-adjust-os-symlink.patch @@ -0,0 +1,19 @@ +Don't force build-dir-in-build-dir logic, symlink the os-specific SCSI +support file in place. + +Status: not suitable for upstream. + +Signed-off-by: Gustavo Zacarias + +diff -Nura Makefile.linux Makefile.linux +--- a/Makefile.linux 2016-01-26 09:10:03.939963780 -0300 ++++ b/Makefile.linux 2016-01-26 09:10:27.140763863 -0300 +@@ -129,7 +129,7 @@ + echo "Please specify OS={aix,linux,hpux,solaris,windows}"; \ + exit 1; \ + fi; \ +- ln -sf ../scsilib-$(OS).c scsilib.c ++ ln -sf scsilib-$(OS).c scsilib.c + + print:; + @$(PRINTER) $(PRINTFLAGS) $(ALL_CFILES) diff --git a/bsp/buildroot/package/dt/0002-dt-default-source-define.patch b/bsp/buildroot/package/dt/0002-dt-default-source-define.patch new file mode 100644 index 00000000..8c9daaea --- /dev/null +++ b/bsp/buildroot/package/dt/0002-dt-default-source-define.patch @@ -0,0 +1,20 @@ +Patch taken from Fedora: +http://pkgs.fedoraproject.org/cgit/rpms/dt.git/commit/dt-default-source-define.patch?id=a3107b34a3efc6af66a5f892514f233bb66eb6b5 + +_BSD_SOURCE was deprecated, hence switch to use _DEFAULT_SOURCE as well +to avoid the build from breaking on newer toolchains. + +Signed-off-by: Gustavo Zacarias + +diff -rupN dt.v18.32.old/common.h dt.v18.32/common.h +--- dt.v18.32.old/common.h 2013-03-01 23:52:30.000000000 +0100 ++++ dt.v18.32/common.h 2014-09-24 17:41:40.777604710 +0200 +@@ -127,7 +127,7 @@ typedef volatile slarge_t v_slarge; + + #endif /* defined(_WIN64) */ + +-#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE) ++#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined (_DEFAULT_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE) + + #define QuadIsLongLong + typedef unsigned long long int large_t; diff --git a/bsp/buildroot/package/dt/Config.in b/bsp/buildroot/package/dt/Config.in new file mode 100644 index 00000000..826a66eb --- /dev/null +++ b/bsp/buildroot/package/dt/Config.in @@ -0,0 +1,21 @@ +comment "dt needs a glibc or uClibc toolchain w/ threads" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL + +config BR2_PACKAGE_DT + bool "dt" + depends on BR2_USE_MMU # fork() + depends on BR2_TOOLCHAIN_HAS_THREADS + # Build fails because of several BSDisms + depends on !BR2_TOOLCHAIN_USES_MUSL + help + dt is a generic data test program used to verify proper + operation of peripherals, file systems, device drivers, + or any data stream supported by the operating system. + In its' simplest mode of operation, dt writes and then + verifys its' default data pattern, then displays + performance statisics and other test parameters + before exiting. Since verification of data is performed, + dt can be thought of as a generic diagnostic tool. + + http://www.scsifaq.org/RMiller_Tools/dt.html diff --git a/bsp/buildroot/package/dt/dt.hash b/bsp/buildroot/package/dt/dt.hash new file mode 100644 index 00000000..7cd8c643 --- /dev/null +++ b/bsp/buildroot/package/dt/dt.hash @@ -0,0 +1,5 @@ +# From http://pkgs.fedoraproject.org/repo/pkgs/dt/dt-source-v18.32.tar.gz +# (directory name is md5 hash) +md5 3054aeaaba047a1dbe90c2132a382ee2 dt-source-v18.32.tar.gz +# Calculated based on the hash above +sha256 10d164676e918a4d07f233bcd11e4cb6bfd1052c996182cd1827ccd0c063fcc6 dt-source-v18.32.tar.gz diff --git a/bsp/buildroot/package/dt/dt.mk b/bsp/buildroot/package/dt/dt.mk new file mode 100644 index 00000000..8ec77888 --- /dev/null +++ b/bsp/buildroot/package/dt/dt.mk @@ -0,0 +1,39 @@ +################################################################################ +# +# dt +# +################################################################################ + +DT_VERSION = v18.32 +DT_SITE = http://pkgs.fedoraproject.org/repo/pkgs/dt/$(DT_SOURCE)/3054aeaaba047a1dbe90c2132a382ee2 +DT_SOURCE = dt-source-$(DT_VERSION).tar.gz +DT_STRIP_COMPONENTS = 2 +DT_LICENSE = ISC-like +DT_LICENSE_FILES = LICENSE + +DT_CFLAGS = \ + -std=c99 \ + -DMMAP \ + -D__linux__ \ + -D_GNU_SOURCE \ + -D_FILE_OFFSET_BITS=64 \ + -DTHREADS \ + -DSCSI + +# uClibc doesn't provide POSIX AIO +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),) +DT_CFLAGS += -DAIO +endif + +define DT_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -f Makefile.linux \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS) $(DT_CFLAGS)" \ + OS=linux +endef + +define DT_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/dt $(TARGET_DIR)/usr/bin/dt +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/dtach/dtach.hash b/bsp/buildroot/package/dtach/dtach.hash index c9b7a4c5..c643264f 100644 --- a/bsp/buildroot/package/dtach/dtach.hash +++ b/bsp/buildroot/package/dtach/dtach.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 16614ebddf8ab2811d3dc0e7f329c7de88929ac6a9632d4cb4aef7fe11b8f2a9 dtach-0.8.tar.gz +sha256 5f7e8c835ee49a9e6dcf89f4e8ccbe724b061c0fc8565b504dd8b3e67ab79f82 dtach-v0.9.tar.gz diff --git a/bsp/buildroot/package/dtach/dtach.mk b/bsp/buildroot/package/dtach/dtach.mk index 5f5a9032..75c44347 100644 --- a/bsp/buildroot/package/dtach/dtach.mk +++ b/bsp/buildroot/package/dtach/dtach.mk @@ -4,8 +4,8 @@ # ################################################################################ -DTACH_VERSION = 0.8 -DTACH_SITE = http://downloads.sourceforge.net/project/dtach/dtach/$(DTACH_VERSION) +DTACH_VERSION = v0.9 +DTACH_SITE = $(call github,crigler,dtach,$(DTACH_VERSION)) DTACH_LICENSE = GPLv2+ DTACH_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/dtc/dtc.mk b/bsp/buildroot/package/dtc/dtc.mk index f3b6f3b5..8fdcdbed 100644 --- a/bsp/buildroot/package/dtc/dtc.mk +++ b/bsp/buildroot/package/dtc/dtc.mk @@ -11,6 +11,7 @@ DTC_LICENSE = GPLv2+/BSD-2c DTC_LICENSE_FILES = README.license GPL DTC_INSTALL_STAGING = YES DTC_DEPENDENCIES = host-bison host-flex +HOST_DTC_DEPENDENCIES = host-bison host-flex define DTC_POST_INSTALL_TARGET_RM_DTDIFF rm -f $(TARGET_DIR)/usr/bin/dtdiff diff --git a/bsp/buildroot/package/dtv-scan-tables/dtv-scan-tables.mk b/bsp/buildroot/package/dtv-scan-tables/dtv-scan-tables.mk index ab6a36c6..0081369a 100644 --- a/bsp/buildroot/package/dtv-scan-tables/dtv-scan-tables.mk +++ b/bsp/buildroot/package/dtv-scan-tables/dtv-scan-tables.mk @@ -4,7 +4,7 @@ # ################################################################################ -DTV_SCAN_TABLES_VERSION = 6da0f5e851dd5e51e43b87136228a88705a7ba69 +DTV_SCAN_TABLES_VERSION = 0c92e5e5d3590da60acb4bcc92c19f041dc7e481 DTV_SCAN_TABLES_SITE = http://git.linuxtv.org/cgit.cgi/dtv-scan-tables.git DTV_SCAN_TABLES_SITE_METHOD = git diff --git a/bsp/buildroot/package/duma/0003-fix-C++14.patch b/bsp/buildroot/package/duma/0003-fix-C++14.patch new file mode 100644 index 00000000..d19213ca --- /dev/null +++ b/bsp/buildroot/package/duma/0003-fix-C++14.patch @@ -0,0 +1,65 @@ +dumapp: fix for C++14 + +With C++14, the way exceptions are specified has changed (somehow, don't +ask me), thus causing build failures: + + dumapp.cpp: In function ‘void* operator new(std::size_t)’: + dumapp.cpp:192:19: error: declaration of ‘void* operator new(std::size_t) throw (std::bad_alloc)’ has a different exception specifier + void * DUMA_CDECL operator new( DUMA_SIZE_T size ) + ^~~~~~~~ + In file included from dumapp.cpp:39:0: + dumapp.h:91:23: note: from previous declaration ‘void* operator new(std::size_t)’ + void * DUMA_CDECL operator new(DUMA_SIZE_T) throw(std::bad_alloc); + ^~~~~~~~ + +This is most evident with gcc-6.x, since the default C++ standard has +changed from C++11 to C++14, thus exposing these new failures. + +Fix that by guarding the exception handling, a bit like was done +with GRASS GIS (thanks DuckDuckGo): + + https://trac.osgeo.org/grass/changeset?old_path=%2F&old=68817&new_path=%2F&new=68818&sfp_email=&sfph_mail= + +Signed-off-by: "Yann E. MORIN" + +--- +Note: The last commit in DUMA's CVS repo was more than 7 years ago. +I doubt it is still active, so the patch was not sent upstream. :-/ + +diff -durN duma-2.5.15.orig/dumapp.cpp duma-2.5.15/dumapp.cpp +--- duma-2.5.15.orig/dumapp.cpp 2008-08-03 22:46:06.000000000 +0200 ++++ duma-2.5.15/dumapp.cpp 2016-07-10 21:55:22.670386099 +0200 +@@ -190,7 +190,9 @@ + * (11) = (a) ; ASW + */ + void * DUMA_CDECL operator new( DUMA_SIZE_T size ) ++#ifdef DUMA_EXCEPTION_SPECS + throw(std::bad_alloc) ++#endif + { + return duma_new_operator(size, EFA_NEW_ELEM, true DUMA_PARAMS_UK); + } +@@ -254,7 +256,9 @@ + * (21) = (a) ; AAW + */ + void * DUMA_CDECL operator new[]( DUMA_SIZE_T size ) ++#ifdef DUMA_EXCEPTION_SPECS + throw(std::bad_alloc) ++#endif + { + return duma_new_operator(size, EFA_NEW_ARRAY, true DUMA_PARAMS_UK); + } +diff -durN duma-2.5.15.orig/dumapp.h duma-2.5.15/dumapp.h +--- duma-2.5.15.orig/dumapp.h 2009-04-11 14:41:44.000000000 +0200 ++++ duma-2.5.15/dumapp.h 2016-07-10 21:55:22.670386099 +0200 +@@ -35,6 +35,10 @@ + + #include "duma.h" + ++#if __cplusplus < 201103L ++ #define DUMA_EXCEPTION_SPECS 1 ++#endif ++ + /* remove previous macro definitions */ + #include "noduma.h" + diff --git a/bsp/buildroot/package/dvblast/Config.in b/bsp/buildroot/package/dvblast/Config.in index 1ea8f934..b7f0c065 100644 --- a/bsp/buildroot/package/dvblast/Config.in +++ b/bsp/buildroot/package/dvblast/Config.in @@ -4,13 +4,13 @@ config BR2_PACKAGE_DVBLAST select BR2_PACKAGE_LIBEV select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE depends on !BR2_bfin # libev - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # clock_nanosleep() help DVBlast is a simple and powerful MPEG-2/TS demux and streaming application. http://www.videolan.org/projects/dvblast.html -comment 'dvblast needs a toolchain w/ threads' +comment "dvblast needs a toolchain w/ NPTL" depends on !BR2_bfin # libev - depends on !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL diff --git a/bsp/buildroot/package/dvdauthor/Config.in b/bsp/buildroot/package/dvdauthor/Config.in index 6f8e2e43..8b2bcb3d 100644 --- a/bsp/buildroot/package/dvdauthor/Config.in +++ b/bsp/buildroot/package/dvdauthor/Config.in @@ -17,13 +17,8 @@ if BR2_PACKAGE_DVDAUTHOR config BR2_PACKAGE_DVDAUTHOR_DVDUNAUTHOR bool "dvdunauthor" select BR2_PACKAGE_LIBDVDREAD - depends on !BR2_STATIC_LIBS # libdvdread help This option enables the dvdunauthor program, which requires libdvdread. -comment "dvdunauthor needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - endif - diff --git a/bsp/buildroot/package/dvdauthor/dvdauthor.mk b/bsp/buildroot/package/dvdauthor/dvdauthor.mk index 6b90c43c..e982a40e 100644 --- a/bsp/buildroot/package/dvdauthor/dvdauthor.mk +++ b/bsp/buildroot/package/dvdauthor/dvdauthor.mk @@ -40,6 +40,10 @@ endif ifeq ($(BR2_PACKAGE_DVDAUTHOR_DVDUNAUTHOR),y) DVDAUTHOR_DEPENDENCIES += libdvdread +# dvdauthor configure does not use pkg-config to detect libdvdread +ifeq ($(BR2_PACKAGE_LIBDVDCSS)$(BR2_STATIC_LIBS),yy) +DVDAUTHOR_CONF_ENV += LIBS="-ldvdcss" +endif DVDAUTHOR_CONF_OPTS += --enable-dvdunauthor else DVDAUTHOR_CONF_OPTS += --disable-dvdunauthor diff --git a/bsp/buildroot/package/dvdrw-tools/Config.in b/bsp/buildroot/package/dvdrw-tools/Config.in index c9dd3dd1..d4d6bd2c 100644 --- a/bsp/buildroot/package/dvdrw-tools/Config.in +++ b/bsp/buildroot/package/dvdrw-tools/Config.in @@ -39,14 +39,10 @@ choice config BR2_PACKAGE_DVDRW_TOOLS_CDRKIT_BACKEND bool "cdrkit" - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # cdrkit select BR2_PACKAGE_CDRKIT help Symlink mkisofs to genisoimage from the cdrkit package. -comment "cdrkit needs a toolchain w/ headers >= 3.0" - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 - config BR2_PACKAGE_DVDRW_TOOLS_XORRISO_BACKEND bool "xorriso" select BR2_PACKAGE_XORRISO diff --git a/bsp/buildroot/package/e2fsprogs/0002-fuse2fs-might-need-librt.patch b/bsp/buildroot/package/e2fsprogs/0002-fuse2fs-might-need-librt.patch new file mode 100644 index 00000000..fef3d20c --- /dev/null +++ b/bsp/buildroot/package/e2fsprogs/0002-fuse2fs-might-need-librt.patch @@ -0,0 +1,63 @@ +From 14d9e94315cd8144ac72d368c45e70869a66799c Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Thu, 9 Jun 2016 07:47:03 -0300 +Subject: [PATCH] fuse2fs: might need librt + +It uses clock_gettime() which in older glibc versions is in librt. + +Signed-off-by: Gustavo Zacarias +[yann.morin.1998@free.fr: properly expand it in the Makefile] +Signed-off-by: "Yann E. MORIN" +--- +Patch status: sent to linux-ext4 ML + + configure.ac | 5 +++++ + misc/Makefile.in | 3 ++- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 67d7231..a387dfd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1162,6 +1162,11 @@ if test "$ac_cv_func_dlopen" = yes ; then + fi + AC_SUBST(MAGIC_LIB) + dnl ++dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) ++dnl ++AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) ++AC_SUBST(CLOCK_GETTIME_LIB) ++dnl + dnl Check to see if the FUSE library is -lfuse or -losxfuse + dnl + FUSE_CMT= +diff --git a/misc/Makefile.in b/misc/Makefile.in +index 43e3c7e..070a6e3 100644 +--- a/misc/Makefile.in ++++ b/misc/Makefile.in +@@ -387,7 +387,8 @@ fuse2fs: $(FUSE2FS_OBJS) $(DEPLIBS) $(DEPLIBBLKID) $(DEPLIBUUID) \ + $(LIBEXT2FS) + $(E) " LD $@" + $(Q) $(CC) $(ALL_LDFLAGS) -o fuse2fs $(FUSE2FS_OBJS) $(LIBS) \ +- $(LIBFUSE) $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL) ++ $(LIBFUSE) $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL) \ ++ $(CLOCK_GETTIME_LIB) + + journal.o: $(srcdir)/../debugfs/journal.c + $(E) " CC $@" +diff --git a/misc/Makefile.in b/misc/Makefile.in +index 43e3c7e..070a6e3 100644 +--- a/misc/Makefile.in ++++ b/misc/Makefile.in +@@ -32,6 +32,8 @@ + + @FUSE_CMT@FUSE_PROG= fuse2fs + ++CLOCK_GETTIME_LIB = @CLOCK_GETTIME_LIB@ ++ + SPROGS= mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \ + $(E2IMAGE_PROG) @FSCK_PROG@ e2undo + USPROGS= mklost+found filefrag e2freefrag $(UUIDD_PROG) \ +-- +2.7.3 + diff --git a/bsp/buildroot/package/e2fsprogs/0003-fuse2fs-needs-SYSLIBS.patch b/bsp/buildroot/package/e2fsprogs/0003-fuse2fs-needs-SYSLIBS.patch new file mode 100644 index 00000000..61c69652 --- /dev/null +++ b/bsp/buildroot/package/e2fsprogs/0003-fuse2fs-needs-SYSLIBS.patch @@ -0,0 +1,30 @@ +From ff6147dd7197519e561e796d56545c4e11eb43fa Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Wed, 22 Jun 2016 20:55:35 -0300 +Subject: [PATCH e2fsprogs] fuse2fs: needs SYSLIBS + +It otherwise leads to build failure when using an unbundled libintl. + +Signed-off-by: Gustavo Zacarias +--- +Status: sent to ML http://marc.info/?l=linux-ext4&m=146664003825136&w=2 + + misc/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/misc/Makefile.in b/misc/Makefile.in +index f67c9c7..e487692 100644 +--- a/misc/Makefile.in ++++ b/misc/Makefile.in +@@ -389,7 +389,7 @@ fuse2fs: $(FUSE2FS_OBJS) $(DEPLIBS) $(DEPLIBBLKID) $(DEPLIBUUID) \ + $(E) " LD $@" + $(Q) $(CC) $(ALL_LDFLAGS) -o fuse2fs $(FUSE2FS_OBJS) $(LIBS) \ + $(LIBFUSE) $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL) \ +- $(CLOCK_GETTIME_LIB) ++ $(CLOCK_GETTIME_LIB) $(SYSLIBS) + + journal.o: $(srcdir)/../debugfs/journal.c + $(E) " CC $@" +-- +2.7.3 + diff --git a/bsp/buildroot/package/e2fsprogs/Config.in b/bsp/buildroot/package/e2fsprogs/Config.in index e540337d..4db11e1f 100644 --- a/bsp/buildroot/package/e2fsprogs/Config.in +++ b/bsp/buildroot/package/e2fsprogs/Config.in @@ -51,7 +51,7 @@ config BR2_PACKAGE_E2FSPROGS_E4DEFRAG depends on !BR2_nios2 # fallocate not implemented depends on !BR2_TOOLCHAIN_USES_UCLIBC # sync_file_range not impl -comment "e4defrag needs an (e)glibc or musl toolchain" +comment "e4defrag needs a glibc or musl toolchain" depends on BR2_TOOLCHAIN_USES_UCLIBC config BR2_PACKAGE_E2FSPROGS_FILEFRAG @@ -62,6 +62,15 @@ config BR2_PACKAGE_E2FSPROGS_FSCK bool "fsck" default y +config BR2_PACKAGE_E2FSPROGS_FUSE2FS + bool "fuse2fs" + depends on !BR2_STATIC_LIBS # libfuse + depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse + select BR2_PACKAGE_LIBFUSE + +comment "fuse2fs needs a toolchain w/ threads, dynamic library" + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + config BR2_PACKAGE_E2FSPROGS_LOGSAVE bool "logsave" default y diff --git a/bsp/buildroot/package/e2fsprogs/e2fsprogs.hash b/bsp/buildroot/package/e2fsprogs/e2fsprogs.hash index 15850377..ec755730 100644 --- a/bsp/buildroot/package/e2fsprogs/e2fsprogs.hash +++ b/bsp/buildroot/package/e2fsprogs/e2fsprogs.hash @@ -1,2 +1,2 @@ -# From https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.13/sha256sums.asc -sha256 e16474b5a3a30f9197160c4b91bd48d5a463583049c0fcc405b6f0f7075aa0c7 e2fsprogs-1.42.13.tar.xz +# From https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.43.1/sha256sums.asc +sha256 97e36a029224e2606baa6e9ea693b04a4d192ccd714572a1b50a2df9c687b23d e2fsprogs-1.43.1.tar.xz diff --git a/bsp/buildroot/package/e2fsprogs/e2fsprogs.mk b/bsp/buildroot/package/e2fsprogs/e2fsprogs.mk index 3de4cd48..7aa02853 100644 --- a/bsp/buildroot/package/e2fsprogs/e2fsprogs.mk +++ b/bsp/buildroot/package/e2fsprogs/e2fsprogs.mk @@ -4,17 +4,27 @@ # ################################################################################ -E2FSPROGS_VERSION = 1.42.13 +E2FSPROGS_VERSION = 1.43.1 E2FSPROGS_SOURCE = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz E2FSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION) E2FSPROGS_LICENSE = GPLv2, libuuid BSD-3c, libss and libet MIT-like with advertising clause -E2FSPROGS_LICENSE_FILES = COPYING lib/uuid/COPYING lib/ss/mit-sipb-copyright.h lib/et/internal.h +E2FSPROGS_LICENSE_FILES = NOTICE lib/uuid/COPYING lib/ss/mit-sipb-copyright.h lib/et/internal.h E2FSPROGS_INSTALL_STAGING = YES E2FSPROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-libs +E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux +# we don't have a host-util-linux +HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf + +# For 0002-fuse2fs-might-need-librt.patch +# host-gettext for the gettext macro file needed at autoreconf time +E2FSPROGS_AUTORECONF = YES +E2FSPROGS_DEPENDENCIES += host-gettext +HOST_E2FSPROGS_DEPENDENCIES += host-gettext # e4defrag doesn't build on older systems like RHEL5.x, and we don't # need it on the host anyway. -HOST_E2FSPROGS_CONF_OPTS += --disable-defrag +# Disable fuse2fs as well to avoid carrying over deps, and it's unused +HOST_E2FSPROGS_CONF_OPTS += --disable-defrag --disable-fuse2fs E2FSPROGS_CONF_OPTS = \ $(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \ @@ -30,26 +40,35 @@ E2FSPROGS_CONF_OPTS = \ --disable-testio-debug \ --disable-rpath +ifeq ($(BR2_PACKAGE_E2FSPROGS_FUSE2FS),y) +E2FSPROGS_CONF_OPTS += --enable-fuse2fs +E2FSPROGS_DEPENDENCIES += libfuse +else +E2FSPROGS_CONF_OPTS += --disable-fuse2fs +endif + ifeq ($(BR2_nios2),y) E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no endif +# Some programs are built for the host, but use definitions guessed by +# the configure script (i.e with the cross-compiler). Help them by +# saying that is available on the host, which is needed +# for util/subst.c to build properly. +E2FSPROGS_CONF_ENV += BUILD_CFLAGS="-DHAVE_SYS_STAT_H" + ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y) # util-linux libuuid pulls in libintl if needed, so ensure we also # link against it, otherwise static linking fails E2FSPROGS_CONF_ENV += LIBS=-lintl endif -E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux - E2FSPROGS_MAKE_OPTS = \ LDCONFIG=true define HOST_E2FSPROGS_INSTALL_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) install install-libs endef -# we don't have a host-util-linux -HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf # binaries to keep or remove E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_BADBLOCKS) += usr/sbin/badblocks @@ -136,14 +155,5 @@ ifeq ($(BR2_PACKAGE_E2FSPROGS_TUNE2FS),y) E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_TUNE2FS_SYMLINK endif -# systemd really wants to have fsck in /sbin -define E2FSPROGS_TARGET_FSCK_SYMLINK - ln -sf ../usr/sbin/fsck $(TARGET_DIR)/sbin/fsck -endef - -ifeq ($(BR2_PACKAGE_E2FSPROGS_FSCK),y) -E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_FSCK_SYMLINK -endif - $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/e2tools/e2tools.hash b/bsp/buildroot/package/e2tools/e2tools.hash new file mode 100644 index 00000000..4cec81e9 --- /dev/null +++ b/bsp/buildroot/package/e2tools/e2tools.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 37bbd705170dff80720d68916f8d90803d71987e1b60f7149a285a7fcd539214 e2tools-3158ef18a903ca4a98b8fa220c9fc5c133d8bdf6.tar.gz diff --git a/bsp/buildroot/package/e2tools/e2tools.mk b/bsp/buildroot/package/e2tools/e2tools.mk index 789519fe..1f3bb5cf 100644 --- a/bsp/buildroot/package/e2tools/e2tools.mk +++ b/bsp/buildroot/package/e2tools/e2tools.mk @@ -13,6 +13,7 @@ E2TOOLS_LICENSE = GPLv2 E2TOOLS_LICENSE_FILES = COPYING E2TOOLS_DEPENDENCIES = e2fsprogs E2TOOLS_CONF_ENV = LIBS="-lpthread" +HOST_E2TOOLS_DEPENDENCIES = host-e2fsprogs HOST_E2TOOLS_CONF_ENV = LIBS="-lpthread" $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/efibootmgr/Config.in b/bsp/buildroot/package/efibootmgr/Config.in new file mode 100644 index 00000000..2c5c07f2 --- /dev/null +++ b/bsp/buildroot/package/efibootmgr/Config.in @@ -0,0 +1,22 @@ +config BR2_PACKAGE_EFIBOOTMGR + bool "efibootmgr" + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # efivar + depends on BR2_TOOLCHAIN_USES_GLIBC # efivar + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # efivar + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \ + !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # efivar + select BR2_PACKAGE_EFIVAR + help + A Linux user-space application to modify the Intel Extensible + Firmware Interface (EFI) Boot Manager. This application can create + and destroy boot entries, change the boot order, change the next + running boot option, and more. + + https://github.com/rhinstaller/efibootmgr + +comment "efibootmgr requires a glibc toolchain w/ headers >= 3.12, gcc >= 4.7" + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \ + !BR2_TOOLCHAIN_USES_GLIBC || \\ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \ + !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/efibootmgr/efibootmgr.hash b/bsp/buildroot/package/efibootmgr/efibootmgr.hash new file mode 100644 index 00000000..a789942b --- /dev/null +++ b/bsp/buildroot/package/efibootmgr/efibootmgr.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 b180d7d6b377d24b0872869f2571e2700b618e4d7ebdc2133134a918efe2623b efibootmgr-efibootmgr-0.12.tar.gz diff --git a/bsp/buildroot/package/efibootmgr/efibootmgr.mk b/bsp/buildroot/package/efibootmgr/efibootmgr.mk new file mode 100644 index 00000000..a0c5646c --- /dev/null +++ b/bsp/buildroot/package/efibootmgr/efibootmgr.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# efibootmgr +# +################################################################################ + +EFIBOOTMGR_VERSION = efibootmgr-0.12 +EFIBOOTMGR_SITE = $(call github,rhinstaller,efibootmgr,$(EFIBOOTMGR_VERSION)) +EFIBOOTMGR_LICENSE = GPLv2+ +EFIBOOTMGR_LICENSE_FILES = COPYING +EFIBOOTMGR_DEPENDENCIES = efivar + +define EFIBOOTMSR_PATCH_HEADER_PATH + $(SED) 's,-I/,-I$(STAGING_DIR)/,' $(@D)/Makefile +endef + +EFIBOOTMGR_POST_PATCH_HOOKS += EFIBOOTMSR_PATCH_HEADER_PATH + +define EFIBOOTMGR_BUILD_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) +endef + +define EFIBOOTMGR_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/src/efibootmgr/efibootmgr \ + $(TARGET_DIR)/usr/bin/efibootmgr +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/efivar/0001-Workaround-rename-of-linux-nvme.h.patch b/bsp/buildroot/package/efivar/0001-Workaround-rename-of-linux-nvme.h.patch new file mode 100644 index 00000000..c12a2d9e --- /dev/null +++ b/bsp/buildroot/package/efivar/0001-Workaround-rename-of-linux-nvme.h.patch @@ -0,0 +1,32 @@ +From 75a73111371526a12712bb7211da2116c0bf40f7 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Thu, 14 Jan 2016 17:02:31 -0500 +Subject: [PATCH] Workaround rename of linux/nvme.h + +Bug: https://bugs.gentoo.org/571548 + +Signed-off-by: Erico Nunes +--- + src/linux.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/linux.c b/src/linux.c +index b618cfd..9388cd3 100644 +--- a/src/linux.c ++++ b/src/linux.c +@@ -22,7 +22,12 @@ + #include + #include + #include ++#include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0) ++#include ++#else + #include ++#endif + #include + #include + #include +-- +2.7.4 + diff --git a/bsp/buildroot/package/efivar/0002-Make.rules-fix-build-with-make-3.81.patch b/bsp/buildroot/package/efivar/0002-Make.rules-fix-build-with-make-3.81.patch new file mode 100644 index 00000000..e4e5a2cc --- /dev/null +++ b/bsp/buildroot/package/efivar/0002-Make.rules-fix-build-with-make-3.81.patch @@ -0,0 +1,45 @@ +From 00376f4dec71d4abb591ba07bc8164ba29e5955e Mon Sep 17 00:00:00 2001 +From: Erico Nunes +Date: Tue, 22 Mar 2016 21:43:44 -0300 +Subject: [PATCH] Make.rules: fix build with make <= 3.81 + +Building with host make 3.81 resulted in an issue where src/efivar.pc +was never generated. +Even by running 'make efivar.pc' inside the src directory, make always +returned that there was nothing to do. +This was not observed when using make 3.82 or 4.x. +It is apparently caused by the assignment operators in the multi-line +defines in Make.rules, which do not seem to be supported by make 3.81. +By omitting the assignment operators, the rule works with both versions +of make. + +Signed-off-by: Erico Nunes +--- + Make.rules | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Make.rules b/Make.rules +index 8a50fa5..d9c0609 100644 +--- a/Make.rules ++++ b/Make.rules +@@ -42,7 +42,7 @@ include $(TOPDIR)/Make.version + + %.c : %.h + +-define substitute-version = ++define substitute-version + sed \ + -e "s,@@VERSION@@,$(VERSION),g" \ + -e "s,@@LIBDIR@@,$(libdir),g" \ +@@ -61,7 +61,7 @@ pkg-config-ldflags = \ + pkg-config-ldlibs = \ + $(shell if [ -n "$(PKGS)" ]; then $(PKG_CONFIG) --libs-only-l $(PKGS) ; fi) + +-define deps-of = ++define deps-of + $(foreach src,$(filter %.c,$(1)),$(patsubst %.c,.%.d,$(src))) \ + $(foreach src,$(filter %.S,$(1)),$(patsubst %.S,.%.d,$(src))) + endef +-- +2.7.4 + diff --git a/bsp/buildroot/package/efivar/Config.in b/bsp/buildroot/package/efivar/Config.in new file mode 100644 index 00000000..d5951079 --- /dev/null +++ b/bsp/buildroot/package/efivar/Config.in @@ -0,0 +1,27 @@ +config BR2_PACKAGE_EFIVAR + bool "efivar" + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # linux/nvme.h + # linux/nvme.h has been renamed to linux/nvme_ioctl.h since 4.4, + # and we have a patch to handle that situation. However, some + # Sourcery CodeBench toolchains use 4.4 kernel headers but they + # don't have that header file renamed, and that is causing build + # failures. So, prevent this package to be built using those + # toolchains. + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \ + !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII + # doesn't build with uclibc due to lack of uchar.h + # doesn't build with musl due to lack of __bswap_constant_16 + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 + select BR2_PACKAGE_POPT + help + Tools and libraries to manipulate EFI variables + + https://github.com/rhinstaller/efivar + +comment "efivar requires a glibc toolchain w/ headers >= 3.12, gcc >= 4.7" + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \ + !BR2_TOOLCHAIN_USES_GLIBC || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \ + !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/efivar/efivar.hash b/bsp/buildroot/package/efivar/efivar.hash new file mode 100644 index 00000000..66192292 --- /dev/null +++ b/bsp/buildroot/package/efivar/efivar.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 f807f5f0846323bc21b18043542b296f5ad81514f91f13c74a4b8da30c965c94 efivar-0.23.tar.gz diff --git a/bsp/buildroot/package/efivar/efivar.mk b/bsp/buildroot/package/efivar/efivar.mk new file mode 100644 index 00000000..cb5f7b65 --- /dev/null +++ b/bsp/buildroot/package/efivar/efivar.mk @@ -0,0 +1,57 @@ +################################################################################ +# +# efivar +# +################################################################################ + +EFIVAR_VERSION = 0.23 +EFIVAR_SITE = $(call github,rhinstaller,efivar,$(EFIVAR_VERSION)) +EFIVAR_LICENSE = LGPLv2.1 +EFIVAR_LICENSE_FILES = COPYING +EFIVAR_DEPENDENCIES = popt +EFIVAR_INSTALL_STAGING = YES + +# BINTARGETS is set to skip efivar-static which requires static popt, +# and since we depend on glibc, we will never be built in a +# static-only environment. +# -fPIC is needed at least on MIPS, otherwise fails to build shared +# -library. +EFIVAR_MAKE_OPTS = \ + libdir=/usr/lib \ + BINTARGETS=efivar \ + LDFLAGS="$(TARGET_LDFLAGS) -fPIC" + +# Explicitly linking with shared libgcc is required on MicroBlaze and +# Nios II, otherwise it fails due to FDE encoding in static libgcc. +ifeq ($(BR2_microblaze)$(BR2_nios2),y) +EFIVAR_MAKE_OPTS += SOFLAGS="-shared -shared-libgcc" +endif + +define EFIVAR_BUILD_CMDS + # makeguids is an internal host tool and must be built separately with + # $(HOST_CC), otherwise it gets cross-built. + $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) \ + CFLAGS="$(HOST_CFLAGS) -std=gnu99" \ + $(MAKE) -C $(@D)/src gcc_cflags= makeguids + + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) \ + AR=$(TARGET_AR) NM=$(TARGET_NM) RANLIB=$(TARGET_RANLIB) \ + $(EFIVAR_MAKE_OPTS) \ + all +endef + +define EFIVAR_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) \ + $(EFIVAR_MAKE_OPTS) \ + DESTDIR="$(STAGING_DIR)" \ + install +endef + +define EFIVAR_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) \ + $(EFIVAR_MAKE_OPTS) \ + DESTDIR="$(TARGET_DIR)" \ + install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/efl/Config.in b/bsp/buildroot/package/efl/Config.in index 88e2c360..97157f8c 100644 --- a/bsp/buildroot/package/efl/Config.in +++ b/bsp/buildroot/package/efl/Config.in @@ -1,9 +1,11 @@ config BR2_PACKAGE_EFL bool "efl" + # g++ issue with 4.4.5, tested with g++ 4.7.2 + depends on BR2_HOST_GCC_AT_LEAST_4_7 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_HAS_UDEV # libudev - # https://phab.enlightenment.org/T2728 - depends on BR2_PACKAGE_LUA_5_1 # needs lua 5.1, broken with 5.2+ + depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS # luajit depends on BR2_TOOLCHAIN_HAS_THREADS # untested without threads depends on BR2_USE_MMU depends on BR2_USE_WCHAR # use wchar_t @@ -13,9 +15,12 @@ config BR2_PACKAGE_EFL select BR2_PACKAGE_JPEG # Emile needs libjpeg select BR2_PACKAGE_LIBCURL # Ecore_con_url, runtime dependency select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND + # https://phab.enlightenment.org/T2728 + select BR2_PACKAGE_LUAJIT # Lua support broken select BR2_PACKAGE_UTIL_LINUX # libblkid is part of required tools, see EFL's README. select BR2_PACKAGE_UTIL_LINUX_LIBBLKID + select BR2_PACKAGE_ZLIB help Enlightenment Foundation Libraries @@ -117,6 +122,18 @@ config BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG comment "Warning: one of the recommended option for EFL is not enabled" depends on !BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG +config BR2_PACKAGE_EFL_EOLIAN_CPP + bool "Enable Eolian C++ bindings" + depends on BR2_HOST_GCC_AT_LEAST_4_8 # Eolian (host) needs C++11 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # Eolian needs C++11 + help + Eolian is an EO object parser and code generator. + With this option enabled Eolian will handle automatic generation + of EFL bindings for the C++11 language. + +comment "Eolian needs host and target gcc >= 4.8" + depends on !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + comment "libecore video support" config BR2_PACKAGE_EFL_FB @@ -147,9 +164,12 @@ config BR2_PACKAGE_EFL_PNG This enables the loader code that loads png files using libpng. +# JP2K support require openjpeg 1.x (libopenjpeg1.pc) which is not +# available in Buildroot anymore. config BR2_PACKAGE_EFL_JP2K bool "libevas jp2k loader" select BR2_PACKAGE_OPENJPEG + depends on BROKEN # require openjpeg 1.x help This enables the loader code that loads jp2k files using openjpeg. @@ -181,11 +201,9 @@ config BR2_PACKAGE_EFL_WEBP endif # BR2_PACKAGE_EFL -comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library, threads, wchar" +comment "efl needs udev /dev management and a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar" depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP \ + || !BR2_HOST_GCC_AT_LEAST_4_7 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \ || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR - depends on BR2_USE_MMU - -comment "efl needs lua 5.1" - depends on !BR2_PACKAGE_LUA_5_1 + depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/efl/efl.hash b/bsp/buildroot/package/efl/efl.hash index 6673bb51..2ddc0056 100644 --- a/bsp/buildroot/package/efl/efl.hash +++ b/bsp/buildroot/package/efl/efl.hash @@ -1,2 +1,2 @@ -# From https://download.enlightenment.org/rel/libs/efl/efl-1.15.3.tar.xz.sha256 -sha256 3bac40e6294288034bd7f8902088bf1169cf376f6fd25b7a49854ab561630642 efl-1.15.3.tar.xz +# From https://download.enlightenment.org/rel/libs/efl/efl-1.17.2.tar.xz.sha256 +sha256 9aa93ff0ab4bdf95d5cf9606bd7efece611691ca22eb6fc3484fe6e7a92bf8b6 efl-1.17.2.tar.xz diff --git a/bsp/buildroot/package/efl/efl.mk b/bsp/buildroot/package/efl/efl.mk index 2ea25921..d404e71e 100644 --- a/bsp/buildroot/package/efl/efl.mk +++ b/bsp/buildroot/package/efl/efl.mk @@ -4,7 +4,7 @@ # ################################################################################ -EFL_VERSION = 1.15.3 +EFL_VERSION = 1.17.2 EFL_SOURCE = efl-$(EFL_VERSION).tar.xz EFL_SITE = http://download.enlightenment.org/rel/libs/efl EFL_LICENSE = BSD-2c, LGPLv2.1+, GPLv2+ @@ -19,34 +19,33 @@ EFL_LICENSE_FILES = \ EFL_INSTALL_STAGING = YES -EFL_DEPENDENCIES = host-pkgconf host-efl dbus freetype jpeg lua udev \ - util-linux zlib - -# Regenerate the autotools: -# - to fix an issue in eldbus-codegen: https://phab.enlightenment.org/T2718 -EFL_AUTORECONF = YES -EFL_GETTEXTIZE = YES +EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \ + jpeg luajit udev util-linux zlib # Configure options: -# --disable-cxx-bindings: disable C++11 bindings. +# --disable-lua-old: build elua for the target. # --disable-sdl: disable sdl2 support. -# --disable-systemd: disable systemd support. # --disable-xinput22: disable X11 XInput v2.2+ support. -# --enable-lua-old: disable Elua and remove luajit dependency. # --with-opengl=none: disable opengl support. EFL_CONF_OPTS = \ --with-edje-cc=$(HOST_DIR)/usr/bin/edje_cc \ + --with-elua=$(HOST_DIR)/usr/bin/elua \ --with-eolian-gen=$(HOST_DIR)/usr/bin/eolian_gen \ - --disable-cxx-bindings \ + --disable-lua-old \ --disable-sdl \ - --disable-systemd \ --disable-xinput22 \ - --enable-lua-old \ --with-opengl=none # Disable untested configuration warning. ifeq ($(BR2_PACKAGE_EFL_HAS_RECOMMENDED_CONFIG),) -EFL_CONF_OPTS += --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba +EFL_CONF_OPTS += --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb +endif + +ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y) +EFL_CONF_OPTS += --enable-cxx-bindings \ + --with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx +else +EFL_CONF_OPTS += --disable-cxx-bindings endif ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y) @@ -56,6 +55,13 @@ else EFL_CONF_OPTS += --disable-libmount endif +ifeq ($(BR2_PACKAGE_SYSTEMD),y) +EFL_CONF_OPTS += --enable-systemd +EFL_DEPENDENCIES += systemd +else +EFL_CONF_OPTS += --disable-systemd +endif + ifeq ($(BR2_PACKAGE_FONTCONFIG),y) EFL_CONF_OPTS += --enable-fontconfig EFL_DEPENDENCIES += fontconfig @@ -220,14 +226,15 @@ $(eval $(autotools-package)) ################################################################################ # We want to build only some host tools used later in the build. -# Actually we want: edje_cc, embryo_cc and eet. +# Actually we want: edje_cc, eet and embryo_cc. eolian_cxx is built only +# if selected for the target. # Host dependencies: # * host-dbus: for Eldbus # * host-freetype: for libevas # * host-libglib2: for libecore # * host-libjpeg, host-libpng: for libevas image loader -# * host-lua: disable luajit dependency +# * host-luajit for Elua tool for the host HOST_EFL_DEPENDENCIES = \ host-pkgconf \ host-dbus \ @@ -235,43 +242,50 @@ HOST_EFL_DEPENDENCIES = \ host-libglib2 \ host-libjpeg \ host-libpng \ - host-lua \ + host-luajit \ host-zlib # Configure options: # --disable-audio, --disable-multisense remove libsndfile dependency. -# --disable-cxx-bindings: disable C++11 bindings. # --disable-fontconfig: remove dependency on fontconfig. # --disable-fribidi: remove dependency on libfribidi. # --disable-gstreamer1: remove dependency on gtreamer 1.0. # --disable-libeeze: remove libudev dependency. # --disable-libmount: remove dependency on host-util-linux libmount. +# --disable-lua-old: build elua for the host. # --disable-physics: remove Bullet dependency. # --enable-image-loader-gif=no: disable Gif dependency. # --enable-image-loader-tiff=no: disable Tiff dependency. -# --enable-lua-old: disable Elua and remove luajit dependency. # --with-crypto=none: remove dependencies on openssl or gnutls. # --with-x11=none: remove dependency on X.org. # Yes I really know what I am doing. HOST_EFL_CONF_OPTS += \ --disable-audio \ - --disable-cxx-bindings \ --disable-fontconfig \ --disable-fribidi \ --disable-gstreamer1 \ --disable-libeeze \ --disable-libmount \ + --disable-lua-old \ --disable-multisense \ --disable-physics \ --enable-image-loader-gif=no \ --enable-image-loader-jpeg=yes \ --enable-image-loader-png=yes \ --enable-image-loader-tiff=no \ - --enable-lua-old \ --with-crypto=none \ --with-glib=yes \ --with-opengl=none \ --with-x11=none \ - --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba + --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb + +# Enable Eolian language bindings to provide eolian_cxx tool for the +# host which is required to build Eolian language bindings for the +# target. +ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y) +HOST_EFL_CONF_OPTS += --enable-cxx-bindings +else +HOST_EFL_CONF_OPTS += --disable-cxx-bindings +endif $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/ejabberd/0001-remove-deps.patch b/bsp/buildroot/package/ejabberd/0001-remove-deps.patch deleted file mode 100644 index c5700dd7..00000000 --- a/bsp/buildroot/package/ejabberd/0001-remove-deps.patch +++ /dev/null @@ -1,22 +0,0 @@ -Description: remove make targets for deps - Without this patch, dependencies would be downloaded and compiled - using rebar at build time. -Author: Philipp Huebner - -Index: ejabberd/rebar.config.script -=================================================================== -diff --git a/rebar.config.script b/rebar.config.script -index 633433c..646a15a 100644 ---- a/rebar.config.script -+++ b/rebar.config.script -@@ -187,9 +187,7 @@ Config = [{erl_opts, Macros ++ HiPE ++ DebugInfo ++ - {xref_checks, []}, - {xref_queries, - [{"(XC - UC) || (XU - X - B - " -- ++ string:join(CfgXrefs, " - ") ++ ")", []}]}, -- {post_hooks, PostHooks ++ CfgPostHooks}, -- {deps, AllDeps}] ++ ElixirConfig, -+ ++ string:join(CfgXrefs, " - ") ++ ")", []}]}], - %%io:format("ejabberd configuration:~n ~p~n", [Config]), - Config. - diff --git a/bsp/buildroot/package/ejabberd/0001-remove-make-targets-for-deps.patch b/bsp/buildroot/package/ejabberd/0001-remove-make-targets-for-deps.patch new file mode 100644 index 00000000..6917f71f --- /dev/null +++ b/bsp/buildroot/package/ejabberd/0001-remove-make-targets-for-deps.patch @@ -0,0 +1,76 @@ +From 21d1f05a8882657c151397d0e4723535402f1757 Mon Sep 17 00:00:00 2001 +From: Philipp Huebner +Date: Wed, 20 Jan 2016 10:22:57 -0500 +Subject: [PATCH] remove make targets for deps + +Without this patch, dependencies would be downloaded and compiled +using rebar at build time. + +Signed-off-by: Frank Hunleth +--- + Makefile.in | 26 +++----------------------- + 1 file changed, 3 insertions(+), 23 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 08cd837..2a6457c 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -77,26 +77,11 @@ else + INIT_USER=$(INSTALLUSER) + endif + +-all: deps src ++all: src + +-deps: deps/.got +- +-deps/.got: +- rm -rf deps/.got +- rm -rf deps/.built +- $(REBAR) get-deps && :> deps/.got +- +-deps/.built: deps/.got +- $(REBAR) compile && :> deps/.built +- +-src: deps/.built ++src: + $(REBAR) skip_deps=true compile + +-update: +- rm -rf deps/.got +- rm -rf deps/.built +- $(REBAR) update-deps && :> deps/.got +- + xref: all + $(REBAR) skip_deps=true xref + +@@ -152,16 +137,13 @@ $(foreach file,$(DEPS_FILES_FILTERED) $(MAIN_FILES),$(eval $(call COPY_template, + $(sort $(call TO_DEST,$(MAIN_DIRS) $(DEPS_DIRS))): + $(INSTALL) -d $@ + +-$(call TO_DEST,deps/p1_pam/priv/bin/epam): $(LIBDIR)/%: deps/p1_pam/priv/bin/epam $(call TO_DEST,deps/p1_pam/priv/bin/) +- $(INSTALL) -m 750 $(O_USER) $< $@ +- + $(call TO_DEST,priv/sql/lite.sql): sql/lite.sql $(call TO_DEST,priv/sql) + $(INSTALL) -m 644 $< $@ + + $(call TO_DEST,priv/bin/captcha.sh): tools/captcha.sh $(call TO_DEST,priv/bin) + $(INSTALL) -m 750 $(O_USER) $< $@ + +-copy-files-sub2: $(call TO_DEST,$(DEPS_FILES) $(MAIN_FILES) priv/bin/captcha.sh priv/sql/lite.sql) ++copy-files-sub2: $(call TO_DEST,$(MAIN_FILES) priv/bin/captcha.sh priv/sql/lite.sql) + + endif + +@@ -287,8 +269,6 @@ TAGS: + + Makefile: Makefile.in + +-deps := $(wildcard deps/*/ebin) +- + dialyzer/erlang.plt: + @mkdir -p dialyzer + @dialyzer --build_plt --output_plt dialyzer/erlang.plt \ +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/0002-disable-rebar-deps.patch b/bsp/buildroot/package/ejabberd/0002-disable-rebar-deps.patch deleted file mode 100644 index e76b8a23..00000000 --- a/bsp/buildroot/package/ejabberd/0002-disable-rebar-deps.patch +++ /dev/null @@ -1,76 +0,0 @@ -Description: remove make targets for deps - Without this patch, dependencies would be downloaded and compiled - using rebar at build time. -Author: Philipp Huebner - -Index: ejabberd/Makefile.in -=================================================================== -diff --git a/Makefile.in b/Makefile.in -index 8dd6bf5..b9d783a 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -77,26 +77,11 @@ else - INIT_USER=$(INSTALLUSER) - endif - --all: deps src -+all: src - --deps: deps/.got -- --deps/.got: -- rm -rf deps/.got -- rm -rf deps/.built -- $(REBAR) get-deps && :> deps/.got -- --deps/.built: deps/.got -- $(REBAR) compile && :> deps/.built -- --src: deps/.built -+src: - $(REBAR) skip_deps=true compile - --update: -- rm -rf deps/.got -- rm -rf deps/.built -- $(REBAR) update-deps && :> deps/.got -- - xref: all - $(REBAR) skip_deps=true xref - -@@ -129,13 +114,10 @@ endef - - $(foreach file,$(DEPS_FILES_FILTERED) $(MAIN_FILES),$(eval $(call COPY_template,$(file)))) - --$(call TO_DEST,$(MAIN_DIRS) $(DEPS_DIRS)): -+$(call TO_DEST,$(MAIN_DIRS)): - $(INSTALL) -d $@ - --$(call TO_DEST,deps/p1_pam/priv/bin/epam): $(LIBDIR)/%: deps/% $(call TO_DEST,deps/p1_pam/priv/bin/) -- $(INSTALL) -m 750 $(O_USER) $< $@ -- --copy-files: $(call TO_DEST,$(DEPS_FILES) $(MAIN_FILES)) -+copy-files: $(call TO_DEST,$(MAIN_FILES)) - - install: all copy-files - # -@@ -172,10 +154,6 @@ install: all copy-files - -e "s*@installuser@*$(INIT_USER)*" ejabberd.init.template \ - > ejabberd.init - chmod 755 ejabberd.init -- # Install Elixir and Elixir dependancies -- -$(INSTALL) -m 644 deps/*/lib/*/ebin/*.app $(BEAMDIR) -- -$(INSTALL) -m 644 deps/*/lib/*/ebin/*.beam $(BEAMDIR) -- rm -f $(BEAMDIR)/configure.beam - # - # Binary C programs - $(INSTALL) -d $(PBINDIR) -@@ -266,8 +244,6 @@ TAGS: - - Makefile: Makefile.in - --deps := $(wildcard deps/*/ebin) -- - dialyzer/erlang.plt: - @mkdir -p dialyzer - @dialyzer --build_plt --output_plt dialyzer/erlang.plt \ diff --git a/bsp/buildroot/package/ejabberd/0002-remove-dependencies-from-rebar-config.patch b/bsp/buildroot/package/ejabberd/0002-remove-dependencies-from-rebar-config.patch new file mode 100644 index 00000000..9dcea1c3 --- /dev/null +++ b/bsp/buildroot/package/ejabberd/0002-remove-dependencies-from-rebar-config.patch @@ -0,0 +1,85 @@ +From d399ecdd99e62b5554210a3b5c733e738e4d54be Mon Sep 17 00:00:00 2001 +From: Philipp Huebner +Date: Wed, 20 Jan 2016 08:08:42 -0500 +Subject: [PATCH] remove dependencies from rebar config + +Without this patch, dependencies would be downloaded and compiled +by rebar at build time. + +Signed-off-by: Frank Hunleth +--- + rebar.config | 51 --------------------------------------------------- + 1 file changed, 51 deletions(-) + +diff --git a/rebar.config b/rebar.config +index 30c0360..d6a5b4d 100644 +--- a/rebar.config ++++ b/rebar.config +@@ -7,48 +7,6 @@ + %%% Created : 1 May 2013 by Evgeniy Khramtsov + %%%------------------------------------------------------------------- + +-{deps, [{if_var_true, lager, {lager, ".*", {git, "https://github.com/basho/lager", {tag, "3.0.2"}}}}, +- {if_var_false, lager, {p1_logger, ".*", {git, "https://github.com/processone/p1_logger", {tag, "1.0.0"}}}}, +- {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.2"}}}, +- {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.1"}}}, +- {p1_tls, ".*", {git, "https://github.com/processone/tls", {tag, "1.0.0"}}}, +- {p1_stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.0"}}}, +- {p1_xml, ".*", {git, "https://github.com/processone/xml", {tag, "1.1.1"}}}, +- {p1_stun, ".*", {git, "https://github.com/processone/stun", "0.9.0"}}, +- {esip, ".*", {git, "https://github.com/processone/p1_sip", "1.0.0"}}, +- {p1_yaml, ".*", {git, "https://github.com/processone/p1_yaml", {tag, "1.0.0"}}}, +- {jiffy, ".*", {git, "https://github.com/davisp/jiffy", {tag, "0.14.5"}}}, +- {oauth2, ".*", {git, "https://github.com/kivra/oauth2", "8d129fbf8866930b4ffa6dd84e65bd2b32b9acb8"}}, +- {xmlrpc, ".*", {git, "https://github.com/rds13/xmlrpc", {tag, "1.15"}}}, +- {if_var_true, mysql, {p1_mysql, ".*", {git, "https://github.com/processone/mysql", {tag, "1.0.0"}}}}, +- {if_var_true, pgsql, {p1_pgsql, ".*", {git, "https://github.com/processone/pgsql", {tag, "1.0.0"}}}}, +- {if_var_true, sqlite, {sqlite3, ".*", {git, "https://github.com/alexeyr/erlang-sqlite3", "cbc3505f7a131254265d3ef56191b2581b8cc172"}}}, +- {if_var_true, pam, {p1_pam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.0"}}}}, +- {if_var_true, zlib, {p1_zlib, ".*", {git, "https://github.com/processone/zlib", {tag, "1.0.0"}}}}, +- {if_var_true, riak, {hamcrest, ".*", {git, "https://github.com/hyperthunk/hamcrest-erlang", "908a24fda4a46776a5135db60ca071e3d783f9f6"}}}, % for riak_pb-2.1.0.7 +- {if_var_true, riak, {riakc, ".*", {git, "https://github.com/basho/riak-erlang-client", "527722d12d0433b837cdb92a60900c2cb5df8942"}}}, +- {if_var_true, elixir, {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.1.0"}}}}, +- {if_var_true, elixir, {rebar_elixir_plugin, ".*", {git, "https://github.com/processone/rebar_elixir_plugin", "0.1.0"}}}, +- {if_var_true, iconv, {p1_iconv, ".*", {git, "https://github.com/processone/eiconv", {tag, "0.9.0"}}}}, +- {if_var_true, tools, {meck, "0.8.2", {git, "https://github.com/eproxus/meck", {tag, "0.8.2"}}}}, +- {if_var_true, redis, {eredis, ".*", {git, "https://github.com/wooga/eredis", {tag, "v1.0.8"}}}}]}. +- +-{if_var_true, latest_deps, +- {floating_deps, [p1_logger, +- cache_tab, +- p1_tls, +- p1_stringprep, +- p1_xml, +- esip, +- p1_stun, +- p1_yaml, +- p1_utils, +- p1_mysql, +- p1_pgsql, +- p1_pam, +- p1_zlib, +- p1_iconv]}}. +- + {erl_opts, [nowarn_deprecated_function, + {if_var_true, roster_gateway_workaround, {d, 'ROSTER_GATWAY_WORKAROUND'}}, + {if_var_match, db_type, mssql, {d, 'mssql'}}, +@@ -92,15 +50,6 @@ + + {eunit_compile_opts, [{i, "tools"}]}. + +-{post_hook_configure, [{"p1_tls", []}, +- {"p1_stringprep", []}, +- {"p1_yaml", []}, +- {"esip", []}, +- {"p1_xml", [{if_var_true, full_xml, "--enable-full-xml"}]}, +- {if_var_true, pam, {"p1_pam", []}}, +- {if_var_true, zlib, {"p1_zlib", []}}, +- {if_var_true, iconv, {"p1_iconv", []}}]}. +- + {port_env, [{"CFLAGS", "-g -O2 -Wall"}]}. + + {port_specs, [{"priv/lib/jid.so", ["c_src/jid.c"]}]}. +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/0003-disable-test.patch b/bsp/buildroot/package/ejabberd/0003-disable-test.patch deleted file mode 100644 index 1b289572..00000000 --- a/bsp/buildroot/package/ejabberd/0003-disable-test.patch +++ /dev/null @@ -1,27 +0,0 @@ -Description: remove testing with MySQL and PostgreSQL - Without this patch a test would be initiated after building ejabberd that - requires specially configured instances of MySQL and PostgreSQL to be up - and running. -Author: Philipp Huebner - -Index: ejabberd/Makefile.in -=================================================================== -diff --git a/Makefile.in b/Makefile.in -index ffd1d30..835d611 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -306,14 +306,8 @@ dialyzer: erlang_plt deps_plt ejabberd_plt - status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi - - test: -- @echo "************************** NOTICE ***************************************" -- @cat test/README -- @echo "*************************************************************************" -- @cd priv && ln -sf ../sql -- $(REBAR) skip_deps=true ct - - quicktest: -- $(REBAR) skip_deps=true ct suites=elixir - - .PHONY: src edoc dialyzer Makefile TAGS clean clean-rel distclean rel \ - install uninstall uninstall-binary uninstall-all translations deps test spec \ diff --git a/bsp/buildroot/package/ejabberd/0003-remove-checking-erlang-version.patch b/bsp/buildroot/package/ejabberd/0003-remove-checking-erlang-version.patch new file mode 100644 index 00000000..ebcdd546 --- /dev/null +++ b/bsp/buildroot/package/ejabberd/0003-remove-checking-erlang-version.patch @@ -0,0 +1,30 @@ +From f384518dedec4ad657ad69d55754076c13c22d96 Mon Sep 17 00:00:00 2001 +From: Johan Oudinet +Date: Wed, 20 Jan 2016 08:11:32 -0500 +Subject: [PATCH] remove checking erlang version + +Without this patch, the configure will try to run erlang to simply check +if the version is supported by ejabberd. Instead, we do this test +statically. +--- + configure.ac | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 97e89a2..cd1ab08 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -39,10 +39,8 @@ AC_ARG_ENABLE(erlang-version-check, + [Check Erlang/OTP version @<:@default=yes@:>@])]) + case "$enable_erlang_version_check" in + yes|'') +- ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX]) + ;; + no) +- ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX],[warn]) + ;; + esac + +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/0004-correct-include.patch b/bsp/buildroot/package/ejabberd/0004-correct-include.patch new file mode 100644 index 00000000..fd1dee28 --- /dev/null +++ b/bsp/buildroot/package/ejabberd/0004-correct-include.patch @@ -0,0 +1,56 @@ +From 705a9ad229de49cd9cce226a2025716902455663 Mon Sep 17 00:00:00 2001 +From: Philipp Huebner +Date: Wed, 20 Jan 2016 08:13:21 -0500 +Subject: [PATCH] correct include + +This part of the code was moved into it's own project and was packaged +separately by me. To make the build process work, this small fix is +necessary. +--- + src/mod_sip.erl | 2 +- + src/mod_sip_proxy.erl | 2 +- + src/mod_sip_registrar.erl | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/mod_sip.erl b/src/mod_sip.erl +index c8c9533..7f188a0 100644 +--- a/src/mod_sip.erl ++++ b/src/mod_sip.erl +@@ -38,7 +38,7 @@ + + -include("ejabberd.hrl"). + -include("logger.hrl"). +--include_lib("esip/include/esip.hrl"). ++-include_lib("p1_sip/include/esip.hrl"). + + %%%=================================================================== + %%% API +diff --git a/src/mod_sip_proxy.erl b/src/mod_sip_proxy.erl +index bf297bc..d8b65cd 100644 +--- a/src/mod_sip_proxy.erl ++++ b/src/mod_sip_proxy.erl +@@ -40,7 +40,7 @@ + + -include("ejabberd.hrl"). + -include("logger.hrl"). +--include_lib("esip/include/esip.hrl"). ++-include_lib("p1_sip/include/esip.hrl"). + + -define(SIGN_LIFETIME, 300). %% in seconds. + +diff --git a/src/mod_sip_registrar.erl b/src/mod_sip_registrar.erl +index 44091ed..4d2ec82 100644 +--- a/src/mod_sip_registrar.erl ++++ b/src/mod_sip_registrar.erl +@@ -37,7 +37,7 @@ + + -include("ejabberd.hrl"). + -include("logger.hrl"). +--include_lib("esip/include/esip.hrl"). ++-include_lib("p1_sip/include/esip.hrl"). + + -define(CALL_TIMEOUT, timer:seconds(30)). + -define(DEFAULT_EXPIRES, 3600). +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/0004-disable-version-check.patch b/bsp/buildroot/package/ejabberd/0004-disable-version-check.patch deleted file mode 100644 index f2f1e81e..00000000 --- a/bsp/buildroot/package/ejabberd/0004-disable-version-check.patch +++ /dev/null @@ -1,20 +0,0 @@ -Description: remove checking erlang version - Without this patch, the configure will try to run erlang to simply check if - the version is supported by ejabberd. Instead, we do this test statically. -Author: Johan Oudinet - -Index: ejabberd/configure.ac -=================================================================== ---- ejabberd.orig/configure.ac 2014-10-20 11:04:14.751256865 +0200 -+++ ejabberd/configure.ac 2014-10-20 11:03:47.983578623 +0200 -@@ -37,10 +37,8 @@ AC_ARG_ENABLE(erlang-version-check, - [Check Erlang/OTP version @<:@default=yes@:>@])]) - case "$enable_erlang_version_check" in - yes|'') -- ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX]) - ;; - no) -- ERLANG_VERSION_CHECK([$REQUIRE_ERLANG_MIN],[$REQUIRE_ERLANG_MAX],[warn]) - ;; - esac - diff --git a/bsp/buildroot/package/ejabberd/0005-disable-ERLANG_DEPRECATED_CHECK.patch b/bsp/buildroot/package/ejabberd/0005-disable-ERLANG_DEPRECATED_CHECK.patch new file mode 100644 index 00000000..4b68f5ff --- /dev/null +++ b/bsp/buildroot/package/ejabberd/0005-disable-ERLANG_DEPRECATED_CHECK.patch @@ -0,0 +1,27 @@ +From d43a65b112ec995a5ee52aca2a16e5cf9699d7c1 Mon Sep 17 00:00:00 2001 +From: Johan Oudinet +Date: Wed, 20 Jan 2016 08:16:26 -0500 +Subject: [PATCH] disable ERLANG_DEPRECATED_CHECK + +Without this patch, the configure will try to execute erlang to check +if it uses deprecated types. Assume the answer is false. +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index cd1ab08..a4f1533 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -235,7 +235,7 @@ if test "$ENABLEUSER" != ""; then + AC_SUBST([INSTALLUSER], [$ENABLEUSER]) + fi + +-ERLANG_DEPRECATED_TYPES_CHECK ++AC_SUBST(erlang_deprecated_types, false) + + if test "$sqlite" = "true"; then + AX_LIB_SQLITE3([3.6.19]) +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/0005-fix-includes.patch b/bsp/buildroot/package/ejabberd/0005-fix-includes.patch deleted file mode 100644 index 27ad7615..00000000 --- a/bsp/buildroot/package/ejabberd/0005-fix-includes.patch +++ /dev/null @@ -1,45 +0,0 @@ -Description: correct include - This part of the code was moved into it's own project and was packaged - separately by me. To make the build process work, this small fix is - necessary. -Author: Philipp Huebner - -Index: ejabberd/src/mod_sip_proxy.erl -=================================================================== ---- ejabberd.orig/src/mod_sip_proxy.erl -+++ ejabberd/src/mod_sip_proxy.erl -@@ -21,7 +21,7 @@ - - -include("ejabberd.hrl"). - -include("logger.hrl"). ---include_lib("esip/include/esip.hrl"). -+-include_lib("p1_sip/include/esip.hrl"). - - -define(SIGN_LIFETIME, 300). %% in seconds. - -Index: ejabberd/src/mod_sip.erl -=================================================================== ---- ejabberd.orig/src/mod_sip.erl -+++ ejabberd/src/mod_sip.erl -@@ -20,7 +20,7 @@ - - -include("ejabberd.hrl"). - -include("logger.hrl"). ---include_lib("esip/include/esip.hrl"). -+-include_lib("p1_sip/include/esip.hrl"). - - %%%=================================================================== - %%% API -Index: ejabberd/src/mod_sip_registrar.erl -=================================================================== ---- ejabberd.orig/src/mod_sip_registrar.erl -+++ ejabberd/src/mod_sip_registrar.erl -@@ -20,7 +20,7 @@ - - -include("ejabberd.hrl"). - -include("logger.hrl"). ---include_lib("esip/include/esip.hrl"). -+-include_lib("p1_sip/include/esip.hrl"). - - -define(CALL_TIMEOUT, timer:seconds(30)). - -define(DEFAULT_EXPIRES, 3600). diff --git a/bsp/buildroot/package/ejabberd/0006-disable-erlang-deprecated-types-check.patch b/bsp/buildroot/package/ejabberd/0006-disable-erlang-deprecated-types-check.patch deleted file mode 100644 index 1b709531..00000000 --- a/bsp/buildroot/package/ejabberd/0006-disable-erlang-deprecated-types-check.patch +++ /dev/null @@ -1,20 +0,0 @@ -Description: disable ERLANG_DEPRECATED_CHECK - Without this patch, the configure will try to execute erlang to check - if it uses deprecated types. Assume the answer is false. -Author: Johan Oudinet - -Index: ejabberd/configure.ac -==================================================================== -diff --git a/configure.ac b/configure.ac -index 6ae0a24..e5498df 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -252,7 +252,7 @@ if test "$ENABLEUSER" != ""; then - AC_SUBST([INSTALLUSER], [$ENABLEUSER]) - fi - --ERLANG_DEPRECATED_TYPES_CHECK -+AC_SUBST(erlang_deprecated_types, false) - - if test "$sqlite" = "true"; then - AX_LIB_SQLITE3([3.6.19]) diff --git a/bsp/buildroot/package/ejabberd/0007-fix-install-permissions.patch b/bsp/buildroot/package/ejabberd/0006-fix-install-permissions.patch similarity index 73% rename from bsp/buildroot/package/ejabberd/0007-fix-install-permissions.patch rename to bsp/buildroot/package/ejabberd/0006-fix-install-permissions.patch index 2ad84532..4d770449 100644 --- a/bsp/buildroot/package/ejabberd/0007-fix-install-permissions.patch +++ b/bsp/buildroot/package/ejabberd/0006-fix-install-permissions.patch @@ -1,16 +1,22 @@ -Description: fix install permissions - Without this patch, the makefile will try to install directories and - files with incompatible permissions for ejabberd, which run as an - ejabberd user. -Author: Johan Oudinet +From ef847479778cc58818e066b87aa1789ba1c4148b Mon Sep 17 00:00:00 2001 +From: Johan Oudinet +Date: Wed, 20 Jan 2016 09:34:07 -0500 +Subject: [PATCH] fix install permissions + +Without this patch, the makefile will try to install directories and +files with incompatible permissions for ejabberd, which run as an +ejabberd user. + +Signed-off-by: Frank Hunleth +--- + Makefile.in | 38 +++++--------------------------------- + 1 file changed, 5 insertions(+), 33 deletions(-) -Index: ejabberd/Makefile.in -=================================================================== diff --git a/Makefile.in b/Makefile.in -index b9d783a..6ec805a 100644 +index 2a6457c..0be4c50 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -122,10 +122,8 @@ copy-files: $(call TO_DEST,$(MAIN_FILES)) +@@ -155,10 +155,8 @@ copy-files-sub: copy-files-sub2 install: all copy-files # # Configuration files @@ -23,7 +29,7 @@ index b9d783a..6ec805a 100644 $(SED) -e "s*{{rootdir}}*@prefix@*" \ -e "s*{{installuser}}*@INSTALLUSER@*" \ -e "s*{{bindir}}*@bindir@*" \ -@@ -135,14 +133,11 @@ install: all copy-files +@@ -168,14 +166,11 @@ install: all copy-files -e "s*{{docdir}}*@docdir@*" \ -e "s*{{erl}}*@ERL@*" ejabberdctl.template \ > ejabberdctl.example @@ -41,16 +47,10 @@ index b9d783a..6ec805a 100644 # Elixir binaries [ -d $(BINDIR) ] || $(INSTALL) -d -m 755 $(BINDIR) [ -f deps/elixir/bin/iex ] && $(INSTALL) -m 550 $(G_USER) deps/elixir/bin/iex $(BINDIR)/iex || true -@@ -157,34 +152,11 @@ install: all copy-files - # - # Binary C programs - $(INSTALL) -d $(PBINDIR) -- $(INSTALL) -m 750 $(O_USER) tools/captcha.sh $(PBINDIR) -+ $(INSTALL) tools/captcha.sh $(PBINDIR) - # - # Copy lite.sql - [ -d deps/sqlite3 ] && $(INSTALL) -d $(SQLDIR) || true - [ -d deps/sqlite3 ] && $(INSTALL) -m 644 sql/lite.sql $(SQLDIR) || true +@@ -187,29 +182,6 @@ install: all copy-files + -e "s*@installuser@*$(INIT_USER)*" ejabberd.init.template \ + > ejabberd.init + chmod 755 ejabberd.init - # - # Spool directory - $(INSTALL) -d -m 750 $(O_USER) $(SPOOLDIR) @@ -77,3 +77,6 @@ index b9d783a..6ec805a 100644 uninstall: uninstall-binary +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/0008-fix-ejabberdctl.patch b/bsp/buildroot/package/ejabberd/0007-fix-ejabberdctl.patch similarity index 56% rename from bsp/buildroot/package/ejabberd/0008-fix-ejabberdctl.patch rename to bsp/buildroot/package/ejabberd/0007-fix-ejabberdctl.patch index af0b6eea..36aa3a70 100644 --- a/bsp/buildroot/package/ejabberd/0008-fix-ejabberdctl.patch +++ b/bsp/buildroot/package/ejabberd/0007-fix-ejabberdctl.patch @@ -1,12 +1,18 @@ -Description: fix ejabberdctl - Change default values so ejabberdctl run commands as ejabberd user - Also add a way for the user to change default values. -Signed-off-by: Johan Oudinet +From 53d7d654026afa163a55b860e33c6901129e8dc1 Mon Sep 17 00:00:00 2001 +From: Johan Oudinet +Date: Wed, 20 Jan 2016 09:35:07 -0500 +Subject: [PATCH] fix ejabberdctl + +Change default values so ejabberdctl run commands as ejabberd user +Also add a way for the user to change default values. + +Signed-off-by: Johan Oudinet +--- + ejabberdctl.template | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) -Index: ejabberd/ejabberdctl.template -=================================================================== diff --git a/ejabberdctl.template b/ejabberdctl.template -index c7d76ef..a7afce1 100755 +index f65c21f..ff9225f 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -14,9 +14,12 @@ SCRIPT_DIR=`cd ${0%/*} && pwd` @@ -23,3 +29,6 @@ index c7d76ef..a7afce1 100755 # check the proper system user is used if defined if [ "$INSTALLUSER" != "" ] ; then EXEC_CMD="false" +-- +2.5.0 + diff --git a/bsp/buildroot/package/ejabberd/Config.in b/bsp/buildroot/package/ejabberd/Config.in index 7b4e99b7..5d176c3a 100644 --- a/bsp/buildroot/package/ejabberd/Config.in +++ b/bsp/buildroot/package/ejabberd/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_EJABBERD bool "ejabberd" depends on BR2_PACKAGE_ERLANG + depends on BR2_INSTALL_LIBSTDCPP # stringprep select BR2_PACKAGE_ERLANG_LAGER select BR2_PACKAGE_ERLANG_P1_CACHE_TAB select BR2_PACKAGE_ERLANG_P1_ICONV @@ -18,5 +19,5 @@ config BR2_PACKAGE_EJABBERD http://www.ejabberd.im -comment "ejabberd needs erlang" - depends on !BR2_PACKAGE_ERLANG +comment "ejabberd needs erlang, toolchain w/ C++" + depends on !BR2_PACKAGE_ERLANG || !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/ejabberd/ejabberd.hash b/bsp/buildroot/package/ejabberd/ejabberd.hash index b027183f..ea85d1cf 100644 --- a/bsp/buildroot/package/ejabberd/ejabberd.hash +++ b/bsp/buildroot/package/ejabberd/ejabberd.hash @@ -1,4 +1,4 @@ -# From https://www.process-one.net/downloads/ejabberd/15.11/ejabberd-15.11.tgz.md5 -md5 a6997b88d44c5a5acff45bb1d938d0f3 ejabberd-15.11.tgz +# From https://www.process-one.net/downloads/ejabberd/15.11/ejabberd-16.01.tgz.md5 +md5 5e525c25c8f04287217b8a9522d7c942 ejabberd-16.01.tgz # Locally computed -sha256 01044b5a25f9f8dda8c60726698bd27d650751b810e5bfa23f9bb49ba20e946a ejabberd-15.11.tgz +sha256 e2cc479d5870539b2e6756690b227969c88a541d464d1fc6e1cbf7270ad7d681 ejabberd-16.01.tgz diff --git a/bsp/buildroot/package/ejabberd/ejabberd.mk b/bsp/buildroot/package/ejabberd/ejabberd.mk index 841c9119..1140eb17 100644 --- a/bsp/buildroot/package/ejabberd/ejabberd.mk +++ b/bsp/buildroot/package/ejabberd/ejabberd.mk @@ -4,7 +4,7 @@ # ################################################################################ -EJABBERD_VERSION = 15.11 +EJABBERD_VERSION = 16.01 EJABBERD_SOURCE = ejabberd-$(EJABBERD_VERSION).tgz EJABBERD_SITE = https://www.process-one.net/downloads/ejabberd/$(EJABBERD_VERSION) EJABBERD_LICENSE = GPLv2+ with OpenSSL exception @@ -13,6 +13,7 @@ EJABBERD_DEPENDENCIES = getent openssl host-erlang-lager erlang-lager \ erlang-p1-cache-tab erlang-p1-iconv erlang-p1-sip \ erlang-p1-stringprep erlang-p1-xml erlang-p1-yaml erlang-p1-zlib +# 0001-remove-make-targets-for-deps.patch updates Makefile.in EJABBERD_USE_AUTOCONF = YES EJABBERD_AUTORECONF = YES diff --git a/bsp/buildroot/package/elementary/0001-lib-remove-.eo.h-files-from-includesub_HEADERS.patch b/bsp/buildroot/package/elementary/0001-lib-remove-.eo.h-files-from-includesub_HEADERS.patch new file mode 100644 index 00000000..75a36a22 --- /dev/null +++ b/bsp/buildroot/package/elementary/0001-lib-remove-.eo.h-files-from-includesub_HEADERS.patch @@ -0,0 +1,45 @@ +From 2f6a65718a0992d0624836ce4b1416a7420782d2 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Mon, 25 Jul 2016 22:52:41 +0200 +Subject: [PATCH] lib: remove *.eo.h files from includesub_HEADERS + +Otherwise *.eo.h files will be installed twice, so it can break a +parallel install on fast machines, whereby two make jobs may run +concurrently, trying to install the same files. + +/usr/bin/install -c -m 644 elm_sys_notify.eo.h +/usr/bin/install -c -m 644 elm_sys_notify.eo.h +usr/bin/install: cannot create regular file 'elm_sys_notify.eo.h': File exists + +Fixes: +http://autobuild.buildroot.net/results/7e9/7e9caffe442dcf40ee41da56fd3f55ffedf3a291 + +Signed-off-by: Romain Naour +--- + src/lib/Makefile.am | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am +index 40fb597..9df9424 100644 +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -351,8 +351,6 @@ elm_systray_eo.h \ + elm_systray_common.h \ + elm_systray_watcher.h \ + elm_sys_notify.h \ +-elm_sys_notify.eo.h \ +-elm_sys_notify_dbus.eo.h \ + elm_table.h \ + elm_table_eo.h \ + elm_table_legacy.h \ +@@ -381,7 +379,6 @@ elm_win_common.h \ + elm_win_eo.h \ + elm_win_legacy.h \ + elm_win_standard.h \ +-elm_win_standard.eo.h \ + elm_helper.h + includesubdir = $(includedir)/elementary-@VMAJ@/ + +-- +2.5.5 + diff --git a/bsp/buildroot/package/elementary/elementary.hash b/bsp/buildroot/package/elementary/elementary.hash index ecdbc8e5..f173752a 100644 --- a/bsp/buildroot/package/elementary/elementary.hash +++ b/bsp/buildroot/package/elementary/elementary.hash @@ -1,2 +1,2 @@ -# From https://download.enlightenment.org/rel/libs/elementary/elementary-1.15.3.tar.xz.sha256 -sha256 474a9175061021ce8cbcfdbde6162316fc0d927b21118d1ab549377ebc802a93 elementary-1.15.3.tar.xz +# From https://download.enlightenment.org/rel/libs/elementary/elementary-1.17.1.tar.xz.sha256 +sha256 85e116a453a8ac23da878670534c6292832756d2f3a33603278486f309963d91 elementary-1.17.1.tar.xz diff --git a/bsp/buildroot/package/elementary/elementary.mk b/bsp/buildroot/package/elementary/elementary.mk index 7de0c7b3..e686647a 100644 --- a/bsp/buildroot/package/elementary/elementary.mk +++ b/bsp/buildroot/package/elementary/elementary.mk @@ -4,12 +4,16 @@ # ################################################################################ -ELEMENTARY_VERSION = 1.15.3 +ELEMENTARY_VERSION = 1.17.1 ELEMENTARY_SOURCE = elementary-$(ELEMENTARY_VERSION).tar.xz ELEMENTARY_SITE = http://download.enlightenment.org/rel/libs/elementary ELEMENTARY_LICENSE = LGPLv2.1 ELEMENTARY_LICENSE_FILES = COPYING +# 0001-lib-remove-.eo.h-files-from-includesub_HEADERS.patch +ELEMENTARY_AUTORECONF = YES +ELEMENTARY_GETTEXTIZE = YES + ELEMENTARY_INSTALL_STAGING = YES ELEMENTARY_DEPENDENCIES = host-pkgconf host-efl host-elementary efl @@ -19,6 +23,7 @@ ELEMENTARY_CONF_OPTS = \ --with-eet-eet=$(HOST_DIR)/usr/bin/eet \ --with-eolian-gen=$(HOST_DIR)/usr/bin/eolian_gen \ --with-eldbus_codegen=$(HOST_DIR)/usr/bin/eldbus-codegen \ + --with-elementary-codegen=$(HOST_DIR)/usr/bin/elementary_codegen \ --with-elm-prefs-cc=$(HOST_DIR)/usr/bin/elm_prefs_cc \ --with-doxygen=no \ --disable-elementary-test @@ -33,5 +38,11 @@ HOST_ELEMENTARY_CONF_OPTS = \ --with-doxygen=no \ --disable-elementary-test +# Use Eolian C++ parser only if enabled in the efl stack. +ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y) +ELEMENTARY_CONF_OPTS += --with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx +HOST_ELEMENTARY_CONF_OPTS += --with-eolian-cxx=$(HOST_DIR)/usr/bin/eolian_cxx +endif + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/elf2flt/0001-elf2flt-fix-relocation-support-for-R_ARM_TARGET-type.patch b/bsp/buildroot/package/elf2flt/0001-elf2flt-fix-relocation-support-for-R_ARM_TARGET-type.patch new file mode 100644 index 00000000..b9615ab3 --- /dev/null +++ b/bsp/buildroot/package/elf2flt/0001-elf2flt-fix-relocation-support-for-R_ARM_TARGET-type.patch @@ -0,0 +1,34 @@ +From dedce8765d203c1c162a57e6259375e0b457173f Mon Sep 17 00:00:00 2001 +From: Greg Ungerer +Date: Fri, 19 Aug 2016 23:49:51 +1000 +Subject: [PATCH] elf2flt: fix relocation support for R_ARM_TARGET types + +R_ARM_TARGET1 (and I think R_ARM_TARGET2) relocation types should be +treated in the same way as R_ARM_ABS32. Fix them to write out the addend +to the flat binary in network byte order. + +Signed-off-by: Greg Ungerer +Tested-by: Waldemar Brodkorb + +--- + elf2flt.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/elf2flt.c b/elf2flt.c +index 5ae7dd9..3f31569 100644 +--- a/elf2flt.c ++++ b/elf2flt.c +@@ -1505,7 +1505,9 @@ DIS29_RELOCATION: + (((*p)->howto->type != R_ARM_PC24) && + ((*p)->howto->type != R_ARM_PLT32))) + tmp.c[i3] = (hl >> 24) & 0xff; +- if ((*p)->howto->type == R_ARM_ABS32) ++ if (((*p)->howto->type == R_ARM_ABS32) || ++ ((*p)->howto->type == R_ARM_TARGET1) || ++ ((*p)->howto->type == R_ARM_TARGET2)) + *(uint32_t *)r_mem = htonl(hl); + else + *(uint32_t *)r_mem = tmp.l; +-- +1.9.1 + diff --git a/bsp/buildroot/package/elf2flt/Config.in.host b/bsp/buildroot/package/elf2flt/Config.in.host index eb86b118..b93795ba 100644 --- a/bsp/buildroot/package/elf2flt/Config.in.host +++ b/bsp/buildroot/package/elf2flt/Config.in.host @@ -1,6 +1,6 @@ config BR2_PACKAGE_HOST_ELF2FLT bool "Enable elf2flt support?" - depends on BR2_arm || BR2_sh || BR2_sparc + depends on BR2_arm || BR2_sh || BR2_sparc || BR2_xtensa depends on !BR2_USE_MMU help uCLinux uses a Binary Flat format commonly known as BFLT. It diff --git a/bsp/buildroot/package/elf2flt/elf2flt.hash b/bsp/buildroot/package/elf2flt/elf2flt.hash new file mode 100644 index 00000000..9c18ba5d --- /dev/null +++ b/bsp/buildroot/package/elf2flt/elf2flt.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 6a45a787a08da64f0f3036d3ae1865bc13f8f40d13f07511a2bf1b736acc4808 elf2flt-9dbc458c6122c495bbdec8dc975a15c9d39e5ff2.tar.gz diff --git a/bsp/buildroot/package/elf2flt/elf2flt.mk b/bsp/buildroot/package/elf2flt/elf2flt.mk index bec270b5..bd15ea2a 100644 --- a/bsp/buildroot/package/elf2flt/elf2flt.mk +++ b/bsp/buildroot/package/elf2flt/elf2flt.mk @@ -4,9 +4,8 @@ # ################################################################################ -ELF2FLT_VERSION = f859213b18a67fcfc09961267e0a1122d35186f4 -ELF2FLT_SITE = http://cgit.openadk.org/cgi/cgit/elf2flt.git -ELF2FLT_SITE_METHOD = git +ELF2FLT_VERSION = 9dbc458c6122c495bbdec8dc975a15c9d39e5ff2 +ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,$(ELF2FLT_VERSION)) ELF2FLT_LICENSE = GPLv2+ ELF2FLT_LICENSE_FILES = LICENSE.TXT @@ -19,7 +18,8 @@ HOST_ELF2FLT_CONF_OPTS = \ --with-binutils-include-dir=$(HOST_BINUTILS_DIR)/include/ \ --with-libbfd=$(HOST_BINUTILS_DIR)/bfd/libbfd.a \ --with-libiberty=$(HOST_BINUTILS_DIR)/libiberty/libiberty.a \ - --target=$(GNU_TARGET_NAME) + --target=$(GNU_TARGET_NAME) \ + --disable-werror HOST_ELF2FLT_LIBS = -lz diff --git a/bsp/buildroot/package/elfutils/0001-argp-support.patch b/bsp/buildroot/package/elfutils/0001-argp-support.patch deleted file mode 100644 index 1a74b35f..00000000 --- a/bsp/buildroot/package/elfutils/0001-argp-support.patch +++ /dev/null @@ -1,93 +0,0 @@ -Allow the usage of an external implementation of the argp functions - -uClibc lack the argp family of functions that glibc has. Therefore, we -add a check in the configure script to see if argp_parse is available -in the C library. If not, we look if it is available in the additional -'argp' library. If so, we link against that library. If not, we error -out. - -This allows to build elfutils against uClibc with an external argp -library. - -Based on the former patch by Thomas Petazzoni. - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Vicente Olivert Riera - -diff -rup a/configure.ac b/configure.ac ---- a/configure.ac 2015-01-06 11:30:02.170052875 +0000 -+++ b/configure.ac 2015-01-06 11:31:10.122219826 +0000 -@@ -253,6 +253,13 @@ AC_SUBST([LIBEBL_SUBDIR]) - AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR") - AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.]) - -+AC_CHECK_FUNC([argp_parse]) -+if test "$ac_cv_func_argp_parse" != yes; then -+ AC_CHECK_LIB([argp],[argp_parse],ARGP_LIBS=-largp, -+ AC_MSG_ERROR([No argp_parse function available.])) -+fi -+AC_SUBST(ARGP_LIBS) -+ - dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am - dnl conditional and config.h USE_ZLIB/USE_BZLIB #define. - save_LIBS="$LIBS" -diff -rup a/libdw/Makefile.am b/libdw/Makefile.am ---- a/libdw/Makefile.am 2014-12-19 20:43:11.000000000 +0000 -+++ b/libdw/Makefile.am 2015-01-06 11:32:21.075438524 +0000 -@@ -112,7 +112,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l - -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \ - -Wl,--version-script,$<,--no-undefined \ - -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\ -- -ldl $(zip_LIBS) -+ -ldl $(zip_LIBS) $(ARGP_LIBS) - @$(textrel_check) - ln -fs $@ $@.$(VERSION) - -diff -rup a/src/Makefile.am b/src/Makefile.am ---- a/src/Makefile.am 2015-01-06 11:30:02.430057339 +0000 -+++ b/src/Makefile.am 2015-01-06 11:34:53.061049752 +0000 -@@ -94,27 +94,29 @@ readelf_no_Werror = yes - strings_no_Werror = yes - addr2line_no_Wformat = yes - --readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl -+readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) - nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \ -- $(demanglelib) --size_LDADD = $(libelf) $(libeu) --strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl --ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl -+ $(demanglelib) $(ARGP_LIBS) -+size_LDADD = $(libelf) $(libeu) $(ARGP_LIBS) -+strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) -+ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) - if NATIVE_LD - # -ldl is always needed for libebl. - ld_LDADD += libld_elf.a - endif - ld_LDFLAGS = -rdynamic --elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl --findtextrel_LDADD = $(libdw) $(libelf) --addr2line_LDADD = $(libdw) $(libelf) --elfcmp_LDADD = $(libebl) $(libelf) -ldl --objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) -ldl --ranlib_LDADD = libar.a $(libelf) $(libeu) --strings_LDADD = $(libelf) $(libeu) --ar_LDADD = libar.a $(libelf) $(libeu) --unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl --stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl $(demanglelib) -+elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) -+findtextrel_LDADD = $(libdw) $(libelf) $(ARGP_LIBS) -+addr2line_LDADD = $(libdw) $(libelf) $(ARGP_LIBS) -+elfcmp_LDADD = $(libebl) $(libelf) -ldl $(ARGP_LIBS) -+objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) -ldl \ -+ $(ARGP_LIBS) -+ranlib_LDADD = libar.a $(libelf) $(libeu) $(ARGP_LIBS) -+strings_LDADD = $(libelf) $(libeu) $(ARGP_LIBS) -+ar_LDADD = libar.a $(libelf) $(libeu) $(ARGP_LIBS) -+unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl $(ARGP_LIBS) -+stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl \ -+ $(demanglelib) $(ARGP_LIBS) - - ldlex.o: ldscript.c - ldlex_no_Werror = yes diff --git a/bsp/buildroot/package/elfutils/0002-disable-progs.patch b/bsp/buildroot/package/elfutils/0002-disable-progs.patch index 3e37bb82..ea6b934d 100644 --- a/bsp/buildroot/package/elfutils/0002-disable-progs.patch +++ b/bsp/buildroot/package/elfutils/0002-disable-progs.patch @@ -9,15 +9,17 @@ obstack_printf() in uClibc for example). Based on the former patch by Thomas Petazzoni. +[Vincent: tweak patch for 0.166] + Signed-off-by: Thomas Petazzoni Signed-off-by: Vicente Olivert Riera diff -rup a/configure.ac b/configure.ac ---- a/configure.ac 2015-01-06 11:31:10.122219826 +0000 -+++ b/configure.ac 2015-01-06 11:37:38.397891424 +0000 -@@ -260,6 +260,12 @@ if test "$ac_cv_func_argp_parse" != yes; - fi - AC_SUBST(ARGP_LIBS) +--- a/configure.ac 2016-03-31 09:48:08.000000000 +0100 ++++ b/configure.ac 2016-06-17 14:47:03.561704498 +0100 +@@ -253,6 +253,12 @@ AC_SUBST([LIBEBL_SUBDIR]) + AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR") + AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.]) +AC_ARG_ENABLE([progs], + AS_HELP_STRING([--enable-progs], [enable progs]), @@ -25,13 +27,13 @@ diff -rup a/configure.ac b/configure.ac + enable_progs=yes) +AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes) + - dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am - dnl conditional and config.h USE_ZLIB/USE_BZLIB #define. + dnl zlib is mandatory. save_LIBS="$LIBS" + LIBS= diff -rup a/Makefile.am b/Makefile.am ---- a/Makefile.am 2014-06-17 19:51:09.000000000 +0100 -+++ b/Makefile.am 2015-01-06 11:38:42.846999410 +0000 -@@ -22,9 +22,13 @@ ACLOCAL_AMFLAGS = -I m4 +--- a/Makefile.am 2016-01-12 12:49:19.000000000 +0000 ++++ b/Makefile.am 2016-06-17 14:48:02.585861468 +0100 +@@ -26,9 +26,13 @@ AM_MAKEFLAGS = --no-print-directory pkginclude_HEADERS = version.h diff --git a/bsp/buildroot/package/elfutils/0003-fts.patch b/bsp/buildroot/package/elfutils/0003-fts.patch index 99e87941..0131b750 100644 --- a/bsp/buildroot/package/elfutils/0003-fts.patch +++ b/bsp/buildroot/package/elfutils/0003-fts.patch @@ -24,13 +24,15 @@ already provided by the C library. Based on the former patch by Thomas Petazzoni. +[Vincent: tweak patch for 0.166] + Signed-off-by: Thomas Petazzoni Signed-off-by: Vicente Olivert Riera diff -Nrup a/configure.ac b/configure.ac ---- a/configure.ac 2015-01-06 11:37:38.397891424 +0000 -+++ b/configure.ac 2015-01-06 11:40:53.568258759 +0000 -@@ -266,6 +266,10 @@ AC_ARG_ENABLE([progs], +--- a/configure.ac 2016-06-17 14:47:03.561704498 +0100 ++++ b/configure.ac 2016-06-17 14:52:35.038200412 +0100 +@@ -259,6 +259,10 @@ AC_ARG_ENABLE([progs], enable_progs=yes) AM_CONDITIONAL(ENABLE_PROGS, test "$enable_progs" = yes) @@ -38,12 +40,12 @@ diff -Nrup a/configure.ac b/configure.ac + AC_DEFINE([HAVE_FTS_H], [], [Define if is available in C library])) +AM_CONDITIONAL(HAVE_FTS, test "$ac_cv_header_fts_h" = yes) + - dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am - dnl conditional and config.h USE_ZLIB/USE_BZLIB #define. + dnl zlib is mandatory. save_LIBS="$LIBS" + LIBS= diff -Nrup a/libdwfl/fts.c b/libdwfl/fts.c --- a/libdwfl/fts.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/libdwfl/fts.c 2015-01-06 11:42:13.481640322 +0000 ++++ b/libdwfl/fts.c 2016-06-17 14:57:26.649912084 +0100 @@ -0,0 +1,1095 @@ +/*- + * Copyright (c) 1990, 1993, 1994 @@ -1142,7 +1144,7 @@ diff -Nrup a/libdwfl/fts.c b/libdwfl/fts.c +} diff -Nrup a/libdwfl/fts_.h b/libdwfl/fts_.h --- a/libdwfl/fts_.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/libdwfl/fts_.h 2015-01-06 11:42:13.481640322 +0000 ++++ b/libdwfl/fts_.h 2016-06-17 14:58:42.003387566 +0100 @@ -0,0 +1,131 @@ +/* + * Copyright (c) 1989, 1993 @@ -1276,8 +1278,8 @@ diff -Nrup a/libdwfl/fts_.h b/libdwfl/fts_.h + +#endif /* fts.h */ diff -Nrup a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c ---- a/libdwfl/linux-kernel-modules.c 2014-11-22 22:43:52.000000000 +0000 -+++ b/libdwfl/linux-kernel-modules.c 2015-01-06 11:44:25.610924805 +0000 +--- a/libdwfl/linux-kernel-modules.c 2016-03-02 16:25:38.000000000 +0000 ++++ b/libdwfl/linux-kernel-modules.c 2016-06-17 14:59:50.267724089 +0100 @@ -29,7 +29,11 @@ /* We include this before config.h because it can't handle _FILE_OFFSET_BITS. Everything we need here is fine if its declarations just come first. */ @@ -1291,9 +1293,9 @@ diff -Nrup a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c #include diff -Nrup a/libdwfl/Makefile.am b/libdwfl/Makefile.am ---- a/libdwfl/Makefile.am 2014-06-17 19:51:09.000000000 +0100 -+++ b/libdwfl/Makefile.am 2015-01-06 11:45:25.442959369 +0000 -@@ -79,6 +79,9 @@ endif +--- a/libdwfl/Makefile.am 2016-01-12 12:49:19.000000000 +0000 ++++ b/libdwfl/Makefile.am 2016-06-17 15:01:03.492157569 +0100 +@@ -77,6 +77,9 @@ endif if LZMA libdwfl_a_SOURCES += lzma.c endif diff --git a/bsp/buildroot/package/elfutils/0005-really-make-werror-conditional-to-build-werror.patch b/bsp/buildroot/package/elfutils/0005-really-make-werror-conditional-to-build-werror.patch index 59aae5e8..aa4d12d6 100644 --- a/bsp/buildroot/package/elfutils/0005-really-make-werror-conditional-to-build-werror.patch +++ b/bsp/buildroot/package/elfutils/0005-really-make-werror-conditional-to-build-werror.patch @@ -8,17 +8,19 @@ function [-Werror=maybe-uninitialized] ^ cc1: all warnings being treated as errors +[Vincent: tweak patch for 0.166] + Signed-off-by: "Yann E. MORIN" Signed-off-by: Vicente Olivert Riera diff -rup a/config/eu.am b/config/eu.am ---- a/config/eu.am 2014-11-10 16:19:14.356031479 +0000 -+++ b/config/eu.am 2014-11-10 16:21:11.702072011 +0000 -@@ -35,7 +35,6 @@ LD_AS_NEEDED = @LD_AS_NEEDED@ - DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' - AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. - AM_CFLAGS = -std=gnu99 -Wall -Wshadow \ +--- a/config/eu.am 2016-03-02 16:25:38.000000000 +0000 ++++ b/config/eu.am 2016-06-17 15:05:08.270974835 +0100 +@@ -65,7 +65,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -W + -Wold-style-definition -Wstrict-prototypes \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ - $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \ - $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ $($(*F)_CFLAGS) diff --git a/bsp/buildroot/package/elfutils/0007-Allow-disabling-symbol-versioning-at-configure-time.patch b/bsp/buildroot/package/elfutils/0007-Allow-disabling-symbol-versioning-at-configure-time.patch deleted file mode 100644 index 7378f26a..00000000 --- a/bsp/buildroot/package/elfutils/0007-Allow-disabling-symbol-versioning-at-configure-time.patch +++ /dev/null @@ -1,139 +0,0 @@ -From bafacacaf7659a4933604662daba26a480b29a8d Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Thu, 23 Apr 2015 20:46:59 +0200 -Subject: [PATCH] Allow disabling symbol versioning at configure time - -Due to missing symbol versioning support in uClibc calls to versioned -functions that internally call different version of themselves results -in infinite recursion. - -Introduce macro SYMBOL_VERSIONING and use it instead of plain SHARED to -decide whether symbol versioning is needed. Control this macro -definition with new configure option --disable-symbol-versioning. - -Signed-off-by: Max Filippov -Signed-off-by: Mark Wielaard ---- -Backported from: bafacacaf7659a4933604662daba26a480b29a8d -Changes to ChangeLogs are dropped. - - config/eu.am | 10 ++++++++-- - configure.ac | 7 +++++++ - lib/eu-config.h | 6 +++--- - libdwfl/core-file.c | 2 +- - libdwfl/dwfl_module_build_id.c | 2 +- - libdwfl/dwfl_report_elf.c | 2 +- - -diff --git a/config/eu.am b/config/eu.am -index faf8add..6103a3e 100644 ---- a/config/eu.am -+++ b/config/eu.am -@@ -38,16 +38,22 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ - - COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) - -+DEFS.os = -DPIC -DSHARED -+if SYMBOL_VERSIONING -+DEFS.os += -DSYMBOL_VERSIONING -+else -+endif -+ - %.os: %.c %.o - if AMDEP -- if $(COMPILE.os) -c -o $@ -fpic -DPIC -DSHARED -MT $@ -MD -MP \ -+ if $(COMPILE.os) -c -o $@ -fpic $(DEFS.os) -MT $@ -MD -MP \ - -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \ - then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \ - rm -f "$(DEPDIR)/$*.Tpo"; \ - else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ - fi - else -- $(COMPILE.os) -c -o $@ -fpic -DPIC -DSHARED $< -+ $(COMPILE.os) -c -o $@ -fpic $(DEFS.os) $< - endif - - CLEANFILES = *.gcno *.gcda -diff --git a/configure.ac b/configure.ac -index ed2c964..be01573 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -241,6 +241,13 @@ AS_HELP_STRING([--disable-textrelcheck], - [Disable textrelcheck being a fatal error])) - AM_CONDITIONAL(FATAL_TEXTREL, [test "x$enable_textrelcheck" != "xno"]) - -+AC_ARG_ENABLE([symbol-versioning], -+AS_HELP_STRING([--disable-symbol-versioning], -+ [Disable symbol versioning in shared objects])) -+AM_CONDITIONAL(SYMBOL_VERSIONING, [test "x$enable_symbol_versioning" != "xno"]) -+AS_IF([test "x$enable_symbol_versioning" = "xno"], -+ [AC_MSG_WARN([Disabling symbol versioning breaks ABI compatibility.])]) -+ - dnl The directories with content. - - dnl Documentation. -diff --git a/lib/eu-config.h b/lib/eu-config.h -index 3afff26..5bb21c1 100644 ---- a/lib/eu-config.h -+++ b/lib/eu-config.h -@@ -163,7 +163,7 @@ asm (".section predict_data, \"aw\"; .previous\n" - #define ELFUTILS_HEADER(name) - - --#ifdef SHARED -+#ifdef SYMBOL_VERSIONING - # define OLD_VERSION(name, version) \ - asm (".globl _compat." #version "." #name "\n" \ - "_compat." #version "." #name " = " #name "\n" \ -@@ -181,8 +181,8 @@ asm (".section predict_data, \"aw\"; .previous\n" - # define OLD_VERSION(name, version) /* Nothing for static linking. */ - # define NEW_VERSION(name, version) /* Nothing for static linking. */ - # define COMPAT_VERSION_NEWPROTO(name, version, prefix) \ -- error "should use #ifdef SHARED" --# define COMPAT_VERSION(name, version, prefix) error "should use #ifdef SHARED" -+ error "should use #ifdef SYMBOL_VERSIONING" -+# define COMPAT_VERSION(name, version, prefix) error "should use #ifdef SYMBOL_VERSIONING" - #endif - - -diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c -index 324e9d2..bbe0899 100644 ---- a/libdwfl/core-file.c -+++ b/libdwfl/core-file.c -@@ -588,7 +588,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf, const char *executable) - INTDEF (dwfl_core_file_report) - NEW_VERSION (dwfl_core_file_report, ELFUTILS_0.158) - --#ifdef SHARED -+#ifdef SYMBOL_VERSIONING - int _compat_without_executable_dwfl_core_file_report (Dwfl *dwfl, Elf *elf); - COMPAT_VERSION_NEWPROTO (dwfl_core_file_report, ELFUTILS_0.146, - without_executable) -diff --git a/libdwfl/dwfl_module_build_id.c b/libdwfl/dwfl_module_build_id.c -index 350bbf8..c9a42ca 100644 ---- a/libdwfl/dwfl_module_build_id.c -+++ b/libdwfl/dwfl_module_build_id.c -@@ -101,7 +101,7 @@ dwfl_module_build_id (Dwfl_Module *mod, - INTDEF (dwfl_module_build_id) - NEW_VERSION (dwfl_module_build_id, ELFUTILS_0.138) - --#ifdef SHARED -+#ifdef SYMBOL_VERSIONING - COMPAT_VERSION (dwfl_module_build_id, ELFUTILS_0.130, vaddr_at_end) - - int -diff --git a/libdwfl/dwfl_report_elf.c b/libdwfl/dwfl_report_elf.c -index 3a4ae2e..624284c 100644 ---- a/libdwfl/dwfl_report_elf.c -+++ b/libdwfl/dwfl_report_elf.c -@@ -321,7 +321,7 @@ dwfl_report_elf (Dwfl *dwfl, const char *name, const char *file_name, int fd, - INTDEF (dwfl_report_elf) - NEW_VERSION (dwfl_report_elf, ELFUTILS_0.156) - --#ifdef SHARED -+#ifdef SYMBOL_VERSIONING - Dwfl_Module * - _compat_without_add_p_vaddr_dwfl_report_elf (Dwfl *dwfl, const char *name, - const char *file_name, int fd, --- -1.8.1.4 - diff --git a/bsp/buildroot/package/elfutils/Config.in b/bsp/buildroot/package/elfutils/Config.in index ca93770b..0419e279 100644 --- a/bsp/buildroot/package/elfutils/Config.in +++ b/bsp/buildroot/package/elfutils/Config.in @@ -1,10 +1,11 @@ -comment "elfutils needs a uClibc or (e)glibc toolchain w/ wchar, dynamic library" +comment "elfutils needs a uClibc or glibc toolchain w/ wchar, dynamic library" depends on !BR2_bfin depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) config BR2_PACKAGE_ELFUTILS bool "elfutils" + select BR2_PACKAGE_ZLIB select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT depends on BR2_USE_WCHAR diff --git a/bsp/buildroot/package/elfutils/elfutils.hash b/bsp/buildroot/package/elfutils/elfutils.hash index 123b7a27..9fa9403f 100644 --- a/bsp/buildroot/package/elfutils/elfutils.hash +++ b/bsp/buildroot/package/elfutils/elfutils.hash @@ -1,3 +1,2 @@ # Locally calculated -sha256 570c91a1783fa5386aaa2dfdd08dda1de777c2b63bf3b9c1437d635ffdd7a070 elfutils-0.161.tar.bz2 -sha256 bf0363d03e1e4668778eb4e7ddd10e405a22f753b3ad813a537fc01164d1e3fe elfutils-portability-0.161.patch +sha256 3c056914c8a438b210be0d790463b960fc79d234c3f05ce707cbff80e94cba30 elfutils-0.166.tar.bz2 diff --git a/bsp/buildroot/package/elfutils/elfutils.mk b/bsp/buildroot/package/elfutils/elfutils.mk index cc056182..b999d0f9 100644 --- a/bsp/buildroot/package/elfutils/elfutils.mk +++ b/bsp/buildroot/package/elfutils/elfutils.mk @@ -4,29 +4,30 @@ # ################################################################################ -ELFUTILS_VERSION = 0.161 +ELFUTILS_VERSION = 0.166 ELFUTILS_SOURCE = elfutils-$(ELFUTILS_VERSION).tar.bz2 ELFUTILS_SITE = https://fedorahosted.org/releases/e/l/elfutils/$(ELFUTILS_VERSION) ELFUTILS_INSTALL_STAGING = YES ELFUTILS_LICENSE = GPLv3, GPLv2, LGPLv3 ELFUTILS_LICENSE_FILES = COPYING COPYING-GPLV2 COPYING-LGPLV3 -ELFUTILS_PATCH = elfutils-portability-0.161.patch +ELFUTILS_DEPENDENCIES = zlib -# The tarball does not have a generated configure script +# We patch configure.ac ELFUTILS_AUTORECONF = YES ELFUTILS_CONF_OPTS += --disable-werror +# elfutils gets confused when lfs mode is forced, so don't ELFUTILS_CFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS)) +ELFUTILS_CPPFLAGS = $(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS)) # sparc64 needs -fPIC instead of -fpic ifeq ($(BR2_sparc64),y) ELFUTILS_CFLAGS += -fPIC endif -# elfutils gets confused when lfs mode is forced, so don't ELFUTILS_CONF_ENV += \ CFLAGS="$(ELFUTILS_CFLAGS)" \ - CPPFLAGS="$(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS))" + CPPFLAGS="$(ELFUTILS_CPPFLAGS)" ELFUTILS_LDFLAGS = $(TARGET_LDFLAGS) @@ -44,13 +45,6 @@ ELFUTILS_DEPENDENCIES += argp-standalone ELFUTILS_CONF_OPTS += --disable-symbol-versioning endif -ifeq ($(BR2_PACKAGE_ZLIB),y) -ELFUTILS_DEPENDENCIES += zlib -ELFUTILS_CONF_OPTS += --with-zlib -else -ELFUTILS_CONF_OPTS += --without-zlib -endif - ifeq ($(BR2_PACKAGE_BZIP2),y) ELFUTILS_DEPENDENCIES += bzip2 ELFUTILS_CONF_OPTS += --with-bzlib diff --git a/bsp/buildroot/package/emlog/0001-Fix-access-to-the-dentry.patch b/bsp/buildroot/package/emlog/0001-Fix-access-to-the-dentry.patch deleted file mode 100644 index 07dd5ec9..00000000 --- a/bsp/buildroot/package/emlog/0001-Fix-access-to-the-dentry.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 33d34a10fdc01c5716aebdb93c34fdfd7557adc0 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Tue, 22 Dec 2015 17:39:35 +0100 -Subject: [PATCH] Fix access to the dentry - -Since Linux 2.6.20, the dentry pointer is no longer stored in -file->f_dentry, but in file->f_path.dentry. Until Linux 3.19, there -was a compatibility macro which made the change transparent, but this -macro has now been removed. - -Since we probably don't care about compatibility with kernels older -than 2.6.20, this commit takes the simple approach of using -file->f_path.dentry. This will work with any kernel >= 2.6.20. - -Submitted upstream at https://github.com/nicupavel/emlog/pull/3. - -Signed-off-by: Thomas Petazzoni ---- - emlog.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/emlog.c b/emlog.c -index 41a67e2..1ef3d80 100644 ---- a/emlog.c -+++ b/emlog.c -@@ -292,8 +292,8 @@ static ssize_t emlog_read(struct file *file, char __user *buffer, /* The bu - struct emlog_info *einfo; - - /* get the metadata about this emlog */ -- if ((einfo = get_einfo(file->f_dentry->d_inode)) == NULL) { -- pr_err("can not fetch einfo for inode %ld.\n", (long)(file->f_dentry->d_inode->i_ino)); -+ if ((einfo = get_einfo(file->f_path.dentry->d_inode)) == NULL) { -+ pr_err("can not fetch einfo for inode %ld.\n", (long)(file->f_path.dentry->d_inode->i_ino)); - return -EIO; - } - -@@ -368,7 +368,7 @@ static ssize_t emlog_write(struct file *file, - struct emlog_info *einfo; - - /* get the metadata about this emlog */ -- if ((einfo = get_einfo(file->f_dentry->d_inode)) == NULL) -+ if ((einfo = get_einfo(file->f_path.dentry->d_inode)) == NULL) - return -EIO; - - /* if the message is longer than the buffer, just take the beginning -@@ -403,7 +403,7 @@ static unsigned int emlog_poll(struct file *file, struct poll_table_struct * wai - struct emlog_info *einfo; - - /* get the metadata about this emlog */ -- if ((einfo = get_einfo(file->f_dentry->d_inode)) == NULL) -+ if ((einfo = get_einfo(file->f_path.dentry->d_inode)) == NULL) - return -EIO; - - poll_wait(file, EMLOG_READQ(einfo), wait); --- -2.6.4 - diff --git a/bsp/buildroot/package/emlog/emlog.hash b/bsp/buildroot/package/emlog/emlog.hash index 625fb01b..e9469175 100644 --- a/bsp/buildroot/package/emlog/emlog.hash +++ b/bsp/buildroot/package/emlog/emlog.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 9bab81e75ef2a1b1b7024a397308356a52463d8ac4b42682ed5a134d46387d1f emlog-bd32494ad757c3d37469877aaf99ced3ee6ca3f8.tar.gz +sha256 0d82f06301b8486c54e5e36f304d5a83c2347c23b93c1344eacb0b5b3044485a emlog-576a6c0fcf76dfeff48124b2f5fc0b4207d88ca1.tar.gz diff --git a/bsp/buildroot/package/emlog/emlog.mk b/bsp/buildroot/package/emlog/emlog.mk index f79b1cf8..bf0bcf77 100644 --- a/bsp/buildroot/package/emlog/emlog.mk +++ b/bsp/buildroot/package/emlog/emlog.mk @@ -4,7 +4,7 @@ # ################################################################################ -EMLOG_VERSION = bd32494ad757c3d37469877aaf99ced3ee6ca3f8 +EMLOG_VERSION = 576a6c0fcf76dfeff48124b2f5fc0b4207d88ca1 EMLOG_SITE = $(call github,nicupavel,emlog,$(EMLOG_VERSION)) EMLOG_LICENSE = GPLv2 EMLOG_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/enlightenment/0001-E-include-uuid.h-only-when-Wayland-support-is-enable.patch b/bsp/buildroot/package/enlightenment/0001-E-include-uuid.h-only-when-Wayland-support-is-enable.patch new file mode 100644 index 00000000..3f33fa32 --- /dev/null +++ b/bsp/buildroot/package/enlightenment/0001-E-include-uuid.h-only-when-Wayland-support-is-enable.patch @@ -0,0 +1,39 @@ +From 368c4c7cc5722b2edfe98fb3a8999f8f01bc9b56 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 5 Aug 2016 21:14:46 +0200 +Subject: [PATCH] E: include uuid.h only when Wayland support is enabled. + +libuuid is checked only when Wayland support is enabled and +uuid_t uuid is guarded by HAVE_WAYLAND. + +So move include uuid.h below a HAVE_WAYLAND. + +Signed-off-by: Romain Naour +--- + src/bin/e_pixmap.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c +index 2bd94a7..0b01473 100644 +--- a/src/bin/e_pixmap.c ++++ b/src/bin/e_pixmap.c +@@ -2,6 +2,7 @@ + + #ifdef HAVE_WAYLAND + # include "e_comp_wl.h" ++# include + # ifndef EGL_TEXTURE_FORMAT + # define EGL_TEXTURE_FORMAT 0x3080 + # endif +@@ -13,8 +14,6 @@ + # include "e_comp_x.h" + #endif + +-#include +- + static Eina_Hash *pixmaps[2] = {NULL}; + static Eina_Hash *aliases[2] = {NULL}; + +-- +2.5.5 + diff --git a/bsp/buildroot/package/enlightenment/enlightenment.hash b/bsp/buildroot/package/enlightenment/enlightenment.hash index 66bdb492..ecfe5378 100644 --- a/bsp/buildroot/package/enlightenment/enlightenment.hash +++ b/bsp/buildroot/package/enlightenment/enlightenment.hash @@ -1,2 +1,2 @@ -# From https://phab.enlightenment.org/phame/live/3/post/e19_14_release/ -sha256 8906e762f0d953752bfe002663280a855da9bb74acf613424c517b78a8dde407 enlightenment-0.19.14.tar.xz +# From https://www.enlightenment.org/news/e-0.20.10-release +sha256 59fd447d120d91d18958a31a5827f97842cc472f2e22f132b2c7d4d208944baf enlightenment-0.20.10.tar.xz diff --git a/bsp/buildroot/package/enlightenment/enlightenment.mk b/bsp/buildroot/package/enlightenment/enlightenment.mk index a7563613..2440cec7 100644 --- a/bsp/buildroot/package/enlightenment/enlightenment.mk +++ b/bsp/buildroot/package/enlightenment/enlightenment.mk @@ -4,7 +4,7 @@ # ################################################################################ -ENLIGHTENMENT_VERSION = 0.19.14 +ENLIGHTENMENT_VERSION = 0.20.10 ENLIGHTENMENT_SOURCE = enlightenment-$(ENLIGHTENMENT_VERSION).tar.xz ENLIGHTENMENT_SITE = http://download.enlightenment.org/rel/apps/enlightenment ENLIGHTENMENT_LICENSE = BSD-2c @@ -22,8 +22,14 @@ ENLIGHTENMENT_CONF_OPTS = \ --with-edje-cc=$(HOST_DIR)/usr/bin/edje_cc \ --with-eet-eet=$(HOST_DIR)/usr/bin/eet \ --disable-pam \ - --disable-rpath \ - --disable-systemd + --disable-rpath + +ifeq ($(BR2_PACKAGE_SYSTEMD),y) +ENLIGHTENMENT_CONF_OPTS += --enable-systemd +ENLIGHTENMENT_DEPENDENCIES += systemd +else +ENLIGHTENMENT_CONF_OPTS += --disable-systemd +endif # uClibc has an old incomplete sys/ptrace.h for powerpc & sparc ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_powerpc)$(BR2_sparc),yy) diff --git a/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.hash b/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.hash new file mode 100644 index 00000000..00ccb43c --- /dev/null +++ b/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 739d8ce15049c54f7e00528edbf536f63a24fdb9dfa053d176e6f97a9832b834 erlang-goldrush-0.1.8.tar.gz diff --git a/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.mk b/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.mk index b18a8ec4..2fa88107 100644 --- a/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.mk +++ b/bsp/buildroot/package/erlang-goldrush/erlang-goldrush.mk @@ -4,7 +4,7 @@ # ################################################################################ -ERLANG_GOLDRUSH_VERSION = 0.1.6 +ERLANG_GOLDRUSH_VERSION = 0.1.8 ERLANG_GOLDRUSH_SITE = $(call github,DeadZen,goldrush,$(ERLANG_GOLDRUSH_VERSION)) ERLANG_GOLDRUSH_LICENSE = ISC ERLANG_GOLDRUSH_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/erlang-lager/erlang-lager.hash b/bsp/buildroot/package/erlang-lager/erlang-lager.hash new file mode 100644 index 00000000..e436fdc7 --- /dev/null +++ b/bsp/buildroot/package/erlang-lager/erlang-lager.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 168a8e48646b04bcee1ab0c97c1ff63563bd7fd25638f1504b8d8f674d2ddd1b erlang-lager-2.2.0.tar.gz diff --git a/bsp/buildroot/package/erlang-lager/erlang-lager.mk b/bsp/buildroot/package/erlang-lager/erlang-lager.mk index b725bfd7..b55b6f7b 100644 --- a/bsp/buildroot/package/erlang-lager/erlang-lager.mk +++ b/bsp/buildroot/package/erlang-lager/erlang-lager.mk @@ -4,11 +4,12 @@ # ################################################################################ -ERLANG_LAGER_VERSION = 2.0.3 +ERLANG_LAGER_VERSION = 2.2.0 ERLANG_LAGER_SITE = $(call github,basho,lager,$(ERLANG_LAGER_VERSION)) ERLANG_LAGER_LICENSE = Apache-2.0 ERLANG_LAGER_LICENSE_FILES = LICENSE ERLANG_LAGER_DEPENDENCIES = erlang-goldrush +HOST_ERLANG_LAGER_DEPENDENCIES = host-erlang-goldrush $(eval $(rebar-package)) $(eval $(host-rebar-package)) diff --git a/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.hash b/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.hash new file mode 100644 index 00000000..d8b09f95 --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 752b649f695e9f2777efd6b2d8dfdcc1f435104b4e363f5f0454b99fd009015c erlang-p1-cache-tab-1.0.1.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk b/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk index 6c5d98a4..8f131237 100644 --- a/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk +++ b/bsp/buildroot/package/erlang-p1-cache-tab/erlang-p1-cache-tab.mk @@ -4,10 +4,10 @@ # ################################################################################ -ERLANG_P1_CACHE_TAB_VERSION = f7ea12b +ERLANG_P1_CACHE_TAB_VERSION = 1.0.1 ERLANG_P1_CACHE_TAB_SITE = $(call github,processone,cache_tab,$(ERLANG_P1_CACHE_TAB_VERSION)) -ERLANG_P1_CACHE_TAB_LICENSE = GPLv2+ -ERLANG_P1_CACHE_TAB_LICENSE_FILES = COPYING +ERLANG_P1_CACHE_TAB_LICENSE = Apache-2.0 +ERLANG_P1_CACHE_TAB_LICENSE_FILES = LICENSE.txt ERLANG_P1_CACHE_TAB_DEPENDENCIES = erlang-p1-utils $(eval $(rebar-package)) diff --git a/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.hash b/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.hash new file mode 100644 index 00000000..a284189a --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 3ef1fb814fdf23e8ad8a210efb66681fa67cd42753be536521bf9686158880d3 erlang-p1-iconv-0.9.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.mk b/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.mk index 2189f01c..d2d2626d 100644 --- a/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.mk +++ b/bsp/buildroot/package/erlang-p1-iconv/erlang-p1-iconv.mk @@ -4,7 +4,7 @@ # ################################################################################ -ERLANG_P1_ICONV_VERSION = dff5ee5 +ERLANG_P1_ICONV_VERSION = 0.9.0 ERLANG_P1_ICONV_SITE = $(call github,processone,eiconv,$(ERLANG_P1_ICONV_VERSION)) ERLANG_P1_ICONV_LICENSE = GPLv2+ ERLANG_P1_ICONV_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.hash b/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.hash new file mode 100644 index 00000000..74382cca --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2d6dfad997931668eb83a0cb127ccca8c51f8a383d76f9dea393c0b3a4eabae7 erlang-p1-sip-1.0.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.mk b/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.mk index d017a922..24075a7a 100644 --- a/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.mk +++ b/bsp/buildroot/package/erlang-p1-sip/erlang-p1-sip.mk @@ -4,7 +4,7 @@ # ################################################################################ -ERLANG_P1_SIP_VERSION = fd3e461 +ERLANG_P1_SIP_VERSION = 1.0.0 ERLANG_P1_SIP_SITE = $(call github,processone,p1_sip,$(ERLANG_P1_SIP_VERSION)) ERLANG_P1_SIP_LICENSE = GPLv2 with OpenSSL exception ERLANG_P1_SIP_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/erlang-p1-stringprep/0001-Stdint-is-required-on-windows.patch b/bsp/buildroot/package/erlang-p1-stringprep/0001-Stdint-is-required-on-windows.patch new file mode 100644 index 00000000..7385503b --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-stringprep/0001-Stdint-is-required-on-windows.patch @@ -0,0 +1,28 @@ +From f5a2b8b78afb253630ee8833f16f131b3b52701e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= +Date: Mon, 29 Feb 2016 10:56:32 +0100 +Subject: [PATCH] Stdint is required on windows + +[Backport from upstream commit +4fc5cae81122540fff983e40dda1fa905c329fd0, which happens to not only +fix the build on Windows, but also with the musl C library.] +Signed-off-by: Thomas Petazzoni +--- + c_src/stringprep.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/c_src/stringprep.cpp b/c_src/stringprep.cpp +index 461cf09..26215cf 100644 +--- a/c_src/stringprep.cpp ++++ b/c_src/stringprep.cpp +@@ -19,6 +19,7 @@ + */ + + #include ++#include + #include + + #include "uni_data.c" +-- +2.7.4 + diff --git a/bsp/buildroot/package/erlang-p1-stringprep/Config.in b/bsp/buildroot/package/erlang-p1-stringprep/Config.in index 3ef77ed6..4beac048 100644 --- a/bsp/buildroot/package/erlang-p1-stringprep/Config.in +++ b/bsp/buildroot/package/erlang-p1-stringprep/Config.in @@ -1,5 +1,10 @@ +comment "erlang-p1-stringprep needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP + config BR2_PACKAGE_ERLANG_P1_STRINGPREP bool "erlang-p1-stringprep" + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_ERLANG_P1_UTILS help Erlang interface to stringprep diff --git a/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.hash b/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.hash new file mode 100644 index 00000000..23bc6fbd --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 5a74277e7bfb18b8f35838fa78fcde83f0acdb5b2a5b90c4b6d2470a33f7911e erlang-p1-stringprep-1.0.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.mk b/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.mk index 60c80bc0..3bc8c729 100644 --- a/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.mk +++ b/bsp/buildroot/package/erlang-p1-stringprep/erlang-p1-stringprep.mk @@ -4,9 +4,10 @@ # ################################################################################ -ERLANG_P1_STRINGPREP_VERSION = 3c64023 +ERLANG_P1_STRINGPREP_VERSION = 1.0.0 ERLANG_P1_STRINGPREP_SITE = $(call github,processone,stringprep,$(ERLANG_P1_STRINGPREP_VERSION)) -ERLANG_P1_STRINGPREP_LICENSE = TCL -ERLANG_P1_STRINGPREP_LICENSE_FILES = LICENSE.TCL +ERLANG_P1_STRINGPREP_LICENSE = TCL (tools/*.tcl), Apache-2.0 (rest) +ERLANG_P1_STRINGPREP_LICENSE_FILES = LICENSE.ALL LICENSE.TCL LICENSE.txt +ERLANG_P1_STRINGPREP_DEPENDENCIES = erlang-p1-utils $(eval $(rebar-package)) diff --git a/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.hash b/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.hash new file mode 100644 index 00000000..be566080 --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ca33833f4b6ef70a7628e6f3697d15cb4e26d32ef4e5a31bbddee86cabe19c50 erlang-p1-stun-0.9.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.mk b/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.mk index 7920347c..4d26f917 100644 --- a/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.mk +++ b/bsp/buildroot/package/erlang-p1-stun/erlang-p1-stun.mk @@ -4,7 +4,7 @@ # ################################################################################ -ERLANG_P1_STUN_VERSION = a3dce07 +ERLANG_P1_STUN_VERSION = 0.9.0 ERLANG_P1_STUN_SITE = $(call github,processone,stun,$(ERLANG_P1_STUN_VERSION)) ERLANG_P1_STUN_LICENSE = GPLv2+ ERLANG_P1_STUN_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.hash b/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.hash new file mode 100644 index 00000000..fd8d801f --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 8e8b848a112ff6bf146df34b4f6bc50160a8858a18499a7a6124193b37237a40 erlang-p1-tls-1.0.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.mk b/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.mk index 4f1fc485..77f06e6b 100644 --- a/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.mk +++ b/bsp/buildroot/package/erlang-p1-tls/erlang-p1-tls.mk @@ -4,9 +4,9 @@ # ################################################################################ -ERLANG_P1_TLS_VERSION = b070004 +ERLANG_P1_TLS_VERSION = 1.0.0 ERLANG_P1_TLS_SITE = $(call github,processone,tls,$(ERLANG_P1_TLS_VERSION)) -ERLANG_P1_TLS_LICENSE = GPLv2+ +ERLANG_P1_TLS_LICENSE = GPLv2+ with OpenSSL exception ERLANG_P1_TLS_LICENSE_FILES = COPYING ERLANG_P1_TLS_INSTALL_STAGING = YES ERLANG_P1_TLS_DEPENDENCIES = openssl diff --git a/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.hash b/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.hash new file mode 100644 index 00000000..c41e5ef5 --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 9c7e9fa2990edd419953a6ae609ffed0b90e671b57c468d97c0d85d866d80210 erlang-p1-utils-1.0.3.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.mk b/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.mk index c01d6d50..733cf87f 100644 --- a/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.mk +++ b/bsp/buildroot/package/erlang-p1-utils/erlang-p1-utils.mk @@ -4,10 +4,10 @@ # ################################################################################ -ERLANG_P1_UTILS_VERSION = 1bf99f9 +ERLANG_P1_UTILS_VERSION = 1.0.3 ERLANG_P1_UTILS_SITE = $(call github,processone,p1_utils,$(ERLANG_P1_UTILS_VERSION)) ERLANG_P1_UTILS_LICENSE = GPLv2+ -ERLANG_P1_UTILS_LICENSE_FILES = COPYING +ERLANG_P1_UTILS_LICENSE_FILES = LICENSE.txt ERLANG_P1_UTILS_INSTALL_STAGING = YES $(eval $(rebar-package)) diff --git a/bsp/buildroot/package/erlang-p1-xml/Config.in b/bsp/buildroot/package/erlang-p1-xml/Config.in index a6f4bd7e..504501d9 100644 --- a/bsp/buildroot/package/erlang-p1-xml/Config.in +++ b/bsp/buildroot/package/erlang-p1-xml/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_ERLANG_P1_XML bool "erlang-p1-xml" + select BR2_PACKAGE_ERLANG_P1_UTILS select BR2_PACKAGE_EXPAT help XML utilities for Erlang diff --git a/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.hash b/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.hash new file mode 100644 index 00000000..8e4a79fe --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 4c163c5b9572baa93eb97e03544db57dc751c7995a5279081a0d56f5fdaa2521 erlang-p1-xml-1.1.1.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.mk b/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.mk index f81d3e54..31bab231 100644 --- a/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.mk +++ b/bsp/buildroot/package/erlang-p1-xml/erlang-p1-xml.mk @@ -4,11 +4,11 @@ # ################################################################################ -ERLANG_P1_XML_VERSION = 2c61083 +ERLANG_P1_XML_VERSION = 1.1.1 ERLANG_P1_XML_SITE = $(call github,processone,xml,$(ERLANG_P1_XML_VERSION)) -ERLANG_P1_XML_LICENSE = GPLv2+ -ERLANG_P1_XML_LICENSE_FILES = COPYING -ERLANG_P1_XML_DEPENDENCIES = expat +ERLANG_P1_XML_LICENSE = Apache-2.0 +ERLANG_P1_XML_LICENSE_FILES = LICENSE.txt +ERLANG_P1_XML_DEPENDENCIES = expat erlang-p1-utils ERLANG_P1_XML_INSTALL_STAGING = YES ERLANG_P1_XML_USE_AUTOCONF = YES diff --git a/bsp/buildroot/package/erlang-p1-yaml/Config.in b/bsp/buildroot/package/erlang-p1-yaml/Config.in index 25c9b02f..2ab78d12 100644 --- a/bsp/buildroot/package/erlang-p1-yaml/Config.in +++ b/bsp/buildroot/package/erlang-p1-yaml/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_ERLANG_P1_YAML bool "erlang-p1-yaml" + select BR2_PACKAGE_ERLANG_P1_UTILS select BR2_PACKAGE_LIBYAML help Erlang wrapper for libyaml C library diff --git a/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.hash b/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.hash new file mode 100644 index 00000000..0e11e450 --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 8eaaddda056f1ebb515a5456ba2be855e5b71b9b6eb35788527f39c6600ac6b4 erlang-p1-yaml-1.0.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.mk b/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.mk index 6f7c9773..22fcda43 100644 --- a/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.mk +++ b/bsp/buildroot/package/erlang-p1-yaml/erlang-p1-yaml.mk @@ -4,10 +4,10 @@ # ################################################################################ -ERLANG_P1_YAML_VERSION = e1f081e +ERLANG_P1_YAML_VERSION = 1.0.0 ERLANG_P1_YAML_SITE = $(call github,processone,p1_yaml,$(ERLANG_P1_YAML_VERSION)) ERLANG_P1_YAML_LICENSE = Apache-2.0 ERLANG_P1_YAML_LICENSE_FILES = COPYING -ERLANG_P1_YAML_DEPENDENCIES = libyaml +ERLANG_P1_YAML_DEPENDENCIES = libyaml erlang-p1-utils $(eval $(rebar-package)) diff --git a/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.hash b/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.hash new file mode 100644 index 00000000..488e7529 --- /dev/null +++ b/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 cb534ee8d8746e38027ada0ccd7e910daa025c74461286ded60ffaa933e3cf7b erlang-p1-zlib-1.0.0.tar.gz diff --git a/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.mk b/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.mk index 4ba3332e..1f8ae006 100644 --- a/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.mk +++ b/bsp/buildroot/package/erlang-p1-zlib/erlang-p1-zlib.mk @@ -4,7 +4,7 @@ # ################################################################################ -ERLANG_P1_ZLIB_VERSION = 52e82bb +ERLANG_P1_ZLIB_VERSION = 1.0.0 ERLANG_P1_ZLIB_SITE = $(call github,processone,zlib,$(ERLANG_P1_ZLIB_VERSION)) ERLANG_P1_ZLIB_LICENSE = GPLv2+ ERLANG_P1_ZLIB_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/erlang-rebar/erlang-rebar.hash b/bsp/buildroot/package/erlang-rebar/erlang-rebar.hash new file mode 100644 index 00000000..029b52cf --- /dev/null +++ b/bsp/buildroot/package/erlang-rebar/erlang-rebar.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 aed933d4e60c4f11e0771ccdb4434cccdb9a71cf8b1363d17aaf863988b3ff60 erlang-rebar-2.6.1.tar.gz diff --git a/bsp/buildroot/package/erlang-rebar/erlang-rebar.mk b/bsp/buildroot/package/erlang-rebar/erlang-rebar.mk index d2189e1f..61904cc9 100644 --- a/bsp/buildroot/package/erlang-rebar/erlang-rebar.mk +++ b/bsp/buildroot/package/erlang-rebar/erlang-rebar.mk @@ -4,7 +4,7 @@ # ################################################################################ -ERLANG_REBAR_VERSION = 2.5.1 +ERLANG_REBAR_VERSION = 2.6.1 # Upstream publishes a release, but we can not use it as it is a release of # a generated rebar script, when we want the sources. So we have to use the diff --git a/bsp/buildroot/package/erlang/0004-erts-fix-incorrect-use-of-ac-egrep-cpp.patch b/bsp/buildroot/package/erlang/0004-erts-fix-incorrect-use-of-ac-egrep-cpp.patch deleted file mode 100644 index bc086975..00000000 --- a/bsp/buildroot/package/erlang/0004-erts-fix-incorrect-use-of-ac-egrep-cpp.patch +++ /dev/null @@ -1,79 +0,0 @@ -Status: upstream -https://github.com/erlang/otp/pull/658 - -Signed-off-by: Johan Oudinet - -From 73392fcb6f8fddba57de6fb7ae6eeafa0e444686 Mon Sep 17 00:00:00 2001 -From: Johan Oudinet -Date: Tue, 24 Mar 2015 15:54:31 +0100 -Subject: [PATCH] erts: Fix incorrect use of AC_EGREP_CPP - -Using 'AC_EGREP_CPP(yes' without restraining the pattern always return -true if it runs from a path containing the string 'yes'. ---- - erts/aclocal.m4 | 2 +- - erts/configure.in | 17 +++++++++-------- - 2 files changed, 10 insertions(+), 9 deletions(-) - -diff --git a/erts/aclocal.m4 b/erts/aclocal.m4 -index 5735cde..70a5b40 100644 ---- a/erts/aclocal.m4 -+++ b/erts/aclocal.m4 -@@ -559,7 +559,7 @@ dnl - - AC_DEFUN(LM_SYS_MULTICAST, - [AC_CACHE_CHECK([for multicast support], ac_cv_sys_multicast_support, --[AC_EGREP_CPP(yes, -+[AC_EGREP_CPP(^yes$, - [#include - #include - #include -diff --git a/erts/configure.in b/erts/configure.in -index b3fe48d..9e19e33 100644 ---- a/erts/configure.in -+++ b/erts/configure.in -@@ -1555,10 +1555,11 @@ if test "$have_gethostbyname_r" = yes; then - [Define to flavour of gethostbyname_r])) - ;; - *) -- AC_EGREP_CPP(yes,[#include -- #ifdef __GLIBC__ -- yes -- #endif -+ AC_EGREP_CPP(^yes$,[ -+#include -+#ifdef __GLIBC__ -+yes -+#endif - ], AC_DEFINE(HAVE_GETHOSTBYNAME_R, GHBN_R_GLIBC, - [Define to flavour of gethostbyname_r])) - ;; -@@ -4303,10 +4304,10 @@ case "$erl_xcomp_without_sysroot-$with_ssl" in - SSL_INCLUDE="-I$dir/include" - old_CPPFLAGS=$CPPFLAGS - CPPFLAGS=$SSL_INCLUDE -- AC_EGREP_CPP(yes,[ -+ AC_EGREP_CPP(^yes$,[ - #include - #if OPENSSL_VERSION_NUMBER >= 0x0090700fL -- yes -+yes - #endif - ],[ - ssl_found=yes -@@ -4501,10 +4502,10 @@ if test "x$SSL_APP" != "x" ; then - AC_MSG_CHECKING(for OpenSSL kerberos 5 support) - old_CPPFLAGS=$CPPFLAGS - CPPFLAGS=$SSL_INCLUDE -- AC_EGREP_CPP(yes,[ -+ AC_EGREP_CPP(^yes$,[ - #include - #ifndef OPENSSL_NO_KRB5 -- yes -+yes - #endif - ],[ - AC_MSG_RESULT([yes]) --- -2.1.0 - diff --git a/bsp/buildroot/package/erlang/Config.in b/bsp/buildroot/package/erlang/Config.in index 5fa20288..11407db1 100644 --- a/bsp/buildroot/package/erlang/Config.in +++ b/bsp/buildroot/package/erlang/Config.in @@ -1,14 +1,20 @@ +config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS + bool + # see HOWTO/INSTALL.md for Erlang's supported platforms + # when using its native atomic ops implementation + default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || \ + BR2_sparc_v9 || BR2_arm || BR2_aarch64 || BR2_mipsel + comment "erlang needs a toolchain w/ dynamic library" depends on BR2_USE_MMU # fork() - depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS + depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS depends on BR2_STATIC_LIBS config BR2_PACKAGE_ERLANG bool "erlang" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS - depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS - select BR2_PACKAGE_LIBATOMIC_OPS + depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS help Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. diff --git a/bsp/buildroot/package/erlang/erlang.hash b/bsp/buildroot/package/erlang/erlang.hash index 2d6a39aa..c39c26e3 100644 --- a/bsp/buildroot/package/erlang/erlang.hash +++ b/bsp/buildroot/package/erlang/erlang.hash @@ -1,2 +1,3 @@ -# From http://www.erlang.org/download/MD5 -md5 346dd0136bf1cc28cebc140e505206bb otp_src_17.5.tar.gz +# md5 from http://www.erlang.org/download/MD5, sha256 locally computed +md5 7e4ff32f97c36fb3dab736f8d481830b otp_src_18.3.tar.gz +sha256 fdab8129a1cb935db09f1832e3a7d511a4aeb2b9bb3602ca6a7ccb9730d5c9c3 otp_src_18.3.tar.gz diff --git a/bsp/buildroot/package/erlang/erlang.mk b/bsp/buildroot/package/erlang/erlang.mk index 848d1ddc..6efffde4 100644 --- a/bsp/buildroot/package/erlang/erlang.mk +++ b/bsp/buildroot/package/erlang/erlang.mk @@ -5,21 +5,21 @@ ################################################################################ # See note below when updating Erlang -ERLANG_VERSION = 17.5 +ERLANG_VERSION = 18.3 ERLANG_SITE = http://www.erlang.org/download ERLANG_SOURCE = otp_src_$(ERLANG_VERSION).tar.gz ERLANG_DEPENDENCIES = host-erlang -ERLANG_LICENSE = EPL -ERLANG_LICENSE_FILES = EPLICENCE +ERLANG_LICENSE = Apache-2.0 +ERLANG_LICENSE_FILES = LICENSE.txt ERLANG_INSTALL_STAGING = YES -# Touching erts/configure.in +# Patched erts/aclocal.m4 ERLANG_AUTORECONF = YES # Whenever updating Erlang, this value should be updated as well, to the # value of EI_VSN in the file lib/erl_interface/vsn.mk -ERLANG_EI_VSN = 3.7.20 +ERLANG_EI_VSN = 3.8.2 # The configure checks for these functions fail incorrectly ERLANG_CONF_ENV = ac_cv_func_isnan=yes ac_cv_func_isinf=yes @@ -30,9 +30,6 @@ ERLANG_CONF_ENV += erl_xcomp_sysroot=$(STAGING_DIR) ERLANG_CONF_OPTS = --without-javac -ERLANG_DEPENDENCIES += libatomic_ops -ERLANG_CONF_OPTS += --with-libatomic_ops=$(STAGING_DIR)/usr LIBS=-latomic_ops - # erlang uses openssl for all things crypto. Since the host tools (such as # rebar) uses crypto, we need to build host-erlang with support for openssl. HOST_ERLANG_DEPENDENCIES = host-openssl @@ -67,14 +64,20 @@ ifeq ($(BR2_PACKAGE_ERLANG_SMP),) ERLANG_CONF_OPTS += --disable-smp-support endif -# Remove source, example, gs and wx files from the target +# Remove source, example, gs and wx files from staging and target. ERLANG_REMOVE_PACKAGES = gs wx ifneq ($(BR2_PACKAGE_ERLANG_MEGACO),y) ERLANG_REMOVE_PACKAGES += megaco endif -define ERLANG_REMOVE_UNUSED +define ERLANG_REMOVE_STAGING_UNUSED + for package in $(ERLANG_REMOVE_PACKAGES); do \ + rm -rf $(STAGING_DIR)/usr/lib/erlang/lib/$${package}-*; \ + done +endef + +define ERLANG_REMOVE_TARGET_UNUSED find $(TARGET_DIR)/usr/lib/erlang -type d -name src -prune -exec rm -rf {} \; find $(TARGET_DIR)/usr/lib/erlang -type d -name examples -prune -exec rm -rf {} \; for package in $(ERLANG_REMOVE_PACKAGES); do \ @@ -82,7 +85,8 @@ define ERLANG_REMOVE_UNUSED done endef -ERLANG_POST_INSTALL_TARGET_HOOKS += ERLANG_REMOVE_UNUSED +ERLANG_POST_INSTALL_STAGING_HOOKS += ERLANG_REMOVE_STAGING_UNUSED +ERLANG_POST_INSTALL_TARGET_HOOKS += ERLANG_REMOVE_TARGET_UNUSED $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/ethtool/ethtool.hash b/bsp/buildroot/package/ethtool/ethtool.hash index 53f31d0d..73a25edc 100644 --- a/bsp/buildroot/package/ethtool/ethtool.hash +++ b/bsp/buildroot/package/ethtool/ethtool.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/software/network/ethtool/sha256sums.asc -sha256 8cb854bcf71ef8b484b5d2a0e6bf056ae1fbf12cfb19e4907b74b7b21da91e87 ethtool-4.2.tar.xz +sha256 e90589a9349d008cce8c0510ac4e8878efdc0ddb1b732a9a4cc333b101313415 ethtool-4.6.tar.xz diff --git a/bsp/buildroot/package/ethtool/ethtool.mk b/bsp/buildroot/package/ethtool/ethtool.mk index c56eeb91..fb751a42 100644 --- a/bsp/buildroot/package/ethtool/ethtool.mk +++ b/bsp/buildroot/package/ethtool/ethtool.mk @@ -4,7 +4,7 @@ # ################################################################################ -ETHTOOL_VERSION = 4.2 +ETHTOOL_VERSION = 4.6 ETHTOOL_SOURCE = ethtool-$(ETHTOOL_VERSION).tar.xz ETHTOOL_SITE = $(BR2_KERNEL_MIRROR)/software/network/ethtool ETHTOOL_LICENSE = GPLv2 diff --git a/bsp/buildroot/package/eudev/0002-src-shared-missing.h-fix-getrandom-system-call-numbe.patch b/bsp/buildroot/package/eudev/0002-src-shared-missing.h-fix-getrandom-system-call-numbe.patch new file mode 100644 index 00000000..56379335 --- /dev/null +++ b/bsp/buildroot/package/eudev/0002-src-shared-missing.h-fix-getrandom-system-call-numbe.patch @@ -0,0 +1,64 @@ +From f80fe0e68686060e861338cf7b3b32e0637b3e0b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 4 Aug 2016 10:13:09 +0200 +Subject: [PATCH] src/shared/missing.h: fix getrandom system call number on + ARM64 + +The getrandom() system call number is indeed 384 on ARM, but it is not +the same on ARM64. ARM64 uses the asm-generic headers, including for +system call numbers, so the getrandom() system call number on ARM64 is +278. This fixes runtime issues of eudev on ARM64, such as: + +Populating /dev using udev: [ 6.186817] udevd[1204]: starting version 3.1.5 +[ 6.191662] udevd[1204]: syscall 384 +[ 6.195217] Code: aa0503e4 aa0603e5 aa0703e6 d4000001 (b13ffc1f) +[ 6.201291] CPU: 4 PID: 1204 Comm: udevd Not tainted 4.7.0+ #1 +[ 6.207079] Hardware name: ARM Juno development board (r2) (DT) +[ 6.212954] task: ffff800976421900 task.stack: ffff800975610000 +[ 6.218825] PC is at 0xffff97f12234 +[ 6.222281] LR is at 0x41b15c +[ 6.225214] pc : [<0000ffff97f12234>] lr : [<000000000041b15c>] pstate: 80000000 +[ 6.232544] sp : 0000ffffcf9b3870 +[ 6.235828] x29: 0000ffffcf9b3870 x28: 0000000000428218 +[ 6.241110] x27: 0000000000000000 x26: 000000000042a7e3 +[ 6.246395] x25: 0000ffffcf9b39c8 x24: 0000000000428000 +[ 6.251670] x23: 0000000000449000 x22: 0000000000449678 +[ 6.256946] x21: 0000000000000010 x20: 0000000000449000 +[ 6.262233] x19: 0000000000449678 x18: 0000000000000000 +[ 6.267507] x17: 0000ffff97f12210 x16: 0000000000449440 +[ 6.272779] x15: 0000ffff97e4f730 x14: 0000ffff98050cb8 +[ 6.278060] x13: 000000000000033c x12: 00000000000004b4 +[ 6.283331] x11: 0000000000000000 x10: 0101010101010101 +[ 6.288604] x9 : 0000000000001010 x8 : 0000000000000180 +[ 6.293882] x7 : ffffffffffffffff x6 : ffffffffffffffff +[ 6.299154] x5 : 00000000271e36c0 x4 : 0007061c00190d07 +[ 6.304426] x3 : 00000000271e36d0 x2 : 0000000000000001 +[ 6.309705] x1 : 0000000000000010 x0 : 0000000000449678 +[ 6.314976] +[ 6.398734] sky2 0000:08:00.0 enp8s0: renamed from eth0 + +Reported-by: Kevin Hilman +Signed-off-by: Thomas Petazzoni +--- + src/shared/missing.h | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/shared/missing.h b/src/shared/missing.h +index 9031119..5ad5997 100644 +--- a/src/shared/missing.h ++++ b/src/shared/missing.h +@@ -47,8 +47,10 @@ + # define __NR_getrandom 318 + # elif defined(__i386__) + # define __NR_getrandom 355 +-# elif defined(__arm__) || defined(__aarch64__) ++# elif defined(__arm__) + # define __NR_getrandom 384 ++# elif defined(__aarch64__) ++# define __NR_getrandom 278 + # elif defined(__ia64__) + # define __NR_getrandom 1339 + # elif defined(__m68k__) +-- +2.7.4 + diff --git a/bsp/buildroot/package/eudev/Config.in b/bsp/buildroot/package/eudev/Config.in index 76df409b..64126758 100644 --- a/bsp/buildroot/package/eudev/Config.in +++ b/bsp/buildroot/package/eudev/Config.in @@ -9,13 +9,12 @@ config BR2_PACKAGE_EUDEV select BR2_PACKAGE_UTIL_LINUX_LIBBLKID select BR2_PACKAGE_KMOD help - Userspace device daemon. This is a standalone version, - independent of systemd. It is a fork maintained by Gentoo. + eudev is a fork of systemd-udev with the goal of obtaining better + compatibility with existing software such as OpenRC and Upstart, + older kernels, various toolchains and anything else required by + users and various distributions. - eudev requires a Linux kernel >= 2.6.34: it relies on devtmpfs - and inotify. - - http://dev.gentoo.org/~blueness/eudev + https://wiki.gentoo.org/wiki/Project:Eudev if BR2_PACKAGE_EUDEV diff --git a/bsp/buildroot/package/eudev/eudev.hash b/bsp/buildroot/package/eudev/eudev.hash index e7c331ca..44ed169f 100644 --- a/bsp/buildroot/package/eudev/eudev.hash +++ b/bsp/buildroot/package/eudev/eudev.hash @@ -1,4 +1,4 @@ # From http://dev.gentoo.org/~blueness/eudev/ -md5 c4dace42deecede102b6c01904042acc eudev-3.1.5.tar.gz +md5 7e42d9b9ed8162021665139520676367 eudev-3.2.tar.gz # Locally calculated -sha256 f75885a430cd50fe4b31732f808ba7f9b2adf0f26b53b8ba2957b0c1d84b6f2a eudev-3.1.5.tar.gz +sha256 d84a5f7942393a009afc6af0bf31e98841147a0521b91ffbed161dccac303c25 eudev-3.2.tar.gz diff --git a/bsp/buildroot/package/eudev/eudev.mk b/bsp/buildroot/package/eudev/eudev.mk index 942770c4..6c616608 100644 --- a/bsp/buildroot/package/eudev/eudev.mk +++ b/bsp/buildroot/package/eudev/eudev.mk @@ -4,7 +4,7 @@ # ################################################################################ -EUDEV_VERSION = 3.1.5 +EUDEV_VERSION = 3.2 EUDEV_SOURCE = eudev-$(EUDEV_VERSION).tar.gz EUDEV_SITE = http://dev.gentoo.org/~blueness/eudev EUDEV_LICENSE = GPLv2+ (programs), LGPLv2.1+ (libraries) @@ -14,13 +14,14 @@ EUDEV_INSTALL_STAGING = YES # mq_getattr is in librt EUDEV_CONF_ENV += LIBS=-lrt -EUDEV_CONF_OPTS = \ - --disable-manpages \ - --sbindir=/sbin \ - --libexecdir=/lib \ - --with-firmware-path=/lib/firmware \ - --disable-introspection \ - --enable-libkmod +EUDEV_CONF_OPTS = \ + --disable-manpages \ + --sbindir=/sbin \ + --libexecdir=/lib \ + --with-firmware-path=/lib/firmware \ + --disable-introspection \ + --enable-kmod \ + --enable-blkid EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod EUDEV_PROVIDES = udev @@ -31,6 +32,8 @@ endif ifeq ($(BR2_PACKAGE_EUDEV_RULES_GEN),y) EUDEV_CONF_OPTS += --enable-rule-generator +else +EUDEV_CONF_OPTS += --disable-rule-generator endif ifeq ($(BR2_PACKAGE_EUDEV_ENABLE_HWDB),y) @@ -39,13 +42,6 @@ else EUDEV_CONF_OPTS += --disable-hwdb endif -ifeq ($(BR2_PACKAGE_LIBGLIB2),y) -EUDEV_CONF_OPTS += --enable-gudev -EUDEV_DEPENDENCIES += libglib2 -else -EUDEV_CONF_OPTS += --disable-gudev -endif - ifeq ($(BR2_PACKAGE_LIBSELINUX),y) EUDEV_CONF_OPTS += --enable-selinux EUDEV_DEPENDENCIES += libselinux diff --git a/bsp/buildroot/package/evemu/evemu.hash b/bsp/buildroot/package/evemu/evemu.hash index f7a0cc6c..1264bedc 100644 --- a/bsp/buildroot/package/evemu/evemu.hash +++ b/bsp/buildroot/package/evemu/evemu.hash @@ -1,2 +1,2 @@ -# Hash from http://lists.freedesktop.org/archives/input-tools/2015-October/001221.html -sha256 5b0197735f9effa25563b0412c560354bee34f8263eaddb00dd996e6ff56eb6a evemu-2.3.1.tar.xz +# Hash from https://lists.freedesktop.org/archives/input-tools/2016-April/001274.html +sha256 0706ea5a830203f9cdb30c0e10c8c41d2427128ba9041543a5ae157fa3b4a30e evemu-2.4.0.tar.xz diff --git a/bsp/buildroot/package/evemu/evemu.mk b/bsp/buildroot/package/evemu/evemu.mk index 2fce723f..992a1f72 100644 --- a/bsp/buildroot/package/evemu/evemu.mk +++ b/bsp/buildroot/package/evemu/evemu.mk @@ -4,7 +4,7 @@ # ################################################################################ -EVEMU_VERSION = 2.3.1 +EVEMU_VERSION = 2.4.0 EVEMU_SITE = http://www.freedesktop.org/software/evemu EVEMU_SOURCE = evemu-$(EVEMU_VERSION).tar.xz EVEMU_LICENSE = LGPLv3 (library), GPLv3 (tools) diff --git a/bsp/buildroot/package/evtest/evtest.hash b/bsp/buildroot/package/evtest/evtest.hash new file mode 100644 index 00000000..e131318f --- /dev/null +++ b/bsp/buildroot/package/evtest/evtest.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 9fb68236a6871c163e52433ba8f2cce142c0f4208163a2962768c13f262d549f evtest-1.33.tar.gz diff --git a/bsp/buildroot/package/exfat-utils/exfat-utils.hash b/bsp/buildroot/package/exfat-utils/exfat-utils.hash index 7bcaa331..b40e632a 100644 --- a/bsp/buildroot/package/exfat-utils/exfat-utils.hash +++ b/bsp/buildroot/package/exfat-utils/exfat-utils.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 80d3b3f21242d60d36a38a4ddb05cb7cc3a7d4eef5793e8314814937b938fcea exfat-utils-1.2.3.tar.gz +sha256 6aa51926416b9d0977b456902f4c4cd10bcce4b2d160859a7a2fc9ca6bcbbb11 exfat-utils-1.2.4.tar.gz diff --git a/bsp/buildroot/package/exfat-utils/exfat-utils.mk b/bsp/buildroot/package/exfat-utils/exfat-utils.mk index e6359bca..259c2dab 100644 --- a/bsp/buildroot/package/exfat-utils/exfat-utils.mk +++ b/bsp/buildroot/package/exfat-utils/exfat-utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -EXFAT_UTILS_VERSION = 1.2.3 +EXFAT_UTILS_VERSION = 1.2.4 EXFAT_UTILS_SITE = https://github.com/relan/exfat/releases/download/v$(EXFAT_UTILS_VERSION) EXFAT_UTILS_LICENSE = GPLv3+ EXFAT_UTILS_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/exfat/exfat.hash b/bsp/buildroot/package/exfat/exfat.hash index a6dbdac9..cf3aab19 100644 --- a/bsp/buildroot/package/exfat/exfat.hash +++ b/bsp/buildroot/package/exfat/exfat.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 f2e06eba5a21c621aac1d6da21b12a5a324fdd1e20f9c8acd357dd463c2355d9 fuse-exfat-1.2.3.tar.gz +sha256 9312d23a5d82543ad2e9ab7f0a0b471aea53eeb8eae664451c881b46d849756e fuse-exfat-1.2.4.tar.gz diff --git a/bsp/buildroot/package/exfat/exfat.mk b/bsp/buildroot/package/exfat/exfat.mk index c7904ba2..84b6001d 100644 --- a/bsp/buildroot/package/exfat/exfat.mk +++ b/bsp/buildroot/package/exfat/exfat.mk @@ -4,7 +4,7 @@ # ################################################################################ -EXFAT_VERSION = 1.2.3 +EXFAT_VERSION = 1.2.4 EXFAT_SITE = https://github.com/relan/exfat/releases/download/v$(EXFAT_VERSION) EXFAT_SOURCE = fuse-exfat-$(EXFAT_VERSION).tar.gz EXFAT_DEPENDENCIES = libfuse host-pkgconf diff --git a/bsp/buildroot/package/exim/exim.hash b/bsp/buildroot/package/exim/exim.hash index 0c0d7976..83be7319 100644 --- a/bsp/buildroot/package/exim/exim.hash +++ b/bsp/buildroot/package/exim/exim.hash @@ -1,2 +1,2 @@ -# From https://lists.exim.org/lurker/message/20150726.143052.f70a32f0.en.html -sha256 f1ccf2ce2ea51b7fbbf160e7e0e41d24ca401cf44a185128ad99ea04635fc456 exim-4.86.tar.bz2 +# Locally calculated +sha256 74691e0dff4d1b5d387e9c33c86f96a8f6d2adbc781c0dec9d2061a847b07dc9 exim-4.87.tar.bz2 diff --git a/bsp/buildroot/package/exim/exim.mk b/bsp/buildroot/package/exim/exim.mk index 62267b7e..ed7d1697 100644 --- a/bsp/buildroot/package/exim/exim.mk +++ b/bsp/buildroot/package/exim/exim.mk @@ -4,7 +4,7 @@ # ################################################################################ -EXIM_VERSION = 4.86 +EXIM_VERSION = 4.87 EXIM_SOURCE = exim-$(EXIM_VERSION).tar.bz2 EXIM_SITE = ftp://ftp.exim.org/pub/exim/exim4 EXIM_LICENSE = GPLv2+ @@ -72,7 +72,7 @@ define EXIM_USE_DEFAULT_CONFIG_FILE_OPENSSL endef endif -# only (e)glibc provides libnsl, remove -lnsl for all other toolchains +# only glibc provides libnsl, remove -lnsl for all other toolchains # http://bugs.exim.org/show_bug.cgi?id=1564 ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),) define EXIM_REMOVE_LIBNSL_FROM_MAKEFILE diff --git a/bsp/buildroot/package/expat/0001-fix-CVE-2015-1283.patch b/bsp/buildroot/package/expat/0001-fix-CVE-2015-1283.patch deleted file mode 100644 index cdebaa0f..00000000 --- a/bsp/buildroot/package/expat/0001-fix-CVE-2015-1283.patch +++ /dev/null @@ -1,76 +0,0 @@ - -Signed-off-by: Gustavo Zacarias - -diff --git a/lib/xmlparse.c b/lib/xmlparse.c ---- a/lib/xmlparse.c -+++ b/lib/xmlparse.c -@@ -1648,29 +1648,40 @@ XML_ParseBuffer(XML_Parser parser, int l - XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); - positionPtr = bufferPtr; - return result; - } - - void * XMLCALL - XML_GetBuffer(XML_Parser parser, int len) - { -+/* BEGIN MOZILLA CHANGE (sanity check len) */ -+ if (len < 0) { -+ errorCode = XML_ERROR_NO_MEMORY; -+ return NULL; -+ } -+/* END MOZILLA CHANGE */ - switch (ps_parsing) { - case XML_SUSPENDED: - errorCode = XML_ERROR_SUSPENDED; - return NULL; - case XML_FINISHED: - errorCode = XML_ERROR_FINISHED; - return NULL; - default: ; - } - - if (len > bufferLim - bufferEnd) { -- /* FIXME avoid integer overflow */ - int neededSize = len + (int)(bufferEnd - bufferPtr); -+/* BEGIN MOZILLA CHANGE (sanity check neededSize) */ -+ if (neededSize < 0) { -+ errorCode = XML_ERROR_NO_MEMORY; -+ return NULL; -+ } -+/* END MOZILLA CHANGE */ - #ifdef XML_CONTEXT_BYTES - int keep = (int)(bufferPtr - buffer); - - if (keep > XML_CONTEXT_BYTES) - keep = XML_CONTEXT_BYTES; - neededSize += keep; - #endif /* defined XML_CONTEXT_BYTES */ - if (neededSize <= bufferLim - buffer) { -@@ -1689,17 +1700,25 @@ XML_GetBuffer(XML_Parser parser, int len - } - else { - char *newBuf; - int bufferSize = (int)(bufferLim - bufferPtr); - if (bufferSize == 0) - bufferSize = INIT_BUFFER_SIZE; - do { - bufferSize *= 2; -- } while (bufferSize < neededSize); -+/* BEGIN MOZILLA CHANGE (prevent infinite loop on overflow) */ -+ } while (bufferSize < neededSize && bufferSize > 0); -+/* END MOZILLA CHANGE */ -+/* BEGIN MOZILLA CHANGE (sanity check bufferSize) */ -+ if (bufferSize <= 0) { -+ errorCode = XML_ERROR_NO_MEMORY; -+ return NULL; -+ } -+/* END MOZILLA CHANGE */ - newBuf = (char *)MALLOC(bufferSize); - if (newBuf == 0) { - errorCode = XML_ERROR_NO_MEMORY; - return NULL; - } - bufferLim = newBuf + bufferSize; - #ifdef XML_CONTEXT_BYTES - if (bufferPtr) { - diff --git a/bsp/buildroot/package/expat/expat.hash b/bsp/buildroot/package/expat/expat.hash index 30595cda..371abdec 100644 --- a/bsp/buildroot/package/expat/expat.hash +++ b/bsp/buildroot/package/expat/expat.hash @@ -1,2 +1,5 @@ -# Locally computed: -sha256 823705472f816df21c8f6aa026dd162b280806838bb55b3432b0fb1fcca7eb86 expat-2.1.0.tar.gz +# From https://sourceforge.net/projects/expat/files/expat/2.2.0/ +md5 2f47841c829facb346eb6e3fab5212e2 expat-2.2.0.tar.bz2 +sha1 8453bc52324be4c796fd38742ec48470eef358b3 expat-2.2.0.tar.bz2 +# Calculated based on the hashes above +sha256 d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff expat-2.2.0.tar.bz2 diff --git a/bsp/buildroot/package/expat/expat.mk b/bsp/buildroot/package/expat/expat.mk index cbbba8f6..e7bb74a9 100644 --- a/bsp/buildroot/package/expat/expat.mk +++ b/bsp/buildroot/package/expat/expat.mk @@ -4,12 +4,14 @@ # ################################################################################ -EXPAT_VERSION = 2.1.0 +EXPAT_VERSION = 2.2.0 EXPAT_SITE = http://downloads.sourceforge.net/project/expat/expat/$(EXPAT_VERSION) +EXPAT_SOURCE = expat-$(EXPAT_VERSION).tar.bz2 EXPAT_INSTALL_STAGING = YES EXPAT_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) installlib EXPAT_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) installlib EXPAT_DEPENDENCIES = host-pkgconf +HOST_EXPAT_DEPENDENCIES = host-pkgconf EXPAT_LICENSE = MIT EXPAT_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/explorercanvas/explorercanvas.hash b/bsp/buildroot/package/explorercanvas/explorercanvas.hash new file mode 100644 index 00000000..59e8c7a0 --- /dev/null +++ b/bsp/buildroot/package/explorercanvas/explorercanvas.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 7b8f597b5d3a2f71e87aac413e12e03d852df3dd3ac39f70e1615c9c850217ec explorercanvas-aa989ea9d9bac748638f7c66b0fc88e619715da6.tar.gz diff --git a/bsp/buildroot/package/f2fs-tools/0001-configure-add-check-for-fallocate.patch b/bsp/buildroot/package/f2fs-tools/0001-configure-add-check-for-fallocate.patch deleted file mode 100644 index b7ead76c..00000000 --- a/bsp/buildroot/package/f2fs-tools/0001-configure-add-check-for-fallocate.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 265d97d02e8ef373653c76a339869985eb3ba27a Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias -Date: Tue, 10 Mar 2015 15:10:35 -0300 -Subject: [PATCH] configure: add check for fallocate - -We need to check for fallocate() rather than just linux/falloc.h + -FALLOC_FL_PUNCH_HOLE since in uClibc we've got both but still not -fallocate() itself since it's only implemented in newer unreleased -versions. - -Status: sent upstream. - -Signed-off-by: Gustavo Zacarias ---- - configure.ac | 1 + - mkfs/f2fs_format_utils.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index ae451b8..900b84a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -68,6 +68,7 @@ AC_TYPE_SIZE_T - # Checks for library functions. - AC_FUNC_GETMNTENT - AC_CHECK_FUNCS_ONCE([ -+ fallocate - getmntent - memset - ]) -diff --git a/mkfs/f2fs_format_utils.c b/mkfs/f2fs_format_utils.c -index a0f85f5..ddeafeb 100644 ---- a/mkfs/f2fs_format_utils.c -+++ b/mkfs/f2fs_format_utils.c -@@ -46,7 +46,7 @@ int f2fs_trim_device() - #if defined(WITH_BLKDISCARD) && defined(BLKDISCARD) - MSG(0, "Info: Discarding device\n"); - if (S_ISREG(stat_buf.st_mode)) { --#ifdef FALLOC_FL_PUNCH_HOLE -+#if defined(HAVE_FALLOCATE) && defined(FALLOC_FL_PUNCH_HOLE) - if (fallocate(config.fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, - range[0], range[1]) < 0) { - MSG(0, "Info: fallocate(PUNCH_HOLE|KEEP_SIZE) is failed\n"); --- -2.0.5 - diff --git a/bsp/buildroot/package/f2fs-tools/f2fs-tools.mk b/bsp/buildroot/package/f2fs-tools/f2fs-tools.mk index e5c4a540..d3956c44 100644 --- a/bsp/buildroot/package/f2fs-tools/f2fs-tools.mk +++ b/bsp/buildroot/package/f2fs-tools/f2fs-tools.mk @@ -4,7 +4,7 @@ # ################################################################################ -F2FS_TOOLS_VERSION = fd32210229d4ad7d1c916c74a0dfc150aae4c89e +F2FS_TOOLS_VERSION = v1.6.1 F2FS_TOOLS_SITE = http://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git F2FS_TOOLS_SITE_METHOD = git F2FS_TOOLS_CONF_ENV = ac_cv_file__git=no diff --git a/bsp/buildroot/package/faifa/faifa.hash b/bsp/buildroot/package/faifa/faifa.hash new file mode 100644 index 00000000..b4c27418 --- /dev/null +++ b/bsp/buildroot/package/faifa/faifa.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 6eada81f3d21f80b5848338b627784981064d728f8e377e5cf973d31640d4489 faifa-v0.1.tar.gz diff --git a/bsp/buildroot/package/faketime/faketime.hash b/bsp/buildroot/package/faketime/faketime.hash new file mode 100644 index 00000000..a17ef852 --- /dev/null +++ b/bsp/buildroot/package/faketime/faketime.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 56bc32006f4c5b021ff648cc1fd458c5316f40aadfd2031879229a234189b031 faketime-v0.9.6.tar.gz diff --git a/bsp/buildroot/package/fastd/0001-cmake-use-INTERPROCEDURAL_OPTIMIZATION-target-proper.patch b/bsp/buildroot/package/fastd/0001-cmake-use-INTERPROCEDURAL_OPTIMIZATION-target-proper.patch index 99d20c69..489c7269 100644 --- a/bsp/buildroot/package/fastd/0001-cmake-use-INTERPROCEDURAL_OPTIMIZATION-target-proper.patch +++ b/bsp/buildroot/package/fastd/0001-cmake-use-INTERPROCEDURAL_OPTIMIZATION-target-proper.patch @@ -15,27 +15,12 @@ have very few space left on devices with only 4 MB flash memory. Signed-off-by: Alexander Dahl --- - cmake/CMakeFindBinUtils.cmake | 7 ------- - cmake/checks.cmake | 14 -------------- - src/CMakeLists.txt | 9 +++++++++ - 3 files changed, 9 insertions(+), 21 deletions(-) - delete mode 100644 cmake/CMakeFindBinUtils.cmake + cmake/checks.cmake | 14 -------------- + src/CMakeLists.txt | 9 +++++++++ + 2 files changed, 9 insertions(+), 14 deletions(-) -diff --git a/cmake/CMakeFindBinUtils.cmake b/cmake/CMakeFindBinUtils.cmake -deleted file mode 100644 -index 753577a..0000000 ---- a/cmake/CMakeFindBinUtils.cmake -+++ /dev/null -@@ -1,7 +0,0 @@ --if(CMAKE_COMPILER_IS_GNUCC) -- find_program(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -- find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}gcc-nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) -- find_program(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib HINTS ${_CMAKE_TOOLCHAIN_LOCATION}) --endif(CMAKE_COMPILER_IS_GNUCC) -- --include(${CMAKE_ROOT}/Modules/CMakeFindBinUtils.cmake) diff --git a/cmake/checks.cmake b/cmake/checks.cmake -index f9f0399..3c1f38b 100644 +index 27c073f..8a671a1 100644 --- a/cmake/checks.cmake +++ b/cmake/checks.cmake @@ -10,20 +10,6 @@ if(ARCH_X86 OR ARCH_X86_64) @@ -60,13 +45,13 @@ index f9f0399..3c1f38b 100644 #include #include diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index e7dd5d1..4991656 100644 +index 829b3ab..7612b40 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -47,6 +47,15 @@ add_executable(fastd +@@ -48,6 +48,15 @@ add_executable(fastd set_property(TARGET fastd PROPERTY COMPILE_FLAGS "${FASTD_CFLAGS}") - set_property(TARGET fastd PROPERTY LINK_FLAGS "${PTHREAD_LDFLAGS} ${UECC_LDFLAGS_OTHER} ${NACL_LDFLAGS_OTHER} ${OPENSSL_CRYPTO_LDFLAGS_OTHER} ${JSONC_LDFLAGS_OTHER} ${LDFLAGS_LTO}") - set_property(TARGET fastd APPEND PROPERTY INCLUDE_DIRECTORIES ${CAP_INCLUDE_DIR} ${NACL_INCLUDE_DIRS} ${JSONC_INCLUDE_DIRS}) + set_property(TARGET fastd PROPERTY LINK_FLAGS "${PTHREAD_LDFLAGS} ${LIBUECC_LDFLAGS_OTHER} ${NACL_LDFLAGS_OTHER} ${JSON_C_LDFLAGS_OTHER} ${LDFLAGS_LTO}") + set_property(TARGET fastd APPEND PROPERTY INCLUDE_DIRECTORIES ${LIBCAP_INCLUDE_DIR} ${NACL_INCLUDE_DIRS} ${JSON_C_INCLUDE_DIR}) +if(ENABLE_LTO) + set_target_properties(fastd PROPERTIES + INTERPROCEDURAL_OPTIMIZATION ON @@ -76,7 +61,7 @@ index e7dd5d1..4991656 100644 + INTERPROCEDURAL_OPTIMIZATION OFF + ) +endif(ENABLE_LTO) - target_link_libraries(fastd protocols methods ciphers macs ${RT_LIBRARY} ${CAP_LIBRARY} ${UECC_LIBRARIES} ${NACL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES} ${JSONC_LIBRARIES}) + target_link_libraries(fastd protocols methods ciphers macs ${RT_LIBRARY} ${LIBCAP_LIBRARY} ${LIBUECC_LIBRARIES} ${NACL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} ${JSON_C_LIBRARIES}) add_dependencies(fastd version) -- diff --git a/bsp/buildroot/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch b/bsp/buildroot/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch deleted file mode 100644 index 9036ae58..00000000 --- a/bsp/buildroot/package/fastd/0002-Don-t-depend-on-net-if_ether.h.patch +++ /dev/null @@ -1,261 +0,0 @@ -From 8ed750311482824e427db3b8b2cec6842ea8bc96 Mon Sep 17 00:00:00 2001 -From: Matthias Schiffer -Date: Thu, 25 Jun 2015 01:03:23 +0200 -Subject: [PATCH] Don't depend on net/if_ether.h - -Instead of adding compatiblity code to make this work with musl, just -duplicate the needed definitions in fastd. - -[Backport from upstream commit 9ac7f3588dda7d175e04878e7b871a88306d13bf. -Fixes missing 'sys/queue.h' issue when building with musl.] - -Signed-off-by: Rodrigo Rebello ---- - cmake/checks.cmake | 5 ----- - src/compat.h | 22 ---------------------- - src/config.y | 1 + - src/fastd.h | 15 +++++++++++---- - src/fastd_config.h.in | 3 --- - src/log.c | 2 +- - src/peer.c | 7 ++++--- - src/receive.c | 2 +- - src/send.c | 2 +- - src/socket.c | 2 ++ - src/status.c | 1 + - src/types.h | 1 + - 12 files changed, 23 insertions(+), 40 deletions(-) - -diff --git a/cmake/checks.cmake b/cmake/checks.cmake -index f9f0399..62d52ff 100644 ---- a/cmake/checks.cmake -+++ b/cmake/checks.cmake -@@ -54,11 +54,6 @@ if(NOT DARWIN) - endif(NOT DARWIN) - - --set(CMAKE_EXTRA_INCLUDE_FILES "netinet/if_ether.h") --check_type_size("struct ethhdr" SIZEOF_ETHHDR) --string(COMPARE NOTEQUAL "${SIZEOF_ETHHDR}" "" HAVE_ETHHDR) -- -- - set(CMAKE_REQUIRED_INCLUDES "sys/types.h") - - if(NOT DARWIN) -diff --git a/src/compat.h b/src/compat.h -index 991c268..29c9253 100644 ---- a/src/compat.h -+++ b/src/compat.h -@@ -39,32 +39,10 @@ - #include - - #include --#include - #include - --#include --#include - #include --#include - --#ifndef ETH_ALEN --/** The length of a MAC address */ --#define ETH_ALEN 6 --#endif -- --#ifndef ETH_HLEN --/** The length of the standard ethernet header */ --#define ETH_HLEN 14 --#endif -- --#ifndef HAVE_ETHHDR --/** An ethernet header */ --struct ethhdr { -- uint8_t h_dest[ETH_ALEN]; /**< The destination MAC address field */ -- uint8_t h_source[ETH_ALEN]; /**< The source MAC address field */ -- uint16_t h_proto; /**< The EtherType/length field */ --} __attribute__((packed)); --#endif - - #if defined(USE_FREEBIND) && !defined(IP_FREEBIND) - /** Compatiblity define for systems supporting, but not defining IP_FREEBIND */ -diff --git a/src/config.y b/src/config.y -index f2f597f..5b00d7c 100644 ---- a/src/config.y -+++ b/src/config.y -@@ -33,6 +33,7 @@ - %code requires { - #include - #include -+ #include - } - - %union { -diff --git a/src/fastd.h b/src/fastd.h -index f1b2f93..ec2316b 100644 ---- a/src/fastd.h -+++ b/src/fastd.h -@@ -58,7 +58,14 @@ - - /** An ethernet address */ - struct __attribute__((__packed__)) fastd_eth_addr { -- uint8_t data[ETH_ALEN]; /**< The bytes of the address */ -+ uint8_t data[6]; /**< The bytes of the address */ -+}; -+ -+/** An ethernet header */ -+struct __attribute__((packed)) fastd_eth_header { -+ fastd_eth_addr_t dest; /**< The destination MAC address field */ -+ fastd_eth_addr_t source; /**< The source MAC address field */ -+ uint16_t proto; /**< The EtherType/length field */ - }; - - -@@ -408,7 +415,7 @@ static inline void fastd_setnonblock(int fd) { - static inline size_t fastd_max_payload(void) { - switch (conf.mode) { - case MODE_TAP: -- return conf.mtu+ETH_HLEN; -+ return conf.mtu + sizeof(fastd_eth_header_t); - case MODE_TUN: - return conf.mtu; - default: -@@ -420,14 +427,14 @@ static inline size_t fastd_max_payload(void) { - /** Returns the source address of an ethernet packet */ - static inline fastd_eth_addr_t fastd_buffer_source_address(const fastd_buffer_t buffer) { - fastd_eth_addr_t ret; -- memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_source), ETH_ALEN); -+ memcpy(&ret, buffer.data + offsetof(fastd_eth_header_t, source), sizeof(fastd_eth_addr_t)); - return ret; - } - - /** Returns the destination address of an ethernet packet */ - static inline fastd_eth_addr_t fastd_buffer_dest_address(const fastd_buffer_t buffer) { - fastd_eth_addr_t ret; -- memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_dest), ETH_ALEN); -+ memcpy(&ret, buffer.data + offsetof(fastd_eth_header_t, dest), sizeof(fastd_eth_addr_t)); - return ret; - } - -diff --git a/src/fastd_config.h.in b/src/fastd_config.h.in -index 6a55930..5f9c868 100644 ---- a/src/fastd_config.h.in -+++ b/src/fastd_config.h.in -@@ -35,9 +35,6 @@ - /** Defined if the platform supports the AI_ADDRCONFIG flag to getaddrinfo() */ - #cmakedefine HAVE_AI_ADDRCONFIG - --/** Defined if the platform defines the \e ethhdr struct */ --#cmakedefine HAVE_ETHHDR -- - /** Defined if the platform defines get_current_dir_name() */ - #cmakedefine HAVE_GET_CURRENT_DIR_NAME - -diff --git a/src/log.c b/src/log.c -index 7d1538a..0727bbb 100644 ---- a/src/log.c -+++ b/src/log.c -@@ -74,7 +74,7 @@ size_t fastd_snprint_peer_address(char *buffer, size_t size, const fastd_peer_ad - if (!bind_address && hide) - return snprintf_safe(buffer, size, "[hidden]:%u", ntohs(address->in6.sin6_port)); - if (inet_ntop(AF_INET6, &address->in6.sin6_addr, addr_buf, sizeof(addr_buf))) { -- char ifname_buf[IF_NAMESIZE]; -+ char ifname_buf[IFNAMSIZ]; - if (!iface && IN6_IS_ADDR_LINKLOCAL(&address->in6.sin6_addr)) - iface = if_indextoname(address->in6.sin6_scope_id, ifname_buf); - -diff --git a/src/peer.c b/src/peer.c -index 9ce5ca2..3313112 100644 ---- a/src/peer.c -+++ b/src/peer.c -@@ -34,13 +34,14 @@ - #include "poll.h" - - #include -+#include - #include - - - /** Adds peer-specific fields to \e env */ - void fastd_peer_set_shell_env(fastd_shell_env_t *env, const fastd_peer_t *peer, const fastd_peer_address_t *local_addr, const fastd_peer_address_t *peer_addr) { -- /* both INET6_ADDRSTRLEN and IFNAMESIZE already include space for the zero termination, so there is no need to add space for the '%' here. */ -- char buf[INET6_ADDRSTRLEN+IF_NAMESIZE]; -+ /* both INET6_ADDRSTRLEN and IFNAMSIZ already include space for the zero termination, so there is no need to add space for the '%' here. */ -+ char buf[INET6_ADDRSTRLEN+IFNAMSIZ]; - - fastd_shell_env_set(env, "PEER_NAME", peer ? peer->name : NULL); - -@@ -850,7 +851,7 @@ void fastd_peer_set_established(fastd_peer_t *peer) { - - /** Compares two MAC addresses */ - static inline int eth_addr_cmp(const fastd_eth_addr_t *addr1, const fastd_eth_addr_t *addr2) { -- return memcmp(addr1->data, addr2->data, ETH_ALEN); -+ return memcmp(addr1->data, addr2->data, sizeof(fastd_eth_addr_t)); - } - - /** Compares two fastd_peer_eth_addr_t entries by their MAC addresses */ -diff --git a/src/receive.c b/src/receive.c -index 2ee402a..6db5cfd 100644 ---- a/src/receive.c -+++ b/src/receive.c -@@ -289,7 +289,7 @@ void fastd_receive(fastd_socket_t *sock) { - /** Handles a received and decrypted payload packet */ - void fastd_handle_receive(fastd_peer_t *peer, fastd_buffer_t buffer, bool reordered) { - if (conf.mode == MODE_TAP) { -- if (buffer.len < ETH_HLEN) { -+ if (buffer.len < sizeof(fastd_eth_header_t)) { - pr_debug("received truncated packet"); - fastd_buffer_free(buffer); - return; -diff --git a/src/send.c b/src/send.c -index caa7312..6d9f66f 100644 ---- a/src/send.c -+++ b/src/send.c -@@ -209,7 +209,7 @@ static inline bool send_data_tap_single(fastd_buffer_t buffer, fastd_peer_t *sou - if (conf.mode != MODE_TAP) - return false; - -- if (buffer.len < ETH_HLEN) { -+ if (buffer.len < sizeof(fastd_eth_header_t)) { - pr_debug("truncated ethernet packet"); - fastd_buffer_free(buffer); - return true; -diff --git a/src/socket.c b/src/socket.c -index e932148..03a11a6 100644 ---- a/src/socket.c -+++ b/src/socket.c -@@ -32,6 +32,8 @@ - #include "fastd.h" - #include "poll.h" - -+#include -+ - - /** - Creates a new socket bound to a specific address -diff --git a/src/status.c b/src/status.c -index d0b8511..27d6b38 100644 ---- a/src/status.c -+++ b/src/status.c -@@ -39,6 +39,7 @@ - #include "peer.h" - - #include -+#include - #include - - -diff --git a/src/types.h b/src/types.h -index f380541..b684621 100644 ---- a/src/types.h -+++ b/src/types.h -@@ -87,6 +87,7 @@ typedef struct fastd_bind_address fastd_bind_address_t; - typedef struct fastd_socket fastd_socket_t; - typedef struct fastd_peer_group fastd_peer_group_t; - typedef struct fastd_eth_addr fastd_eth_addr_t; -+typedef struct fastd_eth_header fastd_eth_header_t; - typedef struct fastd_peer fastd_peer_t; - typedef struct fastd_peer_eth_addr fastd_peer_eth_addr_t; - typedef struct fastd_remote fastd_remote_t; --- -2.1.4 - diff --git a/bsp/buildroot/package/fastd/Config.in b/bsp/buildroot/package/fastd/Config.in index 55bdbd63..546d4494 100644 --- a/bsp/buildroot/package/fastd/Config.in +++ b/bsp/buildroot/package/fastd/Config.in @@ -2,7 +2,6 @@ config BR2_PACKAGE_FASTD bool "fastd" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap depends on !BR2_STATIC_LIBS # libuecc select BR2_PACKAGE_LIBUECC select BR2_PACKAGE_LIBSODIUM @@ -24,8 +23,7 @@ config BR2_PACKAGE_FASTD_STATUS_SOCKET endif -comment "fastd needs a toolchain w/ threads, headers >= 3.0, dynamic library" +comment "fastd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS \ - || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \ || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/fastd/fastd.hash b/bsp/buildroot/package/fastd/fastd.hash new file mode 100644 index 00000000..3c6a99e9 --- /dev/null +++ b/bsp/buildroot/package/fastd/fastd.hash @@ -0,0 +1,4 @@ +# from https://projects.universe-factory.net/projects/fastd/files +md5 e53236d3049f64f7955ad9556da099eb fastd-18.tar.xz +# computed locally +sha256 714ff09d7bd75f79783f744f6f8c5af2fe456c8cf876feaa704c205a73e043c9 fastd-18.tar.xz diff --git a/bsp/buildroot/package/fastd/fastd.mk b/bsp/buildroot/package/fastd/fastd.mk index 4c2626f3..0e510db8 100644 --- a/bsp/buildroot/package/fastd/fastd.mk +++ b/bsp/buildroot/package/fastd/fastd.mk @@ -4,8 +4,9 @@ # ################################################################################ -FASTD_VERSION = v17 -FASTD_SITE = git://git.universe-factory.net/fastd +FASTD_VERSION = 18 +FASTD_SITE = https://projects.universe-factory.net/attachments/download/86 +FASTD_SOURCE = fastd-$(FASTD_VERSION).tar.xz FASTD_LICENSE = BSD-2c FASTD_LICENSE_FILES = COPYRIGHT FASTD_CONF_OPTS = -DENABLE_LIBSODIUM=ON diff --git a/bsp/buildroot/package/fb-test-app/fb-test-app.hash b/bsp/buildroot/package/fb-test-app/fb-test-app.hash new file mode 100644 index 00000000..7f737531 --- /dev/null +++ b/bsp/buildroot/package/fb-test-app/fb-test-app.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 6baf6b45968d0bb9a5527c6c4bf18661e9f9eb9be973a6d1952c38168c90d58f fb-test-app-rosetta-1.1.0.tar.gz diff --git a/bsp/buildroot/package/fbset/0001-Fix-musl-compile.patch b/bsp/buildroot/package/fbset/0001-Fix-musl-compile.patch new file mode 100644 index 00000000..65d84c57 --- /dev/null +++ b/bsp/buildroot/package/fbset/0001-Fix-musl-compile.patch @@ -0,0 +1,33 @@ +From 6d42be24b62b94df8e2f01956842b7ee4b640e97 Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Mon, 11 Jul 2016 22:07:42 +0200 +Subject: [PATCH] Fix musl compile. + +Unconditional include for __u32 type. + +Fixes: + + error: unknown type name '__u32' + +Signed-off-by: Peter Seiderer +--- + fbset.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/fbset.h b/fbset.h +index 9b1d2ac..3c511e1 100644 +--- a/fbset.h ++++ b/fbset.h +@@ -15,9 +15,7 @@ + #include + #include + +-#ifdef __GLIBC__ + #include +-#endif + + #define VERSION "Linux Frame Buffer Device Configuration " \ + "Version 2.1 (23/06/1999)\n" \ +-- +2.8.1 + diff --git a/bsp/buildroot/package/fbset/Config.in b/bsp/buildroot/package/fbset/Config.in index 96d090ec..c3f8d0ba 100644 --- a/bsp/buildroot/package/fbset/Config.in +++ b/bsp/buildroot/package/fbset/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_FBSET bool "fbset" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Fbset is a system utility to show or change the settings of the frame buffer device. The frame buffer device provides a simple and unique diff --git a/bsp/buildroot/package/fbterm/0003-C++11-compliance.patch b/bsp/buildroot/package/fbterm/0003-C++11-compliance.patch new file mode 100644 index 00000000..1a06da3d --- /dev/null +++ b/bsp/buildroot/package/fbterm/0003-C++11-compliance.patch @@ -0,0 +1,93 @@ +lib/vterm_states: fix C++11 compliance + +In C++11, narrowing a type is no longer allowed in structure +initializers: + + struct foo { u16 u; }; + foo f[] = { {0}, {-1} }; + +results in the gcc-6 to whine out loudly, and fail: + + error: narrowing conversion of ‘-1’ from ‘int’ to ‘u16 {aka short unsigned int}’ inside { } [-Wnarrowing] + }; + ^ + +Signed-off-by: "Yann E. MORIN" + +diff -durN fbterm-1.7.0.orig/src/lib/vterm_states.cpp fbterm-1.7.0/src/lib/vterm_states.cpp +--- fbterm-1.7.0.orig/src/lib/vterm_states.cpp 2010-10-06 06:23:08.000000000 +0200 ++++ fbterm-1.7.0/src/lib/vterm_states.cpp 2016-08-13 16:54:29.495451127 +0200 +@@ -22,6 +22,7 @@ + #include "vterm.h" + + #define ADDSAME(len) ((len) << 8) ++#define ENDSEQ { ((u16)-1) } + + const VTerm::Sequence VTerm::control_sequences[] = { + { 0, 0, ESkeep }, +@@ -39,14 +40,14 @@ + { 0x1B, 0, ESesc }, + { 0x7F, 0, ESkeep }, + { 0x9B, 0, ESsquare }, +- { -1} ++ ENDSEQ + }; + + const VTerm::Sequence VTerm::escape_sequences[] = { + { 0, 0, ESnormal }, + + // ESnormal +- { -1 }, ++ ENDSEQ, + + // ESesc + { '[', &VTerm::clear_param, ESsquare }, +@@ -65,7 +66,7 @@ + { '8', &VTerm::restore_cursor, ESnormal }, + { '>', &VTerm::keypad_numeric, ESnormal }, + { '=', &VTerm::keypad_application, ESnormal }, +- { -1 }, ++ ENDSEQ, + + // ESsquare + { '[', 0, ESfunckey }, +@@ -104,7 +105,7 @@ + { '`', &VTerm::cursor_position_col, ESnormal }, + { ']', &VTerm::linux_specific, ESnormal }, + { '}', &VTerm::fbterm_specific, ESnormal }, +- { -1 }, ++ ENDSEQ, + + // ESnonstd + { '0' | ADDSAME(9), &VTerm::set_palette, ESkeep }, +@@ -112,25 +113,25 @@ + { 'a' | ADDSAME(5), &VTerm::set_palette, ESkeep }, + { 'P', &VTerm::begin_set_palette, ESkeep }, + { 'R', &VTerm::reset_palette, ESnormal }, +- { -1 }, ++ ENDSEQ, + + // ESpercent + { '@', &VTerm::clear_utf8, ESnormal }, + { 'G', &VTerm::set_utf8, ESnormal }, + { '8', &VTerm::set_utf8, ESnormal }, +- { -1 }, ++ ENDSEQ, + + // EScharset + { '0', &VTerm::set_charset, ESnormal }, + { 'B', &VTerm::set_charset, ESnormal }, + { 'U', &VTerm::set_charset, ESnormal }, + { 'K', &VTerm::set_charset, ESnormal }, +- { -1 }, ++ ENDSEQ, + + // EShash + { '8', &VTerm::screen_align, ESnormal }, +- { -1 }, ++ ENDSEQ, + + // ESfunckey +- { -1 }, ++ ENDSEQ, + }; diff --git a/bsp/buildroot/package/fbterm/Config.in b/bsp/buildroot/package/fbterm/Config.in index 2c9d6d45..3ab8bdb4 100644 --- a/bsp/buildroot/package/fbterm/Config.in +++ b/bsp/buildroot/package/fbterm/Config.in @@ -1,6 +1,9 @@ config BR2_PACKAGE_FBTERM bool "fbterm" - depends on (BR2_INSTALL_LIBSTDCPP && BR2_ENABLE_LOCALE && BR2_USE_WCHAR) + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_ENABLE_LOCALE + depends on BR2_USE_WCHAR + depends on BR2_USE_MMU # fork() select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_LIBERATION help @@ -10,4 +13,5 @@ config BR2_PACKAGE_FBTERM http://code.google.com/p/fbterm/ comment "fbterm needs a toolchain w/ C++, wchar, locale" + depends on BR2_USE_MMU depends on !(BR2_INSTALL_LIBSTDCPP && BR2_ENABLE_LOCALE && BR2_USE_WCHAR) diff --git a/bsp/buildroot/package/fbtft/fbtft.hash b/bsp/buildroot/package/fbtft/fbtft.hash new file mode 100644 index 00000000..894d9794 --- /dev/null +++ b/bsp/buildroot/package/fbtft/fbtft.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 0e81de89fdd7ab810716fc0549e767527f342e829309dee5c2cca1e9d1728770 fbtft-274035404701245e7491c0c6471c5b72ade4d491.tar.gz diff --git a/bsp/buildroot/package/fcgiwrap/0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch b/bsp/buildroot/package/fcgiwrap/0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch new file mode 100644 index 00000000..e88706f8 --- /dev/null +++ b/bsp/buildroot/package/fcgiwrap/0002-link-with-libsystemd-instead-of-libsystemd-daemon.patch @@ -0,0 +1,20 @@ +configure.ac: Check for libsystemd, not libsystemd-daemon. + +Newer versions of systemd do not provide libsystemd-daemon anymore. +Therefore, use libsystemd instead. + +Signed-off-by: Thomas Claveirole + +diff --git a/configure.ac b/configure.ac +index bb3674e..2b02ef4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -28,7 +28,7 @@ AC_ARG_WITH([systemd], + [], [with_systemd=check]) + have_systemd=no + if test "x$with_systemd" != "xno"; then +- PKG_CHECK_MODULES(systemd, [libsystemd-daemon], ++ PKG_CHECK_MODULES(systemd, [libsystemd], + [AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is available]) + have_systemd=yes], + have_systemd=no) diff --git a/bsp/buildroot/package/fcgiwrap/Config.in b/bsp/buildroot/package/fcgiwrap/Config.in index c3a31fc8..b1dbd72d 100644 --- a/bsp/buildroot/package/fcgiwrap/Config.in +++ b/bsp/buildroot/package/fcgiwrap/Config.in @@ -7,4 +7,4 @@ config BR2_PACKAGE_FCGIWRAP over FastCGI. It hopes to provide clean CGI support to Nginx (and other web servers that may need it). - https://nginx.localdomain.pl/wiki/FcgiWrap + https://github.com/gnosek/fcgiwrap diff --git a/bsp/buildroot/package/fcgiwrap/fcgiwrap.hash b/bsp/buildroot/package/fcgiwrap/fcgiwrap.hash new file mode 100644 index 00000000..4ad8b0bb --- /dev/null +++ b/bsp/buildroot/package/fcgiwrap/fcgiwrap.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 c72f2933669ebd21605975c5a11f26b9739e32e4f9d324fb9e1a1925e9c2ae88 fcgiwrap-99c942c90063c73734e56bacaa65f947772d9186.tar.gz diff --git a/bsp/buildroot/package/fcgiwrap/fcgiwrap.mk b/bsp/buildroot/package/fcgiwrap/fcgiwrap.mk index 698a1308..dd74c1ef 100644 --- a/bsp/buildroot/package/fcgiwrap/fcgiwrap.mk +++ b/bsp/buildroot/package/fcgiwrap/fcgiwrap.mk @@ -4,11 +4,11 @@ # ################################################################################ -FCGIWRAP_VERSION = 1.1.0 +FCGIWRAP_VERSION = 99c942c90063c73734e56bacaa65f947772d9186 FCGIWRAP_SITE = $(call github,gnosek,fcgiwrap,$(FCGIWRAP_VERSION)) FCGIWRAP_DEPENDENCIES = host-pkgconf libfcgi FCGIWRAP_LICENSE = MIT -FCGIWRAP_LICENSE_FILES = fcgiwrap.c +FCGIWRAP_LICENSE_FILES = COPYING FCGIWRAP_AUTORECONF = YES ifeq ($(BR2_PACKAGE_SYSTEMD),y) diff --git a/bsp/buildroot/package/fdk-aac/fdk-aac.mk b/bsp/buildroot/package/fdk-aac/fdk-aac.mk index a872c540..45a3cf5e 100644 --- a/bsp/buildroot/package/fdk-aac/fdk-aac.mk +++ b/bsp/buildroot/package/fdk-aac/fdk-aac.mk @@ -11,4 +11,7 @@ FDK_AAC_LICENSE_FILES = NOTICE FDK_AAC_INSTALL_STAGING = YES +# Not compatible with GCC 6 which defaults to GNU++14 +FDK_AAC_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=gnu++98" + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/feh/feh.hash b/bsp/buildroot/package/feh/feh.hash index 396f33d2..9d158e25 100644 --- a/bsp/buildroot/package/feh/feh.hash +++ b/bsp/buildroot/package/feh/feh.hash @@ -1,2 +1,2 @@ -# Locally computed: -sha256 3829cd8995ec7cc08095a2b22a6c98d1e2638bd87c8b4f0e85a059c6f0edbc48 feh-2.14.tar.bz2 +# Locally calculated after checking pgp signature +sha256 6e55289a3be4495a437a0b037c7b5e86edf64ec74ab63d2d26fa50df1b62b6b3 feh-2.16.1.tar.bz2 diff --git a/bsp/buildroot/package/feh/feh.mk b/bsp/buildroot/package/feh/feh.mk index 7381e252..f5cc97fb 100644 --- a/bsp/buildroot/package/feh/feh.mk +++ b/bsp/buildroot/package/feh/feh.mk @@ -4,7 +4,7 @@ # ################################################################################ -FEH_VERSION = 2.14 +FEH_VERSION = 2.16.1 FEH_SOURCE = feh-$(FEH_VERSION).tar.bz2 FEH_SITE = http://feh.finalrewind.org FEH_DEPENDENCIES = libcurl imlib2 libpng xlib_libXinerama xlib_libXt diff --git a/bsp/buildroot/package/fetchmail/fetchmail.mk b/bsp/buildroot/package/fetchmail/fetchmail.mk index a198dc52..6aa0a2c9 100644 --- a/bsp/buildroot/package/fetchmail/fetchmail.mk +++ b/bsp/buildroot/package/fetchmail/fetchmail.mk @@ -23,4 +23,14 @@ FETCHMAIL_DEPENDENCIES = \ openssl \ $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) +# fetchmailconf.py script is not (yet) python3-compliant. +# Prevent the pyc-compilation with python-3 from failing by removing this +# non-critical script. +ifeq ($(BR2_PACKAGE_PYTHON3),y) +define FETCHMAIL_REMOVE_FETCHMAILCONF_PY + $(RM) -f $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/fetchmailconf.py +endef +FETCHMAIL_POST_INSTALL_TARGET_HOOKS += FETCHMAIL_REMOVE_FETCHMAILCONF_PY +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/ffmpeg/0013-add-public-version-of-ff_read_frame_flush.patch b/bsp/buildroot/package/ffmpeg/0013-add-public-version-of-ff_read_frame_flush.patch deleted file mode 100644 index 58a91e2e..00000000 --- a/bsp/buildroot/package/ffmpeg/0013-add-public-version-of-ff_read_frame_flush.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 7d7ce18ff0d24b586634fa6e631fa0eec7865aae Mon Sep 17 00:00:00 2001 -From: elupus -Date: Tue, 1 Nov 2011 20:18:35 +0100 -Subject: [PATCH 13/13] add public version of ff_read_frame_flush - -We need this since we sometimes seek on the -input stream behind ffmpeg's back. After this -all data need to be flushed completely. - -Patch part of the XBMC patch set for ffmpeg, downloaded from -https://github.com/xbmc/FFmpeg/. - -Signed-off-by: Bernd Kuhls ---- - libavformat/avformat.h | 5 +++++ - libavformat/utils.c | 5 +++++ - 2 files changed, 10 insertions(+) - -diff --git a/libavformat/avformat.h b/libavformat/avformat.h -index 2e54ed1..3a9f292 100644 ---- a/libavformat/avformat.h -+++ b/libavformat/avformat.h -@@ -2121,6 +2121,11 @@ int av_find_best_stream(AVFormatContext *ic, - int av_read_frame(AVFormatContext *s, AVPacket *pkt); - - /** -+ * Clear out any buffered data in context -+ */ -+void av_read_frame_flush(AVFormatContext *s); -+ -+/** - * Seek to the keyframe at timestamp. - * 'timestamp' in 'stream_index'. - * -diff --git a/libavformat/utils.c b/libavformat/utils.c -index f4fb172..10dda18 100644 ---- a/libavformat/utils.c -+++ b/libavformat/utils.c -@@ -1624,6 +1624,11 @@ void ff_read_frame_flush(AVFormatContext *s) - } - } - -+void av_read_frame_flush(AVFormatContext *s) -+{ -+ ff_read_frame_flush(s); -+} -+ - void ff_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp) - { - int i; --- -2.1.0 - diff --git a/bsp/buildroot/package/ffmpeg/0013-bfin-disable-optimization.patch b/bsp/buildroot/package/ffmpeg/0013-bfin-disable-optimization.patch new file mode 100644 index 00000000..1d8a4f01 --- /dev/null +++ b/bsp/buildroot/package/ffmpeg/0013-bfin-disable-optimization.patch @@ -0,0 +1,26 @@ +Fix bfin compile error + +See gcc bug report: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77311 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur ffmpeg-2.8.7.orig/libavcodec/hevcdsp_template.c ffmpeg-2.8.7/libavcodec/hevcdsp_template.c +--- ffmpeg-2.8.7.orig/libavcodec/hevcdsp_template.c 2016-03-29 04:25:16.000000000 +0200 ++++ ffmpeg-2.8.7/libavcodec/hevcdsp_template.c 2016-08-12 21:32:36.728178969 +0200 +@@ -1517,7 +1517,14 @@ + #define TQ2 pix[2 * xstride + 3 * ystride] + #define TQ3 pix[3 * xstride + 3 * ystride] + +-static void FUNC(hevc_loop_filter_luma)(uint8_t *_pix, ++// Blackfin gcc 6.1.x fails with ++// unable to find a register to spill in class CCREGS ++#if defined(__bfin__) ++#define disable_opt __attribute__ ((optimize("O1"))) ++#else ++#define disable_opt ++#endif ++static void disable_opt FUNC(hevc_loop_filter_luma)(uint8_t *_pix, + ptrdiff_t _xstride, ptrdiff_t _ystride, + int beta, int *_tc, + uint8_t *_no_p, uint8_t *_no_q) diff --git a/bsp/buildroot/package/ffmpeg/Config.in b/bsp/buildroot/package/ffmpeg/Config.in index a273aead..3a7bfd31 100644 --- a/bsp/buildroot/package/ffmpeg/Config.in +++ b/bsp/buildroot/package/ffmpeg/Config.in @@ -1,7 +1,14 @@ +config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + bool + # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 + # ffmpeg's configure script only supports mips64 (r1) variant + # No support for ARMv7-M in the ARM assembly logic + default y if !BR2_nios2 && !BR2_mips_64r2 && !BR2_mips_64r6 && \ + !BR2_ARM_CPU_ARMV7M + menuconfig BR2_PACKAGE_FFMPEG bool "ffmpeg" - # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 - depends on !BR2_nios2 + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS help FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. diff --git a/bsp/buildroot/package/ffmpeg/ffmpeg.hash b/bsp/buildroot/package/ffmpeg/ffmpeg.hash index 8643bff6..3120a7aa 100644 --- a/bsp/buildroot/package/ffmpeg/ffmpeg.hash +++ b/bsp/buildroot/package/ffmpeg/ffmpeg.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 25bcedbdafadac3d09c325c1d46a51f53d858b26a260d5aed6b4f17fea6e07fa ffmpeg-2.8.6.tar.xz +sha256 97be8a6c1cab2c52015544f76d40f6fd0babcb1b40cf601b4e57fb818564157c ffmpeg-2.8.7.tar.xz diff --git a/bsp/buildroot/package/ffmpeg/ffmpeg.mk b/bsp/buildroot/package/ffmpeg/ffmpeg.mk index ddfac207..5a196179 100644 --- a/bsp/buildroot/package/ffmpeg/ffmpeg.mk +++ b/bsp/buildroot/package/ffmpeg/ffmpeg.mk @@ -4,7 +4,7 @@ # ################################################################################ -FFMPEG_VERSION = 2.8.6 +FFMPEG_VERSION = 2.8.7 FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz FFMPEG_SITE = http://ffmpeg.org/releases FFMPEG_INSTALL_STAGING = YES @@ -36,7 +36,6 @@ FFMPEG_CONF_OPTS = \ --enable-mdct \ --enable-rdft \ --disable-crystalhd \ - --disable-vdpau \ --disable-dxva2 \ --enable-runtime-cpudetect \ --disable-hardcoded-tables \ @@ -225,6 +224,10 @@ else FFMPEG_CONF_OPTS += --disable-libdcadec endif +ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBEBUR128),yy) +FFMPEG_DEPENDENCIES += libebur128 +endif + ifeq ($(BR2_PACKAGE_LIBOPENH264),y) FFMPEG_CONF_OPTS += --enable-libopenh264 FFMPEG_DEPENDENCIES += libopenh264 @@ -247,6 +250,13 @@ else FFMPEG_CONF_OPTS += --disable-vaapi endif +ifeq ($(BR2_PACKAGE_LIBVDPAU),y) +FFMPEG_CONF_OPTS += --enable-vdpau +FFMPEG_DEPENDENCIES += libvdpau +else +FFMPEG_CONF_OPTS += --disable-vdpau +endif + ifeq ($(BR2_PACKAGE_OPUS),y) FFMPEG_CONF_OPTS += --enable-libopus FFMPEG_DEPENDENCIES += opus @@ -427,14 +437,15 @@ FFMPEG_CONF_OPTS += --disable-vfp endif ifeq ($(BR2_ARM_CPU_HAS_NEON),y) FFMPEG_CONF_OPTS += --enable-neon +else +FFMPEG_CONF_OPTS += --disable-neon endif +ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y) ifeq ($(BR2_MIPS_SOFT_FLOAT),y) -FFMPEG_CONF_OPTS += \ - --disable-mipsfpu +FFMPEG_CONF_OPTS += --disable-mipsfpu else -FFMPEG_CONF_OPTS += \ - --enable-mipsfpu +FFMPEG_CONF_OPTS += --enable-mipsfpu endif ifeq ($(BR2_mips_32r2),y) @@ -444,6 +455,7 @@ else FFMPEG_CONF_OPTS += \ --disable-mips32r2 endif +endif # MIPS ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y) FFMPEG_CONF_OPTS += --enable-altivec diff --git a/bsp/buildroot/package/fftw/fftw.mk b/bsp/buildroot/package/fftw/fftw.mk index 5045ab6f..5bd39a8f 100644 --- a/bsp/buildroot/package/fftw/fftw.mk +++ b/bsp/buildroot/package/fftw/fftw.mk @@ -10,7 +10,13 @@ FFTW_INSTALL_STAGING = YES FFTW_LICENSE = GPLv2+ FFTW_LICENSE_FILES = COPYING -FFTW_CONF_OPTS = --disable-fortran +# fortran support only enables generation and installation of fortran sources +ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y) +FFTW_CONF_OPTS += --enable-fortran +FFTW_CONF_ENV += FLIBS="-lgfortran -lm" +else +FFTW_CONF_OPTS += --disable-fortran +endif FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_SINGLE),--enable,--disable)-single FFTW_CONF_OPTS += $(if $(BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE),--enable,--disable)-long-double @@ -31,7 +37,8 @@ FFTW_CFLAGS += $(if $(BR2_PACKAGE_FFTW_USE_NEON),-mfpu=neon) # Generic optimisations ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) -FFTW_CONF_OPTS += --enable-threads --with-combined-threads +FFTW_CONF_OPTS += --enable-threads +FFTW_CONF_OPTS += $(if $(BR2_GCC_ENABLE_OPENMP),--without,--with)-combined-threads else FFTW_CONF_OPTS += --disable-threads endif diff --git a/bsp/buildroot/package/ficl/0001-fix-Makefile.patch b/bsp/buildroot/package/ficl/0001-fix-Makefile.patch new file mode 100644 index 00000000..d5a25c43 --- /dev/null +++ b/bsp/buildroot/package/ficl/0001-fix-Makefile.patch @@ -0,0 +1,47 @@ +fix dependency in Makefiles + +there is no longer a sysdep.h file. + +Signed-off-by: Francois Perrad + +diff --git a/Makefile b/Makefile +index 976d00a..7f73c44 100644 +--- a/Makefile ++++ b/Makefile +@@ -29,7 +29,7 @@ libficl.so.$(MAJOR).$(MINOR): $(OBJECTS) + -o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS) + ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so + +-main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR) ++main: main.o ficl.h libficl.so.$(MAJOR).$(MINOR) + $(CC) $(CFLAGS) $(LDFLAGS) main.o -o main -L. -lficl -lm + ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR) + +diff --git a/Makefile.ansi b/Makefile.ansi +index e510fcd..170e6eb 100644 +--- a/Makefile.ansi ++++ b/Makefile.ansi +@@ -29,7 +29,7 @@ libficl.so.$(MAJOR).$(MINOR): $(OBJECTS) + -o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS) + ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so + +-main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR) ++main: main.o ficl.h libficl.so.$(MAJOR).$(MINOR) + $(CC) main.o -o main -L. -lficl -lm + ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR) + +diff --git a/Makefile.linux b/Makefile.linux +index d447e7e..7f2cdfe 100644 +--- a/Makefile.linux ++++ b/Makefile.linux +@@ -29,7 +29,7 @@ libficl.so.$(MAJOR).$(MINOR): $(OBJECTS) + -o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS) + ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so + +-main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR) ++main: main.o ficl.h libficl.so.$(MAJOR).$(MINOR) + $(CC) main.o -o main -L. -lficl -lm + ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR) + +-- + diff --git a/bsp/buildroot/package/ficl/Config.in b/bsp/buildroot/package/ficl/Config.in new file mode 100644 index 00000000..3445a642 --- /dev/null +++ b/bsp/buildroot/package/ficl/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_FICL + bool "ficl" + help + Ficl is a programming language interpreter designed to be embedded + into other systems as a command, macro, and development + prototyping language. + Ficl is an acronym for "Forth Inspired Command Language". + + http://ficl.sourceforge.net diff --git a/bsp/buildroot/package/ficl/ficl.hash b/bsp/buildroot/package/ficl/ficl.hash new file mode 100644 index 00000000..4bfbbd07 --- /dev/null +++ b/bsp/buildroot/package/ficl/ficl.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 4daf74f3d3d6f8b86ea7cb47bc24931d50b4809b50ba34ca32e0ca1e972bd3a3 ficl-4.1.0.tar.gz diff --git a/bsp/buildroot/package/ficl/ficl.mk b/bsp/buildroot/package/ficl/ficl.mk new file mode 100644 index 00000000..65df1467 --- /dev/null +++ b/bsp/buildroot/package/ficl/ficl.mk @@ -0,0 +1,59 @@ +################################################################################ +# +# ficl +# +################################################################################ + +FICL_VERSION_MAJOR = 4.1 +FICL_VERSION = $(FICL_VERSION_MAJOR).0 +FICL_SITE = http://downloads.sourceforge.net/project/ficl/ficl-all/ficl$(FICL_VERSION_MAJOR) +FICL_LICENSE = BSD-2c +FICL_LICENSE_FILES = ReadMe.txt +FICL_INSTALL_STAGING = YES + +ifeq ($(BR2_STATIC_LIBS),y) +FICL_BUILD_TARGETS += ficl +define FICL_INSTALL_STATIC_BIN + $(INSTALL) -D -m 0755 $(@D)/ficl $(TARGET_DIR)/usr/bin/ficl +endef +endif + +ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y) +FICL_BUILD_TARGETS += libficl.a +define FICL_INSTALL_STATIC_LIB + $(INSTALL) -D -m 0644 $(@D)/libficl.a $(STAGING_DIR)/usr/lib/libficl.a +endef +endif + +ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y) +FICL_BUILD_TARGETS += main libficl.so.$(FICL_VERSION) +define FICL_INSTALL_SHARED_BIN + $(INSTALL) -D -m 0755 $(@D)/main $(TARGET_DIR)/usr/bin/ficl +endef +define FICL_INSTALL_SHARED_LIB + $(INSTALL) -D -m 0755 $(@D)/libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so.$(FICL_VERSION) + ln -sf libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so.4 + ln -sf libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so +endef +endif + +define FICL_BUILD_CMDS + $(MAKE) -C $(@D) -f Makefile.linux $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS) -fPIC -I. -Dlinux" CPPFLAGS="" $(FICL_BUILD_TARGETS) +endef + +define FICL_INSTALL_STAGING_CMDS + $(FICL_INSTALL_STATIC_LIB) + $(call FICL_INSTALL_SHARED_LIB,$(STAGING_DIR)) + $(INSTALL) -D -m 0644 $(@D)/ficl.h $(STAGING_DIR)/usr/include/ficl.h + $(INSTALL) -D -m 0644 $(@D)/ficllocal.h $(STAGING_DIR)/usr/include/ficllocal.h + $(INSTALL) -D -m 0644 $(@D)/ficlplatform/unix.h $(STAGING_DIR)/usr/include/ficlplatform/unix.h +endef + +define FICL_INSTALL_TARGET_CMDS + $(FICL_INSTALL_STATIC_BIN) + $(FICL_INSTALL_SHARED_BIN) + $(call FICL_INSTALL_SHARED_LIB,$(TARGET_DIR)) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/file/file.hash b/bsp/buildroot/package/file/file.hash index 2eac7a57..21067b5f 100644 --- a/bsp/buildroot/package/file/file.hash +++ b/bsp/buildroot/package/file/file.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 3735381563f69fb4239470b8c51b876a80425348b8285a7cded8b61d6b890eca file-5.25.tar.gz +sha256 0ecb5e146b8655d1fa84159a847ee619fc102575205a0ff9c6cc60fc5ee2e012 file-5.28.tar.gz diff --git a/bsp/buildroot/package/file/file.mk b/bsp/buildroot/package/file/file.mk index 4d13547e..201651cd 100644 --- a/bsp/buildroot/package/file/file.mk +++ b/bsp/buildroot/package/file/file.mk @@ -4,9 +4,11 @@ # ################################################################################ -FILE_VERSION = 5.25 +FILE_VERSION = 5.28 FILE_SITE = ftp://ftp.astron.com/pub/file FILE_DEPENDENCIES = host-file zlib +HOST_FILE_DEPENDENCIES = host-zlib +FILE_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' FILE_INSTALL_STAGING = YES FILE_LICENSE = BSD-2c, one file BSD-4c, one file BSD-3c FILE_LICENSE_FILES = COPYING src/mygetopt.h src/vasprintf.c diff --git a/bsp/buildroot/package/filemq/filemq.hash b/bsp/buildroot/package/filemq/filemq.hash new file mode 100644 index 00000000..1a7997ed --- /dev/null +++ b/bsp/buildroot/package/filemq/filemq.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 c373eddd5154cfe63f6cc6b3255ec20dca1f70c1f1881b611930931df47babad filemq-e59951489045825d6fc5bdc6a5a5ecf1abf51943.tar.gz diff --git a/bsp/buildroot/package/filemq/filemq.mk b/bsp/buildroot/package/filemq/filemq.mk index a79e8f49..0e735914 100644 --- a/bsp/buildroot/package/filemq/filemq.mk +++ b/bsp/buildroot/package/filemq/filemq.mk @@ -4,7 +4,7 @@ # ################################################################################ -FILEMQ_VERSION = acf6c0e003fee938994ad803aa7b78245dca57ba +FILEMQ_VERSION = e59951489045825d6fc5bdc6a5a5ecf1abf51943 FILEMQ_SITE = $(call github,zeromq,filemq,$(FILEMQ_VERSION)) FILEMQ_AUTORECONF = YES diff --git a/bsp/buildroot/package/findutils/Config.in b/bsp/buildroot/package/findutils/Config.in index c93d9d8c..b0eee5a6 100644 --- a/bsp/buildroot/package/findutils/Config.in +++ b/bsp/buildroot/package/findutils/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_FINDUTILS bool "findutils" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Basic directory searching utilities. Provides the common 'find', 'xargs', 'locate', and 'updatedb' binaries. @@ -11,3 +12,4 @@ config BR2_PACKAGE_FINDUTILS comment "findutils needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/fio/0001-compile-fix-for-linux-header-changes.patch b/bsp/buildroot/package/fio/0001-compile-fix-for-linux-header-changes.patch deleted file mode 100644 index 4a37e9da..00000000 --- a/bsp/buildroot/package/fio/0001-compile-fix-for-linux-header-changes.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d7bb6180f831091c468e5aa749b142efd5eddda4 Mon Sep 17 00:00:00 2001 -From: "Robin H. Johnson" -Date: Wed, 3 Feb 2016 08:32:19 -0800 -Subject: [PATCH] libmtd: compile fix for linux header changes. - -In the Linux kernel source, mtd/mtd-user.h had a change -'mtd: mtd-user: remove stdint.h include' -(137d36af4a53858b8db7ca83c8480247118b8bdf) - -This causes the uint8_t/uint64_t types to be undefined in libmtd.h -now, as they were implicitly coming from it before. - -Import stdint.h explicitly into libmtd.h to resolve this. - -X-URL: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=137d36af4a53858b8db7ca83c8480247118b8bdf -Signed-off-by: Robin H. Johnson ---- -Patch downloaded from upstream repo: -http://git.kernel.dk/?p=fio.git;a=patch;h=d7bb6180f831091c468e5aa749b142efd5eddda4 - -Signed-off-by: Ricardo Martincoski ---- - oslib/libmtd.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/oslib/libmtd.h b/oslib/libmtd.h -index 3625de5..b5fd3f3 100644 ---- a/oslib/libmtd.h -+++ b/oslib/libmtd.h -@@ -29,6 +29,9 @@ - extern "C" { - #endif - -+// Needed for uint8_t, uint64_t -+#include -+ - /* Maximum MTD device name length */ - #define MTD_NAME_MAX 127 - /* Maximum MTD device type string length */ --- -2.5.0 - diff --git a/bsp/buildroot/package/fio/fio.mk b/bsp/buildroot/package/fio/fio.mk index 08fef5f7..32706292 100644 --- a/bsp/buildroot/package/fio/fio.mk +++ b/bsp/buildroot/package/fio/fio.mk @@ -4,11 +4,23 @@ # ################################################################################ -FIO_VERSION = fio-2.6 +FIO_VERSION = fio-2.13 FIO_SITE = git://git.kernel.dk/fio.git FIO_LICENSE = GPLv2 + special obligations FIO_LICENSE_FILES = COPYING +ifeq ($(BR2_PACKAGE_LIBAIO),y) +FIO_DEPENDENCIES += libaio +endif + +ifeq ($(BR2_PACKAGE_NUMACTL),y) +FIO_DEPENDENCIES += numactl +endif + +ifeq ($(BR2_PACKAGE_ZLIB),y) +FIO_DEPENDENCIES += zlib +endif + define FIO_CONFIGURE_CMDS (cd $(@D); ./configure --cc="$(TARGET_CC)" --extra-cflags="$(TARGET_CFLAGS)") endef diff --git a/bsp/buildroot/package/flann/Config.in b/bsp/buildroot/package/flann/Config.in index 3725fc78..a2cd50c8 100644 --- a/bsp/buildroot/package/flann/Config.in +++ b/bsp/buildroot/package/flann/Config.in @@ -2,6 +2,9 @@ config BR2_PACKAGE_FLANN bool "flann" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS + # all gcc versions fail to build flann on Microblaze due to + # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69401 + depends on !BR2_microblaze help FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. It contains a @@ -22,4 +25,5 @@ config BR2_PACKAGE_FLANN_EXAMPLES endif comment "flann needs a toolchain w/ C++, dynamic library" + depends on !BR2_microblaze depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/flann/flann.hash b/bsp/buildroot/package/flann/flann.hash new file mode 100644 index 00000000..08242eb2 --- /dev/null +++ b/bsp/buildroot/package/flann/flann.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 3fec86866987c792c3fce7ecc8ba9d09a003f5d2d1a1ad94864550aad73a5c0b flann-3645f0c30a47267e56e5acdecfc7bac2b76bc3d5.tar.gz diff --git a/bsp/buildroot/package/flann/flann.mk b/bsp/buildroot/package/flann/flann.mk index 8af58e34..af86a02f 100644 --- a/bsp/buildroot/package/flann/flann.mk +++ b/bsp/buildroot/package/flann/flann.mk @@ -4,7 +4,7 @@ # ################################################################################ -FLANN_VERSION = 04b4a56533faf8c8228d011d05ba376038364b49 +FLANN_VERSION = 3645f0c30a47267e56e5acdecfc7bac2b76bc3d5 FLANN_SITE = $(call github,mariusmuja,flann,$(FLANN_VERSION)) FLANN_INSTALL_STAGING = YES FLANN_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/flannel/Config.in b/bsp/buildroot/package/flannel/Config.in new file mode 100644 index 00000000..134111b1 --- /dev/null +++ b/bsp/buildroot/package/flannel/Config.in @@ -0,0 +1,15 @@ +comment "flannel needs a toolchain w/ threads" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS && \ + BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_FLANNEL + bool "flannel" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + Flannel is a virtual network that gives a subnet to each + host for use with container runtimes. + + https://github.com/coreos/flannel diff --git a/bsp/buildroot/package/flannel/flannel.hash b/bsp/buildroot/package/flannel/flannel.hash new file mode 100644 index 00000000..3e0b25cb --- /dev/null +++ b/bsp/buildroot/package/flannel/flannel.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 dbbcb08c0e70713b0c920387a9967e5b30ef833c8118c847edbbca4f68ff0562 v0.5.5.tar.gz diff --git a/bsp/buildroot/package/flannel/flannel.mk b/bsp/buildroot/package/flannel/flannel.mk new file mode 100644 index 00000000..18c0af16 --- /dev/null +++ b/bsp/buildroot/package/flannel/flannel.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# flannel +# +################################################################################ + +FLANNEL_VERSION = v0.5.5 +FLANNEL_SITE = https://github.com/coreos/flannel/archive +FLANNEL_SOURCE = $(FLANNEL_VERSION).tar.gz + +FLANNEL_LICENSE = Apache-2.0 +FLANNEL_LICENSE_FILES = LICENSE + +FLANNEL_DEPENDENCIES = host-go + +FLANNEL_MAKE_ENV = \ + $(HOST_GO_TARGET_ENV) \ + GOBIN="$(@D)/bin" \ + GOPATH="$(@D)/gopath" \ + CGO_ENABLED=1 + +FLANNEL_GLDFLAGS = \ + -X github.com/coreos/flannel/version.Version=$(FLANNEL_VERSION) \ + +ifeq ($(BR2_STATIC_LIBS),y) +FLANNEL_GLDFLAGS += -extldflags '-static' +endif + +define FLANNEL_CONFIGURE_CMDS + # Put sources at prescribed GOPATH location. + mkdir -p $(@D)/gopath/src/github.com/coreos + ln -s $(@D) $(@D)/gopath/src/github.com/coreos/flannel +endef + +define FLANNEL_BUILD_CMDS + cd $(@D) && $(FLANNEL_MAKE_ENV) $(HOST_DIR)/usr/bin/go \ + build -v -o $(@D)/bin/flanneld -ldflags "$(FLANNEL_GLDFLAGS)" . +endef + +define FLANNEL_INSTALL_TARGET_CMDS + # Install flannel to its well known location. + $(INSTALL) -D -m 0755 $(@D)/bin/flanneld $(TARGET_DIR)/opt/bin/flanneld + $(INSTALL) -D -m 0755 $(@D)/dist/mk-docker-opts.sh $(TARGET_DIR)/opt/bin/mk-docker-opts.sh +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/flex/0002-fix-CVE-2016-6354.patch b/bsp/buildroot/package/flex/0002-fix-CVE-2016-6354.patch new file mode 100644 index 00000000..b0c780b9 --- /dev/null +++ b/bsp/buildroot/package/flex/0002-fix-CVE-2016-6354.patch @@ -0,0 +1,25 @@ +From a5cbe929ac3255d371e698f62dc256afe7006466 Mon Sep 17 00:00:00 2001 +From: Will Estes +Date: Sat, 27 Feb 2016 11:56:05 -0500 +Subject: [PATCH] Fixed incorrect integer type + +Signed-off-by: Gustavo Zacarias +--- +Status: upstream + + flex.skl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/flex.skl b/src/flex.skl +index 36a526a..64f853d 100644 +--- a/flex.skl ++++ b/flex.skl +@@ -1703,7 +1703,7 @@ int yyFlexLexer::yy_get_next_buffer() + + else + { +- yy_size_t num_to_read = ++ int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) diff --git a/bsp/buildroot/package/fmc/Config.in b/bsp/buildroot/package/fmc/Config.in index a50f80da..b7398e2b 100644 --- a/bsp/buildroot/package/fmc/Config.in +++ b/bsp/buildroot/package/fmc/Config.in @@ -1,14 +1,14 @@ comment "fmc needs a toolchain w/ C++" - depends on BR2_powerpc_e500mc + depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on !BR2_INSTALL_LIBSTDCPP comment "fmc needs a Linux kernel to be built" - depends on BR2_powerpc_e500mc + depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_FMC bool "fmc" - depends on BR2_powerpc_e500mc + depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_LINUX_KERNEL # fmlib select BR2_PACKAGE_TCLAP diff --git a/bsp/buildroot/package/fmc/fmc.hash b/bsp/buildroot/package/fmc/fmc.hash new file mode 100644 index 00000000..24028318 --- /dev/null +++ b/bsp/buildroot/package/fmc/fmc.hash @@ -0,0 +1,2 @@ +# Locally Computed +sha256sum a91e0c9b7c7f238634c64a755c05671f33f2acdb6ae2d09cad4d683b364ee8e4 fmc-fsl-sdk-v2.0.tar.gz diff --git a/bsp/buildroot/package/fmc/fmc.mk b/bsp/buildroot/package/fmc/fmc.mk index 49c5fe86..2a95fec0 100644 --- a/bsp/buildroot/package/fmc/fmc.mk +++ b/bsp/buildroot/package/fmc/fmc.mk @@ -4,7 +4,7 @@ # ################################################################################ -FMC_VERSION = fsl-sdk-v1.5-rc3 +FMC_VERSION = fsl-sdk-v2.0 FMC_SITE = git://git.freescale.com/ppc/sdk/fmc.git FMC_LICENSE = MIT FMC_LICENSE_FILES = COPYING @@ -18,7 +18,15 @@ FMC_MAKE_OPTS = \ LIBXML2_HEADER_PATH="$(STAGING_DIR)/usr/include/libxml2" \ TCLAP_HEADER_PATH="$(STAGING_DIR)/usr/include" +ifeq ($(BR2_powerpc64),y) +FMC_MAKE_OPTS += M64BIT=1 +endif + +# fmc's platform is the same as fmlib's. +FMC_PLATFORM = $(call qstrip,$(BR2_PACKAGE_FMLIB_PLATFORM)) + define FMC_BUILD_CMDS + $(SED) "s:P4080:$(FMC_PLATFORM):g" $(@D)/source/Makefile # The linking step has dependency issues so using MAKE1 $(TARGET_MAKE_ENV) $(MAKE1) $(FMC_MAKE_OPTS) -C $(@D)/source endef diff --git a/bsp/buildroot/package/fmlib/Config.in b/bsp/buildroot/package/fmlib/Config.in index 3cc6a2b7..d399cabe 100644 --- a/bsp/buildroot/package/fmlib/Config.in +++ b/bsp/buildroot/package/fmlib/Config.in @@ -1,10 +1,10 @@ comment "fmlib needs a Linux kernel to be built" - depends on BR2_powerpc_e500mc + depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on !BR2_LINUX_KERNEL config BR2_PACKAGE_FMLIB bool "fmlib" - depends on BR2_powerpc_e500mc + depends on BR2_powerpc_e500mc || BR2_powerpc_e6500 depends on BR2_LINUX_KERNEL help The Frame Manager library provides Freescale PowerPC platforms an @@ -13,3 +13,37 @@ config BR2_PACKAGE_FMLIB parameters and PCD (parse - classify - distribute) rules. http://git.freescale.com/git/cgit.cgi/ppc/sdk/fmlib.git/tree/README + +if BR2_PACKAGE_FMLIB +choice + prompt "QorIQ Target Family" + help + Select the family of QorIQ processor. + +config BR2_FMLIB_QORIQ_FAMILY_P4080 + bool "p40xx" + depends on BR2_powerpc_e500mc + +config BR2_FMLIB_QORIQ_FAMILY_T4240 + bool "t42xx" + depends on BR2_powerpc_e500mc + +config BR2_FMLIB_QORIQ_FAMILY_T2080 + bool "t208x" + depends on BR2_powerpc_e6500 + +endchoice + +config BR2_PACKAGE_FMLIB_ARCHTYPE + string + default "e500mc" if BR2_powerpc_e500mc + default "ppc64e6500" if BR2_powerpc_e6500 && BR2_powerpc64 + default "ppc32e6500" if BR2_powerpc_e6500 && BR2_powerpc + +config BR2_PACKAGE_FMLIB_PLATFORM + string + default "P4080" if BR2_FMLIB_QORIQ_FAMILY_P4080 + default "T4240" if BR2_FMLIB_QORIQ_FAMILY_T4240 + default "FMAN_V3H" if BR2_FMLIB_QORIQ_FAMILY_T2080 + +endif diff --git a/bsp/buildroot/package/fmlib/fmlib.hash b/bsp/buildroot/package/fmlib/fmlib.hash new file mode 100644 index 00000000..3746695d --- /dev/null +++ b/bsp/buildroot/package/fmlib/fmlib.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 e5870756c7432b15f7a48b860625808f3c95d5f7fa5e251552eb2324ca51b0fa fmlib-fsl-sdk-v2.0.tar.gz diff --git a/bsp/buildroot/package/fmlib/fmlib.mk b/bsp/buildroot/package/fmlib/fmlib.mk index 978810ba..42cdc277 100644 --- a/bsp/buildroot/package/fmlib/fmlib.mk +++ b/bsp/buildroot/package/fmlib/fmlib.mk @@ -4,7 +4,7 @@ # ################################################################################ -FMLIB_VERSION = fsl-sdk-v1.5-rc3 +FMLIB_VERSION = fsl-sdk-v2.0 FMLIB_SITE = git://git.freescale.com/ppc/sdk/fmlib.git FMLIB_LICENSE = BSD-3c, GPLv2+ FMLIB_LICENSE_FILES = COPYING @@ -21,15 +21,16 @@ FMLIB_MAKE_OPTS = \ KERNEL_SRC="$(LINUX_DIR)" \ PREFIX="$(STAGING_DIR)/usr" -ifeq ($(BR2_powerpc_e500mc),y) -FMLIB_ARCHTYPE = ppce500mc -endif +FMLIB_ARCHTYPE = $(call qstrip,$(BR2_PACKAGE_FMLIB_ARCHTYPE)) +FMLIB_PLATFORM = $(call qstrip,$(BR2_PACKAGE_FMLIB_PLATFORM)) define FMLIB_BUILD_CMDS + $(SED) "s:P4080:$(FMLIB_PLATFORM):g" $(@D)/Makefile $(TARGET_MAKE_ENV) $(MAKE) $(FMLIB_MAKE_OPTS) -C $(@D) libfm-$(FMLIB_ARCHTYPE).a endef define FMLIB_INSTALL_STAGING_CMDS + $(RM) $(STAGING_DIR)/usr/lib/libfm.a $(FMLIB_MAKE_ENV) $(MAKE) $(FMLIB_MAKE_OPTS) -C $(@D) install-libfm-$(FMLIB_ARCHTYPE) endef diff --git a/bsp/buildroot/package/font-awesome/Config.in b/bsp/buildroot/package/font-awesome/Config.in new file mode 100644 index 00000000..694d74e5 --- /dev/null +++ b/bsp/buildroot/package/font-awesome/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_FONT_AWESOME + bool "font-awesome" + help + Font Awesome is a full suite of 605 pictographic icons for + easy scalable vector graphics on websites. + + https://github.com/FortAwesome/Font-Awesome diff --git a/bsp/buildroot/package/font-awesome/font-awesome.hash b/bsp/buildroot/package/font-awesome/font-awesome.hash new file mode 100644 index 00000000..9f3715e5 --- /dev/null +++ b/bsp/buildroot/package/font-awesome/font-awesome.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7813f416057da622b16229b10fef550e1dc64c5bb59871cd38fa86e76dfdbae8 font-awesome-v4.5.0.tar.gz diff --git a/bsp/buildroot/package/font-awesome/font-awesome.mk b/bsp/buildroot/package/font-awesome/font-awesome.mk new file mode 100644 index 00000000..3d2cccae --- /dev/null +++ b/bsp/buildroot/package/font-awesome/font-awesome.mk @@ -0,0 +1,18 @@ +################################################################################ +# +# font-awesome +# +################################################################################ + +FONT_AWESOME_VERSION = v4.5.0 +FONT_AWESOME_SITE = $(call github,FortAwesome,Font-Awesome,$(FONT_AWESOME_VERSION)) +FONT_AWESOME_LICENSE = OFLv1.1 (font), MIT (CSS, LESS and Sass files) +FONT_AWESOME_DIRECTORIES_LIST = css fonts less scss + +define FONT_AWESOME_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/share/font-awesome/ + $(foreach d,$(FONT_AWESOME_DIRECTORIES_LIST),\ + cp -dpfr $(@D)/$(d) $(TARGET_DIR)/usr/share/font-awesome$(sep)) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/fontconfig/fontconfig.hash b/bsp/buildroot/package/fontconfig/fontconfig.hash index e4ec1ac1..ad358255 100644 --- a/bsp/buildroot/package/fontconfig/fontconfig.hash +++ b/bsp/buildroot/package/fontconfig/fontconfig.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/fontconfig/2014-March/005167.html -sha256 b6b066c7dce3f436fdc0dfbae9d36122b38094f4f53bd8dffd45e195b0540d8d fontconfig-2.11.1.tar.gz +# From https://lists.freedesktop.org/archives/fontconfig/2016-August/005794.html +sha256 b449a3e10c47e1d1c7a6ec6e2016cca73d3bd68fbbd4f0ae5cc6b573f7d6c7f3 fontconfig-2.12.1.tar.bz2 diff --git a/bsp/buildroot/package/fontconfig/fontconfig.mk b/bsp/buildroot/package/fontconfig/fontconfig.mk index caf997ba..93f2a159 100644 --- a/bsp/buildroot/package/fontconfig/fontconfig.mk +++ b/bsp/buildroot/package/fontconfig/fontconfig.mk @@ -4,10 +4,12 @@ # ################################################################################ -FONTCONFIG_VERSION = 2.11.1 +FONTCONFIG_VERSION = 2.12.1 FONTCONFIG_SITE = http://fontconfig.org/release +FONTCONFIG_SOURCE = fontconfig-$(FONTCONFIG_VERSION).tar.bz2 FONTCONFIG_INSTALL_STAGING = YES FONTCONFIG_DEPENDENCIES = freetype expat host-pkgconf +HOST_FONTCONFIG_DEPENDENCIES = host-freetype host-expat host-pkgconf FONTCONFIG_LICENSE = fontconfig license FONTCONFIG_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/foomatic-filters/Config.in b/bsp/buildroot/package/foomatic-filters/Config.in deleted file mode 100644 index 0571eb94..00000000 --- a/bsp/buildroot/package/foomatic-filters/Config.in +++ /dev/null @@ -1,23 +0,0 @@ -comment "foomatic-filters needs a toolchain w/ threads" - # because of cups security issues - depends on BR2_DEPRECATED_SINCE_2015_05 - depends on BR2_PACKAGE_CUPS - depends on !BR2_TOOLCHAIN_HAS_THREADS - -config BR2_PACKAGE_FOOMATIC_FILTERS - bool "foomatic_filters" - depends on BR2_PACKAGE_CUPS - # because of cups security issues - depends on BR2_DEPRECATED_SINCE_2015_05 - depends on BR2_TOOLCHAIN_HAS_THREADS # libusb - select BR2_PACKAGE_LIBUSB - select BR2_PACKAGE_ENSCRIPT - help - Foomatic Filters - Foomatic is a database-driven system for integrating free software - printer drivers with common spoolers under Unix. It supports CUPS, - LPRng, LPD, GNUlpr, Solaris LP, PPR, PDQ, CPS, and direct printing - with every free software printer driver known to us and every - printer known to work with these drivers. - - http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/foomatic diff --git a/bsp/buildroot/package/foomatic-filters/foomatic-filters.mk b/bsp/buildroot/package/foomatic-filters/foomatic-filters.mk deleted file mode 100644 index c7d62982..00000000 --- a/bsp/buildroot/package/foomatic-filters/foomatic-filters.mk +++ /dev/null @@ -1,22 +0,0 @@ -################################################################################ -# -# foomatic-filters -# -################################################################################ - -FOOMATIC_FILTERS_VERSION = 4.0.17 -FOOMATIC_FILTERS_SITE = http://www.openprinting.org/download/foomatic -FOOMATIC_FILTERS_LICENSE = GPLv2+ -FOOMATIC_FILTERS_LICENSE_FILES = COPYING -FOOMATIC_FILTERS_DEPENDENCIES = cups libusb enscript -FOOMATIC_FILTERS_CONF_OPTS = --with-file-converter=enscript -FOOMATIC_FILTERS_CONF_ENV = ac_cv_path_ENSCRIPT="/usr/bin/enscript" - -ifeq ($(BR2_PACKAGE_DBUS),y) -FOOMATIC_FILTERS_CONF_OPTS += --enable-dbus -FOOMATIC_FILTERS_DEPENDENCIES += dbus -else -FOOMATIC_FILTERS_CONF_OPTS += --disable-dbus -endif - -$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/freerdp/0004-ffmpeg30.patch b/bsp/buildroot/package/freerdp/0004-ffmpeg30.patch new file mode 100644 index 00000000..a7998b78 --- /dev/null +++ b/bsp/buildroot/package/freerdp/0004-ffmpeg30.patch @@ -0,0 +1,74 @@ +From b7b66968f93f6ce75dd06d12638e14029bf3717b Mon Sep 17 00:00:00 2001 +From: Alexis Ballier +Date: Thu, 17 Sep 2015 10:36:44 +0200 +Subject: [PATCH] channels/tsmf/client/ffmpeg: Fix build with ffmpeg git + master. + +Replace old, deprecated and now removed, APIs with their new equivalent while retaining backward compatibility with old ffmpeg versions. + +Signed-off-by: Bernd Kuhls +[Downloaded from upstream commit: + https://github.com/FreeRDP/FreeRDP/commit/f8ceb3f6061583c650bd4f6cddc10bc0471f2076] +--- + channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c b/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c +index d0880e7..e1b9f83 100644 +--- a/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c ++++ b/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c +@@ -61,6 +61,9 @@ + #define AV_CODEC_ID_AC3 CODEC_ID_AC3 + #endif + ++#if LIBAVUTIL_VERSION_MAJOR < 52 ++#define AV_PIX_FMT_YUV420P PIX_FMT_YUV420P ++#endif + + typedef struct _TSMFFFmpegDecoder + { +@@ -102,7 +105,11 @@ static BOOL tsmf_ffmpeg_init_video_stream(ITSMFDecoder* decoder, const TS_AM_MED + mdecoder->codec_context->bit_rate = media_type->BitRate; + mdecoder->codec_context->time_base.den = media_type->SamplesPerSecond.Numerator; + mdecoder->codec_context->time_base.num = media_type->SamplesPerSecond.Denominator; ++#if LIBAVCODEC_VERSION_MAJOR < 55 + mdecoder->frame = avcodec_alloc_frame(); ++#else ++ mdecoder->frame = av_frame_alloc(); ++#endif + return TRUE; + } + +@@ -328,7 +335,11 @@ static BOOL tsmf_ffmpeg_decode_video(ITSMFDecoder* decoder, const BYTE *data, UI + if (!mdecoder->decoded_data) + return FALSE; + ++#if LIBAVCODEC_VERSION_MAJOR < 55 + frame = avcodec_alloc_frame(); ++#else ++ frame = av_frame_alloc(); ++#endif + avpicture_fill((AVPicture*) frame, mdecoder->decoded_data, + mdecoder->codec_context->pix_fmt, + mdecoder->codec_context->width, mdecoder->codec_context->height); +@@ -400,7 +411,11 @@ static BOOL tsmf_ffmpeg_decode_audio(ITSMFDecoder* decoder, const BYTE *data, UI + (int16_t *) dst, &frame_size, src, src_size); + #else + { ++#if LIBAVCODEC_VERSION_MAJOR < 55 + AVFrame *decoded_frame = avcodec_alloc_frame(); ++#else ++ AVFrame *decoded_frame = av_frame_alloc(); ++#endif + int got_frame = 0; + AVPacket pkt; + av_init_packet(&pkt); +@@ -480,7 +495,7 @@ static UINT32 tsmf_ffmpeg_get_decoded_format(ITSMFDecoder* decoder) + + switch (mdecoder->codec_context->pix_fmt) + { +- case PIX_FMT_YUV420P: ++ case AV_PIX_FMT_YUV420P: + return RDP_PIXFMT_I420; + default: + WLog_ERR(TAG, "unsupported pixel format %u", diff --git a/bsp/buildroot/package/freerdp/freerdp.hash b/bsp/buildroot/package/freerdp/freerdp.hash new file mode 100644 index 00000000..2ced373b --- /dev/null +++ b/bsp/buildroot/package/freerdp/freerdp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1db496cca391f76382ef284db2d0306d5c15bf515ee2c964319c22272d969a32 freerdp-17834af7bb378f85a3b3cc4dcadaa5125a337e16.tar.gz diff --git a/bsp/buildroot/package/freerdp/freerdp.mk b/bsp/buildroot/package/freerdp/freerdp.mk index baf83f0c..e8e5be49 100644 --- a/bsp/buildroot/package/freerdp/freerdp.mk +++ b/bsp/buildroot/package/freerdp/freerdp.mk @@ -248,9 +248,9 @@ FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_CLEANUP # can start a server. define FREERDP_INSTALL_KEYS $(INSTALL) -m 0644 -D $(@D)/server/Sample/server.key \ - $(TARGET_DIR)/etc/freerdp/keys/server.key + $(TARGET_DIR)/etc/freerdp/keys/server.key $(INSTALL) -m 0644 -D $(@D)/server/Sample/server.crt \ - $(TARGET_DIR)/etc/freerdp/keys/server.crt + $(TARGET_DIR)/etc/freerdp/keys/server.crt endef FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_INSTALL_KEYS diff --git a/bsp/buildroot/package/freescale-imx/Config.in b/bsp/buildroot/package/freescale-imx/Config.in index dfb6cc4a..056728ff 100644 --- a/bsp/buildroot/package/freescale-imx/Config.in +++ b/bsp/buildroot/package/freescale-imx/Config.in @@ -42,9 +42,20 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM default "IMX53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 default "IMX6Q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q +config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU + bool + default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS || \ + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || \ + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 || \ + BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q + +source "package/freescale-imx/imx-codec/Config.in" source "package/freescale-imx/imx-kobs/Config.in" source "package/freescale-imx/imx-lib/Config.in" +source "package/freescale-imx/imx-parser/Config.in" +source "package/freescale-imx/imx-uuc/Config.in" source "package/freescale-imx/imx-vpu/Config.in" +source "package/freescale-imx/imx-vpuwrap/Config.in" source "package/freescale-imx/firmware-imx/Config.in" if (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53) source "package/freescale-imx/gpu-amd-bin-mx51/Config.in" diff --git a/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.hash b/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.hash index 06d5a549..a6e5bd58 100644 --- a/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.hash +++ b/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.hash @@ -1,2 +1 @@ -# locally computed -sha256 8cc2df128c0e2d2f5224d73389fbe6e4d6fa9ede76f8c0a9adaf7ec0986d0f1f firmware-imx-5.2.bin +sha256 c5bd4bff48cce9715a5d6d2c190ff3cd2262c7196f7facb9b0eda231c92cc223 firmware-imx-5.4.bin diff --git a/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.mk b/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.mk index 7e6f0e96..1893929e 100644 --- a/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.mk +++ b/bsp/buildroot/package/freescale-imx/firmware-imx/firmware-imx.mk @@ -4,12 +4,11 @@ # ################################################################################ -FIRMWARE_IMX_VERSION = 5.2 +FIRMWARE_IMX_VERSION = 5.4 FIRMWARE_IMX_SITE = $(FREESCALE_IMX_SITE) FIRMWARE_IMX_SOURCE = firmware-imx-$(FIRMWARE_IMX_VERSION).bin -FIRMWARE_IMX_LICENSE = Freescale Semiconductor Software License Agreement, \ - Atheros license (ath6k) +FIRMWARE_IMX_LICENSE = NXP Semiconductor Software License Agreement FIRMWARE_IMX_LICENSE_FILES = EULA COPYING FIRMWARE_IMX_REDISTRIBUTE = NO @@ -26,7 +25,7 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS done cp -r $(@D)/firmware/epdc $(TARGET_DIR)/lib/firmware/imx mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \ - $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw + $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/Config.in b/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/Config.in index 0ef96828..337713c7 100644 --- a/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/Config.in +++ b/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/Config.in @@ -1,4 +1,4 @@ -comment "gpu-amd-bin-mx51 needs an (e)glibc EABI toolchain w/ C++" +comment "gpu-amd-bin-mx51 needs a glibc EABI toolchain w/ C++" depends on BR2_arm depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash b/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash new file mode 100644 index 00000000..9c08e4aa --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/gpu-amd-bin-mx51/gpu-amd-bin-mx51.hash @@ -0,0 +1,3 @@ +# locally computed +sha256 c7a6fa03b7aa2a375556c59908876554ba720c1e744baba2debb84a408f790db amd-gpu-x11-bin-mx51-11.09.01.bin +sha256 f0db68a764b5fb199729e7435f606b8d12b61ca97990336c647b7e81f4a584d9 amd-gpu-bin-mx51-11.09.01.bin diff --git a/bsp/buildroot/package/freescale-imx/imx-codec/Config.in b/bsp/buildroot/package/freescale-imx/imx-codec/Config.in new file mode 100644 index 00000000..df248b0c --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-codec/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_IMX_CODEC + bool "imx-codec" + depends on BR2_arm # Only relevant for i.MX + depends on BR2_TOOLCHAIN_USES_GLIBC # prebuilt binaries + help + Binary codec libraries for the NXP i.MX SoCs. + + This library is provided by NXP as-is and doesn't have + an upstream. + +comment "imx-codec needs a glibc toolchain" + depends on BR2_arm + depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.hash b/bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.hash new file mode 100644 index 00000000..39bddc16 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 62bda182143cde9743cba0eb2a1c315a53cb434294605742f9fc364219958888 imx-codec-4.0.9.bin diff --git a/bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.mk b/bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.mk new file mode 100644 index 00000000..48408728 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-codec/imx-codec.mk @@ -0,0 +1,40 @@ +################################################################################ +# +# imx-codec +# +################################################################################ + +IMX_CODEC_VERSION = 4.0.9 +IMX_CODEC_SITE = $(FREESCALE_IMX_SITE) +IMX_CODEC_SOURCE = imx-codec-$(IMX_CODEC_VERSION).bin +IMX_CODEC_INSTALL_STAGING = YES + +IMX_CODEC_LICENSE = NXP Semiconductor Software License Agreement, BSD-3c (flac, ogg headers) +IMX_CODEC_LICENSE_FILES = EULA COPYING +IMX_CODEC_REDISTRIBUTE = NO + +ifeq ($(BR2_ARM_EABIHF),y) +IMX_CODEC_CONF_OPTS += --enable-fhw +endif + +ifeq ($(BR2_PACKAGE_IMX_VPU),y) +IMX_CODEC_CONF_OPTS += --enable-vpu +endif + +define IMX_CODEC_EXTRACT_CMDS + $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(IMX_CODEC_SOURCE)) +endef + +# FIXME The Makefile installs both the arm9 and arm11 versions of the +# libraries, but we only need one of them. + +# Upstream installs libraries into usr/lib/imx-mm, but the dynamic +# loader only looks in usr/lib, so move the libraries there +define IMX_CODEC_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -not -type d \ + -exec mv {} $(TARGET_DIR)/usr/lib \; + rm -rf $(TARGET_DIR)/usr/lib/imx-mm +endef +IMX_CODEC_POST_INSTALL_TARGET_HOOKS += IMX_CODEC_FIXUP_TARGET_PATH + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/freescale-imx/imx-gpu-viv/Config.in b/bsp/buildroot/package/freescale-imx/imx-gpu-viv/Config.in index c3867653..effb24b3 100644 --- a/bsp/buildroot/package/freescale-imx/imx-gpu-viv/Config.in +++ b/bsp/buildroot/package/freescale-imx/imx-gpu-viv/Config.in @@ -1,13 +1,14 @@ -comment "imx-gpu-viv needs an (e)glibc toolchain" +comment "imx-gpu-viv needs a glibc toolchain with armhf enabled" depends on BR2_arm - depends on !BR2_TOOLCHAIN_USES_GLIBC + depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF config BR2_PACKAGE_IMX_GPU_VIV bool "imx-gpu-viv" select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_HAS_LIBOPENVG - depends on BR2_arm # Only relevant for i.MX6 + # Pre-built binaries only available for ARM EABIhf + depends on BR2_ARM_EABIHF # Library binaries are linked against libc.so.6 depends on BR2_TOOLCHAIN_USES_GLIBC help @@ -62,6 +63,7 @@ config BR2_PACKAGE_PROVIDES_LIBOPENVG config BR2_PACKAGE_IMX_GPU_VIV_APITRACE bool "install apitrace tools" select BR2_PACKAGE_IMX_GPU_VIV_G2D + select BR2_PACKAGE_LIBPNG help Copy the apitrace tool to the target. Apitrace consists of a set of tools to trace, replay and/or inspect OpenGL, diff --git a/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.hash b/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.hash index 149afc24..f94d3148 100644 --- a/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.hash +++ b/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.hash @@ -1,3 +1 @@ -# locally computed -sha256 43fea6ebbb1222e0f594fff3b48147f4bb6173b85f2caa9fa6bf04a1c85ee93a imx-gpu-viv-5.0.11.p7.1-sfp.bin -sha256 e49ca1d31ca83bb50f6672325db37ae3754eb9073ad98a37790ab1209ea5cba8 imx-gpu-viv-5.0.11.p7.1-hfp.bin +sha256 8f79ce562d8ac1efb0a2af403b405541f98c55ae1631a18a3d7fad3224dfb44b imx-gpu-viv-5.0.11.p8.4-hfp.bin diff --git a/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk b/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk index 61710804..c7b1d9c8 100644 --- a/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk +++ b/bsp/buildroot/package/freescale-imx/imx-gpu-viv/imx-gpu-viv.mk @@ -4,19 +4,14 @@ # ################################################################################ -IMX_GPU_VIV_BASE_VERSION = 5.0.11.p7.1 -ifeq ($(BR2_ARM_EABIHF),y) -IMX_GPU_VIV_VERSION = $(IMX_GPU_VIV_BASE_VERSION)-hfp -else -IMX_GPU_VIV_VERSION = $(IMX_GPU_VIV_BASE_VERSION)-sfp -endif +IMX_GPU_VIV_VERSION = 5.0.11.p8.4-hfp IMX_GPU_VIV_SITE = $(FREESCALE_IMX_SITE) IMX_GPU_VIV_SOURCE = imx-gpu-viv-$(IMX_GPU_VIV_VERSION).bin IMX_GPU_VIV_INSTALL_STAGING = YES -IMX_GPU_VIV_LICENSE = Freescale Semiconductor Software License Agreement -IMX_GPU_VIV_LICENSE_FILES = EULA +IMX_GPU_VIV_LICENSE = NXP Semiconductor Software License Agreement +IMX_GPU_VIV_LICENSE_FILES = EULA COPYING IMX_GPU_VIV_REDISTRIBUTE = NO IMX_GPU_VIV_PROVIDES = libegl libgles libopenvg @@ -80,6 +75,7 @@ define IMX_GPU_VIV_INSTALL_STAGING_CMDS endef ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_APITRACE),y) +IMX_GPU_VIV_DEPENDENCIES += libpng ifeq ($(IMX_GPU_VIV_LIB_TARGET),x11) define IMX_GPU_VIV_INSTALL_APITRACE cp -dpfr $(@D)/apitrace/x11/usr/bin/* $(TARGET_DIR)/usr/bin/ diff --git a/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.hash b/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.hash index 477f231d..b942bd35 100644 --- a/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.hash +++ b/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.hash @@ -1,2 +1 @@ -# locally computed -sha256 28c7356187ae26a2b37fb37a4b7bfdb63b3628b72d737d897ae6d5b969fbb51a imx-kobs-5.1.tar.gz +sha256 85171b46068ac47c42fedb8104167bf9afd33dd9527ed127e1ca2eb29d7a86bf imx-kobs-5.4.tar.gz diff --git a/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.mk b/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.mk index bf015672..b80d5bde 100644 --- a/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.mk +++ b/bsp/buildroot/package/freescale-imx/imx-kobs/imx-kobs.mk @@ -4,7 +4,7 @@ # ################################################################################ -IMX_KOBS_VERSION = 5.1 +IMX_KOBS_VERSION = 5.4 IMX_KOBS_SITE = $(FREESCALE_IMX_SITE) IMX_KOBS_LICENSE = GPLv2+ IMX_KOBS_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.hash b/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.hash index 8e4bd73e..76dcb23f 100644 --- a/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.hash +++ b/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.hash @@ -1,2 +1,2 @@ # locally computed -sha256 2b4547ffb1de328cf8997a09a423c6f015d808493efd11a98a5d42c6497e3445 imx-lib-5.1.tar.gz +sha256 8d12c4a0a44d29569f1ead3a36adc28402b9c4036b53e11dd3ebf2295e3ce1d0 imx-lib-5.4.tar.gz diff --git a/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.mk b/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.mk index b49357bd..d3603ca9 100644 --- a/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.mk +++ b/bsp/buildroot/package/freescale-imx/imx-lib/imx-lib.mk @@ -4,7 +4,7 @@ # ################################################################################ -IMX_LIB_VERSION = 5.1 +IMX_LIB_VERSION = 5.4 IMX_LIB_SITE = $(FREESCALE_IMX_SITE) IMX_LIB_LICENSE = LGPLv2.1+ IMX_LIB_LICENSE_FILES = COPYING-LGPL-2.1 diff --git a/bsp/buildroot/package/freescale-imx/imx-parser/Config.in b/bsp/buildroot/package/freescale-imx/imx-parser/Config.in new file mode 100644 index 00000000..526f0663 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-parser/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_IMX_PARSER + bool "imx-parser" + depends on BR2_arm # Only relevant for i.MX + help + Binary parser libraries for the NXP i.MX SoCs. + + This library is provided by NXP as-is and doesn't have + an upstream. diff --git a/bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.hash b/bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.hash new file mode 100644 index 00000000..2193c66f --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 1bec0101843db2e95d61e3dbe9e35172d874e54be19cc5d8bf72a735d5e3236f imx-parser-4.0.9.bin diff --git a/bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.mk b/bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.mk new file mode 100644 index 00000000..e5797899 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-parser/imx-parser.mk @@ -0,0 +1,38 @@ +################################################################################ +# +# imx-parser +# +################################################################################ + +IMX_PARSER_VERSION = 4.0.9 +IMX_PARSER_SITE = $(FREESCALE_IMX_SITE) +IMX_PARSER_SOURCE = imx-parser-$(IMX_PARSER_VERSION).bin +IMX_PARSER_INSTALL_STAGING = YES + +IMX_PARSER_LICENSE = NXP Semiconductor Software License Agreement +IMX_PARSER_LICENSE_FILES = EULA COPYING +IMX_PARSER_REDISTRIBUTE = NO + +ifeq ($(BR2_ARM_EABIHF),y) +IMX_PARSER_CONF_OPTS += --enable-fhw +else +IMX_PARSER_CONF_OPTS += --enable-fsw +endif + +define IMX_PARSER_EXTRACT_CMDS + $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(IMX_PARSER_SOURCE)) +endef + +# The Makefile installs several versions of the libraries, but we only +# need one of them, depending on the platform. + +# Upstream installs libraries into usr/lib/imx-mm, but the dynamic +# loader only looks in usr/lib, so move the libraries there +define IMX_PARSER_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -not -type d \ + -exec mv {} $(TARGET_DIR)/usr/lib \; + rm -rf $(TARGET_DIR)/usr/lib/imx-mm +endef +IMX_PARSER_POST_INSTALL_TARGET_HOOKS += IMX_PARSER_FIXUP_TARGET_PATH + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/freescale-imx/imx-uuc/Config.in b/bsp/buildroot/package/freescale-imx/imx-uuc/Config.in new file mode 100644 index 00000000..ed734ad7 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-uuc/Config.in @@ -0,0 +1,21 @@ +config BR2_PACKAGE_IMX_UUC + bool "imx-uuc" + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_arm # Only relevant for i.MX + depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_HOST_DOSFSTOOLS + help + This package provides the Universal Adapter user-space + utility that is used to receive commands from the + Manufacturing Tool using the Freescale UTP Protocol. + + It requires a Freescale/NXP kernel whose configuration + contains the CONFIG_FSL_UTP option. + + This package is provided by Freescale/NXP as-is and doesn't + have an upstream. + +comment "imx-uuc needs a toolchain w/ threads" + depends on BR2_arm + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/freescale-imx/imx-uuc/S80imx-uuc b/bsp/buildroot/package/freescale-imx/imx-uuc/S80imx-uuc new file mode 100644 index 00000000..8a02f88e --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-uuc/S80imx-uuc @@ -0,0 +1,27 @@ +#!/bin/sh + +NAME=uuc +DAEMON=/usr/bin/$NAME + +case "$1" in + start) + printf "Starting $NAME: " + start-stop-daemon -S -q -b -p /var/run/${NAME}.pid -x $DAEMON + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + stop) + printf "Stopping $NAME: " + start-stop-daemon -K -q -p /var/run/${NAME}.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + restart|reload) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.hash b/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.hash new file mode 100644 index 00000000..05501c8b --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 95d7f7b075f58fedc07602fbc0e5bf5212d28deea3d09cdbcbd80992dcd18482 imx-uuc-0.5.1.tar.gz diff --git a/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.mk b/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.mk new file mode 100644 index 00000000..58e749e4 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.mk @@ -0,0 +1,40 @@ +################################################################################ +# +# imx-uuc +# +################################################################################ + +IMX_UUC_VERSION = 0.5.1 +IMX_UUC_SITE = $(FREESCALE_IMX_SITE) +IMX_UUC_LICENSE = GPLv2+ +IMX_UUC_LICENSE_FILES = COPYING + +# mkfs.vfat is needed to create a FAT partition used by g_mass_storage +# so Windows do not offer to format the device when connected to the PC. +IMX_UUC_DEPENDENCIES = host-dosfstools + +define IMX_UUC_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC=$(TARGET_CC) +endef + +define IMX_UUC_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 755 $(@D)/uuc $(TARGET_DIR)/usr/bin/uuc + $(INSTALL) -D -m 755 $(@D)/sdimage $(TARGET_DIR)/usr/bin/sdimage + dd if=/dev/zero of=$(TARGET_DIR)/fat bs=1M count=1 + $(HOST_DIR)/usr/sbin/mkfs.vfat $(TARGET_DIR)/fat +endef + +define IMX_UUC_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/freescale-imx/imx-uuc/S80imx-uuc \ + $(TARGET_DIR)/etc/init.d/S80imx-uuc +endef + +define IMX_UUC_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 0644 package/freescale-imx/imx-uuc/imx-uuc.service \ + $(TARGET_DIR)/usr/lib/systemd/system/imx-uuc.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/ + ln -fs ../../../../usr/lib/systemd/system/imx-uuc.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/imx-uuc.service +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.service b/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.service new file mode 100644 index 00000000..fae7fc64 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-uuc/imx-uuc.service @@ -0,0 +1,11 @@ +[Unit] +Description=i.MX Universal UTP Communication Service +After=systemd-modules-load.service + +[Service] +Type=simple +ExecStart=/usr/bin/uuc + +[Install] +WantedBy=multi-user.target + diff --git a/bsp/buildroot/package/freescale-imx/imx-vpu/Config.in b/bsp/buildroot/package/freescale-imx/imx-vpu/Config.in index 220385ce..779717f5 100644 --- a/bsp/buildroot/package/freescale-imx/imx-vpu/Config.in +++ b/bsp/buildroot/package/freescale-imx/imx-vpu/Config.in @@ -1,6 +1,11 @@ +comment "imx-vpu needs an i.MX platform with VPU support" + depends on BR2_arm + depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU + config BR2_PACKAGE_IMX_VPU bool "imx-vpu" depends on BR2_arm # Only relevant for i.MX + depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU select BR2_PACKAGE_FIRMWARE_IMX help Library of userspace helpers specific for the Freescale i.MX diff --git a/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.hash b/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.hash index 3fdd092e..67ebaf23 100644 --- a/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.hash +++ b/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 a266ab317fbd866541eae506d68983bcd361f49d1162a66bb34cb8088ceec88c imx-vpu-5.4.31.bin +sha256 2e670ef2337a5dbe6c32fa07128ad9aad32afdbf472c23d44133245ec6a66d46 imx-vpu-5.4.33.bin diff --git a/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.mk b/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.mk index 571cc402..09ff5a80 100644 --- a/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.mk +++ b/bsp/buildroot/package/freescale-imx/imx-vpu/imx-vpu.mk @@ -4,7 +4,7 @@ # ################################################################################ -IMX_VPU_VERSION = 5.4.31 +IMX_VPU_VERSION = 5.4.33 IMX_VPU_SITE = $(FREESCALE_IMX_SITE) IMX_VPU_SOURCE = imx-vpu-$(IMX_VPU_VERSION).bin @@ -16,7 +16,7 @@ IMX_VPU_MAKE_ENV = \ CROSS_COMPILE="$(TARGET_CROSS)" \ PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM) -IMX_VPU_LICENSE = Freescale Semiconductor Software License Agreement +IMX_VPU_LICENSE = NXP Semiconductor Software License Agreement IMX_VPU_LICENSE_FILES = EULA COPYING IMX_VPU_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/freescale-imx/imx-vpuwrap/Config.in b/bsp/buildroot/package/freescale-imx/imx-vpuwrap/Config.in new file mode 100644 index 00000000..35095955 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-vpuwrap/Config.in @@ -0,0 +1,19 @@ +comment "imx-vpuwrap needs an imx-specific Linux kernel to be built" + depends on BR2_arm + depends on !BR2_LINUX_KERNEL + +comment "imx-vpuwrap needs an i.MX platform with VPU support" + depends on BR2_arm + depends on BR2_LINUX_KERNEL && !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU + +config BR2_PACKAGE_IMX_VPUWRAP + bool "imx-vpuwrap" + depends on BR2_LINUX_KERNEL + depends on BR2_arm # Only relevant for i.MX + depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU + select BR2_PACKAGE_IMX_VPU + help + Wrapper library for the vpu library, giving it a different API. + + This library is provided by NXP as-is and doesn't have + an upstream. diff --git a/bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.hash b/bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.hash new file mode 100644 index 00000000..42b97a10 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 ddeacb7d9cb26c8864374df6d3f090aad47cd2ae409c2b9c817b773447252d61 imx-vpuwrap-1.0.65.bin diff --git a/bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.mk b/bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.mk new file mode 100644 index 00000000..da0e32c4 --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/imx-vpuwrap/imx-vpuwrap.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# imx-vpuwrap +# +################################################################################ + +IMX_VPUWRAP_VERSION = 1.0.65 +IMX_VPUWRAP_SITE = $(FREESCALE_IMX_SITE) +IMX_VPUWRAP_SOURCE = imx-vpuwrap-$(IMX_VPUWRAP_VERSION).bin +IMX_VPUWRAP_DEPENDENCIES = imx-vpu +IMX_VPUWRAP_INSTALL_STAGING = YES + +IMX_VPUWRAP_LICENSE = NXP Semiconductor Software License Agreement +IMX_VPUWRAP_LICENSE_FILES = EULA COPYING +IMX_VPUWRAP_REDISTRIBUTE = NO + +define IMX_VPUWRAP_EXTRACT_CMDS + $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(IMX_VPUWRAP_SOURCE)) +endef + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.hash b/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.hash index 7d01afbe..6d810eaf 100644 --- a/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.hash +++ b/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.hash @@ -1,2 +1,2 @@ # locally computed -sha256 955037fd86d31cdddaed15c254f377f4b30a8abcf5a5e4f9185bd660ff14b7c3 kernel-module-imx-gpu-viv-eeeb23c0fb1cee01318088d417025263479c44ac.tar.gz +sha256 6618b36baefd591e94a41167fa50d325c3df473918bceef027ca5a067aa1cffd kernel-module-imx-gpu-viv-aa83874b916cf5655cb90498b1ea5691537fdbc8.tar.gz diff --git a/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.mk b/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.mk index 95b0a6bd..11c67684 100644 --- a/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.mk +++ b/bsp/buildroot/package/freescale-imx/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv.mk @@ -4,7 +4,7 @@ # ################################################################################ -KERNEL_MODULE_IMX_GPU_VIV_VERSION = eeeb23c0fb1cee01318088d417025263479c44ac +KERNEL_MODULE_IMX_GPU_VIV_VERSION = aa83874b916cf5655cb90498b1ea5691537fdbc8 KERNEL_MODULE_IMX_GPU_VIV_SITE = \ $(call github,Freescale,kernel-module-imx-gpu-viv,$(KERNEL_MODULE_IMX_GPU_VIV_VERSION)) KERNEL_MODULE_IMX_GPU_VIV_LICENSE = GPLv2 diff --git a/bsp/buildroot/package/freescale-imx/libz160/Config.in b/bsp/buildroot/package/freescale-imx/libz160/Config.in index cfbfb79e..012efb9e 100644 --- a/bsp/buildroot/package/freescale-imx/libz160/Config.in +++ b/bsp/buildroot/package/freescale-imx/libz160/Config.in @@ -6,5 +6,5 @@ config BR2_PACKAGE_LIBZ160 An API for user space programs to perform 2D accelerated graphics operations on AMD GPU (included for examples in iMX5x chipsets) -comment "libz160 needs an EABI toolchain w/ (e)glibc" +comment "libz160 needs an EABI toolchain w/ glibc" depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/freescale-imx/libz160/libz160.hash b/bsp/buildroot/package/freescale-imx/libz160/libz160.hash new file mode 100644 index 00000000..ee10630f --- /dev/null +++ b/bsp/buildroot/package/freescale-imx/libz160/libz160.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 08767eb269a0a30ca0aa3d3b5aa9a53a2d17ed1c24651b7e8cefc7704b883f19 libz160-bin-11.09.01.bin diff --git a/bsp/buildroot/package/freeswitch/0001-libvpx-cross.patch b/bsp/buildroot/package/freeswitch/0001-libvpx-cross.patch new file mode 100644 index 00000000..a2583dac --- /dev/null +++ b/bsp/buildroot/package/freeswitch/0001-libvpx-cross.patch @@ -0,0 +1,29 @@ +Fix cross-compiling libvpx + +Freeswitch since version 1.6.7 only uses an in-tree-version of libvpx: +https://freeswitch.org/fisheye/changelog/freeswitch?cs=febe0f8dacea2d2a31902b3dc469be757f8c3c4d + +It is not possible to use an external version of libvpx anymore. +Unfortunately the freeswitch build system has no support for cross- +compiling libvpx so we need to patch Makefile to pass CROSS from +package/freeswitch/freeswitch.mk and add target=generic-gnu as +configure parameter: +https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/libs/libvpx/README#110 + +And yes, autoreconf is also broken, so we patch Makefile.in instead +of Makefile.am. + +Signed-off-by: Bernd Kuhls + +diff -uNr freeswitch-1.6.7.org/Makefile.in freeswitch-1.6.7/Makefile.in +--- freeswitch-1.6.7.org/Makefile.in 2016-04-01 18:09:54.000000000 +0200 ++++ freeswitch-1.6.7/Makefile.in 2016-04-22 20:11:37.938961730 +0200 +@@ -3491,7 +3491,7 @@ + cd libs/libzrtp && $(MAKE) + + libs/libvpx/Makefile: +- cd libs/libvpx && CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --extra-cflags="$(VISIBILITY_FLAG)" ++ cd libs/libvpx && CROSS=$(CROSS) CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --target=generic-gnu --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --extra-cflags="$(VISIBILITY_FLAG)" + + libs/libvpx/libvpx.a: libs/libvpx/Makefile + @cd libs/libvpx && $(MAKE) diff --git a/bsp/buildroot/package/freeswitch/Config.in b/bsp/buildroot/package/freeswitch/Config.in new file mode 100644 index 00000000..0156afd2 --- /dev/null +++ b/bsp/buildroot/package/freeswitch/Config.in @@ -0,0 +1,35 @@ +config BR2_PACKAGE_FREESWITCH + bool "freeswitch" + depends on BR2_INSTALL_LIBSTDCPP + depends on !BR2_STATIC_LIBS # apr, included in freeswitch source + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # apr, included in freeswitch source + depends on BR2_USE_WCHAR # libuuid + select BR2_PACKAGE_FFMPEG_AVRESAMPLE if BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FFMPEG_SWSCALE if BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_JPEG + # src/mod/applications/mod_cv/mod_cv.cpp includes + # highgui.h, imgproc.hpp & objdetect.hpp + select BR2_PACKAGE_OPENCV_LIB_HIGHGUI if BR2_PACKAGE_OPENCV + select BR2_PACKAGE_OPENCV_LIB_IMGPROC if BR2_PACKAGE_OPENCV + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT if BR2_PACKAGE_OPENCV + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PCRE + select BR2_PACKAGE_SPEEX + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + select BR2_PACKAGE_ZLIB + help + FreeSWITCH is a scalable open source cross-platform + telephony platform designed to route and interconnect + popular communication protocols using audio, video, text or + any other form of media. + + https://www.freeswitch.org + +comment "freeswitch needs a toolchain w/ C++, dynamic library, threads, wchar" + depends on BR2_USE_MMU + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS \ + || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/freeswitch/freeswitch.hash b/bsp/buildroot/package/freeswitch/freeswitch.hash new file mode 100644 index 00000000..20411585 --- /dev/null +++ b/bsp/buildroot/package/freeswitch/freeswitch.hash @@ -0,0 +1,2 @@ +# From http://files.freeswitch.org/freeswitch-releases/freeswitch-1.6.9.tar.xz.sha256 +sha256 aa5f191113be2bd44cb4f2108da3dcc37be3234c6b733896fbff97526ac66451 freeswitch-1.6.9.tar.xz diff --git a/bsp/buildroot/package/freeswitch/freeswitch.mk b/bsp/buildroot/package/freeswitch/freeswitch.mk new file mode 100644 index 00000000..e7e9ecea --- /dev/null +++ b/bsp/buildroot/package/freeswitch/freeswitch.mk @@ -0,0 +1,291 @@ +################################################################################ +# +# freeswitch +# +################################################################################ + +FREESWITCH_VERSION = 1.6.9 +FREESWITCH_SOURCE = freeswitch-$(FREESWITCH_VERSION).tar.xz +FREESWITCH_SITE = http://files.freeswitch.org/freeswitch-releases +FREESWITCH_LICENSE = MPLv1.1, \ + GPLv3+ with font exception (fonts), \ + Apache-2.0 (apr, apr-util), \ + LGPLv2+ (sofia-sip), \ + LGPLv2.1, GPLv2 (spandsp), \ + BSD-3c (libsrtp), \ + tiff license + +FREESWITCH_LICENSE_FILES = \ + COPYING \ + libs/apr/LICENSE \ + libs/apr-util/LICENSE \ + libs/sofia-sip/COPYING \ + libs/sofia-sip/COPYRIGHTS \ + libs/spandsp/COPYING \ + libs/srtp/LICENSE \ + libs/tiff-4.0.2/COPYRIGHT + +# required dependencies +FREESWITCH_DEPENDENCIES = \ + host-pkgconf \ + jpeg \ + libcurl \ + openssl \ + pcre \ + speex \ + sqlite \ + util-linux \ + zlib + +# we neither need host-perl nor host-php +FREESWITCH_CONF_ENV += \ + ac_cv_prog_PERL=false \ + ac_cv_have_perl=no \ + ac_cv_prog_PHP=false \ + ac_cv_have_php=no \ + ac_cv_prog_PHP_CONFIG=false \ + ac_cv_have_php_config=no + +# copied from freeswitch/configure.ac, line 258+ +FREESWITCH_CONF_ENV += \ + ac_cv_file__dev_ptmx=yes \ + ac_cv_va_copy=yes \ + ac_cv_file__dev_urandom=yes \ + ac_cv_func_realloc_0_nonnull=yes \ + ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_setpgrp_void=yes \ + ac_cv_file__dev_zero=yes \ + apr_cv_tcp_nodelay_with_cork=yes \ + ac_cv_file_dbd_apr_dbd_mysql_c=no \ + ac_cv_sizeof_ssize_t=4 \ + apr_cv_mutex_recursive=yes \ + ac_cv_func_pthread_rwlock_init=yes \ + apr_cv_type_rwlock_t=yes \ + apr_cv_process_shared_works=yes \ + apr_cv_mutex_robust_shared=yes + +# build breaks with -Werror enabled +FREESWITCH_CONF_ENV += \ + ac_cv_gcc_supports_w_no_unused_result=no + +FREESWITCH_CONF_OPTS = \ + --without-erlang \ + --enable-fhs \ + --without-python \ + --disable-system-xmlrpc-c + +# zrtp supports a limited set of archs, sparc support is also broken due +# to a broken ld call by gcc, see libs/libzrtp/include/zrtp_config.h +ifeq ($(BR2_i386)$(BR2_arm)$(BR2_armeb)$(BR2_aarch64)$(BR2_aarch64_be)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpcle)$(BR2_x86_64),y) +FREESWITCH_LICENSE_FILES += libs/libzrtp/src/zrtp_legal.c +FREESWITCH_CONF_OPTS += --enable-zrtp +else +FREESWITCH_CONF_OPTS += --disable-zrtp +endif + +# Enable optional modules +FREESWITCH_ENABLED_MODULES += \ + applications/mod_avmd \ + applications/mod_blacklist \ + applications/mod_callcenter \ + applications/mod_commands \ + applications/mod_conference \ + applications/mod_curl \ + applications/mod_db \ + applications/mod_directory \ + applications/mod_dptools \ + applications/mod_easyroute \ + applications/mod_esf \ + applications/mod_esl \ + applications/mod_expr \ + applications/mod_fifo \ + applications/mod_fsk \ + applications/mod_hash \ + applications/mod_httapi \ + applications/mod_lcr \ + applications/mod_sms \ + applications/mod_snom \ + applications/mod_spandsp \ + applications/mod_spy \ + applications/mod_valet_parking \ + applications/mod_voicemail \ + codecs/mod_g723_1 \ + codecs/mod_g729 \ + dialplans/mod_dialplan_asterisk \ + dialplans/mod_dialplan_xml \ + endpoints/mod_loopback \ + endpoints/mod_rtc \ + endpoints/mod_rtmp \ + endpoints/mod_sofia \ + endpoints/mod_verto \ + event_handlers/mod_cdr_csv \ + event_handlers/mod_cdr_sqlite \ + event_handlers/mod_event_socket \ + formats/mod_local_stream \ + formats/mod_native_file \ + formats/mod_tone_stream \ + loggers/mod_console \ + loggers/mod_logfile \ + loggers/mod_syslog \ + say/mod_say_de \ + say/mod_say_en \ + say/mod_say_es \ + say/mod_say_es_ar \ + say/mod_say_fa \ + say/mod_say_fr \ + say/mod_say_he \ + say/mod_say_hr \ + say/mod_say_hu \ + say/mod_say_it \ + say/mod_say_ja \ + say/mod_say_nl \ + say/mod_say_pl \ + say/mod_say_pt \ + say/mod_say_ru \ + say/mod_say_sv \ + say/mod_say_th \ + say/mod_say_zh \ + xml_int/mod_xml_cdr \ + xml_int/mod_xml_rpc \ + xml_int/mod_xml_scgi + +define FREESWITCH_ENABLE_MODULES + $(Q)echo $(FREESWITCH_ENABLED_MODULES) \ + | tr ' ' '\n' \ + > $(@D)/modules.conf +endef +FREESWITCH_PRE_CONFIGURE_HOOKS += FREESWITCH_ENABLE_MODULES + +# mod_isac supports a limited set of archs +# src/mod/codecs/mod_isac/typedefs.h +ifeq ($(BR2_i386)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_x86_64),y) +FREESWITCH_LICENSE := $(FREESWITCH_LICENSE), BSD-3c (mod_isac) +FREESWITCH_LICENSE_FILES += src/mod/codecs/mod_isac/LICENSE +FREESWITCH_ENABLED_MODULES += codecs/mod_isac +endif + +ifeq ($(BR2_PACKAGE_ALSA_LIB),y) +FREESWITCH_DEPENDENCIES += alsa-lib +FREESWITCH_ENABLED_MODULES += endpoints/mod_alsa +endif + +ifeq ($(BR2_PACKAGE_FREETYPE),y) +FREESWITCH_DEPENDENCIES += freetype +endif + +ifeq ($(BR2_PACKAGE_LIBBROADVOICE),y) +FREESWITCH_DEPENDENCIES += libbroadvoice +FREESWITCH_ENABLED_MODULES += codecs/mod_bv +endif + +ifeq ($(BR2_PACKAGE_LIBCODEC2),y) +FREESWITCH_DEPENDENCIES += libcodec2 +FREESWITCH_ENABLED_MODULES += codecs/mod_codec2 +endif + +ifeq ($(BR2_PACKAGE_LIBEDIT),y) +FREESWITCH_DEPENDENCIES += libedit +FREESWITCH_CONF_OPTS += --enable-core-libedit-support +else +FREESWITCH_CONF_OPTS += --disable-core-libedit-support +endif + +ifeq ($(BR2_PACKAGE_LIBG7221),y) +FREESWITCH_DEPENDENCIES += libg7221 +endif + +ifeq ($(BR2_PACKAGE_LIBILBC),y) +FREESWITCH_DEPENDENCIES += libilbc +FREESWITCH_ENABLED_MODULES += codecs/mod_ilbc +endif + +ifeq ($(BR2_PACKAGE_LIBLDNS),y) +FREESWITCH_DEPENDENCIES += libldns +FREESWITCH_ENABLED_MODULES += applications/mod_enum +endif + +ifeq ($(BR2_PACKAGE_LIBMEMCACHED),y) +FREESWITCH_DEPENDENCIES += libmemcached +FREESWITCH_ENABLED_MODULES += applications/mod_memcache +endif + +ifeq ($(BR2_PACKAGE_LIBPNG),y) +FREESWITCH_DEPENDENCIES += libpng +FREESWITCH_ENABLED_MODULES += formats/mod_png +endif + +ifeq ($(BR2_PACKAGE_LIBYAML),y) +FREESWITCH_DEPENDENCIES += libyaml +FREESWITCH_ENABLED_MODULES += languages/mod_yaml +endif + +ifeq ($(BR2_PACKAGE_LUA),y) +FREESWITCH_DEPENDENCIES += lua +FREESWITCH_ENABLED_MODULES += languages/mod_lua +endif + +ifeq ($(BR2_PACKAGE_OPENLDAP),y) +FREESWITCH_DEPENDENCIES += openldap +FREESWITCH_ENABLED_MODULES += directories/mod_ldap xml_int/mod_xml_ldap +endif + +ifeq ($(BR2_PACKAGE_OPUS),y) +FREESWITCH_DEPENDENCIES += opus +FREESWITCH_ENABLED_MODULES += codecs/mod_opus +endif + +ifeq ($(BR2_PACKAGE_PORTAUDIO),y) +FREESWITCH_DEPENDENCIES += portaudio +FREESWITCH_ENABLED_MODULES += endpoints/mod_portaudio +endif + +ifeq ($(BR2_PACKAGE_LAME)$(BR2_PACKAGE_LIBSHOUT)$(BR2_PACKAGE_MPG123),yyy) +FREESWITCH_DEPENDENCIES += lame libshout mpg123 +FREESWITCH_ENABLED_MODULES += formats/mod_shout +endif + +ifeq ($(BR2_PACKAGE_LIBSILK),y) +FREESWITCH_DEPENDENCIES += libsilk +FREESWITCH_ENABLED_MODULES += codecs/mod_silk +endif + +ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) +FREESWITCH_DEPENDENCIES += libsndfile +FREESWITCH_ENABLED_MODULES += formats/mod_sndfile +endif + +ifeq ($(BR2_PACKAGE_LIBSOUNDTOUCH),y) +FREESWITCH_DEPENDENCIES += libsoundtouch +FREESWITCH_ENABLED_MODULES += applications/mod_soundtouch +endif + +ifeq ($(BR2_PACKAGE_OPENCV),y) +FREESWITCH_DEPENDENCIES += opencv +FREESWITCH_ENABLED_MODULES += applications/mod_cv +endif + +ifeq ($(BR2_PACKAGE_UNIXODBC),y) +FREESWITCH_DEPENDENCIES += unixodbc +FREESWITCH_CONF_OPTS += \ + --enable-core-odbc-support \ + --with-odbc=$(STAGING_DIR)/usr +else +FREESWITCH_CONF_OPTS += --disable-core-odbc-support +endif + +ifeq ($(BR2_PACKAGE_XZ),y) +FREESWITCH_DEPENDENCIES += xz +endif + +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8)$(BR2_PACKAGE_FFMPEG),yy) +FREESWITCH_LICENSE := $(FREESWITCH_LICENSE), BSD-3c (libvpx, libyuv) +FREESWITCH_LICENSE_FILES += libs/libvpx/LICENSE libs/libyuv/LICENSE +FREESWITCH_CONF_OPTS += --enable-libvpx --enable-libyuv +FREESWITCH_DEPENDENCIES += host-yasm ffmpeg +FREESWITCH_ENABLED_MODULES += applications/mod_av applications/mod_fsv +FREESWITCH_MAKE_ENV += CROSS=$(TARGET_CROSS) +else +FREESWITCH_CONF_OPTS += --disable-libvpx --disable-libyuv +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/freetype/freetype.hash b/bsp/buildroot/package/freetype/freetype.hash index dc238f20..3d8c2259 100644 --- a/bsp/buildroot/package/freetype/freetype.hash +++ b/bsp/buildroot/package/freetype/freetype.hash @@ -1,3 +1,2 @@ -# From http://sourceforge.net/projects/freetype/files/freetype2/2.6.2/ -md5 86109d0c998787d81ac582bad9adf82e freetype-2.6.2.tar.bz2 -sha1 29c22b85b77cb22cf95c13e7062e21f39fe6b17a freetype-2.6.2.tar.bz2 +# Locally calculated after checking pgp signature +sha256 e20a6e1400798fd5e3d831dd821b61c35b1f9a6465d6b18a53a9df4cf441acf0 freetype-2.6.5.tar.bz2 diff --git a/bsp/buildroot/package/freetype/freetype.mk b/bsp/buildroot/package/freetype/freetype.mk index fa11b0ca..78e81dd4 100644 --- a/bsp/buildroot/package/freetype/freetype.mk +++ b/bsp/buildroot/package/freetype/freetype.mk @@ -4,9 +4,9 @@ # ################################################################################ -FREETYPE_VERSION = 2.6.2 +FREETYPE_VERSION = 2.6.5 FREETYPE_SOURCE = freetype-$(FREETYPE_VERSION).tar.bz2 -FREETYPE_SITE = http://downloads.sourceforge.net/project/freetype/freetype2/$(FREETYPE_VERSION) +FREETYPE_SITE = http://download.savannah.gnu.org/releases/freetype FREETYPE_INSTALL_STAGING = YES FREETYPE_MAKE_OPTS = CCexe="$(HOSTCC)" FREETYPE_LICENSE = Dual FTL/GPLv2+ diff --git a/bsp/buildroot/package/fwup/Config.in b/bsp/buildroot/package/fwup/Config.in new file mode 100644 index 00000000..fd40cf32 --- /dev/null +++ b/bsp/buildroot/package/fwup/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_FWUP + bool "fwup" + depends on BR2_USE_MMU + depends on BR2_USE_WCHAR + select BR2_PACKAGE_LIBARCHIVE + # required by libarchive to include zip compression + select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_LIBCONFUSE + select BR2_PACKAGE_LIBSODIUM + help + Fwup is a scriptable embedded Linux firmware update creator + and runner. + + https://github.com/fhunleth/fwup + +comment "fwup needs a toolchain w/ wchar" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/fwup/Config.in.host b/bsp/buildroot/package/fwup/Config.in.host new file mode 100644 index 00000000..4e21c7db --- /dev/null +++ b/bsp/buildroot/package/fwup/Config.in.host @@ -0,0 +1,7 @@ +config BR2_PACKAGE_HOST_FWUP + bool "host fwup" + help + Fwup is a scriptable embedded Linux firmware update creator + and runner. + + https://github.com/fhunleth/fwup diff --git a/bsp/buildroot/package/fwup/fwup.hash b/bsp/buildroot/package/fwup/fwup.hash new file mode 100644 index 00000000..e21eff0a --- /dev/null +++ b/bsp/buildroot/package/fwup/fwup.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 64c3a0ac38dc11c0c05b2588a89638cbc37f5552ac0f1c290f7ee5365f2bba49 fwup-v0.8.2.tar.gz diff --git a/bsp/buildroot/package/fwup/fwup.mk b/bsp/buildroot/package/fwup/fwup.mk new file mode 100644 index 00000000..3d3e3bef --- /dev/null +++ b/bsp/buildroot/package/fwup/fwup.mk @@ -0,0 +1,17 @@ +############################################################# +# +# fwup +# +############################################################# + +FWUP_VERSION = v0.8.2 +FWUP_SITE = $(call github,fhunleth,fwup,$(FWUP_VERSION)) +FWUP_LICENSE = Apache-2.0 +FWUP_LICENSE_FILES = LICENSE +FWUP_DEPENDENCIES = libconfuse libarchive libsodium +HOST_FWUP_DEPENDENCIES = host-libconfuse host-libarchive host-libsodium +FWUP_AUTORECONF = YES +FWUP_CONF_ENV = ac_cv_path_HELP2MAN="" + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/gadgetfs-test/gadgetfs-test.hash b/bsp/buildroot/package/gadgetfs-test/gadgetfs-test.hash new file mode 100644 index 00000000..b96190a5 --- /dev/null +++ b/bsp/buildroot/package/gadgetfs-test/gadgetfs-test.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 bd8ebcf7ce86f4b022a4e7ba6b1cc16ffc4022bb58c1910fe4ac96c88217e7ec gadgetfs-test.tar.bz2 diff --git a/bsp/buildroot/package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch b/bsp/buildroot/package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch new file mode 100644 index 00000000..b5f2e6c5 --- /dev/null +++ b/bsp/buildroot/package/gamin/0003-fix-missing-PTHREAD_MUTEX_RECURSIVE_NP.patch @@ -0,0 +1,39 @@ +Fix missing PTHREAD_MUTEX_RECURSIVE_NP + +The musl C library does not provide the non portable +PTHREAD_MUTEX_RECURSIVE_NP. In addition, uClibc does not define it as +a #define, but as an enum value, so doing a #if defined() check +doesn't work properly. Instead, add a AC_CHECK_DECL() autoconf check. + +Signed-off-by: Baruch Siach +[Thomas: switch to an autoconf check.] +Signed-off-by: Thomas Petazzoni + +Index: b/configure.in +=================================================================== +--- a/configure.in ++++ b/configure.in +@@ -294,6 +294,10 @@ + AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)]) + AC_DEFINE([HAVE_PTHREAD_H], [], [Define if is there]) + WITH_THREADS="1"])) ++ ++ AC_CHECK_DECL([PTHREAD_MUTEX_RECURSIVE_NP], ++ [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE_NP], [], [whether HAVE_PTHREAD_MUTEX_RECURSIVE_NP is defined])], ++ [], [#include ]) + fi + + dnl Use weak symbols on linux/gcc to avoid imposing libpthreads to apps +Index: b/libgamin/gam_data.c +=================================================================== +--- a/libgamin/gam_data.c ++++ b/libgamin/gam_data.c +@@ -470,7 +470,7 @@ + } + if (is_threaded > 0) { + pthread_mutexattr_init(&attr); +-#if defined(linux) || defined(PTHREAD_MUTEX_RECURSIVE_NP) ++#if defined(HAVE_PTHREAD_MUTEX_RECURSIVE_NP) + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); + #else + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); diff --git a/bsp/buildroot/package/gamin/Config.in b/bsp/buildroot/package/gamin/Config.in index c191be06..55e037a4 100644 --- a/bsp/buildroot/package/gamin/Config.in +++ b/bsp/buildroot/package/gamin/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_GAMIN bool "gamin" depends on BR2_USE_WCHAR # glib2 - depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 + depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # glib2 select BR2_PACKAGE_LIBGLIB2 help diff --git a/bsp/buildroot/package/gawk/Config.in b/bsp/buildroot/package/gawk/Config.in index 949f509b..36e70eb7 100644 --- a/bsp/buildroot/package/gawk/Config.in +++ b/bsp/buildroot/package/gawk/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_GAWK depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help A special-purpose programming language which is data driven rather than procedural. Allows for simple data-reformatting jobs @@ -13,3 +14,4 @@ config BR2_PACKAGE_GAWK comment "gawk needs a toolchain w/ wchar, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/gawk/gawk.mk b/bsp/buildroot/package/gawk/gawk.mk index da9be95c..b5b0f8d5 100644 --- a/bsp/buildroot/package/gawk/gawk.mk +++ b/bsp/buildroot/package/gawk/gawk.mk @@ -36,9 +36,6 @@ else GAWK_CONF_OPTS += --without-readline endif -# We don't have a host-busybox, and we don't want to use readline or mpfr -HOST_GAWK_DEPENDENCIES = - HOST_GAWK_CONF_OPTS = --without-readline --without-mpfr define GAWK_CREATE_SYMLINK diff --git a/bsp/buildroot/package/gcc/4.5.4/1000-powerpc-link-with-math-lib.patch.conditional b/bsp/buildroot/package/gcc/4.5.4/1000-powerpc-link-with-math-lib.patch.conditional deleted file mode 100644 index 7e75e87f..00000000 --- a/bsp/buildroot/package/gcc/4.5.4/1000-powerpc-link-with-math-lib.patch.conditional +++ /dev/null @@ -1,125 +0,0 @@ -http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00269.html - -On glibc the libc.so carries a copy of the math function copysignl() but -on uClibc math functions like copysignl() live in libm. Since libgcc_s -contains unresolved symbols, any attempt to link against libgcc_s -without explicitely specifying -lm fails, resulting in a broken -bootstrap of the compiler. - -Forward port to gcc 4.5.1 by Gustavo Zacarias - -diff -Nura gcc-4.5.1.orig/gcc/config/t-slibgcc-elf-ver gcc-4.5.1/gcc/config/t-slibgcc-elf-ver ---- gcc-4.5.1.orig/gcc/config/t-slibgcc-elf-ver 2010-11-03 14:35:08.644904042 -0300 -+++ gcc-4.5.1/gcc/config/t-slibgcc-elf-ver 2010-11-03 14:35:56.332904024 -0300 -@@ -27,7 +27,7 @@ - SHLIB_OBJS = @shlib_objs@ - SHLIB_DIR = @multilib_dir@ - SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ --SHLIB_LC = -lc -+SHLIB_LC = @libgcc_libm@ -lc - SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) - SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ - $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) -diff -Nura gcc-4.5.1.orig/libgcc/Makefile.in gcc-4.5.1/libgcc/Makefile.in ---- gcc-4.5.1.orig/libgcc/Makefile.in 2010-11-03 14:32:44.272904042 -0300 -+++ gcc-4.5.1/libgcc/Makefile.in 2010-11-03 14:37:03.893904042 -0300 -@@ -39,6 +39,7 @@ - decimal_float = @decimal_float@ - enable_decimal_float = @enable_decimal_float@ - fixed_point = @fixed_point@ -+LIBGCC_LIBM = @LIBGCC_LIBM@ - - host_noncanonical = @host_noncanonical@ - -@@ -798,9 +799,10 @@ - @multilib_dir@,$(MULTIDIR),$(subst \ - @shlib_objs@,$(objects),$(subst \ - @shlib_base_name@,libgcc_s,$(subst \ -+ @libgcc_libm@,$(LIBGCC_LIBM),$(subst \ - @shlib_map_file@,$(mapfile),$(subst \ - @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \ -- @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))) -+ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK))))))))) - - libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts) - # @multilib_flags@ is still needed because this may use -diff -Nura gcc-4.5.1.orig/libgcc/configure gcc-4.5.1/libgcc/configure ---- gcc-4.5.1.orig/libgcc/configure 2010-11-03 14:32:44.283904042 -0300 -+++ gcc-4.5.1/libgcc/configure 2010-11-03 14:39:48.685904042 -0300 -@@ -557,6 +557,7 @@ - extra_parts - tmake_file - set_use_emutls -+LIBGCC_LIBM - set_have_cc_tls - vis_hide - fixed_point -@@ -3847,6 +3848,37 @@ - set_use_emutls="-DUSE_EMUTLS" - fi - -+# On powerpc libgcc_s references copysignl which is a libm function but -+# glibc apparently also provides it via libc as opposed to uClibc where -+# it lives in libm. -+echo "$as_me:$LINENO: checking for library containing copysignl" >&5 -+echo $ECHO_N "checking for library containing copysignl... $ECHO_C" >&6 -+if test "${libgcc_cv_copysignl_lib+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ -+ echo '#include ' > conftest.c -+ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c -+ libgcc_cv_copysignl_lib="-lc" -+ if { ac_try='${CC-cc} -S conftest.c -o conftest.s 1>&5' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; } -+ then -+ libgcc_cv_copysignl_lib="-lm" -+ fi -+ rm -f conftest.* -+ -+fi -+echo "$as_me:$LINENO: result: $libgcc_cv_copysignl_lib" >&5 -+echo "${ECHO_T}$libgcc_cv_copysignl_lib" >&6 -+ -+case /${libgcc_cv_copysignl_lib}/ in -+ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;; -+ *) LIBGCC_LIBM= ;; -+esac - - # Conditionalize the makefile for this target machine. - tmake_file_= -diff -Nura gcc-4.5.1.orig/libgcc/configure.ac gcc-4.5.1/libgcc/configure.ac ---- gcc-4.5.1.orig/libgcc/configure.ac 2010-11-03 14:32:44.735904042 -0300 -+++ gcc-4.5.1/libgcc/configure.ac 2010-11-03 14:42:11.278904045 -0300 -@@ -238,6 +238,27 @@ - fi - AC_SUBST(set_have_cc_tls) - -+# On powerpc libgcc_s references copysignl which is a libm function but -+# glibc apparently also provides it via libc as opposed to uClibc where -+# it lives in libm. -+AC_CACHE_CHECK -+ libgcc_cv_copysignl_lib, -+ echo '#include ' > conftest.c -+ echo 'int the_libc = __UCLIBC__ + __powerpc__;' >> conftest.c -+ libgcc_cv_copysignl_lib="-lc" -+ if AC_TRY_COMMAND(${CC-cc} -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD) -+ then -+ libgcc_cv_copysignl_lib="-lm" -+ fi -+ rm -f conftest.* -+ ]) -+ -+case /${libgcc_cv_copysignl_lib}/ in -+ /-lm/) LIBGCC_LIBM="$LIBGCC_LIBM -lm" ;; -+ *) LIBGCC_LIBM= ;; -+esac -+AC_SUBST(LIBGCC_LIBM) -+ - # See if we have emulated thread-local storage. - GCC_CHECK_EMUTLS - set_use_emutls= diff --git a/bsp/buildroot/package/gcc/4.5.4/302-c99-snprintf.patch b/bsp/buildroot/package/gcc/4.5.4/302-c99-snprintf.patch deleted file mode 100644 index ba51a0e1..00000000 --- a/bsp/buildroot/package/gcc/4.5.4/302-c99-snprintf.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: gcc-4.3.0/libstdc++-v3/include/c_global/cstdio -=================================================================== ---- gcc-4.3.0/libstdc++-v3/include/c_global/cstdio (revision 129202) -+++ gcc-4.3.0/libstdc++-v3/include/c_global/cstdio (working copy) -@@ -144,7 +144,7 @@ - - _GLIBCXX_END_NAMESPACE - --#if _GLIBCXX_USE_C99 -+#if _GLIBCXX_USE_C99 || defined __UCLIBC__ - - #undef snprintf - #undef vfscanf diff --git a/bsp/buildroot/package/gcc/4.5.4/305-libmudflap-susv3-legacy.patch b/bsp/buildroot/package/gcc/4.5.4/305-libmudflap-susv3-legacy.patch deleted file mode 100644 index 374b1f86..00000000 --- a/bsp/buildroot/package/gcc/4.5.4/305-libmudflap-susv3-legacy.patch +++ /dev/null @@ -1,49 +0,0 @@ -Index: gcc-4.2/libmudflap/mf-hooks2.c -=================================================================== ---- gcc-4.2/libmudflap/mf-hooks2.c (revision 119834) -+++ gcc-4.2/libmudflap/mf-hooks2.c (working copy) -@@ -427,7 +427,7 @@ - { - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); -- bzero (s, n); -+ memset (s, 0, n); - } - - -@@ -437,7 +437,7 @@ - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src"); - MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest"); -- bcopy (src, dest, n); -+ memmove (dest, src, n); - } - - -@@ -447,7 +447,7 @@ - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg"); - MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg"); -- return bcmp (s1, s2, n); -+ return n == 0 ? 0 : memcmp (s1, s2, n); - } - - -@@ -456,7 +456,7 @@ - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region"); -- return index (s, c); -+ return strchr (s, c); - } - - -@@ -465,7 +465,7 @@ - size_t n = strlen (s); - TRACE ("%s\n", __PRETTY_FUNCTION__); - MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region"); -- return rindex (s, c); -+ return strrchr (s, c); - } - - /* XXX: stpcpy, memccpy */ diff --git a/bsp/buildroot/package/gcc/4.5.4/810-arm-softfloat-libgcc.patch b/bsp/buildroot/package/gcc/4.5.4/810-arm-softfloat-libgcc.patch deleted file mode 100644 index e6a30a3f..00000000 --- a/bsp/buildroot/package/gcc/4.5.4/810-arm-softfloat-libgcc.patch +++ /dev/null @@ -1,38 +0,0 @@ -[PATCH] add the correct symbols to libgcc for uclibc arm softfloat - -Signed-off-by: Peter Korsgaard ---- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/arm/t-linux | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -Index: gcc-4.4.0/gcc/config/arm/t-linux -=================================================================== ---- gcc-4.4.0.orig/gcc/config/arm/t-linux -+++ gcc-4.4.0/gcc/config/arm/t-linux -@@ -4,7 +4,11 @@ - - LIB1ASMSRC = arm/lib1funcs.asm - LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ -- _arm_addsubdf3 _arm_addsubsf3 -+ _arm_addsubdf3 _arm_addsubsf3 \ -+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ -+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \ -+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \ -+ _arm_fixsfsi _arm_fixunssfsi - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float -Index: gcc-4.4.0/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.4.0.orig/gcc/config/arm/linux-elf.h -+++ gcc-4.4.0/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" - diff --git a/bsp/buildroot/package/gcc/4.5.4/830-arm-pr43440.patch b/bsp/buildroot/package/gcc/4.5.4/830-arm-pr43440.patch deleted file mode 100644 index 811d1f24..00000000 --- a/bsp/buildroot/package/gcc/4.5.4/830-arm-pr43440.patch +++ /dev/null @@ -1,345 +0,0 @@ -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43440 - ---- gcc-4.4.4.orig/gcc/config/arm/aout.h -+++ gcc-4.4.4/gcc/config/arm/aout.h -@@ -163,34 +163,49 @@ - {"mvdx12", 39}, \ - {"mvdx13", 40}, \ - {"mvdx14", 41}, \ -- {"mvdx15", 42}, \ -- {"d0", 63}, {"q0", 63}, \ -- {"d1", 65}, \ -- {"d2", 67}, {"q1", 67}, \ -- {"d3", 69}, \ -- {"d4", 71}, {"q2", 71}, \ -- {"d5", 73}, \ -- {"d6", 75}, {"q3", 75}, \ -- {"d7", 77}, \ -- {"d8", 79}, {"q4", 79}, \ -- {"d9", 81}, \ -- {"d10", 83}, {"q5", 83}, \ -- {"d11", 85}, \ -- {"d12", 87}, {"q6", 87}, \ -- {"d13", 89}, \ -- {"d14", 91}, {"q7", 91}, \ -- {"d15", 93}, \ -- {"q8", 95}, \ -- {"q9", 99}, \ -- {"q10", 103}, \ -- {"q11", 107}, \ -- {"q12", 111}, \ -- {"q13", 115}, \ -- {"q14", 119}, \ -- {"q15", 123} \ -+ {"mvdx15", 42} \ - } - #endif - -+#ifndef OVERLAPPING_REGISTER_NAMES -+#define OVERLAPPING_REGISTER_NAMES \ -+{ \ -+ {"d0", 63, 2}, \ -+ {"d1", 65, 2}, \ -+ {"d2", 67, 2}, \ -+ {"d3", 69, 2}, \ -+ {"d4", 71, 2}, \ -+ {"d5", 73, 2}, \ -+ {"d6", 75, 2}, \ -+ {"d7", 77, 2}, \ -+ {"d8", 79, 2}, \ -+ {"d9", 81, 2}, \ -+ {"d10", 83, 2}, \ -+ {"d11", 85, 2}, \ -+ {"d12", 87, 2}, \ -+ {"d13", 89, 2}, \ -+ {"d14", 91, 2}, \ -+ {"d15", 93, 2}, \ -+ {"q0", 63, 4}, \ -+ {"q1", 67, 4}, \ -+ {"q2", 71, 4}, \ -+ {"q3", 75, 4}, \ -+ {"q4", 79, 4}, \ -+ {"q5", 83, 4}, \ -+ {"q6", 87, 4}, \ -+ {"q7", 91, 4}, \ -+ {"q8", 95, 4}, \ -+ {"q9", 99, 4}, \ -+ {"q10", 103, 4}, \ -+ {"q11", 107, 4}, \ -+ {"q12", 111, 4}, \ -+ {"q13", 115, 4}, \ -+ {"q14", 119, 4}, \ -+ {"q15", 123, 4} \ -+} -+#endif -+ -+ - #ifndef NO_DOLLAR_IN_LABEL - #define NO_DOLLAR_IN_LABEL 1 - #endif ---- gcc-4.4.4.orig/gcc/output.h -+++ gcc-4.4.4/gcc/output.h -@@ -169,6 +169,11 @@ - Prefixes such as % are optional. */ - extern int decode_reg_name (const char *); - -+/* Similar to decode_reg_name, but takes an extra parameter that is a -+ pointer to the number of (internal) registers described by the -+ external name. */ -+extern int decode_reg_name_and_count (const char *, int *); -+ - extern void assemble_alias (tree, tree); - - extern void default_assemble_visibility (tree, int); ---- gcc-4.4.4.orig/gcc/reginfo.c -+++ gcc-4.4.4/gcc/reginfo.c -@@ -800,39 +800,44 @@ - fix_register (const char *name, int fixed, int call_used) - { - int i; -+ int reg, nregs; - - /* Decode the name and update the primary form of - the register info. */ -- -- if ((i = decode_reg_name (name)) >= 0) -+ if ((reg = decode_reg_name_and_count (name, &nregs)) >= 0) - { -- if ((i == STACK_POINTER_REGNUM -+ gcc_assert (nregs >= 1); -+ for (i = reg; i < reg + nregs; i++) -+ { -+ if ((i == STACK_POINTER_REGNUM - #ifdef HARD_FRAME_POINTER_REGNUM -- || i == HARD_FRAME_POINTER_REGNUM -+ || i == HARD_FRAME_POINTER_REGNUM - #else -- || i == FRAME_POINTER_REGNUM -+ || i == FRAME_POINTER_REGNUM - #endif -- ) -- && (fixed == 0 || call_used == 0)) -- { -- static const char * const what_option[2][2] = { -- { "call-saved", "call-used" }, -- { "no-such-option", "fixed" }}; -+ ) -+ && (fixed == 0 || call_used == 0)) -+ { -+ static const char * const what_option[2][2] = { -+ { "call-saved", "call-used" }, -+ { "no-such-option", "fixed" }}; - -- error ("can't use '%s' as a %s register", name, -- what_option[fixed][call_used]); -- } -- else -- { -- fixed_regs[i] = fixed; -- call_used_regs[i] = call_used; -+ error ("can't use '%s' as a %s register", name, -+ what_option[fixed][call_used]); -+ } -+ else -+ { -+ fixed_regs[i] = fixed; -+ call_used_regs[i] = call_used; - #ifdef CALL_REALLY_USED_REGISTERS -- if (fixed == 0) -- call_really_used_regs[i] = call_used; -+ if (fixed == 0) -+ call_really_used_regs[i] = call_used; - #endif -- } -- } -- else -+ } -+ } -+ } -+ else -+ - { - warning (0, "unknown register name: %s", name); - } ---- gcc-4.4.4.orig/gcc/stmt.c -+++ gcc-4.4.4/gcc/stmt.c -@@ -681,13 +681,14 @@ - for (tail = clobbers; tail; tail = TREE_CHAIN (tail)) - { - const char *regname; -+ int nregs; - - if (TREE_VALUE (tail) == error_mark_node) - return; - regname = TREE_STRING_POINTER (TREE_VALUE (tail)); - -- i = decode_reg_name (regname); -- if (i >= 0 || i == -4) -+ i = decode_reg_name_and_count (regname, &nregs); -+ if (i == -4) - ++nclobbers; - else if (i == -2) - error ("unknown register name %qs in %", regname); -@@ -695,14 +696,21 @@ - /* Mark clobbered registers. */ - if (i >= 0) - { -- /* Clobbering the PIC register is an error. */ -- if (i == (int) PIC_OFFSET_TABLE_REGNUM) -- { -- error ("PIC register %qs clobbered in %", regname); -- return; -- } -+ int reg; - -- SET_HARD_REG_BIT (clobbered_regs, i); -+ for (reg = i; reg < i + nregs; reg++) -+ { -+ ++nclobbers; -+ -+ /* Clobbering the PIC register is an error. */ -+ if (reg == (int) PIC_OFFSET_TABLE_REGNUM) -+ { -+ error ("PIC register clobbered by %qs in %", regname); -+ return; -+ } -+ -+ SET_HARD_REG_BIT (clobbered_regs, reg); -+ } - } - } - -@@ -1012,8 +1020,9 @@ - for (tail = clobbers; tail; tail = TREE_CHAIN (tail)) - { - const char *regname = TREE_STRING_POINTER (TREE_VALUE (tail)); -- int j = decode_reg_name (regname); -- rtx clobbered_reg; -+ int reg, nregs; -+ int j = decode_reg_name_and_count (regname, &nregs); -+ rtx clobbered_reg; - - if (j < 0) - { -@@ -1033,31 +1042,40 @@ - /* Ignore unknown register, error already signaled. */ - continue; - } -- -- /* Use QImode since that's guaranteed to clobber just one reg. */ -- clobbered_reg = gen_rtx_REG (QImode, j); -- -- /* Do sanity check for overlap between clobbers and respectively -- input and outputs that hasn't been handled. Such overlap -- should have been detected and reported above. */ -- if (!clobber_conflict_found) -- { -- int opno; -- -- /* We test the old body (obody) contents to avoid tripping -- over the under-construction body. */ -- for (opno = 0; opno < noutputs; opno++) -- if (reg_overlap_mentioned_p (clobbered_reg, output_rtx[opno])) -- internal_error ("asm clobber conflict with output operand"); -- -- for (opno = 0; opno < ninputs - ninout; opno++) -- if (reg_overlap_mentioned_p (clobbered_reg, -- ASM_OPERANDS_INPUT (obody, opno))) -- internal_error ("asm clobber conflict with input operand"); -+ -+ for (reg = j; reg < j + nregs; reg++) -+ { -+ /* Use QImode since that's guaranteed to clobber just -+ * one reg. */ -+ clobbered_reg = gen_rtx_REG (QImode, reg); -+ -+ /* Do sanity check for overlap between clobbers and -+ respectively input and outputs that hasn't been -+ handled. Such overlap should have been detected and -+ reported above. */ -+ if (!clobber_conflict_found) -+ { -+ int opno; -+ -+ /* We test the old body (obody) contents to avoid -+ tripping over the under-construction body. */ -+ for (opno = 0; opno < noutputs; opno++) -+ if (reg_overlap_mentioned_p (clobbered_reg, -+ output_rtx[opno])) -+ internal_error -+ ("asm clobber conflict with output operand"); -+ -+ for (opno = 0; opno < ninputs - ninout; opno++) -+ if (reg_overlap_mentioned_p (clobbered_reg, -+ ASM_OPERANDS_INPUT (obody, -+ opno))) -+ internal_error -+ ("asm clobber conflict with input operand"); -+ } -+ -+ XVECEXP (body, 0, i++) -+ = gen_rtx_CLOBBER (VOIDmode, clobbered_reg); - } -- -- XVECEXP (body, 0, i++) -- = gen_rtx_CLOBBER (VOIDmode, clobbered_reg); - } - - emit_insn (body); ---- gcc-4.4.4.orig/gcc/varasm.c -+++ gcc-4.4.4/gcc/varasm.c -@@ -1031,8 +1031,11 @@ - Prefixes such as % are optional. */ - - int --decode_reg_name (const char *asmspec) -+decode_reg_name_and_count (const char *asmspec, int *pnregs) - { -+ /* Presume just one register is clobbered. */ -+ *pnregs = 1; -+ - if (asmspec != 0) - { - int i; -@@ -1058,6 +1061,25 @@ - && ! strcmp (asmspec, strip_reg_name (reg_names[i]))) - return i; - -+#ifdef OVERLAPPING_REGISTER_NAMES -+ { -+ static const struct -+ { -+ const char *const name; -+ const int number; -+ const int nregs; -+ } table[] = OVERLAPPING_REGISTER_NAMES; -+ -+ for (i = 0; i < (int) ARRAY_SIZE (table); i++) -+ if (table[i].name[0] -+ && ! strcmp (asmspec, table[i].name)) -+ { -+ *pnregs = table[i].nregs; -+ return table[i].number; -+ } -+ } -+#endif /* OVERLAPPING_REGISTER_NAMES */ -+ - #ifdef ADDITIONAL_REGISTER_NAMES - { - static const struct { const char *const name; const int number; } table[] -@@ -1081,6 +1103,15 @@ - - return -1; - } -+ -+int -+decode_reg_name (const char *name) -+{ -+ int count; -+ return decode_reg_name_and_count (name, &count); -+} -+ -+ - - /* Return true if DECL's initializer is suitable for a BSS section. */ - diff --git a/bsp/buildroot/package/gcc/4.7.4/130-pr43538.patch b/bsp/buildroot/package/gcc/4.7.4/130-pr43538.patch new file mode 100644 index 00000000..19e57bb0 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.7.4/130-pr43538.patch @@ -0,0 +1,25 @@ +From c037df1be41f8daf4d581d7ffa4ec8cfa640bccf Mon Sep 17 00:00:00 2001 +From: glisse +Date: Fri, 25 Apr 2014 08:03:08 +0000 +Subject: [PATCH] 2014-04-25 Marc Glisse + + PR target/43538 + * mt-gnu: Don't reset CXXFLAGS_FOR_TARGET. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209784 138bc75d-0d04-0410-961f-82ee72b054a4 +Signed-off-by: Max Filippov +--- + config/mt-gnu | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config/mt-gnu b/config/mt-gnu +index 15bf417..5c696f5 100644 +--- a/config/mt-gnu ++++ b/config/mt-gnu +@@ -1 +1 @@ +-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE ++CXXFLAGS_FOR_TARGET += -D_GNU_SOURCE +-- +2.1.4 + diff --git a/bsp/buildroot/package/gcc/4.7.4/900-musl-support.patch b/bsp/buildroot/package/gcc/4.7.4/900-musl-support.patch index 67b8c30c..bf8fbc07 100644 --- a/bsp/buildroot/package/gcc/4.7.4/900-musl-support.patch +++ b/bsp/buildroot/package/gcc/4.7.4/900-musl-support.patch @@ -478,7 +478,7 @@ Index: b/gcc/config/mips/linux.h +#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" +#endif +#undef MUSL_DYNAMIC_LINKER -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" Index: b/gcc/config/rs6000/linux64.h =================================================================== --- a/gcc/config/rs6000/linux64.h diff --git a/bsp/buildroot/package/gcc/4.8.5/130-fix_build_with_gcc-6.patch b/bsp/buildroot/package/gcc/4.8.5/130-fix_build_with_gcc-6.patch new file mode 100644 index 00000000..62ac3cbd --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/130-fix_build_with_gcc-6.patch @@ -0,0 +1,153 @@ +From 1e5f1089dec3af328fd03125d6778f666d0bd4e4 Mon Sep 17 00:00:00 2001 +From: edlinger +Date: Thu, 25 Feb 2016 15:33:50 +0000 +Subject: [PATCH 1/1] 2016-02-25 Bernd Edlinger + + Backported from mainline + 2016-02-19 Jakub Jelinek + Bernd Edlinger + + * Make-lang.in: Invoke gperf with -L C++. + * cfns.gperf: Remove prototypes for hash and libc_name_p + inlines. + * cfns.h: Regenerated. + * except.c (nothrow_libfn_p): Adjust. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@233720 138bc75d-0d04-0410-961f-82ee72b054a4 + +Signed-off-by: Samuel Martin +--- + gcc/cp/Make-lang.in | 2 +- + gcc/cp/cfns.gperf | 10 ++-------- + gcc/cp/cfns.h | 41 ++++++++++++++--------------------------- + gcc/cp/except.c | 3 ++- + 5 files changed, 31 insertions(+), 37 deletions(-) + +diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in +index e98beb1..b09fb02 100644 +--- a/gcc/cp/Make-lang.in ++++ b/gcc/cp/Make-lang.in +@@ -111,7 +111,7 @@ else + # deleting the $(srcdir)/cp/cfns.h file. + $(srcdir)/cp/cfns.h: + endif +- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \ ++ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \ + $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h + + # +diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf +index 68acd3d..214ecf6 100644 +--- a/gcc/cp/cfns.gperf ++++ b/gcc/cp/cfns.gperf +@@ -1,3 +1,5 @@ ++%language=C++ ++%define class-name libc_name + %{ + /* Copyright (C) 2000-2015 Free Software Foundation, Inc. + +@@ -16,14 +18,6 @@ for more details. + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ +-#ifdef __GNUC__ +-__inline +-#endif +-static unsigned int hash (const char *, unsigned int); +-#ifdef __GNUC__ +-__inline +-#endif +-const char * libc_name_p (const char *, unsigned int); + %} + %% + # The standard C library functions, for feeding to gperf; the result is used +diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h +index 1c6665d..596f413 100644 +--- a/gcc/cp/cfns.h ++++ b/gcc/cp/cfns.h +@@ -1,5 +1,5 @@ +-/* ANSI-C code produced by gperf version 3.0.3 */ +-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */ ++/* C++ code produced by gperf version 3.0.4 */ ++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */ + + #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ +@@ -28,7 +28,7 @@ + #error "gperf generated tables don't work with this execution character set. Please report a bug to ." + #endif + +-#line 1 "cfns.gperf" ++#line 3 "cfns.gperf" + + /* Copyright (C) 2000-2015 Free Software Foundation, Inc. + +@@ -47,25 +47,18 @@ for more details. + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ +-#ifdef __GNUC__ +-__inline +-#endif +-static unsigned int hash (const char *, unsigned int); +-#ifdef __GNUC__ +-__inline +-#endif +-const char * libc_name_p (const char *, unsigned int); + /* maximum key range = 391, duplicates = 0 */ + +-#ifdef __GNUC__ +-__inline +-#else +-#ifdef __cplusplus +-inline +-#endif +-#endif +-static unsigned int +-hash (register const char *str, register unsigned int len) ++class libc_name ++{ ++private: ++ static inline unsigned int hash (const char *str, unsigned int len); ++public: ++ static const char *libc_name_p (const char *str, unsigned int len); ++}; ++ ++inline unsigned int ++libc_name::hash (register const char *str, register unsigned int len) + { + static const unsigned short asso_values[] = + { +@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len) + return hval + asso_values[(unsigned char)str[len - 1]]; + } + +-#ifdef __GNUC__ +-__inline +-#ifdef __GNUC_STDC_INLINE__ +-__attribute__ ((__gnu_inline__)) +-#endif +-#endif + const char * +-libc_name_p (register const char *str, register unsigned int len) ++libc_name::libc_name_p (register const char *str, register unsigned int len) + { + enum + { +diff --git a/gcc/cp/except.c b/gcc/cp/except.c +index 3ff1ce6..2f2e396 100644 +--- a/gcc/cp/except.c ++++ b/gcc/cp/except.c +@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn) + unless the system headers are playing rename tricks, and if + they are, we don't want to be confused by them. */ + id = DECL_NAME (fn); +- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id)); ++ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id), ++ IDENTIFIER_LENGTH (id)); + } + + /* Returns nonzero if an exception of type FROM will be caught by a +-- +1.7.1 diff --git a/bsp/buildroot/package/gcc/4.8.5/130-pr43538.patch b/bsp/buildroot/package/gcc/4.8.5/130-pr43538.patch new file mode 100644 index 00000000..19e57bb0 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/130-pr43538.patch @@ -0,0 +1,25 @@ +From c037df1be41f8daf4d581d7ffa4ec8cfa640bccf Mon Sep 17 00:00:00 2001 +From: glisse +Date: Fri, 25 Apr 2014 08:03:08 +0000 +Subject: [PATCH] 2014-04-25 Marc Glisse + + PR target/43538 + * mt-gnu: Don't reset CXXFLAGS_FOR_TARGET. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209784 138bc75d-0d04-0410-961f-82ee72b054a4 +Signed-off-by: Max Filippov +--- + config/mt-gnu | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config/mt-gnu b/config/mt-gnu +index 15bf417..5c696f5 100644 +--- a/config/mt-gnu ++++ b/config/mt-gnu +@@ -1 +1 @@ +-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE ++CXXFLAGS_FOR_TARGET += -D_GNU_SOURCE +-- +2.1.4 + diff --git a/bsp/buildroot/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch b/bsp/buildroot/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch new file mode 100644 index 00000000..23db3d86 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch @@ -0,0 +1,174 @@ +From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Sat, 22 Aug 2015 08:44:26 +0300 +Subject: [PATCH] xtensa: add uclinux support + +2015-10-03 Max Filippov +gcc/ + * config.gcc (xtensa*-*-uclinux*): New configuration. + * config/xtensa/uclinux.h: New file. + * config/xtensa/uclinux.opt: New file. + +libgcc/ + * config.host (xtensa*-*-uclinux*): New configuration. + +Signed-off-by: Max Filippov +--- +Backported from: r228450 + + gcc/config.gcc | 5 ++++ + gcc/config/xtensa/uclinux.h | 69 +++++++++++++++++++++++++++++++++++++++++++ + gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++ + libgcc/config.host | 5 ++++ + 4 files changed, 111 insertions(+) + create mode 100644 gcc/config/xtensa/uclinux.h + create mode 100644 gcc/config/xtensa/uclinux.opt + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index c52f5a8..56797bd 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2995,6 +2995,11 @@ xtensa*-*-linux*) + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h" + tmake_file="${tmake_file} xtensa/t-xtensa" + ;; ++xtensa*-*-uclinux*) ++ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h" ++ tmake_file="${tmake_file} xtensa/t-xtensa" ++ extra_options="${extra_options} xtensa/uclinux.opt" ++ ;; + am33_2.0-*-linux*) + tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h" + gas=yes gnu_ld=yes +diff --git a/gcc/config/xtensa/uclinux.h b/gcc/config/xtensa/uclinux.h +new file mode 100644 +index 0000000..4606020 +--- /dev/null ++++ b/gcc/config/xtensa/uclinux.h +@@ -0,0 +1,69 @@ ++/* Xtensa uClinux configuration. ++ Derived from the configuration for GCC for Intel i386 running Linux. ++ Copyright (C) 2001-2015 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 3, or (at your option) any later ++version. ++ ++GCC 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 GCC; see the file COPYING3. If not see ++. */ ++ ++#undef TARGET_OS_CPP_BUILTINS ++#define TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ GNU_USER_TARGET_OS_CPP_BUILTINS (); \ ++ builtin_define ("__uClinux__"); \ ++ } \ ++ while (0) ++ ++#undef SUBTARGET_CPP_SPEC ++#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" ++ ++#undef SIZE_TYPE ++#define SIZE_TYPE "unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "long int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++#undef ASM_SPEC ++#define ASM_SPEC \ ++ "%{mtext-section-literals:--text-section-literals} \ ++ %{mno-text-section-literals:--no-text-section-literals} \ ++ %{mtarget-align:--target-align} \ ++ %{mno-target-align:--no-target-align} \ ++ %{mlongcalls:--longcalls} \ ++ %{mno-longcalls:--no-longcalls} \ ++ %{mauto-litpools:--auto-litpools} \ ++ %{mno-auto-litpools:--no-auto-litpools}" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}" ++ ++#undef LOCAL_LABEL_PREFIX ++#define LOCAL_LABEL_PREFIX "." ++ ++/* Always enable "-fpic" for Xtensa Linux. */ ++#define XTENSA_ALWAYS_PIC 1 ++ ++#undef TARGET_LIBC_HAS_FUNCTION ++#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function ++ ++#undef DBX_REGISTER_NUMBER ++ +diff --git a/gcc/config/xtensa/uclinux.opt b/gcc/config/xtensa/uclinux.opt +new file mode 100644 +index 0000000..95ef777 +--- /dev/null ++++ b/gcc/config/xtensa/uclinux.opt +@@ -0,0 +1,32 @@ ++; Xtensa uClinux options. ++ ++; Copyright (C) 2015 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC is free software; you can redistribute it and/or modify it under ++; the terms of the GNU General Public License as published by the Free ++; Software Foundation; either version 3, or (at your option) any later ++; version. ++; ++; GCC 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 GCC; see the file COPYING3. If not see ++; . ++ ++; See the GCC internals manual (options.texi) for a description of ++; this file's format. ++ ++; Please try to keep this file in ASCII collating order. ++ ++elf2flt ++Driver ++ ++elf2flt= ++Driver JoinedOrMissing ++ ++; This comment is to ensure we retain the blank line above. +diff --git a/libgcc/config.host b/libgcc/config.host +index 2c64756..2ee92c1 100644 +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -1295,6 +1295,11 @@ xtensa*-*-linux*) + tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc" + md_unwind_header=xtensa/linux-unwind.h + ;; ++xtensa*-*-uclinux*) ++ tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc" ++ md_unwind_header=xtensa/linux-unwind.h ++ extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o" ++ ;; + am33_2.0-*-linux*) + # Don't need crtbeginT.o from *-*-linux* default. + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" +-- +1.8.1.4 + diff --git a/bsp/buildroot/package/gcc/4.8.5/890-fix-m68k-compile.patch b/bsp/buildroot/package/gcc/4.8.5/890-fix-m68k-compile.patch new file mode 100644 index 00000000..124e8427 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/890-fix-m68k-compile.patch @@ -0,0 +1,15 @@ +remove unused header, which breaks the toolchain building + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.8.5.orig/libgcc/config/m68k/linux-atomic.c gcc-4.8.5/libgcc/config/m68k/linux-atomic.c +--- gcc-4.8.5.orig/libgcc/config/m68k/linux-atomic.c 2013-02-04 20:06:20.000000000 +0100 ++++ gcc-4.8.5/libgcc/config/m68k/linux-atomic.c 2016-03-19 00:18:12.000000000 +0100 +@@ -33,7 +33,6 @@ + using the kernel helper defined below. There is no support for + 64-bit operations yet. */ + +-#include + #include + + #ifndef __NR_atomic_cmpxchg_32 diff --git a/bsp/buildroot/package/gcc/4.8.5/891-fix-m68k-uclinux.patch b/bsp/buildroot/package/gcc/4.8.5/891-fix-m68k-uclinux.patch new file mode 100644 index 00000000..37c7ac40 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/891-fix-m68k-uclinux.patch @@ -0,0 +1,18 @@ +avoids internal compiler error while compiling linux-atomic.c +See here: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.8.5.orig/libgcc/config.host gcc-4.8.5/libgcc/config.host +--- gcc-4.8.5.orig/libgcc/config.host 2014-03-20 17:12:30.000000000 +0100 ++++ gcc-4.8.5/libgcc/config.host 2016-04-27 15:04:01.521171537 +0200 +@@ -689,7 +689,7 @@ + m68k*-*-openbsd*) + ;; + m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc +- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" ++ tmake_file="$tmake_file m68k/t-floatlib" + md_unwind_header=m68k/linux-unwind.h + ;; + m68k-*-linux*) # Motorola m68k's running GNU/Linux diff --git a/bsp/buildroot/package/gcc/4.8.5/900-musl-support.patch b/bsp/buildroot/package/gcc/4.8.5/900-musl-support.patch index 6743a88b..6840fcce 100644 --- a/bsp/buildroot/package/gcc/4.8.5/900-musl-support.patch +++ b/bsp/buildroot/package/gcc/4.8.5/900-musl-support.patch @@ -332,7 +332,7 @@ Index: b/gcc/config/mips/linux.h +#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" +#endif +#undef MUSL_DYNAMIC_LINKER -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" Index: b/gcc/config/rs6000/linux64.h =================================================================== --- a/gcc/config/rs6000/linux64.h diff --git a/bsp/buildroot/package/gcc/4.8.5/930-libgcc-disable-split-stack-nothreads.patch b/bsp/buildroot/package/gcc/4.8.5/930-libgcc-disable-split-stack-nothreads.patch new file mode 100644 index 00000000..7799c128 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/930-libgcc-disable-split-stack-nothreads.patch @@ -0,0 +1,14 @@ +disable split-stack for non-thread builds + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.8.5.orig/libgcc/config/t-stack gcc-4.8.5/libgcc/config/t-stack +--- gcc-4.8.5.orig/libgcc/config/t-stack 2010-10-01 21:31:49.000000000 +0200 ++++ gcc-4.8.5/libgcc/config/t-stack 2016-03-07 05:28:12.000000000 +0100 +@@ -1,4 +1,6 @@ + # Makefile fragment to provide generic support for -fsplit-stack. + # This should be used in config.host for any host which supports + # -fsplit-stack. ++ifeq ($(enable_threads),yes) + LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c ++endif diff --git a/bsp/buildroot/package/gcc/4.8.5/940-uclinux-enable-threads.patch b/bsp/buildroot/package/gcc/4.8.5/940-uclinux-enable-threads.patch new file mode 100644 index 00000000..e58e8249 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.8.5/940-uclinux-enable-threads.patch @@ -0,0 +1,19 @@ +Enable POSIX threads for uClinux targets +Reported upstream: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.8.5.orig/gcc/config.gcc gcc-4.8.5/gcc/config.gcc +--- gcc-4.8.5.orig/gcc/config.gcc 2015-05-21 22:57:29.000000000 +0200 ++++ gcc-4.8.5/gcc/config.gcc 2016-07-02 20:35:24.107644834 +0200 +@@ -741,6 +741,9 @@ + *-*-uclinux*) + extra_options="$extra_options gnu-user.opt" + use_gcc_stdint=wrap ++ case ${enable_threads} in ++ "" | yes | posix) thread_file='posix' ;; ++ esac + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" + ;; + *-*-rdos*) diff --git a/bsp/buildroot/package/gcc/4.9.3/850-libstdcxx-uclibc-c99.patch b/bsp/buildroot/package/gcc/4.9.3/850-libstdcxx-uclibc-c99.patch deleted file mode 100644 index d103af1a..00000000 --- a/bsp/buildroot/package/gcc/4.9.3/850-libstdcxx-uclibc-c99.patch +++ /dev/null @@ -1,255 +0,0 @@ -Allow C99-depending features of libstdc++ with uClibc - -The libstdc++ code is fairly restrictive on how it checks for C99 -compatibility: it requires *complete* C99 support to enable certain -features. For example, uClibc provides a good number of C99 features, -but not C99 complex number support. For this reason, libstdc++ -completely disables many the standard C++ methods that can in fact -work because uClibc provides the necessary functions. - -This patch is similar and highly inspired from -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393, but implemented in -a way that doesn't involve changing the configure.ac script, as -autoreconfiguring gcc is complicated. It simply relies on the fact -that uClibc defines the __UCLIBC__ definition. - -Signed-off-by: Thomas Petazzoni -[Gustavo: update for 4.9.3] - -diff -Nura gcc-4.9.3.orig/libstdc++-v3/config/locale/generic/c_locale.h gcc-4.9.3/libstdc++-v3/config/locale/generic/c_locale.h ---- gcc-4.9.3.orig/libstdc++-v3/config/locale/generic/c_locale.h 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/config/locale/generic/c_locale.h 2015-06-27 06:46:04.420022179 -0300 -@@ -70,7 +70,7 @@ - __builtin_va_list __args; - __builtin_va_start(__args, __fmt); - --#ifdef _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); - #else - const int __ret = __builtin_vsprintf(__out, __fmt, __args); -diff -Nura gcc-4.9.3.orig/libstdc++-v3/config/locale/gnu/c_locale.h gcc-4.9.3/libstdc++-v3/config/locale/gnu/c_locale.h ---- gcc-4.9.3.orig/libstdc++-v3/config/locale/gnu/c_locale.h 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/config/locale/gnu/c_locale.h 2015-06-27 06:46:04.465023743 -0300 -@@ -88,7 +88,7 @@ - __builtin_va_list __args; - __builtin_va_start(__args, __fmt); - --#ifdef _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); - #else - const int __ret = __builtin_vsprintf(__out, __fmt, __args); -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/bits/basic_string.h gcc-4.9.3/libstdc++-v3/include/bits/basic_string.h ---- gcc-4.9.3.orig/libstdc++-v3/include/bits/basic_string.h 2015-05-28 13:27:46.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/bits/basic_string.h 2015-06-27 06:49:04.741284648 -0300 -@@ -2844,7 +2844,7 @@ - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace - --#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99) -+#if __cplusplus >= 201103L && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) - - #include - -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc gcc-4.9.3/libstdc++-v3/include/bits/locale_facets_nonio.tcc ---- gcc-4.9.3.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2015-06-27 06:46:04.466023777 -0300 -@@ -572,7 +572,7 @@ - { - const locale __loc = __io.getloc(); - const ctype<_CharT>& __ctype = use_facet >(__loc); --#ifdef _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - // First try a buffer perhaps big enough. - int __cs_size = 64; - char* __cs = static_cast(__builtin_alloca(__cs_size)); -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/bits/locale_facets.tcc gcc-4.9.3/libstdc++-v3/include/bits/locale_facets.tcc ---- gcc-4.9.3.orig/libstdc++-v3/include/bits/locale_facets.tcc 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/bits/locale_facets.tcc 2015-06-27 06:46:04.466023777 -0300 -@@ -987,7 +987,7 @@ - char __fbuf[16]; - __num_base::_S_format_float(__io, __fbuf, __mod); - --#ifdef _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - // First try a buffer perhaps big enough (most probably sufficient - // for non-ios_base::fixed outputs) - int __cs_size = __max_digits * 3; -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_compatibility/math.h gcc-4.9.3/libstdc++-v3/include/c_compatibility/math.h ---- gcc-4.9.3.orig/libstdc++-v3/include/c_compatibility/math.h 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_compatibility/math.h 2015-06-27 06:46:04.466023777 -0300 -@@ -56,7 +56,7 @@ - using std::floor; - using std::fmod; - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - using std::fpclassify; - using std::isfinite; - using std::isinf; -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.9.3/libstdc++-v3/include/c_compatibility/wchar.h ---- gcc-4.9.3.orig/libstdc++-v3/include/c_compatibility/wchar.h 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_compatibility/wchar.h 2015-06-27 06:46:04.466023777 -0300 -@@ -103,7 +103,7 @@ - using std::wmemset; - using std::wcsftime; - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - using std::wcstold; - using std::wcstoll; - using std::wcstoull; -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_global/cstdio gcc-4.9.3/libstdc++-v3/include/c_global/cstdio ---- gcc-4.9.3.orig/libstdc++-v3/include/c_global/cstdio 2014-01-23 18:17:15.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_global/cstdio 2015-06-27 06:46:04.481024298 -0300 -@@ -146,7 +146,7 @@ - using ::vsprintf; - } // namespace - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef snprintf - #undef vfscanf -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_global/cstdlib gcc-4.9.3/libstdc++-v3/include/c_global/cstdlib ---- gcc-4.9.3.orig/libstdc++-v3/include/c_global/cstdlib 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_global/cstdlib 2015-06-27 06:46:04.466023777 -0300 -@@ -182,7 +182,7 @@ - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef _Exit - #undef llabs -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_global/cwchar gcc-4.9.3/libstdc++-v3/include/c_global/cwchar ---- gcc-4.9.3.orig/libstdc++-v3/include/c_global/cwchar 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_global/cwchar 2015-06-27 06:46:04.466023777 -0300 -@@ -232,7 +232,7 @@ - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef wcstold - #undef wcstoll -@@ -289,7 +289,7 @@ - using std::vwscanf; - #endif - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - using std::wcstold; - using std::wcstoll; - using std::wcstoull; -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_std/cstdio gcc-4.9.3/libstdc++-v3/include/c_std/cstdio ---- gcc-4.9.3.orig/libstdc++-v3/include/c_std/cstdio 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_std/cstdio 2015-06-27 06:46:04.480024263 -0300 -@@ -144,7 +144,7 @@ - using ::vsprintf; - } // namespace std - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef snprintf - #undef vfscanf -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_std/cstdlib gcc-4.9.3/libstdc++-v3/include/c_std/cstdlib ---- gcc-4.9.3.orig/libstdc++-v3/include/c_std/cstdlib 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_std/cstdlib 2015-06-27 06:46:04.480024263 -0300 -@@ -180,7 +180,7 @@ - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef _Exit - #undef llabs -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/c_std/cwchar gcc-4.9.3/libstdc++-v3/include/c_std/cwchar ---- gcc-4.9.3.orig/libstdc++-v3/include/c_std/cwchar 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/c_std/cwchar 2015-06-27 06:46:04.480024263 -0300 -@@ -228,7 +228,7 @@ - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef wcstold - #undef wcstoll -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/ext/vstring.h gcc-4.9.3/libstdc++-v3/include/ext/vstring.h ---- gcc-4.9.3.orig/libstdc++-v3/include/ext/vstring.h 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/ext/vstring.h 2015-06-27 06:46:04.480024263 -0300 -@@ -2680,7 +2680,7 @@ - _GLIBCXX_END_NAMESPACE_VERSION - } // namespace - --#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99)) -+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__))) - - #include - -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/tr1/cstdio gcc-4.9.3/libstdc++-v3/include/tr1/cstdio ---- gcc-4.9.3.orig/libstdc++-v3/include/tr1/cstdio 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/tr1/cstdio 2015-06-27 06:46:04.480024263 -0300 -@@ -33,7 +33,7 @@ - - #include - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - namespace std _GLIBCXX_VISIBILITY(default) - { -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/tr1/cstdlib gcc-4.9.3/libstdc++-v3/include/tr1/cstdlib ---- gcc-4.9.3.orig/libstdc++-v3/include/tr1/cstdlib 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/tr1/cstdlib 2015-06-27 06:46:04.480024263 -0300 -@@ -35,7 +35,7 @@ - - #if _GLIBCXX_HOSTED - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - namespace std _GLIBCXX_VISIBILITY(default) - { -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/tr1/cwchar gcc-4.9.3/libstdc++-v3/include/tr1/cwchar ---- gcc-4.9.3.orig/libstdc++-v3/include/tr1/cwchar 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/tr1/cwchar 2015-06-27 06:46:04.480024263 -0300 -@@ -52,7 +52,7 @@ - using std::vwscanf; - #endif - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - using std::wcstold; - using std::wcstoll; - using std::wcstoull; -diff -Nura gcc-4.9.3.orig/libstdc++-v3/include/tr1/stdlib.h gcc-4.9.3/libstdc++-v3/include/tr1/stdlib.h ---- gcc-4.9.3.orig/libstdc++-v3/include/tr1/stdlib.h 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/include/tr1/stdlib.h 2015-06-27 06:46:04.481024298 -0300 -@@ -33,7 +33,7 @@ - - #if _GLIBCXX_HOSTED - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - using std::tr1::atoll; - using std::tr1::strtoll; -diff -Nura gcc-4.9.3.orig/libstdc++-v3/src/c++11/debug.cc gcc-4.9.3/libstdc++-v3/src/c++11/debug.cc ---- gcc-4.9.3.orig/libstdc++-v3/src/c++11/debug.cc 2014-01-02 19:30:10.000000000 -0300 -+++ gcc-4.9.3/libstdc++-v3/src/c++11/debug.cc 2015-06-27 06:46:04.481024298 -0300 -@@ -788,7 +788,7 @@ - int __n __attribute__ ((__unused__)), - const char* __fmt, _Tp __s) const throw () - { --#ifdef _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - std::snprintf(__buf, __n, __fmt, __s); - #else - std::sprintf(__buf, __fmt, __s); diff --git a/bsp/buildroot/package/gcc/4.9.3/920-libgcc-remove-unistd-header.patch b/bsp/buildroot/package/gcc/4.9.3/920-libgcc-remove-unistd-header.patch deleted file mode 100644 index df5372bb..00000000 --- a/bsp/buildroot/package/gcc/4.9.3/920-libgcc-remove-unistd-header.patch +++ /dev/null @@ -1,12 +0,0 @@ -Upstream status: In progress - ---- a/libgcc/config/nios2/linux-atomic.c -+++ b/libgcc/config/nios2/linux-atomic.c -@@ -20,7 +20,6 @@ - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - . */ - --#include - #define EFAULT 14 - #define EBUSY 16 - #define ENOSYS 38 diff --git a/bsp/buildroot/package/gcc/4.9.3/100-uclibc-conf.patch b/bsp/buildroot/package/gcc/4.9.4/100-uclibc-conf.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/100-uclibc-conf.patch rename to bsp/buildroot/package/gcc/4.9.4/100-uclibc-conf.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/1000-powerpc-link-with-math-lib.patch.conditional b/bsp/buildroot/package/gcc/4.9.4/1000-powerpc-link-with-math-lib.patch.conditional similarity index 84% rename from bsp/buildroot/package/gcc/4.9.3/1000-powerpc-link-with-math-lib.patch.conditional rename to bsp/buildroot/package/gcc/4.9.4/1000-powerpc-link-with-math-lib.patch.conditional index b7094fe6..5e0484fb 100644 --- a/bsp/buildroot/package/gcc/4.9.3/1000-powerpc-link-with-math-lib.patch.conditional +++ b/bsp/buildroot/package/gcc/4.9.4/1000-powerpc-link-with-math-lib.patch.conditional @@ -14,19 +14,19 @@ Forward port to gcc 4.5.1 by Gustavo Zacarias libgcc/configure.ac | 21 +++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) -Index: gcc-4.8.0/libgcc/Makefile.in +Index: b/libgcc/Makefile.in =================================================================== ---- gcc-4.8.0.orig/libgcc/Makefile.in 2013-02-04 20:06:20.000000000 +0100 -+++ gcc-4.8.0/libgcc/Makefile.in 2013-03-24 09:12:43.000000000 +0100 -@@ -41,6 +41,7 @@ - decimal_float = @decimal_float@ +--- a/libgcc/Makefile.in ++++ b/libgcc/Makefile.in +@@ -42,6 +42,7 @@ + enable_vtable_verify = @enable_vtable_verify@ enable_decimal_float = @enable_decimal_float@ fixed_point = @fixed_point@ +LIBGCC_LIBM = @LIBGCC_LIBM@ host_noncanonical = @host_noncanonical@ target_noncanonical = @target_noncanonical@ -@@ -927,9 +928,10 @@ +@@ -943,9 +944,10 @@ @multilib_dir@,$(MULTIDIR),$(subst \ @shlib_objs@,$(objects) libgcc.a,$(subst \ @shlib_base_name@,libgcc_s,$(subst \ @@ -38,10 +38,10 @@ Index: gcc-4.8.0/libgcc/Makefile.in libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts) # @multilib_flags@ is still needed because this may use -Index: gcc-4.8.0/libgcc/configure +Index: b/libgcc/configure =================================================================== ---- gcc-4.8.0.orig/libgcc/configure 2012-11-05 00:08:42.000000000 +0100 -+++ gcc-4.8.0/libgcc/configure 2013-03-24 09:12:43.000000000 +0100 +--- a/libgcc/configure ++++ b/libgcc/configure @@ -564,6 +564,7 @@ tmake_file sfp_machine_header @@ -50,7 +50,7 @@ Index: gcc-4.8.0/libgcc/configure set_have_cc_tls vis_hide fixed_point -@@ -4481,6 +4482,37 @@ +@@ -4535,6 +4536,37 @@ fi fi @@ -88,11 +88,11 @@ Index: gcc-4.8.0/libgcc/configure # Conditionalize the makefile for this target machine. tmake_file_= -Index: gcc-4.8.0/libgcc/configure.ac +Index: b/libgcc/configure.ac =================================================================== ---- gcc-4.8.0.orig/libgcc/configure.ac 2012-10-15 15:10:30.000000000 +0200 -+++ gcc-4.8.0/libgcc/configure.ac 2013-03-24 09:12:43.000000000 +0100 -@@ -326,6 +326,27 @@ +--- a/libgcc/configure.ac ++++ b/libgcc/configure.ac +@@ -357,6 +357,27 @@ fi AC_SUBST(set_have_cc_tls) diff --git a/bsp/buildroot/package/gcc/4.9.3/111-pr65730.patch b/bsp/buildroot/package/gcc/4.9.4/111-pr65730.patch similarity index 85% rename from bsp/buildroot/package/gcc/4.9.3/111-pr65730.patch rename to bsp/buildroot/package/gcc/4.9.4/111-pr65730.patch index f195e308..8a41fd2a 100644 --- a/bsp/buildroot/package/gcc/4.9.3/111-pr65730.patch +++ b/bsp/buildroot/package/gcc/4.9.4/111-pr65730.patch @@ -16,11 +16,11 @@ Changes to ChangeLog are dropped. gcc/config/xtensa/xtensa.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c -index eb039ba..7296e36 100644 +Index: b/gcc/config/xtensa/xtensa.c +=================================================================== --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c -@@ -1461,8 +1461,9 @@ init_alignment_context (struct alignment_context *ac, rtx mem) +@@ -1436,8 +1436,9 @@ if (ac->shift != NULL_RTX) { /* Shift is the byte count, but we need the bitcount. */ @@ -32,6 +32,3 @@ index eb039ba..7296e36 100644 NULL_RTX, 1, OPTAB_DIRECT); ac->modemask = expand_simple_binop (SImode, ASHIFT, GEN_INT (GET_MODE_MASK (mode)), --- -1.8.1.4 - diff --git a/bsp/buildroot/package/gcc/5.3.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch b/bsp/buildroot/package/gcc/4.9.4/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch similarity index 87% rename from bsp/buildroot/package/gcc/5.3.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch rename to bsp/buildroot/package/gcc/4.9.4/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch index c11ad35a..bb77c4b9 100644 --- a/bsp/buildroot/package/gcc/5.3.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch +++ b/bsp/buildroot/package/gcc/4.9.4/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch @@ -11,19 +11,16 @@ Signed-off-by: Arnout Vandecappelle (Essensium/Mind) gcc/config.gcc | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 4a7cbd2..9cc765e 100644 +Index: b/gcc/config.gcc +=================================================================== --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -439,7 +439,7 @@ powerpc*-*-*) - cpu_type=rs6000 +@@ -441,7 +441,7 @@ extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h" + need_64bit_hwint=yes case x$with_cpu in - xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500) + xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) cpu_is_64bit=yes ;; esac --- -2.6.2 - diff --git a/bsp/buildroot/package/gcc/4.9.4/130-pr43538.patch b/bsp/buildroot/package/gcc/4.9.4/130-pr43538.patch new file mode 100644 index 00000000..19e57bb0 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/130-pr43538.patch @@ -0,0 +1,25 @@ +From c037df1be41f8daf4d581d7ffa4ec8cfa640bccf Mon Sep 17 00:00:00 2001 +From: glisse +Date: Fri, 25 Apr 2014 08:03:08 +0000 +Subject: [PATCH] 2014-04-25 Marc Glisse + + PR target/43538 + * mt-gnu: Don't reset CXXFLAGS_FOR_TARGET. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209784 138bc75d-0d04-0410-961f-82ee72b054a4 +Signed-off-by: Max Filippov +--- + config/mt-gnu | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config/mt-gnu b/config/mt-gnu +index 15bf417..5c696f5 100644 +--- a/config/mt-gnu ++++ b/config/mt-gnu +@@ -1 +1 @@ +-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE ++CXXFLAGS_FOR_TARGET += -D_GNU_SOURCE +-- +2.1.4 + diff --git a/bsp/buildroot/package/gcc/4.9.4/140-sanitizer-Fix-build-with-_FILE_OFFSET_BITS-64.patch b/bsp/buildroot/package/gcc/4.9.4/140-sanitizer-Fix-build-with-_FILE_OFFSET_BITS-64.patch new file mode 100644 index 00000000..55f32288 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/140-sanitizer-Fix-build-with-_FILE_OFFSET_BITS-64.patch @@ -0,0 +1,37 @@ +From 3c536954a67a883630f4a7513a27f02a892c3dcb Mon Sep 17 00:00:00 2001 +From: Evgeniy Stepanov +Date: Tue, 21 Oct 2014 21:08:13 +0000 +Subject: [PATCH] [sanitizer] Fix build with _FILE_OFFSET_BITS=64. + +Sanitizer source is not affected by _FILE_OFFSET_BITS in general, +but this one file must be built with 32-bit off_t. More details in the code. + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@220328 91177308-0d34-0410-b5e6-96231b3b80d8 +Signed-off-by: Max Filippov +--- + lib/sanitizer_common/sanitizer_platform_limits_posix.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index bbc1108..fc09522 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -13,7 +13,15 @@ + + #include "sanitizer_platform.h" + #if SANITIZER_LINUX || SANITIZER_MAC ++// Tests in this file assume that off_t-dependent data structures match the ++// libc ABI. For example, struct dirent here is what readdir() function (as ++// exported from libc) returns, and not the user-facing "dirent", which ++// depends on _FILE_OFFSET_BITS setting. ++// To get this "true" dirent definition, we undefine _FILE_OFFSET_BITS below. ++#ifdef _FILE_OFFSET_BITS ++#undef _FILE_OFFSET_BITS ++#endif + + #include "sanitizer_internal_defs.h" + #include "sanitizer_platform_limits_posix.h" + +-- +2.1.4 + diff --git a/bsp/buildroot/package/gcc/4.9.3/301-missing-execinfo_h.patch b/bsp/buildroot/package/gcc/4.9.4/301-missing-execinfo_h.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/301-missing-execinfo_h.patch rename to bsp/buildroot/package/gcc/4.9.4/301-missing-execinfo_h.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/810-arm-softfloat-libgcc.patch b/bsp/buildroot/package/gcc/4.9.4/810-arm-softfloat-libgcc.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/810-arm-softfloat-libgcc.patch rename to bsp/buildroot/package/gcc/4.9.4/810-arm-softfloat-libgcc.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/830-arm_unbreak_armv4t.patch b/bsp/buildroot/package/gcc/4.9.4/830-arm_unbreak_armv4t.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/830-arm_unbreak_armv4t.patch rename to bsp/buildroot/package/gcc/4.9.4/830-arm_unbreak_armv4t.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/840-microblaze-enable-dwarf-eh-support.patch b/bsp/buildroot/package/gcc/4.9.4/840-microblaze-enable-dwarf-eh-support.patch similarity index 81% rename from bsp/buildroot/package/gcc/4.9.3/840-microblaze-enable-dwarf-eh-support.patch rename to bsp/buildroot/package/gcc/4.9.4/840-microblaze-enable-dwarf-eh-support.patch index e116e2b2..03fc47f1 100644 --- a/bsp/buildroot/package/gcc/4.9.3/840-microblaze-enable-dwarf-eh-support.patch +++ b/bsp/buildroot/package/gcc/4.9.4/840-microblaze-enable-dwarf-eh-support.patch @@ -33,11 +33,11 @@ Signed-off-by: Edgar E. Iglesias gcc/config/microblaze/microblaze.md | 11 +++++++++ 5 files changed, 52 insertions(+), 7 deletions(-) -diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.c -index 5835acc..85e6a53 100644 +Index: b/gcc/common/config/microblaze/microblaze-common.c +=================================================================== --- a/gcc/common/config/microblaze/microblaze-common.c +++ b/gcc/common/config/microblaze/microblaze-common.c -@@ -39,7 +39,4 @@ static const struct default_options microblaze_option_optimization_table[] = +@@ -37,7 +37,4 @@ #undef TARGET_OPTION_OPTIMIZATION_TABLE #define TARGET_OPTION_OPTIMIZATION_TABLE microblaze_option_optimization_table @@ -45,11 +45,11 @@ index 5835acc..85e6a53 100644 -#define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; -diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h -index c30ec72..260f4e4 100644 +Index: b/gcc/config/microblaze/microblaze-protos.h +=================================================================== --- a/gcc/config/microblaze/microblaze-protos.h +++ b/gcc/config/microblaze/microblaze-protos.h -@@ -56,6 +56,7 @@ extern bool microblaze_tls_referenced_p (rtx); +@@ -54,6 +54,7 @@ extern int symbol_mentioned_p (rtx); extern int label_mentioned_p (rtx); extern bool microblaze_cannot_force_const_mem (enum machine_mode, rtx); @@ -57,11 +57,11 @@ index c30ec72..260f4e4 100644 #endif /* RTX_CODE */ /* Declare functions in microblaze-c.c. */ -diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c -index fe61fce..15166d3 100644 +Index: b/gcc/config/microblaze/microblaze.c +=================================================================== --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c -@@ -1999,6 +1999,11 @@ microblaze_must_save_register (int regno) +@@ -1906,6 +1906,11 @@ if (frame_pointer_needed && (regno == HARD_FRAME_POINTER_REGNUM)) return 1; @@ -73,7 +73,7 @@ index fe61fce..15166d3 100644 if (!crtl->is_leaf) { if (regno == MB_ABI_SUB_RETURN_ADDR_REGNUM) -@@ -2026,6 +2031,13 @@ microblaze_must_save_register (int regno) +@@ -1933,6 +1938,13 @@ return 1; } @@ -87,7 +87,7 @@ index fe61fce..15166d3 100644 return 0; } -@@ -3131,6 +3143,12 @@ microblaze_expand_epilogue (void) +@@ -2962,6 +2974,12 @@ emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, fsiz_rtx)); } @@ -100,7 +100,7 @@ index fe61fce..15166d3 100644 emit_jump_insn (gen_return_internal (gen_rtx_REG (Pmode, GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM))); } -@@ -3427,10 +3445,13 @@ microblaze_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) +@@ -3256,10 +3274,13 @@ if (count != 0) return NULL_RTX; @@ -118,11 +118,11 @@ index fe61fce..15166d3 100644 } /* Queue an .ident string in the queue of top-level asm statements. -diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h -index 4072283..5e9f49c 100644 +Index: b/gcc/config/microblaze/microblaze.h +=================================================================== --- a/gcc/config/microblaze/microblaze.h +++ b/gcc/config/microblaze/microblaze.h -@@ -184,6 +184,21 @@ extern enum pipeline_type microblaze_pipe; +@@ -184,6 +184,21 @@ #define INCOMING_RETURN_ADDR_RTX \ gen_rtx_REG (VOIDmode, GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM) @@ -144,11 +144,11 @@ index 4072283..5e9f49c 100644 /* Use DWARF 2 debugging information by default. */ #define DWARF2_DEBUGGING_INFO #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG -diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md -index ed6131a..dc2405f 100644 +Index: b/gcc/config/microblaze/microblaze.md +=================================================================== --- a/gcc/config/microblaze/microblaze.md +++ b/gcc/config/microblaze/microblaze.md -@@ -2327,4 +2327,15 @@ +@@ -2261,4 +2261,15 @@ (set_attr "mode" "SI") (set_attr "length" "4")]) @@ -164,6 +164,3 @@ index ed6131a..dc2405f 100644 + (include "sync.md") + --- -1.8.3.2 - diff --git a/bsp/buildroot/package/gcc/arc-2015.12/100-libstdcxx-uclibc-c99.patch b/bsp/buildroot/package/gcc/4.9.4/850-libstdcxx-uclibc-c99.patch similarity index 96% rename from bsp/buildroot/package/gcc/arc-2015.12/100-libstdcxx-uclibc-c99.patch rename to bsp/buildroot/package/gcc/4.9.4/850-libstdcxx-uclibc-c99.patch index 0d02ef0f..533d01fa 100644 --- a/bsp/buildroot/package/gcc/arc-2015.12/100-libstdcxx-uclibc-c99.patch +++ b/bsp/buildroot/package/gcc/4.9.4/850-libstdcxx-uclibc-c99.patch @@ -14,6 +14,7 @@ autoreconfiguring gcc is complicated. It simply relies on the fact that uClibc defines the __UCLIBC__ definition. Signed-off-by: Thomas Petazzoni +[Gustavo: update for 4.9.3] Index: b/libstdc++-v3/config/locale/generic/c_locale.h =================================================================== @@ -45,28 +46,15 @@ Index: b/libstdc++-v3/include/bits/basic_string.h =================================================================== --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h -@@ -2811,7 +2811,7 @@ +@@ -2843,7 +2843,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace --#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ -+#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \ - && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) +-#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99) ++#if __cplusplus >= 201103L && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) #include -Index: b/libstdc++-v3/include/bits/locale_facets.tcc -=================================================================== ---- a/libstdc++-v3/include/bits/locale_facets.tcc -+++ b/libstdc++-v3/include/bits/locale_facets.tcc -@@ -987,7 +987,7 @@ - char __fbuf[16]; - __num_base::_S_format_float(__io, __fbuf, __mod); --#ifdef _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - // First try a buffer perhaps big enough (most probably sufficient - // for non-ios_base::fixed outputs) - int __cs_size = __max_digits * 3; Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc =================================================================== --- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc @@ -80,6 +68,19 @@ Index: b/libstdc++-v3/include/bits/locale_facets_nonio.tcc // First try a buffer perhaps big enough. int __cs_size = 64; char* __cs = static_cast(__builtin_alloca(__cs_size)); +Index: b/libstdc++-v3/include/bits/locale_facets.tcc +=================================================================== +--- a/libstdc++-v3/include/bits/locale_facets.tcc ++++ b/libstdc++-v3/include/bits/locale_facets.tcc +@@ -987,7 +987,7 @@ + char __fbuf[16]; + __num_base::_S_format_float(__io, __fbuf, __mod); + +-#ifdef _GLIBCXX_USE_C99 ++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) + // First try a buffer perhaps big enough (most probably sufficient + // for non-ios_base::fixed outputs) + int __cs_size = __max_digits * 3; Index: b/libstdc++-v3/include/c_compatibility/math.h =================================================================== --- a/libstdc++-v3/include/c_compatibility/math.h @@ -106,6 +107,19 @@ Index: b/libstdc++-v3/include/c_compatibility/wchar.h using std::wcstold; using std::wcstoll; using std::wcstoull; +Index: b/libstdc++-v3/include/c_global/cstdio +=================================================================== +--- a/libstdc++-v3/include/c_global/cstdio ++++ b/libstdc++-v3/include/c_global/cstdio +@@ -146,7 +146,7 @@ + using ::vsprintf; + } // namespace + +-#if _GLIBCXX_USE_C99 ++#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) + + #undef snprintf + #undef vfscanf Index: b/libstdc++-v3/include/c_global/cstdlib =================================================================== --- a/libstdc++-v3/include/c_global/cstdlib @@ -145,7 +159,7 @@ Index: b/libstdc++-v3/include/c_std/cstdio =================================================================== --- a/libstdc++-v3/include/c_std/cstdio +++ b/libstdc++-v3/include/c_std/cstdio -@@ -139,7 +139,7 @@ +@@ -144,7 +144,7 @@ using ::vsprintf; } // namespace std @@ -184,7 +198,7 @@ Index: b/libstdc++-v3/include/ext/vstring.h =================================================================== --- a/libstdc++-v3/include/ext/vstring.h +++ b/libstdc++-v3/include/ext/vstring.h -@@ -2571,7 +2571,7 @@ +@@ -2680,7 +2680,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace @@ -249,7 +263,7 @@ Index: b/libstdc++-v3/src/c++11/debug.cc =================================================================== --- a/libstdc++-v3/src/c++11/debug.cc +++ b/libstdc++-v3/src/c++11/debug.cc -@@ -787,7 +787,7 @@ +@@ -788,7 +788,7 @@ int __n __attribute__ ((__unused__)), const char* __fmt, _Tp __s) const throw () { @@ -258,16 +272,3 @@ Index: b/libstdc++-v3/src/c++11/debug.cc std::snprintf(__buf, __n, __fmt, __s); #else std::sprintf(__buf, __fmt, __s); -Index: b/libstdc++-v3/include/c_global/cstdio -=================================================================== ---- a/libstdc++-v3/include/c_global/cstdio -+++ b/libstdc++-v3/include/c_global/cstdio -@@ -138,7 +138,7 @@ - using ::vsprintf; - } // namespace - --#if _GLIBCXX_USE_C99 -+#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) - - #undef snprintf - #undef vfscanf diff --git a/bsp/buildroot/package/gcc/4.9.3/860-cilk-wchar.patch b/bsp/buildroot/package/gcc/4.9.4/860-cilk-wchar.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/860-cilk-wchar.patch rename to bsp/buildroot/package/gcc/4.9.4/860-cilk-wchar.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/870-xtensa-add-mauto-litpools-option.patch b/bsp/buildroot/package/gcc/4.9.4/870-xtensa-add-mauto-litpools-option.patch similarity index 87% rename from bsp/buildroot/package/gcc/5.3.0/870-xtensa-add-mauto-litpools-option.patch rename to bsp/buildroot/package/gcc/4.9.4/870-xtensa-add-mauto-litpools-option.patch index aa1376c4..98c7b3f3 100644 --- a/bsp/buildroot/package/gcc/5.3.0/870-xtensa-add-mauto-litpools-option.patch +++ b/bsp/buildroot/package/gcc/4.9.4/870-xtensa-add-mauto-litpools-option.patch @@ -48,8 +48,8 @@ Changes to ChangeLogs and documentation are dropped. gcc/config/xtensa/xtensa.opt | 4 ++++ 7 files changed, 54 insertions(+), 20 deletions(-) -diff --git a/gcc/config/xtensa/constraints.md b/gcc/config/xtensa/constraints.md -index 30f4c1f..773d4f9 100644 +Index: b/gcc/config/xtensa/constraints.md +=================================================================== --- a/gcc/config/xtensa/constraints.md +++ b/gcc/config/xtensa/constraints.md @@ -111,6 +111,11 @@ @@ -64,11 +64,11 @@ index 30f4c1f..773d4f9 100644 ;; Memory constraints. Do not use define_memory_constraint here. Doing so ;; causes reload to force some constants into the constant pool, but since ;; the Xtensa constant pool can only be accessed with L32R instructions, it -diff --git a/gcc/config/xtensa/elf.h b/gcc/config/xtensa/elf.h -index e59bede..12056f7 100644 +Index: b/gcc/config/xtensa/elf.h +=================================================================== --- a/gcc/config/xtensa/elf.h +++ b/gcc/config/xtensa/elf.h -@@ -48,7 +48,9 @@ along with GCC; see the file COPYING3. If not see +@@ -48,7 +48,9 @@ %{mtarget-align:--target-align} \ %{mno-target-align:--no-target-align} \ %{mlongcalls:--longcalls} \ @@ -79,11 +79,11 @@ index e59bede..12056f7 100644 #undef LIB_SPEC #define LIB_SPEC "-lc -lsim -lc -lhandlers-sim -lhal" -diff --git a/gcc/config/xtensa/linux.h b/gcc/config/xtensa/linux.h -index 675aacf..5b0243a 100644 +Index: b/gcc/config/xtensa/linux.h +=================================================================== --- a/gcc/config/xtensa/linux.h +++ b/gcc/config/xtensa/linux.h -@@ -42,7 +42,9 @@ along with GCC; see the file COPYING3. If not see +@@ -42,7 +42,9 @@ %{mtarget-align:--target-align} \ %{mno-target-align:--no-target-align} \ %{mlongcalls:--longcalls} \ @@ -94,8 +94,8 @@ index 675aacf..5b0243a 100644 #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" -diff --git a/gcc/config/xtensa/predicates.md b/gcc/config/xtensa/predicates.md -index e02209e..d7dfa11 100644 +Index: b/gcc/config/xtensa/predicates.md +=================================================================== --- a/gcc/config/xtensa/predicates.md +++ b/gcc/config/xtensa/predicates.md @@ -142,7 +142,8 @@ @@ -108,11 +108,11 @@ index e02209e..d7dfa11 100644 && GET_MODE_SIZE (mode) % UNITS_PER_WORD == 0"))))) ;; Accept the floating point constant 1 in the appropriate mode. -diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c -index eb039ba..206ff80 100644 +Index: b/gcc/config/xtensa/xtensa.c +=================================================================== --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c -@@ -501,6 +501,9 @@ xtensa_valid_move (machine_mode mode, rtx *operands) +@@ -477,6 +477,9 @@ { int dst_regnum = xt_true_regnum (operands[0]); @@ -121,8 +121,8 @@ index eb039ba..206ff80 100644 + /* The stack pointer can only be assigned with a MOVSP opcode. */ if (dst_regnum == STACK_POINTER_REGNUM) - return !TARGET_WINDOWED_ABI -@@ -1069,7 +1072,7 @@ xtensa_emit_move_sequence (rtx *operands, machine_mode mode) + return (mode == SImode +@@ -1044,7 +1047,7 @@ return 1; } @@ -131,7 +131,7 @@ index eb039ba..206ff80 100644 { src = force_const_mem (SImode, src); operands[1] = src; -@@ -2449,6 +2452,20 @@ print_operand (FILE *file, rtx x, int letter) +@@ -2428,6 +2431,20 @@ } break; @@ -152,11 +152,11 @@ index eb039ba..206ff80 100644 default: if (GET_CODE (x) == REG || GET_CODE (x) == SUBREG) fprintf (file, "%s", reg_names[xt_true_regnum (x)]); -diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md -index 6d84384..0e673a3 100644 +Index: b/gcc/config/xtensa/xtensa.md +=================================================================== --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md -@@ -761,8 +761,8 @@ +@@ -799,8 +799,8 @@ }) (define_insn "movsi_internal" @@ -167,7 +167,7 @@ index 6d84384..0e673a3 100644 "xtensa_valid_move (SImode, operands)" "@ movi.n\t%0, %x1 -@@ -774,15 +774,16 @@ +@@ -812,15 +812,16 @@ mov\t%0, %1 movsp\t%0, %1 movi\t%0, %x1 @@ -186,7 +186,7 @@ index 6d84384..0e673a3 100644 ;; 16-bit Integer moves -@@ -796,21 +797,22 @@ +@@ -834,21 +835,22 @@ }) (define_insn "movhi_internal" @@ -213,7 +213,7 @@ index 6d84384..0e673a3 100644 ;; 8-bit Integer moves -@@ -881,7 +883,7 @@ +@@ -919,7 +921,7 @@ (match_operand:SF 1 "general_operand" ""))] "" { @@ -222,7 +222,7 @@ index 6d84384..0e673a3 100644 operands[1] = force_const_mem (SFmode, operands[1]); if ((!register_operand (operands[0], SFmode) -@@ -896,8 +898,8 @@ +@@ -934,8 +936,8 @@ }) (define_insn "movsf_internal" @@ -233,7 +233,7 @@ index 6d84384..0e673a3 100644 "((register_operand (operands[0], SFmode) || register_operand (operands[1], SFmode)) && !(FP_REG_P (xt_true_regnum (operands[0])) -@@ -912,13 +914,14 @@ +@@ -950,13 +952,14 @@ mov\t%0, %1 wfr\t%0, %1 rfr\t%0, %1 @@ -250,7 +250,7 @@ index 6d84384..0e673a3 100644 (define_insn "*lsiu" [(set (match_operand:SF 0 "register_operand" "=f") -@@ -991,7 +994,7 @@ +@@ -997,7 +1000,7 @@ (match_operand:DF 1 "general_operand" ""))] "" { @@ -259,7 +259,7 @@ index 6d84384..0e673a3 100644 operands[1] = force_const_mem (DFmode, operands[1]); if (!register_operand (operands[0], DFmode) -@@ -1002,8 +1005,8 @@ +@@ -1008,8 +1011,8 @@ }) (define_insn_and_split "movdf_internal" @@ -270,11 +270,11 @@ index 6d84384..0e673a3 100644 "register_operand (operands[0], DFmode) || register_operand (operands[1], DFmode)" "#" -diff --git a/gcc/config/xtensa/xtensa.opt b/gcc/config/xtensa/xtensa.opt -index 2fd6cee..21c6e96 100644 +Index: b/gcc/config/xtensa/xtensa.opt +=================================================================== --- a/gcc/config/xtensa/xtensa.opt +++ b/gcc/config/xtensa/xtensa.opt -@@ -38,6 +38,10 @@ mtext-section-literals +@@ -38,6 +38,10 @@ Target Intersperse literal pools with code in the text section @@ -285,6 +285,3 @@ index 2fd6cee..21c6e96 100644 mserialize-volatile Target Report Mask(SERIALIZE_VOLATILE) -mno-serialize-volatile Do not serialize volatile memory references with MEMW instructions --- -1.8.1.4 - diff --git a/bsp/buildroot/package/gcc/4.9.3/871-xtensa-reimplement-register-spilling.patch b/bsp/buildroot/package/gcc/4.9.4/871-xtensa-reimplement-register-spilling.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/871-xtensa-reimplement-register-spilling.patch rename to bsp/buildroot/package/gcc/4.9.4/871-xtensa-reimplement-register-spilling.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch b/bsp/buildroot/package/gcc/4.9.4/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch rename to bsp/buildroot/package/gcc/4.9.4/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/873-xtensa-fix-_Unwind_GetCFA.patch b/bsp/buildroot/package/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/873-xtensa-fix-_Unwind_GetCFA.patch rename to bsp/buildroot/package/gcc/4.9.4/873-xtensa-fix-_Unwind_GetCFA.patch diff --git a/bsp/buildroot/package/gcc/4.9.4/874-xtensa-add-uclinux-support.patch b/bsp/buildroot/package/gcc/4.9.4/874-xtensa-add-uclinux-support.patch new file mode 100644 index 00000000..881aec09 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/874-xtensa-add-uclinux-support.patch @@ -0,0 +1,169 @@ +From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Sat, 22 Aug 2015 08:44:26 +0300 +Subject: [PATCH] xtensa: add uclinux support + +2015-10-03 Max Filippov +gcc/ + * config.gcc (xtensa*-*-uclinux*): New configuration. + * config/xtensa/uclinux.h: New file. + * config/xtensa/uclinux.opt: New file. + +libgcc/ + * config.host (xtensa*-*-uclinux*): New configuration. + +Signed-off-by: Max Filippov +--- +Backported from: r228450 + + gcc/config.gcc | 5 ++++ + gcc/config/xtensa/uclinux.h | 69 +++++++++++++++++++++++++++++++++++++++++++ + gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++ + libgcc/config.host | 5 ++++ + 4 files changed, 111 insertions(+) + create mode 100644 gcc/config/xtensa/uclinux.h + create mode 100644 gcc/config/xtensa/uclinux.opt + +Index: b/gcc/config.gcc +=================================================================== +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2871,6 +2871,11 @@ + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h" + tmake_file="${tmake_file} xtensa/t-xtensa" + ;; ++xtensa*-*-uclinux*) ++ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h" ++ tmake_file="${tmake_file} xtensa/t-xtensa" ++ extra_options="${extra_options} xtensa/uclinux.opt" ++ ;; + am33_2.0-*-linux*) + tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h" + gas=yes gnu_ld=yes +Index: b/gcc/config/xtensa/uclinux.h +=================================================================== +--- /dev/null ++++ b/gcc/config/xtensa/uclinux.h +@@ -0,0 +1,69 @@ ++/* Xtensa uClinux configuration. ++ Derived from the configuration for GCC for Intel i386 running Linux. ++ Copyright (C) 2001-2015 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 3, or (at your option) any later ++version. ++ ++GCC 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 GCC; see the file COPYING3. If not see ++. */ ++ ++#undef TARGET_OS_CPP_BUILTINS ++#define TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ GNU_USER_TARGET_OS_CPP_BUILTINS (); \ ++ builtin_define ("__uClinux__"); \ ++ } \ ++ while (0) ++ ++#undef SUBTARGET_CPP_SPEC ++#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" ++ ++#undef SIZE_TYPE ++#define SIZE_TYPE "unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "long int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++#undef ASM_SPEC ++#define ASM_SPEC \ ++ "%{mtext-section-literals:--text-section-literals} \ ++ %{mno-text-section-literals:--no-text-section-literals} \ ++ %{mtarget-align:--target-align} \ ++ %{mno-target-align:--no-target-align} \ ++ %{mlongcalls:--longcalls} \ ++ %{mno-longcalls:--no-longcalls} \ ++ %{mauto-litpools:--auto-litpools} \ ++ %{mno-auto-litpools:--no-auto-litpools}" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}" ++ ++#undef LOCAL_LABEL_PREFIX ++#define LOCAL_LABEL_PREFIX "." ++ ++/* Always enable "-fpic" for Xtensa Linux. */ ++#define XTENSA_ALWAYS_PIC 1 ++ ++#undef TARGET_LIBC_HAS_FUNCTION ++#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function ++ ++#undef DBX_REGISTER_NUMBER ++ +Index: b/gcc/config/xtensa/uclinux.opt +=================================================================== +--- /dev/null ++++ b/gcc/config/xtensa/uclinux.opt +@@ -0,0 +1,32 @@ ++; Xtensa uClinux options. ++ ++; Copyright (C) 2015 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC is free software; you can redistribute it and/or modify it under ++; the terms of the GNU General Public License as published by the Free ++; Software Foundation; either version 3, or (at your option) any later ++; version. ++; ++; GCC 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 GCC; see the file COPYING3. If not see ++; . ++ ++; See the GCC internals manual (options.texi) for a description of ++; this file's format. ++ ++; Please try to keep this file in ASCII collating order. ++ ++elf2flt ++Driver ++ ++elf2flt= ++Driver JoinedOrMissing ++ ++; This comment is to ensure we retain the blank line above. +Index: b/libgcc/config.host +=================================================================== +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -1213,6 +1213,11 @@ + tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc" + md_unwind_header=xtensa/linux-unwind.h + ;; ++xtensa*-*-uclinux*) ++ tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc" ++ md_unwind_header=xtensa/linux-unwind.h ++ extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o" ++ ;; + am33_2.0-*-linux*) + # Don't need crtbeginT.o from *-*-linux* default. + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" diff --git a/bsp/buildroot/package/gcc/4.9.4/880-nios2_legitimize_address.patch b/bsp/buildroot/package/gcc/4.9.4/880-nios2_legitimize_address.patch new file mode 100644 index 00000000..4623f295 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/880-nios2_legitimize_address.patch @@ -0,0 +1,49 @@ +From b0ea54f3f995754881e0ea6651133aa7b58eeaa2 Mon Sep 17 00:00:00 2001 +From: cltang +Date: Tue, 22 Sep 2015 12:23:20 +0000 +Subject: [PATCH] nios2_legitimize_address 2015-09-22 Chung-Lin Tang + + + Backport from mainline + 2015-09-22 Chung-Lin Tang + + * config/nios2/nios2.c (nios2_legitimize_address): When handling + 'reg + reloc' cases, allow first operand to be non-REG, and use + force_reg() to enforce address pattern. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@228013 138bc75d-0d04-0410-961f-82ee72b054a4 + +Fixes: +http://autobuild.buildroot.net/results/901/90186d1fe134b804c0101554296b1235dc0ccbb0 + +[backported to 4.9.3] +Signed-off-by: Romain Naour +--- + gcc/config/nios2/nios2.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c +index 047b615..41dd6f9 100644 +--- a/gcc/config/nios2/nios2.c ++++ b/gcc/config/nios2/nios2.c +@@ -1786,15 +1786,15 @@ nios2_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, + + Which will be output as '%tls_le(var+48)(r23)' in assembly. */ + if (GET_CODE (x) == PLUS +- && GET_CODE (XEXP (x, 0)) == REG + && GET_CODE (XEXP (x, 1)) == CONST) + { +- rtx unspec, offset, reg = XEXP (x, 0); ++ rtx unspec, offset; + split_const (XEXP (x, 1), &unspec, &offset); + if (GET_CODE (unspec) == UNSPEC + && !nios2_large_offset_p (XINT (unspec, 1)) + && offset != const0_rtx) + { ++ rtx reg = force_reg (Pmode, XEXP (x, 0)); + unspec = copy_rtx (unspec); + XVECEXP (unspec, 0, 0) + = plus_constant (Pmode, XVECEXP (unspec, 0, 0), INTVAL (offset)); +-- +2.5.0 + diff --git a/bsp/buildroot/package/gcc/4.9.4/890-fix-m68k-compile.patch b/bsp/buildroot/package/gcc/4.9.4/890-fix-m68k-compile.patch new file mode 100644 index 00000000..140977b3 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/890-fix-m68k-compile.patch @@ -0,0 +1,15 @@ +remove unused header, which breaks the toolchain building + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.9.3.orig/libgcc/config/m68k/linux-atomic.c gcc-4.9.3/libgcc/config/m68k/linux-atomic.c +--- gcc-4.9.3.orig/libgcc/config/m68k/linux-atomic.c 2014-01-02 23:25:22.000000000 +0100 ++++ gcc-4.9.3/libgcc/config/m68k/linux-atomic.c 2016-03-18 22:24:40.000000000 +0100 +@@ -33,7 +33,6 @@ + using the kernel helper defined below. There is no support for + 64-bit operations yet. */ + +-#include + #include + + #ifndef __NR_atomic_cmpxchg_32 diff --git a/bsp/buildroot/package/gcc/4.9.4/891-fix-m68k-uclinux.patch b/bsp/buildroot/package/gcc/4.9.4/891-fix-m68k-uclinux.patch new file mode 100644 index 00000000..4347642d --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/891-fix-m68k-uclinux.patch @@ -0,0 +1,18 @@ +avoids internal compiler error while compiling linux-atomic.c +See here: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.9.3.orig/libgcc/config.host gcc-4.9.3/libgcc/config.host +--- gcc-4.9.3.orig/libgcc/config.host 2014-03-27 16:40:31.000000000 +0100 ++++ gcc-4.9.3/libgcc/config.host 2016-04-05 16:20:53.422809885 +0200 +@@ -750,7 +750,7 @@ + m68k*-*-openbsd*) + ;; + m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc +- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" ++ tmake_file="$tmake_file m68k/t-floatlib" + md_unwind_header=m68k/linux-unwind.h + ;; + m68k-*-linux*) # Motorola m68k's running GNU/Linux diff --git a/bsp/buildroot/package/gcc/4.9.3/900-musl-support.patch b/bsp/buildroot/package/gcc/4.9.4/900-musl-support.patch similarity index 99% rename from bsp/buildroot/package/gcc/4.9.3/900-musl-support.patch rename to bsp/buildroot/package/gcc/4.9.4/900-musl-support.patch index a711b068..a862d011 100644 --- a/bsp/buildroot/package/gcc/4.9.3/900-musl-support.patch +++ b/bsp/buildroot/package/gcc/4.9.4/900-musl-support.patch @@ -60,7 +60,7 @@ Index: b/gcc/config.gcc *) tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" ;; -@@ -2322,6 +2325,10 @@ +@@ -2338,6 +2341,10 @@ powerpc*-*-linux*paired*) tm_file="${tm_file} rs6000/750cl.h" ;; esac @@ -308,7 +308,7 @@ Index: b/gcc/config/microblaze/linux.h =================================================================== --- a/gcc/config/microblaze/linux.h +++ b/gcc/config/microblaze/linux.h -@@ -25,7 +25,23 @@ +@@ -28,7 +28,23 @@ #undef TLS_NEEDS_GOT #define TLS_NEEDS_GOT 1 @@ -337,7 +337,7 @@ Index: b/gcc/config/rs6000/linux64.h =================================================================== --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h -@@ -375,17 +375,23 @@ +@@ -371,17 +371,23 @@ #endif #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" @@ -452,7 +452,7 @@ Index: b/gcc/configure =================================================================== --- a/gcc/configure +++ b/gcc/configure -@@ -27449,6 +27453,9 @@ +@@ -27601,6 +27601,9 @@ gcc_cv_target_dl_iterate_phdr=no fi ;; @@ -466,7 +466,7 @@ Index: b/gcc/configure.ac =================================================================== --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -5108,6 +5112,9 @@ +@@ -5173,6 +5173,9 @@ gcc_cv_target_dl_iterate_phdr=no fi ;; @@ -588,7 +588,7 @@ Index: b/libstdc++-v3/configure.host =================================================================== --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host -@@ -264,6 +264,13 @@ +@@ -266,6 +266,13 @@ os_include_dir="os/bsd/freebsd" ;; gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) @@ -602,7 +602,7 @@ Index: b/libstdc++-v3/configure.host if [ "$uclibc" = "yes" ]; then os_include_dir="os/uclibc" elif [ "$bionic" = "yes" ]; then -@@ -272,6 +279,9 @@ +@@ -274,6 +281,9 @@ os_include_dir="os/gnu-linux" fi ;; @@ -637,4 +637,4 @@ Index: b/gcc/config/mips/linux.h +#define MUSL_DYNAMIC_LINKER_E "%{EL:el}" +#endif +#undef MUSL_DYNAMIC_LINKER -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" diff --git a/bsp/buildroot/package/gcc/4.9.4/901-microblaze-uclibc.patch b/bsp/buildroot/package/gcc/4.9.4/901-microblaze-uclibc.patch new file mode 100644 index 00000000..82c44e14 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/901-microblaze-uclibc.patch @@ -0,0 +1,21 @@ +Add dynamic linker support for uClibc + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.9.3.orig/gcc/config/microblaze/linux.h gcc-4.9.3/gcc/config/microblaze/linux.h +--- gcc-4.9.3.orig/gcc/config/microblaze/linux.h 2016-06-04 21:21:09.430646655 +0200 ++++ gcc-4.9.3/gcc/config/microblaze/linux.h 2016-06-04 21:21:44.596003509 +0200 +@@ -36,10 +36,13 @@ + + #undef MUSL_DYNAMIC_LINKER + #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1" ++#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" + #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" + + #if DEFAULT_LIBC == LIBC_MUSL + #define DYNAMIC_LINKER MUSL_DYNAMIC_LINKER ++#elif DEFAULT_LIBC == LIBC_UCLIBC ++#define DYNAMIC_LINKER UCLIBC_DYNAMIC_LINKER + #else + #define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER + #endif diff --git a/bsp/buildroot/package/gcc/4.9.4/930-libgcc-disable-split-stack-nothreads.patch b/bsp/buildroot/package/gcc/4.9.4/930-libgcc-disable-split-stack-nothreads.patch new file mode 100644 index 00000000..670cf8da --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/930-libgcc-disable-split-stack-nothreads.patch @@ -0,0 +1,14 @@ +disable split-stack for non-thread builds + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-4.9.3.orig/libgcc/config/t-stack gcc-4.9.3/libgcc/config/t-stack +--- gcc-4.9.3.orig/libgcc/config/t-stack 2010-10-01 21:31:49.000000000 +0200 ++++ gcc-4.9.3/libgcc/config/t-stack 2016-03-07 01:34:32.000000000 +0100 +@@ -1,4 +1,6 @@ + # Makefile fragment to provide generic support for -fsplit-stack. + # This should be used in config.host for any host which supports + # -fsplit-stack. ++ifeq ($(enable_threads),yes) + LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c ++endif diff --git a/bsp/buildroot/package/gcc/4.9.4/940-uclinux-enable-threads.patch b/bsp/buildroot/package/gcc/4.9.4/940-uclinux-enable-threads.patch new file mode 100644 index 00000000..51081476 --- /dev/null +++ b/bsp/buildroot/package/gcc/4.9.4/940-uclinux-enable-threads.patch @@ -0,0 +1,20 @@ +Enable POSIX threads for uClinux targets +Reported upstream: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721 + +Signed-off-by: Waldemar Brodkorb + +Index: b/gcc/config.gcc +=================================================================== +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -810,6 +810,9 @@ + *-*-uclinux*) + extra_options="$extra_options gnu-user.opt" + use_gcc_stdint=wrap ++ case ${enable_threads} in ++ "" | yes | posix) thread_file='posix' ;; ++ esac + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" + ;; + *-*-rdos*) diff --git a/bsp/buildroot/package/gcc/5.3.0/100-uclibc-conf.patch b/bsp/buildroot/package/gcc/5.4.0/100-uclibc-conf.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/100-uclibc-conf.patch rename to bsp/buildroot/package/gcc/5.4.0/100-uclibc-conf.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch b/bsp/buildroot/package/gcc/5.4.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch rename to bsp/buildroot/package/gcc/5.4.0/120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/301-missing-execinfo_h.patch b/bsp/buildroot/package/gcc/5.4.0/301-missing-execinfo_h.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/301-missing-execinfo_h.patch rename to bsp/buildroot/package/gcc/5.4.0/301-missing-execinfo_h.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/810-arm-softfloat-libgcc.patch b/bsp/buildroot/package/gcc/5.4.0/810-arm-softfloat-libgcc.patch similarity index 67% rename from bsp/buildroot/package/gcc/4.9.3/810-arm-softfloat-libgcc.patch rename to bsp/buildroot/package/gcc/5.4.0/810-arm-softfloat-libgcc.patch index c8cb377d..5efa7fd1 100644 --- a/bsp/buildroot/package/gcc/4.9.3/810-arm-softfloat-libgcc.patch +++ b/bsp/buildroot/package/gcc/5.4.0/810-arm-softfloat-libgcc.patch @@ -1,8 +1,8 @@ -Index: gcc-4.8.0/gcc/config/arm/linux-elf.h +Index: b/gcc/config/arm/linux-elf.h =================================================================== ---- gcc-4.8.0.orig/gcc/config/arm/linux-elf.h 2013-01-10 21:38:27.000000000 +0100 -+++ gcc-4.8.0/gcc/config/arm/linux-elf.h 2013-03-23 17:40:00.000000000 +0100 -@@ -55,7 +55,7 @@ +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -60,7 +60,7 @@ %{shared:-lc} \ %{!shared:%{profile:-lc_p}%{!profile:-lc}}" @@ -11,10 +11,10 @@ Index: gcc-4.8.0/gcc/config/arm/linux-elf.h #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -Index: gcc-4.8.0/libgcc/config/arm/t-linux +Index: b/libgcc/config/arm/t-linux =================================================================== ---- gcc-4.8.0.orig/libgcc/config/arm/t-linux 2012-03-22 16:14:46.000000000 +0100 -+++ gcc-4.8.0/libgcc/config/arm/t-linux 2013-03-23 17:40:54.000000000 +0100 +--- a/libgcc/config/arm/t-linux ++++ b/libgcc/config/arm/t-linux @@ -1,6 +1,11 @@ LIB1ASMSRC = arm/lib1funcs.S LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ diff --git a/bsp/buildroot/package/gcc/5.3.0/830-arm_unbreak_armv4t.patch b/bsp/buildroot/package/gcc/5.4.0/830-arm_unbreak_armv4t.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/830-arm_unbreak_armv4t.patch rename to bsp/buildroot/package/gcc/5.4.0/830-arm_unbreak_armv4t.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/840-microblaze-enable-dwarf-eh-support.patch b/bsp/buildroot/package/gcc/5.4.0/840-microblaze-enable-dwarf-eh-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/840-microblaze-enable-dwarf-eh-support.patch rename to bsp/buildroot/package/gcc/5.4.0/840-microblaze-enable-dwarf-eh-support.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/850-libstdcxx-uclibc-c99.patch b/bsp/buildroot/package/gcc/5.4.0/850-libstdcxx-uclibc-c99.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/850-libstdcxx-uclibc-c99.patch rename to bsp/buildroot/package/gcc/5.4.0/850-libstdcxx-uclibc-c99.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/860-cilk-wchar.patch b/bsp/buildroot/package/gcc/5.4.0/860-cilk-wchar.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/860-cilk-wchar.patch rename to bsp/buildroot/package/gcc/5.4.0/860-cilk-wchar.patch diff --git a/bsp/buildroot/package/gcc/4.9.3/870-xtensa-add-mauto-litpools-option.patch b/bsp/buildroot/package/gcc/5.4.0/870-xtensa-add-mauto-litpools-option.patch similarity index 100% rename from bsp/buildroot/package/gcc/4.9.3/870-xtensa-add-mauto-litpools-option.patch rename to bsp/buildroot/package/gcc/5.4.0/870-xtensa-add-mauto-litpools-option.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/871-xtensa-reimplement-register-spilling.patch b/bsp/buildroot/package/gcc/5.4.0/871-xtensa-reimplement-register-spilling.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/871-xtensa-reimplement-register-spilling.patch rename to bsp/buildroot/package/gcc/5.4.0/871-xtensa-reimplement-register-spilling.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch b/bsp/buildroot/package/gcc/5.4.0/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch rename to bsp/buildroot/package/gcc/5.4.0/872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/873-xtensa-fix-_Unwind_GetCFA.patch b/bsp/buildroot/package/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/873-xtensa-fix-_Unwind_GetCFA.patch rename to bsp/buildroot/package/gcc/5.4.0/873-xtensa-fix-_Unwind_GetCFA.patch diff --git a/bsp/buildroot/package/gcc/5.4.0/874-xtensa-add-uclinux-support.patch b/bsp/buildroot/package/gcc/5.4.0/874-xtensa-add-uclinux-support.patch new file mode 100644 index 00000000..23db3d86 --- /dev/null +++ b/bsp/buildroot/package/gcc/5.4.0/874-xtensa-add-uclinux-support.patch @@ -0,0 +1,174 @@ +From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Sat, 22 Aug 2015 08:44:26 +0300 +Subject: [PATCH] xtensa: add uclinux support + +2015-10-03 Max Filippov +gcc/ + * config.gcc (xtensa*-*-uclinux*): New configuration. + * config/xtensa/uclinux.h: New file. + * config/xtensa/uclinux.opt: New file. + +libgcc/ + * config.host (xtensa*-*-uclinux*): New configuration. + +Signed-off-by: Max Filippov +--- +Backported from: r228450 + + gcc/config.gcc | 5 ++++ + gcc/config/xtensa/uclinux.h | 69 +++++++++++++++++++++++++++++++++++++++++++ + gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++ + libgcc/config.host | 5 ++++ + 4 files changed, 111 insertions(+) + create mode 100644 gcc/config/xtensa/uclinux.h + create mode 100644 gcc/config/xtensa/uclinux.opt + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index c52f5a8..56797bd 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2995,6 +2995,11 @@ xtensa*-*-linux*) + tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h" + tmake_file="${tmake_file} xtensa/t-xtensa" + ;; ++xtensa*-*-uclinux*) ++ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h" ++ tmake_file="${tmake_file} xtensa/t-xtensa" ++ extra_options="${extra_options} xtensa/uclinux.opt" ++ ;; + am33_2.0-*-linux*) + tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h" + gas=yes gnu_ld=yes +diff --git a/gcc/config/xtensa/uclinux.h b/gcc/config/xtensa/uclinux.h +new file mode 100644 +index 0000000..4606020 +--- /dev/null ++++ b/gcc/config/xtensa/uclinux.h +@@ -0,0 +1,69 @@ ++/* Xtensa uClinux configuration. ++ Derived from the configuration for GCC for Intel i386 running Linux. ++ Copyright (C) 2001-2015 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 3, or (at your option) any later ++version. ++ ++GCC 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 GCC; see the file COPYING3. If not see ++. */ ++ ++#undef TARGET_OS_CPP_BUILTINS ++#define TARGET_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ GNU_USER_TARGET_OS_CPP_BUILTINS (); \ ++ builtin_define ("__uClinux__"); \ ++ } \ ++ while (0) ++ ++#undef SUBTARGET_CPP_SPEC ++#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" ++ ++#undef SIZE_TYPE ++#define SIZE_TYPE "unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "long int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++#undef ASM_SPEC ++#define ASM_SPEC \ ++ "%{mtext-section-literals:--text-section-literals} \ ++ %{mno-text-section-literals:--no-text-section-literals} \ ++ %{mtarget-align:--target-align} \ ++ %{mno-target-align:--no-target-align} \ ++ %{mlongcalls:--longcalls} \ ++ %{mno-longcalls:--no-longcalls} \ ++ %{mauto-litpools:--auto-litpools} \ ++ %{mno-auto-litpools:--no-auto-litpools}" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}" ++ ++#undef LOCAL_LABEL_PREFIX ++#define LOCAL_LABEL_PREFIX "." ++ ++/* Always enable "-fpic" for Xtensa Linux. */ ++#define XTENSA_ALWAYS_PIC 1 ++ ++#undef TARGET_LIBC_HAS_FUNCTION ++#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function ++ ++#undef DBX_REGISTER_NUMBER ++ +diff --git a/gcc/config/xtensa/uclinux.opt b/gcc/config/xtensa/uclinux.opt +new file mode 100644 +index 0000000..95ef777 +--- /dev/null ++++ b/gcc/config/xtensa/uclinux.opt +@@ -0,0 +1,32 @@ ++; Xtensa uClinux options. ++ ++; Copyright (C) 2015 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC is free software; you can redistribute it and/or modify it under ++; the terms of the GNU General Public License as published by the Free ++; Software Foundation; either version 3, or (at your option) any later ++; version. ++; ++; GCC 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 GCC; see the file COPYING3. If not see ++; . ++ ++; See the GCC internals manual (options.texi) for a description of ++; this file's format. ++ ++; Please try to keep this file in ASCII collating order. ++ ++elf2flt ++Driver ++ ++elf2flt= ++Driver JoinedOrMissing ++ ++; This comment is to ensure we retain the blank line above. +diff --git a/libgcc/config.host b/libgcc/config.host +index 2c64756..2ee92c1 100644 +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -1295,6 +1295,11 @@ xtensa*-*-linux*) + tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc" + md_unwind_header=xtensa/linux-unwind.h + ;; ++xtensa*-*-uclinux*) ++ tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc" ++ md_unwind_header=xtensa/linux-unwind.h ++ extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o" ++ ;; + am33_2.0-*-linux*) + # Don't need crtbeginT.o from *-*-linux* default. + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" +-- +1.8.1.4 + diff --git a/bsp/buildroot/package/gcc/5.4.0/890-fix-m68k-compile.patch b/bsp/buildroot/package/gcc/5.4.0/890-fix-m68k-compile.patch new file mode 100644 index 00000000..6e63de0c --- /dev/null +++ b/bsp/buildroot/package/gcc/5.4.0/890-fix-m68k-compile.patch @@ -0,0 +1,15 @@ +remove unused header, which breaks the toolchain building + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c gcc-5.3.0/libgcc/config/m68k/linux-atomic.c +--- gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c 2015-01-05 13:33:28.000000000 +0100 ++++ gcc-5.3.0/libgcc/config/m68k/linux-atomic.c 2016-03-19 09:25:07.000000000 +0100 +@@ -33,7 +33,6 @@ + using the kernel helper defined below. There is no support for + 64-bit operations yet. */ + +-#include + #include + + #ifndef __NR_atomic_cmpxchg_32 diff --git a/bsp/buildroot/package/gcc/5.4.0/891-fix-m68k-uclinux.patch b/bsp/buildroot/package/gcc/5.4.0/891-fix-m68k-uclinux.patch new file mode 100644 index 00000000..4e186bd3 --- /dev/null +++ b/bsp/buildroot/package/gcc/5.4.0/891-fix-m68k-uclinux.patch @@ -0,0 +1,18 @@ +avoids internal compiler error while compiling linux-atomic.c +See here: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-5.3.0.orig/libgcc/config.host gcc-5.3.0/libgcc/config.host +--- gcc-5.3.0.orig/libgcc/config.host 2015-10-01 14:01:18.000000000 +0200 ++++ gcc-5.3.0/libgcc/config.host 2016-04-26 21:30:25.353691745 +0200 +@@ -794,7 +794,7 @@ + m68k*-*-openbsd*) + ;; + m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc +- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" ++ tmake_file="$tmake_file m68k/t-floatlib" + md_unwind_header=m68k/linux-unwind.h + ;; + m68k-*-linux*) # Motorola m68k's running GNU/Linux diff --git a/bsp/buildroot/package/gcc/5.4.0/892-microblaze-uclibc.patch b/bsp/buildroot/package/gcc/5.4.0/892-microblaze-uclibc.patch new file mode 100644 index 00000000..a8eb5a69 --- /dev/null +++ b/bsp/buildroot/package/gcc/5.4.0/892-microblaze-uclibc.patch @@ -0,0 +1,24 @@ +Add dynamic linker support for uClibc + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-5.3.0.orig/gcc/config/microblaze/linux.h gcc-5.3.0/gcc/config/microblaze/linux.h +--- gcc-5.3.0.orig/gcc/config/microblaze/linux.h 2015-05-28 16:08:19.000000000 +0200 ++++ gcc-5.3.0/gcc/config/microblaze/linux.h 2016-05-13 09:21:01.579262885 +0200 +@@ -28,7 +28,15 @@ + #undef TLS_NEEDS_GOT + #define TLS_NEEDS_GOT 1 + +-#define DYNAMIC_LINKER "/lib/ld.so.1" ++#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" ++#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++ ++#if DEFAULT_LIBC == LIBC_UCLIBC ++#define DYNAMIC_LINKER UCLIBC_DYNAMIC_LINKER ++#else ++#define DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER ++#endif ++ + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + { "dynamic_linker", DYNAMIC_LINKER } diff --git a/bsp/buildroot/package/gcc/5.3.0/900-libitm-fixes-for-musl-support.patch b/bsp/buildroot/package/gcc/5.4.0/900-libitm-fixes-for-musl-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/900-libitm-fixes-for-musl-support.patch rename to bsp/buildroot/package/gcc/5.4.0/900-libitm-fixes-for-musl-support.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/901-fixincludes-update-for-musl-support.patch b/bsp/buildroot/package/gcc/5.4.0/901-fixincludes-update-for-musl-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/901-fixincludes-update-for-musl-support.patch rename to bsp/buildroot/package/gcc/5.4.0/901-fixincludes-update-for-musl-support.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/902-unwind-fix-for-musl.patch b/bsp/buildroot/package/gcc/5.4.0/902-unwind-fix-for-musl.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/902-unwind-fix-for-musl.patch rename to bsp/buildroot/package/gcc/5.4.0/902-unwind-fix-for-musl.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/903-libstdc++-libgfortran-gthr-workaround-for-musl.patch b/bsp/buildroot/package/gcc/5.4.0/903-libstdc++-libgfortran-gthr-workaround-for-musl.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/903-libstdc++-libgfortran-gthr-workaround-for-musl.patch rename to bsp/buildroot/package/gcc/5.4.0/903-libstdc++-libgfortran-gthr-workaround-for-musl.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/904-musl-libc-config.patch b/bsp/buildroot/package/gcc/5.4.0/904-musl-libc-config.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/904-musl-libc-config.patch rename to bsp/buildroot/package/gcc/5.4.0/904-musl-libc-config.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/905-add-musl-support-to-gcc.patch b/bsp/buildroot/package/gcc/5.4.0/905-add-musl-support-to-gcc.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/905-add-musl-support-to-gcc.patch rename to bsp/buildroot/package/gcc/5.4.0/905-add-musl-support-to-gcc.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/906-mips-musl-support.patch b/bsp/buildroot/package/gcc/5.4.0/906-mips-musl-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/906-mips-musl-support.patch rename to bsp/buildroot/package/gcc/5.4.0/906-mips-musl-support.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/907-x86-musl-support.patch b/bsp/buildroot/package/gcc/5.4.0/907-x86-musl-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/907-x86-musl-support.patch rename to bsp/buildroot/package/gcc/5.4.0/907-x86-musl-support.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/908-arm-musl-support.patch b/bsp/buildroot/package/gcc/5.4.0/908-arm-musl-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/908-arm-musl-support.patch rename to bsp/buildroot/package/gcc/5.4.0/908-arm-musl-support.patch diff --git a/bsp/buildroot/package/gcc/5.3.0/909-aarch64-musl-support.patch b/bsp/buildroot/package/gcc/5.4.0/909-aarch64-musl-support.patch similarity index 100% rename from bsp/buildroot/package/gcc/5.3.0/909-aarch64-musl-support.patch rename to bsp/buildroot/package/gcc/5.4.0/909-aarch64-musl-support.patch diff --git a/bsp/buildroot/package/gcc/5.4.0/930-libgcc-disable-split-stack-nothreads.patch b/bsp/buildroot/package/gcc/5.4.0/930-libgcc-disable-split-stack-nothreads.patch new file mode 100644 index 00000000..07f9a739 --- /dev/null +++ b/bsp/buildroot/package/gcc/5.4.0/930-libgcc-disable-split-stack-nothreads.patch @@ -0,0 +1,14 @@ +disable split-stack for non-thread builds + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-5.3.0.orig/libgcc/config/t-stack gcc-5.3.0/libgcc/config/t-stack +--- gcc-5.3.0.orig/libgcc/config/t-stack 2010-10-01 21:31:49.000000000 +0200 ++++ gcc-5.3.0/libgcc/config/t-stack 2016-03-07 03:25:32.000000000 +0100 +@@ -1,4 +1,6 @@ + # Makefile fragment to provide generic support for -fsplit-stack. + # This should be used in config.host for any host which supports + # -fsplit-stack. ++ifeq ($(enable_threads),yes) + LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c ++endif diff --git a/bsp/buildroot/package/gcc/5.4.0/940-uclinux-enable-threads.patch b/bsp/buildroot/package/gcc/5.4.0/940-uclinux-enable-threads.patch new file mode 100644 index 00000000..490a55b4 --- /dev/null +++ b/bsp/buildroot/package/gcc/5.4.0/940-uclinux-enable-threads.patch @@ -0,0 +1,19 @@ +Enable POSIX threads for uClinux targets +Reported upstream: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-5.4.0.orig/gcc/config.gcc gcc-5.4.0/gcc/config.gcc +--- gcc-5.4.0.orig/gcc/config.gcc 2015-09-10 16:17:53.000000000 +0200 ++++ gcc-5.4.0/gcc/config.gcc 2016-07-01 21:26:02.772958441 +0200 +@@ -808,6 +808,9 @@ + *-*-uclinux*) + extra_options="$extra_options gnu-user.opt" + use_gcc_stdint=wrap ++ case ${enable_threads} in ++ "" | yes | posix) thread_file='posix' ;; ++ esac + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" + ;; + *-*-rdos*) diff --git a/bsp/buildroot/package/gcc/4.5.4/100-uclibc-conf.patch b/bsp/buildroot/package/gcc/6.1.0/100-uclibc-conf.patch similarity index 66% rename from bsp/buildroot/package/gcc/4.5.4/100-uclibc-conf.patch rename to bsp/buildroot/package/gcc/6.1.0/100-uclibc-conf.patch index 6bad179e..73d1f0d3 100644 --- a/bsp/buildroot/package/gcc/4.5.4/100-uclibc-conf.patch +++ b/bsp/buildroot/package/gcc/6.1.0/100-uclibc-conf.patch @@ -1,6 +1,8 @@ ---- gcc/gcc/config/--- gcc/contrib/regression/objs-gcc.sh -+++ gcc/contrib/regression/objs-gcc.sh -@@ -105,6 +105,10 @@ +Index: b/contrib/regression/objs-gcc.sh +=================================================================== +--- a/contrib/regression/objs-gcc.sh ++++ b/contrib/regression/objs-gcc.sh +@@ -106,6 +106,10 @@ then make all-gdb all-dejagnu all-ld || exit 1 make install-gdb install-dejagnu install-ld || exit 1 diff --git a/bsp/buildroot/package/gcc/4.5.4/301-missing-execinfo_h.patch b/bsp/buildroot/package/gcc/6.1.0/301-missing-execinfo_h.patch similarity index 53% rename from bsp/buildroot/package/gcc/4.5.4/301-missing-execinfo_h.patch rename to bsp/buildroot/package/gcc/6.1.0/301-missing-execinfo_h.patch index 0e2092f3..2d0e7baa 100644 --- a/bsp/buildroot/package/gcc/4.5.4/301-missing-execinfo_h.patch +++ b/bsp/buildroot/package/gcc/6.1.0/301-missing-execinfo_h.patch @@ -1,7 +1,9 @@ ---- gcc-4.0.0/boehm-gc/include/gc.h-orig 2005-04-28 22:28:57.000000000 -0500 -+++ gcc-4.0.0/boehm-gc/include/gc.h 2005-04-28 22:30:38.000000000 -0500 -@@ -500,7 +500,7 @@ - #ifdef __linux__ +Index: b/boehm-gc/include/gc.h +=================================================================== +--- a/boehm-gc/include/gc.h ++++ b/boehm-gc/include/gc.h +@@ -503,7 +503,7 @@ + #if defined(__linux__) || defined(__GLIBC__) # include # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ - && !defined(__ia64__) diff --git a/bsp/buildroot/package/gcc/6.1.0/810-arm-softfloat-libgcc.patch b/bsp/buildroot/package/gcc/6.1.0/810-arm-softfloat-libgcc.patch new file mode 100644 index 00000000..5efa7fd1 --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/810-arm-softfloat-libgcc.patch @@ -0,0 +1,30 @@ +Index: b/gcc/config/arm/linux-elf.h +=================================================================== +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -60,7 +60,7 @@ + %{shared:-lc} \ + %{!shared:%{profile:-lc_p}%{!profile:-lc}}" + +-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" ++#define LIBGCC_SPEC "-lgcc" + + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + +Index: b/libgcc/config/arm/t-linux +=================================================================== +--- a/libgcc/config/arm/t-linux ++++ b/libgcc/config/arm/t-linux +@@ -1,6 +1,11 @@ + LIB1ASMSRC = arm/lib1funcs.S + LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ +- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 ++ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \ ++ _arm_addsubdf3 _arm_addsubsf3 \ ++ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ ++ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \ ++ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \ ++ _arm_fixsfsi _arm_fixunssfsi + + # Just for these, we omit the frame pointer since it makes such a big + # difference. diff --git a/bsp/buildroot/package/gcc/4.5.4/820-arm-unbreak-armv4t.patch b/bsp/buildroot/package/gcc/6.1.0/830-arm_unbreak_armv4t.patch similarity index 58% rename from bsp/buildroot/package/gcc/4.5.4/820-arm-unbreak-armv4t.patch rename to bsp/buildroot/package/gcc/6.1.0/830-arm_unbreak_armv4t.patch index 8651afcd..b7300591 100644 --- a/bsp/buildroot/package/gcc/4.5.4/820-arm-unbreak-armv4t.patch +++ b/bsp/buildroot/package/gcc/6.1.0/830-arm_unbreak_armv4t.patch @@ -1,9 +1,10 @@ http://sourceware.org/ml/crossgcc/2008-05/msg00009.html -diff -Nura gcc-4.5.1.orig/gcc/config/arm/linux-eabi.h gcc-4.5.1/gcc/config/arm/linux-eabi.h ---- gcc-4.5.1.orig/gcc/config/arm/linux-eabi.h 2009-10-30 17:03:09.000000000 -0300 -+++ gcc-4.5.1/gcc/config/arm/linux-eabi.h 2010-11-02 15:38:25.792208500 -0300 -@@ -44,7 +44,7 @@ +Index: b/gcc/config/arm/linux-eabi.h +=================================================================== +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -45,7 +45,7 @@ The ARM10TDMI core is the default for armv5t, so set SUBTARGET_CPU_DEFAULT to achieve this. */ #undef SUBTARGET_CPU_DEFAULT diff --git a/bsp/buildroot/package/gcc/6.1.0/860-cilk-wchar.patch b/bsp/buildroot/package/gcc/6.1.0/860-cilk-wchar.patch new file mode 100644 index 00000000..1d9916f5 --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/860-cilk-wchar.patch @@ -0,0 +1,56 @@ +[PATCH] cilk: fix build without wchar + +When building against uClibc with wchar support disabled, WCHAR_MIN and +WCHAR_MAX are not defined leading to compilation errors. + +Fix it by only including the wchar code if available. + +Signed-off-by: Peter Korsgaard +--- + libcilkrts/include/cilk/reducer_min_max.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +Index: b/libcilkrts/include/cilk/reducer_min_max.h +=================================================================== +--- a/libcilkrts/include/cilk/reducer_min_max.h ++++ b/libcilkrts/include/cilk/reducer_min_max.h +@@ -3154,7 +3154,9 @@ + CILK_C_REDUCER_MAX_INSTANCE(char, char, CHAR_MIN) + CILK_C_REDUCER_MAX_INSTANCE(unsigned char, uchar, 0) + CILK_C_REDUCER_MAX_INSTANCE(signed char, schar, SCHAR_MIN) ++#ifdef WCHAR_MIN + CILK_C_REDUCER_MAX_INSTANCE(wchar_t, wchar_t, WCHAR_MIN) ++#endif + CILK_C_REDUCER_MAX_INSTANCE(short, short, SHRT_MIN) + CILK_C_REDUCER_MAX_INSTANCE(unsigned short, ushort, 0) + CILK_C_REDUCER_MAX_INSTANCE(int, int, INT_MIN) +@@ -3306,7 +3308,9 @@ + CILK_C_REDUCER_MAX_INDEX_INSTANCE(char, char, CHAR_MIN) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned char, uchar, 0) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(signed char, schar, SCHAR_MIN) ++#ifdef WCHAR_MIN + CILK_C_REDUCER_MAX_INDEX_INSTANCE(wchar_t, wchar_t, WCHAR_MIN) ++#endif + CILK_C_REDUCER_MAX_INDEX_INSTANCE(short, short, SHRT_MIN) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned short, ushort, 0) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(int, int, INT_MIN) +@@ -3432,7 +3436,9 @@ + CILK_C_REDUCER_MIN_INSTANCE(char, char, CHAR_MAX) + CILK_C_REDUCER_MIN_INSTANCE(unsigned char, uchar, CHAR_MAX) + CILK_C_REDUCER_MIN_INSTANCE(signed char, schar, SCHAR_MAX) ++#ifdef WCHAR_MAX + CILK_C_REDUCER_MIN_INSTANCE(wchar_t, wchar_t, WCHAR_MAX) ++#endif + CILK_C_REDUCER_MIN_INSTANCE(short, short, SHRT_MAX) + CILK_C_REDUCER_MIN_INSTANCE(unsigned short, ushort, USHRT_MAX) + CILK_C_REDUCER_MIN_INSTANCE(int, int, INT_MAX) +@@ -3584,7 +3590,9 @@ + CILK_C_REDUCER_MIN_INDEX_INSTANCE(char, char, CHAR_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned char, uchar, CHAR_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(signed char, schar, SCHAR_MAX) ++#ifdef WCHAR_MAX + CILK_C_REDUCER_MIN_INDEX_INSTANCE(wchar_t, wchar_t, WCHAR_MAX) ++#endif + CILK_C_REDUCER_MIN_INDEX_INSTANCE(short, short, SHRT_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned short, ushort, USHRT_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(int, int, INT_MAX) diff --git a/bsp/buildroot/package/gcc/6.1.0/890-fix-m68k-compile.patch b/bsp/buildroot/package/gcc/6.1.0/890-fix-m68k-compile.patch new file mode 100644 index 00000000..6e63de0c --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/890-fix-m68k-compile.patch @@ -0,0 +1,15 @@ +remove unused header, which breaks the toolchain building + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c gcc-5.3.0/libgcc/config/m68k/linux-atomic.c +--- gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c 2015-01-05 13:33:28.000000000 +0100 ++++ gcc-5.3.0/libgcc/config/m68k/linux-atomic.c 2016-03-19 09:25:07.000000000 +0100 +@@ -33,7 +33,6 @@ + using the kernel helper defined below. There is no support for + 64-bit operations yet. */ + +-#include + #include + + #ifndef __NR_atomic_cmpxchg_32 diff --git a/bsp/buildroot/package/gcc/6.1.0/891-fix-m68k-uclinux.patch b/bsp/buildroot/package/gcc/6.1.0/891-fix-m68k-uclinux.patch new file mode 100644 index 00000000..754aa74e --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/891-fix-m68k-uclinux.patch @@ -0,0 +1,18 @@ +avoids internal compiler error while compiling linux-atomic.c +See here: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-6.1.0.orig/libgcc/config.host gcc-6.1.0/libgcc/config.host +--- gcc-6.1.0.orig/libgcc/config.host 2016-02-26 21:02:28.000000000 +0100 ++++ gcc-6.1.0/libgcc/config.host 2016-04-29 09:18:40.377989160 +0200 +@@ -812,7 +812,7 @@ + m68k*-*-openbsd*) + ;; + m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc +- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux" ++ tmake_file="$tmake_file m68k/t-floatlib" + md_unwind_header=m68k/linux-unwind.h + ;; + m68k-*-linux*) # Motorola m68k's running GNU/Linux diff --git a/bsp/buildroot/package/gcc/6.1.0/892-libgcc-mkmap-symver-support-skip_underscore.patch b/bsp/buildroot/package/gcc/6.1.0/892-libgcc-mkmap-symver-support-skip_underscore.patch new file mode 100644 index 00000000..1f779ed6 --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/892-libgcc-mkmap-symver-support-skip_underscore.patch @@ -0,0 +1,74 @@ +From ae9c3e354440c4a0f105a9eabfb2f77be085ebc1 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 18 Aug 2016 17:59:16 +0200 +Subject: [PATCH] libgcc/mkmap-symver: support skip_underscore + +Some platforms, such as Blackfin, have a special prefix for assembly +symbols as opposed to C symbols. For this reason, a function named +"foo()" in C will in fact be visible as a symbol called "_foo" in the +ELF binary. + +The current linker version script logic in libgcc doesn't take into +account this situation properly. The Blackfin specific +libgcc/config/bfin/libgcc-glibc.ver has an additional "_" in front of +every symbol so that it matches the output of "nm" (which gets parsed to +produce the final linker version script). But due to this additional +"_", ld no longer matches with the symbols since "ld" does the matching +with the original symbol name, not the one prefixed with "_". + +Due to this, none of the symbols in libgcc/config/bfin/libgcc-glibc.ver +are actually matched with symbols in libgcc. This causes all libgcc +symbols to be left as "LOCAL", which causes lots of "undefined +reference" whenever some C or C++ code that calls a function of libgcc +is compiled. + +To address this, this commit introduces a "skip_underscore" variable to +the mkmap-symver script. It tells mkmap-symver to ignore the leading +underscore from the "nm" output. + +Note that this new argument is different from the existing +"leading_underscore" argument, which *adds* an additional underscore to +the generated linker version script. + +Having this functionality paves the way to using the generic linker +version information for Blackfin, instead of using a custom one. + +Signed-off-by: Thomas Petazzoni +--- + libgcc/ChangeLog | 5 +++++ + libgcc/mkmap-symver.awk | 6 +++++- + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog +index 6559564..129e43f 100644 +--- a/libgcc/ChangeLog ++++ b/libgcc/ChangeLog +@@ -1,3 +1,8 @@ ++2016-08-19 Thomas Petazzoni ++ ++ PR gcc/74748 ++ * libgcc/mkmap-symver.awk: add support for skip_underscore ++ + 2016-04-27 Release Manager + + * GCC 6.1.0 released. +diff --git a/libgcc/mkmap-symver.awk b/libgcc/mkmap-symver.awk +index 266832a..30bb179 100644 +--- a/libgcc/mkmap-symver.awk ++++ b/libgcc/mkmap-symver.awk +@@ -47,7 +47,11 @@ state == "nm" && ($1 == "U" || $2 == "U") { + + state == "nm" && NF == 3 { + split ($3, s, "@") +- def[s[1]] = 1; ++ if (skip_underscore) ++ symname = substr(s[1], 2); ++ else ++ symname = s[1]; ++ def[symname] = 1; + sawsymbol = 1; + next; + } +-- +2.7.4 + diff --git a/bsp/buildroot/package/gcc/6.1.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch b/bsp/buildroot/package/gcc/6.1.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch new file mode 100644 index 00000000..8db50b58 --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch @@ -0,0 +1,1962 @@ +From 56d606931716de30a89a40dc69a9282c1b4e2880 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 18 Aug 2016 18:04:06 +0200 +Subject: [PATCH] libgcc/config/bfin: use the generic linker version + information + +This commit makes the Blackfin platform use the generic linker version +information, rather than a completely duplicated file, specific for the +Blackfin architecture. + +This is made possible using the newly introduced skip_underscore +variable of the mkmap-symver script. + +This also allows to get a correct linker version file, with symbol names +matching the ones found in libgcc. Thanks to this, the necessary symbols +are marked "GLOBAL" instead of "LOCAL", which makes them visible at link +time, and solves a large number of "undefined reference" +issues. Indeed, the Blackfin specific linker version script had an extra +underscore in front of all symbols, which meant none of them matched the +symbols in libgcc, and therefore all libgcc symbols were marked as +"LOCAL", making them invisible for linking. + +Signed-off-by: Thomas Petazzoni +--- + libgcc/ChangeLog | 6 + + libgcc/config/bfin/libgcc-glibc.ver | 1894 +---------------------------------- + libgcc/config/bfin/t-linux | 3 +- + 3 files changed, 10 insertions(+), 1893 deletions(-) + +diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog +index 129e43f..36c0194 100644 +--- a/libgcc/ChangeLog ++++ b/libgcc/ChangeLog +@@ -1,6 +1,12 @@ + 2016-08-19 Thomas Petazzoni + + PR gcc/74748 ++ * libgcc/config/bfin/libgcc-glibc.ver, libgcc/config/bfin/t-linux: ++ use generic linker version information on Blackfin. ++ ++2016-08-19 Thomas Petazzoni ++ ++ PR gcc/74748 + * libgcc/mkmap-symver.awk: add support for skip_underscore + + 2016-04-27 Release Manager +diff --git a/libgcc/config/bfin/libgcc-glibc.ver b/libgcc/config/bfin/libgcc-glibc.ver +index b1bd2df..2af3df7 100644 +--- a/libgcc/config/bfin/libgcc-glibc.ver ++++ b/libgcc/config/bfin/libgcc-glibc.ver +@@ -16,1898 +16,8 @@ + # along with GCC; see the file COPYING3. If not see + # . + +-GCC_3.0 { +- # libgcc1 integer symbols +- ___absvsi2 +- ___addvsi3 +- ___ashlsi3 +- ___ashrsi3 +- ___divsi3 +- ___lshrsi3 +- ___modsi3 +- ___mulsi3 +- ___mulvsi3 +- ___negvsi2 +- ___subvsi3 +- ___udivsi3 +- ___umodsi3 +- +- # libgcc1 floating point symbols +- ___addsf3 +- ___adddf3 +- ___addxf3 +- ___addtf3 +- ___divsf3 +- ___divdf3 +- ___divxf3 +- ___divtf3 +- ___eqsf2 +- ___eqdf2 +- ___eqxf2 +- ___eqtf2 +- ___extenddfxf2 +- ___extenddftf2 +- ___extendsfdf2 +- ___extendsfxf2 +- ___extendsftf2 +- ___fixsfsi +- ___fixdfsi +- ___fixxfsi +- ___fixtfsi +- ___floatsisf +- ___floatsidf +- ___floatsixf +- ___floatsitf +- ___gesf2 +- ___gedf2 +- ___gexf2 +- ___getf2 +- ___gtsf2 +- ___gtdf2 +- ___gtxf2 +- ___gttf2 +- ___lesf2 +- ___ledf2 +- ___lexf2 +- ___letf2 +- ___ltsf2 +- ___ltdf2 +- ___ltxf2 +- ___lttf2 +- ___mulsf3 +- ___muldf3 +- ___mulxf3 +- ___multf3 +- ___negsf2 +- ___negdf2 +- ___negxf2 +- ___negtf2 +- ___nesf2 +- ___nedf2 +- ___nexf2 +- ___netf2 +- ___subsf3 +- ___subdf3 +- ___subxf3 +- ___subtf3 +- ___truncdfsf2 +- ___truncxfsf2 +- ___trunctfsf2 +- ___truncxfdf2 +- ___trunctfdf2 +- +- # libgcc2 DImode arithmetic (for 32-bit targets). +- ___absvdi2 +- ___addvdi3 +- ___ashldi3 +- ___ashrdi3 +- ___cmpdi2 +- ___divdi3 +- ___ffsdi2 +- ___fixdfdi +- ___fixsfdi +- ___fixtfdi +- ___fixxfdi +- ___fixunsdfdi +- ___fixunsdfsi +- ___fixunssfsi +- ___fixunssfdi +- ___fixunstfdi +- ___fixunstfsi +- ___fixunsxfdi +- ___fixunsxfsi +- ___floatdidf +- ___floatdisf +- ___floatdixf +- ___floatditf +- ___lshrdi3 +- ___moddi3 +- ___muldi3 +- ___mulvdi3 +- ___negdi2 +- ___negvdi2 +- ___subvdi3 +- ___ucmpdi2 +- ___udivdi3 +- ___udivmoddi4 +- ___umoddi3 +- +- # libgcc2 TImode arithmetic (for 64-bit targets). +- ___ashlti3 +- ___ashrti3 +- ___cmpti2 +- ___divti3 +- ___ffsti2 +- ___fixdfti +- ___fixsfti +- ___fixtfti +- ___fixxfti +- ___lshrti3 +- ___modti3 +- ___multi3 +- ___negti2 +- ___ucmpti2 +- ___udivmodti4 +- ___udivti3 +- ___umodti3 +- ___fixunsdfti +- ___fixunssfti +- ___fixunstfti +- ___fixunsxfti +- ___floattidf +- ___floattisf +- ___floattixf +- ___floattitf +- +- # Used to deal with trampoline initialization on some platforms +- ___clear_cache +- +- # EH symbols +- __Unwind_DeleteException +- __Unwind_Find_FDE +- __Unwind_ForcedUnwind +- __Unwind_GetGR +- __Unwind_GetIP +- __Unwind_GetLanguageSpecificData +- __Unwind_GetRegionStart +- __Unwind_GetTextRelBase +- __Unwind_GetDataRelBase +- __Unwind_RaiseException +- __Unwind_Resume +- __Unwind_SetGR +- __Unwind_SetIP +- ___deregister_frame +- ___deregister_frame_info +- ___deregister_frame_info_bases +- ___register_frame +- ___register_frame_info +- ___register_frame_info_bases +- ___register_frame_info_table +- ___register_frame_info_table_bases +- ___register_frame_table +- +- # SjLj EH symbols +- __Unwind_SjLj_Register +- __Unwind_SjLj_Unregister +- __Unwind_SjLj_RaiseException +- __Unwind_SjLj_ForcedUnwind +- __Unwind_SjLj_Resume +-} +- +-%inherit GCC_3.3 GCC_3.0 +-GCC_3.3 { +- __Unwind_FindEnclosingFunction +- __Unwind_GetCFA +- __Unwind_Backtrace +- __Unwind_Resume_or_Rethrow +- __Unwind_SjLj_Resume_or_Rethrow +-} +- +-%inherit GCC_3.3.1 GCC_3.3 +-GCC_3.3.1 { +- ___gcc_personality_sj0 +- ___gcc_personality_v0 +-} +- +-%inherit GCC_3.3.2 GCC_3.3.1 +-GCC_3.3.2 { +-} +-%inherit GCC_3.3.4 GCC_3.3.2 +-GCC_3.3.4 { +- ___unorddf2 +- ___unordsf2 +-} +- +-%inherit GCC_3.4 GCC_3.3.4 +-GCC_3.4 { +- # bit scanning and counting built-ins +- ___clzsi2 +- ___clzdi2 +- ___clzti2 +- ___ctzsi2 +- ___ctzdi2 +- ___ctzti2 +- ___popcountsi2 +- ___popcountdi2 +- ___popcountti2 +- ___paritysi2 +- ___paritydi2 +- ___parityti2 +-} +- +-%inherit GCC_3.4.2 GCC_3.4 +-GCC_3.4.2 { +- # Used to deal with trampoline initialization on some platforms +- ___enable_execute_stack +- ___trampoline_setup +-} +- +-%inherit GCC_3.4.4 GCC_3.4.2 +-GCC_3.4.4 { +- # libgcc2 TImode arithmetic (for 64-bit targets). +- ___absvti2 +- ___addvti3 +- ___mulvti3 +- ___negvti2 +- ___subvti3 +-} +- +-%inherit GCC_4.0.0 GCC_3.4.4 +-GCC_4.0.0 { +- # libgcc2 __builtin_powi helpers. +- ___powisf2 +- ___powidf2 +- ___powixf2 +- ___powitf2 +- +- # c99 compliant complex arithmetic +- ___divsc3 +- ___divdc3 +- ___divxc3 +- ___divtc3 +- ___mulsc3 +- ___muldc3 +- ___mulxc3 +- ___multc3 +-} +- + %inherit GCC_4.1.0 GCC_4.0.0 + GCC_4.1.0 { +- ___smulsi3_highpart +- ___umulsi3_highpart +-} +- +-%inherit GCC_4.2.0 GCC_4.1.0 +-GCC_4.2.0 { +- # unsigned-to-floating conversions +- ___floatunsisf +- ___floatunsidf +- ___floatunsixf +- ___floatunsitf +- ___floatundidf +- ___floatundisf +- ___floatundixf +- ___floatunditf +- ___floatuntidf +- ___floatuntisf +- ___floatuntixf +- ___floatuntitf +- __Unwind_GetIPInfo +-} +- +-%inherit GCC_4.3.0 GCC_4.2.0 +-GCC_4.3.0 { +- # byte swapping routines +- ___bswapsi2 +- ___bswapdi2 +- ___emutls_get_address +- ___emutls_register_common +- ___ffssi2 +- ___extendxftf2 +- ___trunctfxf2 +- +- # fixed-point routines +- ___addqq3 +- ___addhq3 +- ___addsq3 +- ___adddq3 +- ___addtq3 +- ___adduqq3 +- ___adduhq3 +- ___addusq3 +- ___addudq3 +- ___addutq3 +- ___addha3 +- ___addsa3 +- ___addda3 +- ___addta3 +- ___adduha3 +- ___addusa3 +- ___adduda3 +- ___adduta3 +- ___ssaddqq3 +- ___ssaddhq3 +- ___ssaddsq3 +- ___ssadddq3 +- ___ssaddtq3 +- ___ssaddha3 +- ___ssaddsa3 +- ___ssaddda3 +- ___ssaddta3 +- ___usadduqq3 +- ___usadduhq3 +- ___usaddusq3 +- ___usaddudq3 +- ___usaddutq3 +- ___usadduha3 +- ___usaddusa3 +- ___usadduda3 +- ___usadduta3 +- ___subqq3 +- ___subhq3 +- ___subsq3 +- ___subdq3 +- ___subtq3 +- ___subuqq3 +- ___subuhq3 +- ___subusq3 +- ___subudq3 +- ___subutq3 +- ___subha3 +- ___subsa3 +- ___subda3 +- ___subta3 +- ___subuha3 +- ___subusa3 +- ___subuda3 +- ___subuta3 +- ___sssubqq3 +- ___sssubhq3 +- ___sssubsq3 +- ___sssubdq3 +- ___sssubtq3 +- ___sssubha3 +- ___sssubsa3 +- ___sssubda3 +- ___sssubta3 +- ___ussubuqq3 +- ___ussubuhq3 +- ___ussubusq3 +- ___ussubudq3 +- ___ussubutq3 +- ___ussubuha3 +- ___ussubusa3 +- ___ussubuda3 +- ___ussubuta3 +- ___mulqq3 +- ___mulhq3 +- ___mulsq3 +- ___muldq3 +- ___multq3 +- ___muluqq3 +- ___muluhq3 +- ___mulusq3 +- ___muludq3 +- ___mulutq3 +- ___mulha3 +- ___mulsa3 +- ___mulda3 +- ___multa3 +- ___muluha3 +- ___mulusa3 +- ___muluda3 +- ___muluta3 +- ___ssmulqq3 +- ___ssmulhq3 +- ___ssmulsq3 +- ___ssmuldq3 +- ___ssmultq3 +- ___ssmulha3 +- ___ssmulsa3 +- ___ssmulda3 +- ___ssmulta3 +- ___usmuluqq3 +- ___usmuluhq3 +- ___usmulusq3 +- ___usmuludq3 +- ___usmulutq3 +- ___usmuluha3 +- ___usmulusa3 +- ___usmuluda3 +- ___usmuluta3 +- ___divqq3 +- ___divhq3 +- ___divsq3 +- ___divdq3 +- ___divtq3 +- ___divha3 +- ___divsa3 +- ___divda3 +- ___divta3 +- ___udivuqq3 +- ___udivuhq3 +- ___udivusq3 +- ___udivudq3 +- ___udivutq3 +- ___udivuha3 +- ___udivusa3 +- ___udivuda3 +- ___udivuta3 +- ___ssdivqq3 +- ___ssdivhq3 +- ___ssdivsq3 +- ___ssdivdq3 +- ___ssdivtq3 +- ___ssdivha3 +- ___ssdivsa3 +- ___ssdivda3 +- ___ssdivta3 +- ___usdivuqq3 +- ___usdivuhq3 +- ___usdivusq3 +- ___usdivudq3 +- ___usdivutq3 +- ___usdivuha3 +- ___usdivusa3 +- ___usdivuda3 +- ___usdivuta3 +- ___negqq2 +- ___neghq2 +- ___negsq2 +- ___negdq2 +- ___negtq2 +- ___neguqq2 +- ___neguhq2 +- ___negusq2 +- ___negudq2 +- ___negutq2 +- ___negha2 +- ___negsa2 +- ___negda2 +- ___negta2 +- ___neguha2 +- ___negusa2 +- ___neguda2 +- ___neguta2 +- ___ssnegqq2 +- ___ssneghq2 +- ___ssnegsq2 +- ___ssnegdq2 +- ___ssnegtq2 +- ___ssnegha2 +- ___ssnegsa2 +- ___ssnegda2 +- ___ssnegta2 +- ___usneguqq2 +- ___usneguhq2 +- ___usnegusq2 +- ___usnegudq2 +- ___usnegutq2 +- ___usneguha2 +- ___usnegusa2 +- ___usneguda2 +- ___usneguta2 +- ___ashlqq3 +- ___ashlhq3 +- ___ashlsq3 +- ___ashldq3 +- ___ashltq3 +- ___ashluqq3 +- ___ashluhq3 +- ___ashlusq3 +- ___ashludq3 +- ___ashlutq3 +- ___ashlha3 +- ___ashlsa3 +- ___ashlda3 +- ___ashlta3 +- ___ashluha3 +- ___ashlusa3 +- ___ashluda3 +- ___ashluta3 +- ___ashrqq3 +- ___ashrhq3 +- ___ashrsq3 +- ___ashrdq3 +- ___ashrtq3 +- ___ashrha3 +- ___ashrsa3 +- ___ashrda3 +- ___ashrta3 +- ___lshruqq3 +- ___lshruhq3 +- ___lshrusq3 +- ___lshrudq3 +- ___lshrutq3 +- ___lshruha3 +- ___lshrusa3 +- ___lshruda3 +- ___lshruta3 +- ___ssashlqq3 +- ___ssashlhq3 +- ___ssashlsq3 +- ___ssashldq3 +- ___ssashltq3 +- ___ssashlha3 +- ___ssashlsa3 +- ___ssashlda3 +- ___ssashlta3 +- ___usashluqq3 +- ___usashluhq3 +- ___usashlusq3 +- ___usashludq3 +- ___usashlutq3 +- ___usashluha3 +- ___usashlusa3 +- ___usashluda3 +- ___usashluta3 +- ___cmpqq2 +- ___cmphq2 +- ___cmpsq2 +- ___cmpdq2 +- ___cmptq2 +- ___cmpuqq2 +- ___cmpuhq2 +- ___cmpusq2 +- ___cmpudq2 +- ___cmputq2 +- ___cmpha2 +- ___cmpsa2 +- ___cmpda2 +- ___cmpta2 +- ___cmpuha2 +- ___cmpusa2 +- ___cmpuda2 +- ___cmputa2 +- ___fractqqhq2 +- ___fractqqsq2 +- ___fractqqdq2 +- ___fractqqtq2 +- ___fractqqha +- ___fractqqsa +- ___fractqqda +- ___fractqqta +- ___fractqquqq +- ___fractqquhq +- ___fractqqusq +- ___fractqqudq +- ___fractqqutq +- ___fractqquha +- ___fractqqusa +- ___fractqquda +- ___fractqquta +- ___fractqqqi +- ___fractqqhi +- ___fractqqsi +- ___fractqqdi +- ___fractqqti +- ___fractqqsf +- ___fractqqdf +- ___fracthqqq2 +- ___fracthqsq2 +- ___fracthqdq2 +- ___fracthqtq2 +- ___fracthqha +- ___fracthqsa +- ___fracthqda +- ___fracthqta +- ___fracthquqq +- ___fracthquhq +- ___fracthqusq +- ___fracthqudq +- ___fracthqutq +- ___fracthquha +- ___fracthqusa +- ___fracthquda +- ___fracthquta +- ___fracthqqi +- ___fracthqhi +- ___fracthqsi +- ___fracthqdi +- ___fracthqti +- ___fracthqsf +- ___fracthqdf +- ___fractsqqq2 +- ___fractsqhq2 +- ___fractsqdq2 +- ___fractsqtq2 +- ___fractsqha +- ___fractsqsa +- ___fractsqda +- ___fractsqta +- ___fractsquqq +- ___fractsquhq +- ___fractsqusq +- ___fractsqudq +- ___fractsqutq +- ___fractsquha +- ___fractsqusa +- ___fractsquda +- ___fractsquta +- ___fractsqqi +- ___fractsqhi +- ___fractsqsi +- ___fractsqdi +- ___fractsqti +- ___fractsqsf +- ___fractsqdf +- ___fractdqqq2 +- ___fractdqhq2 +- ___fractdqsq2 +- ___fractdqtq2 +- ___fractdqha +- ___fractdqsa +- ___fractdqda +- ___fractdqta +- ___fractdquqq +- ___fractdquhq +- ___fractdqusq +- ___fractdqudq +- ___fractdqutq +- ___fractdquha +- ___fractdqusa +- ___fractdquda +- ___fractdquta +- ___fractdqqi +- ___fractdqhi +- ___fractdqsi +- ___fractdqdi +- ___fractdqti +- ___fractdqsf +- ___fractdqdf +- ___fracttqqq2 +- ___fracttqhq2 +- ___fracttqsq2 +- ___fracttqdq2 +- ___fracttqha +- ___fracttqsa +- ___fracttqda +- ___fracttqta +- ___fracttquqq +- ___fracttquhq +- ___fracttqusq +- ___fracttqudq +- ___fracttqutq +- ___fracttquha +- ___fracttqusa +- ___fracttquda +- ___fracttquta +- ___fracttqqi +- ___fracttqhi +- ___fracttqsi +- ___fracttqdi +- ___fracttqti +- ___fracttqsf +- ___fracttqdf +- ___fracthaqq +- ___fracthahq +- ___fracthasq +- ___fracthadq +- ___fracthatq +- ___fracthasa2 +- ___fracthada2 +- ___fracthata2 +- ___fracthauqq +- ___fracthauhq +- ___fracthausq +- ___fracthaudq +- ___fracthautq +- ___fracthauha +- ___fracthausa +- ___fracthauda +- ___fracthauta +- ___fracthaqi +- ___fracthahi +- ___fracthasi +- ___fracthadi +- ___fracthati +- ___fracthasf +- ___fracthadf +- ___fractsaqq +- ___fractsahq +- ___fractsasq +- ___fractsadq +- ___fractsatq +- ___fractsaha2 +- ___fractsada2 +- ___fractsata2 +- ___fractsauqq +- ___fractsauhq +- ___fractsausq +- ___fractsaudq +- ___fractsautq +- ___fractsauha +- ___fractsausa +- ___fractsauda +- ___fractsauta +- ___fractsaqi +- ___fractsahi +- ___fractsasi +- ___fractsadi +- ___fractsati +- ___fractsasf +- ___fractsadf +- ___fractdaqq +- ___fractdahq +- ___fractdasq +- ___fractdadq +- ___fractdatq +- ___fractdaha2 +- ___fractdasa2 +- ___fractdata2 +- ___fractdauqq +- ___fractdauhq +- ___fractdausq +- ___fractdaudq +- ___fractdautq +- ___fractdauha +- ___fractdausa +- ___fractdauda +- ___fractdauta +- ___fractdaqi +- ___fractdahi +- ___fractdasi +- ___fractdadi +- ___fractdati +- ___fractdasf +- ___fractdadf +- ___fracttaqq +- ___fracttahq +- ___fracttasq +- ___fracttadq +- ___fracttatq +- ___fracttaha2 +- ___fracttasa2 +- ___fracttada2 +- ___fracttauqq +- ___fracttauhq +- ___fracttausq +- ___fracttaudq +- ___fracttautq +- ___fracttauha +- ___fracttausa +- ___fracttauda +- ___fracttauta +- ___fracttaqi +- ___fracttahi +- ___fracttasi +- ___fracttadi +- ___fracttati +- ___fracttasf +- ___fracttadf +- ___fractuqqqq +- ___fractuqqhq +- ___fractuqqsq +- ___fractuqqdq +- ___fractuqqtq +- ___fractuqqha +- ___fractuqqsa +- ___fractuqqda +- ___fractuqqta +- ___fractuqquhq2 +- ___fractuqqusq2 +- ___fractuqqudq2 +- ___fractuqqutq2 +- ___fractuqquha +- ___fractuqqusa +- ___fractuqquda +- ___fractuqquta +- ___fractuqqqi +- ___fractuqqhi +- ___fractuqqsi +- ___fractuqqdi +- ___fractuqqti +- ___fractuqqsf +- ___fractuqqdf +- ___fractuhqqq +- ___fractuhqhq +- ___fractuhqsq +- ___fractuhqdq +- ___fractuhqtq +- ___fractuhqha +- ___fractuhqsa +- ___fractuhqda +- ___fractuhqta +- ___fractuhquqq2 +- ___fractuhqusq2 +- ___fractuhqudq2 +- ___fractuhqutq2 +- ___fractuhquha +- ___fractuhqusa +- ___fractuhquda +- ___fractuhquta +- ___fractuhqqi +- ___fractuhqhi +- ___fractuhqsi +- ___fractuhqdi +- ___fractuhqti +- ___fractuhqsf +- ___fractuhqdf +- ___fractusqqq +- ___fractusqhq +- ___fractusqsq +- ___fractusqdq +- ___fractusqtq +- ___fractusqha +- ___fractusqsa +- ___fractusqda +- ___fractusqta +- ___fractusquqq2 +- ___fractusquhq2 +- ___fractusqudq2 +- ___fractusqutq2 +- ___fractusquha +- ___fractusqusa +- ___fractusquda +- ___fractusquta +- ___fractusqqi +- ___fractusqhi +- ___fractusqsi +- ___fractusqdi +- ___fractusqti +- ___fractusqsf +- ___fractusqdf +- ___fractudqqq +- ___fractudqhq +- ___fractudqsq +- ___fractudqdq +- ___fractudqtq +- ___fractudqha +- ___fractudqsa +- ___fractudqda +- ___fractudqta +- ___fractudquqq2 +- ___fractudquhq2 +- ___fractudqusq2 +- ___fractudqutq2 +- ___fractudquha +- ___fractudqusa +- ___fractudquda +- ___fractudquta +- ___fractudqqi +- ___fractudqhi +- ___fractudqsi +- ___fractudqdi +- ___fractudqti +- ___fractudqsf +- ___fractudqdf +- ___fractutqqq +- ___fractutqhq +- ___fractutqsq +- ___fractutqdq +- ___fractutqtq +- ___fractutqha +- ___fractutqsa +- ___fractutqda +- ___fractutqta +- ___fractutquqq2 +- ___fractutquhq2 +- ___fractutqusq2 +- ___fractutqudq2 +- ___fractutquha +- ___fractutqusa +- ___fractutquda +- ___fractutquta +- ___fractutqqi +- ___fractutqhi +- ___fractutqsi +- ___fractutqdi +- ___fractutqti +- ___fractutqsf +- ___fractutqdf +- ___fractuhaqq +- ___fractuhahq +- ___fractuhasq +- ___fractuhadq +- ___fractuhatq +- ___fractuhaha +- ___fractuhasa +- ___fractuhada +- ___fractuhata +- ___fractuhauqq +- ___fractuhauhq +- ___fractuhausq +- ___fractuhaudq +- ___fractuhautq +- ___fractuhausa2 +- ___fractuhauda2 +- ___fractuhauta2 +- ___fractuhaqi +- ___fractuhahi +- ___fractuhasi +- ___fractuhadi +- ___fractuhati +- ___fractuhasf +- ___fractuhadf +- ___fractusaqq +- ___fractusahq +- ___fractusasq +- ___fractusadq +- ___fractusatq +- ___fractusaha +- ___fractusasa +- ___fractusada +- ___fractusata +- ___fractusauqq +- ___fractusauhq +- ___fractusausq +- ___fractusaudq +- ___fractusautq +- ___fractusauha2 +- ___fractusauda2 +- ___fractusauta2 +- ___fractusaqi +- ___fractusahi +- ___fractusasi +- ___fractusadi +- ___fractusati +- ___fractusasf +- ___fractusadf +- ___fractudaqq +- ___fractudahq +- ___fractudasq +- ___fractudadq +- ___fractudatq +- ___fractudaha +- ___fractudasa +- ___fractudada +- ___fractudata +- ___fractudauqq +- ___fractudauhq +- ___fractudausq +- ___fractudaudq +- ___fractudautq +- ___fractudauha2 +- ___fractudausa2 +- ___fractudauta2 +- ___fractudaqi +- ___fractudahi +- ___fractudasi +- ___fractudadi +- ___fractudati +- ___fractudasf +- ___fractudadf +- ___fractutaqq +- ___fractutahq +- ___fractutasq +- ___fractutadq +- ___fractutatq +- ___fractutaha +- ___fractutasa +- ___fractutada +- ___fractutata +- ___fractutauqq +- ___fractutauhq +- ___fractutausq +- ___fractutaudq +- ___fractutautq +- ___fractutauha2 +- ___fractutausa2 +- ___fractutauda2 +- ___fractutaqi +- ___fractutahi +- ___fractutasi +- ___fractutadi +- ___fractutati +- ___fractutasf +- ___fractutadf +- ___fractqiqq +- ___fractqihq +- ___fractqisq +- ___fractqidq +- ___fractqitq +- ___fractqiha +- ___fractqisa +- ___fractqida +- ___fractqita +- ___fractqiuqq +- ___fractqiuhq +- ___fractqiusq +- ___fractqiudq +- ___fractqiutq +- ___fractqiuha +- ___fractqiusa +- ___fractqiuda +- ___fractqiuta +- ___fracthiqq +- ___fracthihq +- ___fracthisq +- ___fracthidq +- ___fracthitq +- ___fracthiha +- ___fracthisa +- ___fracthida +- ___fracthita +- ___fracthiuqq +- ___fracthiuhq +- ___fracthiusq +- ___fracthiudq +- ___fracthiutq +- ___fracthiuha +- ___fracthiusa +- ___fracthiuda +- ___fracthiuta +- ___fractsiqq +- ___fractsihq +- ___fractsisq +- ___fractsidq +- ___fractsitq +- ___fractsiha +- ___fractsisa +- ___fractsida +- ___fractsita +- ___fractsiuqq +- ___fractsiuhq +- ___fractsiusq +- ___fractsiudq +- ___fractsiutq +- ___fractsiuha +- ___fractsiusa +- ___fractsiuda +- ___fractsiuta +- ___fractdiqq +- ___fractdihq +- ___fractdisq +- ___fractdidq +- ___fractditq +- ___fractdiha +- ___fractdisa +- ___fractdida +- ___fractdita +- ___fractdiuqq +- ___fractdiuhq +- ___fractdiusq +- ___fractdiudq +- ___fractdiutq +- ___fractdiuha +- ___fractdiusa +- ___fractdiuda +- ___fractdiuta +- ___fracttiqq +- ___fracttihq +- ___fracttisq +- ___fracttidq +- ___fracttitq +- ___fracttiha +- ___fracttisa +- ___fracttida +- ___fracttita +- ___fracttiuqq +- ___fracttiuhq +- ___fracttiusq +- ___fracttiudq +- ___fracttiutq +- ___fracttiuha +- ___fracttiusa +- ___fracttiuda +- ___fracttiuta +- ___fractsfqq +- ___fractsfhq +- ___fractsfsq +- ___fractsfdq +- ___fractsftq +- ___fractsfha +- ___fractsfsa +- ___fractsfda +- ___fractsfta +- ___fractsfuqq +- ___fractsfuhq +- ___fractsfusq +- ___fractsfudq +- ___fractsfutq +- ___fractsfuha +- ___fractsfusa +- ___fractsfuda +- ___fractsfuta +- ___fractdfqq +- ___fractdfhq +- ___fractdfsq +- ___fractdfdq +- ___fractdftq +- ___fractdfha +- ___fractdfsa +- ___fractdfda +- ___fractdfta +- ___fractdfuqq +- ___fractdfuhq +- ___fractdfusq +- ___fractdfudq +- ___fractdfutq +- ___fractdfuha +- ___fractdfusa +- ___fractdfuda +- ___fractdfuta +- ___satfractqqhq2 +- ___satfractqqsq2 +- ___satfractqqdq2 +- ___satfractqqtq2 +- ___satfractqqha +- ___satfractqqsa +- ___satfractqqda +- ___satfractqqta +- ___satfractqquqq +- ___satfractqquhq +- ___satfractqqusq +- ___satfractqqudq +- ___satfractqqutq +- ___satfractqquha +- ___satfractqqusa +- ___satfractqquda +- ___satfractqquta +- ___satfracthqqq2 +- ___satfracthqsq2 +- ___satfracthqdq2 +- ___satfracthqtq2 +- ___satfracthqha +- ___satfracthqsa +- ___satfracthqda +- ___satfracthqta +- ___satfracthquqq +- ___satfracthquhq +- ___satfracthqusq +- ___satfracthqudq +- ___satfracthqutq +- ___satfracthquha +- ___satfracthqusa +- ___satfracthquda +- ___satfracthquta +- ___satfractsqqq2 +- ___satfractsqhq2 +- ___satfractsqdq2 +- ___satfractsqtq2 +- ___satfractsqha +- ___satfractsqsa +- ___satfractsqda +- ___satfractsqta +- ___satfractsquqq +- ___satfractsquhq +- ___satfractsqusq +- ___satfractsqudq +- ___satfractsqutq +- ___satfractsquha +- ___satfractsqusa +- ___satfractsquda +- ___satfractsquta +- ___satfractdqqq2 +- ___satfractdqhq2 +- ___satfractdqsq2 +- ___satfractdqtq2 +- ___satfractdqha +- ___satfractdqsa +- ___satfractdqda +- ___satfractdqta +- ___satfractdquqq +- ___satfractdquhq +- ___satfractdqusq +- ___satfractdqudq +- ___satfractdqutq +- ___satfractdquha +- ___satfractdqusa +- ___satfractdquda +- ___satfractdquta +- ___satfracttqqq2 +- ___satfracttqhq2 +- ___satfracttqsq2 +- ___satfracttqdq2 +- ___satfracttqha +- ___satfracttqsa +- ___satfracttqda +- ___satfracttqta +- ___satfracttquqq +- ___satfracttquhq +- ___satfracttqusq +- ___satfracttqudq +- ___satfracttqutq +- ___satfracttquha +- ___satfracttqusa +- ___satfracttquda +- ___satfracttquta +- ___satfracthaqq +- ___satfracthahq +- ___satfracthasq +- ___satfracthadq +- ___satfracthatq +- ___satfracthasa2 +- ___satfracthada2 +- ___satfracthata2 +- ___satfracthauqq +- ___satfracthauhq +- ___satfracthausq +- ___satfracthaudq +- ___satfracthautq +- ___satfracthauha +- ___satfracthausa +- ___satfracthauda +- ___satfracthauta +- ___satfractsaqq +- ___satfractsahq +- ___satfractsasq +- ___satfractsadq +- ___satfractsatq +- ___satfractsaha2 +- ___satfractsada2 +- ___satfractsata2 +- ___satfractsauqq +- ___satfractsauhq +- ___satfractsausq +- ___satfractsaudq +- ___satfractsautq +- ___satfractsauha +- ___satfractsausa +- ___satfractsauda +- ___satfractsauta +- ___satfractdaqq +- ___satfractdahq +- ___satfractdasq +- ___satfractdadq +- ___satfractdatq +- ___satfractdaha2 +- ___satfractdasa2 +- ___satfractdata2 +- ___satfractdauqq +- ___satfractdauhq +- ___satfractdausq +- ___satfractdaudq +- ___satfractdautq +- ___satfractdauha +- ___satfractdausa +- ___satfractdauda +- ___satfractdauta +- ___satfracttaqq +- ___satfracttahq +- ___satfracttasq +- ___satfracttadq +- ___satfracttatq +- ___satfracttaha2 +- ___satfracttasa2 +- ___satfracttada2 +- ___satfracttauqq +- ___satfracttauhq +- ___satfracttausq +- ___satfracttaudq +- ___satfracttautq +- ___satfracttauha +- ___satfracttausa +- ___satfracttauda +- ___satfracttauta +- ___satfractuqqqq +- ___satfractuqqhq +- ___satfractuqqsq +- ___satfractuqqdq +- ___satfractuqqtq +- ___satfractuqqha +- ___satfractuqqsa +- ___satfractuqqda +- ___satfractuqqta +- ___satfractuqquhq2 +- ___satfractuqqusq2 +- ___satfractuqqudq2 +- ___satfractuqqutq2 +- ___satfractuqquha +- ___satfractuqqusa +- ___satfractuqquda +- ___satfractuqquta +- ___satfractuhqqq +- ___satfractuhqhq +- ___satfractuhqsq +- ___satfractuhqdq +- ___satfractuhqtq +- ___satfractuhqha +- ___satfractuhqsa +- ___satfractuhqda +- ___satfractuhqta +- ___satfractuhquqq2 +- ___satfractuhqusq2 +- ___satfractuhqudq2 +- ___satfractuhqutq2 +- ___satfractuhquha +- ___satfractuhqusa +- ___satfractuhquda +- ___satfractuhquta +- ___satfractusqqq +- ___satfractusqhq +- ___satfractusqsq +- ___satfractusqdq +- ___satfractusqtq +- ___satfractusqha +- ___satfractusqsa +- ___satfractusqda +- ___satfractusqta +- ___satfractusquqq2 +- ___satfractusquhq2 +- ___satfractusqudq2 +- ___satfractusqutq2 +- ___satfractusquha +- ___satfractusqusa +- ___satfractusquda +- ___satfractusquta +- ___satfractudqqq +- ___satfractudqhq +- ___satfractudqsq +- ___satfractudqdq +- ___satfractudqtq +- ___satfractudqha +- ___satfractudqsa +- ___satfractudqda +- ___satfractudqta +- ___satfractudquqq2 +- ___satfractudquhq2 +- ___satfractudqusq2 +- ___satfractudqutq2 +- ___satfractudquha +- ___satfractudqusa +- ___satfractudquda +- ___satfractudquta +- ___satfractutqqq +- ___satfractutqhq +- ___satfractutqsq +- ___satfractutqdq +- ___satfractutqtq +- ___satfractutqha +- ___satfractutqsa +- ___satfractutqda +- ___satfractutqta +- ___satfractutquqq2 +- ___satfractutquhq2 +- ___satfractutqusq2 +- ___satfractutqudq2 +- ___satfractutquha +- ___satfractutqusa +- ___satfractutquda +- ___satfractutquta +- ___satfractuhaqq +- ___satfractuhahq +- ___satfractuhasq +- ___satfractuhadq +- ___satfractuhatq +- ___satfractuhaha +- ___satfractuhasa +- ___satfractuhada +- ___satfractuhata +- ___satfractuhauqq +- ___satfractuhauhq +- ___satfractuhausq +- ___satfractuhaudq +- ___satfractuhautq +- ___satfractuhausa2 +- ___satfractuhauda2 +- ___satfractuhauta2 +- ___satfractusaqq +- ___satfractusahq +- ___satfractusasq +- ___satfractusadq +- ___satfractusatq +- ___satfractusaha +- ___satfractusasa +- ___satfractusada +- ___satfractusata +- ___satfractusauqq +- ___satfractusauhq +- ___satfractusausq +- ___satfractusaudq +- ___satfractusautq +- ___satfractusauha2 +- ___satfractusauda2 +- ___satfractusauta2 +- ___satfractudaqq +- ___satfractudahq +- ___satfractudasq +- ___satfractudadq +- ___satfractudatq +- ___satfractudaha +- ___satfractudasa +- ___satfractudada +- ___satfractudata +- ___satfractudauqq +- ___satfractudauhq +- ___satfractudausq +- ___satfractudaudq +- ___satfractudautq +- ___satfractudauha2 +- ___satfractudausa2 +- ___satfractudauta2 +- ___satfractutaqq +- ___satfractutahq +- ___satfractutasq +- ___satfractutadq +- ___satfractutatq +- ___satfractutaha +- ___satfractutasa +- ___satfractutada +- ___satfractutata +- ___satfractutauqq +- ___satfractutauhq +- ___satfractutausq +- ___satfractutaudq +- ___satfractutautq +- ___satfractutauha2 +- ___satfractutausa2 +- ___satfractutauda2 +- ___satfractqiqq +- ___satfractqihq +- ___satfractqisq +- ___satfractqidq +- ___satfractqitq +- ___satfractqiha +- ___satfractqisa +- ___satfractqida +- ___satfractqita +- ___satfractqiuqq +- ___satfractqiuhq +- ___satfractqiusq +- ___satfractqiudq +- ___satfractqiutq +- ___satfractqiuha +- ___satfractqiusa +- ___satfractqiuda +- ___satfractqiuta +- ___satfracthiqq +- ___satfracthihq +- ___satfracthisq +- ___satfracthidq +- ___satfracthitq +- ___satfracthiha +- ___satfracthisa +- ___satfracthida +- ___satfracthita +- ___satfracthiuqq +- ___satfracthiuhq +- ___satfracthiusq +- ___satfracthiudq +- ___satfracthiutq +- ___satfracthiuha +- ___satfracthiusa +- ___satfracthiuda +- ___satfracthiuta +- ___satfractsiqq +- ___satfractsihq +- ___satfractsisq +- ___satfractsidq +- ___satfractsitq +- ___satfractsiha +- ___satfractsisa +- ___satfractsida +- ___satfractsita +- ___satfractsiuqq +- ___satfractsiuhq +- ___satfractsiusq +- ___satfractsiudq +- ___satfractsiutq +- ___satfractsiuha +- ___satfractsiusa +- ___satfractsiuda +- ___satfractsiuta +- ___satfractdiqq +- ___satfractdihq +- ___satfractdisq +- ___satfractdidq +- ___satfractditq +- ___satfractdiha +- ___satfractdisa +- ___satfractdida +- ___satfractdita +- ___satfractdiuqq +- ___satfractdiuhq +- ___satfractdiusq +- ___satfractdiudq +- ___satfractdiutq +- ___satfractdiuha +- ___satfractdiusa +- ___satfractdiuda +- ___satfractdiuta +- ___satfracttiqq +- ___satfracttihq +- ___satfracttisq +- ___satfracttidq +- ___satfracttitq +- ___satfracttiha +- ___satfracttisa +- ___satfracttida +- ___satfracttita +- ___satfracttiuqq +- ___satfracttiuhq +- ___satfracttiusq +- ___satfracttiudq +- ___satfracttiutq +- ___satfracttiuha +- ___satfracttiusa +- ___satfracttiuda +- ___satfracttiuta +- ___satfractsfqq +- ___satfractsfhq +- ___satfractsfsq +- ___satfractsfdq +- ___satfractsftq +- ___satfractsfha +- ___satfractsfsa +- ___satfractsfda +- ___satfractsfta +- ___satfractsfuqq +- ___satfractsfuhq +- ___satfractsfusq +- ___satfractsfudq +- ___satfractsfutq +- ___satfractsfuha +- ___satfractsfusa +- ___satfractsfuda +- ___satfractsfuta +- ___satfractdfqq +- ___satfractdfhq +- ___satfractdfsq +- ___satfractdfdq +- ___satfractdftq +- ___satfractdfha +- ___satfractdfsa +- ___satfractdfda +- ___satfractdfta +- ___satfractdfuqq +- ___satfractdfuhq +- ___satfractdfusq +- ___satfractdfudq +- ___satfractdfutq +- ___satfractdfuha +- ___satfractdfusa +- ___satfractdfuda +- ___satfractdfuta +- ___fractunsqqqi +- ___fractunsqqhi +- ___fractunsqqsi +- ___fractunsqqdi +- ___fractunsqqti +- ___fractunshqqi +- ___fractunshqhi +- ___fractunshqsi +- ___fractunshqdi +- ___fractunshqti +- ___fractunssqqi +- ___fractunssqhi +- ___fractunssqsi +- ___fractunssqdi +- ___fractunssqti +- ___fractunsdqqi +- ___fractunsdqhi +- ___fractunsdqsi +- ___fractunsdqdi +- ___fractunsdqti +- ___fractunstqqi +- ___fractunstqhi +- ___fractunstqsi +- ___fractunstqdi +- ___fractunstqti +- ___fractunshaqi +- ___fractunshahi +- ___fractunshasi +- ___fractunshadi +- ___fractunshati +- ___fractunssaqi +- ___fractunssahi +- ___fractunssasi +- ___fractunssadi +- ___fractunssati +- ___fractunsdaqi +- ___fractunsdahi +- ___fractunsdasi +- ___fractunsdadi +- ___fractunsdati +- ___fractunstaqi +- ___fractunstahi +- ___fractunstasi +- ___fractunstadi +- ___fractunstati +- ___fractunsuqqqi +- ___fractunsuqqhi +- ___fractunsuqqsi +- ___fractunsuqqdi +- ___fractunsuqqti +- ___fractunsuhqqi +- ___fractunsuhqhi +- ___fractunsuhqsi +- ___fractunsuhqdi +- ___fractunsuhqti +- ___fractunsusqqi +- ___fractunsusqhi +- ___fractunsusqsi +- ___fractunsusqdi +- ___fractunsusqti +- ___fractunsudqqi +- ___fractunsudqhi +- ___fractunsudqsi +- ___fractunsudqdi +- ___fractunsudqti +- ___fractunsutqqi +- ___fractunsutqhi +- ___fractunsutqsi +- ___fractunsutqdi +- ___fractunsutqti +- ___fractunsuhaqi +- ___fractunsuhahi +- ___fractunsuhasi +- ___fractunsuhadi +- ___fractunsuhati +- ___fractunsusaqi +- ___fractunsusahi +- ___fractunsusasi +- ___fractunsusadi +- ___fractunsusati +- ___fractunsudaqi +- ___fractunsudahi +- ___fractunsudasi +- ___fractunsudadi +- ___fractunsudati +- ___fractunsutaqi +- ___fractunsutahi +- ___fractunsutasi +- ___fractunsutadi +- ___fractunsutati +- ___fractunsqiqq +- ___fractunsqihq +- ___fractunsqisq +- ___fractunsqidq +- ___fractunsqitq +- ___fractunsqiha +- ___fractunsqisa +- ___fractunsqida +- ___fractunsqita +- ___fractunsqiuqq +- ___fractunsqiuhq +- ___fractunsqiusq +- ___fractunsqiudq +- ___fractunsqiutq +- ___fractunsqiuha +- ___fractunsqiusa +- ___fractunsqiuda +- ___fractunsqiuta +- ___fractunshiqq +- ___fractunshihq +- ___fractunshisq +- ___fractunshidq +- ___fractunshitq +- ___fractunshiha +- ___fractunshisa +- ___fractunshida +- ___fractunshita +- ___fractunshiuqq +- ___fractunshiuhq +- ___fractunshiusq +- ___fractunshiudq +- ___fractunshiutq +- ___fractunshiuha +- ___fractunshiusa +- ___fractunshiuda +- ___fractunshiuta +- ___fractunssiqq +- ___fractunssihq +- ___fractunssisq +- ___fractunssidq +- ___fractunssitq +- ___fractunssiha +- ___fractunssisa +- ___fractunssida +- ___fractunssita +- ___fractunssiuqq +- ___fractunssiuhq +- ___fractunssiusq +- ___fractunssiudq +- ___fractunssiutq +- ___fractunssiuha +- ___fractunssiusa +- ___fractunssiuda +- ___fractunssiuta +- ___fractunsdiqq +- ___fractunsdihq +- ___fractunsdisq +- ___fractunsdidq +- ___fractunsditq +- ___fractunsdiha +- ___fractunsdisa +- ___fractunsdida +- ___fractunsdita +- ___fractunsdiuqq +- ___fractunsdiuhq +- ___fractunsdiusq +- ___fractunsdiudq +- ___fractunsdiutq +- ___fractunsdiuha +- ___fractunsdiusa +- ___fractunsdiuda +- ___fractunsdiuta +- ___fractunstiqq +- ___fractunstihq +- ___fractunstisq +- ___fractunstidq +- ___fractunstitq +- ___fractunstiha +- ___fractunstisa +- ___fractunstida +- ___fractunstita +- ___fractunstiuqq +- ___fractunstiuhq +- ___fractunstiusq +- ___fractunstiudq +- ___fractunstiutq +- ___fractunstiuha +- ___fractunstiusa +- ___fractunstiuda +- ___fractunstiuta +- ___satfractunsqiqq +- ___satfractunsqihq +- ___satfractunsqisq +- ___satfractunsqidq +- ___satfractunsqitq +- ___satfractunsqiha +- ___satfractunsqisa +- ___satfractunsqida +- ___satfractunsqita +- ___satfractunsqiuqq +- ___satfractunsqiuhq +- ___satfractunsqiusq +- ___satfractunsqiudq +- ___satfractunsqiutq +- ___satfractunsqiuha +- ___satfractunsqiusa +- ___satfractunsqiuda +- ___satfractunsqiuta +- ___satfractunshiqq +- ___satfractunshihq +- ___satfractunshisq +- ___satfractunshidq +- ___satfractunshitq +- ___satfractunshiha +- ___satfractunshisa +- ___satfractunshida +- ___satfractunshita +- ___satfractunshiuqq +- ___satfractunshiuhq +- ___satfractunshiusq +- ___satfractunshiudq +- ___satfractunshiutq +- ___satfractunshiuha +- ___satfractunshiusa +- ___satfractunshiuda +- ___satfractunshiuta +- ___satfractunssiqq +- ___satfractunssihq +- ___satfractunssisq +- ___satfractunssidq +- ___satfractunssitq +- ___satfractunssiha +- ___satfractunssisa +- ___satfractunssida +- ___satfractunssita +- ___satfractunssiuqq +- ___satfractunssiuhq +- ___satfractunssiusq +- ___satfractunssiudq +- ___satfractunssiutq +- ___satfractunssiuha +- ___satfractunssiusa +- ___satfractunssiuda +- ___satfractunssiuta +- ___satfractunsdiqq +- ___satfractunsdihq +- ___satfractunsdisq +- ___satfractunsdidq +- ___satfractunsditq +- ___satfractunsdiha +- ___satfractunsdisa +- ___satfractunsdida +- ___satfractunsdita +- ___satfractunsdiuqq +- ___satfractunsdiuhq +- ___satfractunsdiusq +- ___satfractunsdiudq +- ___satfractunsdiutq +- ___satfractunsdiuha +- ___satfractunsdiusa +- ___satfractunsdiuda +- ___satfractunsdiuta +- ___satfractunstiqq +- ___satfractunstihq +- ___satfractunstisq +- ___satfractunstidq +- ___satfractunstitq +- ___satfractunstiha +- ___satfractunstisa +- ___satfractunstida +- ___satfractunstita +- ___satfractunstiuqq +- ___satfractunstiuhq +- ___satfractunstiusq +- ___satfractunstiudq +- ___satfractunstiutq +- ___satfractunstiuha +- ___satfractunstiusa +- ___satfractunstiuda +- ___satfractunstiuta +-} +- +-%inherit GCC_4.4.0 GCC_4.3.0 +-GCC_4.4.0 { +- ___sync_fetch_and_add_1 +- ___sync_fetch_and_sub_1 +- ___sync_fetch_and_or_1 +- ___sync_fetch_and_and_1 +- ___sync_fetch_and_xor_1 +- ___sync_fetch_and_nand_1 +- ___sync_add_and_fetch_1 +- ___sync_sub_and_fetch_1 +- ___sync_or_and_fetch_1 +- ___sync_and_and_fetch_1 +- ___sync_xor_and_fetch_1 +- ___sync_nand_and_fetch_1 +- ___sync_bool_compare_and_swap_1 +- ___sync_val_compare_and_swap_1 +- ___sync_lock_test_and_set_1 +- +- ___sync_fetch_and_add_2 +- ___sync_fetch_and_sub_2 +- ___sync_fetch_and_or_2 +- ___sync_fetch_and_and_2 +- ___sync_fetch_and_xor_2 +- ___sync_fetch_and_nand_2 +- ___sync_add_and_fetch_2 +- ___sync_sub_and_fetch_2 +- ___sync_or_and_fetch_2 +- ___sync_and_and_fetch_2 +- ___sync_xor_and_fetch_2 +- ___sync_nand_and_fetch_2 +- ___sync_bool_compare_and_swap_2 +- ___sync_val_compare_and_swap_2 +- ___sync_lock_test_and_set_2 +- +- ___sync_fetch_and_add_4 +- ___sync_fetch_and_sub_4 +- ___sync_fetch_and_or_4 +- ___sync_fetch_and_and_4 +- ___sync_fetch_and_xor_4 +- ___sync_fetch_and_nand_4 +- ___sync_add_and_fetch_4 +- ___sync_sub_and_fetch_4 +- ___sync_or_and_fetch_4 +- ___sync_and_and_fetch_4 +- ___sync_xor_and_fetch_4 +- ___sync_nand_and_fetch_4 +- ___sync_bool_compare_and_swap_4 +- ___sync_val_compare_and_swap_4 +- ___sync_lock_test_and_set_4 +- +- ___sync_fetch_and_add_8 +- ___sync_fetch_and_sub_8 +- ___sync_fetch_and_or_8 +- ___sync_fetch_and_and_8 +- ___sync_fetch_and_xor_8 +- ___sync_fetch_and_nand_8 +- ___sync_add_and_fetch_8 +- ___sync_sub_and_fetch_8 +- ___sync_or_and_fetch_8 +- ___sync_and_and_fetch_8 +- ___sync_xor_and_fetch_8 +- ___sync_nand_and_fetch_8 +- ___sync_bool_compare_and_swap_8 +- ___sync_val_compare_and_swap_8 +- ___sync_lock_test_and_set_8 +- +- ___sync_fetch_and_add_16 +- ___sync_fetch_and_sub_16 +- ___sync_fetch_and_or_16 +- ___sync_fetch_and_and_16 +- ___sync_fetch_and_xor_16 +- ___sync_fetch_and_nand_16 +- ___sync_add_and_fetch_16 +- ___sync_sub_and_fetch_16 +- ___sync_or_and_fetch_16 +- ___sync_and_and_fetch_16 +- ___sync_xor_and_fetch_16 +- ___sync_nand_and_fetch_16 +- ___sync_bool_compare_and_swap_16 +- ___sync_val_compare_and_swap_16 +- ___sync_lock_test_and_set_16 +- +- ___sync_synchronize +-} +- +-%inherit GCC_4.5.0 GCC_4.4.0 +-GCC_4.5.0 { +- ___unordxf2 +- ___unordtf2 ++ __smulsi3_highpart ++ __umulsi3_highpart + } +diff --git a/libgcc/config/bfin/t-linux b/libgcc/config/bfin/t-linux +index 1c42e48..8898157 100644 +--- a/libgcc/config/bfin/t-linux ++++ b/libgcc/config/bfin/t-linux +@@ -1 +1,2 @@ +-SHLIB_MAPFILES = $(srcdir)/config/bfin/libgcc-glibc.ver ++SHLIB_MAPFILES += $(srcdir)/config/bfin/libgcc-glibc.ver ++SHLIB_MKMAP_OPTS = -v skip_underscore=1 +-- +2.7.4 + diff --git a/bsp/buildroot/package/gcc/6.1.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch b/bsp/buildroot/package/gcc/6.1.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch new file mode 100644 index 00000000..cf3f2b85 --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch @@ -0,0 +1,73 @@ +From 9d9f97ca5d1ceba66677bf406c9b31027dc1f22e Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Fri, 19 Aug 2016 13:54:46 +0200 +Subject: [PATCH] libgcc: fix DWARF compilation with FDPIC targets + +The build of unwind-dw2-fde-dip.c currently fails for FDPIC targets with +the following error: + +libgcc/unwind-dw2-fde-dip.c:167:31: error: storage size of 'load_base' isn't known + struct elf32_fdpic_loadaddr load_base; + +This patch addresses that by defining load_base with the appropriate +type on FDPIC targets. It has been tested on FRV and Blackfin. + +Fixes PR gcc/68468. + +Signed-off-by: Waldemar Brodkorb +Signed-off-by: Thomas Petazzoni +--- + libgcc/ChangeLog | 5 +++++ + libgcc/unwind-dw2-fde-dip.c | 8 ++++++-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog +index 36c0194..2e78d20 100644 +--- a/libgcc/ChangeLog ++++ b/libgcc/ChangeLog +@@ -1,3 +1,8 @@ ++2016-08-19 Waldemar Brodkorb ++ ++ PR gcc/68468 ++ * libgcc/unwind-dw2-fde-dip.c: fix build on FDPIC targets. ++ + 2016-08-19 Thomas Petazzoni + + PR gcc/74748 +diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c +index f7a1c3f..801bce8 100644 +--- a/libgcc/unwind-dw2-fde-dip.c ++++ b/libgcc/unwind-dw2-fde-dip.c +@@ -124,7 +124,11 @@ static struct frame_hdr_cache_element + { + _Unwind_Ptr pc_low; + _Unwind_Ptr pc_high; ++#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__ ++ struct elf32_fdpic_loadaddr load_base; ++#else + _Unwind_Ptr load_base; ++#endif + const ElfW(Phdr) *p_eh_frame_hdr; + const ElfW(Phdr) *p_dynamic; + struct frame_hdr_cache_element *link; +@@ -163,7 +167,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr) + struct unw_eh_callback_data *data = (struct unw_eh_callback_data *) ptr; + const ElfW(Phdr) *phdr, *p_eh_frame_hdr, *p_dynamic; + long n, match; +-#ifdef __FRV_FDPIC__ ++#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__ + struct elf32_fdpic_loadaddr load_base; + #else + _Unwind_Ptr load_base; +@@ -347,7 +351,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr) + break; + } + } +-# elif defined __FRV_FDPIC__ && defined __linux__ ++# elif (defined __FRV_FDPIC__ || defined __BFIN_FDPIC__) && defined __linux__ + data->dbase = load_base.got_value; + # else + # error What is DW_EH_PE_datarel base on this platform? +-- +2.7.4 + diff --git a/bsp/buildroot/package/gcc/6.1.0/940-uclinux-enable-threads.patch b/bsp/buildroot/package/gcc/6.1.0/940-uclinux-enable-threads.patch new file mode 100644 index 00000000..55326567 --- /dev/null +++ b/bsp/buildroot/package/gcc/6.1.0/940-uclinux-enable-threads.patch @@ -0,0 +1,19 @@ +Enable POSIX threads for uClinux targets +Reported upstream: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-6.1.0.orig/gcc/config.gcc gcc-6.1.0/gcc/config.gcc +--- gcc-6.1.0.orig/gcc/config.gcc 2016-04-11 12:14:59.000000000 +0200 ++++ gcc-6.1.0/gcc/config.gcc 2016-07-02 20:04:25.732169982 +0200 +@@ -833,6 +833,9 @@ + *-*-uclinux*) + extra_options="$extra_options gnu-user.opt" + use_gcc_stdint=wrap ++ case ${enable_threads} in ++ "" | yes | posix) thread_file='posix' ;; ++ esac + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" + ;; + *-*-rdos*) diff --git a/bsp/buildroot/package/gcc/Config.in.host b/bsp/buildroot/package/gcc/Config.in.host index cad6896b..7ef6ff21 100644 --- a/bsp/buildroot/package/gcc/Config.in.host +++ b/bsp/buildroot/package/gcc/Config.in.host @@ -13,38 +13,14 @@ choice help Select the version of gcc you wish to use. - config BR2_GCC_VERSION_4_5_X - bool "gcc 4.5.x" - depends on BR2_DEPRECATED_SINCE_2015_05 - # Broken or unsupported architectures - depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \ - && !BR2_powerpc64le && !BR2_nios2 - # Broken or unsupported ARM cores - depends on !BR2_cortex_a7 && !BR2_cortex_a12 && \ - !BR2_cortex_a15 && !BR2_fa526 && !BR2_pj4 - # Broken or unsupported PPC cores - depends on !BR2_powerpc_e5500 && !BR2_powerpc_e6500 && \ - !BR2_powerpc_power8 - # SPARC -mcpu=leon3 appeared in gcc 4.8.x - depends on !BR2_sparc_leon3 - # Broken or unsupported X86 cores - depends on !BR2_x86_corei7 && !BR2_x86_jaguar && !BR2_x86_steamroller - # ARM EABIhf support appeared in gcc 4.6 - depends on !BR2_ARM_EABIHF - # Unsupported for MIPS R6 - depends on !BR2_mips_32r6 && !BR2_mips_64r6 - # musl patches only for gcc 4.7+ - depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL - select BR2_GCC_NEEDS_MPC - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 - config BR2_GCC_VERSION_4_7_X bool "gcc 4.7.x" + depends on BR2_DEPRECATED_SINCE_2016_05 # Broken or unsupported architectures depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \ - && !BR2_powerpc64le && !BR2_nios2 + && !BR2_powerpc64le && !BR2_nios2 && !BR2_bfin # Broken or unsupported ARM cores - depends on !BR2_cortex_a12 && !BR2_pj4 + depends on !BR2_cortex_a12 && !BR2_pj4 && !BR2_cortex_a17 # Broken or unsupported PPC cores depends on !BR2_powerpc_e5500 && !BR2_powerpc_e6500 && \ !BR2_powerpc_power8 @@ -61,9 +37,9 @@ choice bool "gcc 4.8.x" # Broken or unsupported architectures depends on !BR2_microblaze && !BR2_arc \ - && !BR2_powerpc64le && !BR2_nios2 + && !BR2_powerpc64le && !BR2_nios2 && !BR2_bfin # Broken or unsupported ARM cores - depends on !BR2_cortex_a12 + depends on !BR2_cortex_a12 && !BR2_cortex_a17 # Broken or unsupported PPC cores depends on !BR2_powerpc_power8 # gcc-4.8.x + binutils-2.25 is broken for MIPS @@ -85,7 +61,9 @@ choice config BR2_GCC_VERSION_4_9_X bool "gcc 4.9.x" # Broken or unsupported architectures - depends on !BR2_arc + depends on !BR2_arc && !BR2_bfin + # Broken or unsupported ARM cores + depends on !BR2_cortex_a17 # Unsupported for MIPS R6 depends on !BR2_mips_32r6 && !BR2_mips_64r6 # PR60102 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60102 @@ -96,25 +74,40 @@ choice config BR2_GCC_VERSION_5_X bool "gcc 5.x" # Broken or unsupported architectures - depends on !BR2_arc + depends on !BR2_arc && !BR2_bfin select BR2_GCC_NEEDS_MPC select BR2_GCC_SUPPORTS_GRAPHITE select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + config BR2_GCC_VERSION_6_X + bool "gcc 6.x" + # Broken or unsupported architectures + depends on !BR2_arc + select BR2_GCC_NEEDS_MPC + select BR2_GCC_SUPPORTS_GRAPHITE + select BR2_TOOLCHAIN_GCC_AT_LEAST_6 + endchoice +# Indicates if GCC for architecture supports --with-{arch,cpu,..} to +# set default CFLAGS, otherwise values will be used by toolchain +# wrapper. +config BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS + bool + default y if !BR2_bfin + config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE bool default y config BR2_GCC_VERSION string - default "4.5.4" if BR2_GCC_VERSION_4_5_X default "4.7.4" if BR2_GCC_VERSION_4_7_X default "4.8.5" if BR2_GCC_VERSION_4_8_X - default "4.9.3" if BR2_GCC_VERSION_4_9_X - default "5.3.0" if BR2_GCC_VERSION_5_X - default "arc-2015.12" if BR2_GCC_VERSION_4_8_ARC + default "4.9.4" if BR2_GCC_VERSION_4_9_X + default "5.4.0" if BR2_GCC_VERSION_5_X + default "6.1.0" if BR2_GCC_VERSION_6_X + default "arc-2016.09-eng010" if BR2_GCC_VERSION_4_8_ARC config BR2_EXTRA_GCC_CONFIG_OPTIONS string "Additional gcc options" @@ -132,8 +125,16 @@ config BR2_TOOLCHAIN_BUILDROOT_CXX C++ language and you want C++ libraries to be installed on your target system. +comment "Fortran support needs a toolchain w/ wchar" + depends on BR2_TOOLCHAIN_HAS_LIBQUADMATH + depends on !BR2_USE_WCHAR # libquadmath + config BR2_TOOLCHAIN_BUILDROOT_FORTRAN bool "Enable Fortran support" + # on architecture building libquadmath, wchar is required + depends on !BR2_TOOLCHAIN_HAS_LIBQUADMATH || \ + (BR2_TOOLCHAIN_HAS_LIBQUADMATH && BR2_USE_WCHAR) + select BR2_TOOLCHAIN_HAS_FORTRAN help Enable this option if you want your toolchain to support the Fortran language and you want Fortran libraries to be @@ -142,7 +143,7 @@ config BR2_TOOLCHAIN_BUILDROOT_FORTRAN config BR2_GCC_ENABLE_TLS bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC default y - depends on BR2_PTHREADS_NATIVE || BR2_TOOLCHAIN_BUILDROOT_EGLIBC || BR2_TOOLCHAIN_BUILDROOT_GLIBC + depends on BR2_PTHREADS_NATIVE || BR2_TOOLCHAIN_BUILDROOT_GLIBC help Enable the compiler to generate code for accessing thread local storage variables @@ -165,8 +166,7 @@ config BR2_GCC_ENABLE_LIBMUDFLAP # There are architectures, or specific configurations for # which mudflap is not supported. depends on !BR2_ARM_INSTRUCTIONS_THUMB && !BR2_powerpc_SPE - depends on !BR2_GCC_VERSION_4_9_X - depends on !BR2_GCC_VERSION_5_X + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 help libmudflap is a gcc library used for the mudflap pointer debugging functionality. It is only needed if you intend to diff --git a/bsp/buildroot/package/gcc/arc-2015.12/851-PR-other-56780.patch b/bsp/buildroot/package/gcc/arc-2015.12/851-PR-other-56780.patch deleted file mode 100644 index feb43392..00000000 --- a/bsp/buildroot/package/gcc/arc-2015.12/851-PR-other-56780.patch +++ /dev/null @@ -1,244 +0,0 @@ -From afe990251bd9b3a063f03da31a3b8d139d033bc3 Mon Sep 17 00:00:00 2001 -From: ian -Date: Sat, 1 Jun 2013 00:20:49 +0000 -Subject: [PATCH] PR other/56780 - -* libiberty/configure.ac: Move test for --enable-install-libiberty -outside of the 'with_target_subdir' test so that it actually gets -run. Add output messages to show the test result. -* libiberty/configure: Regenerate. -* libiberty/Makefile.in (install_to_libdir): Place the -installation of the libiberty library in the same guard as that -used for the headers to prevent it being installed unless -requested via --enable-install-libiberty. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199570 138bc75d-0d04-0410-961f-82ee72b054a4 - -libiberty: fix --enable-install-libiberty flag [PR 56780] - -Commit 199570 fixed the --disable-install-libiberty behavior, but it also -added a bug where the enable path never works because the initial clear -of target_header_dir wasn't deleted. So we end up initializing properly -at the top only to reset it at the end all the time. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4 - -[Romain - squash the two upstream commits - Remove the ChangeLog] -Signed-off-by: Romain Naour ---- - libiberty/Makefile.in | 24 ++++++++++----------- - libiberty/configure | 57 +++++++++++++++++++++++++++----------------------- - libiberty/configure.ac | 47 ++++++++++++++++++++++------------------- - 3 files changed, 68 insertions(+), 60 deletions(-) - -diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in -index f6a3ebd..75ff82d 100644 ---- a/libiberty/Makefile.in -+++ b/libiberty/Makefile.in -@@ -355,19 +355,19 @@ install-strip: install - # since it will be passed the multilib flags. - MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` - install_to_libdir: all -- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR) -- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n -- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ) -- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB) - if test -n "${target_header_dir}"; then \ -- case "${target_header_dir}" in \ -- /*) thd=${target_header_dir};; \ -- *) thd=${includedir}/${target_header_dir};; \ -- esac; \ -- ${mkinstalldirs} $(DESTDIR)$${thd}; \ -- for h in ${INSTALLED_HEADERS}; do \ -- ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \ -- done; \ -+ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ -+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \ -+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \ -+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \ -+ case "${target_header_dir}" in \ -+ /*) thd=${target_header_dir};; \ -+ *) thd=${includedir}/${target_header_dir};; \ -+ esac; \ -+ ${mkinstalldirs} $(DESTDIR)$${thd}; \ -+ for h in ${INSTALLED_HEADERS}; do \ -+ ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \ -+ done; \ - fi - @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install - -diff --git a/libiberty/configure b/libiberty/configure -index 5367027..4feb95a 100755 ---- a/libiberty/configure -+++ b/libiberty/configure -@@ -675,8 +675,8 @@ with_cross_host - with_newlib - enable_maintainer_mode - enable_multilib --enable_largefile - enable_install_libiberty -+enable_largefile - ' - ac_precious_vars='build_alias - host_alias -@@ -1303,8 +1303,8 @@ Optional Features: - enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-multilib build many library versions (default) -+ --enable-install-libiberty Install headers and library for end users - --disable-largefile omit support for large files -- --enable-install-libiberty Install headers for end users - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \ - cross_compiling=maybe - fi - -+# We may wish to install the target headers somewhere. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5 -+$as_echo_n "checking whether to install libiberty headers and static library... " >&6; } -+ -+# Check whether --enable-install-libiberty was given. -+if test "${enable_install_libiberty+set}" = set; then : -+ enableval=$enable_install_libiberty; enable_install_libiberty=$enableval -+else -+ enable_install_libiberty=no -+fi -+ -+# Option parsed, now set things appropriately. -+case x"$enable_install_libiberty" in -+ xyes|x) -+ target_header_dir=libiberty -+ ;; -+ xno) -+ target_header_dir= -+ ;; -+ *) -+ # This could be sanity-checked in various ways... -+ target_header_dir="${enable_install_libiberty}" -+ ;; -+esac -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5 -+$as_echo "$enable_install_libiberty" >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5 -+$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;} -+ - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' -@@ -5476,7 +5505,6 @@ fi - - setobjs= - CHECK= --target_header_dir= - if test -n "${with_target_subdir}"; then - - # We are being configured as a target library. AC_REPLACE_FUNCS -@@ -5759,29 +5787,6 @@ _ACEOF - - esac - -- # We may wish to install the target headers somewhere. -- # Check whether --enable-install-libiberty was given. --if test "${enable_install_libiberty+set}" = set; then : -- enableval=$enable_install_libiberty; enable_install_libiberty=$enableval --else -- enable_install_libiberty=no --fi -- -- # Option parsed, now set things appropriately. -- case x"$enable_install_libiberty" in -- xyes|x) -- target_header_dir=libiberty -- ;; -- xno) -- target_header_dir= -- ;; -- *) -- # This could be sanity-checked in various ways... -- target_header_dir="${enable_install_libiberty}" -- ;; -- esac -- -- - else - - # Not a target library, so we set things up to run the test suite. -diff --git a/libiberty/configure.ac b/libiberty/configure.ac -index c763894..f17e6b6 100644 ---- a/libiberty/configure.ac -+++ b/libiberty/configure.ac -@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \ - cross_compiling=maybe - fi - -+# We may wish to install the target headers somewhere. -+AC_MSG_CHECKING([whether to install libiberty headers and static library]) -+dnl install-libiberty is disabled by default -+ -+AC_ARG_ENABLE(install-libiberty, -+[ --enable-install-libiberty Install headers and library for end users], -+enable_install_libiberty=$enableval, -+enable_install_libiberty=no)dnl -+ -+# Option parsed, now set things appropriately. -+case x"$enable_install_libiberty" in -+ xyes|x) -+ target_header_dir=libiberty -+ ;; -+ xno) -+ target_header_dir= -+ ;; -+ *) -+ # This could be sanity-checked in various ways... -+ target_header_dir="${enable_install_libiberty}" -+ ;; -+esac -+AC_MSG_RESULT($enable_install_libiberty) -+AC_MSG_NOTICE([target_header_dir = $target_header_dir]) -+ - GCC_NO_EXECUTABLES - AC_PROG_CC - AC_SYS_LARGEFILE -@@ -380,7 +405,6 @@ fi - - setobjs= - CHECK= --target_header_dir= - if test -n "${with_target_subdir}"; then - - # We are being configured as a target library. AC_REPLACE_FUNCS -@@ -492,27 +516,6 @@ if test -n "${with_target_subdir}"; then - - esac - -- # We may wish to install the target headers somewhere. -- AC_ARG_ENABLE(install-libiberty, -- [ --enable-install-libiberty Install headers for end users], -- enable_install_libiberty=$enableval, -- enable_install_libiberty=no)dnl -- -- # Option parsed, now set things appropriately. -- case x"$enable_install_libiberty" in -- xyes|x) -- target_header_dir=libiberty -- ;; -- xno) -- target_header_dir= -- ;; -- *) -- # This could be sanity-checked in various ways... -- target_header_dir="${enable_install_libiberty}" -- ;; -- esac -- -- - else - - # Not a target library, so we set things up to run the test suite. --- -1.9.3 - diff --git a/bsp/buildroot/package/gcc/arc-2015.12/900-UPDATE-Fix-handling-complex-PIC-moves.patch b/bsp/buildroot/package/gcc/arc-2015.12/900-UPDATE-Fix-handling-complex-PIC-moves.patch deleted file mode 100644 index 48228dcb..00000000 --- a/bsp/buildroot/package/gcc/arc-2015.12/900-UPDATE-Fix-handling-complex-PIC-moves.patch +++ /dev/null @@ -1,103 +0,0 @@ -From b55922d45fd16f5e8fc7c3885da42b2b9b37754d Mon Sep 17 00:00:00 2001 -From: Claudiu Zissulescu -Date: Mon, 18 Jan 2016 16:43:18 +0100 -Subject: [PATCH] UPDATE: Fix handling complex PIC moves. - -fwprop is putting in the REG_EQUIV notes which are involving the -constant pic unspecs. Then, loop may use those notes for -optimizations rezulting in complex patterns that are not supported by -the current implementation. The following piece of code tries to -convert the complex instruction in simpler ones. - -The fix is done in development tree: [arc-4.8-dev b55922d] -and will be a part of the next release of ARC GNU tools. -Once that new release happens this patch must be removed. - - -gcc/ -2016-01-18 Claudiu Zissulescu - - * config/arc/arc.c (arc_legitimize_pic_address): Handle MINUS - operations when doing PIC moves. Make this function static. - (arc_legitimate_pc_offset_p): Use - arc_raw_symbolic_reference_mentioned_p. - * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove. - - gcc/config/arc/arc-protos.h | 1 - - gcc/config/arc/arc.c | 33 +++++++++++++++++++-------------- - 2 files changed, 19 insertions(+), 15 deletions(-) - - * config/arc/arc.c (arc_legitimize_pic_address): Handle complex -diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h -index 464e0ab..5986e06 100644 ---- a/gcc/config/arc/arc-protos.h -+++ b/gcc/config/arc/arc-protos.h -@@ -53,7 +53,6 @@ extern unsigned int arc_compute_frame_size (); - extern bool arc_ccfsm_branch_deleted_p (void); - extern void arc_ccfsm_record_branch_deleted (void); - --extern rtx arc_legitimize_pic_address (rtx, rtx); - void arc_asm_output_aligned_decl_local (FILE *, tree, const char *, - unsigned HOST_WIDE_INT, - unsigned HOST_WIDE_INT, -diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c -index a89c8ee..f7cae9f 100644 ---- a/gcc/config/arc/arc.c -+++ b/gcc/config/arc/arc.c -@@ -5243,19 +5243,7 @@ arc_legitimate_pc_offset_p (rtx addr) - if (GET_CODE (addr) != CONST) - return false; - addr = XEXP (addr, 0); -- if (GET_CODE (addr) == PLUS) -- { -- if (GET_CODE (XEXP (addr, 1)) != CONST_INT) -- return false; -- addr = XEXP (addr, 0); -- } -- return (GET_CODE (addr) == UNSPEC -- && XVECLEN (addr, 0) == 1 -- && (XINT (addr, 1) == ARC_UNSPEC_GOT -- || XINT (addr, 1) == ARC_UNSPEC_GOTOFFPC -- || XINT (addr, 1) == UNSPEC_TLS_GD -- || XINT (addr, 1) == UNSPEC_TLS_IE) -- && GET_CODE (XVECEXP (addr, 0, 0)) == SYMBOL_REF); -+ return flag_pic && !arc_raw_symbolic_reference_mentioned_p (addr, false); - } - - /* Return true if ADDR is a valid pic address. -@@ -5522,7 +5510,7 @@ arc_legitimize_tls_address (rtx addr, enum tls_model model) - The return value is the legitimated address. - If OLDX is non-zero, it is the target to assign the address to first. */ - --rtx -+static rtx - arc_legitimize_pic_address (rtx orig, rtx oldx) - { - rtx addr = orig; -@@ -5569,6 +5557,23 @@ arc_legitimize_pic_address (rtx orig, rtx oldx) - /* Check that the unspec is one of the ones we generate? */ - return orig; - } -+ else if (GET_CODE (addr) == MINUS) -+ { -+ /* The same story with fwprop. */ -+ rtx op0 = XEXP (addr, 0); -+ rtx op1 = XEXP (addr, 1); -+ gcc_assert (oldx); -+ gcc_assert (GET_CODE (op1) == UNSPEC); -+ -+ emit_move_insn (oldx, -+ gen_rtx_CONST (SImode, -+ arc_legitimize_pic_address (op1, -+ NULL_RTX))); -+ emit_insn (gen_rtx_SET (VOIDmode, oldx, -+ gen_rtx_MINUS (SImode, op0, oldx))); -+ return oldx; -+ -+ } - else if (GET_CODE (addr) != PLUS) - { - /* fwprop is putting in the REG_EQUIV notes which are --- -2.5.0 - diff --git a/bsp/buildroot/package/gcc/arc-2015.12/901-UPDATE1-Fix-handling-complex-PIC-moves.patch b/bsp/buildroot/package/gcc/arc-2015.12/901-UPDATE1-Fix-handling-complex-PIC-moves.patch deleted file mode 100644 index 28cb7c19..00000000 --- a/bsp/buildroot/package/gcc/arc-2015.12/901-UPDATE1-Fix-handling-complex-PIC-moves.patch +++ /dev/null @@ -1,83 +0,0 @@ -From f00b0f17d6889d811468c2c77508fbea8bfc377d Mon Sep 17 00:00:00 2001 -From: Claudiu Zissulescu -Date: Tue, 19 Jan 2016 14:40:16 +0100 -Subject: [PATCH] UPDATE1: Fix handling complex PIC moves. - -The arc_legitimate_pc_offset_p condition is too lax. Updated it. - -The fix is done in development tree: [arc-4.8-dev f00b0f1] -and will be a part of the next release of ARC GNU tools. -Once that new release happens this patch must be removed. - -gcc/ -2016-01-18 Claudiu Zissulescu - - * config/arc/arc.c (arc_needs_pcl_p ): New function - (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p. ---- - gcc/config/arc/arc.c | 42 ++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 40 insertions(+), 2 deletions(-) - -diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c -index f7cae9f..18d88a3 100644 ---- a/gcc/config/arc/arc.c -+++ b/gcc/config/arc/arc.c -@@ -5234,6 +5234,45 @@ arc_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED, - } - } - -+/* Helper used by arc_legitimate_pc_offset_p. */ -+ -+static bool -+arc_needs_pcl_p (rtx x) -+{ -+ register const char *fmt; -+ register int i, j; -+ -+ if ((GET_CODE (x) == UNSPEC) -+ && (XVECLEN (x, 0) == 1) -+ && (GET_CODE (XVECEXP (x, 0, 0)) == SYMBOL_REF)) -+ switch (XINT (x, 1)) -+ { -+ case ARC_UNSPEC_GOT: -+ case ARC_UNSPEC_GOTOFFPC: -+ case UNSPEC_TLS_GD: -+ case UNSPEC_TLS_IE: -+ return true; -+ default: -+ break; -+ } -+ -+ fmt = GET_RTX_FORMAT (GET_CODE (x)); -+ for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) -+ { -+ if (fmt[i] == 'e') -+ { -+ if (arc_needs_pcl_p (XEXP (x, i))) -+ return true; -+ } -+ else if (fmt[i] == 'E') -+ for (j = XVECLEN (x, i) - 1; j >= 0; j--) -+ if (arc_needs_pcl_p (XVECEXP (x, i, j))) -+ return true; -+ } -+ -+ return false; -+} -+ - /* Return true if ADDR is an address that needs to be expressed as an - explicit sum of pcl + offset. */ - -@@ -5242,8 +5281,7 @@ arc_legitimate_pc_offset_p (rtx addr) - { - if (GET_CODE (addr) != CONST) - return false; -- addr = XEXP (addr, 0); -- return flag_pic && !arc_raw_symbolic_reference_mentioned_p (addr, false); -+ return arc_needs_pcl_p (addr); - } - - /* Return true if ADDR is a valid pic address. --- -2.5.0 - diff --git a/bsp/buildroot/package/gcc/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch b/bsp/buildroot/package/gcc/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch deleted file mode 100644 index dc03a028..00000000 --- a/bsp/buildroot/package/gcc/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 09463827001a7b8094f4b9460514370a1876d908 Mon Sep 17 00:00:00 2001 -From: Claudiu Zissulescu -Date: Wed, 20 Jan 2016 16:32:40 +0100 -Subject: [PATCH] Don't allow mcompact-casesi for ARCv2 - -The compact casesi is not working for arcv2 processors family as it -makes use of the add_s rx,rx,pcl instruction which is only valid for -arc6xx and arc700 processors. Also not having this instruction makes -no much sens to change the compact-casesi pattern to use normal add -instructions as it nullifies the advantage of short instruction use. -The default casesi pattern betters suits the arcv2 architecture. - -The fix is done in development tree: [arc-4.8-dev 0946382] -and will be a part of the next release of ARC GNU tools. -Once that new release happens this patch must be removed. - -gcc/ -2016-01-20 Claudiu Zissulescu - - * common/config/arc/arc-common.c (arc_option_optimization_table): - Remove mcompact-casesi option. - * config/arc/arc.c (arc_override_options): Use compact-casesi only - for arcv1. - * config/arc/arc.md (casesi_load): Use short instructions. ---- - gcc/common/config/arc/arc-common.c | 1 - - gcc/config/arc/arc.c | 9 +++++---- - gcc/config/arc/arc.md | 10 ++++++++-- - 3 files changed, 13 insertions(+), 7 deletions(-) - - * config/arc/arc.c (arc_legitimize_pic_address): Handle MINUS -diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c -index e2e36fa..310bc80 100644 ---- a/gcc/common/config/arc/arc-common.c -+++ b/gcc/common/config/arc/arc-common.c -@@ -58,7 +58,6 @@ static const struct default_options arc_option_optimization_table[] = - { OPT_LEVELS_ALL, OPT_mbbit_peephole, NULL, 1 }, - { OPT_LEVELS_SIZE, OPT_mq_class, NULL, 1 }, - { OPT_LEVELS_SIZE, OPT_mcase_vector_pcrel, NULL, 1 }, -- { OPT_LEVELS_SIZE, OPT_mcompact_casesi, NULL, 1 }, - { OPT_LEVELS_NONE, 0, NULL, 0 } - }; - -diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c -index 18d88a3..f828398 100644 ---- a/gcc/config/arc/arc.c -+++ b/gcc/config/arc/arc.c -@@ -1151,6 +1151,11 @@ arc_override_options (void) - if (arc_size_opt_level == 3) - optimize_size = 1; - -+ if (TARGET_V2) -+ TARGET_COMPACT_CASESI = 0; -+ else if (optimize_size == 1) -+ TARGET_COMPACT_CASESI = 1; -+ - if (flag_pic) - target_flags |= MASK_NO_SDATA_SET; - -@@ -1163,10 +1168,6 @@ arc_override_options (void) - if (!TARGET_Q_CLASS) - TARGET_COMPACT_CASESI = 0; - -- /* For the time being don't support COMPACT_CASESI for ARCv2. */ -- if (TARGET_V2) -- TARGET_COMPACT_CASESI = 0; -- - if (TARGET_COMPACT_CASESI) - TARGET_CASE_VECTOR_PC_RELATIVE = 1; - -diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md -index bc4ac38..ba7c8bc 100644 ---- a/gcc/config/arc/arc.md -+++ b/gcc/config/arc/arc.md -@@ -3837,14 +3837,20 @@ - switch (GET_MODE (diff_vec)) - { - case SImode: -- return \"ld.as %0,[%1,%2]%&\"; -+ if ((which_alternative == 0) && TARGET_CODE_DENSITY) -+ return \"ld_s.as %0,[%1,%2]%&\"; -+ else -+ return \"ld.as %0,[%1,%2]%&\"; - case HImode: - if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned) - return \"ldw.as %0,[%1,%2]\"; - return \"ldw.x.as %0,[%1,%2]\"; - case QImode: - if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned) -- return \"ldb%? %0,[%1,%2]%&\"; -+ if (which_alternative == 0) -+ return \"ldb_s %0,[%1,%2]%&\"; -+ else -+ return \"ldb %0,[%1,%2]%&\"; - return \"ldb.x %0,[%1,%2]\"; - default: - gcc_unreachable (); --- -2.5.0 - diff --git a/bsp/buildroot/package/gcc/arc-2016.09-eng010/301-missing-execinfo_h.patch b/bsp/buildroot/package/gcc/arc-2016.09-eng010/301-missing-execinfo_h.patch new file mode 100644 index 00000000..2d0e7baa --- /dev/null +++ b/bsp/buildroot/package/gcc/arc-2016.09-eng010/301-missing-execinfo_h.patch @@ -0,0 +1,13 @@ +Index: b/boehm-gc/include/gc.h +=================================================================== +--- a/boehm-gc/include/gc.h ++++ b/boehm-gc/include/gc.h +@@ -503,7 +503,7 @@ + #if defined(__linux__) || defined(__GLIBC__) + # include + # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ +- && !defined(__ia64__) ++ && !defined(__ia64__) && !defined(__UCLIBC__) + # ifndef GC_HAVE_BUILTIN_BACKTRACE + # define GC_HAVE_BUILTIN_BACKTRACE + # endif diff --git a/bsp/buildroot/package/gcc/arc-2016.09-eng010/860-cilk-wchar.patch b/bsp/buildroot/package/gcc/arc-2016.09-eng010/860-cilk-wchar.patch new file mode 100644 index 00000000..1d9916f5 --- /dev/null +++ b/bsp/buildroot/package/gcc/arc-2016.09-eng010/860-cilk-wchar.patch @@ -0,0 +1,56 @@ +[PATCH] cilk: fix build without wchar + +When building against uClibc with wchar support disabled, WCHAR_MIN and +WCHAR_MAX are not defined leading to compilation errors. + +Fix it by only including the wchar code if available. + +Signed-off-by: Peter Korsgaard +--- + libcilkrts/include/cilk/reducer_min_max.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +Index: b/libcilkrts/include/cilk/reducer_min_max.h +=================================================================== +--- a/libcilkrts/include/cilk/reducer_min_max.h ++++ b/libcilkrts/include/cilk/reducer_min_max.h +@@ -3154,7 +3154,9 @@ + CILK_C_REDUCER_MAX_INSTANCE(char, char, CHAR_MIN) + CILK_C_REDUCER_MAX_INSTANCE(unsigned char, uchar, 0) + CILK_C_REDUCER_MAX_INSTANCE(signed char, schar, SCHAR_MIN) ++#ifdef WCHAR_MIN + CILK_C_REDUCER_MAX_INSTANCE(wchar_t, wchar_t, WCHAR_MIN) ++#endif + CILK_C_REDUCER_MAX_INSTANCE(short, short, SHRT_MIN) + CILK_C_REDUCER_MAX_INSTANCE(unsigned short, ushort, 0) + CILK_C_REDUCER_MAX_INSTANCE(int, int, INT_MIN) +@@ -3306,7 +3308,9 @@ + CILK_C_REDUCER_MAX_INDEX_INSTANCE(char, char, CHAR_MIN) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned char, uchar, 0) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(signed char, schar, SCHAR_MIN) ++#ifdef WCHAR_MIN + CILK_C_REDUCER_MAX_INDEX_INSTANCE(wchar_t, wchar_t, WCHAR_MIN) ++#endif + CILK_C_REDUCER_MAX_INDEX_INSTANCE(short, short, SHRT_MIN) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned short, ushort, 0) + CILK_C_REDUCER_MAX_INDEX_INSTANCE(int, int, INT_MIN) +@@ -3432,7 +3436,9 @@ + CILK_C_REDUCER_MIN_INSTANCE(char, char, CHAR_MAX) + CILK_C_REDUCER_MIN_INSTANCE(unsigned char, uchar, CHAR_MAX) + CILK_C_REDUCER_MIN_INSTANCE(signed char, schar, SCHAR_MAX) ++#ifdef WCHAR_MAX + CILK_C_REDUCER_MIN_INSTANCE(wchar_t, wchar_t, WCHAR_MAX) ++#endif + CILK_C_REDUCER_MIN_INSTANCE(short, short, SHRT_MAX) + CILK_C_REDUCER_MIN_INSTANCE(unsigned short, ushort, USHRT_MAX) + CILK_C_REDUCER_MIN_INSTANCE(int, int, INT_MAX) +@@ -3584,7 +3590,9 @@ + CILK_C_REDUCER_MIN_INDEX_INSTANCE(char, char, CHAR_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned char, uchar, CHAR_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(signed char, schar, SCHAR_MAX) ++#ifdef WCHAR_MAX + CILK_C_REDUCER_MIN_INDEX_INSTANCE(wchar_t, wchar_t, WCHAR_MAX) ++#endif + CILK_C_REDUCER_MIN_INDEX_INSTANCE(short, short, SHRT_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned short, ushort, USHRT_MAX) + CILK_C_REDUCER_MIN_INDEX_INSTANCE(int, int, INT_MAX) diff --git a/bsp/buildroot/package/gcc/arc-2016.09-eng010/940-uclinux-enable-threads.patch b/bsp/buildroot/package/gcc/arc-2016.09-eng010/940-uclinux-enable-threads.patch new file mode 100644 index 00000000..55326567 --- /dev/null +++ b/bsp/buildroot/package/gcc/arc-2016.09-eng010/940-uclinux-enable-threads.patch @@ -0,0 +1,19 @@ +Enable POSIX threads for uClinux targets +Reported upstream: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur gcc-6.1.0.orig/gcc/config.gcc gcc-6.1.0/gcc/config.gcc +--- gcc-6.1.0.orig/gcc/config.gcc 2016-04-11 12:14:59.000000000 +0200 ++++ gcc-6.1.0/gcc/config.gcc 2016-07-02 20:04:25.732169982 +0200 +@@ -833,6 +833,9 @@ + *-*-uclinux*) + extra_options="$extra_options gnu-user.opt" + use_gcc_stdint=wrap ++ case ${enable_threads} in ++ "" | yes | posix) thread_file='posix' ;; ++ esac + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" + ;; + *-*-rdos*) diff --git a/bsp/buildroot/package/gcc/gcc-final/gcc-final.mk b/bsp/buildroot/package/gcc/gcc-final/gcc-final.mk index dbdb6158..eea2f74b 100644 --- a/bsp/buildroot/package/gcc/gcc-final/gcc-final.mk +++ b/bsp/buildroot/package/gcc/gcc-final/gcc-final.mk @@ -74,6 +74,10 @@ HOST_GCC_FINAL_CONF_OPTS += "--with-multilib-list=m4a,m4a-nofpu" HOST_GCC_FINAL_GCC_LIB_DIR = $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib/!m4* endif +ifeq ($(BR2_bfin),y) +HOST_GCC_FINAL_CONF_OPTS += --disable-symvers +endif + # Disable shared libs like libstdc++ if we do static since it confuses linking ifeq ($(BR2_STATIC_LIBS),y) HOST_GCC_FINAL_CONF_OPTS += --disable-shared @@ -113,9 +117,9 @@ HOST_GCC_FINAL_POST_BUILD_HOOKS += TOOLCHAIN_BUILD_WRAPPER # -cc symlink to the wrapper is not created. HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS -# In gcc 4.7.x, the ARM EABIhf library loader path for (e)glibc was not +# In gcc 4.7.x, the ARM EABIhf library loader path for glibc was not # correct, so we create a symbolic link to make things work -# properly. eglibc installs the library loader as ld-linux-armhf.so.3, +# properly. glibc installs the library loader as ld-linux-armhf.so.3, # but gcc creates binaries that reference ld-linux.so.3. ifeq ($(BR2_arm)$(BR2_ARM_EABIHF)$(BR2_GCC_VERSION_4_7_X)$(BR2_TOOLCHAIN_USES_GLIBC),yyyy) define HOST_GCC_FINAL_LD_LINUX_LINK @@ -125,6 +129,15 @@ endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_LD_LINUX_LINK endif +# coldfire is not working without removing these object files from libgcc.a +ifeq ($(BR2_m68k_cf),y) +define HOST_GCC_FINAL_M68K_LIBGCC_FIXUP + find $(STAGING_DIR) -name libgcc.a -print | \ + while read t; do $(GNU_TARGET_NAME)-ar dv "$t" _ctors.o; done +endef +HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_M68K_LIBGCC_FIXUP +endif + # Cannot use the HOST_GCC_FINAL_USR_LIBS mechanism below, because we want # libgcc_s to be installed in /lib and not /usr/lib. define HOST_GCC_FINAL_INSTALL_LIBGCC @@ -154,6 +167,10 @@ endif ifeq ($(BR2_TOOLCHAIN_BUILDROOT_FORTRAN),y) HOST_GCC_FINAL_USR_LIBS += libgfortran +# fortran needs quadmath on x86 and x86_64 +ifeq ($(BR2_TOOLCHAIN_HAS_LIBQUADMATH),y) +HOST_GCC_FINAL_USR_LIBS += libquadmath +endif endif ifeq ($(BR2_GCC_ENABLE_OPENMP),y) @@ -195,8 +212,4 @@ endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_USR_LIBS endif -ifeq ($(BR2_xtensa),y) -HOST_GCC_FINAL_CONF_OPTS += --enable-cxx-flags="$(TARGET_ABI)" -endif - $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/gcc/gcc.hash b/bsp/buildroot/package/gcc/gcc.hash index 0ef4e65f..2e115516 100644 --- a/bsp/buildroot/package/gcc/gcc.hash +++ b/bsp/buildroot/package/gcc/gcc.hash @@ -4,9 +4,12 @@ sha512 78696b287d46aacd6f150920da376ea32f58ad9f0dafd2d3b7fa6dbdd8dd7afe659108d1 sha512 dfcb737073191e628231031a3571ec77ee760a59377630f4a6e4fdfa66f9ddad39fde47e3f0f227eb43cdf90e0d34cde5abdc9ac892c1e111a911062a66c9189 gcc-4.7.4.tar.bz2 # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.5/sha512.sum sha512 47fdfeca0c0a624cdec9c4ae47137d056c918d5c386d4b96985bb3c8172aba377cb66cbcc30e80832fd244a7d98f562c20198056915c70cfef0977545073a8ea gcc-4.8.5.tar.bz2 -# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.3/sha512.sum -sha512 9ac57377a6975fc7adac704ec81355262b9f537def6955576753b87715470a20ee6a2a3144a79cc8fcba3443f7b44c7337d79d704b522d053f54f79aa6b442df gcc-4.9.3.tar.bz2 -# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-5.3.0/sha512.sum -sha512 d619847383405fd389f5a2d7225f97fedb01f81478dbb8339047ccba7561a5c20045ab500a8744bffd19ea51892ce09fc37f862f2cfcb42de0f0f8cd8f8da37a gcc-5.3.0.tar.bz2 -# No hash for the ARC variant, comes from the github-helper: -none xxx gcc-arc-2015.12.tar.gz +# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.4/sha512.sum +sha512 93abb78e16277454f41a8e9810f41f66c0fdffdc539a762ff6b67d3037f78db971378683fd2ebf707d1d51c059fad2161fe42d110c330027f40214b7db0f3efe gcc-4.9.4.tar.bz2 +# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-5.4.0/sha512.sum +sha512 2941cc950c8f2409a314df497631f9b0266211aa74746c1839c46e04f1c7c299afe2528d1ef16ea39def408a644ba48f97519ec7a7dd37d260c3e9423514265b gcc-5.4.0.tar.bz2 +# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-6.1.0/sha512.sum +sha512 eeed3e2018b8c012aabce419e8d718fde701e5c3c179b4486c61ba46e5736eecc8fccdd18b01fcd973a42c6ad3116dbbe2ee247fe3757d622d373f93ebaf8d2e gcc-6.1.0.tar.bz2 + +# Locally calculated (fetched from Github) +sha512 a788737022c178a1e7704e4ecd3438937f2239bf27fd487db2b00e4bb5c6604535842e4d6798f120488bdbf0b226fa9c94f4b8aede4ce9d20b0add6bcec82927 gcc-arc-2016.09-eng010.tar.gz diff --git a/bsp/buildroot/package/gcc/gcc.mk b/bsp/buildroot/package/gcc/gcc.mk index 07883d07..032015c6 100644 --- a/bsp/buildroot/package/gcc/gcc.mk +++ b/bsp/buildroot/package/gcc/gcc.mk @@ -41,10 +41,18 @@ endef endif endif +# gcc is a special package, not named gcc, but gcc-initial and +# gcc-final, but patches are nonetheless stored in package/gcc in the +# tree, and potentially in BR2_GLOBAL_PATCH_DIR directories as well. define HOST_GCC_APPLY_PATCHES - if test -d package/gcc/$(GCC_VERSION); then \ - $(APPLY_PATCHES) $(@D) package/gcc/$(GCC_VERSION) \*.patch ; \ - fi; + for patchdir in \ + package/gcc/$(GCC_VERSION) \ + $(addsuffix /gcc/$(GCC_VERSION),$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \ + $(addsuffix /gcc,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) ; do \ + if test -d $${patchdir}; then \ + $(APPLY_PATCHES) $(@D) $${patchdir} \*.patch || exit 1; \ + fi; \ + done $(HOST_GCC_APPLY_POWERPC_PATCH) endef @@ -97,22 +105,6 @@ HOST_GCC_COMMON_CONF_ENV = \ GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS) GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810 -# Workaround until it's fixed in 4.5.4 or later -ifeq ($(ARCH),powerpc) -ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.) -GCC_COMMON_TARGET_CFLAGS = $(filter-out -Os,$(GCC_COMMON_TARGET_CFLAGS)) -GCC_COMMON_TARGET_CXXFLAGS = $(filter-out -Os,$(GCC_COMMON_TARGET_CXXFLAGS)) -endif -endif - -# Xtensa libgcc can't be built with -mauto-litpools -# because of the trick used to generate .init/.fini sections. -ifeq ($(BR2_xtensa),y) -GCC_COMMON_TARGET_CFLAGS = $(filter-out -mauto-litpools,$(TARGET_CFLAGS)) -GCC_COMMON_TARGET_CXXFLAGS = $(filter-out -mauto-litpools,$(TARGET_CXXFLAGS)) -endif - # Propagate options used for target software building to GCC target libs HOST_GCC_COMMON_CONF_ENV += CFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CFLAGS)" HOST_GCC_COMMON_CONF_ENV += CXXFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS)" @@ -122,8 +114,10 @@ ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) HOST_GCC_COMMON_CONF_OPTS += --disable-libitm endif -# gcc 4.6.x quadmath requires wchar -ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y) +# quadmath support requires wchar +ifeq ($(BR2_USE_WCHAR)$(BR2_TOOLCHAIN_HAS_LIBQUADMATH),yy) +HOST_GCC_COMMON_CONF_OPTS += --enable-libquadmath +else HOST_GCC_COMMON_CONF_OPTS += --disable-libquadmath endif @@ -199,6 +193,7 @@ HOST_GCC_COMMON_CONF_OPTS += --disable-decimal-float endif # Determine arch/tune/abi/cpu options +ifeq ($(BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS),y) ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),) HOST_GCC_COMMON_CONF_OPTS += --with-arch=$(BR2_GCC_TARGET_ARCH) endif @@ -227,6 +222,7 @@ GCC_TARGET_MODE = $(call qstrip,$(BR2_GCC_TARGET_MODE)) ifneq ($(GCC_TARGET_MODE),) HOST_GCC_COMMON_CONF_OPTS += --with-mode=$(GCC_TARGET_MODE) endif +endif # BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS # Enable proper double/long double for SPE ABI ifeq ($(BR2_powerpc_SPE),y) @@ -236,6 +232,37 @@ HOST_GCC_COMMON_CONF_OPTS += \ endif HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CROSS_PATH_SUFFIX='".br_real"' +ifeq ($(BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS),) +ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),) +HOST_GCC_COMMON_WRAPPER_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)) +else +HOST_GCC_COMMON_WRAPPER_TARGET_CPU := $(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION)) +endif +HOST_GCC_COMMON_WRAPPER_TARGET_ARCH := $(call qstrip,$(BR2_GCC_TARGET_ARCH)) +HOST_GCC_COMMON_WRAPPER_TARGET_ABI := $(call qstrip,$(BR2_GCC_TARGET_ABI)) +HOST_GCC_COMMON_WRAPPER_TARGET_FPU := $(call qstrip,$(BR2_GCC_TARGET_FPU)) +HOST_GCC_COMMON_WRAPPER_TARGET_FLOAT_ABI := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI)) +HOST_GCC_COMMON_WRAPPER_TARGET_MODE := $(call qstrip,$(BR2_GCC_TARGET_MODE)) + +ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_ARCH),) +HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(HOST_GCC_COMMON_WRAPPER_TARGET_ARCH)"' +endif +ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_CPU),) +HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(HOST_GCC_COMMON_WRAPPER_TARGET_CPU)"' +endif +ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_ABI),) +HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(HOST_GCC_COMMON_WRAPPER_TARGET_ABI)"' +endif +ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_FPU),) +HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(HOST_GCC_COMMON_WRAPPER_TARGET_FPU)"' +endif +ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_FLOATABI_),) +HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(HOST_GCC_COMMON_WRAPPER_TARGET_FLOATABI_)"' +endif +ifneq ($(HOST_GCC_COMMON_WRAPPER_TARGET_MODE),) +HOST_GCC_COMMON_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(HOST_GCC_COMMON_WRAPPER_TARGET_MODE)"' +endif +endif # !BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS # For gcc-initial, we need to tell gcc that the C library will be # providing the ssp support, as it can't guess it since the C library @@ -249,13 +276,19 @@ HOST_GCC_COMMON_MAKE_OPTS = \ ifeq ($(BR2_CCACHE),y) HOST_GCC_COMMON_CCACHE_HASH_FILES += $(DL_DIR)/$(GCC_SOURCE) -# Cfr. PATCH_BASE_DIRS in .stamp_patched, but we catch both versioned and -# unversioned patches unconditionally + +# Cfr. PATCH_BASE_DIRS in .stamp_patched, but we catch both versioned +# and unversioned patches unconditionally. Moreover, to facilitate the +# addition of gcc patches in BR2_GLOBAL_PATCH_DIR, we allow them to be +# stored in a sub-directory called 'gcc' even if it's not technically +# the name of the package. HOST_GCC_COMMON_CCACHE_HASH_FILES += \ $(sort $(wildcard \ package/gcc/$(GCC_VERSION)/*.patch \ - $(addsuffix $((PKG)_RAWNAME)/$(GCC_VERSION)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \ - $(addsuffix $((PKG)_RAWNAME)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))))) + $(addsuffix /$($(PKG)_RAWNAME)/$(GCC_VERSION)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \ + $(addsuffix /$($(PKG)_RAWNAME)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \ + $(addsuffix /gcc/$(GCC_VERSION)/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))) \ + $(addsuffix /gcc/*.patch,$(call qstrip,$(BR2_GLOBAL_PATCH_DIR))))) ifeq ($(BR2_xtensa),y) HOST_GCC_COMMON_CCACHE_HASH_FILES += $(HOST_GCC_XTENSA_OVERLAY_TAR) endif @@ -281,6 +314,8 @@ endif # BR2_CCACHE # used. However, we should not add the toolchain wrapper for them, and they # match the *cc-* pattern. Therefore, an additional case is added for *-ar, # *-ranlib and *-nm. +# According to gfortran manpage, it supports all options supported by gcc, so +# add gfortran to the list of the program called via the Buildroot wrapper. # Avoid that a .br_real is symlinked a second time. # Also create -linux- symlinks. define HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS @@ -292,7 +327,7 @@ define HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS *-ar|*-ranlib|*-nm) \ ln -snf $$i $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \ ;; \ - *cc|*cc-*|*++|*++-*|*cpp) \ + *cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \ rm -f $$i.br_real; \ mv $$i $$i.br_real; \ ln -sf toolchain-wrapper $$i; \ diff --git a/bsp/buildroot/package/gcr/Config.in b/bsp/buildroot/package/gcr/Config.in index cd40ca18..e233fffe 100644 --- a/bsp/buildroot/package/gcr/Config.in +++ b/bsp/buildroot/package/gcr/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_GCR bool "gcr" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # gnupg2 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 diff --git a/bsp/buildroot/package/gcr/gcr.hash b/bsp/buildroot/package/gcr/gcr.hash index 8f1f931c..8b8b748b 100644 --- a/bsp/buildroot/package/gcr/gcr.hash +++ b/bsp/buildroot/package/gcr/gcr.hash @@ -1,2 +1,2 @@ -# From http://ftp.acc.umu.se/pub/gnome/sources/gcr/3.18/gcr-3.18.0.sha256sum -sha256 d4d16da5af55148a694055835ccd07ad34daf0ad03bdad929bf7cad15637ce00 gcr-3.18.0.tar.xz +# From http://ftp.acc.umu.se/pub/gnome/sources/gcr/3.20/gcr-3.20.0.sha256sum +sha256 90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379 gcr-3.20.0.tar.xz diff --git a/bsp/buildroot/package/gcr/gcr.mk b/bsp/buildroot/package/gcr/gcr.mk index a89f874f..d8cb667d 100644 --- a/bsp/buildroot/package/gcr/gcr.mk +++ b/bsp/buildroot/package/gcr/gcr.mk @@ -4,7 +4,7 @@ # ################################################################################ -GCR_VERSION_MAJOR = 3.18 +GCR_VERSION_MAJOR = 3.20 GCR_VERSION = $(GCR_VERSION_MAJOR).0 GCR_SITE = http://ftp.acc.umu.se/pub/gnome/sources/gcr/$(GCR_VERSION_MAJOR) GCR_SOURCE = gcr-$(GCR_VERSION).tar.xz diff --git a/bsp/buildroot/package/gd/0003-gd_bmp-fix-build-with-uClibc.patch b/bsp/buildroot/package/gd/0002-gd_bmp-fix-build-with-uClibc.patch similarity index 100% rename from bsp/buildroot/package/gd/0003-gd_bmp-fix-build-with-uClibc.patch rename to bsp/buildroot/package/gd/0002-gd_bmp-fix-build-with-uClibc.patch diff --git a/bsp/buildroot/package/gd/0002-no-zlib.patch b/bsp/buildroot/package/gd/0002-no-zlib.patch deleted file mode 100644 index 65cf7f8f..00000000 --- a/bsp/buildroot/package/gd/0002-no-zlib.patch +++ /dev/null @@ -1,51 +0,0 @@ -[PATCH] gd_gd2: provide dummy implementations for all public symbols when !zlib - -gd_gd2.c only provides dummy implementations for some of it's public symbols -when zlib isn't found, causing build failures in several of the tools. - -Fix it by providing dummy implementations for all of them. - -Signed-off-by: Peter Korsgaard ---- - gd_gd2.c | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - -Index: gd-2.0.35/gd_gd2.c -=================================================================== ---- gd-2.0.35.orig/src/gd_gd2.c -+++ gd-2.0.35/src/gd_gd2.c -@@ -1068,4 +1068,34 @@ - fprintf (stderr, "GD2 support is not available - no libz\n"); - return NULL; - } -+ -+BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2Part (FILE * inFile, int srcx, int srcy, int w, int h) -+{ -+ fprintf (stderr, "GD2 support is not available - no libz\n"); -+ return NULL; -+} -+ -+BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2PartPtr (int size, void *data, int srcx, int srcy, int w, -+ int h) -+{ -+ fprintf (stderr, "GD2 support is not available - no libz\n"); -+ return NULL; -+} -+ -+BGD_DECLARE(gdImagePtr) gdImageCreateFromGd2PartCtx (gdIOCtx * in, int srcx, int srcy, int w, int h) -+{ -+ fprintf (stderr, "GD2 support is not available - no libz\n"); -+ return NULL; -+} -+ -+BGD_DECLARE(void) gdImageGd2 (gdImagePtr im, FILE * outFile, int cs, int fmt) -+{ -+ fprintf (stderr, "GD2 support is not available - no libz\n"); -+} -+ -+BGD_DECLARE(void *) gdImageGd2Ptr (gdImagePtr im, int cs, int fmt, int *size) -+{ -+ fprintf (stderr, "GD2 support is not available - no libz\n"); -+ return NULL; -+} - #endif /* HAVE_LIBZ */ diff --git a/bsp/buildroot/package/gd/0004-webp-pre.patch b/bsp/buildroot/package/gd/0004-webp-pre.patch deleted file mode 100644 index a4bc068b..00000000 --- a/bsp/buildroot/package/gd/0004-webp-pre.patch +++ /dev/null @@ -1,37 +0,0 @@ -Patch committed upstream -https://bitbucket.org/libgd/gd-libgd/commits/c7e5dc617c7466c44935cdefbe7e79de319f98ca?at=master - -Downloaded from Gentoo -https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/gd/files/gd-2.1.1-webp-pre.patch?revision=1.1&view=markup - -Signed-off-by: Bernd Kuhls - ---- -https://bugs.gentoo.org/545956 - -From c7e5dc617c7466c44935cdefbe7e79de319f98ca Mon Sep 17 00:00:00 2001 -From: Pierre Joye -Date: Sat, 17 Jan 2015 08:20:17 +0100 -Subject: [PATCH] fix #111, invalid default quantization - ---- - src/gd_webp.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/gd_webp.c b/src/gd_webp.c -index fae3861..a3ae1ac 100644 ---- a/src/gd_webp.c -+++ b/src/gd_webp.c -@@ -185,6 +185,9 @@ BGD_DECLARE(void) gdImageWebpCtx (gdImagePtr im, gdIOCtx * outfile, int quantiza - gd_error("gd-webp error: cannot allocate Y buffer"); - return; - } -+ if (quantization == -1) { -+ quantization = 80; -+ } - vp8_quality = mapQualityToVP8QP(quantization); - - U = Y + width * height; --- -2.3.5 - diff --git a/bsp/buildroot/package/gd/0005-webp.patch b/bsp/buildroot/package/gd/0005-webp.patch deleted file mode 100644 index f648a875..00000000 --- a/bsp/buildroot/package/gd/0005-webp.patch +++ /dev/null @@ -1,418 +0,0 @@ -Patch committed upstream -https://bitbucket.org/libgd/gd-libgd/commits/a79232c5fa692c3b6e3f5bc95ecfc455424c3f54?at=master - -Downloaded from Gentoo -https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/gd/files/gd-2.1.1-webp.patch?revision=1.1&view=markup - -Signed-off-by: Bernd Kuhls - ---- -https://bugs.gentoo.org/545956 - -From a79232c5fa692c3b6e3f5bc95ecfc455424c3f54 Mon Sep 17 00:00:00 2001 -From: Pierre Joye -Date: Tue, 20 Jan 2015 04:55:11 +0100 -Subject: [PATCH] fix #129, drop VPX usage in favor of libwebp - ---- - configure.ac | 80 +++++------------ - src/gd_webp.c | 231 +++++++++++++++++++++----------------------------- - tests/Makefile.am | 2 +- - tests/webp/bug00111.c | 2 +- - 4 files changed, 122 insertions(+), 193 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 1024a3a..8923186 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -317,63 +317,6 @@ if test "$with_xpm" != no; then - fi - AM_CONDITIONAL([HAVE_LIBXPM], test "$with_xpm" = yes) - --dnl check for libvpx by default --AC_ARG_WITH(vpx,dnl --[ --with-vpx=DIR where to find the vpx library]) -- --case $with_vpx in --no) ;; --yes|"") -- PKG_CHECK_MODULES([LIBVPX], vpx, [with_vpx=yes], -- [ -- PKG_CHECK_MODULES([LIBVPX], libvpx, [with_vpx=yes], -- [ -- if test "$with_vpx" = yes; then -- AC_MSG_ERROR([VPX support requested, but not found]) -- fi -- with_vpx=no -- ]) -- ]) -- ;; --*) -- save_LIBS="$LIBS" -- save_CPPFLAGS="$CPPFLAGS" -- -- if test -d "$with_vpx"; then -- LIBVPX_CFLAGS="-I$with_vpx/include" -- LIBVPX_LIBS="-L$with_vpx/lib -lvpx" -- fi -- -- CPPFLAGS="$CPPFLAGS $LIBVPX_CFLAGS" -- LIBS="$LIBS $LIBVPX_LIBS" -- -- AC_CHECK_LIB(vpx,vpx_codec_destroy, -- [ -- if test -z "$LIBVPX_LIBS"; then -- LIBVPX_LIBS="-lvpx" -- fi -- with_vpx=yes -- ],[ -- if test "$with_vpx" != ""; then -- AC_MSG_ERROR([vpx support requested, but not found]) -- else -- with_vpx=no -- fi -- ]) -- -- CPPFLAGS="$save_CPPFLAGS" -- LIBS="$save_LIBS" -- ;; --esac -- --if test "$with_vpx" != no; then -- CPPFLAGS="$CPPFLAGS $LIBVPX_CFLAGS" -- LIBS="$LIBS $LIBVPX_LIBS" -- FEATURES="GD_VPX $FEATURES" -- AC_DEFINE(HAVE_LIBVPX, 1, [ Define if you have the VPX library. ]) --fi --AM_CONDITIONAL([HAVE_LIBVPX], test "$with_vpx" = yes) -- - dnl check for libtiff by default - AC_ARG_WITH(tiff,dnl - [ --with-tiff=DIR where to find the TIFF library]) -@@ -437,6 +380,27 @@ if test "$mingw_cv_win32_host" = yes; then - AC_DEFINE([BGDWIN32], [], [Define is you are building for Win32 API]) - fi - -+ -+dnl check for libwebp by default -+AC_ARG_WITH(webp,dnl -+[ --with-webp=DIR where to find the webp library], -+ [if test -d "$withval"; then -+ LDFLAGS="$LDFLAGS -L$withval/lib" -+ CFLAGS="$CFLAGS -I$withval/include" -+ fi], -+ withval=yes) -+ -+if test "$withval" != no; then -+ AC_CHECK_LIB(webp,WebPGetInfo, -+ [LIBS="-lwebp $LIBS" -+ FEATURES="GD_WEBP $FEATURES" -+ AC_DEFINE(HAVE_LIBWEBP, 1, [ Define if you have the webp library. ])]) -+ with_webp=yes -+else -+ with_webp=no -+fi -+AM_CONDITIONAL([HAVE_LIBWEBP], test "$with_webp" = yes) -+ - dnl report configuration - AC_MSG_RESULT([ - ** Configuration summary for $PACKAGE $VERSION: -@@ -444,7 +408,7 @@ AC_MSG_RESULT([ - Support for Zlib: $with_zlib - Support for PNG library: $with_png - Support for JPEG library: $ac_cv_lib_jpeg_jpeg_set_defaults -- Support for VPX library: $with_vpx -+ Support for WebP library: $with_webp - Support for TIFF library: $with_tiff - Support for Freetype 2.x library: $with_freetype - Support for Fontconfig library: $with_fontconfig -diff --git a/src/gd_webp.c b/src/gd_webp.c -index a3ae1ac..c44bd80 100644 ---- a/src/gd_webp.c -+++ b/src/gd_webp.c -@@ -2,33 +2,21 @@ - #include "config.h" - #endif /* HAVE_CONFIG_H */ - -+ -+#ifdef HAVE_LIBWEBP - #include - #include - #include - #include - #include "gd.h" - #include "gd_errors.h" -- --#ifdef HAVE_LIBVPX --#include "webpimg.h" - #include "gdhelpers.h" -+#include "webp/decode.h" -+#include "webp/encode.h" - --extern void gd_YUV420toRGBA(uint8* Y, -- uint8* U, -- uint8* V, -- gdImagePtr im); -- --extern void gd_RGBAToYUV420(gdImagePtr im2, -- uint8* Y, -- uint8* U, -- uint8* V); -- --const char * gdWebpGetVersionString() --{ -- return "not defined"; --} -+#define GD_WEBP_ALLOC_STEP (4*1024) - --BGD_DECLARE(gdImagePtr) gdImageCreateFromWebp (FILE * inFile) -+gdImagePtr gdImageCreateFromWebp (FILE * inFile) - { - gdImagePtr im; - gdIOCtx *in = gdNewFileCtx(inFile); -@@ -38,42 +26,16 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromWebp (FILE * inFile) - return im; - } - --BGD_DECLARE(gdImagePtr) gdImageCreateFromWebpPtr (int size, void *data) -+gdImagePtr gdImageCreateFromWebpCtx (gdIOCtx * infile) - { -- int width, height, ret; -- unsigned char *Y = NULL; -- unsigned char *U = NULL; -- unsigned char *V = NULL; -- gdImagePtr im; -- -- ret = WebPDecode(data, size, &Y, &U, &V, &width, &height); -- if (ret != webp_success) { -- if (Y) free(Y); -- if (U) free(U); -- if (V) free(V); -- gd_error("WebP decode: fail to decode input data"); -- return NULL; -- } -- im = gdImageCreateTrueColor(width, height); -- if (!im) { -- return NULL; -- } -- gd_YUV420toRGBA(Y, U, V, im); -- return im; --} -- --#define GD_WEBP_ALLOC_STEP (4*1024) -- --BGD_DECLARE(gdImagePtr) gdImageCreateFromWebpCtx (gdIOCtx * infile) --{ -- int width, height, ret; -- unsigned char *filedata = NULL; -+ int width, height; -+ uint8_t *filedata = NULL; -+ uint8_t *argb = NULL; - unsigned char *read, *temp; -- unsigned char *Y = NULL; -- unsigned char *U = NULL; -- unsigned char *V = NULL; - size_t size = 0, n; - gdImagePtr im; -+ int x, y; -+ uint8_t *p; - - do { - temp = gdRealloc(filedata, size+GD_WEBP_ALLOC_STEP); -@@ -89,23 +51,97 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromWebpCtx (gdIOCtx * infile) - } - - n = gdGetBuf(read, GD_WEBP_ALLOC_STEP, infile); -- size += n; -- } while (n>0); -+ if (n>0 && n!=EOF) { -+ size += n; -+ } -+ } while (n>0 && n!=EOF); - -- ret = WebPDecode(filedata, size, &Y, &U, &V, &width, &height); -- gdFree(filedata); -- if (ret != webp_success) { -- if (Y) free(Y); -- if (U) free(U); -- if (V) free(V); -- gd_error("WebP decode: fail to decode input data"); -+ if (WebPGetInfo(filedata,size, &width, &height) == 0) { -+ gd_error("gd-webp cannot get webp info"); - return NULL; - } -+ - im = gdImageCreateTrueColor(width, height); -- gd_YUV420toRGBA(Y, U, V, im); -+ if (!im) { -+ return NULL; -+ } -+ argb = WebPDecodeARGB(filedata, size, &width, &height); -+ if (!argb) { -+ gd_error("gd-webp cannot allocate temporary buffer"); -+ gdFree(argb); -+ return NULL; -+ } -+ for (y = 0, p = argb; y < height; y++) { -+ for (x = 0; x < width; x++) { -+ register uint8_t a = gdAlphaMax - (*(p++) >> 1); -+ register uint8_t r = *(p++); -+ register uint8_t g = *(p++); -+ register uint8_t b = *(p++); -+ im->tpixels[y][x] = gdTrueColorAlpha(r, g, b, a); -+ } -+ } -+ gdFree(filedata); -+ free(argb); -+ im->saveAlphaFlag = 1; - return im; - } - -+void gdImageWebpCtx (gdImagePtr im, gdIOCtx * outfile, int quantization) -+{ -+ uint8_t *argb; -+ int x, y; -+ uint8_t *p; -+ uint8_t *out; -+ size_t out_size; -+ -+ if (im == NULL) { -+ return; -+ } -+ -+ if (!gdImageTrueColor(im)) { -+ gd_error("Paletter image not supported by webp"); -+ return; -+ } -+ -+ if (quantization == -1) { -+ quantization = 80; -+ } -+ -+ argb = (uint8_t *)gdMalloc(gdImageSX(im) * 4 * gdImageSY(im)); -+ if (!argb) { -+ return; -+ } -+ p = argb; -+ for (y = 0; y < gdImageSY(im); y++) { -+ for (x = 0; x < gdImageSX(im); x++) { -+ register int c; -+ register char a; -+ c = im->tpixels[y][x]; -+ a = gdTrueColorGetAlpha(c); -+ if (a == 127) { -+ a = 0; -+ } else { -+ a = 255 - ((a << 1) + (a >> 6)); -+ } -+ *(p++) = gdTrueColorGetRed(c); -+ *(p++) = gdTrueColorGetGreen(c); -+ *(p++) = gdTrueColorGetBlue(c); -+ *(p++) = a; -+ } -+ } -+ out_size = WebPEncodeRGBA(argb, gdImageSX(im), gdImageSY(im), gdImageSX(im) * 4, quantization, &out); -+ printf("outsize: %i\n", out_size); -+ if (out_size == 0) { -+ gd_error("gd-webp encoding failed"); -+ goto freeargb; -+ } -+ gdPutBuf(out, out_size, outfile); -+ free(out); -+ -+freeargb: -+ gdFree(argb); -+} -+ - BGD_DECLARE(void) gdImageWebpEx (gdImagePtr im, FILE * outFile, int quantization) - { - gdIOCtx *out = gdNewFileCtx(outFile); -@@ -116,7 +152,7 @@ BGD_DECLARE(void) gdImageWebpEx (gdImagePtr im, FILE * outFile, int quantization - BGD_DECLARE(void) gdImageWebp (gdImagePtr im, FILE * outFile) - { - gdIOCtx *out = gdNewFileCtx(outFile); -- gdImageWebpCtx(im, out, -1); -+ gdImageWebpCtx(im, out, -1); - out->gd_free(out); - } - -@@ -140,75 +176,4 @@ BGD_DECLARE(void *) gdImageWebpPtrEx (gdImagePtr im, int *size, int quantization - out->gd_free(out); - return rv; - } -- --/* -- * Maps normalized QP (quality) to VP8 QP -- */ --int mapQualityToVP8QP(int quality) { --#define MIN_QUALITY 0 --#define MAX_QUALITY 100 --#define MIN_VP8QP 1 --#define MAX_VP8QP 63 -- const float scale = MAX_VP8QP - MIN_VP8QP; -- const float vp8qp = -- scale * (MAX_QUALITY - quality) / (MAX_QUALITY - MIN_QUALITY) + MIN_VP8QP; -- if (quality < MIN_QUALITY || quality > MAX_QUALITY) { -- gd_error("Wrong quality value %d.", quality); -- return -1; -- } -- -- return (int)(vp8qp + 0.5); --} -- --/* This routine is based in part on code from Dale Lutz (Safe Software Inc.) -- * and in part on demo code from Chapter 15 of "PNG: The Definitive Guide" -- * (http://www.cdrom.com/pub/png/pngbook.html). -- */ --BGD_DECLARE(void) gdImageWebpCtx (gdImagePtr im, gdIOCtx * outfile, int quantization) --{ -- int width = im->sx; -- int height = im->sy; -- -- int yuv_width, yuv_height, yuv_nbytes, ret; -- int vp8_quality; -- unsigned char *Y = NULL, -- *U = NULL, -- *V = NULL; -- unsigned char *filedata = NULL; -- -- /* Conversion to Y,U,V buffer */ -- yuv_width = (width + 1) >> 1; -- yuv_height = (height + 1) >> 1; -- yuv_nbytes = width * height + 2 * yuv_width * yuv_height; -- -- if ((Y = (unsigned char *)gdCalloc(yuv_nbytes, sizeof(unsigned char))) == NULL) { -- gd_error("gd-webp error: cannot allocate Y buffer"); -- return; -- } -- if (quantization == -1) { -- quantization = 80; -- } -- vp8_quality = mapQualityToVP8QP(quantization); -- -- U = Y + width * height; -- V = U + yuv_width * yuv_height; -- gd_RGBAToYUV420(im, Y, U, V); -- -- /* Encode Y,U,V and write data to file */ -- ret = WebPEncode(Y, U, V, width, height, width, yuv_width, yuv_height, yuv_width, -- vp8_quality, &filedata, &yuv_nbytes, NULL); -- gdFree(Y); -- -- if (ret != webp_success) { -- if (filedata) { -- free(filedata); -- } -- gd_error("gd-webp error: WebP Encoder failed"); -- return; -- } -- -- gdPutBuf (filedata, yuv_nbytes, outfile); -- free(filedata); --} -- --#endif /* HAVE_LIBVPX */ -+#endif /* HAVE_LIBWEBP */ --- -2.3.5 - diff --git a/bsp/buildroot/package/gd/Config.in b/bsp/buildroot/package/gd/Config.in index e8386350..861cef88 100644 --- a/bsp/buildroot/package/gd/Config.in +++ b/bsp/buildroot/package/gd/Config.in @@ -1,4 +1,4 @@ -config BR2_PACKAGE_GD +menuconfig BR2_PACKAGE_GD bool "gd" help GD is a graphics library. It allows your code to quickly @@ -8,12 +8,10 @@ config BR2_PACKAGE_GD useful in World Wide Web applications, where PNG is one of the formats accepted for inline images by most browsers. - http://libgd.bitbucket.org/ + https://libgd.github.io/ if BR2_PACKAGE_GD -menu "gd tools" - config BR2_PACKAGE_GD_ANNOTATE bool "annotate" @@ -57,6 +55,4 @@ config BR2_PACKAGE_GD_WEBPNG bool "webpng" select BR2_PACKAGE_LIBPNG -endmenu - endif diff --git a/bsp/buildroot/package/gd/gd.hash b/bsp/buildroot/package/gd/gd.hash index 8edbb1ad..d08220a8 100644 --- a/bsp/buildroot/package/gd/gd.hash +++ b/bsp/buildroot/package/gd/gd.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 9ada1ed45594abc998ebc942cef12b032fbad672e73efc22bc9ff54f5df2b285 libgd-2.1.1.tar.xz +sha256 489f756ce07f0c034b1a794f4d34fdb4d829256112cb3c36feb40bb56b79218c libgd-2.2.2.tar.xz diff --git a/bsp/buildroot/package/gd/gd.mk b/bsp/buildroot/package/gd/gd.mk index c0562418..8de8d153 100644 --- a/bsp/buildroot/package/gd/gd.mk +++ b/bsp/buildroot/package/gd/gd.mk @@ -4,10 +4,9 @@ # ################################################################################ -GD_VERSION = 2.1.1 +GD_VERSION = 2.2.2 GD_SOURCE = libgd-$(GD_VERSION).tar.xz -GD_SITE = https://bitbucket.org/libgd/gd-libgd/downloads -GD_AUTORECONF = YES +GD_SITE = https://github.com/libgd/libgd/releases/download/gd-$(GD_VERSION) GD_INSTALL_STAGING = YES GD_LICENSE = GD license GD_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/gdb/7.10.1/0001-Add-some-casts-for-building-on-musl.patch b/bsp/buildroot/package/gdb/7.10.1/0001-Add-some-casts-for-building-on-musl.patch new file mode 100644 index 00000000..863e26aa --- /dev/null +++ b/bsp/buildroot/package/gdb/7.10.1/0001-Add-some-casts-for-building-on-musl.patch @@ -0,0 +1,90 @@ +From d41401ace01c234f42697e190a2ac95991780626 Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Mon, 26 Oct 2015 13:20:12 -0700 +Subject: [PATCH] Add some casts for building on musl. + +gdb/ChangeLog: + + * linux-thread-db.c (find_new_threads_callback): Cast ti.ti_tid to + unsigned long for debug_printf. + (thread_db_pid_to_str): Ditto. + +gdb/gdbserver/ChangeLog: + + * thread-db.c (find_one_thread): Cast ti.ti_tid to unsigned long + for debug_printf. + (attach_thread, find_new_threads_callback): Ditto. + +[Arnout: removed the parts that don't apply, including ChangeLog] +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + gdb/ChangeLog | 5 +++++ + gdb/gdbserver/ChangeLog | 6 ++++++ + gdb/gdbserver/thread-db.c | 9 +++++---- + gdb/linux-thread-db.c | 5 +++-- + 4 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c +index ffe722d..3df10ff 100644 +--- a/gdb/gdbserver/thread-db.c ++++ b/gdb/gdbserver/thread-db.c +@@ -278,7 +278,7 @@ find_one_thread (ptid_t ptid) + + if (debug_threads) + debug_printf ("Found thread %ld (LWP %d)\n", +- ti.ti_tid, ti.ti_lid); ++ (unsigned long) ti.ti_tid, ti.ti_lid); + + if (lwpid != ti.ti_lid) + { +@@ -319,12 +319,12 @@ attach_thread (const td_thrhandle_t *th_p, td_thrinfo_t *ti_p) + + if (debug_threads) + debug_printf ("Attaching to thread %ld (LWP %d)\n", +- ti_p->ti_tid, ti_p->ti_lid); ++ (unsigned long) ti_p->ti_tid, ti_p->ti_lid); + err = linux_attach_lwp (ptid); + if (err != 0) + { + warning ("Could not attach to thread %ld (LWP %d): %s\n", +- ti_p->ti_tid, ti_p->ti_lid, ++ (unsigned long) ti_p->ti_tid, ti_p->ti_lid, + linux_ptrace_attach_fail_reason_string (ptid, err)); + return 0; + } +@@ -392,7 +392,8 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data) + glibc PR17707. */ + if (debug_threads) + debug_printf ("thread_db: skipping exited and " +- "joined thread (0x%lx)\n", ti.ti_tid); ++ "joined thread (0x%lx)\n", ++ (unsigned long) ti.ti_tid); + return 0; + } + +diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c +index 66e9595..41db29a 100644 +--- a/gdb/linux-thread-db.c ++++ b/gdb/linux-thread-db.c +@@ -1585,7 +1585,8 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data) + if (libthread_db_debug) + fprintf_unfiltered (gdb_stdlog, + "thread_db: skipping exited and " +- "joined thread (0x%lx)\n", ti.ti_tid); ++ "joined thread (0x%lx)\n", ++ (unsigned long) ti.ti_tid); + return 0; + } + +@@ -1816,7 +1817,7 @@ thread_db_pid_to_str (struct target_ops *ops, ptid_t ptid) + + tid = thread_info->priv->tid; + snprintf (buf, sizeof (buf), "Thread 0x%lx (LWP %ld)", +- tid, ptid_get_lwp (ptid)); ++ (unsigned long) tid, ptid_get_lwp (ptid)); + + return buf; + } +-- +1.9.4 + diff --git a/bsp/buildroot/package/gdb/7.10.1/0002-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch b/bsp/buildroot/package/gdb/7.10.1/0002-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch new file mode 100644 index 00000000..60c357cd --- /dev/null +++ b/bsp/buildroot/package/gdb/7.10.1/0002-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch @@ -0,0 +1,63 @@ +From 963843d4d07aef6caa296dacf191f8adc9518596 Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Mon, 26 Oct 2015 13:24:01 -0700 +Subject: [PATCH] musl: Move W_STOPCODE to common/gdb_wait.h. + +gdb/ChangeLog: + + * common/gdb_wait.h (W_STOPCODE): Define, moved here from + gdbserver/linux-low.c. + (WSETSTOP): Simplify. + +gdb/gdbserver/ChangeLog: + + * linux-low.c (W_STOPCODE): Moved to common/gdb_wait.h. + +[Arnout: removed the parts that don't apply, including ChangeLog] +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + gdb/ChangeLog | 6 ++++++ + gdb/common/gdb_wait.h | 8 ++++---- + gdb/gdbserver/ChangeLog | 4 ++++ + gdb/gdbserver/linux-low.c | 4 ---- + 4 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/gdb/common/gdb_wait.h b/gdb/common/gdb_wait.h +index 9b250d2..412f813 100644 +--- a/gdb/common/gdb_wait.h ++++ b/gdb/common/gdb_wait.h +@@ -85,12 +85,12 @@ + # endif + #endif + ++#ifndef W_STOPCODE ++#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) ++#endif ++ + #ifndef WSETSTOP +-# ifdef W_STOPCODE + #define WSETSTOP(w,sig) ((w) = W_STOPCODE(sig)) +-# else +-#define WSETSTOP(w,sig) ((w) = (0177 | ((sig) << 8))) +-# endif + #endif + + /* For native GNU/Linux we may use waitpid and the __WCLONE option. +diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c +index 0c552b8..7ed67c7 100644 +--- a/gdb/gdbserver/linux-low.c ++++ b/gdb/gdbserver/linux-low.c +@@ -70,10 +70,6 @@ + #define O_LARGEFILE 0 + #endif + +-#ifndef W_STOPCODE +-#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) +-#endif +- + /* This is the kernel's hard limit. Not to be confused with + SIGRTMIN. */ + #ifndef __SIGRTMIN +-- +1.9.4 + diff --git a/bsp/buildroot/package/gdb/7.10.1/0003-move-__SIGRTMIN.patch b/bsp/buildroot/package/gdb/7.10.1/0003-move-__SIGRTMIN.patch new file mode 100644 index 00000000..38ba1f02 --- /dev/null +++ b/bsp/buildroot/package/gdb/7.10.1/0003-move-__SIGRTMIN.patch @@ -0,0 +1,58 @@ +From 682b25469e66ea45b214e95962671373983c118f Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Mon, 26 Oct 2015 13:30:57 -0700 +Subject: [PATCH] Move __SIGRTMIN. + +gdb/ChangeLog: + + * nat/linux-nat.h (__SIGRTMIN): Move here from gdbserver/linux-low.c. + +gdb/gdbserver/ChangeLog: + + * linux-low.c (__SIGRTMIN): Move to nat/linux-nat.h. + +[Arnout: removed the parts that don't apply, including ChangeLog] +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + gdb/ChangeLog | 4 ++++ + gdb/gdbserver/ChangeLog | 4 ++++ + gdb/gdbserver/linux-low.c | 6 ------ + gdb/nat/linux-nat.h | 5 +++++ + 4 files changed, 13 insertions(+), 6 deletions(-) + +diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c +index 7ed67c7..e778c4c 100644 +--- a/gdb/gdbserver/linux-low.c ++++ b/gdb/gdbserver/linux-low.c +@@ -70,12 +70,6 @@ + #define O_LARGEFILE 0 + #endif + +-/* This is the kernel's hard limit. Not to be confused with +- SIGRTMIN. */ +-#ifndef __SIGRTMIN +-#define __SIGRTMIN 32 +-#endif +- + /* Some targets did not define these ptrace constants from the start, + so gdbserver defines them locally here. In the future, these may + be removed after they are added to asm/ptrace.h. */ +diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h +index 0633fa9..70e6274 100644 +--- a/gdb/nat/linux-nat.h ++++ b/gdb/nat/linux-nat.h +@@ -25,6 +25,11 @@ + struct lwp_info; + struct arch_lwp_info; + ++/* This is the kernel's hard limit. Not to be confused with SIGRTMIN. */ ++#ifndef __SIGRTMIN ++#define __SIGRTMIN 32 ++#endif ++ + /* Unlike other extended result codes, WSTOPSIG (status) on + PTRACE_O_TRACESYSGOOD syscall events doesn't return SIGTRAP, but + instead SIGTRAP with bit 7 set. */ +-- +1.9.4 + diff --git a/bsp/buildroot/package/gdb/7.10.1/0004-xtensa-implement-NPTL-helpers.patch b/bsp/buildroot/package/gdb/7.10.1/0004-xtensa-implement-NPTL-helpers.patch new file mode 100644 index 00000000..e7bc74ea --- /dev/null +++ b/bsp/buildroot/package/gdb/7.10.1/0004-xtensa-implement-NPTL-helpers.patch @@ -0,0 +1,267 @@ +From d4eb69fc4b50f9a0babd70b28d0601b40f31bd0f Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Thu, 2 Jul 2015 15:10:58 +0300 +Subject: [PATCH] xtensa: implement NPTL helpers + +These changes allow debugging multithreaded NPTL xtensa applications. + +2015-08-20 Max Filippov +gdb/gdbserver/ + * configure.srv (xtensa*-*-linux*): Add srv_linux_thread_db=yes. + * linux-xtensa-low.c (arch/xtensa.h gdb_proc_service.h): New + #includes. + (ps_get_thread_area): New function. + +2015-08-20 Max Filippov +gdb/ + * arch/xtensa.h: New file. + * xtensa-linux-nat.c (gdb_proc_service.h): New #include. + (ps_get_thread_area): New function. + * xtensa-linux-tdep.c (xtensa_linux_init_abi): Add call to + set_gdbarch_fetch_tls_load_module_address to enable TLS support. + * xtensa-tdep.c (osabi.h): New #include. + (xtensa_gdbarch_init): Call gdbarch_init_osabi to register + xtensa-specific hooks. + * xtensa-tdep.h (struct xtensa_elf_gregset_t): Add threadptr + member and move the structure to arch/xtensa.h. + +Signed-off-by: Max Filippov +--- +Backported from: 40045d91812b25c88c8275b8c08d27c234b68ba8 +Changes to ChangeLog files are dropped. + + gdb/arch/xtensa.h | 46 ++++++++++++++++++++++++++++++++++++++++ + gdb/gdbserver/configure.srv | 1 + + gdb/gdbserver/linux-xtensa-low.c | 21 ++++++++++++++++++ + gdb/xtensa-linux-nat.c | 22 ++++++++++++++++++ + gdb/xtensa-linux-tdep.c | 4 ++++ + gdb/xtensa-tdep.c | 4 ++++ + gdb/xtensa-tdep.h | 24 ++------------------ + 7 files changed, 100 insertions(+), 22 deletions(-) + create mode 100644 gdb/arch/xtensa.h + +diff --git a/gdb/arch/xtensa.h b/gdb/arch/xtensa.h +new file mode 100644 +index 0000000..fe96584 +--- /dev/null ++++ b/gdb/arch/xtensa.h +@@ -0,0 +1,46 @@ ++/* Common Target-dependent code for the Xtensa port of GDB, the GNU debugger. ++ ++ Copyright (C) 2003-2015 Free Software Foundation, Inc. ++ ++ This file is part of GDB. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . */ ++ ++#ifndef XTENSA_H ++#define XTENSA_H ++ ++/* Xtensa ELF core file register set representation ('.reg' section). ++ Copied from target-side ELF header . */ ++ ++typedef uint32_t xtensa_elf_greg_t; ++ ++typedef struct ++{ ++ xtensa_elf_greg_t pc; ++ xtensa_elf_greg_t ps; ++ xtensa_elf_greg_t lbeg; ++ xtensa_elf_greg_t lend; ++ xtensa_elf_greg_t lcount; ++ xtensa_elf_greg_t sar; ++ xtensa_elf_greg_t windowstart; ++ xtensa_elf_greg_t windowbase; ++ xtensa_elf_greg_t threadptr; ++ xtensa_elf_greg_t reserved[7+48]; ++ xtensa_elf_greg_t ar[64]; ++} xtensa_elf_gregset_t; ++ ++#define XTENSA_ELF_NGREG (sizeof (xtensa_elf_gregset_t) \ ++ / sizeof (xtensa_elf_greg_t)) ++ ++#endif +diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv +index 0b18d1d..320c26a 100644 +--- a/gdb/gdbserver/configure.srv ++++ b/gdb/gdbserver/configure.srv +@@ -352,6 +352,7 @@ case "${target}" in + xtensa*-*-linux*) srv_regobj=reg-xtensa.o + srv_tgtobj="$srv_linux_obj linux-xtensa-low.o" + srv_linux_regsets=yes ++ srv_linux_thread_db=yes + ;; + tilegx-*-linux*) srv_regobj=reg-tilegx.o + srv_regobj="${srv_regobj} reg-tilegx32.o" +diff --git a/gdb/gdbserver/linux-xtensa-low.c b/gdb/gdbserver/linux-xtensa-low.c +index 4daccee..debe467 100644 +--- a/gdb/gdbserver/linux-xtensa-low.c ++++ b/gdb/gdbserver/linux-xtensa-low.c +@@ -26,6 +26,8 @@ extern const struct target_desc *tdesc_xtensa; + + #include + #include ++#include "arch/xtensa.h" ++#include "gdb_proc_service.h" + + #include "xtensa-xtregs.c" + +@@ -179,6 +181,25 @@ xtensa_breakpoint_at (CORE_ADDR where) + xtensa_breakpoint, xtensa_breakpoint_len) == 0; + } + ++/* Called by libthread_db. */ ++ ++ps_err_e ++ps_get_thread_area (const struct ps_prochandle *ph, ++ lwpid_t lwpid, int idx, void **base) ++{ ++ xtensa_elf_gregset_t regs; ++ ++ if (ptrace (PTRACE_GETREGS, lwpid, NULL, ®s) != 0) ++ return PS_ERR; ++ ++ /* IDX is the bias from the thread pointer to the beginning of the ++ thread descriptor. It has to be subtracted due to implementation ++ quirks in libthread_db. */ ++ *base = (void *) ((char *) regs.threadptr - idx); ++ ++ return PS_OK; ++} ++ + static struct regsets_info xtensa_regsets_info = + { + xtensa_regsets, /* regsets */ +diff --git a/gdb/xtensa-linux-nat.c b/gdb/xtensa-linux-nat.c +index 77ad3e0..5538d5b 100644 +--- a/gdb/xtensa-linux-nat.c ++++ b/gdb/xtensa-linux-nat.c +@@ -37,6 +37,9 @@ + #include "gregset.h" + #include "xtensa-tdep.h" + ++/* Defines ps_err_e, struct ps_prochandle. */ ++#include "gdb_proc_service.h" ++ + /* Extended register set depends on hardware configs. + Keeping these definitions separately allows to introduce + hardware-specific overlays. */ +@@ -280,6 +283,25 @@ xtensa_linux_store_inferior_registers (struct target_ops *ops, + store_xtregs (regcache, regnum); + } + ++/* Called by libthread_db. */ ++ ++ps_err_e ++ps_get_thread_area (const struct ps_prochandle *ph, ++ lwpid_t lwpid, int idx, void **base) ++{ ++ xtensa_elf_gregset_t regs; ++ ++ if (ptrace (PTRACE_GETREGS, lwpid, NULL, ®s) != 0) ++ return PS_ERR; ++ ++ /* IDX is the bias from the thread pointer to the beginning of the ++ thread descriptor. It has to be subtracted due to implementation ++ quirks in libthread_db. */ ++ *base = (void *) ((char *) regs.threadptr - idx); ++ ++ return PS_OK; ++} ++ + void _initialize_xtensa_linux_nat (void); + + void +diff --git a/gdb/xtensa-linux-tdep.c b/gdb/xtensa-linux-tdep.c +index 61ea9b0..99e0d3e 100644 +--- a/gdb/xtensa-linux-tdep.c ++++ b/gdb/xtensa-linux-tdep.c +@@ -106,6 +106,10 @@ xtensa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) + xtensa_linux_gdb_signal_from_target); + set_gdbarch_gdb_signal_to_target (gdbarch, + xtensa_linux_gdb_signal_to_target); ++ ++ /* Enable TLS support. */ ++ set_gdbarch_fetch_tls_load_module_address (gdbarch, ++ svr4_fetch_objfile_link_map); + } + + /* Provide a prototype to silence -Wmissing-prototypes. */ +diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c +index 55e7d98..4b693ed 100644 +--- a/gdb/xtensa-tdep.c ++++ b/gdb/xtensa-tdep.c +@@ -28,6 +28,7 @@ + #include "value.h" + #include "dis-asm.h" + #include "inferior.h" ++#include "osabi.h" + #include "floatformat.h" + #include "regcache.h" + #include "reggroups.h" +@@ -3273,6 +3274,9 @@ xtensa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) + set_solib_svr4_fetch_link_map_offsets + (gdbarch, svr4_ilp32_fetch_link_map_offsets); + ++ /* Hook in the ABI-specific overrides, if they have been registered. */ ++ gdbarch_init_osabi (info, gdbarch); ++ + return gdbarch; + } + +diff --git a/gdb/xtensa-tdep.h b/gdb/xtensa-tdep.h +index caa2988..5b28cab 100644 +--- a/gdb/xtensa-tdep.h ++++ b/gdb/xtensa-tdep.h +@@ -18,6 +18,8 @@ + along with this program. If not, see . */ + + ++#include "arch/xtensa.h" ++ + /* XTENSA_TDEP_VERSION can/should be changed along with XTENSA_CONFIG_VERSION + whenever the "tdep" structure changes in an incompatible way. */ + +@@ -81,28 +83,6 @@ typedef enum + } xtensa_target_flags_t; + + +-/* Xtensa ELF core file register set representation ('.reg' section). +- Copied from target-side ELF header . */ +- +-typedef uint32_t xtensa_elf_greg_t; +- +-typedef struct +-{ +- xtensa_elf_greg_t pc; +- xtensa_elf_greg_t ps; +- xtensa_elf_greg_t lbeg; +- xtensa_elf_greg_t lend; +- xtensa_elf_greg_t lcount; +- xtensa_elf_greg_t sar; +- xtensa_elf_greg_t windowstart; +- xtensa_elf_greg_t windowbase; +- xtensa_elf_greg_t reserved[8+48]; +- xtensa_elf_greg_t ar[64]; +-} xtensa_elf_gregset_t; +- +-#define XTENSA_ELF_NGREG (sizeof (xtensa_elf_gregset_t) \ +- / sizeof (xtensa_elf_greg_t)) +- + /* Mask. */ + + typedef struct +-- +1.8.1.4 + diff --git a/bsp/buildroot/package/gdb/7.10.1/0005-target.h-include-sys-types.h.patch b/bsp/buildroot/package/gdb/7.10.1/0005-target.h-include-sys-types.h.patch new file mode 100644 index 00000000..ba5419d2 --- /dev/null +++ b/bsp/buildroot/package/gdb/7.10.1/0005-target.h-include-sys-types.h.patch @@ -0,0 +1,30 @@ +From cd68d0ebe7748a5448c86eb021b717df6fe83f35 Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Sun, 22 Nov 2015 17:24:03 -0800 +Subject: [PATCH] target.h: #include . + +For musl. + +[Romain: + rebase on gdb 7.10.1 from upstream (7.11) + remove ChangeLog entry] +Signed-off-by: Romain Naour +--- + gdb/gdbserver/target.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h +index 9a40867..6af043c 100644 +--- a/gdb/gdbserver/target.h ++++ b/gdb/gdbserver/target.h +@@ -21,6 +21,7 @@ + #ifndef TARGET_H + #define TARGET_H + ++#include /* for mode_t */ + #include "target/target.h" + #include "target/resume.h" + #include "target/wait.h" +-- +2.5.5 + diff --git a/bsp/buildroot/package/gdb/7.10.1/0006-Revert-sim-unify-SIM_CPU-definition.patch b/bsp/buildroot/package/gdb/7.10.1/0006-Revert-sim-unify-SIM_CPU-definition.patch new file mode 100644 index 00000000..20b7fb23 --- /dev/null +++ b/bsp/buildroot/package/gdb/7.10.1/0006-Revert-sim-unify-SIM_CPU-definition.patch @@ -0,0 +1,372 @@ +From 4d913bb73965fdb9c756e8d5916a829b60aa3a44 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 4 Aug 2016 23:44:24 +0200 +Subject: [PATCH] Revert "sim: unify SIM_CPU definition" + +This reverts commit 20bca71d82598a015de0991196e45f0b5f7ead81. + +This change causes a redefinition of SIM_CPU on the Blackfin +architecture, as it is defined in both the common sim/common/sim-base.h +and the architecture specific sim/bfin/sim-main.h. + +Signed-off-by: Thomas Petazzoni +--- + sim/arm/sim-main.h | 3 +++ + sim/avr/sim-main.h | 2 ++ + sim/bfin/sim-main.h | 2 -- + sim/common/sim-base.h | 2 -- + sim/cr16/sim-main.h | 2 ++ + sim/cris/sim-main.h | 5 +++++ + sim/d10v/sim-main.h | 2 ++ + sim/frv/sim-main.h | 10 ++++++++++ + sim/ft32/sim-main.h | 2 ++ + sim/h8300/sim-main.h | 3 +++ + sim/iq2000/sim-main.h | 5 +++++ + sim/lm32/sim-main.h | 5 +++++ + sim/m32r/sim-main.h | 5 +++++ + sim/m68hc11/sim-main.h | 3 +++ + sim/mcore/sim-main.h | 2 ++ + sim/microblaze/sim-main.h | 3 +++ + sim/mips/sim-main.h | 3 +++ + sim/mn10300/sim-main.h | 2 ++ + sim/moxie/sim-main.h | 3 +++ + sim/msp430/sim-main.h | 3 +++ + sim/sh/sim-main.h | 3 +++ + sim/sh64/sim-main.h | 5 +++++ + sim/v850/sim-main.h | 3 +++ + 23 files changed, 74 insertions(+), 4 deletions(-) + +diff --git a/sim/arm/sim-main.h b/sim/arm/sim-main.h +index 9a37b98..ae622bd 100644 +--- a/sim/arm/sim-main.h ++++ b/sim/arm/sim-main.h +@@ -20,6 +20,9 @@ + #define SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/avr/sim-main.h b/sim/avr/sim-main.h +index e0cac22..52904e3 100644 +--- a/sim/avr/sim-main.h ++++ b/sim/avr/sim-main.h +@@ -23,6 +23,8 @@ along with this program. If not, see . */ + + extern unsigned int pc; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + struct _sim_cpu { +diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h +index 806fe15..53e1774 100644 +--- a/sim/bfin/sim-main.h ++++ b/sim/bfin/sim-main.h +@@ -24,8 +24,6 @@ + #include "sim-basics.h" + #include "sim-signal.h" + +-/* TODO: Delete this. Need to convert bu32/etc... to common sim types +- and unwind the bfin-sim.h/machs.h include below first though. */ + typedef struct _sim_cpu SIM_CPU; + + #include "bfin-sim.h" +diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h +index 21f61f4..e90e07c 100644 +--- a/sim/common/sim-base.h ++++ b/sim/common/sim-base.h +@@ -72,8 +72,6 @@ typedef address_word sim_cia; + #define INVALID_INSTRUCTION_ADDRESS ((address_word)0 - 1) + #endif + +-/* TODO: Probably should just delete SIM_CPU. */ +-typedef struct _sim_cpu SIM_CPU; + typedef struct _sim_cpu sim_cpu; + + #include "sim-module.h" +diff --git a/sim/cr16/sim-main.h b/sim/cr16/sim-main.h +index a63b93e..1a80229 100644 +--- a/sim/cr16/sim-main.h ++++ b/sim/cr16/sim-main.h +@@ -24,6 +24,8 @@ + typedef long int word; + typedef unsigned long int uword; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h +index 4dc04a2..fec0039 100644 +--- a/sim/cris/sim-main.h ++++ b/sim/cris/sim-main.h +@@ -24,6 +24,11 @@ along with this program. If not, see . */ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++#define USING_SIM_BASE_H ++ ++struct _sim_cpu; ++typedef struct _sim_cpu SIM_CPU; ++ + #include "symcat.h" + #include "sim-basics.h" + #include "cgen-types.h" +diff --git a/sim/d10v/sim-main.h b/sim/d10v/sim-main.h +index 0b87811..a7d59dd 100644 +--- a/sim/d10v/sim-main.h ++++ b/sim/d10v/sim-main.h +@@ -24,6 +24,8 @@ + typedef long int word; + typedef unsigned long int uword; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/frv/sim-main.h b/sim/frv/sim-main.h +index d5a67cb..fd12c4f 100644 +--- a/sim/frv/sim-main.h ++++ b/sim/frv/sim-main.h +@@ -19,6 +19,16 @@ along with this program. If not, see . */ + + /* Main header for the frv. */ + ++#define USING_SIM_BASE_H /* FIXME: quick hack */ ++ ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ ++/* Set the mask of unsupported traces. */ ++#define WITH_TRACE \ ++ (~(TRACE_alu | TRACE_decode | TRACE_memory | TRACE_model | TRACE_fpu \ ++ | TRACE_branch | TRACE_debug)) ++ + /* sim-basics.h includes config.h but cgen-types.h must be included before + sim-basics.h and cgen-types.h needs config.h. */ + #include "config.h" +diff --git a/sim/ft32/sim-main.h b/sim/ft32/sim-main.h +index b27a690..a270a5d 100644 +--- a/sim/ft32/sim-main.h ++++ b/sim/ft32/sim-main.h +@@ -25,6 +25,8 @@ + #include "sim-base.h" + #include "bfd.h" + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "ft32-sim.h" + + struct _sim_cpu { +diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h +index 6dbc1ac..e95c4d9 100644 +--- a/sim/h8300/sim-main.h ++++ b/sim/h8300/sim-main.h +@@ -87,6 +87,9 @@ enum h8_typecodes { + }; + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + /* Structure used to describe addressing */ +diff --git a/sim/iq2000/sim-main.h b/sim/iq2000/sim-main.h +index 992520a..ce3baba 100644 +--- a/sim/iq2000/sim-main.h ++++ b/sim/iq2000/sim-main.h +@@ -4,6 +4,11 @@ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++#define USING_SIM_BASE_H /* FIXME: quick hack */ ++ ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + /* sim-basics.h includes config.h but cgen-types.h must be included before + sim-basics.h and cgen-types.h needs config.h. */ + #include "config.h" +diff --git a/sim/lm32/sim-main.h b/sim/lm32/sim-main.h +index 4894e8d..210bb8b 100644 +--- a/sim/lm32/sim-main.h ++++ b/sim/lm32/sim-main.h +@@ -23,6 +23,11 @@ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++#define USING_SIM_BASE_H /* FIXME: quick hack */ ++ ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "symcat.h" + #include "sim-basics.h" + #include "cgen-types.h" +diff --git a/sim/m32r/sim-main.h b/sim/m32r/sim-main.h +index cd39e98..74bb513 100644 +--- a/sim/m32r/sim-main.h ++++ b/sim/m32r/sim-main.h +@@ -3,6 +3,11 @@ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++#define USING_SIM_BASE_H /* FIXME: quick hack */ ++ ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "symcat.h" + #include "sim-basics.h" + #include "cgen-types.h" +diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h +index d1fc582..4f41db9 100644 +--- a/sim/m68hc11/sim-main.h ++++ b/sim/m68hc11/sim-main.h +@@ -25,6 +25,9 @@ along with this program. If not, see . */ + #define SIM_HANDLES_LMA 1 + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-signal.h" + #include "sim-base.h" + +diff --git a/sim/mcore/sim-main.h b/sim/mcore/sim-main.h +index be50ec1..25698c1 100644 +--- a/sim/mcore/sim-main.h ++++ b/sim/mcore/sim-main.h +@@ -24,6 +24,8 @@ along with this program. If not, see . */ + typedef long int word; + typedef unsigned long int uword; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/microblaze/sim-main.h b/sim/microblaze/sim-main.h +index 6781374..6b7b776 100644 +--- a/sim/microblaze/sim-main.h ++++ b/sim/microblaze/sim-main.h +@@ -20,6 +20,9 @@ + + #include "microblaze.h" + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + /* The machine state. +diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h +index 8d698ad..9729804 100644 +--- a/sim/mips/sim-main.h ++++ b/sim/mips/sim-main.h +@@ -29,6 +29,9 @@ along with this program. If not, see . */ + mips_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR)) + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/mn10300/sim-main.h b/sim/mn10300/sim-main.h +index 847506e..2ddbfb9 100644 +--- a/sim/mn10300/sim-main.h ++++ b/sim/mn10300/sim-main.h +@@ -42,6 +42,8 @@ + #include "itable.h" + #include "idecode.h" + ++typedef struct _sim_cpu SIM_CPU; ++ + #define WITH_WATCHPOINTS 1 + + #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \ +diff --git a/sim/moxie/sim-main.h b/sim/moxie/sim-main.h +index b1a64fc..c60437e 100644 +--- a/sim/moxie/sim-main.h ++++ b/sim/moxie/sim-main.h +@@ -21,6 +21,9 @@ along with this program. If not, see . */ + #define SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/msp430/sim-main.h b/sim/msp430/sim-main.h +index 19c8cca..37bb42d 100644 +--- a/sim/msp430/sim-main.h ++++ b/sim/msp430/sim-main.h +@@ -23,6 +23,9 @@ + + #include "sim-basics.h" + #include "sim-signal.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "msp430-sim.h" + #include "sim-base.h" + +diff --git a/sim/sh/sim-main.h b/sim/sh/sim-main.h +index e67df28..e2e17d7 100644 +--- a/sim/sh/sim-main.h ++++ b/sim/sh/sim-main.h +@@ -20,6 +20,9 @@ along with this program. If not, see . */ + #define SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + typedef struct +diff --git a/sim/sh64/sim-main.h b/sim/sh64/sim-main.h +index 7b24ab0..8fb595e 100644 +--- a/sim/sh64/sim-main.h ++++ b/sim/sh64/sim-main.h +@@ -3,6 +3,11 @@ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++#define USING_SIM_BASE_H /* FIXME: quick hack */ ++ ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + /* sim-basics.h includes config.h but cgen-types.h must be included before + sim-basics.h and cgen-types.h needs config.h. */ + #include "config.h" +diff --git a/sim/v850/sim-main.h b/sim/v850/sim-main.h +index 5127d28..16cbd97 100644 +--- a/sim/v850/sim-main.h ++++ b/sim/v850/sim-main.h +@@ -16,6 +16,9 @@ + #include "sim-basics.h" + #include "sim-signal.h" + #include "sim-fpu.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + #include "simops.h" +-- +2.7.4 + diff --git a/bsp/buildroot/package/gdb/7.11.1/0001-Revert-sim-unify-SIM_CPU-definition.patch b/bsp/buildroot/package/gdb/7.11.1/0001-Revert-sim-unify-SIM_CPU-definition.patch new file mode 100644 index 00000000..8a8eece6 --- /dev/null +++ b/bsp/buildroot/package/gdb/7.11.1/0001-Revert-sim-unify-SIM_CPU-definition.patch @@ -0,0 +1,355 @@ +From 77080d5f7fd47dd567f22807d336bc9111f93d7b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 4 Aug 2016 23:44:24 +0200 +Subject: [PATCH] Revert "sim: unify SIM_CPU definition" + +This reverts commit 20bca71d82598a015de0991196e45f0b5f7ead81. + +This change causes a redefinition of SIM_CPU on the Blackfin +architecture, as it is defined in both the common sim/common/sim-base.h +and the architecture specific sim/bfin/sim-main.h. + +Signed-off-by: Thomas Petazzoni +--- + sim/arm/sim-main.h | 3 +++ + sim/avr/sim-main.h | 2 ++ + sim/bfin/sim-main.h | 2 -- + sim/common/sim-base.h | 2 -- + sim/cr16/sim-main.h | 2 ++ + sim/cris/sim-main.h | 3 +++ + sim/d10v/sim-main.h | 2 ++ + sim/frv/sim-main.h | 3 +++ + sim/ft32/sim-main.h | 2 ++ + sim/h8300/sim-main.h | 3 +++ + sim/iq2000/sim-main.h | 3 +++ + sim/lm32/sim-main.h | 3 +++ + sim/m32r/sim-main.h | 3 +++ + sim/m68hc11/sim-main.h | 3 +++ + sim/mcore/sim-main.h | 2 ++ + sim/microblaze/sim-main.h | 3 +++ + sim/mips/sim-main.h | 3 +++ + sim/mn10300/sim-main.h | 2 ++ + sim/moxie/sim-main.h | 3 +++ + sim/msp430/sim-main.h | 3 +++ + sim/sh/sim-main.h | 3 +++ + sim/sh64/sim-main.h | 3 +++ + sim/v850/sim-main.h | 3 +++ + 23 files changed, 57 insertions(+), 4 deletions(-) + +diff --git a/sim/arm/sim-main.h b/sim/arm/sim-main.h +index 3620810..f644122 100644 +--- a/sim/arm/sim-main.h ++++ b/sim/arm/sim-main.h +@@ -20,6 +20,9 @@ + #define SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/avr/sim-main.h b/sim/avr/sim-main.h +index 47155e3..cd41045 100644 +--- a/sim/avr/sim-main.h ++++ b/sim/avr/sim-main.h +@@ -21,6 +21,8 @@ along with this program. If not, see . */ + + #include "sim-basics.h" + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + struct _sim_cpu { +diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h +index 51fb87e..cf1ed57 100644 +--- a/sim/bfin/sim-main.h ++++ b/sim/bfin/sim-main.h +@@ -24,8 +24,6 @@ + #include "sim-basics.h" + #include "sim-signal.h" + +-/* TODO: Delete this. Need to convert bu32/etc... to common sim types +- and unwind the bfin-sim.h/machs.h include below first though. */ + typedef struct _sim_cpu SIM_CPU; + + #include "bfin-sim.h" +diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h +index 350b352..1b849f4 100644 +--- a/sim/common/sim-base.h ++++ b/sim/common/sim-base.h +@@ -72,8 +72,6 @@ typedef address_word sim_cia; + #define INVALID_INSTRUCTION_ADDRESS ((address_word)0 - 1) + #endif + +-/* TODO: Probably should just delete SIM_CPU. */ +-typedef struct _sim_cpu SIM_CPU; + typedef struct _sim_cpu sim_cpu; + + #include "sim-module.h" +diff --git a/sim/cr16/sim-main.h b/sim/cr16/sim-main.h +index 208f917..78e3996 100644 +--- a/sim/cr16/sim-main.h ++++ b/sim/cr16/sim-main.h +@@ -24,6 +24,8 @@ + typedef long int word; + typedef unsigned long int uword; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h +index 8aab970..0ff907f 100644 +--- a/sim/cris/sim-main.h ++++ b/sim/cris/sim-main.h +@@ -29,6 +29,9 @@ along with this program. If not, see . */ + one of -scache/-pbb. */ + #define WITH_SCACHE_PBB 1 + ++struct _sim_cpu; ++typedef struct _sim_cpu SIM_CPU; ++ + #include "symcat.h" + #include "sim-basics.h" + #include "cgen-types.h" +diff --git a/sim/d10v/sim-main.h b/sim/d10v/sim-main.h +index 76f06d8..fd5bd51 100644 +--- a/sim/d10v/sim-main.h ++++ b/sim/d10v/sim-main.h +@@ -24,6 +24,8 @@ + typedef long int word; + typedef unsigned long int uword; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/frv/sim-main.h b/sim/frv/sim-main.h +index f95c1cc..701e208 100644 +--- a/sim/frv/sim-main.h ++++ b/sim/frv/sim-main.h +@@ -19,6 +19,9 @@ along with this program. If not, see . */ + + /* Main header for the frv. */ + ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + /* sim-basics.h includes config.h but cgen-types.h must be included before + sim-basics.h and cgen-types.h needs config.h. */ + #include "config.h" +diff --git a/sim/ft32/sim-main.h b/sim/ft32/sim-main.h +index a15b247..eef0201 100644 +--- a/sim/ft32/sim-main.h ++++ b/sim/ft32/sim-main.h +@@ -25,6 +25,8 @@ + #include "sim-base.h" + #include "bfd.h" + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "ft32-sim.h" + + struct _sim_cpu { +diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h +index 6dbc1ac..e95c4d9 100644 +--- a/sim/h8300/sim-main.h ++++ b/sim/h8300/sim-main.h +@@ -87,6 +87,9 @@ enum h8_typecodes { + }; + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + /* Structure used to describe addressing */ +diff --git a/sim/iq2000/sim-main.h b/sim/iq2000/sim-main.h +index 829f9bb..a770dc5 100644 +--- a/sim/iq2000/sim-main.h ++++ b/sim/iq2000/sim-main.h +@@ -4,6 +4,9 @@ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + /* sim-basics.h includes config.h but cgen-types.h must be included before + sim-basics.h and cgen-types.h needs config.h. */ + #include "config.h" +diff --git a/sim/lm32/sim-main.h b/sim/lm32/sim-main.h +index 20e2b71..eeffde3 100644 +--- a/sim/lm32/sim-main.h ++++ b/sim/lm32/sim-main.h +@@ -25,6 +25,9 @@ + + #define WITH_SCACHE_PBB 1 + ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "symcat.h" + #include "sim-basics.h" + #include "cgen-types.h" +diff --git a/sim/m32r/sim-main.h b/sim/m32r/sim-main.h +index 5b24ce8..39f7ecc 100644 +--- a/sim/m32r/sim-main.h ++++ b/sim/m32r/sim-main.h +@@ -8,6 +8,9 @@ + one of -scache/-pbb. */ + #define WITH_SCACHE_PBB 1 + ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "symcat.h" + #include "sim-basics.h" + #include "cgen-types.h" +diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h +index b940df7..0aa096f 100644 +--- a/sim/m68hc11/sim-main.h ++++ b/sim/m68hc11/sim-main.h +@@ -21,6 +21,9 @@ along with this program. If not, see . */ + #define _SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-signal.h" + #include "sim-base.h" + +diff --git a/sim/mcore/sim-main.h b/sim/mcore/sim-main.h +index fce26e8..fa7ee9f 100644 +--- a/sim/mcore/sim-main.h ++++ b/sim/mcore/sim-main.h +@@ -24,6 +24,8 @@ along with this program. If not, see . */ + typedef long int word; + typedef unsigned long int uword; + ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/microblaze/sim-main.h b/sim/microblaze/sim-main.h +index 3a7b088..9e6bf01 100644 +--- a/sim/microblaze/sim-main.h ++++ b/sim/microblaze/sim-main.h +@@ -20,6 +20,9 @@ + + #include "microblaze.h" + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + /* The machine state. +diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h +index 0ea1234..eedbfc9 100644 +--- a/sim/mips/sim-main.h ++++ b/sim/mips/sim-main.h +@@ -27,6 +27,9 @@ along with this program. If not, see . */ + mips_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR)) + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/mn10300/sim-main.h b/sim/mn10300/sim-main.h +index 7171c03..3a917e7 100644 +--- a/sim/mn10300/sim-main.h ++++ b/sim/mn10300/sim-main.h +@@ -38,6 +38,8 @@ + #include "itable.h" + #include "idecode.h" + ++typedef struct _sim_cpu SIM_CPU; ++ + #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \ + mn10300_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR)) + +diff --git a/sim/moxie/sim-main.h b/sim/moxie/sim-main.h +index 7091f21..b6b5ca3 100644 +--- a/sim/moxie/sim-main.h ++++ b/sim/moxie/sim-main.h +@@ -21,6 +21,9 @@ along with this program. If not, see . */ + #define SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + #include "bfd.h" + +diff --git a/sim/msp430/sim-main.h b/sim/msp430/sim-main.h +index 4a2ab22..c7cdc5e 100644 +--- a/sim/msp430/sim-main.h ++++ b/sim/msp430/sim-main.h +@@ -23,6 +23,9 @@ + + #include "sim-basics.h" + #include "sim-signal.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "msp430-sim.h" + #include "sim-base.h" + +diff --git a/sim/sh/sim-main.h b/sim/sh/sim-main.h +index 4af7b03..6ab42a6 100644 +--- a/sim/sh/sim-main.h ++++ b/sim/sh/sim-main.h +@@ -20,6 +20,9 @@ along with this program. If not, see . */ + #define SIM_MAIN_H + + #include "sim-basics.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + typedef struct +diff --git a/sim/sh64/sim-main.h b/sim/sh64/sim-main.h +index da8f516..5fd7095 100644 +--- a/sim/sh64/sim-main.h ++++ b/sim/sh64/sim-main.h +@@ -3,6 +3,9 @@ + #ifndef SIM_MAIN_H + #define SIM_MAIN_H + ++struct _sim_cpu; /* FIXME: should be in sim-basics.h */ ++typedef struct _sim_cpu SIM_CPU; ++ + /* sim-basics.h includes config.h but cgen-types.h must be included before + sim-basics.h and cgen-types.h needs config.h. */ + #include "config.h" +diff --git a/sim/v850/sim-main.h b/sim/v850/sim-main.h +index e7276a6..1a45f97 100644 +--- a/sim/v850/sim-main.h ++++ b/sim/v850/sim-main.h +@@ -9,6 +9,9 @@ + #include "sim-basics.h" + #include "sim-signal.h" + #include "sim-fpu.h" ++ ++typedef struct _sim_cpu SIM_CPU; ++ + #include "sim-base.h" + + #include "simops.h" +-- +2.7.4 + diff --git a/bsp/buildroot/package/gdb/7.7.1/0001-Include-asm-ptrace.h-for-linux-aarch64-low.c.patch b/bsp/buildroot/package/gdb/7.7.1/0001-Include-asm-ptrace.h-for-linux-aarch64-low.c.patch deleted file mode 100644 index 89e34be4..00000000 --- a/bsp/buildroot/package/gdb/7.7.1/0001-Include-asm-ptrace.h-for-linux-aarch64-low.c.patch +++ /dev/null @@ -1,36 +0,0 @@ -From cbc39812c1721d7edd20285134fdf748d0f26127 Mon Sep 17 00:00:00 2001 -From: Ramana Radhakrishnan -Date: Fri, 23 May 2014 09:01:14 +0100 -Subject: [PATCH] Include asm/ptrace.h for linux-aarch64-low.c - -A recent change to glibc removed asm/ptrace.h from user.h for AArch64. -This meant that cross-native builds of gdbserver using trunk glibc broke -because linux-aarch64-low.c because user_hwdebug_state couldn't be found. - -This is like commit #036cd38182bde32d8297b630cd5c861d53b8949e - -2014-05-23 Ramana Radhakrishnan - - * linux-aarch64-low.c (asm/ptrace.h): Include. -[Romain: - - rebase on top of 7.7.1] -Signed-off-by: Romain Naour ---- - gdb/gdbserver/linux-aarch64-low.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c -index 1b0da6c..ba66bc8 100644 ---- a/gdb/gdbserver/linux-aarch64-low.c -+++ b/gdb/gdbserver/linux-aarch64-low.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - - #include "gdb_proc_service.h" --- -1.9.3 - diff --git a/bsp/buildroot/package/gdb/7.7.1/0002-Include-asm-ptrace.h-in-aarch64-linux-nat.c.patch b/bsp/buildroot/package/gdb/7.7.1/0002-Include-asm-ptrace.h-in-aarch64-linux-nat.c.patch deleted file mode 100644 index ccca8cbb..00000000 --- a/bsp/buildroot/package/gdb/7.7.1/0002-Include-asm-ptrace.h-in-aarch64-linux-nat.c.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 9c45794265a9dc9aebfbdc520d378dfc8fb7b694 Mon Sep 17 00:00:00 2001 -From: Ramana Radhakrishnan -Date: Thu, 22 May 2014 16:07:20 +0100 -Subject: [PATCH] Include asm/ptrace.h in aarch64-linux-nat.c - -A recent change to glibc removed asm/ptrace.h from user.h for -AArch64. This meant that cross-native builds of gdb using trunk -glibc broke because aarch64-linux-nat.c because user_hwdebug_state -couldn't be found. - -Fixed by including asm/ptrace.h like other ports. - -2014-05-22 Ramana Radhakrishnan - - * aarch64-linux-nat.c (asm/ptrace.h): Include. - -[Romain: rebase on top of 7.7.1] -Signed-off-by: Romain Naour ---- - gdb/aarch64-linux-nat.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c -index 31c26c6..710aa9b 100644 ---- a/gdb/aarch64-linux-nat.c -+++ b/gdb/aarch64-linux-nat.c -@@ -33,6 +33,7 @@ - - #include - #include -+#include - - #include "gregset.h" - --- -1.9.3 - diff --git a/bsp/buildroot/package/gdb/7.8.2/0001-gdbserver-fix-uClibc-whithout-MMU.patch b/bsp/buildroot/package/gdb/7.8.2/0001-gdbserver-fix-uClibc-whithout-MMU.patch deleted file mode 100644 index 42168df5..00000000 --- a/bsp/buildroot/package/gdb/7.8.2/0001-gdbserver-fix-uClibc-whithout-MMU.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 59432cbfe267ad89b7cfc73dcd702b8282ef4e9d Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Fri, 10 Apr 2015 22:58:07 +0200 -Subject: [PATCH] gdbserver: fix uClibc whithout MMU. - -Since commit d86d4aafd4fa22fa4cccb83253fb187b03f97f48, the pid -must be retrieved from current_inferior. - -The change has not been made in the function linux_read_offsets(). - -Fixes: -http://autobuild.buildroot.net/results/9e4/9e4df085319e346803c26c65478accb27eb950ae/build-end.log - -Signed-off-by: Romain Naour ---- - gdb/gdbserver/linux-low.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c -index 1a40897..71d078a 100644 ---- a/gdb/gdbserver/linux-low.c -+++ b/gdb/gdbserver/linux-low.c -@@ -4933,7 +4933,7 @@ static int - linux_read_offsets (CORE_ADDR *text_p, CORE_ADDR *data_p) - { - unsigned long text, text_end, data; -- int pid = lwpid_of (get_thread_lwp (current_inferior)); -+ int pid = lwpid_of (current_inferior); - - errno = 0; - --- -1.9.3 - diff --git a/bsp/buildroot/package/gdb/7.8.2/0002-gdbserver-xtensa-drop-xtensa_usrregs_info.patch b/bsp/buildroot/package/gdb/7.8.2/0002-gdbserver-xtensa-drop-xtensa_usrregs_info.patch deleted file mode 100644 index 93fe749e..00000000 --- a/bsp/buildroot/package/gdb/7.8.2/0002-gdbserver-xtensa-drop-xtensa_usrregs_info.patch +++ /dev/null @@ -1,47 +0,0 @@ -From deb44829ecc1dd38275af0fcf91acd319e227a89 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Fri, 17 Apr 2015 03:07:41 +0300 -Subject: [PATCH 1/2] gdbserver/xtensa: drop xtensa_usrregs_info - -xtensa_usrregs_info refers to undefined variables xtensa_num_regs and -xtensa_regmap. Drop xtensa_usrregs_info and replace pointer to usrregs -in regs_info with NULL since all registers are read/set through regsets. - -2015-04-17 Max Filippov -gdb/gdbserver/ - * linux-xtensa-low.c (xtensa_usrregs_info): Remove. - (regs_info): Replace usrregs pointer with NULL. - -Signed-off-by: Max Filippov ---- -Backported from: deb44829ecc1dd38275af0fcf91acd319e227a89 -Changes to ChangeLog are dropped. - - gdb/gdbserver/linux-xtensa-low.c | 8 +------- - 2 files changed, 6 insertions(+), 7 deletions(-) - -diff --git a/gdb/gdbserver/linux-xtensa-low.c b/gdb/gdbserver/linux-xtensa-low.c -index f7fafaf..e786da5 100644 ---- a/gdb/gdbserver/linux-xtensa-low.c -+++ b/gdb/gdbserver/linux-xtensa-low.c -@@ -186,16 +186,10 @@ static struct regsets_info xtensa_regsets_info = - NULL, /* disabled_regsets */ - }; - --static struct usrregs_info xtensa_usrregs_info = -- { -- xtensa_num_regs, -- xtensa_regmap, -- }; -- - static struct regs_info regs_info = - { - NULL, /* regset_bitmap */ -- &xtensa_usrregs_info, -+ NULL, /* usrregs */ - &xtensa_regsets_info - }; - --- -1.8.1.4 - diff --git a/bsp/buildroot/package/gdb/7.8.2/0003-gdbserver-xtensa-fix-typo-in-XCHAL_HAVE_LOOPS.patch b/bsp/buildroot/package/gdb/7.8.2/0003-gdbserver-xtensa-fix-typo-in-XCHAL_HAVE_LOOPS.patch deleted file mode 100644 index 027f700b..00000000 --- a/bsp/buildroot/package/gdb/7.8.2/0003-gdbserver-xtensa-fix-typo-in-XCHAL_HAVE_LOOPS.patch +++ /dev/null @@ -1,46 +0,0 @@ -From a2d5a9d76f2366ed93095fc5a63eafa06b22f808 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Fri, 17 Apr 2015 02:52:50 +0300 -Subject: [PATCH 2/2] gdbserver/xtensa: fix typo in XCHAL_HAVE_LOOPS - -This fixes lbeg/lend/lcount registers handling through gdbserver. - -2015-04-17 Max Filippov -gdb/gdbserver/ - * linux-xtensa-low.c (xtensa_fill_gregset) - (xtensa_store_gregset): Check XCHAL_HAVE_LOOPS instead of - XCHAL_HAVE_LOOP. - -Signed-off-by: Max Filippov ---- -Backported from: a2d5a9d76f2366ed93095fc5a63eafa06b22f808 -Changes to ChangeLog are dropped. - - gdb/gdbserver/linux-xtensa-low.c | 4 ++-- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/gdb/gdbserver/linux-xtensa-low.c b/gdb/gdbserver/linux-xtensa-low.c -index e786da5..4daccee 100644 ---- a/gdb/gdbserver/linux-xtensa-low.c -+++ b/gdb/gdbserver/linux-xtensa-low.c -@@ -59,7 +59,7 @@ xtensa_fill_gregset (struct regcache *regcache, void *buf) - - /* Loop registers, if hardware has it. */ - --#if XCHAL_HAVE_LOOP -+#if XCHAL_HAVE_LOOPS - collect_register_by_name (regcache, "lbeg", (char*)&rset[R_LBEG]); - collect_register_by_name (regcache, "lend", (char*)&rset[R_LEND]); - collect_register_by_name (regcache, "lcount", (char*)&rset[R_LCOUNT]); -@@ -94,7 +94,7 @@ xtensa_store_gregset (struct regcache *regcache, const void *buf) - - /* Loop registers, if hardware has it. */ - --#if XCHAL_HAVE_LOOP -+#if XCHAL_HAVE_LOOPS - supply_register_by_name (regcache, "lbeg", (char*)&rset[R_LBEG]); - supply_register_by_name (regcache, "lend", (char*)&rset[R_LEND]); - supply_register_by_name (regcache, "lcount", (char*)&rset[R_LCOUNT]); --- -1.8.1.4 - diff --git a/bsp/buildroot/package/gdb/7.9.1/0005-Add-some-casts-for-building-on-musl.patch b/bsp/buildroot/package/gdb/7.9.1/0005-Add-some-casts-for-building-on-musl.patch new file mode 100644 index 00000000..2469eb79 --- /dev/null +++ b/bsp/buildroot/package/gdb/7.9.1/0005-Add-some-casts-for-building-on-musl.patch @@ -0,0 +1,70 @@ +From d41401ace01c234f42697e190a2ac95991780626 Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Mon, 26 Oct 2015 13:20:12 -0700 +Subject: [PATCH] Add some casts for building on musl. + +gdb/ChangeLog: + + * linux-thread-db.c (find_new_threads_callback): Cast ti.ti_tid to + unsigned long for debug_printf. + (thread_db_pid_to_str): Ditto. + +gdb/gdbserver/ChangeLog: + + * thread-db.c (find_one_thread): Cast ti.ti_tid to unsigned long + for debug_printf. + (attach_thread, find_new_threads_callback): Ditto. + +[Arnout: removed the parts that don't apply, including ChangeLog] +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + gdb/ChangeLog | 5 +++++ + gdb/gdbserver/ChangeLog | 6 ++++++ + gdb/gdbserver/thread-db.c | 9 +++++---- + gdb/linux-thread-db.c | 5 +++-- + 4 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c +index ffe722d..3df10ff 100644 +--- a/gdb/gdbserver/thread-db.c ++++ b/gdb/gdbserver/thread-db.c +@@ -278,7 +278,7 @@ find_one_thread (ptid_t ptid) + + if (debug_threads) + debug_printf ("Found thread %ld (LWP %d)\n", +- ti.ti_tid, ti.ti_lid); ++ (unsigned long) ti.ti_tid, ti.ti_lid); + + if (lwpid != ti.ti_lid) + { +@@ -319,12 +319,12 @@ attach_thread (const td_thrhandle_t *th_p, td_thrinfo_t *ti_p) + + if (debug_threads) + debug_printf ("Attaching to thread %ld (LWP %d)\n", +- ti_p->ti_tid, ti_p->ti_lid); ++ (unsigned long) ti_p->ti_tid, ti_p->ti_lid); + err = linux_attach_lwp (ptid); + if (err != 0) + { + warning ("Could not attach to thread %ld (LWP %d): %s\n", +- ti_p->ti_tid, ti_p->ti_lid, ++ (unsigned long) ti_p->ti_tid, ti_p->ti_lid, + linux_ptrace_attach_fail_reason_string (ptid, err)); + return 0; + } +diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c +index 66e9595..41db29a 100644 +--- a/gdb/linux-thread-db.c ++++ b/gdb/linux-thread-db.c +@@ -1816,7 +1817,7 @@ thread_db_pid_to_str (struct target_ops *ops, ptid_t ptid) + + tid = thread_info->priv->tid; + snprintf (buf, sizeof (buf), "Thread 0x%lx (LWP %ld)", +- tid, ptid_get_lwp (ptid)); ++ (unsigned long) tid, ptid_get_lwp (ptid)); + + return buf; + } +-- +1.9.4 + diff --git a/bsp/buildroot/package/gdb/7.9.1/0006-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch b/bsp/buildroot/package/gdb/7.9.1/0006-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch new file mode 100644 index 00000000..60c357cd --- /dev/null +++ b/bsp/buildroot/package/gdb/7.9.1/0006-musl-Move-W_STOPCODE-to-common-gdb_wait-h.patch @@ -0,0 +1,63 @@ +From 963843d4d07aef6caa296dacf191f8adc9518596 Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Mon, 26 Oct 2015 13:24:01 -0700 +Subject: [PATCH] musl: Move W_STOPCODE to common/gdb_wait.h. + +gdb/ChangeLog: + + * common/gdb_wait.h (W_STOPCODE): Define, moved here from + gdbserver/linux-low.c. + (WSETSTOP): Simplify. + +gdb/gdbserver/ChangeLog: + + * linux-low.c (W_STOPCODE): Moved to common/gdb_wait.h. + +[Arnout: removed the parts that don't apply, including ChangeLog] +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + gdb/ChangeLog | 6 ++++++ + gdb/common/gdb_wait.h | 8 ++++---- + gdb/gdbserver/ChangeLog | 4 ++++ + gdb/gdbserver/linux-low.c | 4 ---- + 4 files changed, 14 insertions(+), 8 deletions(-) + +diff --git a/gdb/common/gdb_wait.h b/gdb/common/gdb_wait.h +index 9b250d2..412f813 100644 +--- a/gdb/common/gdb_wait.h ++++ b/gdb/common/gdb_wait.h +@@ -85,12 +85,12 @@ + # endif + #endif + ++#ifndef W_STOPCODE ++#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) ++#endif ++ + #ifndef WSETSTOP +-# ifdef W_STOPCODE + #define WSETSTOP(w,sig) ((w) = W_STOPCODE(sig)) +-# else +-#define WSETSTOP(w,sig) ((w) = (0177 | ((sig) << 8))) +-# endif + #endif + + /* For native GNU/Linux we may use waitpid and the __WCLONE option. +diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c +index 0c552b8..7ed67c7 100644 +--- a/gdb/gdbserver/linux-low.c ++++ b/gdb/gdbserver/linux-low.c +@@ -70,10 +70,6 @@ + #define O_LARGEFILE 0 + #endif + +-#ifndef W_STOPCODE +-#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) +-#endif +- + /* This is the kernel's hard limit. Not to be confused with + SIGRTMIN. */ + #ifndef __SIGRTMIN +-- +1.9.4 + diff --git a/bsp/buildroot/package/gdb/7.9.1/0007-move-__SIGRTMIN.patch b/bsp/buildroot/package/gdb/7.9.1/0007-move-__SIGRTMIN.patch new file mode 100644 index 00000000..38ba1f02 --- /dev/null +++ b/bsp/buildroot/package/gdb/7.9.1/0007-move-__SIGRTMIN.patch @@ -0,0 +1,58 @@ +From 682b25469e66ea45b214e95962671373983c118f Mon Sep 17 00:00:00 2001 +From: Doug Evans +Date: Mon, 26 Oct 2015 13:30:57 -0700 +Subject: [PATCH] Move __SIGRTMIN. + +gdb/ChangeLog: + + * nat/linux-nat.h (__SIGRTMIN): Move here from gdbserver/linux-low.c. + +gdb/gdbserver/ChangeLog: + + * linux-low.c (__SIGRTMIN): Move to nat/linux-nat.h. + +[Arnout: removed the parts that don't apply, including ChangeLog] +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + gdb/ChangeLog | 4 ++++ + gdb/gdbserver/ChangeLog | 4 ++++ + gdb/gdbserver/linux-low.c | 6 ------ + gdb/nat/linux-nat.h | 5 +++++ + 4 files changed, 13 insertions(+), 6 deletions(-) + +diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c +index 7ed67c7..e778c4c 100644 +--- a/gdb/gdbserver/linux-low.c ++++ b/gdb/gdbserver/linux-low.c +@@ -70,12 +70,6 @@ + #define O_LARGEFILE 0 + #endif + +-/* This is the kernel's hard limit. Not to be confused with +- SIGRTMIN. */ +-#ifndef __SIGRTMIN +-#define __SIGRTMIN 32 +-#endif +- + /* Some targets did not define these ptrace constants from the start, + so gdbserver defines them locally here. In the future, these may + be removed after they are added to asm/ptrace.h. */ +diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h +index 0633fa9..70e6274 100644 +--- a/gdb/nat/linux-nat.h ++++ b/gdb/nat/linux-nat.h +@@ -25,6 +25,11 @@ + struct lwp_info; + struct arch_lwp_info; + ++/* This is the kernel's hard limit. Not to be confused with SIGRTMIN. */ ++#ifndef __SIGRTMIN ++#define __SIGRTMIN 32 ++#endif ++ + /* Unlike other extended result codes, WSTOPSIG (status) on + PTRACE_O_TRACESYSGOOD syscall events doesn't return SIGTRAP, but + instead SIGTRAP with bit 7 set. */ +-- +1.9.4 + diff --git a/bsp/buildroot/package/gdb/Config.in.host b/bsp/buildroot/package/gdb/Config.in.host index 68076945..081073b9 100644 --- a/bsp/buildroot/package/gdb/Config.in.host +++ b/bsp/buildroot/package/gdb/Config.in.host @@ -23,27 +23,29 @@ config BR2_PACKAGE_HOST_GDB_PYTHON help This option enables the Python support in the cross gdb. +config BR2_PACKAGE_HOST_GDB_SIM + bool "Simulator support" + depends on !BR2_arc + help + This option enables the simulator support in the cross gdb. + choice prompt "GDB debugger Version" depends on !BR2_arc depends on !BR2_microblaze - default BR2_GDB_VERSION_7_9 + default BR2_GDB_VERSION_7_10 help Select the version of gdb you wish to use. - config BR2_GDB_VERSION_7_7 - bool "gdb 7.7.x" - depends on BR2_DEPRECATED_SINCE_2015_05 - - config BR2_GDB_VERSION_7_8 - bool "gdb 7.8.x" - config BR2_GDB_VERSION_7_9 bool "gdb 7.9.x" config BR2_GDB_VERSION_7_10 bool "gdb 7.10.x" + config BR2_GDB_VERSION_7_11 + bool "gdb 7.11.x" + endchoice endif @@ -52,9 +54,8 @@ endif config BR2_GDB_VERSION string depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB - default "arc-2015.12-gdb" if BR2_arc + default "arc-2016.03-gdb" if BR2_arc default "6be65fb56ea6694a9260733a536a023a1e2d4d57" if BR2_microblaze - default "7.7.1" if BR2_GDB_VERSION_7_7 - default "7.8.2" if BR2_GDB_VERSION_7_8 - default "7.9.1" if BR2_GDB_VERSION_7_9 || !BR2_PACKAGE_HOST_GDB - default "7.10.1" if BR2_GDB_VERSION_7_10 + default "7.9.1" if BR2_GDB_VERSION_7_9 + default "7.10.1" if BR2_GDB_VERSION_7_10 || !BR2_PACKAGE_HOST_GDB + default "7.11.1" if BR2_GDB_VERSION_7_11 diff --git a/bsp/buildroot/package/gdb/gdb.hash b/bsp/buildroot/package/gdb/gdb.hash index 3abdcd01..611a75ca 100644 --- a/bsp/buildroot/package/gdb/gdb.hash +++ b/bsp/buildroot/package/gdb/gdb.hash @@ -1,8 +1,8 @@ # From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum -sha512 887b9b726dae8f6e3e5e41574460a67e4f9002b0d47bc985dcf63bdf3518397a90b6a208cb5b19e5ed2341715ad75cfeed4df4fb423f39f74218e36bc87f1cab gdb-7.7.1.tar.bz2 -sha512 face5bf1b4ce144fc8604fc84620beed956177a11fd632b4e41906fc7f632910b2b43a50e6cfdfd6cbd876ee527c813bddab8df29dc560a6c36694cdb8edc4e4 gdb-7.8.2.tar.xz sha512 eebdf88b24e52e792b8a4b89ea85790de72b462a7810b44975fdf4232c068f353b15506071f450102a9d4bcecdde8e93dc3748a10699b7f73f3e04fb2d9d8414 gdb-7.9.1.tar.xz sha512 17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010 gdb-7.10.1.tar.xz -# No hash for the ARC & microblaze variants, comes from the github-helper: -none xxx gdb-arc-2015.12-gdb.tar.gz -none xxx gdb-6be65fb56ea6694a9260733a536a023a1e2d4d57.tar.gz +sha512 f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360 gdb-7.11.1.tar.xz + +# Locally calculated (fetched from Github) +sha512 0a467091d4b01fbecabb4b8da1cb743025c70e7f4874a0b5c8fa2ec623569a39bde6762b91806de0be6e63711aeb6909715cfbe43860de73d8aec6159a9f10a7 gdb-6be65fb56ea6694a9260733a536a023a1e2d4d57.tar.gz +sha512 1abef1357896c2b57cfa7f7414eedc49d0de26b54321c680c2d027b1a27ec453d421e7f89a5281336047542379fd4820685802059efbd32b87c5ccffbaf2bd16 gdb-arc-2016.03-gdb.tar.gz diff --git a/bsp/buildroot/package/gdb/gdb.mk b/bsp/buildroot/package/gdb/gdb.mk index 32d52eb3..1c778e90 100644 --- a/bsp/buildroot/package/gdb/gdb.mk +++ b/bsp/buildroot/package/gdb/gdb.mk @@ -11,16 +11,13 @@ GDB_SOURCE = gdb-$(GDB_VERSION).tar.xz ifeq ($(BR2_arc),y) GDB_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(GDB_VERSION)) GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz +GDB_FROM_GIT = y endif ifeq ($(BR2_microblaze),y) GDB_SITE = $(call github,Xilinx,gdb,$(GDB_VERSION)) GDB_SOURCE = gdb-$(GDB_VERSION).tar.gz -endif - -# Use .tar.bz2 for 7.7.x since there was no .tar.xz release back then -ifneq ($(filter 7.7.%,$(GDB_VERSION)),) -GDB_SOURCE = gdb-$(GDB_VERSION).tar.bz2 +GDB_FROM_GIT = y endif GDB_LICENSE = GPLv2+, LGPLv2+, GPLv3+, LGPLv3+ @@ -40,6 +37,13 @@ endif # also need ncurses. HOST_GDB_DEPENDENCIES = host-expat host-ncurses +# Starting with gdb 7.10, gdb wants to re-generate its documentation. +# We were trying to avoid that by patching the Makefiles, but it wasn't +# working in all situations. So, we simply add a dependency on +# host-texinfo in all case. +GDB_DEPENDENCIES += host-texinfo +HOST_GDB_DEPENDENCIES += host-texinfo + # Apply the Xtensa specific patches XTENSA_CORE_NAME = $(call qstrip, $(BR2_XTENSA_CORE_NAME)) ifneq ($(XTENSA_CORE_NAME),) @@ -51,18 +55,10 @@ GDB_PRE_PATCH_HOOKS += GDB_XTENSA_PRE_PATCH HOST_GDB_PRE_PATCH_HOOKS += GDB_XTENSA_PRE_PATCH endif -# Prevent gdb to build the documentation -define GDB_DISABLE_DOC - $(SED) '/^SUBDIRS =/ s/doc//' $(@D)/gdb/Makefile.in - if test -e $(@D)/bfd/doc/Makefile.in ; then \ - $(SED) 's/^INFO_DEPS =.*$$/INFO_DEPS =/' $(@D)/bfd/doc/Makefile.in ; \ - fi - if test -e $(@D)/gprof/Makefile.in ; then \ - $(SED) 's/^INFO_DEPS =.*$$/INFO_DEPS =/' $(@D)/gprof/Makefile.in ; \ - fi -endef -GDB_PRE_CONFIGURE_HOOKS += GDB_DISABLE_DOC -HOST_GDB_PRE_CONFIGURE_HOOKS += GDB_DISABLE_DOC +ifeq ($(GDB_FROM_GIT),y) +GDB_DEPENDENCIES += host-flex host-bison +HOST_GDB_DEPENDENCIES += host-flex host-bison +endif # When gdb sources are fetched from the binutils-gdb repository, they # also contain the binutils sources, but binutils shouldn't be built, @@ -72,6 +68,13 @@ GDB_DISABLE_BINUTILS_CONF_OPTS = \ --disable-ld \ --disable-gas +# Starting with gdb 7.11, the bundled gnulib tries to use +# rpl_gettimeofday (gettimeofday replacement) due to the code being +# unable to determine if the replacement function should be used or +# not when cross-compiling with uClibc or musl as C libraries. So use +# gl_cv_func_gettimeofday_clobber=no to not use rpl_gettimeofday, +# assuming musl and uClibc have a properly working gettimeofday +# implementation. GDB_CONF_ENV = \ ac_cv_type_uintptr_t=yes \ gt_cv_func_gettext_libintl=yes \ @@ -81,7 +84,8 @@ GDB_CONF_ENV = \ bash_cv_must_reinstall_sighandlers=no \ bash_cv_func_sigsetjmp=present \ bash_cv_have_mbstate_t=yes \ - gdb_cv_func_sigsetjmp=yes + gdb_cv_func_sigsetjmp=yes \ + gl_cv_func_gettimeofday_clobber=no # The shared only build is not supported by gdb, so enable static build for # build-in libraries with --enable-static. @@ -120,6 +124,7 @@ endif ifeq ($(BR2_PACKAGE_XZ),y) GDB_CONF_OPTS += --with-lzma +GDB_CONF_OPTS += --with-liblzma-prefix=$(STAGING_DIR)/usr GDB_DEPENDENCIES += xz else GDB_CONF_OPTS += --without-lzma @@ -167,8 +172,7 @@ HOST_GDB_CONF_OPTS = \ --enable-threads \ --disable-werror \ --without-included-gettext \ - $(GDB_DISABLE_BINUTILS_CONF_OPTS) \ - --disable-sim + $(GDB_DISABLE_BINUTILS_CONF_OPTS) ifeq ($(BR2_PACKAGE_HOST_GDB_TUI),y) HOST_GDB_CONF_OPTS += --enable-tui @@ -183,6 +187,20 @@ else HOST_GDB_CONF_OPTS += --without-python endif +# workaround a bug if in-tree build is used for bfin sim +define HOST_GDB_BFIN_SIM_WORKAROUND + $(RM) $(@D)/sim/common/tconfig.h +endef + +ifeq ($(BR2_PACKAGE_HOST_GDB_SIM),y) +HOST_GDB_CONF_OPTS += --enable-sim +ifeq ($(BR2_bfin),y) +HOST_GDB_PRE_CONFIGURE_HOOKS += HOST_GDB_BFIN_SIM_WORKAROUND +endif +else +HOST_GDB_CONF_OPTS += --disable-sim +endif + # legacy $arch-linux-gdb symlink define HOST_GDB_ADD_SYMLINK cd $(HOST_DIR)/usr/bin && \ diff --git a/bsp/buildroot/package/gdbm/gdbm.hash b/bsp/buildroot/package/gdbm/gdbm.hash index e7d35923..9759d870 100644 --- a/bsp/buildroot/package/gdbm/gdbm.hash +++ b/bsp/buildroot/package/gdbm/gdbm.hash @@ -1,2 +1,3 @@ -# From http://lists.gnu.org/archive/html/info-gnu/2013-12/msg00012.html -sha1 ce433d0f192c21d41089458ca5c8294efe9806b4 gdbm-1.11.tar.gz +# From http://lists.gnu.org/archive/html/info-gnu/2016-05/msg00009.html +md5 9ce96ff4c99e74295ea19040931c8fb9 gdbm-1.12.tar.gz +sha1 86513e8871bb376bc014e9e5a2d18a8e0a8ea2f5 gdbm-1.12.tar.gz diff --git a/bsp/buildroot/package/gdbm/gdbm.mk b/bsp/buildroot/package/gdbm/gdbm.mk index f7a43700..55ece880 100644 --- a/bsp/buildroot/package/gdbm/gdbm.mk +++ b/bsp/buildroot/package/gdbm/gdbm.mk @@ -4,7 +4,7 @@ # ################################################################################ -GDBM_VERSION = 1.11 +GDBM_VERSION = 1.12 GDBM_SITE = $(BR2_GNU_MIRROR)/gdbm GDBM_LICENSE = GPLv3+ GDBM_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/gdk-pixbuf/S26gdk-pixbuf b/bsp/buildroot/package/gdk-pixbuf/S26gdk-pixbuf deleted file mode 100644 index 82b7944e..00000000 --- a/bsp/buildroot/package/gdk-pixbuf/S26gdk-pixbuf +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# -# run gdk-pixbuf-query-loaders if needed - -FILE=/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache - -case "$1" in - start|"") - if [ ! -f "$FILE" ] ; then - /usr/bin/gdk-pixbuf-query-loaders --update-cache - fi - ;; - stop) - ;; - *) - echo "Usage: $0 {start|stop}" >&2 - exit 1 - ;; -esac diff --git a/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.hash b/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.hash index 186e158e..e73170cf 100644 --- a/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.hash +++ b/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.32/gdk-pixbuf-2.32.3.sha256sum -sha256 2b6771f1ac72f687a8971e59810b8dc658e65e7d3086bd2e676e618fd541d031 gdk-pixbuf-2.32.3.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.34/gdk-pixbuf-2.34.0.sha256sum +sha256 d55e5b383ee219bd0e23bf6ed4427d56a7db5379729a6e3e0a0e0eba9a8d8879 gdk-pixbuf-2.34.0.tar.xz diff --git a/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.mk b/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.mk index be79e11c..36eed60a 100644 --- a/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.mk +++ b/bsp/buildroot/package/gdk-pixbuf/gdk-pixbuf.mk @@ -4,13 +4,17 @@ # ################################################################################ -GDK_PIXBUF_VERSION_MAJOR = 2.32 -GDK_PIXBUF_VERSION = $(GDK_PIXBUF_VERSION_MAJOR).3 +GDK_PIXBUF_VERSION_MAJOR = 2.34 +GDK_PIXBUF_VERSION = $(GDK_PIXBUF_VERSION_MAJOR).0 GDK_PIXBUF_SOURCE = gdk-pixbuf-$(GDK_PIXBUF_VERSION).tar.xz GDK_PIXBUF_SITE = http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/$(GDK_PIXBUF_VERSION_MAJOR) GDK_PIXBUF_LICENSE = LGPLv2+ GDK_PIXBUF_LICENSE_FILES = COPYING GDK_PIXBUF_INSTALL_STAGING = YES +GDK_PIXBUF_DEPENDENCIES = \ + host-gdk-pixbuf host-libglib2 host-pkgconf \ + libglib2 $(if $(BR2_ENABLE_LOCALE),,libiconv) +HOST_GDK_PIXBUF_DEPENDENCIES = host-libpng host-pkgconf host-libglib2 GDK_PIXBUF_CONF_ENV = \ ac_cv_path_GLIB_GENMARSHAL=$(LIBGLIB2_HOST_BINARY) \ @@ -25,17 +29,21 @@ GDK_PIXBUF_DEPENDENCIES += libpng endif ifneq ($(BR2_PACKAGE_JPEG),y) +HOST_GDK_PIXBUF_CONF_OPTS += --without-libjpeg GDK_PIXBUF_CONF_OPTS += --without-libjpeg else GDK_PIXBUF_DEPENDENCIES += jpeg +HOST_GDK_PIXBUF_DEPENDENCIES += host-libjpeg endif ifneq ($(BR2_PACKAGE_TIFF),y) GDK_PIXBUF_CONF_OPTS += --without-libtiff +HOST_GDK_PIXBUF_CONF_OPTS += --without-libtiff else -GDK_PIXBUF_DEPENDENCIES += tiff host-pkgconf +GDK_PIXBUF_DEPENDENCIES += tiff GDK_PIXBUF_CONF_ENV += \ LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs libtiff-4`" +HOST_GDK_PIXBUF_DEPENDENCIES += host-tiff endif ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) @@ -43,14 +51,21 @@ GDK_PIXBUF_CONF_OPTS += --with-x11 GDK_PIXBUF_DEPENDENCIES += xlib_libX11 endif -GDK_PIXBUF_DEPENDENCIES += \ - $(if $(BR2_ENABLE_LOCALE),,libiconv) \ - host-pkgconf libglib2 - -define GDK_PIXBUF_INSTALL_INIT_SYSV - $(INSTALL) -m 755 -D package/gdk-pixbuf/S26gdk-pixbuf \ - $(TARGET_DIR)/etc/init.d/S26gdk-pixbuf +# gdk-pixbuf requires the loaders.cache file populated to work properly +# Rather than doing so at runtime, since the fs can be read-only, do so +# here after building and installing to target. +# And since the cache file will contain absolute host directory names we +# need to sanitize (strip) them. +ifeq ($(BR2_STATIC_LIBS),) +define GDK_PIXBUF_UPDATE_CACHE + GDK_PIXBUF_MODULEDIR=$(HOST_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders \ + $(HOST_DIR)/usr/bin/gdk-pixbuf-query-loaders \ + > $(TARGET_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache + $(SED) "s,$(HOST_DIR),,g" \ + $(TARGET_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache endef +GDK_PIXBUF_POST_INSTALL_TARGET_HOOKS += GDK_PIXBUF_UPDATE_CACHE +endif # Tests don't build correctly with uClibc define GDK_PIXBUF_DISABLE_TESTS @@ -59,11 +74,4 @@ endef GDK_PIXBUF_POST_PATCH_HOOKS += GDK_PIXBUF_DISABLE_TESTS $(eval $(autotools-package)) - -HOST_GDK_PIXBUF_CONF_OPTS = \ - --without-libjpeg \ - --without-libtiff - -HOST_GDK_PIXBUF_DEPENDENCIES = host-libpng host-pkgconf host-libglib2 - $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/genimage/genimage.mk b/bsp/buildroot/package/genimage/genimage.mk index 2dffbc55..489e8d01 100644 --- a/bsp/buildroot/package/genimage/genimage.mk +++ b/bsp/buildroot/package/genimage/genimage.mk @@ -7,7 +7,7 @@ GENIMAGE_VERSION = 8 GENIMAGE_SOURCE = genimage-$(GENIMAGE_VERSION).tar.xz GENIMAGE_SITE = http://www.pengutronix.de/software/genimage/download -GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse +HOST_GENIMAGE_DEPENDENCIES = host-pkgconf host-libconfuse GENIMAGE_LICENSE = GPLv2 $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/getent/getent.mk b/bsp/buildroot/package/getent/getent.mk index 18f09912..ed249e8d 100644 --- a/bsp/buildroot/package/getent/getent.mk +++ b/bsp/buildroot/package/getent/getent.mk @@ -4,10 +4,6 @@ # ################################################################################ -# source included in Buildroot -GETENT_SOURCE = - -GETENT_VERSION = buildroot-$(BR2_VERSION) GETENT_LICENSE = LGPLv2.1+ # For glibc toolchains, we use the getent program built/installed by diff --git a/bsp/buildroot/package/gettext/gettext.hash b/bsp/buildroot/package/gettext/gettext.hash index 3236fda7..cff6eb10 100644 --- a/bsp/buildroot/package/gettext/gettext.hash +++ b/bsp/buildroot/package/gettext/gettext.hash @@ -1,3 +1,3 @@ -# From http://lists.gnu.org/archive/html/bug-gettext/2015-12/msg00019.html -md5 f81e50556da41b44c1d59ac93474dca5 gettext-0.19.7.tar.xz -sha1 4b2574b76d14c98270bf607a2a62f033524d8e8c gettext-0.19.7.tar.xz +# From http://lists.gnu.org/archive/html/bug-gettext/2016-06/msg00008.html +md5 df3f5690eaa30fd228537b00cb7b7590 gettext-0.19.8.1.tar.xz +sha1 e0fe90ede22f7f16bbde7bdea791a835f2773fc9 gettext-0.19.8.1.tar.xz diff --git a/bsp/buildroot/package/gettext/gettext.mk b/bsp/buildroot/package/gettext/gettext.mk index 0b4e5dde..1435388e 100644 --- a/bsp/buildroot/package/gettext/gettext.mk +++ b/bsp/buildroot/package/gettext/gettext.mk @@ -4,7 +4,7 @@ # ################################################################################ -GETTEXT_VERSION = 0.19.7 +GETTEXT_VERSION = 0.19.8.1 GETTEXT_SITE = $(BR2_GNU_MIRROR)/gettext GETTEXT_SOURCE = gettext-$(GETTEXT_VERSION).tar.xz GETTEXT_INSTALL_STAGING = YES @@ -60,12 +60,6 @@ endef GETTEXT_POST_INSTALL_TARGET_HOOKS += GETTEXT_REMOVE_UNNEEDED -define GETTEXT_GETTEXTIZE_EYE_CANDY - $(SED) '/Press Return\|read dummy/d' $(HOST_DIR)/usr/bin/gettextize -endef - -HOST_GETTEXT_POST_INSTALL_HOOKS += GETTEXT_GETTEXTIZE_EYE_CANDY - # Force build with NLS support, otherwise libintl is not built # This is needed because some packages (eg. libglib2) requires # locales, but do not properly depend on BR2_ENABLE_LOCALE, and @@ -81,6 +75,16 @@ define HOST_GETTEXT_GETTEXTIZE_CONFIRMATION endef HOST_GETTEXT_POST_INSTALL_HOOKS += HOST_GETTEXT_GETTEXTIZE_CONFIRMATION +# autoreconf expects gettextize to install ABOUT-NLS, but it only gets +# installed by gettext-runtime which we don't build/install for the +# host, so do it manually +define HOST_GETTEXT_ADD_ABOUT_NLS + $(INSTALL) -m 0644 $(@D)/$(HOST_GETTEXT_SUBDIR)/ABOUT-NLS \ + $(HOST_DIR)/usr/share/gettext/ABOUT-NLS +endef + +HOST_GETTEXT_POST_INSTALL_HOOKS += HOST_GETTEXT_ADD_ABOUT_NLS + GETTEXTIZE = $(HOST_CONFIGURE_OPTS) AUTOM4TE=$(HOST_DIR)/usr/bin/autom4te $(HOST_DIR)/usr/bin/gettextize -f $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gflags/gflags.hash b/bsp/buildroot/package/gflags/gflags.hash index 9c8b27a4..5b224113 100644 --- a/bsp/buildroot/package/gflags/gflags.hash +++ b/bsp/buildroot/package/gflags/gflags.hash @@ -1,2 +1,2 @@ -# No hash for v2.1.2, comes from the github-helper: -none xxx gflags-v2.1.2.tar.gz +# Locally computed +sha256 d8331bd0f7367c8afd5fcb5f5e85e96868a00fd24b7276fa5fcee1e5575c2662 gflags-v2.1.2.tar.gz diff --git a/bsp/buildroot/package/giflib/giflib.hash b/bsp/buildroot/package/giflib/giflib.hash index 94bcb5d7..cdd7bbde 100644 --- a/bsp/buildroot/package/giflib/giflib.hash +++ b/bsp/buildroot/package/giflib/giflib.hash @@ -1,3 +1,3 @@ # From http://sourceforge.net/projects/giflib/files -md5 323a9f11ab56c8a2d1715376410ce376 giflib-5.1.2.tar.bz2 -sha1 3f7bc86280db30a7120b2113f9f261301c515ad2 giflib-5.1.2.tar.bz2 +md5 2c171ced93c0e83bb09e6ccad8e3ba2b giflib-5.1.4.tar.bz2 +sha1 5f1157cfc377916280849e247b8e34fa0446513f giflib-5.1.4.tar.bz2 diff --git a/bsp/buildroot/package/giflib/giflib.mk b/bsp/buildroot/package/giflib/giflib.mk index 6f67a99f..799ae732 100644 --- a/bsp/buildroot/package/giflib/giflib.mk +++ b/bsp/buildroot/package/giflib/giflib.mk @@ -4,7 +4,7 @@ # ################################################################################ -GIFLIB_VERSION = 5.1.2 +GIFLIB_VERSION = 5.1.4 GIFLIB_SOURCE = giflib-$(GIFLIB_VERSION).tar.bz2 GIFLIB_SITE = http://downloads.sourceforge.net/project/giflib GIFLIB_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/git/git.hash b/bsp/buildroot/package/git/git.hash index 802855d4..e7763f30 100644 --- a/bsp/buildroot/package/git/git.hash +++ b/bsp/buildroot/package/git/git.hash @@ -1,2 +1,2 @@ # From: https://www.kernel.org/pub/software/scm/git/sha256sums.asc -sha256 1c0170952163e0b240256bc47388b95c617cf8cf446c93261df83d42cf5dd466 git-2.6.4.tar.xz +sha256 e8fe60bc72c1c979feb43740b3c74fea7f8ffbe7712b71cd9734ddb9c89282a2 git-2.9.1.tar.xz diff --git a/bsp/buildroot/package/git/git.mk b/bsp/buildroot/package/git/git.mk index 8d9d3abf..2f282007 100644 --- a/bsp/buildroot/package/git/git.mk +++ b/bsp/buildroot/package/git/git.mk @@ -4,7 +4,7 @@ # ################################################################################ -GIT_VERSION = 2.6.4 +GIT_VERSION = 2.9.1 GIT_SOURCE = git-$(GIT_VERSION).tar.xz GIT_SITE = https://www.kernel.org/pub/software/scm/git GIT_LICENSE = GPLv2 LGPLv2.1+ diff --git a/bsp/buildroot/package/glib-networking/glib-networking.hash b/bsp/buildroot/package/glib-networking/glib-networking.hash index 22518ceb..a495af14 100644 --- a/bsp/buildroot/package/glib-networking/glib-networking.hash +++ b/bsp/buildroot/package/glib-networking/glib-networking.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.46/glib-networking-2.46.1.sha256sum -sha256 d5034214217f705891b6c9e719cc2c583c870bfcfdc454ebbb5e5e8940ac90b1 glib-networking-2.46.1.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.48/glib-networking-2.48.2.sha256sum +sha256 925c0c49d6b2b8b5695f2e33cd952d1dbb7d18d3f2f796413577719315bb3a84 glib-networking-2.48.2.tar.xz diff --git a/bsp/buildroot/package/glib-networking/glib-networking.mk b/bsp/buildroot/package/glib-networking/glib-networking.mk index b7b92c6c..b6e40f84 100644 --- a/bsp/buildroot/package/glib-networking/glib-networking.mk +++ b/bsp/buildroot/package/glib-networking/glib-networking.mk @@ -4,8 +4,8 @@ # ################################################################################ -GLIB_NETWORKING_VERSION_MAJOR = 2.46 -GLIB_NETWORKING_VERSION = $(GLIB_NETWORKING_VERSION_MAJOR).1 +GLIB_NETWORKING_VERSION_MAJOR = 2.48 +GLIB_NETWORKING_VERSION = $(GLIB_NETWORKING_VERSION_MAJOR).2 GLIB_NETWORKING_SITE = http://ftp.gnome.org/pub/gnome/sources/glib-networking/$(GLIB_NETWORKING_VERSION_MAJOR) GLIB_NETWORKING_SOURCE = glib-networking-$(GLIB_NETWORKING_VERSION).tar.xz GLIB_NETWORKING_INSTALL_STAGING = YES @@ -14,6 +14,8 @@ GLIB_NETWORKING_DEPENDENCIES = \ host-pkgconf \ host-intltool \ libglib2 +GLIB_NETWORKING_CONF_OPTS = \ + --with-ca-certificates=/etc/ssl/certs/ca-certificates.crt GLIB_NETWORKING_LICENSE = LGPLv2+ GLIB_NETWORKING_LICENSE_FILES = COPYING GLIB_NETWORKING_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) \ diff --git a/bsp/buildroot/package/glibc/2.18-svnr23787/0001-CVE-2014-7817-eglibc.patch b/bsp/buildroot/package/glibc/2.18-svnr23787/0001-CVE-2014-7817-eglibc.patch deleted file mode 100644 index da2f49de..00000000 --- a/bsp/buildroot/package/glibc/2.18-svnr23787/0001-CVE-2014-7817-eglibc.patch +++ /dev/null @@ -1,174 +0,0 @@ -From https://bugzilla.redhat.com/show_bug.cgi?id=1157689 -Modified for eglibc. - -Signed-off-by: Gustavo Zacarias - -WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! -EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!! -SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! - -CVE-2014-7817: - -The function wordexp() fails to properly handle the WRDE_NOCMD -flag when processing arithmetic inputs in the form of "$((... ``))" -where "..." can be anything valid. The backticks in the arithmetic -epxression are evaluated by in a shell even if WRDE_NOCMD forbade -command substitution. This allows an attacker to attempt to pass -dangerous commands via constructs of the above form, and bypass -the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD -in parse_arith(). The patch also hardens parse_backticks() and -parse_comm() to check for WRDE_NOCMD flag and return an error instead -of ever running a shell. - -We expand the testsuite and add 3 new regression tests of roughtly -the same form but with a couple of nested levels. - -On top of the 3 new tests we add fork validation to the WRDE_NOCMD -testing. If any forks are detected during the execution of a wordexp() -call with WRDE_NOCMD, the test is marked as failed. This is slightly -heuristic since vfork might be used, but it provides a higher level -of assurance that no shells were executed as part of command substitution -with WRDE_NOCMD in effect. In addition it doesn't require libpthread or -libdl, instead we use the public implementation namespace function -__register_atfork (already part of the public ABI for libpthread). - -Tested on x86_64 with no regressions. - -2014-10-27 Carlos O'Donell - - * wordexp-test.c (__dso_handle): Add prototype. - (__register_atfork): Likewise. - (__app_register_atfork): New function. - (registered_forks): New global. - (register_fork): New function. - (test_case): Add 3 new tests for WRDE_CMDSUB. - (main): Call __app_register_atfork. - (testit): If WRDE_NOCMD set registered_forks to zero, run test, and - if fork count is non-zero fail the test. - * posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag - is set and parsing '`'. - (parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set. - (parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and - parsing '`'. - -diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c -index 4957006..5ce2a1b 100644 ---- a/libc/posix/wordexp-test.c -+++ b/libc/posix/wordexp-test.c -@@ -27,6 +27,25 @@ - - #define IFS " \n\t" - -+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden"))); -+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *); -+ -+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void)) -+{ -+ return __register_atfork (prepare, parent, child, -+ &__dso_handle == NULL ? NULL : __dso_handle); -+} -+ -+/* Number of forks seen. */ -+static int registered_forks; -+ -+/* For each fork increment the fork count. */ -+static void -+register_fork (void) -+{ -+ registered_forks++; -+} -+ - struct test_case_struct - { - int retval; -@@ -206,6 +225,12 @@ struct test_case_struct - { WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS }, - { WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS }, - { WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS }, -+ /* Test for CVE-2014-7817. We test 3 combinations of command -+ substitution inside an arithmetic expression to make sure that -+ no commands are executed and error is returned. */ -+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS }, -+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS }, -+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS }, - - { -1, NULL, NULL, 0, 0, { NULL, }, IFS }, - }; -@@ -258,6 +283,15 @@ main (int argc, char *argv[]) - return -1; - } - -+ /* If we are not allowed to do command substitution, we install -+ fork handlers to verify that no forks happened. No forks should -+ happen at all if command substitution is disabled. */ -+ if (__app_register_atfork (register_fork, NULL, NULL) != 0) -+ { -+ printf ("Failed to register fork handler.\n"); -+ return -1; -+ } -+ - for (test = 0; test_case[test].retval != -1; test++) - if (testit (&test_case[test])) - ++fail; -@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc) - - printf ("Test %d (%s): ", ++tests, tc->words); - -+ if (tc->flags & WRDE_NOCMD) -+ registered_forks = 0; -+ - if (tc->flags & WRDE_APPEND) - { - /* initial wordexp() call, to be appended to */ -@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc) - } - retval = wordexp (tc->words, &we, tc->flags); - -+ if ((tc->flags & WRDE_NOCMD) -+ && (registered_forks > 0)) -+ { -+ printf ("FAILED fork called for WRDE_NOCMD\n"); -+ return 1; -+ } -+ - if (tc->flags & WRDE_DOOFFS) - start_offs = sav_we.we_offs; - -diff --git a/posix/wordexp.c b/posix/wordexp.c -index b6b65dd..d6a158f 100644 ---- a/libc/posix/wordexp.c -+++ b/libc/posix/wordexp.c -@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length, - break; - - case '`': -+ if (flags & WRDE_NOCMD) -+ { -+ free (expr); -+ return WRDE_NOCMD; -+ } -+ - (*offset)++; - error = parse_backtick (&expr, &expr_length, &expr_maxlen, - words, offset, flags, NULL, NULL, NULL); -@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length, - size_t comm_maxlen; - char *comm = w_newword (&comm_length, &comm_maxlen); - -+ /* Do nothing if command substitution should not succeed. */ -+ if (flags & WRDE_NOCMD) -+ return WRDE_CMDSUB; -+ - for (; words[*offset]; ++(*offset)) - { - switch (words[*offset]) -@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length, - switch (words[*offset]) - { - case '`': -+ if (flags & WRDE_NOCMD) -+ return WRDE_NOCMD; -+ - /* Go -- give the script to the shell */ - error = exec_comm (comm, word, word_length, max_length, flags, - pwordexp, ifs, ifs_white); diff --git a/bsp/buildroot/package/glibc/2.18-svnr23787/0002-accept-make4.patch b/bsp/buildroot/package/glibc/2.18-svnr23787/0002-accept-make4.patch deleted file mode 100644 index 4f426f29..00000000 --- a/bsp/buildroot/package/glibc/2.18-svnr23787/0002-accept-make4.patch +++ /dev/null @@ -1,33 +0,0 @@ -Backport upstream patch (28d708c44bc47b56f6551ff285f78edcf61c208a) to accept -make-4.0 or newer. -We patch both configure and configure.in files so if we ever have to run -autoreconf in the glibc source, then the fix will be propagated properly. - -Signed-off-by: Markos Chandras - -Index: glibc-2.18-svnr23787/libc/configure -=================================================================== ---- glibc-2.18-svnr23787.orig/libc/configure -+++ glibc-2.18-svnr23787/libc/configure -@@ -4772,7 +4772,7 @@ $as_echo_n "checking version of $MAKE... - ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 3.79* | 3.[89]*) -+ 3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - -Index: glibc-2.18-svnr23787/libc/configure.in -=================================================================== ---- glibc-2.18-svnr23787.orig/libc/configure.in -+++ glibc-2.18-svnr23787/libc/configure.in -@@ -989,7 +989,7 @@ AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}g - critic_missing="$critic_missing gcc") - AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version, - [GNU Make[^0-9]*\([0-9][0-9.]*\)], -- [3.79* | 3.[89]*], critic_missing="$critic_missing make") -+ [3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make") - - AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version, - [GNU gettext.* \([0-9]*\.[0-9.]*\)], diff --git a/bsp/buildroot/package/glibc/2.18-svnr23787/0003-CVE-2014-6040.patch b/bsp/buildroot/package/glibc/2.18-svnr23787/0003-CVE-2014-6040.patch deleted file mode 100644 index f447dcd3..00000000 --- a/bsp/buildroot/package/glibc/2.18-svnr23787/0003-CVE-2014-6040.patch +++ /dev/null @@ -1,141 +0,0 @@ -Backport from https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=41488498b6 -See https://bugzilla.redhat.com/show_bug.cgi?id=1135841 - -Signed-off-by: Gustavo Zacarias - -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm1364.c eglibc-2.19/libc/iconvdata/ibm1364.c ---- eglibc-2.19.orig/libc/iconvdata/ibm1364.c 2015-01-08 16:05:53.918823240 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm1364.c 2015-01-08 16:06:02.781555143 -0300 -@@ -220,7 +220,8 @@ - ++rp2; \ - \ - uint32_t res; \ -- if (__builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ -+ || __builtin_expect (ch < rp2->start, 0) \ - || (res = DB_TO_UCS4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ - { \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm932.c eglibc-2.19/libc/iconvdata/ibm932.c ---- eglibc-2.19.orig/libc/iconvdata/ibm932.c 2015-01-08 16:05:53.910818967 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm932.c 2015-01-08 16:06:02.781555143 -0300 -@@ -73,11 +73,12 @@ - } \ - \ - ch = (ch * 0x100) + inptr[1]; \ -+ /* ch was less than 0xfd. */ \ -+ assert (ch < 0xfd00); \ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -- || __builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm932db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, '\1') == 0 && ch !=0)) \ - { \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm933.c eglibc-2.19/libc/iconvdata/ibm933.c ---- eglibc-2.19.orig/libc/iconvdata/ibm933.c 2015-01-08 16:05:53.917822706 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm933.c 2015-01-08 16:06:02.781555143 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm933db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm935.c eglibc-2.19/libc/iconvdata/ibm935.c ---- eglibc-2.19.orig/libc/iconvdata/ibm935.c 2015-01-08 16:05:53.921824843 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm935.c 2015-01-08 16:06:02.782555677 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm935db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm937.c eglibc-2.19/libc/iconvdata/ibm937.c ---- eglibc-2.19.orig/libc/iconvdata/ibm937.c 2015-01-08 16:05:53.915821638 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm937.c 2015-01-08 16:06:02.782555677 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm937db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm939.c eglibc-2.19/libc/iconvdata/ibm939.c ---- eglibc-2.19.orig/libc/iconvdata/ibm939.c 2015-01-08 16:05:53.917822706 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm939.c 2015-01-08 16:06:02.782555677 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm939db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm943.c eglibc-2.19/libc/iconvdata/ibm943.c ---- eglibc-2.19.orig/libc/iconvdata/ibm943.c 2015-01-08 16:05:53.918823240 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm943.c 2015-01-08 16:06:02.782555677 -0300 -@@ -74,11 +74,12 @@ - } \ - \ - ch = (ch * 0x100) + inptr[1]; \ -+ /* ch was less than 0xfd. */ \ -+ assert (ch < 0xfd00); \ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -- || __builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm943db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, '\1') == 0 && ch !=0)) \ - { \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/Makefile eglibc-2.19/libc/iconvdata/Makefile ---- eglibc-2.19.orig/libc/iconvdata/Makefile 2015-01-08 16:05:53.903815227 -0300 -+++ eglibc-2.19/libc/iconvdata/Makefile 2015-01-08 16:06:02.782555677 -0300 -@@ -303,6 +303,7 @@ - $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) \ - $(common-objdir)/iconv/iconv_prog TESTS -+ iconv_modules="$(modules)" \ - $(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@ - - $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/run-iconv-test.sh eglibc-2.19/libc/iconvdata/run-iconv-test.sh ---- eglibc-2.19.orig/libc/iconvdata/run-iconv-test.sh 2015-01-08 16:05:53.894810420 -0300 -+++ eglibc-2.19/libc/iconvdata/run-iconv-test.sh 2015-01-08 16:06:02.782555677 -0300 -@@ -188,6 +188,24 @@ - - done < TESTS2 - -+# Check for crashes in decoders. -+printf '\016\377\377\377\377\377\377\377' > $temp1 -+for from in $iconv_modules ; do -+ echo $ac_n "test decoder $from $ac_c" -+ PROG=`eval echo $ICONV` -+ if $PROG < $temp1 >/dev/null 2>&1 ; then -+ : # fall through -+ else -+ status=$? -+ if test $status -gt 1 ; then -+ echo "/FAILED" -+ failed=1 -+ continue -+ fi -+ fi -+ echo "OK" -+done -+ - exit $failed - # Local Variables: - # mode:shell-script diff --git a/bsp/buildroot/package/glibc/2.18-svnr23787/0004-CVE-2014-9402.patch b/bsp/buildroot/package/glibc/2.18-svnr23787/0004-CVE-2014-9402.patch deleted file mode 100644 index c7aa12c1..00000000 --- a/bsp/buildroot/package/glibc/2.18-svnr23787/0004-CVE-2014-9402.patch +++ /dev/null @@ -1,20 +0,0 @@ -Fix CVE-2014-9402 - denial of service in getnetbyname function. -Backport from https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11e3417af6e354f1942c68a271ae51e892b2814d -See https://bugzilla.redhat.com/show_bug.cgi?id=1175369 - -Signed-off-by: Gustavo Zacarias - -diff -Nura eglibc-2.19.orig/libc/resolv/nss_dns/dns-network.c eglibc-2.19/libc/resolv/nss_dns/dns-network.c ---- eglibc-2.19.orig/libc/resolv/nss_dns/dns-network.c 2015-01-08 16:12:35.024977879 -0300 -+++ eglibc-2.19/libc/resolv/nss_dns/dns-network.c 2015-01-08 16:12:42.543992357 -0300 -@@ -398,8 +398,8 @@ - - case BYNAME: - { -- char **ap = result->n_aliases++; -- while (*ap != NULL) -+ char **ap; -+ for (ap = result->n_aliases; *ap != NULL; ++ap) - { - /* Check each alias name for being of the forms: - 4.3.2.1.in-addr.arpa = net 1.2.3.4 diff --git a/bsp/buildroot/package/glibc/2.18-svnr23787/0005-CVE-2015-1472.patch b/bsp/buildroot/package/glibc/2.18-svnr23787/0005-CVE-2015-1472.patch deleted file mode 100644 index a0da626c..00000000 --- a/bsp/buildroot/package/glibc/2.18-svnr23787/0005-CVE-2015-1472.patch +++ /dev/null @@ -1,88 +0,0 @@ -Fix CVE-2015-1472 - heap buffer overflow in wscanf -Backport from upstream: -https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=5bd80bfe9ca0d955bfbbc002781bc7b01b6bcb06 -See: https://bugzilla.redhat.com/show_bug.cgi?id=1188235 - -Signed-off-by: Gustavo Zacarias - -diff --git a/stdio-common/tst-sscanf.c b/stdio-common/tst-sscanf.c -index aece3f2..8a2eb9e 100644 ---- a/libc/stdio-common/tst-sscanf.c -+++ b/libc/stdio-common/tst-sscanf.c -@@ -233,5 +233,38 @@ main (void) - } - } - -+ /* BZ #16618 -+ The test will segfault during SSCANF if the buffer overflow -+ is not fixed. The size of `s` is such that it forces the use -+ of malloc internally and this triggers the incorrect computation. -+ Thus the value for SIZE is arbitrariy high enough that malloc -+ is used. */ -+ { -+#define SIZE 131072 -+ CHAR *s = malloc ((SIZE + 1) * sizeof (*s)); -+ if (s == NULL) -+ abort (); -+ for (size_t i = 0; i < SIZE; i++) -+ s[i] = L('0'); -+ s[SIZE] = L('\0'); -+ int i = 42; -+ /* Scan multi-digit zero into `i`. */ -+ if (SSCANF (s, L("%d"), &i) != 1) -+ { -+ printf ("FAIL: bug16618: SSCANF did not read one input item.\n"); -+ result = 1; -+ } -+ if (i != 0) -+ { -+ printf ("FAIL: bug16618: Value of `i` was not zero as expected.\n"); -+ result = 1; -+ } -+ free (s); -+ if (result != 1) -+ printf ("PASS: bug16618: Did not crash.\n"); -+#undef SIZE -+ } -+ -+ - return result; - } -diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c -index cd129a8..0e204e7 100644 ---- a/libc/stdio-common/vfscanf.c -+++ b/libc/stdio-common/vfscanf.c -@@ -272,9 +272,10 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, - if (__glibc_unlikely (wpsize == wpmax)) \ - { \ - CHAR_T *old = wp; \ -- size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \ -- ? UCHAR_MAX + 1 : 2 * wpmax); \ -- if (use_malloc || !__libc_use_alloca (newsize)) \ -+ bool fits = __glibc_likely (wpmax <= SIZE_MAX / sizeof (CHAR_T) / 2); \ -+ size_t wpneed = MAX (UCHAR_MAX + 1, 2 * wpmax); \ -+ size_t newsize = fits ? wpneed * sizeof (CHAR_T) : SIZE_MAX; \ -+ if (!__libc_use_alloca (newsize)) \ - { \ - wp = realloc (use_malloc ? wp : NULL, newsize); \ - if (wp == NULL) \ -@@ -286,14 +287,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, - } \ - if (! use_malloc) \ - MEMCPY (wp, old, wpsize); \ -- wpmax = newsize; \ -+ wpmax = wpneed; \ - use_malloc = true; \ - } \ - else \ - { \ - size_t s = wpmax * sizeof (CHAR_T); \ -- wp = (CHAR_T *) extend_alloca (wp, s, \ -- newsize * sizeof (CHAR_T)); \ -+ wp = (CHAR_T *) extend_alloca (wp, s, newsize); \ - wpmax = s / sizeof (CHAR_T); \ - if (old != NULL) \ - MEMCPY (wp, old, wpsize); \ --- -1.9.4 - diff --git a/bsp/buildroot/package/glibc/2.19-svnr25243/0001-CVE-2014-7817-eglibc.patch b/bsp/buildroot/package/glibc/2.19-svnr25243/0001-CVE-2014-7817-eglibc.patch deleted file mode 100644 index da2f49de..00000000 --- a/bsp/buildroot/package/glibc/2.19-svnr25243/0001-CVE-2014-7817-eglibc.patch +++ /dev/null @@ -1,174 +0,0 @@ -From https://bugzilla.redhat.com/show_bug.cgi?id=1157689 -Modified for eglibc. - -Signed-off-by: Gustavo Zacarias - -WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! -EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!! -SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! - -CVE-2014-7817: - -The function wordexp() fails to properly handle the WRDE_NOCMD -flag when processing arithmetic inputs in the form of "$((... ``))" -where "..." can be anything valid. The backticks in the arithmetic -epxression are evaluated by in a shell even if WRDE_NOCMD forbade -command substitution. This allows an attacker to attempt to pass -dangerous commands via constructs of the above form, and bypass -the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD -in parse_arith(). The patch also hardens parse_backticks() and -parse_comm() to check for WRDE_NOCMD flag and return an error instead -of ever running a shell. - -We expand the testsuite and add 3 new regression tests of roughtly -the same form but with a couple of nested levels. - -On top of the 3 new tests we add fork validation to the WRDE_NOCMD -testing. If any forks are detected during the execution of a wordexp() -call with WRDE_NOCMD, the test is marked as failed. This is slightly -heuristic since vfork might be used, but it provides a higher level -of assurance that no shells were executed as part of command substitution -with WRDE_NOCMD in effect. In addition it doesn't require libpthread or -libdl, instead we use the public implementation namespace function -__register_atfork (already part of the public ABI for libpthread). - -Tested on x86_64 with no regressions. - -2014-10-27 Carlos O'Donell - - * wordexp-test.c (__dso_handle): Add prototype. - (__register_atfork): Likewise. - (__app_register_atfork): New function. - (registered_forks): New global. - (register_fork): New function. - (test_case): Add 3 new tests for WRDE_CMDSUB. - (main): Call __app_register_atfork. - (testit): If WRDE_NOCMD set registered_forks to zero, run test, and - if fork count is non-zero fail the test. - * posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag - is set and parsing '`'. - (parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set. - (parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and - parsing '`'. - -diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c -index 4957006..5ce2a1b 100644 ---- a/libc/posix/wordexp-test.c -+++ b/libc/posix/wordexp-test.c -@@ -27,6 +27,25 @@ - - #define IFS " \n\t" - -+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden"))); -+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *); -+ -+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void)) -+{ -+ return __register_atfork (prepare, parent, child, -+ &__dso_handle == NULL ? NULL : __dso_handle); -+} -+ -+/* Number of forks seen. */ -+static int registered_forks; -+ -+/* For each fork increment the fork count. */ -+static void -+register_fork (void) -+{ -+ registered_forks++; -+} -+ - struct test_case_struct - { - int retval; -@@ -206,6 +225,12 @@ struct test_case_struct - { WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS }, - { WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS }, - { WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS }, -+ /* Test for CVE-2014-7817. We test 3 combinations of command -+ substitution inside an arithmetic expression to make sure that -+ no commands are executed and error is returned. */ -+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS }, -+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS }, -+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS }, - - { -1, NULL, NULL, 0, 0, { NULL, }, IFS }, - }; -@@ -258,6 +283,15 @@ main (int argc, char *argv[]) - return -1; - } - -+ /* If we are not allowed to do command substitution, we install -+ fork handlers to verify that no forks happened. No forks should -+ happen at all if command substitution is disabled. */ -+ if (__app_register_atfork (register_fork, NULL, NULL) != 0) -+ { -+ printf ("Failed to register fork handler.\n"); -+ return -1; -+ } -+ - for (test = 0; test_case[test].retval != -1; test++) - if (testit (&test_case[test])) - ++fail; -@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc) - - printf ("Test %d (%s): ", ++tests, tc->words); - -+ if (tc->flags & WRDE_NOCMD) -+ registered_forks = 0; -+ - if (tc->flags & WRDE_APPEND) - { - /* initial wordexp() call, to be appended to */ -@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc) - } - retval = wordexp (tc->words, &we, tc->flags); - -+ if ((tc->flags & WRDE_NOCMD) -+ && (registered_forks > 0)) -+ { -+ printf ("FAILED fork called for WRDE_NOCMD\n"); -+ return 1; -+ } -+ - if (tc->flags & WRDE_DOOFFS) - start_offs = sav_we.we_offs; - -diff --git a/posix/wordexp.c b/posix/wordexp.c -index b6b65dd..d6a158f 100644 ---- a/libc/posix/wordexp.c -+++ b/libc/posix/wordexp.c -@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length, - break; - - case '`': -+ if (flags & WRDE_NOCMD) -+ { -+ free (expr); -+ return WRDE_NOCMD; -+ } -+ - (*offset)++; - error = parse_backtick (&expr, &expr_length, &expr_maxlen, - words, offset, flags, NULL, NULL, NULL); -@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length, - size_t comm_maxlen; - char *comm = w_newword (&comm_length, &comm_maxlen); - -+ /* Do nothing if command substitution should not succeed. */ -+ if (flags & WRDE_NOCMD) -+ return WRDE_CMDSUB; -+ - for (; words[*offset]; ++(*offset)) - { - switch (words[*offset]) -@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length, - switch (words[*offset]) - { - case '`': -+ if (flags & WRDE_NOCMD) -+ return WRDE_NOCMD; -+ - /* Go -- give the script to the shell */ - error = exec_comm (comm, word, word_length, max_length, flags, - pwordexp, ifs, ifs_white); diff --git a/bsp/buildroot/package/glibc/2.19-svnr25243/0002-CVE-2014-6040.patch b/bsp/buildroot/package/glibc/2.19-svnr25243/0002-CVE-2014-6040.patch deleted file mode 100644 index f447dcd3..00000000 --- a/bsp/buildroot/package/glibc/2.19-svnr25243/0002-CVE-2014-6040.patch +++ /dev/null @@ -1,141 +0,0 @@ -Backport from https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=41488498b6 -See https://bugzilla.redhat.com/show_bug.cgi?id=1135841 - -Signed-off-by: Gustavo Zacarias - -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm1364.c eglibc-2.19/libc/iconvdata/ibm1364.c ---- eglibc-2.19.orig/libc/iconvdata/ibm1364.c 2015-01-08 16:05:53.918823240 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm1364.c 2015-01-08 16:06:02.781555143 -0300 -@@ -220,7 +220,8 @@ - ++rp2; \ - \ - uint32_t res; \ -- if (__builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ -+ || __builtin_expect (ch < rp2->start, 0) \ - || (res = DB_TO_UCS4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ - { \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm932.c eglibc-2.19/libc/iconvdata/ibm932.c ---- eglibc-2.19.orig/libc/iconvdata/ibm932.c 2015-01-08 16:05:53.910818967 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm932.c 2015-01-08 16:06:02.781555143 -0300 -@@ -73,11 +73,12 @@ - } \ - \ - ch = (ch * 0x100) + inptr[1]; \ -+ /* ch was less than 0xfd. */ \ -+ assert (ch < 0xfd00); \ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -- || __builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm932db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, '\1') == 0 && ch !=0)) \ - { \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm933.c eglibc-2.19/libc/iconvdata/ibm933.c ---- eglibc-2.19.orig/libc/iconvdata/ibm933.c 2015-01-08 16:05:53.917822706 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm933.c 2015-01-08 16:06:02.781555143 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm933db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm935.c eglibc-2.19/libc/iconvdata/ibm935.c ---- eglibc-2.19.orig/libc/iconvdata/ibm935.c 2015-01-08 16:05:53.921824843 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm935.c 2015-01-08 16:06:02.782555677 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm935db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm937.c eglibc-2.19/libc/iconvdata/ibm937.c ---- eglibc-2.19.orig/libc/iconvdata/ibm937.c 2015-01-08 16:05:53.915821638 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm937.c 2015-01-08 16:06:02.782555677 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm937db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm939.c eglibc-2.19/libc/iconvdata/ibm939.c ---- eglibc-2.19.orig/libc/iconvdata/ibm939.c 2015-01-08 16:05:53.917822706 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm939.c 2015-01-08 16:06:02.782555677 -0300 -@@ -161,7 +161,7 @@ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -+ if (__builtin_expect (rp2->start == 0xffff, 0) \ - || __builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm939db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, L'\1') == L'\0' && ch != '\0')) \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/ibm943.c eglibc-2.19/libc/iconvdata/ibm943.c ---- eglibc-2.19.orig/libc/iconvdata/ibm943.c 2015-01-08 16:05:53.918823240 -0300 -+++ eglibc-2.19/libc/iconvdata/ibm943.c 2015-01-08 16:06:02.782555677 -0300 -@@ -74,11 +74,12 @@ - } \ - \ - ch = (ch * 0x100) + inptr[1]; \ -+ /* ch was less than 0xfd. */ \ -+ assert (ch < 0xfd00); \ - while (ch > rp2->end) \ - ++rp2; \ - \ -- if (__builtin_expect (rp2 == NULL, 0) \ -- || __builtin_expect (ch < rp2->start, 0) \ -+ if (__builtin_expect (ch < rp2->start, 0) \ - || (res = __ibm943db_to_ucs4[ch + rp2->idx], \ - __builtin_expect (res, '\1') == 0 && ch !=0)) \ - { \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/Makefile eglibc-2.19/libc/iconvdata/Makefile ---- eglibc-2.19.orig/libc/iconvdata/Makefile 2015-01-08 16:05:53.903815227 -0300 -+++ eglibc-2.19/libc/iconvdata/Makefile 2015-01-08 16:06:02.782555677 -0300 -@@ -303,6 +303,7 @@ - $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) \ - $(common-objdir)/iconv/iconv_prog TESTS -+ iconv_modules="$(modules)" \ - $(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@ - - $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \ -diff -Nura eglibc-2.19.orig/libc/iconvdata/run-iconv-test.sh eglibc-2.19/libc/iconvdata/run-iconv-test.sh ---- eglibc-2.19.orig/libc/iconvdata/run-iconv-test.sh 2015-01-08 16:05:53.894810420 -0300 -+++ eglibc-2.19/libc/iconvdata/run-iconv-test.sh 2015-01-08 16:06:02.782555677 -0300 -@@ -188,6 +188,24 @@ - - done < TESTS2 - -+# Check for crashes in decoders. -+printf '\016\377\377\377\377\377\377\377' > $temp1 -+for from in $iconv_modules ; do -+ echo $ac_n "test decoder $from $ac_c" -+ PROG=`eval echo $ICONV` -+ if $PROG < $temp1 >/dev/null 2>&1 ; then -+ : # fall through -+ else -+ status=$? -+ if test $status -gt 1 ; then -+ echo "/FAILED" -+ failed=1 -+ continue -+ fi -+ fi -+ echo "OK" -+done -+ - exit $failed - # Local Variables: - # mode:shell-script diff --git a/bsp/buildroot/package/glibc/2.19-svnr25243/0003-CVE-2014-9402.patch b/bsp/buildroot/package/glibc/2.19-svnr25243/0003-CVE-2014-9402.patch deleted file mode 100644 index c7aa12c1..00000000 --- a/bsp/buildroot/package/glibc/2.19-svnr25243/0003-CVE-2014-9402.patch +++ /dev/null @@ -1,20 +0,0 @@ -Fix CVE-2014-9402 - denial of service in getnetbyname function. -Backport from https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11e3417af6e354f1942c68a271ae51e892b2814d -See https://bugzilla.redhat.com/show_bug.cgi?id=1175369 - -Signed-off-by: Gustavo Zacarias - -diff -Nura eglibc-2.19.orig/libc/resolv/nss_dns/dns-network.c eglibc-2.19/libc/resolv/nss_dns/dns-network.c ---- eglibc-2.19.orig/libc/resolv/nss_dns/dns-network.c 2015-01-08 16:12:35.024977879 -0300 -+++ eglibc-2.19/libc/resolv/nss_dns/dns-network.c 2015-01-08 16:12:42.543992357 -0300 -@@ -398,8 +398,8 @@ - - case BYNAME: - { -- char **ap = result->n_aliases++; -- while (*ap != NULL) -+ char **ap; -+ for (ap = result->n_aliases; *ap != NULL; ++ap) - { - /* Check each alias name for being of the forms: - 4.3.2.1.in-addr.arpa = net 1.2.3.4 diff --git a/bsp/buildroot/package/glibc/2.19-svnr25243/0004-CVE-2015-1472.patch b/bsp/buildroot/package/glibc/2.19-svnr25243/0004-CVE-2015-1472.patch deleted file mode 100644 index a0da626c..00000000 --- a/bsp/buildroot/package/glibc/2.19-svnr25243/0004-CVE-2015-1472.patch +++ /dev/null @@ -1,88 +0,0 @@ -Fix CVE-2015-1472 - heap buffer overflow in wscanf -Backport from upstream: -https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=5bd80bfe9ca0d955bfbbc002781bc7b01b6bcb06 -See: https://bugzilla.redhat.com/show_bug.cgi?id=1188235 - -Signed-off-by: Gustavo Zacarias - -diff --git a/stdio-common/tst-sscanf.c b/stdio-common/tst-sscanf.c -index aece3f2..8a2eb9e 100644 ---- a/libc/stdio-common/tst-sscanf.c -+++ b/libc/stdio-common/tst-sscanf.c -@@ -233,5 +233,38 @@ main (void) - } - } - -+ /* BZ #16618 -+ The test will segfault during SSCANF if the buffer overflow -+ is not fixed. The size of `s` is such that it forces the use -+ of malloc internally and this triggers the incorrect computation. -+ Thus the value for SIZE is arbitrariy high enough that malloc -+ is used. */ -+ { -+#define SIZE 131072 -+ CHAR *s = malloc ((SIZE + 1) * sizeof (*s)); -+ if (s == NULL) -+ abort (); -+ for (size_t i = 0; i < SIZE; i++) -+ s[i] = L('0'); -+ s[SIZE] = L('\0'); -+ int i = 42; -+ /* Scan multi-digit zero into `i`. */ -+ if (SSCANF (s, L("%d"), &i) != 1) -+ { -+ printf ("FAIL: bug16618: SSCANF did not read one input item.\n"); -+ result = 1; -+ } -+ if (i != 0) -+ { -+ printf ("FAIL: bug16618: Value of `i` was not zero as expected.\n"); -+ result = 1; -+ } -+ free (s); -+ if (result != 1) -+ printf ("PASS: bug16618: Did not crash.\n"); -+#undef SIZE -+ } -+ -+ - return result; - } -diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c -index cd129a8..0e204e7 100644 ---- a/libc/stdio-common/vfscanf.c -+++ b/libc/stdio-common/vfscanf.c -@@ -272,9 +272,10 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, - if (__glibc_unlikely (wpsize == wpmax)) \ - { \ - CHAR_T *old = wp; \ -- size_t newsize = (UCHAR_MAX + 1 > 2 * wpmax \ -- ? UCHAR_MAX + 1 : 2 * wpmax); \ -- if (use_malloc || !__libc_use_alloca (newsize)) \ -+ bool fits = __glibc_likely (wpmax <= SIZE_MAX / sizeof (CHAR_T) / 2); \ -+ size_t wpneed = MAX (UCHAR_MAX + 1, 2 * wpmax); \ -+ size_t newsize = fits ? wpneed * sizeof (CHAR_T) : SIZE_MAX; \ -+ if (!__libc_use_alloca (newsize)) \ - { \ - wp = realloc (use_malloc ? wp : NULL, newsize); \ - if (wp == NULL) \ -@@ -286,14 +287,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr, - } \ - if (! use_malloc) \ - MEMCPY (wp, old, wpsize); \ -- wpmax = newsize; \ -+ wpmax = wpneed; \ - use_malloc = true; \ - } \ - else \ - { \ - size_t s = wpmax * sizeof (CHAR_T); \ -- wp = (CHAR_T *) extend_alloca (wp, s, \ -- newsize * sizeof (CHAR_T)); \ -+ wp = (CHAR_T *) extend_alloca (wp, s, newsize); \ - wpmax = s / sizeof (CHAR_T); \ - if (old != NULL) \ - MEMCPY (wp, old, wpsize); \ --- -1.9.4 - diff --git a/bsp/buildroot/package/glibc/2.21/0001-fix-CVE-2015-7547.patch b/bsp/buildroot/package/glibc/2.21/0001-fix-CVE-2015-7547.patch deleted file mode 100644 index 4353a168..00000000 --- a/bsp/buildroot/package/glibc/2.21/0001-fix-CVE-2015-7547.patch +++ /dev/null @@ -1,236 +0,0 @@ -Fetched from gentoo glibc patchball -Original patch filename: 10_all_glibc-CVE-2015-7547.patch -Based on: https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html - -Fixes: -CVE-2015-7547 - glibc getaddrinfo stack-based buffer overflow. - -Signed-off-by: Gustavo Zacarias - ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - int h_namelen = 0; - - if (ancount == 0) -- return NSS_STATUS_NOTFOUND; -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } - - while (ancount-- > 0 && cp < end_of_message && had_error == 0) - { -@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, - /* Special case here: if the resolver sent a result but it only - contains a CNAME while we are looking for a T_A or T_AAAA record, - we fail with NOTFOUND instead of TRYAGAIN. */ -- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND; -+ if (canon != NULL) -+ { -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+ } -+ -+ *h_errnop = NETDB_INTERNAL; -+ return NSS_STATUS_TRYAGAIN; - } - - -@@ -1242,8 +1252,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); -+ /* Use the second response status in some cases. */ - if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND) - status = status2; -+ /* Do not return a truncated second response (unless it was -+ unavoidable e.g. unrecoverable TRYAGAIN). */ -+ if (status == NSS_STATUS_SUCCESS -+ && (status2 == NSS_STATUS_TRYAGAIN -+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY)) -+ status = NSS_STATUS_TRYAGAIN; - } - - return status; ---- a/resolv/res_query.c -+++ b/resolv/res_query.c -@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - } -@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - -@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp, - { - free (*answerp2); - *answerp2 = NULL; -+ *nanswerp2 = 0; - *answerp2_malloced = 0; - } - if (saved_herrno != -1) ---- a/resolv/res_send.c -+++ b/resolv/res_send.c -@@ -639,11 +639,7 @@ send_vc(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; -- // XXX REMOVE -- // int anssiz = *anssizp; -- HEADER *anhp = (HEADER *) ans; -+ HEADER *anhp = (HEADER *) *ansp; - struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; - int truncating, connreset, n; - /* On some architectures compiler might emit a warning indicating -@@ -767,35 +763,6 @@ send_vc(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if __GNUC_PREREQ (4, 7) -- DIAG_PUSH_NEEDS_COMMENT; -- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); --#endif --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif --#if __GNUC_PREREQ (4, 7) -- DIAG_POP_NEEDS_COMMENT; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; -@@ -804,10 +771,14 @@ send_vc(res_state statp, - anhp = (HEADER *) *thisansp; - - *thisresplenp = rlen; -- if (rlen > *thisanssizp) { -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- if (__glibc_likely (anscp != NULL)) { -+ /* Is the answer buffer too small? */ -+ if (*thisanssizp < rlen) { -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ if (thisansp != NULL && thisansp != ansp) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp == NULL) { - *terrno = ENOMEM; -@@ -957,8 +928,6 @@ send_dg(res_state statp, - { - const HEADER *hp = (HEADER *) buf; - const HEADER *hp2 = (HEADER *) buf2; -- u_char *ans = *ansp; -- int orig_anssizp = *anssizp; - struct timespec now, timeout, finish; - struct pollfd pfd[1]; - int ptimeout; -@@ -1154,50 +1123,48 @@ send_dg(res_state statp, - assert (anscp != NULL || ansp2 == NULL); - thisresplenp = &resplen; - } else { -- if (*anssizp != MAXPACKET) { -- /* No buffer allocated for the first -- reply. We can try to use the rest -- of the user-provided buffer. */ --#if _STRING_ARCH_unaligned -- *anssizp2 = orig_anssizp - resplen; -- *ansp2 = *ansp + resplen; --#else -- int aligned_resplen -- = ((resplen + __alignof__ (HEADER) - 1) -- & ~(__alignof__ (HEADER) - 1)); -- *anssizp2 = orig_anssizp - aligned_resplen; -- *ansp2 = *ansp + aligned_resplen; --#endif -- } else { -- /* The first reply did not fit into the -- user-provided buffer. Maybe the second -- answer will. */ -- *anssizp2 = orig_anssizp; -- *ansp2 = *ansp; -- } -- - thisanssizp = anssizp2; - thisansp = ansp2; - thisresplenp = resplen2; - } - - if (*thisanssizp < MAXPACKET -- /* Yes, we test ANSCP here. If we have two buffers -- both will be allocatable. */ -- && anscp -+ /* If the current buffer is not the the static -+ user-supplied buffer then we can reallocate -+ it. */ -+ && (thisansp != NULL && thisansp != ansp) - #ifdef FIONREAD -+ /* Is the size too small? */ - && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0 - || *thisanssizp < *thisresplenp) - #endif - ) { -+ /* Always allocate MAXPACKET, callers expect -+ this specific size. */ - u_char *newp = malloc (MAXPACKET); - if (newp != NULL) { -- *anssizp = MAXPACKET; -- *thisansp = ans = newp; -+ *thisanssizp = MAXPACKET; -+ *thisansp = newp; - if (thisansp == ansp2) - *ansp2_malloced = 1; - } - } -+ /* We could end up with truncation if anscp was NULL -+ (not allowed to change caller's buffer) and the -+ response buffer size is too small. This isn't a -+ reliable way to detect truncation because the ioctl -+ may be an inaccurate report of the UDP message size. -+ Therefore we use this only to issue debug output. -+ To do truncation accurately with UDP we need -+ MSG_TRUNC which is only available on Linux. We -+ can abstract out the Linux-specific feature in the -+ future to detect truncation. */ -+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) { -+ Dprint(statp->options & RES_DEBUG, -+ (stdout, ";; response may be truncated (UDP)\n") -+ ); -+ } -+ - HEADER *anhp = (HEADER *) *thisansp; - socklen_t fromlen = sizeof(struct sockaddr_in6); - assert (sizeof(from) <= fromlen); diff --git a/bsp/buildroot/package/glibc/2.21/0002-fix-CVE-2015-1781.patch b/bsp/buildroot/package/glibc/2.21/0002-fix-CVE-2015-1781.patch deleted file mode 100644 index 3bdfa970..00000000 --- a/bsp/buildroot/package/glibc/2.21/0002-fix-CVE-2015-1781.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 10c6d2e3243cefdd22933d3706f53d9f913c6cab Mon Sep 17 00:00:00 2001 -From: Arjun Shankar -Date: Tue, 21 Apr 2015 14:06:31 +0200 -Subject: [PATCH] CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflow - [BZ#18287] - -Fixes: -CVE-2015-1781 - buffer overflow in gethostbyname_r() and related -functions with misaligned buffer. - -Signed-off-by: Gustavo Zacarias ---- - resolv/nss_dns/dns-host.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c -index f715ab0..40069a7 100644 ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -615,7 +615,8 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype, - int have_to_map = 0; - uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data); - buffer += pad; -- if (__glibc_unlikely (buflen < sizeof (struct host_data) + pad)) -+ buflen = buflen > pad ? buflen - pad : 0; -+ if (__glibc_unlikely (buflen < sizeof (struct host_data))) - { - /* The buffer is too small. */ - too_small: --- -2.4.4 - diff --git a/bsp/buildroot/package/glibc/2.21/0003-fix-CVE-2014-8121.patch b/bsp/buildroot/package/glibc/2.21/0003-fix-CVE-2014-8121.patch deleted file mode 100644 index df3534e8..00000000 --- a/bsp/buildroot/package/glibc/2.21/0003-fix-CVE-2014-8121.patch +++ /dev/null @@ -1,176 +0,0 @@ -From 6d0b7b443c9735672bb76d003c3f7263c5292d7d Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Wed, 29 Apr 2015 14:41:25 +0200 -Subject: [PATCH 23/27] CVE-2014-8121: Do not close NSS files database during - iteration [BZ #18007] -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -(cherry picked from commit e871e19b5f19d2e6595e911b0a5b1c19cda20cc7) - -Fixes: -CVE-2014-8121 - Unexpected closing of nss_files databases after lookups -causes denial of service. - -Signed-off-by: Gustavo Zacarias ---- - nss/Makefile | 2 +- - nss/nss_files/files-XXX.c | 2 +- - nss/tst-nss-getpwent.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 120 insertions(+), 2 deletions(-) - create mode 100644 nss/tst-nss-getpwent.c - -diff --git a/nss/Makefile b/nss/Makefile -index d419baf..dc351dd 100644 ---- a/nss/Makefile -+++ b/nss/Makefile -@@ -39,7 +39,7 @@ install-bin := getent makedb - makedb-modules = xmalloc hash-string - extra-objs += $(makedb-modules:=.o) - --tests = test-netdb tst-nss-test1 test-digits-dots -+tests = test-netdb tst-nss-test1 test-digits-dots tst-nss-getpwent - xtests = bug-erange - - # Specify rules for the nss_* modules. We have some services. -diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c -index a7a45e5..a7ce5ea 100644 ---- a/nss/nss_files/files-XXX.c -+++ b/nss/nss_files/files-XXX.c -@@ -134,7 +134,7 @@ CONCAT(_nss_files_set,ENTNAME) (int stayopen) - - __libc_lock_lock (lock); - -- status = internal_setent (stayopen); -+ status = internal_setent (1); - - if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0) - { -diff --git a/nss/tst-nss-getpwent.c b/nss/tst-nss-getpwent.c -new file mode 100644 -index 0000000..f2e8abc ---- /dev/null -+++ b/nss/tst-nss-getpwent.c -@@ -0,0 +1,118 @@ -+/* Copyright (C) 2015 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+int -+do_test (void) -+{ -+ /* Count the number of entries in the password database, and fetch -+ data from the first and last entries. */ -+ size_t count = 0; -+ struct passwd * pw; -+ char *first_name = NULL; -+ uid_t first_uid = 0; -+ char *last_name = NULL; -+ uid_t last_uid = 0; -+ setpwent (); -+ while ((pw = getpwent ()) != NULL) -+ { -+ if (first_name == NULL) -+ { -+ first_name = strdup (pw->pw_name); -+ if (first_name == NULL) -+ { -+ printf ("strdup: %m\n"); -+ return 1; -+ } -+ first_uid = pw->pw_uid; -+ } -+ -+ free (last_name); -+ last_name = strdup (pw->pw_name); -+ if (last_name == NULL) -+ { -+ printf ("strdup: %m\n"); -+ return 1; -+ } -+ last_uid = pw->pw_uid; -+ ++count; -+ } -+ endpwent (); -+ -+ if (count == 0) -+ { -+ printf ("No entries in the password database.\n"); -+ return 0; -+ } -+ -+ /* Try again, this time interleaving with name-based and UID-based -+ lookup operations. The counts do not match if the interleaved -+ lookups affected the enumeration. */ -+ size_t new_count = 0; -+ setpwent (); -+ while ((pw = getpwent ()) != NULL) -+ { -+ if (new_count == count) -+ { -+ printf ("Additional entry in the password database.\n"); -+ return 1; -+ } -+ ++new_count; -+ struct passwd *pw2 = getpwnam (first_name); -+ if (pw2 == NULL) -+ { -+ printf ("getpwnam (%s) failed: %m\n", first_name); -+ return 1; -+ } -+ pw2 = getpwnam (last_name); -+ if (pw2 == NULL) -+ { -+ printf ("getpwnam (%s) failed: %m\n", last_name); -+ return 1; -+ } -+ pw2 = getpwuid (first_uid); -+ if (pw2 == NULL) -+ { -+ printf ("getpwuid (%llu) failed: %m\n", -+ (unsigned long long) first_uid); -+ return 1; -+ } -+ pw2 = getpwuid (last_uid); -+ if (pw2 == NULL) -+ { -+ printf ("getpwuid (%llu) failed: %m\n", -+ (unsigned long long) last_uid); -+ return 1; -+ } -+ } -+ endpwent (); -+ if (new_count < count) -+ { -+ printf ("Missing entry in the password database.\n"); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+#define TEST_FUNCTION do_test () -+#include "../test-skeleton.c" --- -2.6.2 - diff --git a/bsp/buildroot/package/glibc/2.22/0002-microblaze-include-unix-sysdep.h.patch b/bsp/buildroot/package/glibc/2.22/0002-microblaze-include-unix-sysdep.h.patch new file mode 100644 index 00000000..28f4b6e0 --- /dev/null +++ b/bsp/buildroot/package/glibc/2.22/0002-microblaze-include-unix-sysdep.h.patch @@ -0,0 +1,43 @@ +From 8415fb8d4f05c023b9d79e44dff197cc285fd1e5 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Thu, 6 Aug 2015 02:10:46 -0400 +Subject: [PATCH] microblaze: include unix/sysdep.h + +The semi-recent SYSCALL_CANCEL inclusion broke microblaze due to the +sysdep.h header not including the unix/sysdep.h header. Include it +here like all other ports. + +(cherry picked from commit 5d5de49c3ccd69f65b801f1ca490a0112d1cbd7d) + +Signed-off-by: Thomas Petazzoni +[edited to remove ChangeLog modifications, which cause conflicts.] +--- + sysdeps/unix/sysv/linux/microblaze/sysdep.h | 7 ++++++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h +index 83c0340..9d5c542 100644 +--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h ++++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.h +@@ -16,8 +16,11 @@ + License along with the GNU C Library; if not, see + . */ + ++#ifndef _LINUX_MICROBLAZE_SYSDEP_H ++#define _LINUX_MICROBLAZE_SYSDEP_H 1 ++ ++#include + #include +-#include + + /* Defines RTLD_PRIVATE_ERRNO. */ + #include +@@ -305,3 +308,5 @@ SYSCALL_ERROR_LABEL_DCL: \ + # define PTR_DEMANGLE(var) (void) (var) + + #endif /* not __ASSEMBLER__ */ ++ ++#endif /* _LINUX_MICROBLAZE_SYSDEP_H */ +-- +2.6.4 + diff --git a/bsp/buildroot/package/glibc/2.22/0003-fix-CVE-2016-3075.patch b/bsp/buildroot/package/glibc/2.22/0003-fix-CVE-2016-3075.patch new file mode 100644 index 00000000..1ceb1f62 --- /dev/null +++ b/bsp/buildroot/package/glibc/2.22/0003-fix-CVE-2016-3075.patch @@ -0,0 +1,44 @@ +From 883dceebc8f11921a9890211a4e202e5be17562f Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Tue, 29 Mar 2016 12:57:56 +0200 +Subject: [PATCH 1/1] CVE-2016-3075: Stack overflow in _nss_dns_getnetbyname_r [BZ #19879] + +The defensive copy is not needed because the name may not alias the +output buffer. + +(cherry picked from commit 317b199b4aff8cfa27f2302ab404d2bb5032b9a4) + +Signed-off-by: Bernd Kuhls +(downloaded from upstream git repo and removed changes to Changelog: + https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=883dceebc8f11921a9890211a4e202e5be17562f;hp=5a1a5f0dd2744044801c91bf2588444c29cda533) +--- + ChangeLog | 7 +++++++ + resolv/nss_dns/dns-network.c | 5 +---- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c +index 00f4490..89f8783 100644 +--- a/resolv/nss_dns/dns-network.c ++++ b/resolv/nss_dns/dns-network.c +@@ -118,17 +118,14 @@ _nss_dns_getnetbyname_r (const char *name, struct netent *result, + } net_buffer; + querybuf *orig_net_buffer; + int anslen; +- char *qbuf; + enum nss_status status; + + if (__res_maybe_init (&_res, 0) == -1) + return NSS_STATUS_UNAVAIL; + +- qbuf = strdupa (name); +- + net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); + +- anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, ++ anslen = __libc_res_nsearch (&_res, name, C_IN, T_PTR, net_buffer.buf->buf, + 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); + if (anslen < 0) + { +-- +1.7.1 + diff --git a/bsp/buildroot/package/glibc/2.23/0001-fix-CVE-2016-3075.patch b/bsp/buildroot/package/glibc/2.23/0001-fix-CVE-2016-3075.patch new file mode 100644 index 00000000..6b07116c --- /dev/null +++ b/bsp/buildroot/package/glibc/2.23/0001-fix-CVE-2016-3075.patch @@ -0,0 +1,47 @@ +From 146b58d11fddbef15b888906e3be4f33900c416f Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Tue, 29 Mar 2016 12:57:56 +0200 +Subject: [PATCH 1/1] CVE-2016-3075: Stack overflow in _nss_dns_getnetbyname_r [BZ #19879] + +The defensive copy is not needed because the name may not alias the +output buffer. + +(cherry picked from commit 317b199b4aff8cfa27f2302ab404d2bb5032b9a4) +(cherry picked from commit 883dceebc8f11921a9890211a4e202e5be17562f) + +Signed-off-by: Bernd Kuhls +(downloaded from upstream git repo and removed changes to files + Changelog and NEWS: + https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=146b58d11fddbef15b888906e3be4f33900c416f;hp=0eb234232eaf925fe4dca3bd60a3e1b4a7ab2882) +--- + ChangeLog | 7 +++++++ + NEWS | 10 ++++++++-- + resolv/nss_dns/dns-network.c | 5 +---- + 3 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c +index 2eb2f67..8f301a7 100644 +--- a/resolv/nss_dns/dns-network.c ++++ b/resolv/nss_dns/dns-network.c +@@ -118,17 +118,14 @@ _nss_dns_getnetbyname_r (const char *name, struct netent *result, + } net_buffer; + querybuf *orig_net_buffer; + int anslen; +- char *qbuf; + enum nss_status status; + + if (__res_maybe_init (&_res, 0) == -1) + return NSS_STATUS_UNAVAIL; + +- qbuf = strdupa (name); +- + net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024); + +- anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf, ++ anslen = __libc_res_nsearch (&_res, name, C_IN, T_PTR, net_buffer.buf->buf, + 1024, &net_buffer.ptr, NULL, NULL, NULL, NULL); + if (anslen < 0) + { +-- +1.7.1 + diff --git a/bsp/buildroot/package/glibc/2.23/0002-gcc6.patch b/bsp/buildroot/package/glibc/2.23/0002-gcc6.patch new file mode 100644 index 00000000..f831cae2 --- /dev/null +++ b/bsp/buildroot/package/glibc/2.23/0002-gcc6.patch @@ -0,0 +1,88 @@ +From 5769d5d17cdb4770f1e08167b76c1684ad4e1f73 Mon Sep 17 00:00:00 2001 +From: Yvan Roux +Date: Fri, 15 Apr 2016 13:29:26 +0200 +Subject: [PATCH 1/1] Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses + +(cherry picked from commit df1cf48777fe4cd81ad7fb09ecbe5b31432b7c1c) + +Signed-off-by: Bernd Kuhls +(downloaded from upstream git repo and removed changes to Changelog: + https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5769d5d17cdb4770f1e08167b76c1684ad4e1f73;hp=f1e182acaaa84e844eb96462a92ba532e1c1fff4) +--- + ChangeLog | 5 +++++ + nis/nis_call.c | 20 +++++++++++--------- + stdlib/setenv.c | 26 ++++++++++++++------------ + 3 files changed, 30 insertions(+), 21 deletions(-) + +diff --git a/nis/nis_call.c b/nis/nis_call.c +index 3fa37e4..cb7839a 100644 +--- a/nis/nis_call.c ++++ b/nis/nis_call.c +@@ -680,16 +680,18 @@ nis_server_cache_add (const_nis_name name, int search_parent, + /* Choose which entry should be evicted from the cache. */ + loc = &nis_server_cache[0]; + if (*loc != NULL) +- for (i = 1; i < 16; ++i) +- if (nis_server_cache[i] == NULL) +- { ++ { ++ for (i = 1; i < 16; ++i) ++ if (nis_server_cache[i] == NULL) ++ { ++ loc = &nis_server_cache[i]; ++ break; ++ } ++ else if ((*loc)->uses > nis_server_cache[i]->uses ++ || ((*loc)->uses == nis_server_cache[i]->uses ++ && (*loc)->expires > nis_server_cache[i]->expires)) + loc = &nis_server_cache[i]; +- break; +- } +- else if ((*loc)->uses > nis_server_cache[i]->uses +- || ((*loc)->uses == nis_server_cache[i]->uses +- && (*loc)->expires > nis_server_cache[i]->expires)) +- loc = &nis_server_cache[i]; ++ } + old = *loc; + *loc = new; + +diff --git a/stdlib/setenv.c b/stdlib/setenv.c +index da61ee0..e66045f 100644 +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c +@@ -278,18 +278,20 @@ unsetenv (const char *name) + ep = __environ; + if (ep != NULL) + while (*ep != NULL) +- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') +- { +- /* Found it. Remove this pointer by moving later ones back. */ +- char **dp = ep; +- +- do +- dp[0] = dp[1]; +- while (*dp++); +- /* Continue the loop in case NAME appears again. */ +- } +- else +- ++ep; ++ { ++ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') ++ { ++ /* Found it. Remove this pointer by moving later ones back. */ ++ char **dp = ep; ++ ++ do ++ dp[0] = dp[1]; ++ while (*dp++); ++ /* Continue the loop in case NAME appears again. */ ++ } ++ else ++ ++ep; ++ } + + UNLOCK; + +-- +1.7.1 + diff --git a/bsp/buildroot/package/glibc/Config.in b/bsp/buildroot/package/glibc/Config.in index aeb236c5..f86822d1 100644 --- a/bsp/buildroot/package/glibc/Config.in +++ b/bsp/buildroot/package/glibc/Config.in @@ -1,45 +1,26 @@ -if BR2_TOOLCHAIN_BUILDROOT_EGLIBC - -config BR2_PACKAGE_EGLIBC - bool - default y - select BR2_PACKAGE_LINUX_HEADERS - -choice - prompt "eglibc version" - default BR2_EGLIBC_VERSION_2_18 - -config BR2_EGLIBC_VERSION_2_18 - bool "2.18-svnr23787" - # Build breakage - depends on !BR2_sparc - -config BR2_EGLIBC_VERSION_2_19 - bool "2.19-svnr25243" - # Build breakage - depends on !BR2_powerpc_SPE - -endchoice - -endif - if BR2_TOOLCHAIN_BUILDROOT_GLIBC config BR2_PACKAGE_GLIBC bool default y select BR2_PACKAGE_LINUX_HEADERS + select BR2_TOOLCHAIN_HAS_SSP choice prompt "glibc version" - default BR2_GLIBC_VERSION_2_21 - -config BR2_GLIBC_VERSION_2_21 - bool "2.21" + default BR2_GLIBC_VERSION_2_23 config BR2_GLIBC_VERSION_2_22 bool "2.22" - depends on !BR2_sparc # broken + # No support for pthread barriers on < v9 ISA + depends on !BR2_sparc + # Too old to build with gcc >= 6.x + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_6 + +config BR2_GLIBC_VERSION_2_23 + bool "2.23" + # No support for pthread barriers on < v9 ISA + depends on !BR2_sparc endchoice @@ -47,7 +28,5 @@ endif config BR2_GLIBC_VERSION_STRING string - default "2.18-svnr23787" if BR2_EGLIBC_VERSION_2_18 - default "2.19-svnr25243" if BR2_EGLIBC_VERSION_2_19 - default "2.21" if BR2_GLIBC_VERSION_2_21 default "2.22" if BR2_GLIBC_VERSION_2_22 + default "2.23" if BR2_GLIBC_VERSION_2_23 diff --git a/bsp/buildroot/package/glibc/glibc.hash b/bsp/buildroot/package/glibc/glibc.hash index 979202e4..052f2813 100644 --- a/bsp/buildroot/package/glibc/glibc.hash +++ b/bsp/buildroot/package/glibc/glibc.hash @@ -1,8 +1,3 @@ # Locally calculated after checking pgp signature (glibc) -# http://downloads.yoctoproject.org/releases/eglibc/*.{md5,sha1} (eglibc) -md5 b395b021422a027d89884992e91734fc eglibc-2.18-svnr23787.tar.bz2 -sha1 224d9e655e8f0ad04ffde47b97a11c64e2255b56 eglibc-2.18-svnr23787.tar.bz2 -md5 197836c2ba42fb146e971222647198dd eglibc-2.19-svnr25243.tar.bz2 -sha1 8013c1935b46fd50d2d1fbfad3b0af362b75fb28 eglibc-2.19-svnr25243.tar.bz2 -sha256 aeeb362437965a5d3f40b151094ca79def04a115bd363fdd4a9a0c69482923b8 glibc-2.21.tar.xz sha256 eb731406903befef1d8f878a46be75ef862b9056ab0cde1626d08a7a05328948 glibc-2.22.tar.xz +sha256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 glibc-2.23.tar.xz diff --git a/bsp/buildroot/package/glibc/glibc.mk b/bsp/buildroot/package/glibc/glibc.mk index e60575f6..2c32e65f 100644 --- a/bsp/buildroot/package/glibc/glibc.mk +++ b/bsp/buildroot/package/glibc/glibc.mk @@ -1,20 +1,13 @@ ################################################################################ # -# glibc/eglibc +# glibc # ################################################################################ GLIBC_VERSION = $(call qstrip,$(BR2_GLIBC_VERSION_STRING)) - -ifeq ($(BR2_TOOLCHAIN_BUILDROOT_EGLIBC),y) -GLIBC_SITE = http://downloads.yoctoproject.org/releases/eglibc -GLIBC_SOURCE = eglibc-$(GLIBC_VERSION).tar.bz2 -GLIBC_SRC_SUBDIR = libc -else GLIBC_SITE = $(BR2_GNU_MIRROR)/libc GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.xz GLIBC_SRC_SUBDIR = . -endif GLIBC_LICENSE = GPLv2+ (programs), LGPLv2.1+, BSD-3c, MIT (library) GLIBC_LICENSE_FILES = $(addprefix $(GLIBC_SRC_SUBDIR)/,COPYING COPYING.LIB LICENSES) @@ -22,7 +15,7 @@ GLIBC_LICENSE_FILES = $(addprefix $(GLIBC_SRC_SUBDIR)/,COPYING COPYING.LIB LICEN # glibc is part of the toolchain so disable the toolchain dependency GLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO -# Before (e)glibc is configured, we must have the first stage +# Before glibc is configured, we must have the first stage # cross-compiler and the kernel headers GLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-gawk @@ -71,7 +64,7 @@ endif # 2. We have to execute the configure script with bash and not sh. # # Note that as mentionned in -# http://patches.openembedded.org/patch/38849/, eglibc/glibc must be +# http://patches.openembedded.org/patch/38849/, glibc must be # built with -O2, so we pass our own CFLAGS and CXXFLAGS below. define GLIBC_CONFIGURE_CMDS mkdir -p $(@D)/build @@ -96,6 +89,7 @@ define GLIBC_CONFIGURE_CMDS --disable-profile \ --without-gd \ --enable-obsolete-rpc \ + --enable-kernel=$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)) \ --with-headers=$(STAGING_DIR)/usr/include) $(GLIBC_ADD_MISSING_STUB_H) endef @@ -117,7 +111,7 @@ endif define GLIBC_INSTALL_TARGET_CMDS for libs in $(GLIBC_LIBS_LIB); do \ - $(call copy_toolchain_lib_root,$(STAGING_DIR)/,,lib,$$libs,/lib) ; \ + $(call copy_toolchain_lib_root,$$libs) ; \ done endef diff --git a/bsp/buildroot/package/glibmm/glibmm.hash b/bsp/buildroot/package/glibmm/glibmm.hash index c0703633..82775e30 100644 --- a/bsp/buildroot/package/glibmm/glibmm.hash +++ b/bsp/buildroot/package/glibmm/glibmm.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/glibmm/2.46/glibmm-2.46.3.sha256sum -sha256 c78654addeb27a1213bedd7cd21904a45bbb98a5ba2f2f0de2b2f1a5682d86cf glibmm-2.46.3.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/glibmm/2.48/glibmm-2.48.1.sha256sum +sha256 dc225f7d2f466479766332483ea78f82dc349d59399d30c00de50e5073157cdf glibmm-2.48.1.tar.xz diff --git a/bsp/buildroot/package/glibmm/glibmm.mk b/bsp/buildroot/package/glibmm/glibmm.mk index 4b6d68f8..741b45e8 100644 --- a/bsp/buildroot/package/glibmm/glibmm.mk +++ b/bsp/buildroot/package/glibmm/glibmm.mk @@ -4,8 +4,8 @@ # ################################################################################ -GLIBMM_VERSION_MAJOR = 2.46 -GLIBMM_VERSION = $(GLIBMM_VERSION_MAJOR).3 +GLIBMM_VERSION_MAJOR = 2.48 +GLIBMM_VERSION = $(GLIBMM_VERSION_MAJOR).1 GLIBMM_LICENSE = LGPLv2.1+ (library), GPLv2+ (tools) GLIBMM_LICENSE_FILES = COPYING COPYING.tools GLIBMM_SOURCE = glibmm-$(GLIBMM_VERSION).tar.xz diff --git a/bsp/buildroot/package/glm/glm.hash b/bsp/buildroot/package/glm/glm.hash new file mode 100644 index 00000000..30bb9237 --- /dev/null +++ b/bsp/buildroot/package/glm/glm.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 39c7ee0db54289f78350c7629ea2531664d71c6a494bbb86db48a86536de9ff2 glm-0.9.5.4.tar.gz diff --git a/bsp/buildroot/package/glmark2/Config.in b/bsp/buildroot/package/glmark2/Config.in index 052e820c..c8380b1d 100644 --- a/bsp/buildroot/package/glmark2/Config.in +++ b/bsp/buildroot/package/glmark2/Config.in @@ -7,6 +7,7 @@ config BR2_PACKAGE_GLMARK2_EGL_GLES config BR2_PACKAGE_GLMARK2_GL bool default y + depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_MESA3D_DRI_DRIVER comment "glmark2 needs an OpenGL or an openGL ES and EGL backend provided by mesa3d" @@ -21,7 +22,3 @@ config BR2_PACKAGE_GLMARK2 glmark2 is an OpenGL 2.0 and ES 2.0 benchmark. https://github.com/glmark2/glmark2 - -comment "glmark2 needs udev /dev management and a toolchain w/ C++, NPTL" - depends on !BR2_INSTALL_LIBSTDCPP || \ - !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_HAS_UDEV diff --git a/bsp/buildroot/package/glmark2/glmark2.hash b/bsp/buildroot/package/glmark2/glmark2.hash new file mode 100644 index 00000000..7868b37d --- /dev/null +++ b/bsp/buildroot/package/glmark2/glmark2.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 421bdb87ed8c04a25f60816c7754d45e91a45136f5489df59d74001c159882b8 glmark2-fa71af2dfab711fac87b9504b6fc9862f44bf72a.tar.gz diff --git a/bsp/buildroot/package/glmark2/glmark2.mk b/bsp/buildroot/package/glmark2/glmark2.mk index bd5b51a3..2f662fee 100644 --- a/bsp/buildroot/package/glmark2/glmark2.mk +++ b/bsp/buildroot/package/glmark2/glmark2.mk @@ -4,7 +4,7 @@ # ################################################################################ -GLMARK2_VERSION = 499aa81a68fb4c8aac1c80f0d6a4cce05941c4cc +GLMARK2_VERSION = fa71af2dfab711fac87b9504b6fc9862f44bf72a GLMARK2_SITE = $(call github,glmark2,glmark2,$(GLMARK2_VERSION)) GLMARK2_LICENSE = GPLv3+ SGIv1 GLMARK2_LICENSE_FILES = COPYING COPYING.SGI diff --git a/bsp/buildroot/package/glog/glog.hash b/bsp/buildroot/package/glog/glog.hash index dad15434..4548ebac 100644 --- a/bsp/buildroot/package/glog/glog.hash +++ b/bsp/buildroot/package/glog/glog.hash @@ -1,2 +1,2 @@ -# No hash for v0.3.4, comes from the github-helper: -none xxx glog-v0.3.4.tar.gz +# Locally computed +sha256 ce99d58dce74458f7656a68935d7a0c048fa7b4626566a71b7f4e545920ceb10 glog-v0.3.4.tar.gz diff --git a/bsp/buildroot/package/gmock/gmock.mk b/bsp/buildroot/package/gmock/gmock.mk index a0351d0a..4f04422a 100644 --- a/bsp/buildroot/package/gmock/gmock.mk +++ b/bsp/buildroot/package/gmock/gmock.mk @@ -39,6 +39,8 @@ define GMOCK_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock_main.a $(STAGING_DIR)/usr/lib/libgmock_main.a $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gmock/ cp -rp $(@D)/include/gmock/* $(STAGING_DIR)/usr/include/gmock/ + $(INSTALL) -D -m 0755 package/gmock/gmock.pc \ + $(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc endef # Unzipping inside $(@D) and moving everything from the created subdirectory is diff --git a/bsp/buildroot/package/gmock/gmock.pc b/bsp/buildroot/package/gmock/gmock.pc new file mode 100644 index 00000000..2f900682 --- /dev/null +++ b/bsp/buildroot/package/gmock/gmock.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib/ +includedir=${prefix}/include + +Name: gmock +Description: Google C++ Mocking Framework +Version: 1.7.0 +Libs: -L${libdir} -lgmock +Libs.private: -lpthread +Cflags: -I${includedir} diff --git a/bsp/buildroot/package/gmp/gmp.hash b/bsp/buildroot/package/gmp/gmp.hash index e803623c..9ea42e53 100644 --- a/bsp/buildroot/package/gmp/gmp.hash +++ b/bsp/buildroot/package/gmp/gmp.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 68dadacce515b0f8a54f510edf07c1b636492bcdb8e8d54c56eb216225d16989 gmp-6.1.0.tar.xz +sha256 d36e9c05df488ad630fff17edb50051d6432357f9ce04e34a09b3d818825e831 gmp-6.1.1.tar.xz diff --git a/bsp/buildroot/package/gmp/gmp.mk b/bsp/buildroot/package/gmp/gmp.mk index af6958de..420fd2f3 100644 --- a/bsp/buildroot/package/gmp/gmp.mk +++ b/bsp/buildroot/package/gmp/gmp.mk @@ -4,16 +4,18 @@ # ################################################################################ -GMP_VERSION = 6.1.0 +GMP_VERSION = 6.1.1 GMP_SITE = $(BR2_GNU_MIRROR)/gmp GMP_SOURCE = gmp-$(GMP_VERSION).tar.xz GMP_INSTALL_STAGING = YES -GMP_LICENSE = LGPLv3+ -GMP_LICENSE_FILES = COPYING.LESSERv3 +GMP_LICENSE = LGPLv3+ or GPLv2+ +GMP_LICENSE_FILES = COPYING.LESSERv3 COPYINGv2 GMP_DEPENDENCIES = host-m4 +HOST_GMP_DEPENDENCIES = host-m4 -# GMP doesn't support assembly for r6 ISA yet -ifeq ($(BR2_mips_32r6)$(BR2_mips_64r6),y) +# GMP doesn't support assembly for coldfire or mips r6 ISA yet +# Disable for ARM v7m since it has different asm constraints +ifeq ($(BR2_m68k_cf)$(BR2_mips_32r6)$(BR2_mips_64r6)$(BR2_ARM_CPU_ARMV7M)$(BR2_arc),y) GMP_CONF_OPTS += --disable-assembly endif diff --git a/bsp/buildroot/package/gmrender-resurrect/Config.in b/bsp/buildroot/package/gmrender-resurrect/Config.in new file mode 100644 index 00000000..631c407f --- /dev/null +++ b/bsp/buildroot/package/gmrender-resurrect/Config.in @@ -0,0 +1,19 @@ +config BR2_PACKAGE_GMRENDER_RESURRECT + bool "gmrender-resurrect" + depends on BR2_USE_WCHAR # gstreamer1 -> libglib2 + depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer1 -> libglib2, libupnp + depends on BR2_USE_MMU # gstreamer1 + # uses + depends on !BR2_TOOLCHAIN_USES_MUSL + select BR2_PACKAGE_GSTREAMER1 + select BR2_PACKAGE_GST1_PLUGINS_BASE # run-time only + select BR2_PACKAGE_LIBUPNP + help + UPnP (DLNA) media renderer based on gstreamer + + https://github.com/hzeller/gmrender-resurrect + +comment "gmrender-resurrect needs a glibc or uClibc toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ + BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.hash b/bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.hash new file mode 100644 index 00000000..ba4561ea --- /dev/null +++ b/bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 8cd9eae3e6be75684c9b7c4d29702fcbbeead0ded1d4f7cf8fb65fe1dc718596 gmrender-resurrect-48caaa4f6c386fd1586126c801cd326f96d5fa5c.tar.gz diff --git a/bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.mk b/bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.mk new file mode 100644 index 00000000..24608a1c --- /dev/null +++ b/bsp/buildroot/package/gmrender-resurrect/gmrender-resurrect.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# gmrender-resurrect +# +################################################################################ + +GMRENDER_RESURRECT_VERSION = 48caaa4f6c386fd1586126c801cd326f96d5fa5c +GMRENDER_RESURRECT_SITE = $(call github,hzeller,gmrender-resurrect,$(GMRENDER_RESURRECT_VERSION)) +# Original distribution does not have default configure, +# so we need to autoreconf: +GMRENDER_RESURRECT_AUTORECONF = YES +GMRENDER_RESURRECT_LICENSE = GPLv2+ +GMRENDER_RESURRECT_LICENSE_FILES = COPYING +GMRENDER_RESURRECT_DEPENDENCIES = gstreamer1 libupnp + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gnupg/gnupg.hash b/bsp/buildroot/package/gnupg/gnupg.hash index f872d24d..8968b00d 100644 --- a/bsp/buildroot/package/gnupg/gnupg.hash +++ b/bsp/buildroot/package/gnupg/gnupg.hash @@ -1,2 +1,4 @@ -# From https://lists.gnupg.org/pipermail/gnupg-announce/2015q4/000382.html -sha1 cbc9d960e3d8488c32675019a79fbfbf8680387e gnupg-1.4.20.tar.bz2 +# From https://lists.gnu.org/archive/html/info-gnu/2016-08/msg00008.html +sha1 e3bdb585026f752ae91360f45c28e76e4a15d338 gnupg-1.4.21.tar.bz2 +# Locally computed +sha256 6b47a3100c857dcab3c60e6152e56a997f2c7862c1b8b2b25adf3884a1ae2276 gnupg-1.4.21.tar.bz2 diff --git a/bsp/buildroot/package/gnupg/gnupg.mk b/bsp/buildroot/package/gnupg/gnupg.mk index 8893a1cc..182abd67 100644 --- a/bsp/buildroot/package/gnupg/gnupg.mk +++ b/bsp/buildroot/package/gnupg/gnupg.mk @@ -4,7 +4,7 @@ # ################################################################################ -GNUPG_VERSION = 1.4.20 +GNUPG_VERSION = 1.4.21 GNUPG_SOURCE = gnupg-$(GNUPG_VERSION).tar.bz2 GNUPG_SITE = ftp://ftp.gnupg.org/gcrypt/gnupg GNUPG_LICENSE = GPLv3+ @@ -13,6 +13,11 @@ GNUPG_DEPENDENCIES = zlib ncurses $(if $(BR2_PACKAGE_LIBICONV),libiconv) GNUPG_CONF_ENV = ac_cv_sys_symbol_underscore=no GNUPG_CONF_OPTS = --disable-rpath --enable-minimal --disable-regex +# gnupg doesn't support assembly for coldfire +ifeq ($(BR2_m68k_cf),y) +GNUPG_CONF_OPTS += --disable-asm +endif + ifeq ($(BR2_PACKAGE_BZIP2),y) GNUPG_CONF_OPTS += --enable-bzip2 GNUPG_DEPENDENCIES += bzip2 diff --git a/bsp/buildroot/package/gnupg2/Config.in b/bsp/buildroot/package/gnupg2/Config.in index e246fd79..ba2a6bcf 100644 --- a/bsp/buildroot/package/gnupg2/Config.in +++ b/bsp/buildroot/package/gnupg2/Config.in @@ -12,6 +12,7 @@ config BR2_PACKAGE_GNUPG2 select BR2_PACKAGE_LIBPTHSEM select BR2_PACKAGE_LIBPTHSEM_COMPAT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_USE_MMU # libassuan depends on !BR2_STATIC_LIBS help diff --git a/bsp/buildroot/package/gnupg2/gnupg2.hash b/bsp/buildroot/package/gnupg2/gnupg2.hash index 1219338b..67f7d9da 100644 --- a/bsp/buildroot/package/gnupg2/gnupg2.hash +++ b/bsp/buildroot/package/gnupg2/gnupg2.hash @@ -1,2 +1,4 @@ -# From https://lists.gnu.org/archive/html/info-gnu/2015-09/msg00001.html -sha1 87eb0df18f9953675f979405a1af10ab6c5322b3 gnupg-2.0.29.tar.bz2 +# From https://lists.gnupg.org/pipermail/gnupg-announce/2016q1/000385.html +sha1 a9f024588c356a55e2fd413574bfb55b2e18794a gnupg-2.0.30.tar.bz2 +# Calculated based on the hash above +sha256 e329785a4f366ba5d72c2c678a7e388b0892ac8440c2f4e6810042123c235d71 gnupg-2.0.30.tar.bz2 diff --git a/bsp/buildroot/package/gnupg2/gnupg2.mk b/bsp/buildroot/package/gnupg2/gnupg2.mk index 8d4f3737..763e9454 100644 --- a/bsp/buildroot/package/gnupg2/gnupg2.mk +++ b/bsp/buildroot/package/gnupg2/gnupg2.mk @@ -4,7 +4,7 @@ # ################################################################################ -GNUPG2_VERSION = 2.0.29 +GNUPG2_VERSION = 2.0.30 GNUPG2_SOURCE = gnupg-$(GNUPG2_VERSION).tar.bz2 GNUPG2_SITE = ftp://ftp.gnupg.org/gcrypt/gnupg GNUPG2_LICENSE = GPLv3+ diff --git a/bsp/buildroot/package/gnuplot/gnuplot.mk b/bsp/buildroot/package/gnuplot/gnuplot.mk index 4408ece5..a9e12045 100644 --- a/bsp/buildroot/package/gnuplot/gnuplot.mk +++ b/bsp/buildroot/package/gnuplot/gnuplot.mk @@ -25,6 +25,11 @@ GNUPLOT_CONF_OPTS = \ --without-latex \ --without-cairo +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k_cf),y) +GNUPLOT_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot" +endif + ifeq ($(BR2_PACKAGE_GD)$(BR2_PACKAGE_LIBPNG),yy) GNUPLOT_CONF_OPTS += --with-gd GNUPLOT_DEPENDENCIES += gd diff --git a/bsp/buildroot/package/gnuradio/0001-suppress-boost_unitest-detection.patch b/bsp/buildroot/package/gnuradio/0001-suppress-boost_unitest-detection.patch index 76638815..f1713dc3 100644 --- a/bsp/buildroot/package/gnuradio/0001-suppress-boost_unitest-detection.patch +++ b/bsp/buildroot/package/gnuradio/0001-suppress-boost_unitest-detection.patch @@ -7,8 +7,8 @@ Signed-off-by: Gwenhael Goavec-Merou --- Index: gnuradio-3.7.5/volk/cmake/VolkBoost.cmake =================================================================== ---- gnuradio-3.7.5.orig/volk/cmake/VolkBoost.cmake -+++ gnuradio-3.7.5/volk/cmake/VolkBoost.cmake +--- gnuradio-3.7.5.orig/volk/cmake/Modules/VolkBoost.cmake ++++ gnuradio-3.7.5/volk/cmake/Modules/VolkBoost.cmake @@ -29,7 +29,6 @@ set(__INCLUDED_VOLK_BOOST_CMAKE TRUE) set(BOOST_REQUIRED_COMPONENTS filesystem @@ -21,20 +21,21 @@ Index: gnuradio-3.7.5/volk/lib/CMakeLists.txt =================================================================== --- gnuradio-3.7.5.orig/volk/lib/CMakeLists.txt +++ gnuradio-3.7.5/volk/lib/CMakeLists.txt -@@ -540,8 +540,9 @@ endif(ENABLE_STATIC_LIBS) +@@ -580,7 +580,10 @@ + ######################################################################## # Build the QA test application ######################################################################## - +-if(ENABLE_TESTING) ++ +find_package(Boost "1.35" COMPONENTS "unit_test_framework") ++ ++if(ENABLE_TESTING AND BUILD_TEST) --if(Boost_FOUND) -+if(Boost_FOUND AND BUILD_TEST) + #include Boost headers + include_directories(${Boost_INCLUDE_DIRS}) +@@ -597,4 +600,4 @@ + TARGET_DEPS volk + ) - set_source_files_properties( - ${CMAKE_CURRENT_SOURCE_DIR}/testqa.cc PROPERTIES -@@ -558,4 +559,4 @@ if(Boost_FOUND) - target_link_libraries(test_all volk ${Boost_LIBRARIES}) - add_test(qa_volk_test_all test_all) - --endif(Boost_FOUND) -+endif(Boost_FOUND AND BUILD_TEST) +-endif(ENABLE_TESTING) ++endif(ENABLE_TESTING AND BUILD_TEST) diff --git a/bsp/buildroot/package/gnuradio/0002-fix_cmake_3_5_0_build_failure.patch b/bsp/buildroot/package/gnuradio/0002-fix_cmake_3_5_0_build_failure.patch new file mode 100644 index 00000000..15d7dea7 --- /dev/null +++ b/bsp/buildroot/package/gnuradio/0002-fix_cmake_3_5_0_build_failure.patch @@ -0,0 +1,175 @@ +Changing CMAKE_{SOURCE,BINARY}_DIR like volk does in its top-level +CMakeLists.txt no longer works with CMake 3.5.0. + +Use PROJECT_{BINARY,SOURCE}_DIR instead. + +Obtained from: http://pkgs.fedoraproject.org/cgit/rpms/gnuradio.git/commit/?id=b50c7e66f6e3a1e6a84e25505d3fd873756c2027 +Upstream patch and discussion: https://github.com/gnuradio/volk/pull/65 + +Signed-off-by: Gwenhael Goavec-Merou +--- + apps/CMakeLists.txt | 12 ++++++------ + lib/CMakeLists.txt | 48 ++++++++++++++++++++++++------------------------ + 2 files changed, 30 insertions(+), 30 deletions(-) + +diff --git a/volk/apps/CMakeLists.txt b/volk/apps/CMakeLists.txt +index 74ed18d..f9ef6e0 100644 +--- a/volk/apps/CMakeLists.txt ++++ b/volk/apps/CMakeLists.txt +@@ -19,23 +19,23 @@ + # Setup profiler + ######################################################################## + if(MSVC) +- include_directories(${CMAKE_SOURCE_DIR}/cmake/msvc) ++ include_directories(${PROJECT_SOURCE_DIR}/cmake/msvc) + endif(MSVC) + + include_directories( + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} +- ${CMAKE_SOURCE_DIR}/include +- ${CMAKE_BINARY_DIR}/include +- ${CMAKE_SOURCE_DIR}/lib +- ${CMAKE_BINARY_DIR}/lib ++ ${PROJECT_SOURCE_DIR}/include ++ ${PROJECT_BINARY_DIR}/include ++ ${PROJECT_SOURCE_DIR}/lib ++ ${PROJECT_BINARY_DIR}/lib + ${Boost_INCLUDE_DIRS} + ) + + # MAKE volk_profile + add_executable(volk_profile + ${CMAKE_CURRENT_SOURCE_DIR}/volk_profile.cc +- ${CMAKE_SOURCE_DIR}/lib/qa_utils.cc ++ ${PROJECT_SOURCE_DIR}/lib/qa_utils.cc + ) + + +diff --git a/volk/lib/CMakeLists.txt b/volk/lib/CMakeLists.txt +index 35b67dc..f00200a 100644 +--- a/volk/lib/CMakeLists.txt ++++ b/volk/lib/CMakeLists.txt +@@ -90,7 +90,7 @@ endif() + ######################################################################## + execute_process( + COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} +- ${CMAKE_SOURCE_DIR}/gen/volk_compile_utils.py ++ ${PROJECT_SOURCE_DIR}/gen/volk_compile_utils.py + --mode "arch_flags" --compiler "${COMPILER_NAME}" + OUTPUT_VARIABLE arch_flag_lines OUTPUT_STRIP_TRAILING_WHITESPACE + ) +@@ -278,7 +278,7 @@ message(STATUS "Available architectures: ${available_archs}") + ######################################################################## + execute_process( + COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} +- ${CMAKE_SOURCE_DIR}/gen/volk_compile_utils.py ++ ${PROJECT_SOURCE_DIR}/gen/volk_compile_utils.py + --mode "machines" --archs "${available_archs}" + OUTPUT_VARIABLE available_machines OUTPUT_STRIP_TRAILING_WHITESPACE + ) +@@ -310,9 +310,9 @@ message(STATUS "Available machines: ${available_machines}") + ######################################################################## + + #dependencies are all python, xml, and header implementation files +-file(GLOB xml_files ${CMAKE_SOURCE_DIR}/gen/*.xml) +-file(GLOB py_files ${CMAKE_SOURCE_DIR}/gen/*.py) +-file(GLOB h_files ${CMAKE_SOURCE_DIR}/kernels/volk/*.h) ++file(GLOB xml_files ${PROJECT_SOURCE_DIR}/gen/*.xml) ++file(GLOB py_files ${PROJECT_SOURCE_DIR}/gen/*.py) ++file(GLOB h_files ${PROJECT_SOURCE_DIR}/kernels/volk/*.h) + + macro(gen_template tmpl output) + list(APPEND volk_gen_sources ${output}) +@@ -320,21 +320,21 @@ macro(gen_template tmpl output) + OUTPUT ${output} + DEPENDS ${xml_files} ${py_files} ${h_files} ${tmpl} + COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} +- ${CMAKE_SOURCE_DIR}/gen/volk_tmpl_utils.py ++ ${PROJECT_SOURCE_DIR}/gen/volk_tmpl_utils.py + --input ${tmpl} --output ${output} ${ARGN} + ) + endmacro(gen_template) + +-make_directory(${CMAKE_BINARY_DIR}/include/volk) ++make_directory(${PROJECT_BINARY_DIR}/include/volk) + +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk.tmpl.h ${CMAKE_BINARY_DIR}/include/volk/volk.h) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk.tmpl.c ${CMAKE_BINARY_DIR}/lib/volk.c) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_typedefs.tmpl.h ${CMAKE_BINARY_DIR}/include/volk/volk_typedefs.h) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_cpu.tmpl.h ${CMAKE_BINARY_DIR}/include/volk/volk_cpu.h) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_cpu.tmpl.c ${CMAKE_BINARY_DIR}/lib/volk_cpu.c) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_config_fixed.tmpl.h ${CMAKE_BINARY_DIR}/include/volk/volk_config_fixed.h) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_machines.tmpl.h ${CMAKE_BINARY_DIR}/lib/volk_machines.h) +-gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_machines.tmpl.c ${CMAKE_BINARY_DIR}/lib/volk_machines.c) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk.tmpl.h ${PROJECT_BINARY_DIR}/include/volk/volk.h) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk.tmpl.c ${PROJECT_BINARY_DIR}/lib/volk.c) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_typedefs.tmpl.h ${PROJECT_BINARY_DIR}/include/volk/volk_typedefs.h) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_cpu.tmpl.h ${PROJECT_BINARY_DIR}/include/volk/volk_cpu.h) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_cpu.tmpl.c ${PROJECT_BINARY_DIR}/lib/volk_cpu.c) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_config_fixed.tmpl.h ${PROJECT_BINARY_DIR}/include/volk/volk_config_fixed.h) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_machines.tmpl.h ${PROJECT_BINARY_DIR}/lib/volk_machines.h) ++gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_machines.tmpl.c ${PROJECT_BINARY_DIR}/lib/volk_machines.c) + + set(BASE_CFLAGS NONE) + string(TOUPPER ${CMAKE_BUILD_TYPE} CBTU) +@@ -362,12 +362,12 @@ set(COMPILER_INFO "${CMAKE_C_COMPILER}:::${CMAKE_C_FLAGS_${GRCBTU}} ${CMAKE_C_FL + foreach(machine_name ${available_machines}) + #generate machine source + set(machine_source ${CMAKE_CURRENT_BINARY_DIR}/volk_machine_${machine_name}.c) +- gen_template(${CMAKE_SOURCE_DIR}/tmpl/volk_machine_xxx.tmpl.c ${machine_source} ${machine_name}) ++ gen_template(${PROJECT_SOURCE_DIR}/tmpl/volk_machine_xxx.tmpl.c ${machine_source} ${machine_name}) + + #determine machine flags + execute_process( + COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} +- ${CMAKE_SOURCE_DIR}/gen/volk_compile_utils.py ++ ${PROJECT_SOURCE_DIR}/gen/volk_compile_utils.py + --mode "machine_flags" --machine "${machine_name}" --compiler "${COMPILER_NAME}" + OUTPUT_VARIABLE ${machine_name}_flags OUTPUT_STRIP_TRAILING_WHITESPACE + ) +@@ -393,9 +393,9 @@ string(REPLACE "\n" " \\n" COMPILER_INFO ${COMPILER_INFO}) + # Set local include directories first + ######################################################################## + include_directories( +- ${CMAKE_BINARY_DIR}/include +- ${CMAKE_SOURCE_DIR}/include +- ${CMAKE_SOURCE_DIR}/kernels ++ ${PROJECT_BINARY_DIR}/include ++ ${PROJECT_SOURCE_DIR}/include ++ ${PROJECT_SOURCE_DIR}/kernels + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ) +@@ -420,8 +420,8 @@ if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") + # setup architecture specific assembler flags + set(ARCH_ASM_FLAGS "-mfpu=neon -g") + # then add the files +- include_directories(${CMAKE_SOURCE_DIR}/kernels/volk/asm/neon) +- file(GLOB asm_files ${CMAKE_SOURCE_DIR}/kernels/volk/asm/neon/*.s) ++ include_directories(${PROJECT_SOURCE_DIR}/kernels/volk/asm/neon) ++ file(GLOB asm_files ${PROJECT_SOURCE_DIR}/kernels/volk/asm/neon/*.s) + foreach(asm_file ${asm_files}) + list(APPEND volk_sources ${asm_file}) + message(STATUS "Adding source file: ${asm_file}") +@@ -453,7 +453,7 @@ if(ORC_FOUND) + list(APPEND volk_libraries ${ORC_LIBRARIES}) + + #setup orc functions +- file(GLOB orc_files ${CMAKE_SOURCE_DIR}/kernels/volk/asm/orc/*.orc) ++ file(GLOB orc_files ${PROJECT_SOURCE_DIR}/kernels/volk/asm/orc/*.orc) + foreach(orc_file ${orc_files}) + + #extract the name for the generated c source from the orc file +@@ -511,7 +511,7 @@ PROPERTIES COMPILE_DEFINITIONS "${machine_defs}") + + if(MSVC) + #add compatibility includes for stdint types +- include_directories(${CMAKE_SOURCE_DIR}/cmake/msvc) ++ include_directories(${PROJECT_SOURCE_DIR}/cmake/msvc) + add_definitions(-DHAVE_CONFIG_H) + #compile the sources as C++ due to the lack of complex.h under MSVC + set_source_files_properties(${volk_sources} PROPERTIES LANGUAGE CXX) +-- +2.7.3 + diff --git a/bsp/buildroot/package/gnuradio/0002-types_t-is-need-for-mode_t.patch b/bsp/buildroot/package/gnuradio/0002-types_t-is-need-for-mode_t.patch deleted file mode 100644 index 7730d2df..00000000 --- a/bsp/buildroot/package/gnuradio/0002-types_t-is-need-for-mode_t.patch +++ /dev/null @@ -1,19 +0,0 @@ -To avoid : -error: 'mode_t' has not been declared -sys/types.h must be included - -Signed-off-by: Gwenhael Goavec-Merou ---- -Index: gnuradio-3.7.5/gnuradio-runtime/include/gnuradio/logger.h.in -=================================================================== ---- gnuradio-3.7.5.orig/gnuradio-runtime/include/gnuradio/logger.h.in -+++ gnuradio-3.7.5/gnuradio-runtime/include/gnuradio/logger.h.in -@@ -44,6 +44,8 @@ - - #ifdef _MSC_VER - typedef unsigned short mode_t; -+#else -+#include - #endif - - #include diff --git a/bsp/buildroot/package/gnuradio/0003-fix_compilation_in_gcc-6.patch b/bsp/buildroot/package/gnuradio/0003-fix_compilation_in_gcc-6.patch new file mode 100644 index 00000000..f50af856 --- /dev/null +++ b/bsp/buildroot/package/gnuradio/0003-fix_compilation_in_gcc-6.patch @@ -0,0 +1,36 @@ +commit a1cf11937665392bcfa223a5095ff903eb44c69b +Author: Jaroslav #karvada +Date: Fri Feb 12 18:29:13 2016 +0100 + +Backport patch from +http://gnuradio.org/redmine/projects/gnuradio/repository/revisions/a1cf11937665392bcfa223a5095ff903eb44c69b + +Fix compilation in gcc-6 + +Signed-off-by: Jaroslav #karvada +Signed-off-by: Gwenhael Goavec-Merou +--- +diff --git a/gr-fec/include/gnuradio/fec/polar_decoder_common.h b/gr-fec/include/gnuradio/fec/polar_decoder_common.h +index b0ecb85..a39ee4f 100644 +--- a/gr-fec/include/gnuradio/fec/polar_decoder_common.h ++++ b/gr-fec/include/gnuradio/fec/polar_decoder_common.h +@@ -28,6 +28,10 @@ + #include + #include + ++#ifndef BOOST_CONSTEXPR_OR_CONST ++#define BOOST_CONSTEXPR_OR_CONST const ++#endif ++ + namespace gr { + namespace fec { + namespace code { +@@ -64,7 +68,7 @@ namespace gr { + bool set_frame_size(unsigned int frame_size){return false;}; + + private: +- static const float D_LLR_FACTOR = -2.19722458f; ++ static BOOST_CONSTEXPR_OR_CONST float D_LLR_FACTOR = -2.19722458f; + unsigned int d_frozen_bit_counter; + + protected: diff --git a/bsp/buildroot/package/gnuradio/Config.in b/bsp/buildroot/package/gnuradio/Config.in index 603532cf..50f5e7fa 100644 --- a/bsp/buildroot/package/gnuradio/Config.in +++ b/bsp/buildroot/package/gnuradio/Config.in @@ -1,6 +1,5 @@ comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library" depends on BR2_USE_MMU - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS @@ -11,7 +10,6 @@ config BR2_PACKAGE_GNURADIO depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # use fork() depends on BR2_USE_WCHAR # boost - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_DATE_TIME select BR2_PACKAGE_BOOST_FILESYSTEM @@ -32,11 +30,22 @@ config BR2_PACKAGE_GNURADIO if BR2_PACKAGE_GNURADIO +config BR2_PACKAGE_GNURADIO_AUDIO + bool "gr-audio" + depends on BR2_PACKAGE_ALSA_LIB || BR2_PACKAGE_PORTAUDIO + help + Add audio source/sink to GNU Radio + config BR2_PACKAGE_GNURADIO_BLOCKS bool "blocks support" help GNU Radio basic block library +config BR2_PACKAGE_GNURADIO_CTRLPORT + bool "ctrlport support" + help + GNU Radio ctrlport block + config BR2_PACKAGE_GNURADIO_FEC bool "gr-fec support" select BR2_PACKAGE_GNURADIO_BLOCKS @@ -58,7 +67,7 @@ config BR2_PACKAGE_GNURADIO_UTILS help Misc python utilities -comment "gr-fft, -filter, -analog, -channels, -digital, -trellis, -pager depends fftw's single precision" +comment "gr-fft, -filter, -analog, -channels, -digital, -trellis, -pager, -qtgui depends fftw's single precision" depends on !BR2_PACKAGE_FFTW_PRECISION_SINGLE if BR2_PACKAGE_FFTW_PRECISION_SINGLE @@ -99,6 +108,16 @@ config BR2_PACKAGE_GNURADIO_PAGER help FLEX pager decoder implementation blocks +config BR2_PACKAGE_GNURADIO_QTGUI + bool "gr-qtgui" + depends on BR2_PACKAGE_PYTHON_PYQT + depends on BR2_PACKAGE_QWT + depends on BR2_PACKAGE_QT_STL + select BR2_PACKAGE_GNURADIO_FFT + select BR2_PACKAGE_GNURADIO_FILTER + help + GNU Radio Qt scopes + config BR2_PACKAGE_GNURADIO_TRELLIS bool "gr-trellis support" select BR2_PACKAGE_GNURADIO_DIGITAL diff --git a/bsp/buildroot/package/gnuradio/gnuradio.hash b/bsp/buildroot/package/gnuradio/gnuradio.hash index d34dd55c..bb934e2b 100644 --- a/bsp/buildroot/package/gnuradio/gnuradio.hash +++ b/bsp/buildroot/package/gnuradio/gnuradio.hash @@ -1,5 +1,2 @@ -# From http://gnuradio.org/redmine/projects/gnuradio/files -md5 b4a917a548f41ce25c6c88f9bc864bca gnuradio-3.7.5.tar.gz - -# Locally calculated: -sha256 467f62190687a34f9faa18be8d650e28d7046b94070b1b6d94355c28beb76243 gnuradio-3.7.5.tar.gz +# From http://gnuradio.org/releases/gnuradio/sha256sums +sha256 9c06f0f1ec14113203e0486fd526dd46ecef216dfe42f12d78d9b781b1ef967e gnuradio-3.7.9.1.tar.gz diff --git a/bsp/buildroot/package/gnuradio/gnuradio.mk b/bsp/buildroot/package/gnuradio/gnuradio.mk index b7dbcb9f..972f7a49 100644 --- a/bsp/buildroot/package/gnuradio/gnuradio.mk +++ b/bsp/buildroot/package/gnuradio/gnuradio.mk @@ -4,8 +4,8 @@ # ################################################################################ -GNURADIO_VERSION = 3.7.5 -GNURADIO_SITE = http://gnuradio.org/redmine/attachments/download/792 +GNURADIO_VERSION = 3.7.9.1 +GNURADIO_SITE = http://gnuradio.org/releases/gnuradio GNURADIO_LICENSE = GPLv3+ GNURADIO_LICENSE_FILES = COPYING @@ -52,6 +52,18 @@ else GNURADIO_CONF_OPTS += -DENABLE_GR_ANALOG=OFF endif +ifeq ($(BR2_PACKAGE_GNURADIO_AUDIO),y) +ifeq ($(BR2_PACKAGE_ALSA_LIB),y) +GNURADIO_DEPENDENCIES += alsa-lib +endif +ifeq ($(BR2_PACKAGE_PORTAUDIO),y) +GNURADIO_DEPENDENCIES += portaudio +endif +GNURADIO_CONF_OPTS += -DENABLE_GR_AUDIO=ON +else +GNURADIO_CONF_OPTS += -DENABLE_GR_AUDIO=OFF +endif + ifeq ($(BR2_PACKAGE_GNURADIO_BLOCKS),y) GNURADIO_CONF_OPTS += -DENABLE_GR_BLOCKS=ON else @@ -64,6 +76,12 @@ else GNURADIO_CONF_OPTS += -DENABLE_GR_CHANNELS=OFF endif +ifeq ($(BR2_PACKAGE_GNURADIO_CTRLPORT),y) +GNURADIO_CONF_OPTS += -DENABLE_GR_CTRLPORT=ON +else +GNURADIO_CONF_OPTS += -DENABLE_GR_CTRLPORT=OFF +endif + ifeq ($(BR2_PACKAGE_GNURADIO_DIGITAL),y) GNURADIO_CONF_OPTS += -DENABLE_GR_DIGITAL=ON else @@ -102,6 +120,13 @@ else GNURADIO_CONF_OPTS += -DENABLE_PAGER=OFF endif +ifeq ($(BR2_PACKAGE_GNURADIO_QTGUI),y) +GNURADIO_DEPENDENCIES += python-pyqt qwt +GNURADIO_CONF_OPTS += -DENABLE_GR_QTGUI=ON +else +GNURADIO_CONF_OPTS += -DENABLE_GR_QTGUI=OFF +endif + ifeq ($(BR2_PACKAGE_GNURADIO_TRELLIS),y) GNURADIO_CONF_OPTS += -DENABLE_GR_TRELLIS=ON else diff --git a/bsp/buildroot/package/gnutls/gnutls.hash b/bsp/buildroot/package/gnutls/gnutls.hash index 1bccffd0..e2c5fa1c 100644 --- a/bsp/buildroot/package/gnutls/gnutls.hash +++ b/bsp/buildroot/package/gnutls/gnutls.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 48594fadba33d450f796ec69526cf2bce6ff9bc3dc90fbd7bf38dc3601f57c3f gnutls-3.4.9.tar.xz +sha256 35deddf2779b76ac11057de38bf380b8066c05de21b94263ad5b6dfa75dfbb23 gnutls-3.4.14.tar.xz diff --git a/bsp/buildroot/package/gnutls/gnutls.mk b/bsp/buildroot/package/gnutls/gnutls.mk index 32f44e6f..429c1b2d 100644 --- a/bsp/buildroot/package/gnutls/gnutls.mk +++ b/bsp/buildroot/package/gnutls/gnutls.mk @@ -5,11 +5,15 @@ ################################################################################ GNUTLS_VERSION_MAJOR = 3.4 -GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).9 +GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).14 GNUTLS_SOURCE = gnutls-$(GNUTLS_VERSION).tar.xz GNUTLS_SITE = ftp://ftp.gnutls.org/gcrypt/gnutls/v$(GNUTLS_VERSION_MAJOR) -GNUTLS_LICENSE = GPLv3+, LGPLv2.1+ -GNUTLS_LICENSE_FILES = COPYING COPYING.LESSER +# README says that the core library is under LGPLv2.1+, but a few +# files in libdane specify LGPLv3+. It seems to be a mistake, and we +# therefore trust the README file here. A bug was reported upstream at +# https://gitlab.com/gnutls/gnutls/issues/109. +GNUTLS_LICENSE = LGPLv2.1+ (core library), GPLv3+ (gnutls-openssl library) +GNUTLS_LICENSE_FILES = COPYING COPYING.LESSER README GNUTLS_DEPENDENCIES = host-pkgconf libtasn1 nettle pcre GNUTLS_CONF_OPTS = \ --disable-doc \ diff --git a/bsp/buildroot/package/go-bootstrap/go-bootstrap.hash b/bsp/buildroot/package/go-bootstrap/go-bootstrap.hash new file mode 100644 index 00000000..1d0566a9 --- /dev/null +++ b/bsp/buildroot/package/go-bootstrap/go-bootstrap.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 299a6fd8f8adfdce15bc06bde926e7b252ae8e24dd5b16b7d8791ed79e7b5e9b go1.4.2.src.tar.gz diff --git a/bsp/buildroot/package/go-bootstrap/go-bootstrap.mk b/bsp/buildroot/package/go-bootstrap/go-bootstrap.mk new file mode 100644 index 00000000..29f2b033 --- /dev/null +++ b/bsp/buildroot/package/go-bootstrap/go-bootstrap.mk @@ -0,0 +1,48 @@ +################################################################################ +# +# go-bootstrap +# +################################################################################ + +GO_BOOTSTRAP_VERSION = 1.4.2 +GO_BOOTSTRAP_SITE = https://storage.googleapis.com/golang +GO_BOOTSTRAP_SOURCE = go$(GO_BOOTSTRAP_VERSION).src.tar.gz + +GO_BOOTSTRAP_LICENSE = BSD-3c +GO_BOOTSTRAP_LICENSE_FILES = LICENSE + +# To build programs that need cgo support the toolchain needs to be +# available, so the toolchain is not needed to build host-go-bootstrap +# itself, but needed by other packages that depend on +# host-go-bootstrap. +HOST_GO_BOOTSTRAP_DEPENDENCIES = toolchain + +HOST_GO_BOOTSTRAP_ROOT = $(HOST_DIR)/usr/lib/go-$(GO_BOOTSTRAP_VERSION) + +# The go build system is not compatable with ccache, so use HOSTCC_NOCCACHE +# here. See https://github.com/golang/go/issues/11685. +HOST_GO_BOOTSTRAP_MAKE_ENV = \ + GOOS=linux \ + GOROOT_FINAL="$(HOST_GO_BOOTSTRAP_ROOT)" \ + GOROOT="$(@D)" \ + GOBIN="$(@D)/bin" \ + CC=$(HOSTCC_NOCCACHE) \ + CGO_ENABLED=0 + +define HOST_GO_BOOTSTRAP_BUILD_CMDS + cd $(@D)/src && $(HOST_GO_BOOTSTRAP_MAKE_ENV) ./make.bash +endef + +define HOST_GO_BOOTSTRAP_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/bin/go $(HOST_GO_BOOTSTRAP_ROOT)/bin/go + $(INSTALL) -D -m 0755 $(@D)/bin/gofmt $(HOST_GO_BOOTSTRAP_ROOT)/bin/gofmt + + cp -a $(@D)/lib $(HOST_GO_BOOTSTRAP_ROOT)/ + cp -a $(@D)/pkg $(HOST_GO_BOOTSTRAP_ROOT)/ + + # There is a known issue which requires the go sources to be installed + # https://golang.org/issue/2775 + cp -a $(@D)/src $(HOST_GO_BOOTSTRAP_ROOT)/ +endef + +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/go/Config.in.host b/bsp/buildroot/package/go/Config.in.host new file mode 100644 index 00000000..d79c669e --- /dev/null +++ b/bsp/buildroot/package/go/Config.in.host @@ -0,0 +1,17 @@ +config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + bool + default y + depends on (BR2_arm && BR2_TOOLCHAIN_SUPPORTS_PIE) || BR2_aarch64 \ + || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le \ + || BR2_mips64 || BR2_mips64el + depends on !BR2_ARM_CPU_ARMV4 + # MIPS R6 support in Go has not yet been developed. + depends on !BR2_mips_64r6 + +config BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + bool + default y + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + # Go doesn't support CGO linking on MIPS64x platforms + # See: https://github.com/karalabe/xgo/issues/46 + depends on !BR2_mips64 && !BR2_mips64el diff --git a/bsp/buildroot/package/go/go.hash b/bsp/buildroot/package/go/go.hash new file mode 100644 index 00000000..6826891b --- /dev/null +++ b/bsp/buildroot/package/go/go.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 787b0b750d037016a30c6ed05a8a70a91b2e9db4bd9b1a2453aa502a63f1bccc go1.6.2.src.tar.gz diff --git a/bsp/buildroot/package/go/go.mk b/bsp/buildroot/package/go/go.mk new file mode 100644 index 00000000..d5d964f2 --- /dev/null +++ b/bsp/buildroot/package/go/go.mk @@ -0,0 +1,120 @@ +################################################################################ +# +# go +# +################################################################################ + +GO_VERSION = 1.6.2 +GO_SITE = https://storage.googleapis.com/golang +GO_SOURCE = go$(GO_VERSION).src.tar.gz + +GO_LICENSE = BSD-3c +GO_LICENSE_FILES = LICENSE + +ifeq ($(BR2_arm),y) +GO_GOARCH = arm +ifeq ($(BR2_ARM_CPU_ARMV5),y) +GO_GOARM = 5 +else ifeq ($(BR2_ARM_CPU_ARMV6),y) +GO_GOARM = 6 +else ifeq ($(BR2_ARM_CPU_ARMV7A),y) +GO_GOARM = 7 +endif +else ifeq ($(BR2_aarch64),y) +GO_GOARCH = arm64 +else ifeq ($(BR2_i386),y) +GO_GOARCH = 386 +else ifeq ($(BR2_x86_64),y) +GO_GOARCH = amd64 +else ifeq ($(BR2_powerpc64),y) +GO_GOARCH = ppc64 +else ifeq ($(BR2_powerpc64le),y) +GO_GOARCH = ppc64le +else ifeq ($(BR2_mips64),y) +GO_GOARCH = mips64 +else ifeq ($(BR2_mips64el),y) +GO_GOARCH = mips64le +endif + +HOST_GO_DEPENDENCIES = host-go-bootstrap +HOST_GO_ROOT = $(HOST_DIR)/usr/lib/go + +# For the convienience of target packages. +HOST_GO_TOOLDIR = $(HOST_GO_ROOT)/pkg/tool/linux_$(GO_GOARCH) +HOST_GO_TARGET_ENV = \ + GOARCH=$(GO_GOARCH) \ + GOROOT="$(HOST_GO_ROOT)" \ + CC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" \ + GOTOOLDIR="$(HOST_GO_TOOLDIR)" + +# The go compiler's cgo support uses threads. If BR2_TOOLCHAIN_HAS_THREADS is +# set, build in cgo support for any go programs that may need it. Note that +# any target package needing cgo support must include +# 'depends on BR2_TOOLCHAIN_HAS_THREADS' in its config file. +ifeq (BR2_TOOLCHAIN_HAS_THREADS,y) +HOST_GO_CGO_ENABLED = 1 +else +HOST_GO_CGO_ENABLED = 0 +endif + +# The go build system doesn't have the notion of cross compiling, but just the +# notion of architecture. When the host and target architectures are different +# it expects to be given a target cross compiler in CC_FOR_TARGET. When the +# architectures are the same it will use CC_FOR_TARGET for both host and target +# compilation. To work around this limitation build and install a set of +# compiler and tool binaries built with CC_FOR_TARGET set to the host compiler. +# Also, the go build system is not compatible with ccache, so use +# HOSTCC_NOCCACHE. See https://github.com/golang/go/issues/11685. +HOST_GO_MAKE_ENV = \ + GOROOT_BOOTSTRAP=$(HOST_GO_BOOTSTRAP_ROOT) \ + GOROOT_FINAL=$(HOST_GO_ROOT) \ + GOROOT="$(@D)" \ + GOBIN="$(@D)/bin" \ + GOARCH=$(GO_GOARCH) \ + $(if $(GO_GOARM),GOARM=$(GO_GOARM)) \ + GOOS=linux \ + CGO_ENABLED=$(HOST_GO_CGO_ENABLED) \ + CC=$(HOSTCC_NOCCACHE) + +HOST_GO_TARGET_CC = \ + CC_FOR_TARGET="$(TARGET_CC)" \ + CXX_FOR_TARGET="$(TARGET_CXX)" + +HOST_GO_HOST_CC = \ + CC_FOR_TARGET=$(HOSTCC_NOCCACHE) \ + CXX_FOR_TARGET=$(HOSTCC_NOCCACHE) + +HOST_GO_TMP = $(@D)/host-go-tmp + +define HOST_GO_BUILD_CMDS + cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_HOST_CC) ./make.bash + mkdir -p $(HOST_GO_TMP) + mv $(@D)/pkg/tool $(HOST_GO_TMP)/ + mv $(@D)/bin/ $(HOST_GO_TMP)/ + cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_TARGET_CC) ./make.bash +endef + +define HOST_GO_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(HOST_GO_TMP)/bin/go $(HOST_GO_ROOT)/bin/go + $(INSTALL) -D -m 0755 $(HOST_GO_TMP)/bin/gofmt $(HOST_GO_ROOT)/bin/gofmt + + ln -sf ../lib/go/bin/go $(HOST_DIR)/usr/bin/ + ln -sf ../lib/go/bin/gofmt $(HOST_DIR)/usr/bin/ + + cp -a $(@D)/lib $(HOST_GO_ROOT)/ + + mkdir -p $(HOST_GO_ROOT)/pkg + cp -a $(@D)/pkg/include $(@D)/pkg/linux_* $(HOST_GO_ROOT)/pkg/ + cp -a $(HOST_GO_TMP)/tool $(HOST_GO_ROOT)/pkg/ + + # There is a known issue which requires the go sources to be installed + # https://golang.org/issue/2775 + cp -a $(@D)/src $(HOST_GO_ROOT)/ + + # Set all file timestamps to prevent the go compiler from rebuilding any + # built in packages when programs are built. + find $(HOST_GO_ROOT) -type f -exec touch -r $(HOST_GO_TMP)/bin/go {} \; +endef + +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/google-breakpad/Config.in b/bsp/buildroot/package/google-breakpad/Config.in index a95bf637..7b8eeb1a 100644 --- a/bsp/buildroot/package/google-breakpad/Config.in +++ b/bsp/buildroot/package/google-breakpad/Config.in @@ -29,6 +29,6 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD http://code.google.com/p/google-breakpad/ -comment "google-breakpad requires an (e)glibc toolchain w/ C++ enabled" +comment "google-breakpad requires a glibc toolchain w/ C++ enabled" depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/google-breakpad/google-breakpad.mk b/bsp/buildroot/package/google-breakpad/google-breakpad.mk index 1bbe4dab..7a88c765 100644 --- a/bsp/buildroot/package/google-breakpad/google-breakpad.mk +++ b/bsp/buildroot/package/google-breakpad/google-breakpad.mk @@ -13,15 +13,13 @@ GOOGLE_BREAKPAD_INSTALL_TARGET = NO GOOGLE_BREAKPAD_INSTALL_STAGING = YES GOOGLE_BREAKPAD_LICENSE = BSD-3c GOOGLE_BREAKPAD_LICENSE_FILES = LICENSE - -ifeq ($(BR2_PACKAGE_GOOGLE_BREAKPAD),y) GOOGLE_BREAKPAD_DEPENDENCIES = host-google-breakpad + define GOOGLE_BREAKPAD_EXTRACT_SYMBOLS $(EXTRA_ENV) package/google-breakpad/gen-syms.sh $(STAGING_DIR) \ $(TARGET_DIR) $(call qstrip,$(BR2_GOOGLE_BREAKPAD_INCLUDE_FILES)) endef -TARGET_FINALIZE_HOOKS += GOOGLE_BREAKPAD_EXTRACT_SYMBOLS -endif +GOOGLE_BREAKPAD_TARGET_FINALIZE_HOOKS += GOOGLE_BREAKPAD_EXTRACT_SYMBOLS $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.hash b/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.hash index 7bcfcb54..9a663364 100644 --- a/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.hash +++ b/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 87d7c8515207edecd3438a96bdf5129df91e0b29261d5f8c52f672957c11af65 2.0.0.tar.gz +sha256 769547061a51f81623bf5174767c08fc587fd6946339592fbd6cd0dd45f56b4c 2.2.3.tar.gz diff --git a/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.mk b/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.mk index 3228d135..d410a45e 100644 --- a/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.mk +++ b/bsp/buildroot/package/google-material-design-icons/google-material-design-icons.mk @@ -4,7 +4,7 @@ # ################################################################################ -GOOGLE_MATERIAL_DESIGN_ICONS_VERSION = 2.0.0 +GOOGLE_MATERIAL_DESIGN_ICONS_VERSION = 2.2.3 GOOGLE_MATERIAL_DESIGN_ICONS_SOURCE = \ $(GOOGLE_MATERIAL_DESIGN_ICONS_VERSION).tar.gz GOOGLE_MATERIAL_DESIGN_ICONS_SITE = \ @@ -14,7 +14,7 @@ GOOGLE_MATERIAL_DESIGN_ICONS_LICENSE_FILES = LICENSE GOOGLE_MATERIAL_DESIGN_ICONS_LIST = \ action alert av communication content device editor file \ - hardware image maps navigation notification social toggle + hardware image maps navigation notification places social toggle ifneq ($(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_TYPE_PNG)$(BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS_TYPE_SVG),) define GOOGLE_MATERIAL_DESIGN_ICONS_INSTALL_ICONS_IMAGES diff --git a/bsp/buildroot/package/googlefontdirectory/googlefontdirectory.hash b/bsp/buildroot/package/googlefontdirectory/googlefontdirectory.hash new file mode 100644 index 00000000..6b15b2b8 --- /dev/null +++ b/bsp/buildroot/package/googlefontdirectory/googlefontdirectory.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 8a7d04feef21fdfc09d90cd3e2c0c05dcb2fdd4e15f971e8ceaf4d90c1c123cd googlewebfonts.tgz diff --git a/bsp/buildroot/package/gpsd/Config.in b/bsp/buildroot/package/gpsd/Config.in index b4008ebd..876ab9b0 100644 --- a/bsp/buildroot/package/gpsd/Config.in +++ b/bsp/buildroot/package/gpsd/Config.in @@ -2,7 +2,7 @@ comment "gpsd needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS -config BR2_PACKAGE_GPSD +menuconfig BR2_PACKAGE_GPSD bool "gpsd" # Uses fork() depends on BR2_USE_MMU @@ -25,7 +25,7 @@ config BR2_PACKAGE_GPSD_DEVICES string "Where to look for GPSes" default "/dev/ttyS1" -menu "Features" +comment "Features" config BR2_PACKAGE_GPSD_CLIENT_DEBUG bool "client debugging support" @@ -50,36 +50,41 @@ config BR2_PACKAGE_GPSD_PPS config BR2_PACKAGE_GPSD_USER bool "GPSD privilege revocation user" + config BR2_PACKAGE_GPSD_USER_VALUE - string "" + string "user to run as" default "nobody" depends on BR2_PACKAGE_GPSD_USER config BR2_PACKAGE_GPSD_GROUP bool "GPSD privilege revocation group" + config BR2_PACKAGE_GPSD_GROUP_VALUE - string "" + string "group to run as" default "nobody" depends on BR2_PACKAGE_GPSD_GROUP config BR2_PACKAGE_GPSD_FIXED_PORT_SPEED bool "compile with fixed serial port speed" + config BR2_PACKAGE_GPSD_FIXED_PORT_SPEED_VALUE - string "" + int "serial port speed" default "9600" depends on BR2_PACKAGE_GPSD_FIXED_PORT_SPEED config BR2_PACKAGE_GPSD_MAX_CLIENT bool "compile with limited maximum clients" + config BR2_PACKAGE_GPSD_MAX_CLIENT_VALUE - string "compile with limited maximum clients" + int "maximum number of clients" default "10" depends on BR2_PACKAGE_GPSD_MAX_CLIENT config BR2_PACKAGE_GPSD_MAX_DEV bool "compile with maximum allowed devices" + config BR2_PACKAGE_GPSD_MAX_DEV_VALUE - string "compile with maximum allowed devices" + int "maximum allowed devices" default "2" depends on BR2_PACKAGE_GPSD_MAX_DEV @@ -94,9 +99,7 @@ config BR2_PACKAGE_GPSD_CONTROLSEND config BR2_PACKAGE_GPSD_SQUELCH bool "squelch gpsd_report and gpsd_hexdump to save cpu" -endmenu - -menu "Protocols" +comment "Protocols" config BR2_PACKAGE_GPSD_AIVDM bool "Aivdm" @@ -231,6 +234,4 @@ config BR2_PACKAGE_GPSD_UBX help uBlox UBX binary support -endmenu - endif diff --git a/bsp/buildroot/package/gptfdisk/Config.in.host b/bsp/buildroot/package/gptfdisk/Config.in.host index fb7c682d..1300d024 100644 --- a/bsp/buildroot/package/gptfdisk/Config.in.host +++ b/bsp/buildroot/package/gptfdisk/Config.in.host @@ -2,10 +2,10 @@ config BR2_PACKAGE_HOST_GPTFDISK bool "host gptfdisk" select BR2_PACKAGE_HOST_UTIL_LINUX help - GPT fdisk (consisting of the gdisk and sgdisk programs) is a - text-mode partitioning tool that works on Globally Unique - Identifier (GUID) Partition Table (GPT) disks, rather than - on the more common (through 2010) Master Boot Record (MBR) - partition tables. + GPT fdisk (consisting of the gdisk and sgdisk programs) is a + text-mode partitioning tool that works on Globally Unique + Identifier (GUID) Partition Table (GPT) disks, rather than + on the more common (through 2010) Master Boot Record (MBR) + partition tables. - http://www.rodsbooks.com/gdisk/ + http://www.rodsbooks.com/gdisk/ diff --git a/bsp/buildroot/package/gr-osmosdr/Config.in b/bsp/buildroot/package/gr-osmosdr/Config.in new file mode 100644 index 00000000..aa6ef0d4 --- /dev/null +++ b/bsp/buildroot/package/gr-osmosdr/Config.in @@ -0,0 +1,37 @@ +config BR2_PACKAGE_GR_OSMOSDR + bool "gr-osmosdr" + depends on BR2_PACKAGE_GNURADIO + select BR2_PACKAGE_GNURADIO_BLOCKS + help + GNU Radio block for interfacing with various radio hardware + +if BR2_PACKAGE_GR_OSMOSDR + +config BR2_PACKAGE_GR_OSMOSDR_PYTHON + bool "python support" + depends on BR2_PACKAGE_GNURADIO_PYTHON + help + Enable Python support + +config BR2_PACKAGE_GR_OSMOSDR_IQFILE + bool "IQ File Source support" + help + Enable IQ File Source support + +config BR2_PACKAGE_GR_OSMOSDR_RTLSDR + bool "Osmocom RTLSDR support" + select BR2_PACKAGE_LIBRTLSDR + help + Enable Osmocom RTLSDR support + +config BR2_PACKAGE_GR_OSMOSDR_RTLSDR_TCP + bool "RTLSDR TCP Client support" + help + Enable RTLSDR TCP client support + +config BR2_PACKAGE_GR_OSMOSDR_RFSPACE + bool "RFSPACE Receivers support" + help + Enable RFSPACE Receivers support + +endif diff --git a/bsp/buildroot/package/gr-osmosdr/gr-osmosdr.hash b/bsp/buildroot/package/gr-osmosdr/gr-osmosdr.hash new file mode 100644 index 00000000..337f3ef8 --- /dev/null +++ b/bsp/buildroot/package/gr-osmosdr/gr-osmosdr.hash @@ -0,0 +1,2 @@ +# Locally calculated: +sha256 274960cd32bc8a7216eeed8967bf078efd6123332808b405ec42c24a7e426b7c gr-osmosdr-164a09fc11cec2d8b15b38e8b512fa542d6cecc7.tar.gz diff --git a/bsp/buildroot/package/gr-osmosdr/gr-osmosdr.mk b/bsp/buildroot/package/gr-osmosdr/gr-osmosdr.mk new file mode 100644 index 00000000..d7c3d624 --- /dev/null +++ b/bsp/buildroot/package/gr-osmosdr/gr-osmosdr.mk @@ -0,0 +1,55 @@ +################################################################################ +# +# gr-osmosdr +# +################################################################################ + +GR_OSMOSDR_VERSION = 164a09fc11cec2d8b15b38e8b512fa542d6cecc7 +GR_OSMOSDR_SITE = $(call github,osmocom,gr-osmosdr,$(GR_OSMOSDR_VERSION)) +GR_OSMOSDR_LICENSE = GPLv3+ +GR_OSMOSDR_LICENSE_FILES = COPYING + +# gr-osmosdr prevents doing an in-source-tree build +GR_OSMOSDR_SUPPORTS_IN_SOURCE_BUILD = NO + +GR_OSMOSDR_DEPENDENCIES = gnuradio + +GR_OSMOSDR_CONF_OPTS = -DENABLE_DEFAULT=OFF + +# For third-party blocks, the gr-osmosdr libraries are mandatory at +# compile time. +GR_OSMOSDR_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_GR_OSMOSDR_PYTHON),y) +GR_OSMOSDR_CONF_OPTS += -DENABLE_PYTHON=ON +GR_OSMOSDR_DEPENDENCIES += python +else +GR_OSMOSDR_CONF_OPTS += -DENABLE_PYTHON=OFF +endif + +ifeq ($(BR2_PACKAGE_GR_OSMOSDR_IQFILE),y) +GR_OSMOSDR_CONF_OPTS += -DENABLE_FILE=ON +else +GR_OSMOSDR_CONF_OPTS += -DENABLE_FILE=OFF +endif + +ifeq ($(BR2_PACKAGE_GR_OSMOSDR_RTLSDR),y) +GR_OSMOSDR_CONF_OPTS += -DENABLE_RTL=ON +GR_OSMOSDR_DEPENDENCIES += librtlsdr +else +GR_OSMOSDR_CONF_OPTS += -DENABLE_RTL=OFF +endif + +ifeq ($(BR2_PACKAGE_GR_OSMOSDR_RTLSDR_TCP),y) +GR_OSMOSDR_CONF_OPTS += -DENABLE_RTL_TCP=ON +else +GR_OSMOSDR_CONF_OPTS += -DENABLE_RTL_TCP=OFF +endif + +ifeq ($(BR2_PACKAGE_GR_OSMOSDR_RFSPACE),y) +GR_OSMOSDR_CONF_OPTS += -DENABLE_RFSPACE=ON +else +GR_OSMOSDR_CONF_OPTS += -DENABLE_RFSPACE=OFF +endif + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/granite/Config.in b/bsp/buildroot/package/granite/Config.in new file mode 100644 index 00000000..fef5e27a --- /dev/null +++ b/bsp/buildroot/package/granite/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_GRANITE + bool "granite" + depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_LIBGTK3 + select BR2_PACKAGE_LIBGEE + select BR2_PACKAGE_LIBGLIB2 + help + An extension to GTK+ that provides several useful widgets and + classes to ease application development. + + https://launchpad.net/granite + +comment "granite needs libgtk3 and a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_PACKAGE_LIBGTK3 || !BR2_USE_WCHAR \ + || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/granite/granite.hash b/bsp/buildroot/package/granite/granite.hash new file mode 100644 index 00000000..5ce95e62 --- /dev/null +++ b/bsp/buildroot/package/granite/granite.hash @@ -0,0 +1,4 @@ +# From https://launchpad.net/granite/0.3/0.3.1/+download/granite-0.3.1.tar.xz/+md5 +md5 4297d4fcec8cfe2e08b460a45c779bbe granite-0.3.1.tar.xz +# Calculated based on the hash above +sha256 8ec1d61f9aba75f1b3a745e721288b0dfb34cb11d1307be80cef7b0571c2dec6 granite-0.3.1.tar.xz diff --git a/bsp/buildroot/package/granite/granite.mk b/bsp/buildroot/package/granite/granite.mk new file mode 100644 index 00000000..dd5a09e5 --- /dev/null +++ b/bsp/buildroot/package/granite/granite.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# granite +# +################################################################################ + +GRANITE_VERSION_MAJOR = 0.3 +GRANITE_VERSION = $(GRANITE_VERSION_MAJOR).1 +GRANITE_SITE = https://launchpad.net/granite/$(GRANITE_VERSION_MAJOR)/$(GRANITE_VERSION)/+download +GRANITE_SOURCE = granite-$(GRANITE_VERSION).tar.xz +GRANITE_DEPENDENCIES = host-pkgconf host-vala libgee libglib2 libgtk3 +GRANITE_INSTALL_STAGING = YES +GRANITE_LICENSE = LGPLv3+ +GRANITE_LICENSE_FILES = COPYING + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/grantlee/Config.in b/bsp/buildroot/package/grantlee/Config.in index 01ddacdd..779306bc 100644 --- a/bsp/buildroot/package/grantlee/Config.in +++ b/bsp/buildroot/package/grantlee/Config.in @@ -1,19 +1,9 @@ config BR2_PACKAGE_GRANTLEE bool "grantlee" - depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # Qt Script - depends on (BR2_PACKAGE_QT_ARCH_SUPPORTS_SCRIPT && BR2_PACKAGE_QT) || \ - (BR2_PACKAGE_QT5_JSCORE_AVAILABLE && BR2_PACKAGE_QT5) - select BR2_PACKAGE_QT_STL if BR2_PACKAGE_QT - select BR2_PACKAGE_QT_SCRIPT if BR2_PACKAGE_QT - select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_QT - select BR2_PACKAGE_QT5SCRIPT if BR2_PACKAGE_QT5 - select BR2_PACKAGE_QT5BASE_GUI if BR2_PACKAGE_QT5 + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE && BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5SCRIPT + select BR2_PACKAGE_QT5BASE_GUI help Qt implementation of the Django template framework http://www.grantlee.org - -comment "grantlee needs a toolchain with NPTL" - depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL - depends on (BR2_PACKAGE_QT_ARCH_SUPPORTS_SCRIPT && BR2_PACKAGE_QT) || \ - (BR2_PACKAGE_QT5_JSCORE_AVAILABLE && BR2_PACKAGE_QT5) diff --git a/bsp/buildroot/package/grantlee/grantlee.hash b/bsp/buildroot/package/grantlee/grantlee.hash index 7f02bb32..cdff7780 100644 --- a/bsp/buildroot/package/grantlee/grantlee.hash +++ b/bsp/buildroot/package/grantlee/grantlee.hash @@ -1,3 +1,2 @@ # Locally calculated after checking pgp signature -sha256 191809bf4c9b7ef877af0fd29345061c2372edfb4506aa7d5df5c71a570fa0ac grantlee-0.5.1.tar.gz -sha256 eaf22ba92e53b8eb5dd8bca045fe81b734d3445445ed9e0c1af2a0a7c375b161 grantlee-5.0.0.tar.gz +sha256 ea2e402466c74bb533eee2c7252209ec61cd93a5d236fecd625b4a0eb13a1478 grantlee-5.1.0.tar.gz diff --git a/bsp/buildroot/package/grantlee/grantlee.mk b/bsp/buildroot/package/grantlee/grantlee.mk index a3001063..f921d7b9 100644 --- a/bsp/buildroot/package/grantlee/grantlee.mk +++ b/bsp/buildroot/package/grantlee/grantlee.mk @@ -3,21 +3,11 @@ # grantlee # ################################################################################ -# qt4 support dropped after 0.5.1, so we use the older version for qt4 -ifeq ($(BR2_PACKAGE_QT),y) -GRANTLEE_VERSION = 0.5.1 -else ifeq ($(BR2_PACKAGE_QT5),y) -GRANTLEE_VERSION = 5.0.0 -endif +GRANTLEE_VERSION = 5.1.0 GRANTLEE_SITE = http://downloads.grantlee.org GRANTLEE_INSTALL_STAGING = YES GRANTLEE_LICENSE = LGPLv2.1+ GRANTLEE_LICENSE_FILES = COPYING.LIB - -ifeq ($(BR2_PACKAGE_QT),y) -GRANTLEE_DEPENDENCIES = qt -else ifeq ($(BR2_PACKAGE_QT5),y) -GRANTLEE_DEPENDENCIES += qt5base qt5script -endif +GRANTLEE_DEPENDENCIES = qt5base qt5script $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/graphite2/graphite2.hash b/bsp/buildroot/package/graphite2/graphite2.hash index 07102cfc..d22b67c8 100644 --- a/bsp/buildroot/package/graphite2/graphite2.hash +++ b/bsp/buildroot/package/graphite2/graphite2.hash @@ -1,3 +1,3 @@ # From http://sourceforge.net/projects/silgraphite/files/graphite2 -md5 5b8d22a8bbf031838e31432868c0109c graphite2-1.3.5.tgz -sha1 044f65d5b4ade3169f5fcd75a25f047c81f5d33e graphite2-1.3.5.tgz +md5 236d2cb1f831fe33083112afbb555f0e graphite2-1.3.8.tgz +sha1 0c802628dacf3bfa2c1654d7d72b76e20e1adc97 graphite2-1.3.8.tgz diff --git a/bsp/buildroot/package/graphite2/graphite2.mk b/bsp/buildroot/package/graphite2/graphite2.mk index 82c4a3b5..d066a1c6 100644 --- a/bsp/buildroot/package/graphite2/graphite2.mk +++ b/bsp/buildroot/package/graphite2/graphite2.mk @@ -4,7 +4,7 @@ # ################################################################################ -GRAPHITE2_VERSION = 1.3.5 +GRAPHITE2_VERSION = 1.3.8 GRAPHITE2_SOURCE = graphite2-$(GRAPHITE2_VERSION).tgz GRAPHITE2_SITE = http://downloads.sourceforge.net/project/silgraphite/graphite2 GRAPHITE2_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/grep/Config.in b/bsp/buildroot/package/grep/Config.in index 2cd34061..64276506 100644 --- a/bsp/buildroot/package/grep/Config.in +++ b/bsp/buildroot/package/grep/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_GREP bool "grep" depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help The GNU regular expression matcher. @@ -9,3 +10,4 @@ config BR2_PACKAGE_GREP comment "grep needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/grep/grep.hash b/bsp/buildroot/package/grep/grep.hash index 5c49da2a..409940aa 100644 --- a/bsp/buildroot/package/grep/grep.hash +++ b/bsp/buildroot/package/grep/grep.hash @@ -1,2 +1,2 @@ # Locally calculated after checking signature -sha256 54fc478ee1ce17780109820ef30730c9e18715a949f7d5c6afc673adb2a56ecf grep-2.23.tar.xz +sha256 e21e83bac50450e0d0d61a42c154ee0dceaacdbf4f604ef6e79071cb8e596830 grep-2.25.tar.xz diff --git a/bsp/buildroot/package/grep/grep.mk b/bsp/buildroot/package/grep/grep.mk index 65ef469d..f87e8382 100644 --- a/bsp/buildroot/package/grep/grep.mk +++ b/bsp/buildroot/package/grep/grep.mk @@ -4,7 +4,7 @@ # ################################################################################ -GREP_VERSION = 2.23 +GREP_VERSION = 2.25 GREP_SITE = $(BR2_GNU_MIRROR)/grep GREP_SOURCE = grep-$(GREP_VERSION).tar.xz GREP_LICENSE = GPLv3+ diff --git a/bsp/buildroot/package/gsettings-desktop-schemas/Config.in b/bsp/buildroot/package/gsettings-desktop-schemas/Config.in new file mode 100644 index 00000000..0dfffc38 --- /dev/null +++ b/bsp/buildroot/package/gsettings-desktop-schemas/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_GSETTINGS_DESKTOP_SCHEMAS + bool "gsettings-desktop-schemas" + depends on BR2_USE_WCHAR # glib2 + depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 + depends on BR2_USE_MMU # glib2 + select BR2_PACKAGE_LIBGLIB2 + help + gsettings-desktop-schemas contains a collection of GSettings + schemas for settings shared by various components of a + desktop. + + https://github.com/GNOME/gsettings-desktop-schemas + +comment "gsettings-desktop-schemas needs a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.hash b/bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.hash new file mode 100644 index 00000000..7fed5530 --- /dev/null +++ b/bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.hash @@ -0,0 +1,2 @@ +# From http://ftp.acc.umu.se/pub/gnome/sources/gsettings-desktop-schemas/3.20/gsettings-desktop-schemas-3.20.0.sha256sum +sha256 55a41b533c0ab955e0a36a84d73829451c88b027d8d719955d8f695c35c6d9c1 gsettings-desktop-schemas-3.20.0.tar.xz diff --git a/bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.mk b/bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.mk new file mode 100644 index 00000000..04ad2e03 --- /dev/null +++ b/bsp/buildroot/package/gsettings-desktop-schemas/gsettings-desktop-schemas.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# gsettings-desktop-schemas +# +################################################################################ + +GSETTINGS_DESKTOP_SCHEMAS_VERSION_MAJOR = 3.20 +GSETTINGS_DESKTOP_SCHEMAS_VERSION = $(GSETTINGS_DESKTOP_SCHEMAS_VERSION_MAJOR).0 +GSETTINGS_DESKTOP_SCHEMAS_SOURCE = gsettings-desktop-schemas-$(GSETTINGS_DESKTOP_SCHEMAS_VERSION).tar.xz +GSETTINGS_DESKTOP_SCHEMAS_SITE = http://ftp.gnome.org/pub/gnome/sources/gsettings-desktop-schemas/$(GSETTINGS_DESKTOP_SCHEMAS_VERSION_MAJOR) +GSETTINGS_DESKTOP_SCHEMAS_INSTALL_STAGING = YES +GSETTINGS_DESKTOP_SCHEMAS_DEPENDENCIES = host-intltool host-pkgconf libglib2 +GSETTINGS_DESKTOP_SCHEMAS_LICENSE = LGPLv2.1+ +GSETTINGS_DESKTOP_SCHEMAS_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gssdp/gssdp.hash b/bsp/buildroot/package/gssdp/gssdp.hash index 09b8532d..485c03f9 100644 --- a/bsp/buildroot/package/gssdp/gssdp.hash +++ b/bsp/buildroot/package/gssdp/gssdp.hash @@ -1,2 +1,2 @@ -# Hash from: http://ftp.gnome.org/pub/gnome/sources/gssdp/0.13/gssdp-0.13.2.sha256sum: -sha256 8f663f8a72b66254f5c20a3610ff853ac8d00bf6f253828e37e51579caa34dce gssdp-0.13.2.tar.xz +# Hash from: http://ftp.gnome.org/pub/gnome/sources/gssdp/0.14/gssdp-0.14.16.sha256sum: +sha256 54520bfb230b9c8c938eba88d87df44e04749682c95fb8aa381d13441345c5b2 gssdp-0.14.16.tar.xz diff --git a/bsp/buildroot/package/gssdp/gssdp.mk b/bsp/buildroot/package/gssdp/gssdp.mk index d9459a1e..59f633f4 100644 --- a/bsp/buildroot/package/gssdp/gssdp.mk +++ b/bsp/buildroot/package/gssdp/gssdp.mk @@ -4,8 +4,8 @@ # ################################################################################ -GSSDP_VERSION_MAJOR = 0.13 -GSSDP_VERSION = $(GSSDP_VERSION_MAJOR).2 +GSSDP_VERSION_MAJOR = 0.14 +GSSDP_VERSION = $(GSSDP_VERSION_MAJOR).16 GSSDP_SOURCE = gssdp-$(GSSDP_VERSION).tar.xz GSSDP_SITE = http://ftp.gnome.org/pub/gnome/sources/gssdp/$(GSSDP_VERSION_MAJOR) GSSDP_LICENSE = LGPLv2+ diff --git a/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.hash b/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.hash new file mode 100644 index 00000000..3bccfc1c --- /dev/null +++ b/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 45437a038979916de74e78a2cc7a0b01ba3982d0848e1e483a054c9cf0ce5883 gst-dsp-v0.10.2.tar.gz diff --git a/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.mk b/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.mk index d9e202d2..dedffb98 100644 --- a/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.mk +++ b/bsp/buildroot/package/gstreamer/gst-dsp/gst-dsp.mk @@ -4,8 +4,8 @@ # ################################################################################ -GST_DSP_VERSION = 0.10.2 -GST_DSP_SITE = http://gst-dsp.googlecode.com/files +GST_DSP_VERSION = v0.10.2 +GST_DSP_SITE = $(call github,felipec,gst-dsp,$(GST_DSP_VERSION)) define GST_DSP_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) -e diff --git a/bsp/buildroot/package/gstreamer/gst-ffmpeg/Config.in b/bsp/buildroot/package/gstreamer/gst-ffmpeg/Config.in index 004ec1cb..f3d4b3e5 100644 --- a/bsp/buildroot/package/gstreamer/gst-ffmpeg/Config.in +++ b/bsp/buildroot/package/gstreamer/gst-ffmpeg/Config.in @@ -3,6 +3,8 @@ config BR2_PACKAGE_GST_FFMPEG # Unsupported for MIPS R6. It bundles a version of libav which # doesn't have support for MIPS R6. depends on !BR2_mips_32r6 && !BR2_mips_64r6 + # triggers https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65151 on sh + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_sh select BR2_PACKAGE_GST_PLUGINS_BASE help GStreamer plugin containing one plugin with a set of elements using @@ -23,3 +25,6 @@ config BR2_PACKAGE_GST_FFMPEG_GPL be under GPL. endif + +comment "gst-ffmpeg needs a toolchain w/ gcc >= 5" + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5 && BR2_sh diff --git a/bsp/buildroot/package/gstreamer/gst-fsl-plugins/Config.in b/bsp/buildroot/package/gstreamer/gst-fsl-plugins/Config.in index a4a26068..8921aa33 100644 --- a/bsp/buildroot/package/gstreamer/gst-fsl-plugins/Config.in +++ b/bsp/buildroot/package/gstreamer/gst-fsl-plugins/Config.in @@ -1,7 +1,7 @@ comment "gst-fsl-plugins needs an imx-specific Linux kernel to be built" depends on BR2_arm && !BR2_LINUX_KERNEL -comment "gst-fsl-plugins needs an (e)glibc toolchain" +comment "gst-fsl-plugins needs a glibc toolchain" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC @@ -9,13 +9,12 @@ config BR2_PACKAGE_GST_FSL_PLUGINS bool "gst-fsl-plugins" depends on BR2_LINUX_KERNEL depends on BR2_arm # Only relevant for i.MX - depends on BR2_TOOLCHAIN_USES_GLIBC # libfslcodec + depends on BR2_TOOLCHAIN_USES_GLIBC # imx-codec select BR2_PACKAGE_GST_PLUGINS_BASE - select BR2_PACKAGE_LIBFSLVPUWRAP + select BR2_PACKAGE_IMX_VPUWRAP if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU select BR2_PACKAGE_IMX_LIB - select BR2_PACKAGE_IMX_VPU - select BR2_PACKAGE_LIBFSLPARSER - select BR2_PACKAGE_LIBFSLCODEC + select BR2_PACKAGE_IMX_PARSER + select BR2_PACKAGE_IMX_CODEC select BR2_PACKAGE_FREESCALE_IMX help GStreamer plugins for hardware-accelerated audio and video diff --git a/bsp/buildroot/package/gstreamer/gst-fsl-plugins/gst-fsl-plugins.mk b/bsp/buildroot/package/gstreamer/gst-fsl-plugins/gst-fsl-plugins.mk index 2ac558a2..65993a27 100644 --- a/bsp/buildroot/package/gstreamer/gst-fsl-plugins/gst-fsl-plugins.mk +++ b/bsp/buildroot/package/gstreamer/gst-fsl-plugins/gst-fsl-plugins.mk @@ -16,7 +16,11 @@ GST_FSL_PLUGINS_INSTALL_STAGING = YES GST_FSL_PLUGINS_AUTORECONF = YES GST_FSL_PLUGINS_DEPENDENCIES += host-pkgconf gstreamer gst-plugins-base \ - libfslvpuwrap imx-lib imx-vpu libfslparser libfslcodec + imx-lib imx-parser imx-codec + +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_HAS_VPU),y) +GST_FSL_PLUGINS_DEPENDENCIES += imx-vpuwrap +endif GST_FSL_PLUGINS_CONF_ENV = \ PLATFORM=$(BR2_PACKAGE_GST_FSL_PLUGINS_PLATFORM) \ diff --git a/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.hash b/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.hash new file mode 100644 index 00000000..7d1c722d --- /dev/null +++ b/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 56c719584d7a7ede5fc2053e8d1060f623b226a60672de0faba46fad646658a4 gst-omapfb-v1.0.tar.gz diff --git a/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.mk b/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.mk index bd545f95..c0bf6905 100644 --- a/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.mk +++ b/bsp/buildroot/package/gstreamer/gst-omapfb/gst-omapfb.mk @@ -4,8 +4,8 @@ # ################################################################################ -GST_OMAPFB_VERSION = 1.0 -GST_OMAPFB_SITE = http://gst-dsp.googlecode.com/files +GST_OMAPFB_VERSION = v1.0 +GST_OMAPFB_SITE = $(call github,felipec,gst-omapfb,$(GST_OMAPFB_VERSION)) define GST_OMAPFB_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) -e diff --git a/bsp/buildroot/package/gstreamer/gst-plugin-x170/Config.in b/bsp/buildroot/package/gstreamer/gst-plugin-x170/Config.in index 09b44be0..30036705 100644 --- a/bsp/buildroot/package/gstreamer/gst-plugin-x170/Config.in +++ b/bsp/buildroot/package/gstreamer/gst-plugin-x170/Config.in @@ -11,6 +11,6 @@ config BR2_PACKAGE_GST_PLUGIN_X170 http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer -comment "gst-plugin-x170 needs an (e)glibc toolchain and a Linux kernel to be built" +comment "gst-plugin-x170 needs a glibc toolchain and a Linux kernel to be built" depends on BR2_arm926t depends on !BR2_LINUX_KERNEL || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/gstreamer/gst-plugin-x170/gst-plugin-x170.hash b/bsp/buildroot/package/gstreamer/gst-plugin-x170/gst-plugin-x170.hash new file mode 100644 index 00000000..527c4616 --- /dev/null +++ b/bsp/buildroot/package/gstreamer/gst-plugin-x170/gst-plugin-x170.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 734ded3618246d946b53c2c8c7ab5a0961287485aaef5fb9bf874f93e3caa342 gst-plugin-x170-1.0.tar.gz diff --git a/bsp/buildroot/package/gstreamer/gstreamer/gstreamer.hash b/bsp/buildroot/package/gstreamer/gstreamer/gstreamer.hash index e652eaea..4fcf34ac 100644 --- a/bsp/buildroot/package/gstreamer/gstreamer/gstreamer.hash +++ b/bsp/buildroot/package/gstreamer/gstreamer/gstreamer.hash @@ -1,2 +1,4 @@ # From http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.36.tar.xz.md5 md5 15389c73e091b1dda915279c388b9cb2 gstreamer-0.10.36.tar.xz +# locally computed +sha256 9151aa108c177054387885763fa0e433e76780f7c5655c70a5390f2a6c6871da gstreamer-0.10.36.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst-omx/gst-omx.hash b/bsp/buildroot/package/gstreamer1/gst-omx/gst-omx.hash new file mode 100644 index 00000000..40d51971 --- /dev/null +++ b/bsp/buildroot/package/gstreamer1/gst-omx/gst-omx.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 0b4874961e6488ad9e5808114bd486ea981c540907262caab1419355fd82d745 gst-omx-1.2.0.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-imx/0001-v4l2src-Add-V4L2_PIX_FMT_XRGB555X-check.patch b/bsp/buildroot/package/gstreamer1/gst1-imx/0001-v4l2src-Add-V4L2_PIX_FMT_XRGB555X-check.patch new file mode 100644 index 00000000..67ac055a --- /dev/null +++ b/bsp/buildroot/package/gstreamer1/gst1-imx/0001-v4l2src-Add-V4L2_PIX_FMT_XRGB555X-check.patch @@ -0,0 +1,33 @@ +From 1ca05ebb7cb63607d14983948105dd1483ea6b65 Mon Sep 17 00:00:00 2001 +From: Gary Bisson +Date: Tue, 9 Aug 2016 10:26:15 +0200 +Subject: [PATCH] v4l2src: Add V4L2_PIX_FMT_XRGB555X check + +Since this format was added in kernel 3.18, any prior version will +fail to compile. + +Issue reported by Buildroot autobuilder with 3.10 kernel headers: +http://autobuild.buildroot.net/results/b46/b460a770c8f4e992d29dde8fe37fc23a949937f2/ + +Signed-off-by: Gary Bisson +--- + src/v4l2src/v4l2src.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/v4l2src/v4l2src.c b/src/v4l2src/v4l2src.c +index c77ae49..12b392a 100644 +--- a/src/v4l2src/v4l2src.c ++++ b/src/v4l2src/v4l2src.c +@@ -447,7 +447,9 @@ static GstCaps *gst_imx_v4l2src_caps_for_current_setup(GstImxV4l2VideoSrc *v4l2s + case V4L2_PIX_FMT_RGB555: + gst_fmt = GST_VIDEO_FORMAT_RGB15; + break; ++#ifdef V4L2_PIX_FMT_XRGB555X + case V4L2_PIX_FMT_XRGB555X: ++#endif + case V4L2_PIX_FMT_RGB555X: + gst_fmt = GST_VIDEO_FORMAT_BGR15; + break; +-- +2.8.1 + diff --git a/bsp/buildroot/package/gstreamer1/gst1-imx/Config.in b/bsp/buildroot/package/gstreamer1/gst1-imx/Config.in index f7284f4b..efd50868 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-imx/Config.in +++ b/bsp/buildroot/package/gstreamer1/gst1-imx/Config.in @@ -1,27 +1,24 @@ -comment "gst1-imx needs an imx-specific Linux kernel to be built" - depends on BR2_arm && !BR2_LINUX_KERNEL - -# Required by imx-gpu-viv -comment "gst1-imx needs an (e)glibc toolchain" - depends on BR2_arm - depends on !BR2_TOOLCHAIN_USES_GLIBC - config BR2_PACKAGE_GST1_IMX bool "gst1-imx" - depends on BR2_LINUX_KERNEL depends on BR2_arm # Only relevant for i.MX - depends on BR2_TOOLCHAIN_USES_GLIBC # imx-gpu-viv - depends on BR2_PACKAGE_IMX_GPU_VIV - depends on BR2_PACKAGE_LIBFSLVPUWRAP + depends on !BR2_STATIC_LIBS select BR2_PACKAGE_GST1_PLUGINS_BASE help This is a set of GStreamer 1.0 plugins for plugins for Freescale's - i.MX6 platforms, with emphasis on video en/decoding using the VPU - engine. + i.MX platforms, which make use of the i.MX multimedia capabilities. - This software supports only the i.MX6 SoC family and requires a - kernel that includes the i.MX6 specific headers to be built. + This software supports only the i.MX6 SoC family. - The software as a whole is currently in beta stage. + The IPU and PXP plugins are built when an imx-specific kernel is + enabled. + The V4L2 plugin is built when BR2_PACKAGE_GST1_PLUGINS_BAD is enabled. + The VPU plugin is built when BR2_PACKAGE_LIBIMXVPUAPI is enabled. + The EGL plugin is built when BR2_PACKAGE_IMX_GPU_VIV is enabled. + The G2D plugin is built when BR2_PACKAGE_IMX_GPU_VIV_G2D is enabled. + The MP3 plugin is built when BR2_PACKAGE_IMX_CODEC is enabled. https://github.com/Freescale/gstreamer-imx + +comment "gst1-imx needs a toolchain w/ dynamic library" + depends on BR2_arm + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.hash b/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.hash new file mode 100644 index 00000000..d345debc --- /dev/null +++ b/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 a75f8bc3219fa3c62637f443cef0196c9eafb90aaa5af094847d007124895822 gst1-imx-0.12.2.tar.gz diff --git a/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.mk b/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.mk index 8ede8adf..3c6b1b60 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-imx/gst1-imx.mk @@ -4,7 +4,7 @@ # ################################################################################ -GST1_IMX_VERSION = 0.11.1 +GST1_IMX_VERSION = 0.12.2 GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION)) GST1_IMX_LICENSE = LGPLv2+ @@ -12,14 +12,34 @@ GST1_IMX_LICENSE_FILES = LICENSE GST1_IMX_INSTALL_STAGING = YES -GST1_IMX_DEPENDENCIES += host-pkgconf host-python \ - imx-gpu-viv gstreamer1 gst1-plugins-base libfslvpuwrap +GST1_IMX_DEPENDENCIES += \ + host-pkgconf \ + host-python \ + gstreamer1 \ + gst1-plugins-base -# needs access to imx-specific kernel headers +GST1_IMX_CONF_OPTS = --prefix="/usr" + +ifeq ($(BR2_LINUX_KERNEL),y) +# IPU and PXP need access to imx-specific kernel headers GST1_IMX_DEPENDENCIES += linux -GST1_IMX_CONF_OPTS += --prefix="/usr" \ - --kernel-headers="$(LINUX_DIR)/include" +GST1_IMX_CONF_OPTS += --kernel-headers="$(LINUX_DIR)/include" +endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD),y) +GST1_IMX_DEPENDENCIES += gst1-plugins-bad +endif + +ifeq ($(BR2_PACKAGE_IMX_CODEC),y) +GST1_IMX_DEPENDENCIES += imx-codec +endif + +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI),y) +GST1_IMX_DEPENDENCIES += libimxvpuapi +endif + +ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y) +GST1_IMX_DEPENDENCIES += imx-gpu-viv ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) GST1_IMX_DEPENDENCIES += xlib_libX11 GST1_IMX_CONF_OPTS += --egl-platform=x11 @@ -31,6 +51,7 @@ else GST1_IMX_CONF_OPTS += --egl-platform=fb endif endif +endif define GST1_IMX_CONFIGURE_CMDS cd $(@D); \ diff --git a/bsp/buildroot/package/gstreamer1/gst1-libav/Config.in b/bsp/buildroot/package/gstreamer1/gst1-libav/Config.in index 4f9c2b8e..23d78b6a 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-libav/Config.in +++ b/bsp/buildroot/package/gstreamer1/gst1-libav/Config.in @@ -1,5 +1,8 @@ config BR2_PACKAGE_GST1_LIBAV bool "gst1-libav" + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + select BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_GST1_PLUGINS_BASE help GStreamer plugin (formerly gst-ffmpeg). @@ -7,4 +10,7 @@ config BR2_PACKAGE_GST1_LIBAV This package contains GStreamer plugins based on the libav project. + The codecs, muxers, bitstreams and filters to build can be + selected in the ffmpeg package. + http://gstreamer.freedesktop.org/ diff --git a/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.hash b/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.hash index d234b32b..227b92aa 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.hash +++ b/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.6.3.tar.xz.sha256sum -sha256 857b9c060a0337de38c6d26238c47352433c02eabf26c2f860c854dbc35bd4ab gst-libav-1.6.3.tar.xz +# From http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.8.2.tar.xz.sha256sum +sha256 b5f3c7a27b39b5f5c2f0bfd546b0c655020faf6b38d27b64b346c43e5ebf687a gst-libav-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.mk b/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.mk index 3a987a79..bb78d989 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-libav/gst1-libav.mk @@ -4,77 +4,15 @@ # ################################################################################ -GST1_LIBAV_VERSION = 1.6.3 +GST1_LIBAV_VERSION = 1.8.2 GST1_LIBAV_SOURCE = gst-libav-$(GST1_LIBAV_VERSION).tar.xz GST1_LIBAV_SITE = http://gstreamer.freedesktop.org/src/gst-libav - -GST1_LIBAV_DEPENDENCIES = host-pkgconf gstreamer1 gst1-plugins-base - -GST1_LIBAV_CONF_EXTRA_OPTS = --cross-prefix=$(TARGET_CROSS) --target-os=linux - -ifeq ($(BR2_PACKAGE_ZLIB),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-zlib -GST1_LIBAV_DEPENDENCIES += zlib -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-zlib -endif - -ifeq ($(BR2_PACKAGE_BZIP2),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-bzlib -GST1_LIBAV_DEPENDENCIES += bzip2 -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-bzlib -endif - -ifeq ($(BR2_X86_CPU_HAS_MMX),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-yasm -GST1_LIBAV_DEPENDENCIES += host-yasm -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-yasm -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-mmx -endif - -ifeq ($(BR2_X86_CPU_HAS_SSE),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-sse -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-sse -endif - -ifeq ($(BR2_X86_CPU_HAS_SSSE3),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-ssse3 -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-ssse3 -endif - -# Explicitly disable everything that doesn't match for ARM -# FFMPEG "autodetects" by compiling an extended instruction via AS -# This works on compilers that aren't built for generic by default -ifeq ($(BR2_ARM_CPU_ARMV4),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv5te -endif -ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-armv6 -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2 -endif -ifeq ($(BR2_ARM_CPU_HAS_NEON),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-neon -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-neon -endif -ifeq ($(BR2_ARM_CPU_HAS_VFPV2),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-vfp -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-vfp -endif - -ifeq ($(BR2_POWERPC_CPU_HASH_ALTIVEC),y) -GST1_LIBAV_CONF_EXTRA_OPTS += --enable-altivec -else -GST1_LIBAV_CONF_EXTRA_OPTS += --disable-altivec -endif - -GST1_LIBAV_CONF_OPTS = \ - --with-libav-extra-configure="$(GST1_LIBAV_CONF_EXTRA_OPTS)" +GST1_LIBAV_CONF_OPTS = --with-system-libav +GST1_LIBAV_DEPENDENCIES = \ + host-pkgconf ffmpeg gstreamer1 gst1-plugins-base \ + $(if $(BR2_PACKAGE_BZIP2),bzip2) \ + $(if $(BR2_PACKAGE_XZ),xz) +GST1_LIBAV_LICENSE = GPLv2+ +GST1_LIBAV_LICENSE_FILES = COPYING $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/0001-use-gettext-0.18.patch b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/0001-use-gettext-0.18.patch deleted file mode 100644 index ebf4567b..00000000 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/0001-use-gettext-0.18.patch +++ /dev/null @@ -1,17 +0,0 @@ -Use newer version of gettext to match current buildroot gettext. - -Signed-off-by: Spenser Gilliland ----- -Index: gst1-plugins-bad-1.1.1/po/Makefile.in.in -=================================================================== ---- gst1-plugins-bad-1.1.1.orig/po/Makefile.in.in -+++ gst1-plugins-bad-1.1.1/po/Makefile.in.in -@@ -9,7 +9,7 @@ - # General Public License and is *not* in the public domain. - # - # Origin: gettext-0.17 --GETTEXT_MACRO_VERSION = 0.17 -+GETTEXT_MACRO_VERSION = 0.18 - - PACKAGE = @PACKAGE@ - VERSION = @VERSION@ diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/Config.in b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/Config.in index 6e7d21d1..2f288cab 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/Config.in +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/Config.in @@ -312,11 +312,6 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBRFB help Connects to a VNC server and decodes RFB stream -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER - bool "liveadder" - help - Adds multiple live discontinuous streams - config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MIDI bool "midi" help @@ -350,6 +345,9 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MXF help MXF plugin library +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NETSIM + bool "netsim" + config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX bool "nuvdemux" @@ -379,8 +377,11 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REMOVESILENCE help Removes silence from an audio stream -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP - bool "rtp" +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP + bool "rtmp" + select BR2_PACKAGE_RTMPDUMP + help + RTMP plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI bool "sdi" @@ -426,6 +427,11 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFILTERS help Video filters in gst-plugins-bad +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFRAME_AUDIOLEVEL + bool "videoframe_audiolevel" + help + videoframe_audiolevel + config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE bool "videomeasure" @@ -452,14 +458,6 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF comment "plugins with external dependencies" -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SHM - bool "shm" - help - shared memory sink source - -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD - bool "vcd" - config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK bool "apexsink" select BR2_PACKAGE_OPENSSL @@ -468,10 +466,6 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_ASSRENDER bool "assrender" select BR2_PACKAGE_LIBASS -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC - bool "voaacenc" - select BR2_PACKAGE_VO_AACENC - config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BZ2 bool "bz2" select BR2_PACKAGE_BZIP2 @@ -504,18 +498,16 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DIRECTFB depends on BR2_PACKAGE_DIRECTFB default y -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WAYLAND - bool "wayland" - depends on BR2_PACKAGE_WAYLAND - default y +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB + bool "dvb" + select BR2_PACKAGE_DTV_SCAN_TABLES + # FEC_2_5 / QAM_4_NR definitions + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 help - Wayland Video Sink + DVB elements -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP - bool "webp" - select BR2_PACKAGE_WEBP - help - Webp image format plugin +comment "dvb needs a toolchain w/ headers >= 3.7" + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FAAD bool "faad" @@ -528,6 +520,20 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV help Linux framebuffer video sink +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL + bool "gl" + default y + depends on BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL + +comment "gl needs the gst1-plugins-bad opengl library" + depends on !BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS + bool "hls" + select BR2_PACKAGE_NETTLE if !(BR2_PACKAGE_LIBGCRYPT || BR2_PACKAGE_OPENSSL) + help + Fragmented streaming plugins + config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS bool "libmms" depends on BR2_USE_WCHAR # libmms -> libglib2 @@ -545,13 +551,6 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPEG2ENC help High-quality MPEG-1/2 video encoder -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 - bool "mpg123" - select BR2_PACKAGE_MPG123 - depends on BR2_USE_MMU # mpg123 - help - mp3 decoding based on the mpg123 library - config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MUSEPACK bool "musepack" select BR2_PACKAGE_MUSEPACK @@ -634,43 +633,48 @@ comment "rsvg plugin needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_SYNC_4 -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL - bool "gl" - default y - depends on BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL - -comment "gl needs the gst1-plugins-bad opengl library" - depends on !BR2_PACKAGE_GST1_PLUGINS_BAD_HAS_LIB_OPENGL +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SBC + bool "sbc" + select BR2_PACKAGE_SBC config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL bool "sdl" select BR2_PACKAGE_SDL +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SHM + bool "shm" + help + shared memory sink source + config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE bool "sndfile" select BR2_PACKAGE_LIBSNDFILE -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB - bool "dvb" - select BR2_PACKAGE_DTV_SCAN_TABLES - # FEC_2_5 / QAM_4_NR definitions - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 - help - DVB elements +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD + bool "vcd" -comment "dvb needs a toolchain w/ headers >= 3.7" - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC + bool "voaacenc" + select BR2_PACKAGE_VO_AACENC -config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS - bool "hls" - select BR2_PACKAGE_GNUTLS +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WAYLAND + bool "wayland" + depends on BR2_PACKAGE_WAYLAND + default y help - Fragmented streaming plugins + Wayland Video Sink + +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP + bool "webp" + select BR2_PACKAGE_WEBP + help + Webp image format plugin config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265 bool "x265" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_SYNC_4 # x265 select BR2_PACKAGE_X265 help x265 encoding plugin diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash index b1a80f5d..d4d9b47f 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.6.3.tar.xz.sha256sum -sha256 971b29101d6a9c5e3fe94d99d977a227f58f0b2d29b6ca2c7f292052542b3a61 gst-plugins-bad-1.6.3.tar.xz +# From http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.8.2.tar.xz.sha256sum +sha256 d7995317530c8773ec088f94d9320909d41da61996b801ebacce9a56af493f97 gst-plugins-bad-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk index 3a097e86..3ffdd10d 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk @@ -4,7 +4,7 @@ # ################################################################################ -GST1_PLUGINS_BAD_VERSION = 1.6.3 +GST1_PLUGINS_BAD_VERSION = 1.8.2 GST1_PLUGINS_BAD_SOURCE = gst-plugins-bad-$(GST1_PLUGINS_BAD_VERSION).tar.xz GST1_PLUGINS_BAD_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-bad GST1_PLUGINS_BAD_INSTALL_STAGING = YES @@ -13,17 +13,11 @@ GST1_PLUGINS_BAD_LICENSE_FILES = COPYING COPYING.LIB # enabled. GST1_PLUGINS_BAD_LICENSE = LGPLv2+ LGPLv2.1+ -GST1_PLUGINS_BAD_AUTORECONF = YES -GST1_PLUGINS_BAD_AUTORECONF_OPTS = -I $(@D)/common/m4 -GST1_PLUGINS_BAD_GETTEXTIZE = YES - GST1_PLUGINS_BAD_CONF_OPTS = \ --disable-examples \ --disable-valgrind \ --disable-directsound \ - --disable-wsapi \ --disable-direct3d \ - --disable-direct3d9 \ --disable-winks \ --disable-android_media \ --disable-apple_media \ @@ -39,7 +33,6 @@ GST1_PLUGINS_BAD_CONF_OPTS += \ --disable-voamrwbenc \ --disable-bs2b \ --disable-chromaprint \ - --disable-dash \ --disable-dc1394 \ --disable-dts \ --disable-resindvd \ @@ -51,7 +44,7 @@ GST1_PLUGINS_BAD_CONF_OPTS += \ --disable-ladspa \ --disable-lv2 \ --disable-libde265 \ - --disable-strp \ + --disable-srtp \ --disable-linsys \ --disable-modplug \ --disable-mimic \ @@ -71,14 +64,10 @@ GST1_PLUGINS_BAD_CONF_OPTS += \ --disable-gme \ --disable-xvid \ --disable-vdpau \ - --disable-sbc \ --disable-schro \ --disable-zbar \ - --disable-rtmp \ --disable-spandsp \ - --disable-gsettings \ --disable-sndio \ - --disable-hls \ --disable-gtk3 \ --disable-qt @@ -381,12 +370,6 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-librfb endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-liveadder -else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-liveadder -endif - ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MIDI),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-midi else @@ -431,6 +414,12 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-mxf endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_NETSIM),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-netsim +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-netsim +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-nuvdemux else @@ -473,10 +462,11 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-removesilence endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-rtp +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTMP),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-rtmp +GST1_PLUGINS_BAD_DEPENDENCIES += rtmpdump else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-rtp +GST1_PLUGINS_BAD_CONF_OPTS += --disable-rtmp endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI),y) @@ -539,6 +529,12 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-videofilters endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOFRAME_AUDIOLEVEL),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-videoframe_audiolevel +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-videoframe_audiolevel +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-videomeasure else @@ -577,18 +573,6 @@ endif # Plugins with dependencies -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SHM),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-shm -else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-shm -endif - -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-vcd -else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-vcd -endif - ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-apexsink GST1_PLUGINS_BAD_DEPENDENCIES += openssl @@ -603,13 +587,6 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-assrender endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-voaacenc -GST1_PLUGINS_BAD_DEPENDENCIES += vo-aacenc -else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-voaacenc -endif - ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_BZ2),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-bz2 GST1_PLUGINS_BAD_DEPENDENCIES += bzip2 @@ -637,13 +614,6 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-decklink endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-webp -GST1_PLUGINS_BAD_DEPENDENCIES += webp -else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-webp -endif - ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DIRECTFB),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-directfb GST1_PLUGINS_BAD_DEPENDENCIES += directfb @@ -651,6 +621,13 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-directfb endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-dvb +GST1_PLUGINS_BAD_DEPENDENCIES += dtv-scan-tables +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-dvb +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FAAD),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-faad GST1_PLUGINS_BAD_DEPENDENCIES += faad2 @@ -665,6 +642,31 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-fbdev endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-gl +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-gl +endif + +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-hls + +ifeq ($(BR2_PACKAGE_NETTLE),y) +GST1_PLUGINS_BAD_DEPENDENCIES += nettle +GST1_PLUGINS_BAD_CONF_OPTS += --with-hls-crypto=nettle +else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) +GST1_PLUGINS_BAD_DEPENDENCIES += libgcrypt +GST1_PLUGINS_BAD_CONF_OPTS += --with-hls-crypto=libgcrypt \ + --with-libgcrypt-prefix=$(STAGING_DIR)/usr +else +GST1_PLUGINS_BAD_DEPENDENCIES += openssl +GST1_PLUGINS_BAD_CONF_OPTS += --with-hls-crypto=openssl +endif + +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-hls +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-libmms GST1_PLUGINS_BAD_DEPENDENCIES += libmms @@ -680,13 +682,6 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-mpeg2enc endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-mpg123 -GST1_PLUGINS_BAD_DEPENDENCIES += mpg123 -else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-mpg123 -endif - ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MUSEPACK),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-musepack GST1_PLUGINS_BAD_DEPENDENCIES += musepack @@ -743,10 +738,11 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-rsvg endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-gl +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SBC),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-sbc +GST1_PLUGINS_BAD_DEPENDENCIES += sbc else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-gl +GST1_PLUGINS_BAD_CONF_OPTS += --disable-sbc endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL),y) @@ -757,6 +753,12 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-sdl endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SHM),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-shm +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-shm +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-sndfile GST1_PLUGINS_BAD_DEPENDENCIES += libsndfile @@ -764,18 +766,24 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-sndfile endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DVB),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-dvb -GST1_PLUGINS_BAD_DEPENDENCIES += dtv-scan-tables +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-vcd else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-dvb +GST1_PLUGINS_BAD_CONF_OPTS += --disable-vcd endif -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HLS),y) -GST1_PLUGINS_BAD_CONF_OPTS += --enable-hls -GST1_PLUGINS_BAD_DEPENDENCIES += gnutls +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VOAACENC),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-voaacenc +GST1_PLUGINS_BAD_DEPENDENCIES += vo-aacenc else -GST1_PLUGINS_BAD_CONF_OPTS += --disable-hls +GST1_PLUGINS_BAD_CONF_OPTS += --disable-voaacenc +endif + +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-webp +GST1_PLUGINS_BAD_DEPENDENCIES += webp +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-webp endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265),y) diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-base/Config.in b/bsp/buildroot/package/gstreamer1/gst1-plugins-base/Config.in index b19fa59b..897c1d13 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-base/Config.in +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-base/Config.in @@ -111,6 +111,7 @@ config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA select BR2_PACKAGE_ALSA_LIB select BR2_PACKAGE_ALSA_LIB_MIXER select BR2_PACKAGE_ALSA_LIB_PCM + select BR2_PACKAGE_ALSA_LIB_SEQ help ALSA plugin library @@ -126,6 +127,12 @@ config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG help ogg stream manipulation (info about ogg: http://xiph.org) +config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS + bool "opus" + select BR2_PACKAGE_OPUS + help + Opus codec for speech and audio. + config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PANGO bool "pango font renderer" depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash b/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash index 63ca85c8..9c4ae8a4 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.6.3.tar.xz.sha256sum -sha256 b6154f8fdba4877e95efd94610ef0ada4f0171cd12eb829a3c3c97345d9c7a75 gst-plugins-base-1.6.3.tar.xz +# From http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.8.2.tar.xz.sha256sum +sha256 9d7109c8fb0a5dec8edb17b0053c59a46aba7ddf48dc48ea822ebbbd4339d38d gst-plugins-base-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk b/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk index 0db787e8..1b2d3437 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk @@ -4,7 +4,7 @@ # ################################################################################ -GST1_PLUGINS_BASE_VERSION = 1.6.3 +GST1_PLUGINS_BASE_VERSION = 1.8.2 GST1_PLUGINS_BASE_SOURCE = gst-plugins-base-$(GST1_PLUGINS_BASE_VERSION).tar.xz GST1_PLUGINS_BASE_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-base GST1_PLUGINS_BASE_INSTALL_STAGING = YES @@ -176,6 +176,13 @@ else GST1_PLUGINS_BASE_CONF_OPTS += --disable-ivorbis endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OPUS),y) +GST1_PLUGINS_BASE_CONF_OPTS += --enable-opus +GST1_PLUGINS_BASE_DEPENDENCIES += opus +else +GST1_PLUGINS_BASE_CONF_OPTS += --disable-opus +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG),y) GST1_PLUGINS_BASE_CONF_OPTS += --enable-ogg GST1_PLUGINS_BASE_DEPENDENCIES += libogg diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-good/Config.in b/bsp/buildroot/package/gstreamer1/gst1-plugins-good/Config.in index a59033a2..95318d98 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-good/Config.in +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-good/Config.in @@ -279,6 +279,14 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2 comment "v4l2 needs a toolchain w/ headers >= 3.0" depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 +config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2_PROBE + bool "v4l2-probe (m2m)" + depends on BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2 + help + Enables the V4L2 probe at plugin load time. This enables + support for v4l2 transform devices, such as m2m + devices. These plugins are registered as v4l2videoNconvert + config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO bool "cairo" select BR2_PACKAGE_CAIRO diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash b/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash index 3d8f9439..404ee07c 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.6.3.tar.xz.sha256sum -sha256 24b19db70b2a83461ebddfe20033db432dadfdb5d4b54ffb1dfa0d830134a177 gst-plugins-good-1.6.3.tar.xz +# From http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.8.2.tar.xz.sha256sum +sha256 8d7549118a3b7a009ece6bb38a05b66709c551d32d2adfd89eded4d1d7a23944 gst-plugins-good-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk b/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk index 6bf17c06..8d7ff296 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk @@ -4,7 +4,7 @@ # ################################################################################ -GST1_PLUGINS_GOOD_VERSION = 1.6.3 +GST1_PLUGINS_GOOD_VERSION = 1.8.2 GST1_PLUGINS_GOOD_SOURCE = gst-plugins-good-$(GST1_PLUGINS_GOOD_VERSION).tar.xz GST1_PLUGINS_GOOD_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-good GST1_PLUGINS_GOOD_LICENSE_FILES = COPYING @@ -30,8 +30,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS += \ --disable-jack \ --disable-libdv \ --disable-dv1394 \ - --disable-shout2 \ - --disable-taglib + --disable-shout2 GST1_PLUGINS_GOOD_DEPENDENCIES = gstreamer1 gst1-plugins-base @@ -323,6 +322,12 @@ else GST1_PLUGINS_GOOD_CONF_OPTS += --disable-gst_v4l2 endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2_PROBE),y) +GST1_PLUGINS_GOOD_CONF_OPTS += --enable-v4l2-probe +else +GST1_PLUGINS_GOOD_CONF_OPTS += --disable-v4l2-probe +endif + ifeq ($(BR2_PACKAGE_XORG7),y) GST1_PLUGINS_GOOD_DEPENDENCIES += xlib_libX11 xlib_libXext xlib_libXv GST1_PLUGINS_GOOD_CONF_OPTS += \ diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/Config.in b/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/Config.in index fbcb128c..f30163aa 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/Config.in +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/Config.in @@ -40,14 +40,10 @@ comment "plugins with external dependencies (there may be more available)" config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDREAD bool "dvdread" - depends on !BR2_STATIC_LIBS # libdvdread select BR2_PACKAGE_LIBDVDREAD help Access a DVD with dvdread -comment "dvdread needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_LAME bool "lame (*.mp3 audio encoder)" select BR2_PACKAGE_LAME @@ -61,6 +57,12 @@ config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD help mp3 decoding based on the mad library +config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123 + bool "mpg123 (*.mp3 audio)" + select BR2_PACKAGE_MPG123 + help + mp3 decoding based on the mpg123 library + config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC bool "mpeg2dec" select BR2_PACKAGE_LIBMPEG2 diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash b/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash index 54880b70..d384d48a 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.6.3.tar.xz.sha256sum -sha256 2fecf7b7c7882f8f62f1900048f4013f98c214fb3d3303d8d812245bb41fd064 gst-plugins-ugly-1.6.3.tar.xz +# From http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.8.2.tar.xz.sha256sum +sha256 9c5b33a2a98fc1d6d6c99a1b536b1fb2de45f53cc8bf8ab85a8b8141fed1a8ac gst-plugins-ugly-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk b/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk index b42efcb5..8864b04c 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk @@ -4,7 +4,7 @@ # ################################################################################ -GST1_PLUGINS_UGLY_VERSION = 1.6.3 +GST1_PLUGINS_UGLY_VERSION = 1.8.2 GST1_PLUGINS_UGLY_SOURCE = gst-plugins-ugly-$(GST1_PLUGINS_UGLY_VERSION).tar.xz GST1_PLUGINS_UGLY_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-ugly GST1_PLUGINS_UGLY_LICENSE_FILES = COPYING @@ -59,6 +59,10 @@ GST1_PLUGINS_UGLY_CONF_OPTS += --disable-realmedia endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_DVDREAD),y) +# configure does not use pkg-config to detect libdvdread +ifeq ($(BR2_PACKAGE_LIBDVDCSS)$(BR2_STATIC_LIBS),yy) +GST1_PLUGINS_UGLY_CONF_ENV += LIBS="-ldvdcss" +endif GST1_PLUGINS_UGLY_CONF_OPTS += --enable-dvdread GST1_PLUGINS_UGLY_DEPENDENCIES += libdvdread GST1_PLUGINS_UGLY_HAS_GPL_LICENSE = y @@ -81,6 +85,13 @@ else GST1_PLUGINS_UGLY_CONF_OPTS += --disable-mad endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123),y) +GST1_PLUGINS_UGLY_CONF_OPTS += --enable-mpg123 +GST1_PLUGINS_UGLY_DEPENDENCIES += mpg123 +else +GST1_PLUGINS_UGLY_CONF_OPTS += --disable-mpg123 +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPEG2DEC),y) GST1_PLUGINS_UGLY_CONF_OPTS += --enable-mpeg2dec GST1_PLUGINS_UGLY_DEPENDENCIES += libmpeg2 diff --git a/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.hash b/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.hash index c50475cc..2394f8a1 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.hash +++ b/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gst-validate/gst-validate-1.6.0.tar.xz.sha256sum -sha256 3baef8c7b5363293c20314a30afd54629849fc597669991fdcf92303602dafee gst-validate-1.6.0.tar.xz +# From http://gstreamer.freedesktop.org/src/gst-validate/gst-validate-1.8.2.tar.xz.sha256sum +sha256 33c5b585c5ca1659fe6c09fdf02e45d8132c0d386b405bf527b14ab481a0bafe gst-validate-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.mk b/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.mk index a7d66be4..ee768172 100644 --- a/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.mk +++ b/bsp/buildroot/package/gstreamer1/gst1-validate/gst1-validate.mk @@ -4,7 +4,7 @@ # ################################################################################ -GST1_VALIDATE_VERSION = 1.6.0 +GST1_VALIDATE_VERSION = 1.8.2 GST1_VALIDATE_SOURCE = gst-validate-$(GST1_VALIDATE_VERSION).tar.xz GST1_VALIDATE_SITE = http://gstreamer.freedesktop.org/src/gst-validate GST1_VALIDATE_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/gstreamer1/gstreamer1/Config.in b/bsp/buildroot/package/gstreamer1/gstreamer1/Config.in index c13f0419..274171b6 100644 --- a/bsp/buildroot/package/gstreamer1/gstreamer1/Config.in +++ b/bsp/buildroot/package/gstreamer1/gstreamer1/Config.in @@ -20,7 +20,7 @@ config BR2_PACKAGE_GSTREAMER1_PARSE bool "enable command-line parser" default y help - Enable command line parser for gstreamer. This may incrase the CPu + Enable command line parser for gstreamer. This may increase the CPU overhead by a small amount. config BR2_PACKAGE_GSTREAMER1_TRACE diff --git a/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.hash b/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.hash index 8a88de86..b32fcfe8 100644 --- a/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.hash +++ b/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.hash @@ -1,2 +1,2 @@ -# From http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.6.3.tar.xz.sha256sum -sha256 22f9568d67b87cf700a111f381144bd37cb93790a77e4e331db01fe854a37f24 gstreamer-1.6.3.tar.xz +# From http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.8.2.tar.xz.sha256sum +sha256 9dbebe079c2ab2004ef7f2649fa317cabea1feb4fb5605c24d40744b90918341 gstreamer-1.8.2.tar.xz diff --git a/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.mk b/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.mk index b7881601..beea3b70 100644 --- a/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.mk +++ b/bsp/buildroot/package/gstreamer1/gstreamer1/gstreamer1.mk @@ -4,7 +4,7 @@ # ################################################################################ -GSTREAMER1_VERSION = 1.6.3 +GSTREAMER1_VERSION = 1.8.2 GSTREAMER1_SOURCE = gstreamer-$(GSTREAMER1_VERSION).tar.xz GSTREAMER1_SITE = http://gstreamer.freedesktop.org/src/gstreamer GSTREAMER1_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/gtest/gtest.mk b/bsp/buildroot/package/gtest/gtest.mk index da086210..11aa7e9b 100644 --- a/bsp/buildroot/package/gtest/gtest.mk +++ b/bsp/buildroot/package/gtest/gtest.mk @@ -31,6 +31,8 @@ define GTEST_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0755 $(@D)/libgtest_main.a $(STAGING_DIR)/usr/lib/libgtest_main.a $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/ cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/ + $(INSTALL) -D -m 0644 package/gtest/gtest.pc \ + $(STAGING_DIR)/usr/lib/pkgconfig/gtest.pc # Generate the gtest-config script manually, since the CMake # build system is not doing it. sed 's%@PACKAGE_TARNAME@%gtest%;\ diff --git a/bsp/buildroot/package/gtest/gtest.pc b/bsp/buildroot/package/gtest/gtest.pc new file mode 100644 index 00000000..b7a8aa40 --- /dev/null +++ b/bsp/buildroot/package/gtest/gtest.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib/ +includedir=${prefix}/include + +Name: gtest +Description: Google C++ Testing Framework +Version: 1.7.0 +Libs: -L${libdir} -lgtest +Libs.private: -lpthread +Cflags: -I${includedir} diff --git a/bsp/buildroot/package/gtkmm3/Config.in b/bsp/buildroot/package/gtkmm3/Config.in index 238a8cde..ef62a1f9 100644 --- a/bsp/buildroot/package/gtkmm3/Config.in +++ b/bsp/buildroot/package/gtkmm3/Config.in @@ -1,3 +1,10 @@ +comment "gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.8" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \ + || !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_LIBGTK3 \ + || !BR2_TOOLCHAIN_HAS_THREADS + config BR2_PACKAGE_GTKMM3 bool "gtkmm3" # Broken on existing external/internal nios2 toolchains, @@ -11,19 +18,13 @@ config BR2_PACKAGE_GTKMM3 depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/libgtk3 -> libglib2 depends on BR2_USE_MMU # *mm/libgtk3 -> libglib2 depends on BR2_USE_WCHAR # *mm/libgtk3 -> libglib2 + depends on BR2_PACKAGE_LIBGTK3 select BR2_PACKAGE_ATKMM select BR2_PACKAGE_CAIROMM select BR2_PACKAGE_GLIBMM - select BR2_PACKAGE_LIBGTK3 select BR2_PACKAGE_LIBSIGC select BR2_PACKAGE_PANGOMM help The gtkmm3 package is a set of C++ bindings for GTK 3. http://www.gtkmm.org/ - -comment "gtkmm3 needs a toolchain w/ C++, wchar, threads, gcc >= 4.8" - depends on BR2_USE_MMU - depends on BR2_TOOLCHAIN_HAS_SYNC_4 - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \ - || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/gtkmm3/gtkmm3.hash b/bsp/buildroot/package/gtkmm3/gtkmm3.hash index 49e2f76b..f2fc9608 100644 --- a/bsp/buildroot/package/gtkmm3/gtkmm3.hash +++ b/bsp/buildroot/package/gtkmm3/gtkmm3.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.14/gtkmm-3.14.0.sha256sum -sha256 d9f528a62c6ec226fa08287c45c7465b2dce5aae5068e9ac48d30a64a378e48b gtkmm-3.14.0.tar.xz +# From http://ftp.gnome.org/pub/GNOME/sources/gtkmm/3.20/gtkmm-3.20.1.sha256sum +sha256 051de1b8756ca6ec61f26264338cfc3060af936fd70bf4558bfe1e115418c612 gtkmm-3.20.1.tar.xz diff --git a/bsp/buildroot/package/gtkmm3/gtkmm3.mk b/bsp/buildroot/package/gtkmm3/gtkmm3.mk index 034cdf9c..8c3e0793 100644 --- a/bsp/buildroot/package/gtkmm3/gtkmm3.mk +++ b/bsp/buildroot/package/gtkmm3/gtkmm3.mk @@ -4,8 +4,8 @@ # ################################################################################ -GTKMM3_VERSION_MAJOR = 3.14 -GTKMM3_VERSION = $(GTKMM3_VERSION_MAJOR).0 +GTKMM3_VERSION_MAJOR = 3.20 +GTKMM3_VERSION = $(GTKMM3_VERSION_MAJOR).1 GTKMM3_SOURCE = gtkmm-$(GTKMM3_VERSION).tar.xz GTKMM3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtkmm/$(GTKMM3_VERSION_MAJOR) GTKMM3_LICENSE = LGPLv2.1+ (library), GPLv2+ (tools) @@ -13,15 +13,4 @@ GTKMM3_LICENSE_FILES = COPYING COPYING.tools GTKMM3_INSTALL_STAGING = YES GTKMM3_DEPENDENCIES = atkmm cairomm glibmm libgtk3 libsigc pangomm host-pkgconf -# Explicit use of C++11 to build with newer *mm dependencies that require C++11. -# -# The most recent release of *mm-related libraries require C++11. This project's -# dependencies (ex. libpangomm) are updated and enforce the C++11 standard. -# Since the gtkmm3 must match the libgtk3 version, the useable version of -# gtkmm3 does not have this enforcement; however, to build with the most -# recent version of the dependencies, gtkmm3 requires to be built with -# `-std=c++11`. The following enforces C++11 standard. When libgtk3 is updated, -# followed by a gtkmm3 update, this flag modification can be removed. -GTKMM3_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -std=c++11" - $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gtksourceview/Config.in b/bsp/buildroot/package/gtksourceview/Config.in new file mode 100644 index 00000000..e87969b1 --- /dev/null +++ b/bsp/buildroot/package/gtksourceview/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_GTKSOURCEVIEW + bool "gtksourceview" + depends on BR2_PACKAGE_LIBGTK3 + select BR2_PACKAGE_LIBXML2 + help + GtkSourceView is a portable C library that extends the + standard GTK+ framework for multiline text editing with + support for configurable syntax highlighting, unlimited + undo/redo, search and replace, a completion framework, + printing and other features typical of a source code editor. + + https://projects.gnome.org/gtksourceview diff --git a/bsp/buildroot/package/gtksourceview/gtksourceview.hash b/bsp/buildroot/package/gtksourceview/gtksourceview.hash new file mode 100644 index 00000000..1fd22af4 --- /dev/null +++ b/bsp/buildroot/package/gtksourceview/gtksourceview.hash @@ -0,0 +1,2 @@ +# Hash from: http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.21/gtksourceview-3.21.3.sha256sum: +sha256 12ea703e1903215629580ddab7751e419bf73a8aacfbbc53c75dc1b9cb0dfba7 gtksourceview-3.21.3.tar.xz diff --git a/bsp/buildroot/package/gtksourceview/gtksourceview.mk b/bsp/buildroot/package/gtksourceview/gtksourceview.mk new file mode 100644 index 00000000..601d6e08 --- /dev/null +++ b/bsp/buildroot/package/gtksourceview/gtksourceview.mk @@ -0,0 +1,17 @@ +################################################################################ +# +# gtksourceview +# +################################################################################ + +GTKSOURCEVIEW_VERSION_MAJOR = 3.21 +GTKSOURCEVIEW_VERSION = $(GTKSOURCEVIEW_VERSION_MAJOR).3 +GTKSOURCEVIEW_SOURCE = gtksourceview-$(GTKSOURCEVIEW_VERSION).tar.xz +GTKSOURCEVIEW_SITE = \ + http://ftp.gnome.org/pub/gnome/sources/gtksourceview/$(GTKSOURCEVIEW_VERSION_MAJOR) +GTKSOURCEVIEW_LICENSE = LGPLv2.1+ +GTKSOURCEVIEW_LICENSE_FILES = COPYING +GTKSOURCEVIEW_INSTALL_STAGING = YES +GTKSOURCEVIEW_DEPENDENCIES = host-pkgconf libglib2 libxml2 libgtk3 + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/guile/Config.in b/bsp/buildroot/package/guile/Config.in index b3f744ea..e0f65712 100644 --- a/bsp/buildroot/package/guile/Config.in +++ b/bsp/buildroot/package/guile/Config.in @@ -16,7 +16,7 @@ config BR2_PACKAGE_GUILE http://www.gnu.org/software/guile -comment "guile needs a uClibc or (e)glibc toolchain w/ threads, wchar, dynamic library" +comment "guile needs a uClibc or glibc toolchain w/ threads, wchar, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/gupnp-av/gupnp-av.hash b/bsp/buildroot/package/gupnp-av/gupnp-av.hash index 0101ed4f..b9731719 100644 --- a/bsp/buildroot/package/gupnp-av/gupnp-av.hash +++ b/bsp/buildroot/package/gupnp-av/gupnp-av.hash @@ -1,2 +1,2 @@ -# Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp-av/0.11/gupnp-av-0.11.6.sha256sum: -sha256 401991336babb18c4ebed16e75e0b4d3e5848cff7bb878bbfd54a5d15203c4cc gupnp-av-0.11.6.tar.xz +# Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp-av/0.12/gupnp-av-0.12.8.sha256sum: +sha256 759bc7d46aff894c282d17f508d9b5be82de96aa74b10cb6b0fc6c5e07cc273c gupnp-av-0.12.8.tar.xz diff --git a/bsp/buildroot/package/gupnp-av/gupnp-av.mk b/bsp/buildroot/package/gupnp-av/gupnp-av.mk index 6360c93c..58351551 100644 --- a/bsp/buildroot/package/gupnp-av/gupnp-av.mk +++ b/bsp/buildroot/package/gupnp-av/gupnp-av.mk @@ -4,8 +4,8 @@ # ################################################################################ -GUPNP_AV_VERSION_MAJOR = 0.11 -GUPNP_AV_VERSION = $(GUPNP_AV_VERSION_MAJOR).6 +GUPNP_AV_VERSION_MAJOR = 0.12 +GUPNP_AV_VERSION = $(GUPNP_AV_VERSION_MAJOR).8 GUPNP_AV_SOURCE = gupnp-av-$(GUPNP_AV_VERSION).tar.xz GUPNP_AV_SITE = http://ftp.gnome.org/pub/gnome/sources/gupnp-av/$(GUPNP_AV_VERSION_MAJOR) GUPNP_AV_LICENSE = LGPLv2+ diff --git a/bsp/buildroot/package/gupnp-dlna/Config.in b/bsp/buildroot/package/gupnp-dlna/Config.in new file mode 100644 index 00000000..a0ecdb3b --- /dev/null +++ b/bsp/buildroot/package/gupnp-dlna/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_GUPNP_DLNA + bool "gupnp-dlna" + depends on BR2_USE_WCHAR # glib2 + depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 + depends on BR2_USE_MMU # glib2 + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_LIBXML2 + help + GUPnP DLNA is a small utility library that aims to ease the + DLNA-related tasks such as media profile guessing, transcoding + to a given profile, etc. + + http://www.gupnp.org/ + +comment "gupnp-dlna needs a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/gupnp-dlna/gupnp-dlna.hash b/bsp/buildroot/package/gupnp-dlna/gupnp-dlna.hash new file mode 100644 index 00000000..c28a06fc --- /dev/null +++ b/bsp/buildroot/package/gupnp-dlna/gupnp-dlna.hash @@ -0,0 +1,2 @@ +# Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp-dlna/0.10/gupnp-dlna-0.10.5.sha256sum: +sha256 123e368227c11d5c17fc1aa76cbdaffa345355eb51d172cd39fc74a5b468ff6a gupnp-dlna-0.10.5.tar.xz diff --git a/bsp/buildroot/package/gupnp-dlna/gupnp-dlna.mk b/bsp/buildroot/package/gupnp-dlna/gupnp-dlna.mk new file mode 100644 index 00000000..58b57354 --- /dev/null +++ b/bsp/buildroot/package/gupnp-dlna/gupnp-dlna.mk @@ -0,0 +1,32 @@ +################################################################################ +# +# gupnp-dlna +# +################################################################################ + +GUPNP_DLNA_VERSION_MAJOR = 0.10 +GUPNP_DLNA_VERSION = $(GUPNP_DLNA_VERSION_MAJOR).5 +GUPNP_DLNA_SOURCE = gupnp-dlna-$(GUPNP_DLNA_VERSION).tar.xz +GUPNP_DLNA_SITE = \ + http://ftp.gnome.org/pub/gnome/sources/gupnp-dlna/$(GUPNP_DLNA_VERSION_MAJOR) +# COPYING contains LGPLv2.1 but all source files contain LPGLv2+ +GUPNP_DLNA_LICENSE = LGPLv2+ +GUPNP_DLNA_LICENSE_FILES = COPYING +GUPNP_DLNA_INSTALL_STAGING = YES +GUPNP_DLNA_DEPENDENCIES = host-pkgconf libglib2 libxml2 + +ifeq ($(BR2_PACKAGE_GST_PLUGINS_BASE),y) +GUPNP_DLNA_CONF_OPTS += --enable-legacy-gstreamer-metadata-backend +GUPNP_DLNA_DEPENDENCIES += gstreamer gst-plugins-base +else +GUPNP_DLNA_CONF_OPTS += --disable-legacy-gstreamer-metadata-backend +endif + +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) +GUPNP_DLNA_CONF_OPTS += --enable-gstreamer-metadata-backend +GUPNP_DLNA_DEPENDENCIES += gstreamer1 gst1-plugins-base +else +GUPNP_DLNA_CONF_OPTS += --disable-gstreamer-metadata-backend +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gupnp-tools/Config.in b/bsp/buildroot/package/gupnp-tools/Config.in new file mode 100644 index 00000000..f9e645a0 --- /dev/null +++ b/bsp/buildroot/package/gupnp-tools/Config.in @@ -0,0 +1,21 @@ +config BR2_PACKAGE_GUPNP_TOOLS + bool "gupnp-tools" + # gssdp, gupnp, libsoup all select on libglib2, so they have + # the same dependencies as libgtk3, which we depend on. So for + # the same of simplicity, we don't replicate all those + # (complex) dependencies. + select BR2_PACKAGE_GSSDP + select BR2_PACKAGE_GUPNP + select BR2_PACKAGE_LIBSOUP + select BR2_PACKAGE_LIBXML2 + depends on BR2_PACKAGE_LIBGTK3 + help + GUPnP Tools are free replacements of Intel UPnP tools that + use GUPnP. They provides client and server side tools which + enable one to easily test and debug one's UPnP devices and + control points. + + http://www.gupnp.org/ + +comment "gupnp-tools needs libgtk3" + depends on !BR2_PACKAGE_LIBGTK3 diff --git a/bsp/buildroot/package/gupnp-tools/gupnp-tools.hash b/bsp/buildroot/package/gupnp-tools/gupnp-tools.hash new file mode 100644 index 00000000..0d37a877 --- /dev/null +++ b/bsp/buildroot/package/gupnp-tools/gupnp-tools.hash @@ -0,0 +1,2 @@ +# Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp-tools/0.8/gupnp-tools-0.8.12.sha256sum: +sha256 658de96953608c4b1f47578ae563a7066d1f1983565daf22ad52b7b328ef97b1 gupnp-tools-0.8.12.tar.xz diff --git a/bsp/buildroot/package/gupnp-tools/gupnp-tools.mk b/bsp/buildroot/package/gupnp-tools/gupnp-tools.mk new file mode 100644 index 00000000..75920db0 --- /dev/null +++ b/bsp/buildroot/package/gupnp-tools/gupnp-tools.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# gupnp-tools +# +################################################################################ + +GUPNP_TOOLS_VERSION_MAJOR = 0.8 +GUPNP_TOOLS_VERSION = $(GUPNP_TOOLS_VERSION_MAJOR).12 +GUPNP_TOOLS_SOURCE = gupnp-tools-$(GUPNP_TOOLS_VERSION).tar.xz +GUPNP_TOOLS_SITE = \ + http://ftp.gnome.org/pub/gnome/sources/gupnp-tools/$(GUPNP_TOOLS_VERSION_MAJOR) +GUPNP_TOOLS_LICENSE = GPLv2+ +GUPNP_TOOLS_LICENSE_FILES = COPYING +GUPNP_TOOLS_INSTALL_STAGING = YES +GUPNP_TOOLS_DEPENDENCIES = \ + host-pkgconf \ + libglib2 \ + libxml2 \ + gssdp \ + gupnp \ + libsoup \ + libgtk3 + +ifeq ($(BR2_PACKAGE_GUPNP_AV),y) +GUPNP_TOOLS_CONF_OPTS += --with-av +GUPNP_TOOLS_DEPENDENCIES += gupnp-av +else +GUPNP_TOOLS_CONF_OPTS += --without-av +endif + +ifeq ($(BR2_PACKAGE_GTKSOURCEVIEW),y) +GUPNP_TOOLS_DEPENDENCIES += gtksourceview +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/gupnp/gupnp.hash b/bsp/buildroot/package/gupnp/gupnp.hash index 597cb422..e0082ac1 100644 --- a/bsp/buildroot/package/gupnp/gupnp.hash +++ b/bsp/buildroot/package/gupnp/gupnp.hash @@ -1,2 +1,2 @@ -# Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp/0.19/gupnp-0.19.4.sha256sum: -sha256 3c1fb2873cb2f8f152b9d49598d55b15b8f3c1096a03ade46ce69694798fb243 gupnp-0.19.4.tar.xz +# Hash from: http://ftp.gnome.org/pub/gnome/sources/gupnp/0.20/gupnp-0.20.18.sha256sum: +sha256 c5e0e11061f8d0ff9c8dccc196f39c45a49c0153c9a72abf6290ab34d1cbb021 gupnp-0.20.18.tar.xz diff --git a/bsp/buildroot/package/gupnp/gupnp.mk b/bsp/buildroot/package/gupnp/gupnp.mk index 85faaa47..f7c32b5b 100644 --- a/bsp/buildroot/package/gupnp/gupnp.mk +++ b/bsp/buildroot/package/gupnp/gupnp.mk @@ -4,8 +4,8 @@ # ################################################################################ -GUPNP_VERSION_MAJOR = 0.19 -GUPNP_VERSION = $(GUPNP_VERSION_MAJOR).4 +GUPNP_VERSION_MAJOR = 0.20 +GUPNP_VERSION = $(GUPNP_VERSION_MAJOR).18 GUPNP_SOURCE = gupnp-$(GUPNP_VERSION).tar.xz GUPNP_SITE = http://ftp.gnome.org/pub/gnome/sources/gupnp/$(GUPNP_VERSION_MAJOR) GUPNP_LICENSE = LGPLv2+ diff --git a/bsp/buildroot/package/gutenprint/0003-print-olympus.c-fix-endianness-detection.patch b/bsp/buildroot/package/gutenprint/0003-print-olympus.c-fix-endianness-detection.patch new file mode 100644 index 00000000..fc1746ca --- /dev/null +++ b/bsp/buildroot/package/gutenprint/0003-print-olympus.c-fix-endianness-detection.patch @@ -0,0 +1,33 @@ +From e0dad4bb237f1155e920c30c6fd3412e96a3e84d Mon Sep 17 00:00:00 2001 +From: Olivier Schonken +Date: Sun, 24 Jan 2016 17:14:21 +0200 +Subject: [PATCH 1/1] print-olympus.c: fix endianness detection + +The __LITTLE_ENDIAN__ and __BIG_ENDIAN__ macros are not a reliable way to +detect endianness. Instead, rely on __BYTE_ORDER like we do in the rest of +the code. + +Signed-off-by: Olivier Schonken +--- + src/main/print-olympus.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/main/print-olympus.c b/src/main/print-olympus.c +index 42c4897..8b2aa80 100644 +--- a/src/main/print-olympus.c ++++ b/src/main/print-olympus.c +@@ -4901,9 +4901,9 @@ dyesub_do_print(stp_vars_t *v, stp_image_t *image) + } + + if (pv.bytes_per_ink_channel > 1) { +-#if defined(__LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) ++#if (__BYTE_ORDER == __LITTLE_ENDIAN) + pv.byteswap = dyesub_feature(caps, DYESUB_FEATURE_BIGENDIAN); +-#elif defined (__BIG_ENDIAN) || defined(__BIG_ENDIAN__) ++#elif (__BYTE_ORDER == __BIG_ENDIAN) + pv.byteswap = !dyesub_feature(caps, DYESUB_FEATURE_BIGENDIAN); + #else + #error "Unable to determine endianness, aborting compilation!" +-- +1.9.1 + diff --git a/bsp/buildroot/package/gutenprint/0004-build-Don-t-allow-USB-backends-to-be-built-if-CUPS-i.patch b/bsp/buildroot/package/gutenprint/0004-build-Don-t-allow-USB-backends-to-be-built-if-CUPS-i.patch new file mode 100644 index 00000000..1ecc89ed --- /dev/null +++ b/bsp/buildroot/package/gutenprint/0004-build-Don-t-allow-USB-backends-to-be-built-if-CUPS-i.patch @@ -0,0 +1,41 @@ +From b5e8dc446572c1198a24eff105a394d0f307951e Mon Sep 17 00:00:00 2001 +From: Solomon Peachy +Date: Fri, 15 Apr 2016 23:05:43 -0400 +Subject: [PATCH] build: Don't allow USB backends to be built if CUPS is not + enabled. + +[Waldemar: backport from upstream commit +fc1713589fed645f2c8002c3f66dfb69af314716.] +Signed-off-by: Waldemar Brodkorb +--- + configure.ac | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 800794b..ba30019 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -442,12 +442,14 @@ dnl if test -z "${[EXTRA_LIBREADLINE_DEPS]}" ; then + dnl [EXTRA_LIBREADLINE_DEPS]="" + dnl fi + +-# libusb-1.0 (For CUPS backends) +-PKG_CHECK_MODULES([LIBUSB], [libusb-1.0], +- [HAVE_LIBUSB=yes +- BUILD_LIBUSB_BACKENDS=yes], +- [HAVE_LIBUSB=no +- BUILD_LIBUSB_BACKENDS=no]) ++# libusb-1.0 (For CUPS backends, but only bother if CUPS is enabled) ++if test "x$BUILD_CUPS" = "xyes" ; then ++ PKG_CHECK_MODULES([LIBUSB], [libusb-1.0], ++ [HAVE_LIBUSB=yes ++ BUILD_LIBUSB_BACKENDS=yes], ++ [HAVE_LIBUSB=no ++ BUILD_LIBUSB_BACKENDS=no]) ++fi + + AC_PATH_PROGS([GIMPTOOL2_CHECK], [gimptool-2.0 gimptool]) + if test -z "${GIMPTOOL2_CHECK}" ; then +-- +2.6.4 + diff --git a/bsp/buildroot/package/gutenprint/Config.in b/bsp/buildroot/package/gutenprint/Config.in index 686dbce5..f93717c7 100644 --- a/bsp/buildroot/package/gutenprint/Config.in +++ b/bsp/buildroot/package/gutenprint/Config.in @@ -1,7 +1,5 @@ config BR2_PACKAGE_GUTENPRINT bool "gutenprint" - # because of cups security issues - depends on BR2_DEPRECATED_SINCE_2015_05 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_CUPS select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE diff --git a/bsp/buildroot/package/gutenprint/gutenprint.hash b/bsp/buildroot/package/gutenprint/gutenprint.hash index 3cfe0e11..a52cc7d4 100644 --- a/bsp/buildroot/package/gutenprint/gutenprint.hash +++ b/bsp/buildroot/package/gutenprint/gutenprint.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 4b27e4f06f32d30271df89ecb6089bb11bcf2caec5f60b0909e083095354bca0 gutenprint-5.2.9.tar.bz2 +sha256 c1a34cd2e02527de4d2a9bf6c14732cb9aa11b333f771eb6043fdc974de24df9 gutenprint-5.2.11.tar.bz2 diff --git a/bsp/buildroot/package/gutenprint/gutenprint.mk b/bsp/buildroot/package/gutenprint/gutenprint.mk index 3ff05b60..8ee2406a 100644 --- a/bsp/buildroot/package/gutenprint/gutenprint.mk +++ b/bsp/buildroot/package/gutenprint/gutenprint.mk @@ -5,18 +5,19 @@ ################################################################################ GUTENPRINT_VERSION_MAJOR = 5.2 -GUTENPRINT_VERSION = $(GUTENPRINT_VERSION_MAJOR).9 +GUTENPRINT_VERSION = $(GUTENPRINT_VERSION_MAJOR).11 GUTENPRINT_SITE = http://downloads.sourceforge.net/project/gimp-print/gutenprint-$(GUTENPRINT_VERSION_MAJOR)/$(GUTENPRINT_VERSION) GUTENPRINT_SOURCE = gutenprint-$(GUTENPRINT_VERSION).tar.bz2 GUTENPRINT_LICENSE = GPLv2+ GUTENPRINT_LICENSE_FILES = COPYING -# Needed, as we touch Makefile.am +# Needed, as we touch Makefile.am and configure.ac GUTENPRINT_AUTORECONF = YES GUTENPRINT_DEPENDENCIES = \ cups host-pkgconf \ - $(if $(BR2_PACKAGE_LIBICONV),libiconv) + $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ + $(if $(BR2_PACKAGE_LIBUSB),libusb) # host-gutenprint is needed to generate XML as part of compilation # the program that generates the xml also links against libgutenprint @@ -44,8 +45,7 @@ GUTENPRINT_CONF_OPTS = \ # USE_PREGEN_XMLI18N_TMP_H is added by our patch GUTENPRINT_MAKE_ENV = BR2_USE_PREGEN_XMLI18N_TMP_H=$(HOST_DIR)/usr/include/xmli18n-tmp.h -# We have no host dependencies -HOST_GUTENPRINT_DEPENDENCIES = +HOST_GUTENPRINT_DEPENDENCIES = host-pkgconf # The host-gutenprint shall create the required header HOST_GUTENPRINT_MAKE_ENV = diff --git a/bsp/buildroot/package/gvfs/gvfs.hash b/bsp/buildroot/package/gvfs/gvfs.hash index 19e820a5..1fec32c9 100644 --- a/bsp/buildroot/package/gvfs/gvfs.hash +++ b/bsp/buildroot/package/gvfs/gvfs.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/GNOME/sources/gvfs/1.26/gvfs-1.26.2.sha256sum -sha256 695b6e0f3de5ac2cb4d188917edef3f13299328150a2413f1a7131d9b2d48d18 gvfs-1.26.2.tar.xz +# From http://ftp.gnome.org/pub/GNOME/sources/gvfs/1.28/gvfs-1.28.2.sha256sum +sha256 bc6af45cff7e7e8d33c3a4be1d27e479f10f80105a6f2d1fae75c5c0d40636d9 gvfs-1.28.2.tar.xz diff --git a/bsp/buildroot/package/gvfs/gvfs.mk b/bsp/buildroot/package/gvfs/gvfs.mk index 48d2b506..8e885732 100644 --- a/bsp/buildroot/package/gvfs/gvfs.mk +++ b/bsp/buildroot/package/gvfs/gvfs.mk @@ -4,7 +4,7 @@ # ################################################################################ -GVFS_VERSION_MAJOR = 1.26 +GVFS_VERSION_MAJOR = 1.28 GVFS_VERSION = $(GVFS_VERSION_MAJOR).2 GVFS_SOURCE = gvfs-$(GVFS_VERSION).tar.xz GVFS_SITE = http://ftp.gnome.org/pub/GNOME/sources/gvfs/$(GVFS_VERSION_MAJOR) diff --git a/bsp/buildroot/package/gzip/Config.in b/bsp/buildroot/package/gzip/Config.in index a251425f..f2eac037 100644 --- a/bsp/buildroot/package/gzip/Config.in +++ b/bsp/buildroot/package/gzip/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_GZIP bool "gzip" depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Standard GNU compressor. Provides things like gzip, gunzip, gzcat, etc... @@ -9,3 +10,4 @@ config BR2_PACKAGE_GZIP comment "gzip needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/gzip/gzip.hash b/bsp/buildroot/package/gzip/gzip.hash index 56f052f7..466f846e 100644 --- a/bsp/buildroot/package/gzip/gzip.hash +++ b/bsp/buildroot/package/gzip/gzip.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 37dfed1a485d53212c43b3fa2a7c7952f09bf5cd86e37121c222341ee1b27847 gzip-1.6.tar.xz +sha256 ff1767ec444f71e5daf8972f6f8bf68cfcca1d2f76c248eb18e8741fc91dbbd3 gzip-1.8.tar.xz diff --git a/bsp/buildroot/package/gzip/gzip.mk b/bsp/buildroot/package/gzip/gzip.mk index 1b2f678f..6dc910ec 100644 --- a/bsp/buildroot/package/gzip/gzip.mk +++ b/bsp/buildroot/package/gzip/gzip.mk @@ -4,7 +4,7 @@ # ################################################################################ -GZIP_VERSION = 1.6 +GZIP_VERSION = 1.8 GZIP_SOURCE = gzip-$(GZIP_VERSION).tar.xz GZIP_SITE = $(BR2_GNU_MIRROR)/gzip # Some other tools expect it to be in /bin diff --git a/bsp/buildroot/package/harfbuzz/harfbuzz.hash b/bsp/buildroot/package/harfbuzz/harfbuzz.hash index 67050a78..17f2fa67 100644 --- a/bsp/buildroot/package/harfbuzz/harfbuzz.hash +++ b/bsp/buildroot/package/harfbuzz/harfbuzz.hash @@ -1,2 +1,2 @@ -# From http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.1.3.tar.bz2.sha256 -sha256 d93d7cb7979c32672e902fdfa884599e63f07f2fa5b06c66147d20c516d4b8f7 harfbuzz-1.1.3.tar.bz2 +# From http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.3.0.tar.bz2.sha256 +sha256 b04be31633efee2cae1d62d46434587302554fa837224845a62565ec68a0334d harfbuzz-1.3.0.tar.bz2 diff --git a/bsp/buildroot/package/harfbuzz/harfbuzz.mk b/bsp/buildroot/package/harfbuzz/harfbuzz.mk index c704f326..8ba5e4d3 100644 --- a/bsp/buildroot/package/harfbuzz/harfbuzz.mk +++ b/bsp/buildroot/package/harfbuzz/harfbuzz.mk @@ -4,7 +4,7 @@ # ################################################################################ -HARFBUZZ_VERSION = 1.1.3 +HARFBUZZ_VERSION = 1.3.0 HARFBUZZ_SITE = http://www.freedesktop.org/software/harfbuzz/release HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.bz2 HARFBUZZ_LICENSE = MIT, ISC (ucdn library) diff --git a/bsp/buildroot/package/hdparm/Config.in b/bsp/buildroot/package/hdparm/Config.in index 1b57439b..52385b18 100644 --- a/bsp/buildroot/package/hdparm/Config.in +++ b/bsp/buildroot/package/hdparm/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_HDPARM bool "hdparm" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help hdparm - get/set hard disk parameters for Linux IDE drives. diff --git a/bsp/buildroot/package/heimdal/heimdal.mk b/bsp/buildroot/package/heimdal/heimdal.mk index 626e68e9..8199229c 100644 --- a/bsp/buildroot/package/heimdal/heimdal.mk +++ b/bsp/buildroot/package/heimdal/heimdal.mk @@ -6,7 +6,7 @@ HEIMDAL_VERSION = 1.6rc2 HEIMDAL_SITE = http://www.h5l.org/dist/src -HEIMDAL_DEPENDENCIES = host-e2fsprogs host-ncurses host-pkgconf +HOST_HEIMDAL_DEPENDENCIES = host-e2fsprogs host-ncurses host-pkgconf HEIMDAL_INSTALL_STAGING = YES # static because of -fPIC issues with e2fsprogs on x86_64 host HOST_HEIMDAL_CONF_OPTS = \ diff --git a/bsp/buildroot/package/hiawatha/hiawatha.hash b/bsp/buildroot/package/hiawatha/hiawatha.hash index af59e9f5..a5207a17 100644 --- a/bsp/buildroot/package/hiawatha/hiawatha.hash +++ b/bsp/buildroot/package/hiawatha/hiawatha.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 a39d1f771d818025538bd1231f42001bf29a1ebf55ce3d82afb7305cc251dd0e hiawatha-10.0.tar.gz +sha256 99d185fb16bb1ab706724494d3cac86464f1485ed4b0fff09a192eca6da5ff8e hiawatha-10.3.tar.gz diff --git a/bsp/buildroot/package/hiawatha/hiawatha.mk b/bsp/buildroot/package/hiawatha/hiawatha.mk index 411853bd..dc492160 100644 --- a/bsp/buildroot/package/hiawatha/hiawatha.mk +++ b/bsp/buildroot/package/hiawatha/hiawatha.mk @@ -4,7 +4,7 @@ # ################################################################################ -HIAWATHA_VERSION = 10.0 +HIAWATHA_VERSION = 10.3 HIAWATHA_SITE = http://www.hiawatha-webserver.org/files HIAWATHA_DEPENDENCIES = zlib HIAWATHA_LICENSE = GPLv2 diff --git a/bsp/buildroot/package/hidapi/0001-hidtest-dont-use-a-C-source-file-since-it-s-pure-C.patch b/bsp/buildroot/package/hidapi/0001-hidtest-dont-use-a-C-source-file-since-it-s-pure-C.patch index 3ea4fdb5..4740cb7b 100644 --- a/bsp/buildroot/package/hidapi/0001-hidtest-dont-use-a-C-source-file-since-it-s-pure-C.patch +++ b/bsp/buildroot/package/hidapi/0001-hidtest-dont-use-a-C-source-file-since-it-s-pure-C.patch @@ -8,10 +8,12 @@ C++ support. Signed-off-by: Thomas Petazzoni --- - hidtest/Makefile.am | 6 +++--- - hidtest/{hidtest.cpp => hidtest.c} | 0 - 2 files changed, 3 insertions(+), 3 deletions(-) - rename hidtest/{hidtest.cpp => hidtest.c} (100%) + hidtest/Makefile.am | 6 +- + hidtest/hidtest.c | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + hidtest/hidtest.cpp | 194 ---------------------------------------------------- + 3 files changed, 197 insertions(+), 197 deletions(-) + create mode 100644 hidtest/hidtest.c + delete mode 100644 hidtest/hidtest.cpp diff --git a/hidtest/Makefile.am b/hidtest/Makefile.am index d278644..5f52c3f 100644 @@ -38,10 +40,406 @@ index d278644..5f52c3f 100644 hidtest_LDADD = $(top_builddir)/$(backend)/libhidapi.la endif -diff --git a/hidtest/hidtest.cpp b/hidtest/hidtest.c -similarity index 100% -rename from hidtest/hidtest.cpp -rename to hidtest/hidtest.c +diff --git a/hidtest/hidtest.c b/hidtest/hidtest.c +new file mode 100644 +index 0000000..94f0a5c +--- /dev/null ++++ b/hidtest/hidtest.c +@@ -0,0 +1,194 @@ ++/******************************************************* ++ Windows HID simplification ++ ++ Alan Ott ++ Signal 11 Software ++ ++ 8/22/2009 ++ ++ Copyright 2009 ++ ++ This contents of this file may be used by anyone ++ for any reason without any conditions and may be ++ used as a starting point for your own applications ++ which use HIDAPI. ++********************************************************/ ++ ++#include ++#include ++#include ++#include ++#include "hidapi.h" ++ ++// Headers needed for sleeping. ++#ifdef _WIN32 ++ #include ++#else ++ #include ++#endif ++ ++int main(int argc, char* argv[]) ++{ ++ int res; ++ unsigned char buf[256]; ++ #define MAX_STR 255 ++ wchar_t wstr[MAX_STR]; ++ hid_device *handle; ++ int i; ++ ++#ifdef WIN32 ++ UNREFERENCED_PARAMETER(argc); ++ UNREFERENCED_PARAMETER(argv); ++#endif ++ ++ struct hid_device_info *devs, *cur_dev; ++ ++ if (hid_init()) ++ return -1; ++ ++ devs = hid_enumerate(0x0, 0x0); ++ cur_dev = devs; ++ while (cur_dev) { ++ printf("Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number); ++ printf("\n"); ++ printf(" Manufacturer: %ls\n", cur_dev->manufacturer_string); ++ printf(" Product: %ls\n", cur_dev->product_string); ++ printf(" Release: %hx\n", cur_dev->release_number); ++ printf(" Interface: %d\n", cur_dev->interface_number); ++ printf("\n"); ++ cur_dev = cur_dev->next; ++ } ++ hid_free_enumeration(devs); ++ ++ // Set up the command buffer. ++ memset(buf,0x00,sizeof(buf)); ++ buf[0] = 0x01; ++ buf[1] = 0x81; ++ ++ ++ // Open the device using the VID, PID, ++ // and optionally the Serial number. ++ ////handle = hid_open(0x4d8, 0x3f, L"12345"); ++ handle = hid_open(0x4d8, 0x3f, NULL); ++ if (!handle) { ++ printf("unable to open device\n"); ++ return 1; ++ } ++ ++ // Read the Manufacturer String ++ wstr[0] = 0x0000; ++ res = hid_get_manufacturer_string(handle, wstr, MAX_STR); ++ if (res < 0) ++ printf("Unable to read manufacturer string\n"); ++ printf("Manufacturer String: %ls\n", wstr); ++ ++ // Read the Product String ++ wstr[0] = 0x0000; ++ res = hid_get_product_string(handle, wstr, MAX_STR); ++ if (res < 0) ++ printf("Unable to read product string\n"); ++ printf("Product String: %ls\n", wstr); ++ ++ // Read the Serial Number String ++ wstr[0] = 0x0000; ++ res = hid_get_serial_number_string(handle, wstr, MAX_STR); ++ if (res < 0) ++ printf("Unable to read serial number string\n"); ++ printf("Serial Number String: (%d) %ls", wstr[0], wstr); ++ printf("\n"); ++ ++ // Read Indexed String 1 ++ wstr[0] = 0x0000; ++ res = hid_get_indexed_string(handle, 1, wstr, MAX_STR); ++ if (res < 0) ++ printf("Unable to read indexed string 1\n"); ++ printf("Indexed String 1: %ls\n", wstr); ++ ++ // Set the hid_read() function to be non-blocking. ++ hid_set_nonblocking(handle, 1); ++ ++ // Try to read from the device. There shoud be no ++ // data here, but execution should not block. ++ res = hid_read(handle, buf, 17); ++ ++ // Send a Feature Report to the device ++ buf[0] = 0x2; ++ buf[1] = 0xa0; ++ buf[2] = 0x0a; ++ buf[3] = 0x00; ++ buf[4] = 0x00; ++ res = hid_send_feature_report(handle, buf, 17); ++ if (res < 0) { ++ printf("Unable to send a feature report.\n"); ++ } ++ ++ memset(buf,0,sizeof(buf)); ++ ++ // Read a Feature Report from the device ++ buf[0] = 0x2; ++ res = hid_get_feature_report(handle, buf, sizeof(buf)); ++ if (res < 0) { ++ printf("Unable to get a feature report.\n"); ++ printf("%ls", hid_error(handle)); ++ } ++ else { ++ // Print out the returned buffer. ++ printf("Feature Report\n "); ++ for (i = 0; i < res; i++) ++ printf("%02hhx ", buf[i]); ++ printf("\n"); ++ } ++ ++ memset(buf,0,sizeof(buf)); ++ ++ // Toggle LED (cmd 0x80). The first byte is the report number (0x1). ++ buf[0] = 0x1; ++ buf[1] = 0x80; ++ res = hid_write(handle, buf, 17); ++ if (res < 0) { ++ printf("Unable to write()\n"); ++ printf("Error: %ls\n", hid_error(handle)); ++ } ++ ++ ++ // Request state (cmd 0x81). The first byte is the report number (0x1). ++ buf[0] = 0x1; ++ buf[1] = 0x81; ++ hid_write(handle, buf, 17); ++ if (res < 0) ++ printf("Unable to write() (2)\n"); ++ ++ // Read requested state. hid_read() has been set to be ++ // non-blocking by the call to hid_set_nonblocking() above. ++ // This loop demonstrates the non-blocking nature of hid_read(). ++ res = 0; ++ while (res == 0) { ++ res = hid_read(handle, buf, sizeof(buf)); ++ if (res == 0) ++ printf("waiting...\n"); ++ if (res < 0) ++ printf("Unable to read()\n"); ++ #ifdef WIN32 ++ Sleep(500); ++ #else ++ usleep(500*1000); ++ #endif ++ } ++ ++ printf("Data read:\n "); ++ // Print out the returned buffer. ++ for (i = 0; i < res; i++) ++ printf("%02hhx ", buf[i]); ++ printf("\n"); ++ ++ hid_close(handle); ++ ++ /* Free static HIDAPI objects. */ ++ hid_exit(); ++ ++#ifdef WIN32 ++ system("pause"); ++#endif ++ ++ return 0; ++} +diff --git a/hidtest/hidtest.cpp b/hidtest/hidtest.cpp +deleted file mode 100644 +index 94f0a5c..0000000 +--- a/hidtest/hidtest.cpp ++++ /dev/null +@@ -1,194 +0,0 @@ +-/******************************************************* +- Windows HID simplification +- +- Alan Ott +- Signal 11 Software +- +- 8/22/2009 +- +- Copyright 2009 +- +- This contents of this file may be used by anyone +- for any reason without any conditions and may be +- used as a starting point for your own applications +- which use HIDAPI. +-********************************************************/ +- +-#include +-#include +-#include +-#include +-#include "hidapi.h" +- +-// Headers needed for sleeping. +-#ifdef _WIN32 +- #include +-#else +- #include +-#endif +- +-int main(int argc, char* argv[]) +-{ +- int res; +- unsigned char buf[256]; +- #define MAX_STR 255 +- wchar_t wstr[MAX_STR]; +- hid_device *handle; +- int i; +- +-#ifdef WIN32 +- UNREFERENCED_PARAMETER(argc); +- UNREFERENCED_PARAMETER(argv); +-#endif +- +- struct hid_device_info *devs, *cur_dev; +- +- if (hid_init()) +- return -1; +- +- devs = hid_enumerate(0x0, 0x0); +- cur_dev = devs; +- while (cur_dev) { +- printf("Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number); +- printf("\n"); +- printf(" Manufacturer: %ls\n", cur_dev->manufacturer_string); +- printf(" Product: %ls\n", cur_dev->product_string); +- printf(" Release: %hx\n", cur_dev->release_number); +- printf(" Interface: %d\n", cur_dev->interface_number); +- printf("\n"); +- cur_dev = cur_dev->next; +- } +- hid_free_enumeration(devs); +- +- // Set up the command buffer. +- memset(buf,0x00,sizeof(buf)); +- buf[0] = 0x01; +- buf[1] = 0x81; +- +- +- // Open the device using the VID, PID, +- // and optionally the Serial number. +- ////handle = hid_open(0x4d8, 0x3f, L"12345"); +- handle = hid_open(0x4d8, 0x3f, NULL); +- if (!handle) { +- printf("unable to open device\n"); +- return 1; +- } +- +- // Read the Manufacturer String +- wstr[0] = 0x0000; +- res = hid_get_manufacturer_string(handle, wstr, MAX_STR); +- if (res < 0) +- printf("Unable to read manufacturer string\n"); +- printf("Manufacturer String: %ls\n", wstr); +- +- // Read the Product String +- wstr[0] = 0x0000; +- res = hid_get_product_string(handle, wstr, MAX_STR); +- if (res < 0) +- printf("Unable to read product string\n"); +- printf("Product String: %ls\n", wstr); +- +- // Read the Serial Number String +- wstr[0] = 0x0000; +- res = hid_get_serial_number_string(handle, wstr, MAX_STR); +- if (res < 0) +- printf("Unable to read serial number string\n"); +- printf("Serial Number String: (%d) %ls", wstr[0], wstr); +- printf("\n"); +- +- // Read Indexed String 1 +- wstr[0] = 0x0000; +- res = hid_get_indexed_string(handle, 1, wstr, MAX_STR); +- if (res < 0) +- printf("Unable to read indexed string 1\n"); +- printf("Indexed String 1: %ls\n", wstr); +- +- // Set the hid_read() function to be non-blocking. +- hid_set_nonblocking(handle, 1); +- +- // Try to read from the device. There shoud be no +- // data here, but execution should not block. +- res = hid_read(handle, buf, 17); +- +- // Send a Feature Report to the device +- buf[0] = 0x2; +- buf[1] = 0xa0; +- buf[2] = 0x0a; +- buf[3] = 0x00; +- buf[4] = 0x00; +- res = hid_send_feature_report(handle, buf, 17); +- if (res < 0) { +- printf("Unable to send a feature report.\n"); +- } +- +- memset(buf,0,sizeof(buf)); +- +- // Read a Feature Report from the device +- buf[0] = 0x2; +- res = hid_get_feature_report(handle, buf, sizeof(buf)); +- if (res < 0) { +- printf("Unable to get a feature report.\n"); +- printf("%ls", hid_error(handle)); +- } +- else { +- // Print out the returned buffer. +- printf("Feature Report\n "); +- for (i = 0; i < res; i++) +- printf("%02hhx ", buf[i]); +- printf("\n"); +- } +- +- memset(buf,0,sizeof(buf)); +- +- // Toggle LED (cmd 0x80). The first byte is the report number (0x1). +- buf[0] = 0x1; +- buf[1] = 0x80; +- res = hid_write(handle, buf, 17); +- if (res < 0) { +- printf("Unable to write()\n"); +- printf("Error: %ls\n", hid_error(handle)); +- } +- +- +- // Request state (cmd 0x81). The first byte is the report number (0x1). +- buf[0] = 0x1; +- buf[1] = 0x81; +- hid_write(handle, buf, 17); +- if (res < 0) +- printf("Unable to write() (2)\n"); +- +- // Read requested state. hid_read() has been set to be +- // non-blocking by the call to hid_set_nonblocking() above. +- // This loop demonstrates the non-blocking nature of hid_read(). +- res = 0; +- while (res == 0) { +- res = hid_read(handle, buf, sizeof(buf)); +- if (res == 0) +- printf("waiting...\n"); +- if (res < 0) +- printf("Unable to read()\n"); +- #ifdef WIN32 +- Sleep(500); +- #else +- usleep(500*1000); +- #endif +- } +- +- printf("Data read:\n "); +- // Print out the returned buffer. +- for (i = 0; i < res; i++) +- printf("%02hhx ", buf[i]); +- printf("\n"); +- +- hid_close(handle); +- +- /* Free static HIDAPI objects. */ +- hid_exit(); +- +-#ifdef WIN32 +- system("pause"); +-#endif +- +- return 0; +-} -- -2.6.4 +2.7.4 diff --git a/bsp/buildroot/package/hidapi/Config.in b/bsp/buildroot/package/hidapi/Config.in index 5119aac9..f6a31bac 100644 --- a/bsp/buildroot/package/hidapi/Config.in +++ b/bsp/buildroot/package/hidapi/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_HIDAPI bool "hidapi" depends on BR2_PACKAGE_HAS_UDEV - depends on BR2_TOOLCHAIN_HAS_THREADS # libusb + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBGUDEV select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE @@ -12,5 +12,5 @@ config BR2_PACKAGE_HIDAPI http://www.signal11.us/oss/hidapi/ -comment "hidapi needs udev /dev management and a toolchain w/ threads" - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_HAS_UDEV +comment "hidapi needs udev /dev management and a toolchain w/ NPTL threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_HAS_UDEV diff --git a/bsp/buildroot/package/hidapi/hidapi.hash b/bsp/buildroot/package/hidapi/hidapi.hash index ba00df2e..ed22c788 100644 --- a/bsp/buildroot/package/hidapi/hidapi.hash +++ b/bsp/buildroot/package/hidapi/hidapi.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 33e206f5e145fc1bc6aeb55084d71b55d686533d23ad5bb762746ceba81e728b hidapi-d17db57b9d4354752e0af42f5f33007a42ef2906.tar.gz +sha256 f2ffe5dbba12dfa0a647ae71b1ec5612fed4c20322ef6f6fd46f6f9713ed1a8e hidapi-b5b2e1779b6cd2edda3066bbbf0921a2d6b1c3c0.tar.gz diff --git a/bsp/buildroot/package/hidapi/hidapi.mk b/bsp/buildroot/package/hidapi/hidapi.mk index 270836c6..9922efc0 100644 --- a/bsp/buildroot/package/hidapi/hidapi.mk +++ b/bsp/buildroot/package/hidapi/hidapi.mk @@ -6,7 +6,7 @@ # Use master version as the current stable is very old and some bugs # have been fixed since then. -HIDAPI_VERSION = d17db57b9d4354752e0af42f5f33007a42ef2906 +HIDAPI_VERSION = b5b2e1779b6cd2edda3066bbbf0921a2d6b1c3c0 HIDAPI_SITE = $(call github,signal11,hidapi,$(HIDAPI_VERSION)) HIDAPI_INSTALL_STAGING = YES # No configure provided, so we need to autoreconf. diff --git a/bsp/buildroot/package/hostapd/0003-vlan-fix-musl-build-error.patch b/bsp/buildroot/package/hostapd/0003-vlan-fix-musl-build-error.patch new file mode 100644 index 00000000..da1ffcb7 --- /dev/null +++ b/bsp/buildroot/package/hostapd/0003-vlan-fix-musl-build-error.patch @@ -0,0 +1,60 @@ +From 67ba6ed9871b2cab16eeee93818f05d9c49ccbab Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Tue, 8 Mar 2016 12:05:01 +0100 +Subject: [PATCH] vlan: fix musl build error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +caddr_t is legacy BSD and should be avoided [1]. + +This fixes compile errors with the musl libc: + +../src/ap/vlan_init.c: In function 'br_delif': +../src/ap/vlan_init.c:218:18: error: '__caddr_t' undeclared (first use in this function) + ifr.ifr_data = (__caddr_t) args; + +Upstream status: Pending [2] + +[1] http://stackoverflow.com/questions/6381526/what-is-the-significance-of-caddr-t-and-when-is-it-used +[2] http://lists.infradead.org/pipermail/hostap/2016-March/035350.html + +Signed-off-by: Jörg Krause +--- + src/ap/vlan_init.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c +index fd1c8dd..1670c0d 100644 +--- a/src/ap/vlan_init.c ++++ b/src/ap/vlan_init.c +@@ -215,7 +215,7 @@ static int br_delif(const char *br_name, const char *if_name) + args[1] = if_index; + + os_strlcpy(ifr.ifr_name, br_name, sizeof(ifr.ifr_name)); +- ifr.ifr_data = (__caddr_t) args; ++ ifr.ifr_data = (void *) args; + + if (ioctl(fd, SIOCDEVPRIVATE, &ifr) < 0 && errno != EINVAL) { + /* No error if interface already removed. */ +@@ -266,7 +266,7 @@ static int br_addif(const char *br_name, const char *if_name) + args[1] = if_index; + + os_strlcpy(ifr.ifr_name, br_name, sizeof(ifr.ifr_name)); +- ifr.ifr_data = (__caddr_t) args; ++ ifr.ifr_data = (void *) args; + + if (ioctl(fd, SIOCDEVPRIVATE, &ifr) < 0) { + if (errno == EBUSY) { +@@ -394,7 +394,7 @@ static int br_getnumports(const char *br_name) + + os_memset(ifindices, 0, sizeof(ifindices)); + os_strlcpy(ifr.ifr_name, br_name, sizeof(ifr.ifr_name)); +- ifr.ifr_data = (__caddr_t) arg; ++ ifr.ifr_data = (void *) arg; + + if (ioctl(fd, SIOCDEVPRIVATE, &ifr) < 0) { + wpa_printf(MSG_ERROR, "VLAN: %s: BRCTL_GET_PORT_LIST " +-- +2.7.2 + diff --git a/bsp/buildroot/package/hostapd/0004-vlan-fix-musl-libc-conflict-with-Linux-kernel-header.patch b/bsp/buildroot/package/hostapd/0004-vlan-fix-musl-libc-conflict-with-Linux-kernel-header.patch new file mode 100644 index 00000000..3e753d61 --- /dev/null +++ b/bsp/buildroot/package/hostapd/0004-vlan-fix-musl-libc-conflict-with-Linux-kernel-header.patch @@ -0,0 +1,60 @@ +From 71a517e922c91e2c6cad28d339a081b5f6de0932 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Tue, 8 Mar 2016 21:07:12 +0100 +Subject: [PATCH] vlan: fix musl libc conflict with Linux kernel headers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Due to both (in "utils/includes.h") and (in +) being included, the in6_addr is being redefined: once from +the C library headers and once from the Linux kernel headers. This causes some +build failures with for example the musl C library: + +In file included from /usr/include/linux/if_bridge.h:18, + from ../src/ap/vlan_init.c:17: +/usr/include/linux/in6.h:32: error: redefinition of 'struct in6_addr' +/usr/include/linux/in6.h:49: error: redefinition of 'struct sockaddr_in6' +/usr/include/linux/in6.h:59: error: redefinition of 'struct ipv6_mreq' + +Mixing C library and Linux kernel headers is a bit problematic [1] and should be +avoided if possible [2]. In order to fix this, define just the macros needed +from as done in Busybox for the brctl applet [3]. + +Upstream status: Pending [4] + +[1] https://sourceware.org/bugzilla/show_bug.cgi?id=15850 +[2] http://www.openwall.com/lists/musl/2015/10/06/1 +[3] https://git.busybox.net/busybox/commit/?id=5fa6d1a632505789409a2ba6cf8e112529f9db18 +[4] http://lists.infradead.org/pipermail/hostap/2016-March/035357.html + +Signed-off-by: Jörg Krause +--- + src/ap/vlan_init.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c +index 1670c0d..f2e3da0 100644 +--- a/src/ap/vlan_init.c ++++ b/src/ap/vlan_init.c +@@ -14,7 +14,16 @@ + #include + #include + #include +-#include ++/* From */ ++#define BRCTL_GET_VERSION 0 ++#define BRCTL_GET_BRIDGES 1 ++#define BRCTL_ADD_BRIDGE 2 ++#define BRCTL_DEL_BRIDGE 3 ++#define BRCTL_ADD_IF 4 ++#define BRCTL_DEL_IF 5 ++#define BRCTL_GET_BRIDGE_INFO 6 ++#define BRCTL_GET_PORT_LIST 7 ++#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8 + #endif /* CONFIG_FULL_DYNAMIC_VLAN */ + + #include "utils/common.h" +-- +2.7.2 + diff --git a/bsp/buildroot/package/hostapd/0005-WPS-Reject-a-Credential-with-invalid-passphrase.patch b/bsp/buildroot/package/hostapd/0005-WPS-Reject-a-Credential-with-invalid-passphrase.patch new file mode 100644 index 00000000..282aa952 --- /dev/null +++ b/bsp/buildroot/package/hostapd/0005-WPS-Reject-a-Credential-with-invalid-passphrase.patch @@ -0,0 +1,85 @@ +From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 4 Mar 2016 17:20:18 +0200 +Subject: [PATCH] WPS: Reject a Credential with invalid passphrase + +WPA/WPA2-Personal passphrase is not allowed to include control +characters. Reject a Credential received from a WPS Registrar both as +STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or +WPA2PSK authentication type and includes an invalid passphrase. + +This fixes an issue where hostapd or wpa_supplicant could have updated +the configuration file PSK/passphrase parameter with arbitrary data from +an external device (Registrar) that may not be fully trusted. Should +such data include a newline character, the resulting configuration file +could become invalid and fail to be parsed. + +Signed-off-by: Jouni Malinen +Signed-off-by: Baruch Siach +--- +Patch status: upstream (ecbb0b3dc122b0d290987cf9c84010bbe53e1022) + + src/utils/common.c | 12 ++++++++++++ + src/utils/common.h | 1 + + src/wps/wps_attr_process.c | 10 ++++++++++ + 3 files changed, 23 insertions(+) + +diff --git a/src/utils/common.c b/src/utils/common.c +index 450e2c6519ba..27b7c02de10b 100644 +--- a/src/utils/common.c ++++ b/src/utils/common.c +@@ -697,6 +697,18 @@ int is_hex(const u8 *data, size_t len) + } + + ++int has_ctrl_char(const u8 *data, size_t len) ++{ ++ size_t i; ++ ++ for (i = 0; i < len; i++) { ++ if (data[i] < 32 || data[i] == 127) ++ return 1; ++ } ++ return 0; ++} ++ ++ + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len) +diff --git a/src/utils/common.h b/src/utils/common.h +index 701dbb236ed5..a97224070385 100644 +--- a/src/utils/common.h ++++ b/src/utils/common.h +@@ -488,6 +488,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len); + + char * wpa_config_parse_string(const char *value, size_t *len); + int is_hex(const u8 *data, size_t len); ++int has_ctrl_char(const u8 *data, size_t len); + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len); +diff --git a/src/wps/wps_attr_process.c b/src/wps/wps_attr_process.c +index eadb22fe2e78..e8c4579309ab 100644 +--- a/src/wps/wps_attr_process.c ++++ b/src/wps/wps_attr_process.c +@@ -229,6 +229,16 @@ static int wps_workaround_cred_key(struct wps_credential *cred) + cred->key_len--; + #endif /* CONFIG_WPS_STRICT */ + } ++ ++ ++ if (cred->auth_type & (WPS_AUTH_WPAPSK | WPS_AUTH_WPA2PSK) && ++ (cred->key_len < 8 || has_ctrl_char(cred->key, cred->key_len))) { ++ wpa_printf(MSG_INFO, "WPS: Reject credential with invalid WPA/WPA2-Personal passphrase"); ++ wpa_hexdump_ascii_key(MSG_INFO, "WPS: Network Key", ++ cred->key, cred->key_len); ++ return -1; ++ } ++ + return 0; + } + +-- +2.8.1 + diff --git a/bsp/buildroot/package/hostapd/hostapd.mk b/bsp/buildroot/package/hostapd/hostapd.mk index dca07c1b..5aa2b9a9 100644 --- a/bsp/buildroot/package/hostapd/hostapd.mk +++ b/bsp/buildroot/package/hostapd/hostapd.mk @@ -86,6 +86,8 @@ define HOSTAPD_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/sbin/hostapd $(INSTALL) -m 0755 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd_cli \ $(TARGET_DIR)/usr/bin/hostapd_cli + $(INSTALL) -m 0644 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd.conf \ + $(TARGET_DIR)/etc/hostapd.conf endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/hplip/Config.in b/bsp/buildroot/package/hplip/Config.in index 75656715..176dc6a6 100644 --- a/bsp/buildroot/package/hplip/Config.in +++ b/bsp/buildroot/package/hplip/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_HPLIP depends on BR2_INSTALL_LIBSTDCPP depends on BR2_PACKAGE_CUPS depends on BR2_TOOLCHAIN_HAS_THREADS # libusb + depends on !BR2_STATIC_LIBS # libdl select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_JPEG help @@ -15,6 +16,7 @@ config BR2_PACKAGE_HPLIP http://hplipopensource.com/ -comment "hplip needs a toolchain w/ C++, threads" +comment "hplip needs a toolchain w/ C++, threads, dynamic library" depends on BR2_PACKAGE_CUPS - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/hplip/hplip.mk b/bsp/buildroot/package/hplip/hplip.mk index b1e8cb55..d70e2e92 100644 --- a/bsp/buildroot/package/hplip/hplip.mk +++ b/bsp/buildroot/package/hplip/hplip.mk @@ -27,6 +27,9 @@ HPLIP_CONF_OPTS = \ --enable-new-hpcups \ --enable-lite-build +# build system does not support cups-config +HPLIP_CONF_ENV = LIBS=`$(STAGING_DIR)/usr/bin/cups-config --libs` + ifeq ($(BR2_PACKAGE_DBUS),y) HPLIP_CONF_OPTS += --enable-dbus-build HPLIP_DEPENDENCIES += dbus diff --git a/bsp/buildroot/package/htop/0001-native-affinity.patch b/bsp/buildroot/package/htop/0001-native-affinity.patch deleted file mode 100644 index bf68e53e..00000000 --- a/bsp/buildroot/package/htop/0001-native-affinity.patch +++ /dev/null @@ -1,25 +0,0 @@ -# This patch removes the check for native_affinity for cross compiling. -# This patch has been pushed to htop on 23 November 2011, however, is -# not in the 1.0 release and may not be exactly what Hisham puts into -# the official build. -# -# Signed-off-by: Andy Kennedy -diff -Naur a/configure.ac b/configure.ac ---- a/configure.ac 2011-11-20 20:46:48.000000000 -0600 -+++ b/configure.ac 2011-11-23 10:41:44.000000000 -0600 -@@ -111,7 +111,6 @@ - if test "$cross_compiling" = "no"; then - AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.)) - AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.)) --fi - - AC_ARG_ENABLE(native_affinity, [AC_HELP_STRING([--enable-native-affinity], [enable native sched_setaffinity and sched_getaffinity for affinity support, disables hwloc])], ,enable_native_affinity="yes") - if test "x$enable_native_affinity" = xyes; then -@@ -130,6 +129,7 @@ - AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) - fi -+fi - - AC_ARG_ENABLE(hwloc, [AC_HELP_STRING([--enable-hwloc], [enable hwloc support for CPU affinity])],, enable_hwloc="no") - if test "x$enable_hwloc" = xyes diff --git a/bsp/buildroot/package/htop/htop.hash b/bsp/buildroot/package/htop/htop.hash index 41d5a2ed..cfea23f9 100644 --- a/bsp/buildroot/package/htop/htop.hash +++ b/bsp/buildroot/package/htop/htop.hash @@ -1,2 +1,3 @@ -# From http://www.freelists.org/post/htop/ANN-htop-103 -md5 e768b9b55c033d9c1dffda72db3a6ac7 htop-1.0.3.tar.gz +# Hashes from: http://www.freelists.org/post/htop/ANN-htop-202 +md5 7d354d904bad591a931ad57e99fea84a htop-2.0.2.tar.gz +sha1 201f793f13dce2448e36047079875b9bd5bba75a htop-2.0.2.tar.gz diff --git a/bsp/buildroot/package/htop/htop.mk b/bsp/buildroot/package/htop/htop.mk index 629b04cd..7409a78e 100644 --- a/bsp/buildroot/package/htop/htop.mk +++ b/bsp/buildroot/package/htop/htop.mk @@ -4,13 +4,12 @@ # ################################################################################ -HTOP_VERSION = 1.0.3 +HTOP_VERSION = 2.0.2 HTOP_SITE = http://hisham.hm/htop/releases/$(HTOP_VERSION) HTOP_DEPENDENCIES = ncurses -# For htop-01-native-affinity.patch -HTOP_AUTORECONF = YES HTOP_CONF_OPTS = --disable-unicode -HTOP_CONF_ENV = ac_cv_file__proc_stat=yes ac_cv_file__proc_meminfo=yes +# Prevent htop build system from searching the host paths +HTOP_CONF_ENV = HTOP_NCURSES_CONFIG_SCRIPT=$(STAGING_DIR)/usr/bin/ncurses5-config HTOP_LICENSE = GPLv2 HTOP_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/i2c-tools/Config.in b/bsp/buildroot/package/i2c-tools/Config.in index e83dbd65..b82c7dcd 100644 --- a/bsp/buildroot/package/i2c-tools/Config.in +++ b/bsp/buildroot/package/i2c-tools/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_I2C_TOOLS bool "i2c-tools" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Heterogeneous set of I2C tools for Linux diff --git a/bsp/buildroot/package/i2c-tools/i2c-tools.hash b/bsp/buildroot/package/i2c-tools/i2c-tools.hash deleted file mode 100644 index c12ffe84..00000000 --- a/bsp/buildroot/package/i2c-tools/i2c-tools.hash +++ /dev/null @@ -1,2 +0,0 @@ -# locally computed hash -sha256 db5e69f2e2a6e3aa2ecdfe6a5f490b149c504468770f58921c8c5b8a7860a441 i2c-tools-3.1.2.tar.bz2 diff --git a/bsp/buildroot/package/i2c-tools/i2c-tools.mk b/bsp/buildroot/package/i2c-tools/i2c-tools.mk index 187bd097..e16b940c 100644 --- a/bsp/buildroot/package/i2c-tools/i2c-tools.mk +++ b/bsp/buildroot/package/i2c-tools/i2c-tools.mk @@ -4,9 +4,8 @@ # ################################################################################ -I2C_TOOLS_VERSION = 3.1.2 -I2C_TOOLS_SOURCE = i2c-tools-$(I2C_TOOLS_VERSION).tar.bz2 -I2C_TOOLS_SITE = http://dl.lm-sensors.org/i2c-tools/releases +I2C_TOOLS_VERSION = v3.1.2 +I2C_TOOLS_SITE = git://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git I2C_TOOLS_LICENSE = GPLv2+, GPLv2 (py-smbus) I2C_TOOLS_LICENSE_FILES = COPYING @@ -18,6 +17,10 @@ ifeq ($(BR2_PACKAGE_PYTHON3),y) I2C_TOOLS_DEPENDENCIES += python3 endif +ifeq ($(BR2_PACKAGE_BUSYBOX),y) +I2C_TOOLS_DEPENDENCIES += busybox +endif + # Build/install steps mirror the distutil python package type in the python package # infrastructure ifeq ($(BR2_PACKAGE_PYTHON)$(BR2_PACKAGE_PYTHON3),y) @@ -50,7 +53,7 @@ endef define I2C_TOOLS_INSTALL_TARGET_CMDS for i in i2cdump i2cget i2cset i2cdetect; \ do \ - $(INSTALL) -m 755 -D $(@D)/tools/$$i $(TARGET_DIR)/usr/bin/$$i; \ + $(INSTALL) -m 755 -D $(@D)/tools/$$i $(TARGET_DIR)/usr/sbin/$$i; \ done $(I2C_TOOLS_INSTALL_PYSMBUS) endef diff --git a/bsp/buildroot/package/i7z/Config.in b/bsp/buildroot/package/i7z/Config.in new file mode 100644 index 00000000..eea74f2f --- /dev/null +++ b/bsp/buildroot/package/i7z/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_I7Z + bool "i7z" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_NCURSES + help + "A better i7 (and now i3, i5) reporting tool for Linux." + + i7z can print out the C-states and temperature for i3, i5 + and i7 based Core processors from Intel (including Nehalems, + Sandy Bridge and Ivy Bridge). + + https://github.com/ajaiantilal/i7z + +comment "i7z needs a toolchain w/ threads" + depends on BR2_i386 || BR2_x86_64 + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/i7z/i7z.hash b/bsp/buildroot/package/i7z/i7z.hash new file mode 100644 index 00000000..1bcf2c63 --- /dev/null +++ b/bsp/buildroot/package/i7z/i7z.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 e127bddf850e7febd39cef2d2b13dca5fe19cc2a1bb1099d72b683be5d8bd1c0 i7z-5023138d7c35c4667c938b853e5ea89737334e92.tar.gz diff --git a/bsp/buildroot/package/i7z/i7z.mk b/bsp/buildroot/package/i7z/i7z.mk new file mode 100644 index 00000000..e21fd9fb --- /dev/null +++ b/bsp/buildroot/package/i7z/i7z.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# i7z +# +################################################################################ + +I7Z_VERSION = 5023138d7c35c4667c938b853e5ea89737334e92 +I7Z_SITE = $(call github,ajaiantilal,i7z,$(I7Z_VERSION)) +I7Z_LICENSE = GPLv2 +I7Z_LICENSE_FILES = COPYING +I7Z_DEPENDENCIES = ncurses + +define I7Z_BUILD_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) +endef + +define I7Z_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install \ + DESTDIR="$(TARGET_DIR)" +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/icu/0006-fix-Error-allocating-memory-for-pkgDataFlags.-compil.patch b/bsp/buildroot/package/icu/0006-fix-Error-allocating-memory-for-pkgDataFlags.-compil.patch deleted file mode 100644 index d53a7617..00000000 --- a/bsp/buildroot/package/icu/0006-fix-Error-allocating-memory-for-pkgDataFlags.-compil.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 212016f27dd581fd7bef1a44a3342c59619a4ec8 Mon Sep 17 00:00:00 2001 -From: Zoltan Gyarmati -Date: Wed, 27 Jan 2016 17:24:25 +0100 -Subject: [PATCH] fix "Error allocating memory for pkgDataFlags." compilation - error - - This is backport of the upstream icu commit 38081 -(http://bugs.icu-project.org/trac/changeset/38081/icu/trunk), which is -a fix to upstream icu bug #11959 -(http://bugs.icu-project.org/trac/ticket/11959) - -Signed-off-by: Zoltan Gyarmati ---- - source/tools/toolutil/flagparser.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/source/tools/toolutil/flagparser.c b/source/tools/toolutil/flagparser.c -index 5543415..57256c3 100644 ---- a/source/tools/toolutil/flagparser.c -+++ b/source/tools/toolutil/flagparser.c -@@ -96,8 +96,8 @@ parseFlagsFile_cleanup: - uprv_free(buffer); - - T_FileStream_close(f); -- -- if (U_FAILURE(*status)) { -+ -+ if (U_FAILURE(*status) && *status != U_BUFFER_OVERFLOW_ERROR) { - return -1; - } - --- -1.9.1 - diff --git a/bsp/buildroot/package/icu/icu.hash b/bsp/buildroot/package/icu/icu.hash index e9f82b15..4233ba39 100644 --- a/bsp/buildroot/package/icu/icu.hash +++ b/bsp/buildroot/package/icu/icu.hash @@ -1,4 +1,4 @@ -# From https://ssl.icu-project.org/files/icu4c/56.1/icu4c-src-56_1.md5 -md5 c4a2d71ff56aec5ebfab2a3f059be99d icu4c-56_1-src.tgz +# From https://ssl.icu-project.org/files/icu4c/57.1/icu4c-src-57_1.md5 +md5 976734806026a4ef8bdd17937c8898b9 icu4c-57_1-src.tgz # Calculated based on the hash above -sha256 3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816 icu4c-56_1-src.tgz +sha256 ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581 icu4c-57_1-src.tgz diff --git a/bsp/buildroot/package/icu/icu.mk b/bsp/buildroot/package/icu/icu.mk index b4574e5b..3b40dfbd 100644 --- a/bsp/buildroot/package/icu/icu.mk +++ b/bsp/buildroot/package/icu/icu.mk @@ -4,7 +4,7 @@ # ################################################################################ -ICU_VERSION = 56.1 +ICU_VERSION = 57.1 ICU_SOURCE = icu4c-$(subst .,_,$(ICU_VERSION))-src.tgz ICU_SITE = http://download.icu-project.org/files/icu4c/$(ICU_VERSION) ICU_LICENSE = ICU License @@ -21,7 +21,7 @@ ICU_CONF_OPTS = \ # When available, icu prefers to use C++11 atomics, which rely on the # __atomic builtins. On certain architectures, this requires linking # with libatomic starting from gcc 4.8. -ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8),y) +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) ICU_CONF_ENV += LIBS="-latomic" endif @@ -44,5 +44,12 @@ endef ICU_POST_PATCH_HOOKS += ICU_COPY_CUSTOM_DATA endif +define ICU_REMOVE_DEV_FILES + rm -f $(addprefix $(TARGET_DIR)/usr/bin/,derb genbrk gencfu gencnval gendict genrb icuinfo makeconv uconv) + rm -f $(addprefix $(TARGET_DIR)/usr/sbin/,genccode gencmn gennorm2 gensprep icupkg) + rm -rf $(TARGET_DIR)/usr/share/icu +endef +ICU_POST_INSTALL_TARGET_HOOKS += ICU_REMOVE_DEV_FILES + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/ifplugd/Config.in b/bsp/buildroot/package/ifplugd/Config.in index cbb5128c..c4b5b5b9 100644 --- a/bsp/buildroot/package/ifplugd/Config.in +++ b/bsp/buildroot/package/ifplugd/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_IFPLUGD bool "ifplugd" # libdaemon uses fork() depends on BR2_USE_MMU + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_LIBDAEMON help Ifplugd is a daemon which will automatically configure your diff --git a/bsp/buildroot/package/ifupdown/Config.in b/bsp/buildroot/package/ifupdown/Config.in index 1e11e4ee..e6832017 100644 --- a/bsp/buildroot/package/ifupdown/Config.in +++ b/bsp/buildroot/package/ifupdown/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_IFUPDOWN depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # iproute2 # Default/our uclibc lacks wordexp() depends on !BR2_TOOLCHAIN_USES_UCLIBC + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # runtime for ip binary select BR2_PACKAGE_IPROUTE2 if !BR2_PACKAGE_BUSYBOX # runtime for run-parts @@ -13,7 +14,8 @@ config BR2_PACKAGE_IFUPDOWN https://tracker.debian.org/pkg/ifupdown -comment "ifupdown needs an (e)glibc or musl toolchain w/ headers >= 3.0" +comment "ifupdown needs a glibc or musl toolchain w/ headers >= 3.0" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_USES_UCLIBC || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/ifupdown/ifupdown.hash b/bsp/buildroot/package/ifupdown/ifupdown.hash index 02dfd2b6..5f59d281 100644 --- a/bsp/buildroot/package/ifupdown/ifupdown.hash +++ b/bsp/buildroot/package/ifupdown/ifupdown.hash @@ -1,2 +1,2 @@ -# From http://ftp.de.debian.org/debian/pool/main/i/ifupdown/ifupdown_0.8.2.dsc -sha256 edb08f935fea9bc376c3faa0140c04c7a4d4ef5f22fd280ec4060386a75df10b ifupdown_0.8.2.tar.xz +# From http://ftp.de.debian.org/debian/pool/main/i/ifupdown/ifupdown_0.8.13.dsc +sha256 90938bf6a2bb31b0ed4d8b2be71beb909c334af64c9284b3f50820cbaeff49b6 ifupdown_0.8.13.tar.xz diff --git a/bsp/buildroot/package/ifupdown/ifupdown.mk b/bsp/buildroot/package/ifupdown/ifupdown.mk index 7fbd0036..156496b2 100644 --- a/bsp/buildroot/package/ifupdown/ifupdown.mk +++ b/bsp/buildroot/package/ifupdown/ifupdown.mk @@ -4,9 +4,9 @@ # ################################################################################ -IFUPDOWN_VERSION = 0.8.2 +IFUPDOWN_VERSION = 0.8.13 IFUPDOWN_SOURCE = ifupdown_$(IFUPDOWN_VERSION).tar.xz -IFUPDOWN_SITE = http://snapshot.debian.org/archive/debian/20151205T042642Z/pool/main/i/ifupdown +IFUPDOWN_SITE = http://snapshot.debian.org/archive/debian/20160604T232714Z/pool/main/i/ifupdown IFUPDOWN_DEPENDENCIES = $(if $(BR2_PACKAGE_BUSYBOX),busybox) IFUPDOWN_LICENSE = GPLv2+ IFUPDOWN_LICENSE_FILES = COPYING @@ -23,4 +23,13 @@ define IFUPDOWN_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) BASEDIR=$(TARGET_DIR) -C $(@D) install endef +# We need to switch from /bin/ip to /sbin/ip +IFUPDOWN_DEFN_FILES = can inet inet6 ipx link meta +define IFUPDOWN_MAKE_IP_IN_SBIN + for f in $(IFUPDOWN_DEFN_FILES) ; do \ + $(SED) 's,/bin/ip,/sbin/ip,' $(@D)/$$f.defn ; \ + done +endef +IFUPDOWN_POST_PATCH_HOOKS += IFUPDOWN_MAKE_IP_IN_SBIN + $(eval $(generic-package)) diff --git a/bsp/buildroot/package/igd2-for-linux/Config.in b/bsp/buildroot/package/igd2-for-linux/Config.in new file mode 100644 index 00000000..157cc6f3 --- /dev/null +++ b/bsp/buildroot/package/igd2-for-linux/Config.in @@ -0,0 +1,25 @@ +config BR2_PACKAGE_IGD2_FOR_LINUX + bool "igd2-for-linux" + depends on BR2_USE_MMU # fork() + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_WCHAR + select BR2_PACKAGE_IPTABLES # runtime + select BR2_PACKAGE_LIBUPNP + help + This is The Linux UPnP Internet Gateway Device 2. It is + modified from the original Linux UPnP Internet Gateway Device + [http://linux-igd.sourceforge.net/] according to UPnP + InternetGatewayDevice:2 specifications. + + It implements the UPnP Internet Gateway Device version 2 + specification (IGDv2) and allows UPnP aware clients, such as + MSN Messenger, Azureus or Miranda to work properly from behind + a NAT firewall. + + Please edit /etc/upnpd.conf before using upnpd! + + https://github.com/ffontaine/igd2-for-linux + +comment "igd2-for-linux needs a toolchain w/ threads, wchar" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/igd2-for-linux/S99upnpd b/bsp/buildroot/package/igd2-for-linux/S99upnpd new file mode 100644 index 00000000..c023fa47 --- /dev/null +++ b/bsp/buildroot/package/igd2-for-linux/S99upnpd @@ -0,0 +1,67 @@ +#!/bin/sh + +NAME=upnpd +PIDFILE=/var/run/$NAME.pid +DAEMON=/usr/sbin/$NAME +CFGFILE=/etc/default/$NAME + +LAN=eth0 +WAN=eth0 + +# For the UPnP library to function correctly, networking must be configured +# properly for multicasting as described in +# https://sourceforge.net/p/pupnp/code/ci/master/tree/README. +# Without this addition, device advertisements and control point searches will +# not function. +# However, the route has to be configured once for all UPnP applications +# (igd2-for-linux, ushare, ...) so do not manage UPnP route by default +MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN=0 + +# Read configuration variable file if it is present +if [ -f $CFGFILE ]; then + . $CFGFILE +fi + +DAEMON_ARGS="-f $WAN $LAN" + +start() { + if [ $MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN != 0 ]; then + printf "Add UPnP multicast route on $LAN\n" + route add -net 239.0.0.0 netmask 255.0.0.0 $LAN + fi + printf "Starting $NAME: " + start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} + +stop() { + printf "Stopping $NAME: " + start-stop-daemon -K -q -p $PIDFILE + [ $? = 0 ] && echo "OK" || echo "FAIL" + if [ $MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN != 0 ]; then + printf "Remove UPnP multicast route on $LAN\n" + route del -net 239.0.0.0 netmask 255.0.0.0 $LAN + fi +} + +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/igd2-for-linux/igd2-for-linux.hash b/bsp/buildroot/package/igd2-for-linux/igd2-for-linux.hash new file mode 100644 index 00000000..f1c9a7bd --- /dev/null +++ b/bsp/buildroot/package/igd2-for-linux/igd2-for-linux.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 523545a26b0d662e9f6913bec2518df6e70f4d497935d88983d994336a1b0ea9 igd2-for-linux-v1.2.tar.gz diff --git a/bsp/buildroot/package/igd2-for-linux/igd2-for-linux.mk b/bsp/buildroot/package/igd2-for-linux/igd2-for-linux.mk new file mode 100644 index 00000000..8944c052 --- /dev/null +++ b/bsp/buildroot/package/igd2-for-linux/igd2-for-linux.mk @@ -0,0 +1,48 @@ +################################################################################ +# +# igd2-for-linux +# +################################################################################ + +IGD2_FOR_LINUX_VERSION = v1.2 +IGD2_FOR_LINUX_SITE = $(call github,ffontaine,igd2-for-linux,$(IGD2_FOR_LINUX_VERSION)) + +IGD2_FOR_LINUX_LICENSE = GPLv2 +IGD2_FOR_LINUX_LICENSE_FILES = linuxigd2/doc/LICENSE + +IGD2_FOR_LINUX_DEPENDENCIES = libupnp + +IGD2_FOR_LINUX_BUILD_DIR = $(@D)/linuxigd2 +IGD2_FOR_LINUX_CONF_DIR = $(IGD2_FOR_LINUX_BUILD_DIR)/configs + +define IGD2_FOR_LINUX_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(IGD2_FOR_LINUX_BUILD_DIR) \ + $(TARGET_CONFIGURE_OPTS) \ + LIBUPNP_PREFIX="$(STAGING_DIR)/usr" \ + all +endef + +define IGD2_FOR_LINUX_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(IGD2_FOR_LINUX_BUILD_DIR)/bin/upnpd \ + $(TARGET_DIR)/usr/sbin/upnpd + $(INSTALL) -D -m 0644 $(IGD2_FOR_LINUX_CONF_DIR)/upnpd.conf \ + $(TARGET_DIR)/etc/upnpd.conf + mkdir -p $(TARGET_DIR)/etc/linuxigd/ + cp -dpfr $(IGD2_FOR_LINUX_CONF_DIR)/*.{xml,png} \ + $(TARGET_DIR)/etc/linuxigd/ +endef + +define IGD2_FOR_LINUX_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/igd2-for-linux/S99upnpd \ + $(TARGET_DIR)/etc/init.d/S99upnpd +endef + +define IGD2_FOR_LINUX_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 0644 package/igd2-for-linux/upnpd.service \ + $(TARGET_DIR)/usr/lib/systemd/system/upnpd.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../../usr/lib/systemd/system/upnpd.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/upnpd.service +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/igd2-for-linux/upnpd.service b/bsp/buildroot/package/igd2-for-linux/upnpd.service new file mode 100644 index 00000000..91a5b4ca --- /dev/null +++ b/bsp/buildroot/package/igd2-for-linux/upnpd.service @@ -0,0 +1,22 @@ +[Unit] +Description=UPnP Internet Gateway Device version 2 daemon +After=network.target + +[Service] +Environment="LAN=eth0" +Environment="WAN=eth0" +EnvironmentFile=/etc/default/upnpd +# For the UPnP library to function correctly, networking must be configured +# properly for multicasting as described in +# https://sourceforge.net/p/pupnp/code/ci/master/tree/README. +# Without this addition, device advertisements and control point searches will +# not function. +# However, the route has to be configured once for all UPnP applications +# (igd2-for-linux, ushare, ...) so do not manage UPnP route by default +#ExecStartPre=/sbin/route add -net 239.0.0.0 netmask 255.0.0.0 $LAN +#ExecStopPost=/sbin/route del -net 239.0.0.0 netmask 255.0.0.0 $LAN +ExecStart=/usr/sbin/upnpd -f $WAN $LAN +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/bsp/buildroot/package/igmpproxy/0001-uclinux.patch b/bsp/buildroot/package/igmpproxy/0001-uclinux.patch deleted file mode 100644 index 7fa4a238..00000000 --- a/bsp/buildroot/package/igmpproxy/0001-uclinux.patch +++ /dev/null @@ -1,16 +0,0 @@ -configure.ac: uclinux is also linux - -Signed-off-by: Gustavo Zacarias - -diff -Nura igmpproxy-0.1.orig/configure.ac igmpproxy-0.1/configure.ac ---- igmpproxy-0.1.orig/configure.ac 2014-03-12 18:43:02.369323771 -0300 -+++ igmpproxy-0.1/configure.ac 2014-03-12 18:43:22.129979179 -0300 -@@ -7,7 +7,7 @@ - - AC_CANONICAL_HOST - case $host_os in -- linux*) os=linux;; -+ linux*|uclinux*) os=linux;; - freebsd*) os=freebsd;; - netbsd*) os=netbsd;; - openbsd*) os=openbsd;; diff --git a/bsp/buildroot/package/igmpproxy/Config.in b/bsp/buildroot/package/igmpproxy/Config.in index a9e4c1cc..37f39b28 100644 --- a/bsp/buildroot/package/igmpproxy/Config.in +++ b/bsp/buildroot/package/igmpproxy/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_IGMPPROXY bool "igmpproxy" + depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR help A simple dynamic Multicast Routing Daemon @@ -10,4 +11,5 @@ config BR2_PACKAGE_IGMPPROXY http://sourceforge.net/projects/igmpproxy/ comment "igmpproxy needs a toolchain w/ wchar" + depends on BR2_USE_MMU depends on !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/igmpproxy/igmpproxy.hash b/bsp/buildroot/package/igmpproxy/igmpproxy.hash index f7d3b1eb..98dc242f 100644 --- a/bsp/buildroot/package/igmpproxy/igmpproxy.hash +++ b/bsp/buildroot/package/igmpproxy/igmpproxy.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 ee18ff3d8c3ae3a29dccb7e5eedf332337330020168bd95a11cece8d7d7ee6ae igmpproxy-0.1.tar.gz +sha256 2be2171cf273678810283937f7752dc9b8402456d0a03ee55f06ca52fadf075f igmpproxy-a731683d1a65956fa05024b0597b105fe6a3a122.tar.gz diff --git a/bsp/buildroot/package/igmpproxy/igmpproxy.mk b/bsp/buildroot/package/igmpproxy/igmpproxy.mk index cdf3774b..98168721 100644 --- a/bsp/buildroot/package/igmpproxy/igmpproxy.mk +++ b/bsp/buildroot/package/igmpproxy/igmpproxy.mk @@ -4,9 +4,8 @@ # ################################################################################ -IGMPPROXY_VERSION = 0.1 -IGMPPROXY_SITE = http://downloads.sourceforge.net/project/igmpproxy/igmpproxy/$(IGMPPROXY_VERSION) -# igmpproxy-01-uclinux.patch +IGMPPROXY_VERSION = a731683d1a65956fa05024b0597b105fe6a3a122 +IGMPPROXY_SITE = $(call github,pali,igmpproxy,$(IGMPPROXY_VERSION)) IGMPPROXY_AUTORECONF = YES IGMPPROXY_LICENSE = GPLv2+ IGMPPROXY_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/imagemagick/imagemagick.hash b/bsp/buildroot/package/imagemagick/imagemagick.hash index 31ddfd24..dcbef18d 100644 --- a/bsp/buildroot/package/imagemagick/imagemagick.hash +++ b/bsp/buildroot/package/imagemagick/imagemagick.hash @@ -1,2 +1,2 @@ # From http://www.imagemagick.org/download/releases/digest.rdf -sha256 d127f76c674f1454adf0444ecec96f344c3dca522cc3320f0ef88d8060123048 ImageMagick-6.9.3-3.tar.xz +sha256 22df4f197985f36f77b7b0d44de92ff44415885045f0191b3319540bdc82ff53 ImageMagick-7.0.2-9.tar.xz diff --git a/bsp/buildroot/package/imagemagick/imagemagick.mk b/bsp/buildroot/package/imagemagick/imagemagick.mk index 639b0e85..373765c6 100644 --- a/bsp/buildroot/package/imagemagick/imagemagick.mk +++ b/bsp/buildroot/package/imagemagick/imagemagick.mk @@ -4,7 +4,7 @@ # ################################################################################ -IMAGEMAGICK_VERSION = 6.9.3-3 +IMAGEMAGICK_VERSION = 7.0.2-9 IMAGEMAGICK_SOURCE = ImageMagick-$(IMAGEMAGICK_VERSION).tar.xz IMAGEMAGICK_SITE = http://www.imagemagick.org/download/releases IMAGEMAGICK_LICENSE = Apache-2.0 @@ -12,7 +12,7 @@ IMAGEMAGICK_LICENSE_FILES = LICENSE IMAGEMAGICK_INSTALL_STAGING = YES IMAGEMAGICK_CONFIG_SCRIPTS = \ - $(addsuffix -config,Magick MagickCore MagickWand Wand) + $(addsuffix -config,MagickCore MagickWand) ifeq ($(BR2_INSTALL_LIBSTDCPP)$(BR2_USE_WCHAR),yy) IMAGEMAGICK_CONFIG_SCRIPTS += Magick++-config @@ -23,17 +23,20 @@ IMAGEMAGICK_CONF_ENV = ac_cv_sys_file_offset_bits=64 IMAGEMAGICK_CONF_OPTS = \ --program-transform-name='s,,,' \ --disable-openmp \ - --without-perl \ - --without-wmf \ - --without-openexr \ - --without-jp2 \ - --without-jbig \ - --without-gvc \ --without-djvu \ --without-dps \ - --without-gslib \ + --without-flif \ --without-fpx \ - --without-x + --without-gslib \ + --without-gvc \ + --without-jbig \ + --without-lqr \ + --without-openexr \ + --without-perl \ + --without-raqm \ + --without-wmf \ + --without-x \ + --with-gs-font-dir=/usr/share/fonts/gs IMAGEMAGICK_DEPENDENCIES = host-pkgconf @@ -89,6 +92,13 @@ else IMAGEMAGICK_CONF_OPTS += --without-xml endif +ifeq ($(BR2_PACKAGE_PANGO),y) +IMAGEMAGICK_CONF_OPTS += --with-pango +IMAGEMAGICK_DEPENDENCIES += pango +else +IMAGEMAGICK_CONF_OPTS += --without-pango +endif + ifeq ($(BR2_PACKAGE_TIFF),y) IMAGEMAGICK_CONF_OPTS += --with-tiff IMAGEMAGICK_DEPENDENCIES += tiff @@ -96,6 +106,13 @@ else IMAGEMAGICK_CONF_OPTS += --without-tiff endif +ifeq ($(BR2_PACKAGE_XZ),y) +IMAGEMAGICK_CONF_OPTS += --with-lzma +IMAGEMAGICK_DEPENDENCIES += xz +else +IMAGEMAGICK_CONF_OPTS += --without-lzma +endif + ifeq ($(BR2_PACKAGE_FFTW),y) # configure script misdetects these leading to build errors IMAGEMAGICK_CONF_ENV += ac_cv_func_creal=yes ac_cv_func_cimag=yes diff --git a/bsp/buildroot/package/imlib2/0001-GIF-loader-Fix-for-libgif-version-5.patch b/bsp/buildroot/package/imlib2/0001-GIF-loader-Fix-for-libgif-version-5.patch deleted file mode 100644 index e39eb946..00000000 --- a/bsp/buildroot/package/imlib2/0001-GIF-loader-Fix-for-libgif-version-5.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 17bf7bf95da6ed5b522205c321efcf838c48b13d Mon Sep 17 00:00:00 2001 -From: Kim Woelders -Date: Sun, 4 Aug 2013 08:05:27 +0200 -Subject: [PATCH 1/5] GIF loader: Fix for libgif version 5. - ---- - src/modules/loaders/loader_gif.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c -index 23b8fd0..d1c2ae2 100644 ---- a/src/modules/loaders/loader_gif.c -+++ b/src/modules/loaders/loader_gif.c -@@ -29,6 +29,7 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - /* already data in this image - dont load it again */ - if (im->data) - return 0; -+ - #ifndef __EMX__ - fd = open(im->real_file, O_RDONLY); - #else -@@ -36,12 +37,18 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - #endif - if (fd < 0) - return 0; -+ -+#if GIFLIB_MAJOR >= 5 -+ gif = DGifOpenFileHandle(fd, NULL); -+#else - gif = DGifOpenFileHandle(fd); -+#endif - if (!gif) - { - close(fd); - return 0; - } -+ - do - { - if (DGifGetRecordType(gif, &rec) == GIF_ERROR) --- -2.3.1 - diff --git a/bsp/buildroot/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch b/bsp/buildroot/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch deleted file mode 100644 index c2b52547..00000000 --- a/bsp/buildroot/package/imlib2/0002-GIF-loader-Simplify-error-handling.patch +++ /dev/null @@ -1,175 +0,0 @@ -From 908a179726d010963f4fe1b57fb5f7bf590d7d64 Mon Sep 17 00:00:00 2001 -From: Kim Woelders -Date: Tue, 31 Dec 2013 18:13:45 +0100 -Subject: [PATCH 2/5] GIF loader: Simplify error handling. - -Also: -- Fix memory leak when image data allocation fails. -- Some aux data arrays may as well be const. ---- - src/modules/loaders/loader_gif.c | 80 ++++++++++++++++------------------------ - 1 file changed, 32 insertions(+), 48 deletions(-) - -diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c -index d1c2ae2..a39c860 100644 ---- a/src/modules/loaders/loader_gif.c -+++ b/src/modules/loaders/loader_gif.c -@@ -8,6 +8,9 @@ char - load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - char immediate_load) - { -+ static const int intoffset[] = { 0, 4, 2, 1 }; -+ static const int intjump[] = { 8, 8, 4, 2 }; -+ int rc; - DATA32 *ptr; - GifFileType *gif; - GifRowType *rows; -@@ -16,8 +19,6 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - int i, j, done, bg, r, g, b, w = 0, h = 0; - float per = 0.0, per_inc; - int last_per = 0, last_y = 0; -- int intoffset[] = { 0, 4, 2, 1 }; -- int intjump[] = { 8, 8, 4, 2 }; - int transp; - int fd; - -@@ -49,6 +50,8 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - return 0; - } - -+ rc = 0; /* Failure */ -+ - do - { - if (DGifGetRecordType(gif, &rec) == GIF_ERROR) -@@ -66,37 +69,19 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - w = gif->Image.Width; - h = gif->Image.Height; - if (!IMAGE_DIMENSIONS_OK(w, h)) -- { -- DGifCloseFile(gif); -- return 0; -- } -- rows = malloc(h * sizeof(GifRowType *)); -+ goto quit2; -+ -+ rows = calloc(h, sizeof(GifRowType *)); - if (!rows) -- { -- DGifCloseFile(gif); -- return 0; -- } -- for (i = 0; i < h; i++) -- { -- rows[i] = NULL; -- } -+ goto quit2; -+ - for (i = 0; i < h; i++) - { - rows[i] = malloc(w * sizeof(GifPixelType)); - if (!rows[i]) -- { -- DGifCloseFile(gif); -- for (i = 0; i < h; i++) -- { -- if (rows[i]) -- { -- free(rows[i]); -- } -- } -- free(rows); -- return 0; -- } -+ goto quit; - } -+ - if (gif->Image.Interlace) - { - for (i = 0; i < 4; i++) -@@ -135,6 +120,7 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - } - } - while (rec != TERMINATE_RECORD_TYPE); -+ - if (transp >= 0) - { - SET_FLAG(im->flags, F_HAS_ALPHA); -@@ -143,6 +129,7 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - { - UNSET_FLAG(im->flags, F_HAS_ALPHA); - } -+ - /* set the format string member to the lower-case full extension */ - /* name for the format - so example names would be: */ - /* "png", "jpeg", "tiff", "ppm", "pgm", "pbm", "gif", "xpm" ... */ -@@ -150,17 +137,15 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - im->h = h; - if (!im->format) - im->format = strdup("gif"); -+ - if (im->loader || immediate_load || progress) - { - bg = gif->SBackGroundColor; - cmap = (gif->Image.ColorMap ? gif->Image.ColorMap : gif->SColorMap); - im->data = (DATA32 *) malloc(sizeof(DATA32) * w * h); - if (!im->data) -- { -- DGifCloseFile(gif); -- free(rows); -- return 0; -- } -+ goto quit; -+ - ptr = im->data; - per_inc = 100.0 / (((float)w) * h); - for (i = 0; i < h; i++) -@@ -188,30 +173,29 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - last_per = (int)per; - if (!(progress(im, (int)per, 0, last_y, w, i))) - { -- DGifCloseFile(gif); -- for (i = 0; i < h; i++) -- { -- free(rows[i]); -- } -- free(rows); -- return 2; -+ rc = 2; -+ goto quit; - } - last_y = i; - } - } - } -+ -+ if (progress) -+ progress(im, 100, 0, last_y, w, h); - } -- if (progress) -- { -- progress(im, 100, 0, last_y, w, h); -- } -- DGifCloseFile(gif); -+ -+ rc = 1; /* Success */ -+ -+ quit: - for (i = 0; i < h; i++) -- { -- free(rows[i]); -- } -+ free(rows[i]); - free(rows); -- return 1; -+ -+ quit2: -+ DGifCloseFile(gif); -+ -+ return rc; - } - - void --- -2.3.1 - diff --git a/bsp/buildroot/package/imlib2/0003-imlib2-config-delete-old-reference-to-my_libs.patch b/bsp/buildroot/package/imlib2/0003-imlib2-config-delete-old-reference-to-my_libs.patch deleted file mode 100644 index 35babbbb..00000000 --- a/bsp/buildroot/package/imlib2/0003-imlib2-config-delete-old-reference-to-my_libs.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 534e736e52b6be0da58397ef05f55d47f3794ea7 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -Date: Sat, 18 Jan 2014 13:56:54 -0500 -Subject: [PATCH 3/6] imlib2-config: delete old reference to @my_libs@ - -This was cleaned up a while ago, but this file was missed. - -URL: https://bugs.gentoo.org/497894 ---- - imlib2-config.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/imlib2-config.in b/imlib2-config.in -index cf814c6..965f7c3 100644 ---- a/imlib2-config.in -+++ b/imlib2-config.in -@@ -46,7 +46,7 @@ while test $# -gt 0; do - ;; - --libs) - libdirs=-L@libdir@ -- echo $libdirs -lImlib2 @my_libs@ -+ echo $libdirs -lImlib2 - ;; - *) - echo "${usage}" 1>&2 --- -2.3.1 - diff --git a/bsp/buildroot/package/imlib2/0004-fix-X_DISPLAY_MISSING-redefined-warnings-when-X-is-d.patch b/bsp/buildroot/package/imlib2/0004-fix-X_DISPLAY_MISSING-redefined-warnings-when-X-is-d.patch deleted file mode 100644 index 513c493c..00000000 --- a/bsp/buildroot/package/imlib2/0004-fix-X_DISPLAY_MISSING-redefined-warnings-when-X-is-d.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 7fb1a4468b9d0314cffcdd1fd2a156e6f8c5101b Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -Date: Mon, 28 Jul 2014 22:59:35 -0400 -Subject: [PATCH 4/6] fix X_DISPLAY_MISSING redefined warnings when X is - disabled - -This is set up in config.h by configure, so avoid defining it again. ---- - src/bin/imlib2_conv.c | 2 ++ - src/lib/api.c | 2 ++ - src/lib/image.h | 2 ++ - src/lib/script.c | 2 ++ - 4 files changed, 8 insertions(+) - -diff --git a/src/bin/imlib2_conv.c b/src/bin/imlib2_conv.c -index 1b05b1f..1c46d0c 100644 ---- a/src/bin/imlib2_conv.c -+++ b/src/bin/imlib2_conv.c -@@ -8,7 +8,9 @@ - #include - #include - -+#ifndef X_DISPLAY_MISSING - #define X_DISPLAY_MISSING -+#endif - #include - - #define PROG_NAME "imlib2_conv" -diff --git a/src/lib/api.c b/src/lib/api.c -index e29eaf0..178d2ca 100644 ---- a/src/lib/api.c -+++ b/src/lib/api.c -@@ -4,8 +4,10 @@ - #include - #include - #else -+#ifndef X_DISPLAY_MISSING - #define X_DISPLAY_MISSING - #endif -+#endif - #include - #include - #include "common.h" -diff --git a/src/lib/image.h b/src/lib/image.h -index eef59d2..52dde9d 100644 ---- a/src/lib/image.h -+++ b/src/lib/image.h -@@ -5,7 +5,9 @@ - # ifdef BUILD_X11 - # include - # else -+#ifndef X_DISPLAY_MISSING - # define X_DISPLAY_MISSING -+#endif - # endif - - # include -diff --git a/src/lib/script.c b/src/lib/script.c -index 55ebd4e..7c974c0 100644 ---- a/src/lib/script.c -+++ b/src/lib/script.c -@@ -13,8 +13,10 @@ - #ifdef BUILD_X11 - #include - #else -+#ifndef X_DISPLAY_MISSING - #define X_DISPLAY_MISSING - #endif -+#endif - #include "image.h" - #include "file.h" - #include "dynamic_filters.h" --- -2.3.1 - diff --git a/bsp/buildroot/package/imlib2/0005-do-not-link-with-X-libs-when-X-is-disabled.patch b/bsp/buildroot/package/imlib2/0005-do-not-link-with-X-libs-when-X-is-disabled.patch deleted file mode 100644 index 85da48d3..00000000 --- a/bsp/buildroot/package/imlib2/0005-do-not-link-with-X-libs-when-X-is-disabled.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 19d568d7a58e88a6e0a43500175d731fb43f97cd Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -Date: Mon, 28 Jul 2014 23:01:23 -0400 -Subject: [PATCH 5/6] do not link with X libs when X is disabled - -URL: https://bugs.gentoo.org/517670 ---- - src/lib/Makefile.am | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am -index 64de98b..ea94991 100644 ---- a/src/lib/Makefile.am -+++ b/src/lib/Makefile.am -@@ -86,7 +86,10 @@ AMD64_OBJS = $(AMD64_SRCS:.S=.lo) - - EXTRA_DIST = $(MMX_SRCS) $(AMD64_SRCS) asm_loadimmq.S - --MY_LIBS = -lXext -lX11 $(FREETYPE_LIBS) $(DLOPEN_LIBS) -lm -+MY_LIBS = $(FREETYPE_LIBS) $(DLOPEN_LIBS) -lm -+if BUILD_X11 -+MY_LIBS += -lXext -lX11 -+endif - - if BUILD_MMX - libImlib2_la_LIBADD = $(MMX_OBJS) $(MY_LIBS) --- -2.3.1 - diff --git a/bsp/buildroot/package/imlib2/0006-GIF-loader-Fix-for-libgif-version-5.1.patch b/bsp/buildroot/package/imlib2/0006-GIF-loader-Fix-for-libgif-version-5.1.patch deleted file mode 100644 index 2f319d84..00000000 --- a/bsp/buildroot/package/imlib2/0006-GIF-loader-Fix-for-libgif-version-5.1.patch +++ /dev/null @@ -1,44 +0,0 @@ -From aa16abfa6c0198668b6a4e101fde8b42ec9cdb68 Mon Sep 17 00:00:00 2001 -From: Heiko Becker -Date: Mon, 13 Oct 2014 17:41:25 +0200 -Subject: [PATCH 6/6] GIF loader: Fix for libgif version 5.1 - -Summary: -From giflib-5.1.0's NEWS: -"A small change to the API: DGifClose() and EGifClose() now take a -pointer-to-int second argument (like the corresponding openers) -where a diagnostic code will be deposited when they return -GIF_ERROR." - -Test Plan: -I've built imlib2 against giflib-4.2.3 and 5.1.0 and opened a few -gif files with feh. - -Reviewers: kwo - -Reviewed By: kwo - -Differential Revision: https://phab.enlightenment.org/D1529 ---- - src/modules/loaders/loader_gif.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c -index a39c860..c53f62c 100644 ---- a/src/modules/loaders/loader_gif.c -+++ b/src/modules/loaders/loader_gif.c -@@ -193,7 +193,11 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity, - free(rows); - - quit2: -+#if GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1) -+ DGifCloseFile(gif, NULL); -+#else - DGifCloseFile(gif); -+#endif - - return rc; - } --- -2.3.1 - diff --git a/bsp/buildroot/package/imlib2/0007-fix-compilation-issues-with-musl.patch b/bsp/buildroot/package/imlib2/0007-fix-compilation-issues-with-musl.patch deleted file mode 100644 index 50e88a23..00000000 --- a/bsp/buildroot/package/imlib2/0007-fix-compilation-issues-with-musl.patch +++ /dev/null @@ -1,31 +0,0 @@ -From bdfa1169c549122a8dc848b84469458101adeb20 Mon Sep 17 00:00:00 2001 -From: Brendan Heading -Date: Mon, 3 Aug 2015 12:44:55 +0100 -Subject: [PATCH 1/1] fix compilation issues with musl - -Using time_t strictly requires time.h to be included. - -NOTE I've stuck to the convention on this project where most of the -files appear to pick up most of their headers by including "common.h". - -Upstream-status: pending -Signed-off-by: Brendan Heading ---- - src/lib/common.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/lib/common.h b/src/lib/common.h -index 798965f..9053826 100644 ---- a/src/lib/common.h -+++ b/src/lib/common.h -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #ifdef WITH_DMALLOC - #include - #endif --- -2.4.3 - diff --git a/bsp/buildroot/package/imlib2/imlib2.hash b/bsp/buildroot/package/imlib2/imlib2.hash index c8d5fe96..6e1faafc 100644 --- a/bsp/buildroot/package/imlib2/imlib2.hash +++ b/bsp/buildroot/package/imlib2/imlib2.hash @@ -1,2 +1,3 @@ -# Locally computed: -sha256 af51be727d62cfcff7457c753f355e44848fb997f33a7e1d43775276a9073274 imlib2-1.4.6.tar.bz2 +# From https://sourceforge.net/projects/enlightenment/files/imlib2-src/1.4.9/ +md5 23ef8b49f2793bc63b16839a2062298b imlib2-1.4.9.tar.bz2 +sha1 f389d67c337b604a365e620b0083b2d342dd724e imlib2-1.4.9.tar.bz2 diff --git a/bsp/buildroot/package/imlib2/imlib2.mk b/bsp/buildroot/package/imlib2/imlib2.mk index 4dcbdb56..7da032f9 100644 --- a/bsp/buildroot/package/imlib2/imlib2.mk +++ b/bsp/buildroot/package/imlib2/imlib2.mk @@ -4,13 +4,12 @@ # ################################################################################ -IMLIB2_VERSION = 1.4.6 +IMLIB2_VERSION = 1.4.9 IMLIB2_SOURCE = imlib2-$(IMLIB2_VERSION).tar.bz2 IMLIB2_SITE = http://downloads.sourceforge.net/project/enlightenment/imlib2-src/$(IMLIB2_VERSION) IMLIB2_LICENSE = imlib2 license IMLIB2_LICENSE_FILES = COPYING -IMLIB2_AUTORECONF = YES IMLIB2_INSTALL_STAGING = YES IMLIB2_DEPENDENCIES = host-pkgconf freetype IMLIB2_CONF_OPTS = --with-freetype-config=$(STAGING_DIR)/usr/bin/freetype-config diff --git a/bsp/buildroot/package/imx-usb-loader/Config.in.host b/bsp/buildroot/package/imx-usb-loader/Config.in.host index aefa01b2..a4a0f885 100644 --- a/bsp/buildroot/package/imx-usb-loader/Config.in.host +++ b/bsp/buildroot/package/imx-usb-loader/Config.in.host @@ -1,5 +1,5 @@ config BR2_PACKAGE_HOST_IMX_USB_LOADER - bool "host-imx-usb loader" + bool "host imx-usb-loader" depends on BR2_arm help This package contains tools to download and execute code diff --git a/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.hash b/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.hash new file mode 100644 index 00000000..aa8ff491 --- /dev/null +++ b/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 1e7ee8af34e7d0a3b9761c25a4edfc7140d23132129818d288c74fc0d58796e5 imx-usb-loader-f96aee286ea17c832b7ec922dd76842deb5ce299.tar.gz diff --git a/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.mk b/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.mk index 280ffc04..c8556257 100644 --- a/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.mk +++ b/bsp/buildroot/package/imx-usb-loader/imx-usb-loader.mk @@ -8,7 +8,7 @@ IMX_USB_LOADER_VERSION = f96aee286ea17c832b7ec922dd76842deb5ce299 IMX_USB_LOADER_SITE = $(call github,boundarydevices,imx_usb_loader,$(IMX_USB_LOADER_VERSION)) IMX_USB_LOADER_LICENSE = LGPLv2.1+ IMX_USB_LOADER_LICENSE_FILES = COPYING -IMX_USB_LOADER_DEPENDENCIES = host-libusb host-pkgconf +HOST_IMX_USB_LOADER_DEPENDENCIES = host-libusb host-pkgconf define HOST_IMX_USB_LOADER_BUILD_CMDS $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) diff --git a/bsp/buildroot/package/initscripts/init.d/S40network b/bsp/buildroot/package/initscripts/init.d/S40network index 7b11d8b9..642c5013 100755 --- a/bsp/buildroot/package/initscripts/init.d/S40network +++ b/bsp/buildroot/package/initscripts/init.d/S40network @@ -8,12 +8,14 @@ mkdir -p /run/network case "$1" in start) - echo "Starting network..." + printf "Starting network: " /sbin/ifup -a + [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) - printf "Stopping network..." + printf "Stopping network: " /sbin/ifdown -a + [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) "$0" stop diff --git a/bsp/buildroot/package/initscripts/initscripts.mk b/bsp/buildroot/package/initscripts/initscripts.mk index a5d8db7e..cfee1555 100644 --- a/bsp/buildroot/package/initscripts/initscripts.mk +++ b/bsp/buildroot/package/initscripts/initscripts.mk @@ -4,9 +4,6 @@ # ################################################################################ -# source included in buildroot -INITSCRIPTS_SOURCE = - define INITSCRIPTS_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/etc/init.d $(INSTALL) -D -m 0755 package/initscripts/init.d/* $(TARGET_DIR)/etc/init.d/ diff --git a/bsp/buildroot/package/inotify-tools/0001-gcc6.patch b/bsp/buildroot/package/inotify-tools/0001-gcc6.patch new file mode 100644 index 00000000..aae622eb --- /dev/null +++ b/bsp/buildroot/package/inotify-tools/0001-gcc6.patch @@ -0,0 +1,49 @@ +From 5fe3ba82134d8b85adc69cf1d6c5742b4bde20b4 Mon Sep 17 00:00:00 2001 +From: James Knight +Date: Thu, 16 Jun 2016 00:00:57 -0400 +Subject: [PATCH] correct code alignment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The following replaces the indented section of code from spaces to tabs. +No functional changes. Aside from consistency, this resolves a GCC 6 +build issue with the flag `-Werror=misleading-indentation` enabled: + + inotifywait.c: In function ‘output_event_csv’: + inotifywait.c:126:5: error: this ‘if’ clause does not guard... + [-Werror=misleading-indentation] + if (filename != NULL) + ^~ + inotifywait.c:129:2: note: ...this statement, but the latter is + misleadingly indented as if it is guarded + by the ‘if’ + printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) + ) ); + ^~~~~~ + +Signed-off-by: James Knight +Signed-off-by: Bernd Kuhls +(downloaded from upstream pull request + https://github.com/rvoicilas/inotify-tools/pull/65) +--- + src/inotifywait.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/inotifywait.c b/src/inotifywait.c +index c5ce5e3..404a85b 100644 +--- a/src/inotifywait.c ++++ b/src/inotifywait.c +@@ -122,9 +122,9 @@ void validate_format( char * fmt ) { + + + void output_event_csv( struct inotify_event * event ) { +- char *filename = csv_escape(inotifytools_filename_from_wd(event->wd)); +- if (filename != NULL) +- printf("%s,", filename); ++ char *filename = csv_escape(inotifytools_filename_from_wd(event->wd)); ++ if (filename != NULL) ++ printf("%s,", filename); + + printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) ); + if ( event->len > 0 ) diff --git a/bsp/buildroot/package/inotify-tools/inotify-tools.hash b/bsp/buildroot/package/inotify-tools/inotify-tools.hash new file mode 100644 index 00000000..0993dc44 --- /dev/null +++ b/bsp/buildroot/package/inotify-tools/inotify-tools.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 628b8efabb65a739dd747fe43b73b29a609b5cfa9628caa127764ed77766a6e1 inotify-tools-1df9af4d6cd0f4af4b1b19254bcf056aed4ae395.tar.gz diff --git a/bsp/buildroot/package/inotify-tools/inotify-tools.mk b/bsp/buildroot/package/inotify-tools/inotify-tools.mk index 3502525f..e8b1498e 100644 --- a/bsp/buildroot/package/inotify-tools/inotify-tools.mk +++ b/bsp/buildroot/package/inotify-tools/inotify-tools.mk @@ -4,7 +4,7 @@ # ################################################################################ -INOTIFY_TOOLS_VERSION = 06007d350faa8731c67e186923ab417486104719 +INOTIFY_TOOLS_VERSION = 1df9af4d6cd0f4af4b1b19254bcf056aed4ae395 INOTIFY_TOOLS_SITE = $(call github,rvoicilas,inotify-tools,$(INOTIFY_TOOLS_VERSION)) INOTIFY_TOOLS_LICENSE = GPL INOTIFY_TOOLS_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/input-event-daemon/input-event-daemon.hash b/bsp/buildroot/package/input-event-daemon/input-event-daemon.hash new file mode 100644 index 00000000..d5364a95 --- /dev/null +++ b/bsp/buildroot/package/input-event-daemon/input-event-daemon.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1d9a44160aead88080093f74be9d709fbbc2637f982958e2673d80aedacd0a65 input-event-daemon-v0.1.3.tar.gz diff --git a/bsp/buildroot/package/iozone/0002-no-nptl-support.patch b/bsp/buildroot/package/iozone/0002-no-nptl-support.patch deleted file mode 100644 index 493f52cc..00000000 --- a/bsp/buildroot/package/iozone/0002-no-nptl-support.patch +++ /dev/null @@ -1,37 +0,0 @@ -Dummy pthread_setaffinity_np() when not available - -On uClibc configurations that do not use the NPTL thread -implementation, pthread_setaffinity_np() is not available. This patch -defines a dummy (empty) implementation of this function for such -cases. - -The only few architectures that do not provide the NPTL thread -implementation are very likely to be non-SMP architectures, and -therefore, setting the affinity of the thread is not doing anything -useful, so having an empty stub for pthread_setaffinity_np() is not a -problem. - -Signed-off-by: Thomas Petazzoni - -Index: b/src/current/iozone.c -=================================================================== ---- a/src/current/iozone.c -+++ b/src/current/iozone.c -@@ -306,6 +306,17 @@ - #endif - #endif - -+#if defined (__linux__) -+#include -+#if defined (__UCLIBC__) && !defined (__UCLIBC_HAS_THREADS_NATIVE__) -+static int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize, -+ const cpu_set_t *cpuset) -+{ -+ return 0; -+} -+#endif -+#endif -+ - #if ((defined(solaris) && defined(__LP64__)) || defined(__s390x__)) - /* If we are building for 64-bit Solaris, all functions that return pointers - * must be declared before they are used; otherwise the compiler will assume diff --git a/bsp/buildroot/package/iozone/Config.in b/bsp/buildroot/package/iozone/Config.in index 8cf50b11..fe49bd14 100644 --- a/bsp/buildroot/package/iozone/Config.in +++ b/bsp/buildroot/package/iozone/Config.in @@ -1,9 +1,13 @@ config BR2_PACKAGE_IOZONE bool "iozone" depends on BR2_USE_MMU # fork() - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL help IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations http://www.iozone.org/ + +comment "iozone needs a toolchain w/ NPTL" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL diff --git a/bsp/buildroot/package/iozone/iozone.hash b/bsp/buildroot/package/iozone/iozone.hash index 8d05382c..b387588f 100644 --- a/bsp/buildroot/package/iozone/iozone.hash +++ b/bsp/buildroot/package/iozone/iozone.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 e8388238326dc29359e5cb9f790d193f1e1bdadfbf260e010c50fa682387faed iozone3_430.tar +sha256 bbbda98d7c052d8654ea23fb2187d831107ab4ac89842fa21509276d9a6915f0 iozone3_446.tar diff --git a/bsp/buildroot/package/iozone/iozone.mk b/bsp/buildroot/package/iozone/iozone.mk index 06622075..477a60a3 100644 --- a/bsp/buildroot/package/iozone/iozone.mk +++ b/bsp/buildroot/package/iozone/iozone.mk @@ -4,18 +4,15 @@ # ################################################################################ -IOZONE_VERSION = 3_430 +IOZONE_VERSION = 3_446 IOZONE_SOURCE = iozone$(IOZONE_VERSION).tar IOZONE_SITE = http://www.iozone.org/src/current IOZONE_LICENSE = IOzone license (NO DERIVED WORKS ALLOWED) # IOzone license details can be found at: # http://www.iozone.org/docs/Iozone_License.txt -# No threading target is non-AIO as well -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) -IOZONE_TARGET = linux-noth # AIO support not available on uClibc, use the linux (non-aio) target. -else ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) IOZONE_TARGET = linux-noaio else IOZONE_TARGET = linux diff --git a/bsp/buildroot/package/iperf/0001-util.h-add-missing-stdbool-header.patch b/bsp/buildroot/package/iperf/0001-util.h-add-missing-stdbool-header.patch new file mode 100644 index 00000000..6eeed72a --- /dev/null +++ b/bsp/buildroot/package/iperf/0001-util.h-add-missing-stdbool-header.patch @@ -0,0 +1,54 @@ +From babf9a5c2bbce4725963b21e47f413962e33ea88 Mon Sep 17 00:00:00 2001 +From: Baruch Siach +Date: Sat, 30 Jul 2016 14:24:33 +0200 +Subject: [PATCH] util.h: add missing stdbool header +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +C requires the stdbool.h header for the 'bool' type. + +Fixes the following build failure under uClibc-ng C library: + +.../arm-linux-gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c delay.c +In file included from delay.c:55:0: +../include/util.h:73:1: error: unknown type name ‘bool’ + bool setsock_blocking(int fd, bool blocking); + ^ + +Signed-off-by: Baruch Siach +[Thomas: add AC_PROG_CC_C99, since C99 is needed for the bool type.] +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 1 + + include/util.h | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/configure.ac b/configure.ac +index d59107a..ba30cb7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,6 +46,7 @@ dnl =================================================================== + AC_PROG_CXX + CXXFLAGS=`echo " $CXXFLAGS " | sed -e "s/ -g / /"` # do not want it implicitly + AC_PROG_CC ++AC_PROG_CC_C99 + CFLAGS=`echo " $CFLAGS " | sed -e "s/ -g / /"` # do not want it implicitly + AC_ISC_POSIX + AC_PROG_INSTALL +diff --git a/include/util.h b/include/util.h +index f4ae3d8..91540a9 100644 +--- a/include/util.h ++++ b/include/util.h +@@ -57,6 +57,8 @@ + #include "config.h" + #endif + ++#include ++ + #ifdef __cplusplus + extern "C" { + #endif +-- +2.7.4 + diff --git a/bsp/buildroot/package/iperf/0002-fix-speed-display-in-csv-report.patch b/bsp/buildroot/package/iperf/0002-fix-speed-display-in-csv-report.patch new file mode 100644 index 00000000..b06c7099 --- /dev/null +++ b/bsp/buildroot/package/iperf/0002-fix-speed-display-in-csv-report.patch @@ -0,0 +1,39 @@ +From f035e70b72d4285dcdbd393e680777a927cb9da4 Mon Sep 17 00:00:00 2001 +From: Matt Weber +Date: Thu, 28 Jul 2016 19:04:01 -0500 +Subject: [PATCH] perf: fix "speed" display in csv report + +Some parameters displayed in the CSV reports are declared +as uint64_t, but the printf format doesn't reflect this. + +Submitted bug: https://sourceforge.net/p/iperf/bugs/66/ + +Signed-off-by: Matt Poduska +Signed-off-by: Atul Singh +Signed-off-by: Matthew Weber +--- + src/Locale.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/Locale.c b/src/Locale.c +index b5d42b1..7b924fa 100644 +--- a/src/Locale.c ++++ b/src/Locale.c +@@ -260,11 +260,12 @@ const char reportCSV_bw_format[] = + const char reportCSV_bw_jitter_loss_format[] = + "%s,%s,%d,%.1f-%.1f,%I64d,%I64d,%.3f,%d,%d,%.3f,%d\n"; + #else ++#include "inttypes.h" + const char reportCSV_bw_format[] = +-"%s,%s,%d,%.1f-%.1f,%d,%d\n"; ++"%s,%s,%d,%.1f-%.1f,%" PRId64 ",%" PRId64 "\n"; + + const char reportCSV_bw_jitter_loss_format[] = +-"%s,%s,%d,%.1f-%.1f,%d,%d,%.3f,%d,%d,%.3f,%d\n"; ++"%s,%s,%d,%.1f-%.1f,%" PRId64 ",%" PRId64 ",%.3f,%d,%d,%.3f,%d\n"; + #endif //WIN32 + #endif //HAVE_QUAD_SUPPORT + /* ------------------------------------------------------------------- +-- +1.9.1 + diff --git a/bsp/buildroot/package/iperf/Config.in b/bsp/buildroot/package/iperf/Config.in index 86dd3e97..21a2df8a 100644 --- a/bsp/buildroot/package/iperf/Config.in +++ b/bsp/buildroot/package/iperf/Config.in @@ -7,7 +7,7 @@ config BR2_PACKAGE_IPERF Internet Protocol bandwidth measuring tool for measuring TCP/UDP performance. - http://dast.nlanr.net/projects/iperf/ + https://sourceforge.net/projects/iperf2/ comment "iperf needs a toolchain w/ C++" depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/iperf/iperf.hash b/bsp/buildroot/package/iperf/iperf.hash index 8d93b723..3dd491a2 100644 --- a/bsp/buildroot/package/iperf/iperf.hash +++ b/bsp/buildroot/package/iperf/iperf.hash @@ -1,2 +1,4 @@ +# From https://sourceforge.net/projects/iperf2/files/ +sha1 9e215f6af8edd97f947f2b0207ff5487845d83d4 iperf-2.0.9.tar.gz # Locally computed: -sha256 636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b iperf-2.0.5.tar.gz +sha256 a5350777b191e910334d3a107b5e5219b72ffa393da4186da1e0a4552aeeded6 iperf-2.0.9.tar.gz diff --git a/bsp/buildroot/package/iperf/iperf.mk b/bsp/buildroot/package/iperf/iperf.mk index 8496b95d..d2071bd2 100644 --- a/bsp/buildroot/package/iperf/iperf.mk +++ b/bsp/buildroot/package/iperf/iperf.mk @@ -4,15 +4,15 @@ # ################################################################################ -IPERF_VERSION = 2.0.5 -IPERF_SITE = http://downloads.sourceforge.net/project/iperf +IPERF_VERSION = 2.0.9 +IPERF_SITE = http://downloads.sourceforge.net/project/iperf2 IPERF_LICENSE = MIT-like IPERF_LICENSE_FILES = COPYING +# patching configure.ac +IPERF_AUTORECONF = YES IPERF_CONF_ENV = \ - ac_cv_func_malloc_0_nonnull=yes \ - ac_cv_type_bool=yes \ - ac_cv_sizeof_bool=1 + ac_cv_func_malloc_0_nonnull=yes IPERF_CONF_OPTS = \ --disable-web100 diff --git a/bsp/buildroot/package/iperf3/iperf3.hash b/bsp/buildroot/package/iperf3/iperf3.hash index 4b9332d6..1accccd0 100644 --- a/bsp/buildroot/package/iperf3/iperf3.hash +++ b/bsp/buildroot/package/iperf3/iperf3.hash @@ -1,2 +1,2 @@ -# Locally calculated -sha256 86f292e554d42d1bddbd5f587e594005f4ca202c284e4da45ed8cfbe935a5be8 iperf3-3.1.1.tar.gz +# From http://software.es.net/iperf/news.html#security-issue-iperf-3-1-3-iperf-3-0-12-released +sha256 60d8db69b1d74a64d78566c2317c373a85fef691b8d277737ee5d29f448595bf iperf-3.1.3.tar.gz diff --git a/bsp/buildroot/package/iperf3/iperf3.mk b/bsp/buildroot/package/iperf3/iperf3.mk index 74d6cce2..3d2a7086 100644 --- a/bsp/buildroot/package/iperf3/iperf3.mk +++ b/bsp/buildroot/package/iperf3/iperf3.mk @@ -4,8 +4,9 @@ # ################################################################################ -IPERF3_VERSION = 3.1.1 -IPERF3_SITE = $(call github,esnet,iperf,$(IPERF3_VERSION)) +IPERF3_VERSION = 3.1.3 +IPERF3_SITE = http://downloads.es.net/pub/iperf +IPERF3_SOURCE = iperf-$(IPERF3_VERSION).tar.gz IPERF3_LICENSE = BSD-3c, BSD-2c, MIT IPERF3_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/ipkg/0002-fix-nommu.patch b/bsp/buildroot/package/ipkg/0002-fix-nommu.patch new file mode 100644 index 00000000..64cec1e6 --- /dev/null +++ b/bsp/buildroot/package/ipkg/0002-fix-nommu.patch @@ -0,0 +1,24 @@ +libbb: fix no MMU build + +uClibc-ng defines __ARCH_HAS_MMU__ for ARM or m68k because these +architectures may potentially have MMU. The code should test for +__ARCH_USE_MMU__, which indicates if the MMU is really in use. But +since the configure script detects the presence of fork(), using +HAVE_FORK directly is a better solution. + +Signed-off-by: Baruch Siach +--- +Patch status: no active upstream + +diff -Nuar ipkg-0.99.163-orig/libbb/libbb.h ipkg-0.99.163/libbb/libbb.h +--- ipkg-0.99.163-orig/libbb/libbb.h 2006-02-06 10:13:02.000000000 +0200 ++++ ipkg-0.99.163/libbb/libbb.h 2016-07-26 13:50:09.296988855 +0300 +@@ -341,7 +341,7 @@ + #define CONSOLE_DEV "/dev/console" + + /* Cope with mmu-less systems somewhat gracefully */ +-#if defined(__UCLIBC__) && !defined(__ARCH_HAS_MMU__) ++#if !defined(HAVE_FORK) + #define fork vfork + #endif + diff --git a/bsp/buildroot/package/ipkg/Config.in b/bsp/buildroot/package/ipkg/Config.in index 4b2078d9..a987bd61 100644 --- a/bsp/buildroot/package/ipkg/Config.in +++ b/bsp/buildroot/package/ipkg/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_IPKG bool "ipkg" + depends on BR2_DEPRECATED_SINCE_2016_08 help The Itsy Package Installer from handhelds.org diff --git a/bsp/buildroot/package/ipkg/ipkg.hash b/bsp/buildroot/package/ipkg/ipkg.hash new file mode 100644 index 00000000..34a2d626 --- /dev/null +++ b/bsp/buildroot/package/ipkg/ipkg.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 405743e1ba320ed6095d42a898f1486e3af1d745cae2bd45dfe1d8403a4d8995 ipkg-0.99.163.tar.gz diff --git a/bsp/buildroot/package/ipmitool/0001-Make-the-package-autoreconfigurable.patch b/bsp/buildroot/package/ipmitool/0001-Make-the-package-autoreconfigurable.patch new file mode 100644 index 00000000..17b40762 --- /dev/null +++ b/bsp/buildroot/package/ipmitool/0001-Make-the-package-autoreconfigurable.patch @@ -0,0 +1,38 @@ +From 0d4b9d5d547b4a6e79108ac8c455e01f72a9aefa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sun, 10 Apr 2016 11:47:14 +0200 +Subject: [PATCH 1/3] Make the package autoreconfigurable +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ipmitool is not a compliant GNU package as it does not provide some necessary +files, like NEWS, AUTHORS, etc. + +Therefor set the Automake strictness to foreign to make the package +autoreconfigurable. + +Upstream status: Pending +https://sourceforge.net/p/ipmitool/mailman/message/35004711/ + +Signed-off-by: Jörg Krause +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 94e267a..9f3f7e1 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -33,7 +33,7 @@ DOCLIST = $(top_srcdir)/README $(top_srcdir)/COPYING $(top_srcdir)/AUTHORS $(top + + EXTRA_DIST = $(DOCLIST) + +-AUTOMAKE_OPTIONS = dist-bzip2 ++AUTOMAKE_OPTIONS = dist-bzip2 foreign + + MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure configure-stamp \ + config.guess config.sub depcomp install-sh ltmain.sh missing \ +-- +2.8.0 + diff --git a/bsp/buildroot/package/ipmitool/0002-Avoid-wchar_t-redefinition.patch b/bsp/buildroot/package/ipmitool/0002-Avoid-wchar_t-redefinition.patch new file mode 100644 index 00000000..99598e0a --- /dev/null +++ b/bsp/buildroot/package/ipmitool/0002-Avoid-wchar_t-redefinition.patch @@ -0,0 +1,60 @@ +From 7d1863b47877129376f37613d29d3a5ba084af66 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sat, 2 Apr 2016 19:45:14 +0200 +Subject: [PATCH 2/3] Avoid wchar_t redefinition +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The musl C library does not define _WCHAR_T. Use autoconf to check for wchar_t. + +Upstream status: Pending +https://sourceforge.net/p/ipmitool/mailman/message/35007331/ + +Signed-off-by: Jörg Krause +--- + configure.ac | 2 ++ + src/plugins/imb/imbapi.h | 7 ++++++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 1d74fcf..c2ba1eb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,6 +22,8 @@ AC_CHECK_HEADERS([stdlib.h string.h sys/ioctl.h sys/stat.h unistd.h paths.h]) + AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/socket.h]) + AC_CHECK_HEADERS([sys/byteorder.h byteswap.h]) + ++AC_CHECK_TYPES([wchar_t]) ++ + AC_C_CONST + AC_C_INLINE + AC_C_BIGENDIAN +diff --git a/src/plugins/imb/imbapi.h b/src/plugins/imb/imbapi.h +index 74975c6..ead8956 100644 +--- a/src/plugins/imb/imbapi.h ++++ b/src/plugins/imb/imbapi.h +@@ -35,6 +35,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *----------------------------------------------------------------------*/ + #ifndef _WINDEFS_H + #define _WINDEFS_H ++ ++#if HAVE_CONFIG_H ++# include ++#endif ++ + #ifndef FALSE + #define FALSE 0 + #endif +@@ -46,7 +51,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #endif + #ifndef WIN32 + /* WIN32 defines this in stdio.h */ +-#ifndef _WCHAR_T ++#if !defined(HAVE_WCHAR_T) + #define _WCHAR_T + typedef long wchar_t; + #endif +-- +2.8.0 + diff --git a/bsp/buildroot/package/ipmitool/0003-Add-missing-linux-param.h-header-include.patch b/bsp/buildroot/package/ipmitool/0003-Add-missing-linux-param.h-header-include.patch new file mode 100644 index 00000000..a3bd7257 --- /dev/null +++ b/bsp/buildroot/package/ipmitool/0003-Add-missing-linux-param.h-header-include.patch @@ -0,0 +1,39 @@ +From 661095378b74df564bc621ced4db72b688d87399 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sat, 2 Apr 2016 19:47:21 +0200 +Subject: [PATCH 3/3] Add missing linux/param.h header include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes the following build failure under musl: + +imbapi.c: In function 'MapPhysicalMemory': +imbapi.c:109:19: error: 'EXEC_PAGESIZE' undeclared (first use in this function) + # define PAGESIZE EXEC_PAGESIZE + +Upstream status: Pending +https://sourceforge.net/p/ipmitool/mailman/message/35007330/ + +Signed-off-by: Jörg Krause +--- + src/plugins/imb/imbapi.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/plugins/imb/imbapi.c b/src/plugins/imb/imbapi.c +index 899c47a..8a6421d 100644 +--- a/src/plugins/imb/imbapi.c ++++ b/src/plugins/imb/imbapi.c +@@ -95,6 +95,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include + #include + #include ++#ifdef __linux__ ++#include ++#endif + #endif + #include "imbapi.h" + #include +-- +2.8.0 + diff --git a/bsp/buildroot/package/ipmitool/0004-Fix-missing-stddef.h-include.patch b/bsp/buildroot/package/ipmitool/0004-Fix-missing-stddef.h-include.patch new file mode 100644 index 00000000..e58c8b09 --- /dev/null +++ b/bsp/buildroot/package/ipmitool/0004-Fix-missing-stddef.h-include.patch @@ -0,0 +1,37 @@ +From 2b149f7723fbd6153e6605ea8efb2c9f2940c8e5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Mon, 18 Apr 2016 21:17:26 +0200 +Subject: [PATCH] Fix missing stddef.h include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Needed for wchar_t. Fixes build error: + +imbapi.h:140:9: error: unknown type name 'wchar_t' + typedef wchar_t WCHAR; + +Upstream status: Pending +https://sourceforge.net/p/ipmitool/mailman/message/35022779/ + +Signed-off-by: Jörg Krause +--- + src/plugins/imb/imbapi.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/plugins/imb/imbapi.h b/src/plugins/imb/imbapi.h +index ead8956..8d0c7ae 100644 +--- a/src/plugins/imb/imbapi.h ++++ b/src/plugins/imb/imbapi.h +@@ -40,6 +40,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # include + #endif + ++#include ++ + #ifndef FALSE + #define FALSE 0 + #endif +-- +2.8.0 + diff --git a/bsp/buildroot/package/ipmitool/Config.in b/bsp/buildroot/package/ipmitool/Config.in index e9b5374e..1da0ace1 100644 --- a/bsp/buildroot/package/ipmitool/Config.in +++ b/bsp/buildroot/package/ipmitool/Config.in @@ -23,4 +23,11 @@ config BR2_PACKAGE_IPMITOOL_IPMIEVD help IPMI event daemon for sending events to syslog +config BR2_PACKAGE_IPMITOOL_IPMISHELL + bool "ipmishell" + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_READLINE + help + IPMI shell interface + endif diff --git a/bsp/buildroot/package/ipmitool/ipmitool.hash b/bsp/buildroot/package/ipmitool/ipmitool.hash index 60189c00..9bb852c3 100644 --- a/bsp/buildroot/package/ipmitool/ipmitool.hash +++ b/bsp/buildroot/package/ipmitool/ipmitool.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 4acd2df5f8740fef5c032cebee0113ec4d3bbef04a6f4dbfaf7fcc7f3eb08c40 ipmitool-1.8.15.tar.bz2 +sha256 3c5da6b067abf475bc24685120ec79f6e4ef6b3ea606aaa267e462023861223e ipmitool-1.8.16.tar.bz2 diff --git a/bsp/buildroot/package/ipmitool/ipmitool.mk b/bsp/buildroot/package/ipmitool/ipmitool.mk index 3ace5a75..a2465843 100644 --- a/bsp/buildroot/package/ipmitool/ipmitool.mk +++ b/bsp/buildroot/package/ipmitool/ipmitool.mk @@ -4,20 +4,27 @@ # ################################################################################ -IPMITOOL_VERSION = 1.8.15 +IPMITOOL_VERSION = 1.8.16 IPMITOOL_SOURCE = ipmitool-$(IPMITOOL_VERSION).tar.bz2 IPMITOOL_SITE = http://downloads.sourceforge.net/project/ipmitool/ipmitool/$(IPMITOOL_VERSION) IPMITOOL_LICENSE = BSD-3c IPMITOOL_LICENSE_FILES = COPYING +# Patching configure.ac +IPMITOOL_AUTORECONF = YES + ifeq ($(BR2_PACKAGE_IPMITOOL_LANPLUS),y) IPMITOOL_DEPENDENCIES += openssl +IPMITOOL_CONF_OPTS += --enable-intf-lanplus else IPMITOOL_CONF_OPTS += --disable-intf-lanplus endif -ifeq ($(BR2_PACKAGE_READLINE),y) -IPMITOOL_DEPENDENCIES += readline +ifeq ($(BR2_PACKAGE_IPMITOOL_IPMISHELL),y) +IPMITOOL_DEPENDENCIES += ncurses readline +IPMITOOL_CONF_OPTS += --enable-ipmishell +else +IPMITOOL_CONF_OPTS += --disable-ipmishell endif ifeq ($(BR2_PACKAGE_IPMITOOL_IPMIEVD),) diff --git a/bsp/buildroot/package/ipmiutil/0002-lib-Makefile.am-fix-lanplus-disable.patch b/bsp/buildroot/package/ipmiutil/0002-lib-Makefile.am-fix-lanplus-disable.patch deleted file mode 100644 index 35d1d679..00000000 --- a/bsp/buildroot/package/ipmiutil/0002-lib-Makefile.am-fix-lanplus-disable.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Baruch Siach -Date: Tue, 27 Oct 2015 14:23:44 +0200 -Subject: [PATCH] lib/Makefile.am: fix lanplus disable - -Protect the install target as well when lanplus is disabled. Fixes the -following installation failure when openssl is missing: - -In file included from lanplus.c:78:0: -./inc/ipmitool/ipmi.h:51:25: fatal error: openssl/evp.h: No such file or directory - -Patch status: sent upstream -(http://sourceforge.net/p/ipmiutil/mailman/message/34572580/) - -Signed-off-by: Baruch Siach ---- - lib/Makefile.am | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/lib/Makefile.am b/lib/Makefile.am -index 805a218ab7eb..939594cfd3e5 100644 ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -51,8 +51,10 @@ distclean: - cd lanplus; make distclean - - install: -- $(MKDIR) ${datato} -- cd lanplus; make install -+ if [ "$(PLUSFLAGS)" = "-DHAVE_LANPLUS" ]; then \ -+ $(MKDIR) ${datato} ; \ -+ cd lanplus; make install ; \ -+ fi - - check: - --- -2.6.1 - diff --git a/bsp/buildroot/package/ipmiutil/0003-configure.ac-fix-stack-protector-test.patch b/bsp/buildroot/package/ipmiutil/0003-configure.ac-fix-stack-protector-test.patch deleted file mode 100644 index d6ad6045..00000000 --- a/bsp/buildroot/package/ipmiutil/0003-configure.ac-fix-stack-protector-test.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: Baruch Siach -Date: Tue, 27 Oct 2015 13:58:24 +0200 -Subject: [PATCH] configure.ac: fix stack protector test - -gcc does not generate stack protection check code for function that does not -use its stack. Some toolchain (most notable uClibc based) accept the --fstack-protector option, but don't provide libssp. The current test will -incorrectly identify this case, leading to link failures like: - -ipmiutil.o: In function `main': -ipmiutil.c:(.text.startup+0x1c0): undefined reference to -`__stack_chk_fail_local' -ialarms.o: In function `get_alarms_picmg': -ialarms.c:(.text+0x1c5): undefined reference to `__stack_chk_fail_local' -ialarms.o: In function `.L46': -ialarms.c:(.text+0x362): undefined reference to `__stack_chk_fail_local' -ialarms.o: In function `get_enc_leds': -ialarms.c:(.text+0x45f): undefined reference to `__stack_chk_fail_local' - -Add stack usage code to the test to correctly identify missing libssp. - -Patch status: sent upstream -(http://sourceforge.net/p/ipmiutil/mailman/message/34572536/) - -Signed-off-by: Baruch Siach ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 41b6ea89167a..f3f60fb9ff69 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -334,7 +334,7 @@ else - rm -f $tmpc $tmpo >/dev/null 2>&1 - echo $ECHO_N "checking compile fortify flags ... $ECHO_C" - cfhard="-fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" -- echo "int main() { return(1); }" >$tmpc -+ echo "int main() { alloca(100); return(1); }" >$tmpc - $CC -o $tmpo $cfhard $tmpc >/dev/null 2>&1 - if test $? -ne 0 ; then - cfhard= --- -2.6.1 - diff --git a/bsp/buildroot/package/ipmiutil/ipmiutil.hash b/bsp/buildroot/package/ipmiutil/ipmiutil.hash index 35a0bd36..f9d086b6 100644 --- a/bsp/buildroot/package/ipmiutil/ipmiutil.hash +++ b/bsp/buildroot/package/ipmiutil/ipmiutil.hash @@ -1,2 +1,4 @@ # From http://sourceforge.net/projects/ipmiutil/files/?source=navbar -sha1 cc26d977afc87717812ef25aa02b2d5ab84843c4 ipmiutil-2.9.7.tar.gz +sha1 f423a77a374b6a37a16496844f1e6e363e7d63fe ipmiutil-2.9.9.tar.gz +# Locally computed +sha256 beace08386a002c6a4bbbf894bda9899ea34fae4c2181c89f29fb1fa136925f6 ipmiutil-2.9.9.tar.gz diff --git a/bsp/buildroot/package/ipmiutil/ipmiutil.mk b/bsp/buildroot/package/ipmiutil/ipmiutil.mk index 30d0f966..392856cc 100644 --- a/bsp/buildroot/package/ipmiutil/ipmiutil.mk +++ b/bsp/buildroot/package/ipmiutil/ipmiutil.mk @@ -4,11 +4,11 @@ # ################################################################################ -IPMIUTIL_VERSION = 2.9.7 +IPMIUTIL_VERSION = 2.9.9 IPMIUTIL_SITE = http://sourceforge.net/projects/ipmiutil/files IPMIUTIL_LICENSE = BSD-3c IPMIUTIL_LICENSE_FILES = COPYING -# We're patching configure.ac, lib/Makefile.am +# We're patching configure.ac IPMIUTIL_AUTORECONF = YES IPMIUTIL_MAKE = $(MAKE1) diff --git a/bsp/buildroot/package/iproute2/0001-Avoid-in6_addr-redefinition.patch b/bsp/buildroot/package/iproute2/0001-Avoid-in6_addr-redefinition.patch index 52e29408..3417339b 100644 --- a/bsp/buildroot/package/iproute2/0001-Avoid-in6_addr-redefinition.patch +++ b/bsp/buildroot/package/iproute2/0001-Avoid-in6_addr-redefinition.patch @@ -29,30 +29,14 @@ Original patch taken from http://git.alpinelinux.org/cgit/aports/tree/main/iproute2/musl-fixes.patch. Signed-off-by: Thomas Petazzoni +[Gustavo: drop ipt_kernel_headers.h chunk since no longer necessary] +Signed-off-by: Gustavo Zacarias --- - include/libiptc/ipt_kernel_headers.h | 2 -- include/linux/if_bridge.h | 1 - include/linux/netfilter.h | 2 -- include/linux/xfrm.h | 1 - - 4 files changed, 6 deletions(-) + 3 files changed, 4 deletions(-) -diff --git a/include/libiptc/ipt_kernel_headers.h b/include/libiptc/ipt_kernel_headers.h -index 7e87828..9566be5 100644 ---- a/include/libiptc/ipt_kernel_headers.h -+++ b/include/libiptc/ipt_kernel_headers.h -@@ -15,12 +15,10 @@ - #else /* libc5 */ - #include - #include --#include - #include - #include - #include - #include - #include --#include - #endif - #endif diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h index ee197a3..f823aa4 100644 --- a/include/linux/if_bridge.h diff --git a/bsp/buildroot/package/iproute2/0003-iproute2-fix-building-with-musl.patch b/bsp/buildroot/package/iproute2/0003-iproute2-fix-building-with-musl.patch deleted file mode 100644 index 377bf40b..00000000 --- a/bsp/buildroot/package/iproute2/0003-iproute2-fix-building-with-musl.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e445686215f44c95b8b777c4c7efe5318d48505e Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias -Date: Thu, 21 Jan 2016 15:14:44 -0300 -Subject: [PATCH] iproute2: fix building with musl -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We need limits.h for PATH_MAX, fixes: - -rt_names.c:364:13: error: ‘PATH_MAX’ undeclared (first use in this -function) - -Signed-off-by: Gustavo Zacarias ---- - lib/rt_names.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/rt_names.c b/lib/rt_names.c -index f6d17c0..b665d3e 100644 ---- a/lib/rt_names.c -+++ b/lib/rt_names.c -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #include - #include --- -2.4.10 - diff --git a/bsp/buildroot/package/iproute2/0003-iproute2-tc_bpf.c-fix-building-with-musl-libc..patch b/bsp/buildroot/package/iproute2/0003-iproute2-tc_bpf.c-fix-building-with-musl-libc..patch new file mode 100644 index 00000000..0342abef --- /dev/null +++ b/bsp/buildroot/package/iproute2/0003-iproute2-tc_bpf.c-fix-building-with-musl-libc..patch @@ -0,0 +1,37 @@ +From 01b287582f25cc3a8a36caee5ce13e14b9233f49 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Fri, 8 Apr 2016 09:52:55 -0300 +Subject: [PATCH] iproute2: tc_bpf.c: fix building with musl libc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We need limits.h for PATH_MAX, fixes: + +tc_bpf.c: In function ‘bpf_map_selfcheck_pinned’: +tc_bpf.c:222:12: error: ‘PATH_MAX’ undeclared (first use in this +function) + char file[PATH_MAX], buff[4096]; + +Signed-off-by: Gustavo Zacarias +--- +Patch status: submitted upstream + + tc/tc_bpf.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tc/tc_bpf.c b/tc/tc_bpf.c +index d94af82..042e76f 100644 +--- a/tc/tc_bpf.c ++++ b/tc/tc_bpf.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + #ifdef HAVE_ELF + #include +-- +2.7.3 + diff --git a/bsp/buildroot/package/iproute2/0004-iproute-no-iptables.patch b/bsp/buildroot/package/iproute2/0004-iproute-no-iptables.patch new file mode 100644 index 00000000..7f7f37b1 --- /dev/null +++ b/bsp/buildroot/package/iproute2/0004-iproute-no-iptables.patch @@ -0,0 +1,48 @@ +Fix build issues when there's no iptables present. + +Patch from Matt Whitlock +See https://bugs.gentoo.org/show_bug.cgi?id=577464 +Status: in theory submitted upstream by Lars Wendler. + +--- iproute2-4.5.0/configure~ 2016-03-14 23:02:31.000000000 +0000 ++++ iproute2-4.5.0/configure 2016-03-17 13:24:17.634743197 +0000 +@@ -169,10 +169,25 @@ + + check_ipt() + { +- if ! grep TC_CONFIG_XT Config > /dev/null ++ if grep -q TC_CONFIG_XT Config + then ++ return ++ fi ++ ++ cat >$TMPDIR/ipttest.c < ++int main() { return 0; } ++EOF ++ ++ if $CC -std=c90 -I$INCLUDE $IPTC -o $TMPDIR/ipttest $TMPDIR/ipttest.c $IPTL \ ++ $(${PKG_CONFIG} libiptc --cflags --libs 2>/dev/null) -ldl >/dev/null 2>&1 ++ then ++ echo "TC_CONFIG_IPT:=y" >>Config + echo "using iptables" ++ else ++ echo "no" + fi ++ rm -f $TMPDIR/ipttest.c $TMPDIR/ipttest + } + + check_ipt_lib_dir() +--- iproute2-4.5.0/tc/Makefile~ 2016-03-14 23:02:31.000000000 +0000 ++++ iproute2-4.5.0/tc/Makefile 2016-03-17 13:18:18.686689985 +0000 +@@ -88,7 +88,9 @@ + CFLAGS += -DTC_CONFIG_XT_H + TCSO += m_xt_old.so + else +- TCMODULES += m_ipt.o ++ ifeq ($(TC_CONFIG_IPT),y) ++ TCMODULES += m_ipt.o ++ endif + endif + endif + endif diff --git a/bsp/buildroot/package/iproute2/iproute2.hash b/bsp/buildroot/package/iproute2/iproute2.hash index d291d3de..1dafa8db 100644 --- a/bsp/buildroot/package/iproute2/iproute2.hash +++ b/bsp/buildroot/package/iproute2/iproute2.hash @@ -1,2 +1,2 @@ # From https://kernel.org/pub/linux/utils/net/iproute2/sha256sums.asc -sha256 bc91c367288a19f78ef800cd6840363be1f22da8436fbae88e1a7250490d6514 iproute2-4.4.0.tar.xz +sha256 3f15292f53e465cb5bd6652961343ca64eb6936309ae75be5d5a541435bc494a iproute2-4.5.0.tar.xz diff --git a/bsp/buildroot/package/iproute2/iproute2.mk b/bsp/buildroot/package/iproute2/iproute2.mk index 6fa68c2c..09e68c5e 100644 --- a/bsp/buildroot/package/iproute2/iproute2.mk +++ b/bsp/buildroot/package/iproute2/iproute2.mk @@ -4,7 +4,7 @@ # ################################################################################ -IPROUTE2_VERSION = 4.4.0 +IPROUTE2_VERSION = 4.5.0 IPROUTE2_SOURCE = iproute2-$(IPROUTE2_VERSION).tar.xz IPROUTE2_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/net/iproute2 IPROUTE2_DEPENDENCIES = host-bison host-flex host-pkgconf \ @@ -27,13 +27,13 @@ ifeq ($(BR2_PACKAGE_IPTABLES)x$(BR2_STATIC_LIBS),yx) IPROUTE2_DEPENDENCIES += iptables define IPROUTE2_WITH_IPTABLES # Makefile is busted so it never passes IPT_LIB_DIR properly - $(SED) "s/-DIPT/-DXT/" $(IPROUTE2_DIR)/tc/Makefile + $(SED) "s/-DIPT/-DXT/" $(@D)/tc/Makefile endef else define IPROUTE2_WITH_IPTABLES # em_ipset needs xtables, but configure misdetects it - echo "TC_CONFIG_IPSET:=n" >>$(IPROUTE2_DIR)/Config - echo "TC_CONFIG_XT:=n" >>$(IPROUTE2_DIR)/Config + echo "TC_CONFIG_IPSET:=n" >>$(@D)/Config + echo "TC_CONFIG_XT:=n" >>$(@D)/Config endef endif @@ -42,7 +42,7 @@ ifeq ($(BR2_PACKAGE_BERKELEYDB_COMPAT185)$(BR2_TOOLCHAIN_HAS_THREADS),yy) IPROUTE2_DEPENDENCIES += berkeleydb else define IPROUTE2_DISABLE_ARPD - $(SED) "/^TARGETS=/s: arpd : :" $(IPROUTE2_DIR)/misc/Makefile + echo "HAVE_BERKELEY_DB:=n" >> $(@D)/Config endef endif diff --git a/bsp/buildroot/package/iprutils/Config.in b/bsp/buildroot/package/iprutils/Config.in index 1bc58e81..42f372ce 100644 --- a/bsp/buildroot/package/iprutils/Config.in +++ b/bsp/buildroot/package/iprutils/Config.in @@ -6,6 +6,7 @@ config BR2_PACKAGE_IPRUTILS select BR2_PACKAGE_NCURSES_TARGET_MENU select BR2_PACKAGE_LIBSYSFS select BR2_PACKAGE_PCIUTILS + depends on BR2_USE_MMU # fork() depends on !BR2_bfin # pciutils help System utilities for IBM Power RAID devices diff --git a/bsp/buildroot/package/ipsec-tools/Config.in b/bsp/buildroot/package/ipsec-tools/Config.in index 4af40958..36c5a65a 100644 --- a/bsp/buildroot/package/ipsec-tools/Config.in +++ b/bsp/buildroot/package/ipsec-tools/Config.in @@ -1,8 +1,9 @@ config BR2_PACKAGE_IPSEC_TOOLS bool "ipsec-tools" + depends on BR2_USE_MMU # fork() + depends on !BR2_TOOLCHAIN_USES_MUSL # Use __P() macro all over the tree select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_FLEX - depends on BR2_USE_MMU # fork() help This package is required to support IPSec for Linux 2.6+ diff --git a/bsp/buildroot/package/iptables/0003-extensions-added-AR-substitution.patch b/bsp/buildroot/package/iptables/0003-extensions-added-AR-substitution.patch new file mode 100644 index 00000000..b522ba74 --- /dev/null +++ b/bsp/buildroot/package/iptables/0003-extensions-added-AR-substitution.patch @@ -0,0 +1,33 @@ +From eca9b91b832dfc27d0e1a6d08e2ce4878f229373 Mon Sep 17 00:00:00 2001 +From: Jordan Yelloz +Date: Fri, 24 Jun 2016 12:18:45 -0700 +Subject: [PATCH] extensions: added AR substitution + +This is to ensure that the correct AR is run in cross-compile jobs. +Often a cross-compile build will succeed without this change but it +fails on my Gentoo Linux system when I have binutils installed with the +"multitarget" USE flag. +This change substitues AR with the autotools-supplied AR for the +extensions subdirectory. + +Signed-off-by: Jordan Yelloz +Signed-off-by: Pablo Neira Ayuso +--- + extensions/GNUmakefile.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/extensions/GNUmakefile.in b/extensions/GNUmakefile.in +index 53be2cd..33b06ef 100644 +--- a/extensions/GNUmakefile.in ++++ b/extensions/GNUmakefile.in +@@ -11,6 +11,7 @@ libdir = @libdir@ + libexecdir = @libexecdir@ + xtlibdir = @xtlibdir@ + ++AR = @AR@ + CC = @CC@ + CCLD = ${CC} + CFLAGS = @CFLAGS@ +-- +2.7.4 + diff --git a/bsp/buildroot/package/iptables/Config.in b/bsp/buildroot/package/iptables/Config.in index c7b69a8d..cdcd1c28 100644 --- a/bsp/buildroot/package/iptables/Config.in +++ b/bsp/buildroot/package/iptables/Config.in @@ -22,14 +22,14 @@ config BR2_PACKAGE_IPTABLES_NFTABLES # uses dlfcn depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_LIBNFTNL help Build nftables compat utilities. -comment "nftables compat needs a toolchain w/ wchar, dynamic library, headers >= 3.4" - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 || \ +comment "nftables compat needs a toolchain w/ wchar, dynamic library, headers >= 3.12" + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \ !BR2_USE_WCHAR || BR2_STATIC_LIBS endif diff --git a/bsp/buildroot/package/iptables/iptables.mk b/bsp/buildroot/package/iptables/iptables.mk index 12e00f23..a8ebec88 100644 --- a/bsp/buildroot/package/iptables/iptables.mk +++ b/bsp/buildroot/package/iptables/iptables.mk @@ -16,6 +16,7 @@ IPTABLES_LICENSE_FILES = COPYING IPTABLES_CONF_OPTS = --libexecdir=/usr/lib --with-kernel=$(STAGING_DIR)/usr \ $(if $(BR2_STATIC_LIBS),,--disable-static) # For 0002-iptables-add-xtables-config-parser.h-to-BUILT_SOURCES.patch +# and 0003-extensions-added-AR-substitution.patch IPTABLES_AUTORECONF = YES # For connlabel match diff --git a/bsp/buildroot/package/iptraf-ng/iptraf-ng.mk b/bsp/buildroot/package/iptraf-ng/iptraf-ng.mk index 73138739..a36c7089 100644 --- a/bsp/buildroot/package/iptraf-ng/iptraf-ng.mk +++ b/bsp/buildroot/package/iptraf-ng/iptraf-ng.mk @@ -10,6 +10,10 @@ IPTRAF_NG_LICENSE = GPLv2+ IPTRAF_NG_LICENSE_FILES = LICENSE IPTRAF_NG_DEPENDENCIES = ncurses -IPTRAF_NG_MAKE_ENV = NCURSES_LDFLAGS="-lpanel -lncurses" +IPTRAF_NG_MAKE_ENV = \ + NCURSES_LDFLAGS="-lpanel -lncurses" + +IPTRAF_NG_CONF_ENV = \ + CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/iputils/0001-ping-link-against-libm.patch b/bsp/buildroot/package/iputils/0001-ping-link-against-libm.patch deleted file mode 100644 index d151c5bf..00000000 --- a/bsp/buildroot/package/iputils/0001-ping-link-against-libm.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8d189e73e660a637ae3f5a604448103ea42e397d Mon Sep 17 00:00:00 2001 -From: Martin Bark -Date: Fri, 12 Feb 2016 16:52:19 +0000 -Subject: [PATCH] ping: link against libm - -This commit links ping against libm because ping.c calls the math library -function finite(). - -Signed-off-by: Martin Bark ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 8b37c42..fb80f6f 100644 ---- a/Makefile -+++ b/Makefile -@@ -156,7 +156,7 @@ LIB_clockdiff = $(LIB_CAP) - DEF_ping_common = $(DEF_CAP) $(DEF_IDN) - DEF_ping6_common = $(DEF_CAP) $(DEF_IDN) - DEF_ping = $(DEF_CAP) $(DEF_IDN) $(DEF_WITHOUT_IFADDRS) --LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_RESOLV) -+LIB_ping = $(LIB_CAP) $(LIB_IDN) $(LIB_RESOLV) -lm - - ping: ping_common.o ping6_common.o - ping.o ping_common.o ping6_common.o: ping.h in6_flowlabel.h --- -2.7.0 - diff --git a/bsp/buildroot/package/iputils/Config.in b/bsp/buildroot/package/iputils/Config.in index 40580d23..c83e414c 100644 --- a/bsp/buildroot/package/iputils/Config.in +++ b/bsp/buildroot/package/iputils/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_IPUTILS bool "iputils" - select BR2_PACKAGE_OPENSSL depends on BR2_USE_MMU # fork() help This package is set of small useful utilities for Linux networking. diff --git a/bsp/buildroot/package/iputils/iputils.hash b/bsp/buildroot/package/iputils/iputils.hash index e32e1341..d7d3f5cb 100644 --- a/bsp/buildroot/package/iputils/iputils.hash +++ b/bsp/buildroot/package/iputils/iputils.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 0e98cb527fa175d1e08afb969c124e452b30968f10ec2c3b078f1440c8977a94 iputils-c8ff6feaf0442f8efd96ccb415770c54f9e84d47.tar.gz +sha256 79e22e940b6f52c37810657c8f12e7ba85692b517d6cd6e90cbceac2d94fc5e8 iputils-55828d1fef3fed7f07abcbf7be9282a9662e78c7.tar.gz diff --git a/bsp/buildroot/package/iputils/iputils.mk b/bsp/buildroot/package/iputils/iputils.mk index 6392decf..0a891203 100644 --- a/bsp/buildroot/package/iputils/iputils.mk +++ b/bsp/buildroot/package/iputils/iputils.mk @@ -11,12 +11,11 @@ # and IPv6 updates. # http://www.spinics.net/lists/netdev/msg279881.html -IPUTILS_VERSION = c8ff6feaf0442f8efd96ccb415770c54f9e84d47 +IPUTILS_VERSION = 55828d1fef3fed7f07abcbf7be9282a9662e78c7 IPUTILS_SITE = $(call github,iputils,iputils,$(IPUTILS_VERSION)) IPUTILS_LICENSE = GPLv2+, BSD-3c, BSD-4c # Only includes a license file for BSD IPUTILS_LICENSE_FILES = ninfod/COPYING -IPUTILS_DEPENDENCIES = openssl # Build after busybox so target ends up with this package's full # versions of the applications instead of busybox applets. @@ -34,6 +33,34 @@ else IPUTILS_MAKE_OPTS += USE_CAP=no endif +ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) +IPUTILS_MAKE_OPTS += USE_GCRYPT=yes +IPUTILS_DEPENDENCIES += libgcrypt +# When gettext is enabled (BR2_PACKAGE_GETTEXT=y), and provides libintl +# (BR2_NEEDS_GETTEXT=y), libgpg-error will link with libintl, and libgpg-error +# is pulled in by libgcrypt. Since iputils doesn't use libtool, we have to link +# with libintl explicitly for static linking. +ifeq ($(BR2_STATIC_LIBS)$(BR2_NEEDS_GETTEXT)$(BR2_PACKAGE_GETTEXT),yyy) +IPUTILS_MAKE_OPTS += ADDLIB='-lintl' +endif +else +IPUTILS_MAKE_OPTS += USE_GCRYPT=no +endif + +ifeq ($(BR2_PACKAGE_NETTLE),y) +IPUTILS_MAKE_OPTS += USE_NETTLE=yes +IPUTILS_DEPENDENCIES += nettle +else +IPUTILS_MAKE_OPTS += USE_NETTLE=no +endif + +ifeq ($(BR2_PACKAGE_OPENSSL),y) +IPUTILS_MAKE_OPTS += USE_CRYPTO=yes +IPUTILS_DEPENDENCIES += openssl +else +IPUTILS_MAKE_OPTS += USE_CRYPTO=no +endif + define IPUTILS_BUILD_CMDS $(MAKE) -C $(@D) $(IPUTILS_MAKE_OPTS) endef @@ -46,7 +73,6 @@ define IPUTILS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 755 $(@D)/rdisc $(TARGET_DIR)/sbin/rdisc $(INSTALL) -D -m 755 $(@D)/tftpd $(TARGET_DIR)/usr/sbin/in.tftpd $(INSTALL) -D -m 755 $(@D)/tracepath $(TARGET_DIR)/bin/tracepath - $(INSTALL) -D -m 755 $(@D)/tracepath6 $(TARGET_DIR)/bin/tracepath6 $(INSTALL) -D -m 755 $(@D)/traceroute6 $(TARGET_DIR)/bin/traceroute6 endef diff --git a/bsp/buildroot/package/irqbalance/irqbalance.hash b/bsp/buildroot/package/irqbalance/irqbalance.hash new file mode 100644 index 00000000..032c4915 --- /dev/null +++ b/bsp/buildroot/package/irqbalance/irqbalance.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 f1b8115948bb9f0bc36b9d7143ee8be751a294bc189d311408e753acc37169c3 irqbalance-v1.0.9.tar.gz diff --git a/bsp/buildroot/package/irssi/0001-Fix-quote-around-macro-argument.patch b/bsp/buildroot/package/irssi/0001-Fix-quote-around-macro-argument.patch deleted file mode 100644 index d0509d5a..00000000 --- a/bsp/buildroot/package/irssi/0001-Fix-quote-around-macro-argument.patch +++ /dev/null @@ -1,46 +0,0 @@ -From a9d2f9ca6edb7a958ecb606f7db2055caad26a1e Mon Sep 17 00:00:00 2001 -From: Rodrigo Rebello -Date: Wed, 28 Oct 2015 13:38:21 -0200 -Subject: [PATCH 1/1] Fix quote around macro argument - -In m4/curses.m4, line 134, the 5th argument passed to AC_NCURSES was -surrounded by '"' instead of '[' and ']'. Because of that, the expansion -of AC_NCURSES in that case would produce the following line inside the -configure script (note the repeated double quotes): - - screen_manager=""ncurses on $withval/include"" - -That would cause the following error when configure was executed with -the "--with-ncurses=dir" argument: - - ./configure: line 13468: on: command not found - -Although in the case above the error doesn't actually influence the -build process ('screen_manager' isn't used anywhere in the script), -trying to execute 'on' might be harmful if it corresponded to an -existing command in the user's environment. - -Upstream-status: accepted, not yet released. -https://github.com/irssi/irssi/pull/344 - -Signed-off-by: Rodrigo Rebello ---- - m4/curses.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/m4/curses.m4 b/m4/curses.m4 -index 82b110f..41c0e6c 100644 ---- a/m4/curses.m4 -+++ b/m4/curses.m4 -@@ -131,7 +131,7 @@ AC_DEFUN([AC_CHECK_CURSES],[ - if test x$withval = xno ; then - search_ncurses=false - elif test x$withval != xyes ; then -- AC_NCURSES($withval/include, ncurses.h, -L$withval/lib -lncurses, -I$withval/include, "ncurses on $withval/include") -+ AC_NCURSES($withval/include, ncurses.h, -L$withval/lib -lncurses, -I$withval/include, [ncurses on $withval/include]) - fi - ) - --- -2.1.4 - diff --git a/bsp/buildroot/package/irssi/irssi.hash b/bsp/buildroot/package/irssi/irssi.hash index 0bfafe6d..fa49d859 100644 --- a/bsp/buildroot/package/irssi/irssi.hash +++ b/bsp/buildroot/package/irssi/irssi.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 3c9600cad2edf58f1d012febc1a0ba844274df6e331c01a9e935467705166807 irssi-0.8.17.tar.bz2 +sha256 c0a177f749757c2d171ebe49ab0f0dd9cf9374dea81ab01904d0549bcb057840 irssi-0.8.18.tar.xz diff --git a/bsp/buildroot/package/irssi/irssi.mk b/bsp/buildroot/package/irssi/irssi.mk index 176dce78..8272e440 100644 --- a/bsp/buildroot/package/irssi/irssi.mk +++ b/bsp/buildroot/package/irssi/irssi.mk @@ -4,15 +4,14 @@ # ################################################################################ -IRSSI_VERSION = 0.8.17 -IRSSI_SOURCE = irssi-$(IRSSI_VERSION).tar.bz2 +IRSSI_VERSION = 0.8.18 +IRSSI_SOURCE = irssi-$(IRSSI_VERSION).tar.xz # Do not use the github helper here. The generated tarball is *NOT* the # same as the one uploaded by upstream for the release. -IRSSI_SITE = https://github.com/irssi-import/irssi/releases/download/$(IRSSI_VERSION) +IRSSI_SITE = https://github.com/irssi/irssi/releases/download/$(IRSSI_VERSION) IRSSI_LICENSE = GPLv2+ IRSSI_LICENSE_FILES = COPYING IRSSI_DEPENDENCIES = host-pkgconf libglib2 ncurses -IRSSI_AUTORECONF = YES IRSSI_CONF_OPTS = \ --disable-glibtest \ diff --git a/bsp/buildroot/package/isl/isl.mk b/bsp/buildroot/package/isl/isl.mk index bb79039e..74de125b 100644 --- a/bsp/buildroot/package/isl/isl.mk +++ b/bsp/buildroot/package/isl/isl.mk @@ -12,7 +12,7 @@ ISL_SOURCE = isl-$(ISL_VERSION).tar.xz ISL_SITE = http://isl.gforge.inria.fr ISL_LICENSE = MIT ISL_LICENSE_FILES = LICENSE -ISL_DEPENDENCIES = gmp +HOST_ISL_DEPENDENCIES = host-gmp # Our libtool patch doesn't apply, and since this package is only # built for the host, we don't really care about it. diff --git a/bsp/buildroot/package/iw/iw.hash b/bsp/buildroot/package/iw/iw.hash index 424a71e5..f22ceb15 100644 --- a/bsp/buildroot/package/iw/iw.hash +++ b/bsp/buildroot/package/iw/iw.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/software/network/iw/sha256sums.asc -sha256 a6add81a51667649d8d7cfba783ab6a0f82e250a663a4065b13babdff3f6b220 iw-4.3.tar.xz +sha256 d1720c04bc26661d42e71d13746d5c3aeedb6bdf743f7d6b7b056f0abd345ee8 iw-4.7.tar.xz diff --git a/bsp/buildroot/package/iw/iw.mk b/bsp/buildroot/package/iw/iw.mk index 3c1767ae..6f3f3094 100644 --- a/bsp/buildroot/package/iw/iw.mk +++ b/bsp/buildroot/package/iw/iw.mk @@ -4,10 +4,10 @@ # ################################################################################ -IW_VERSION = 4.3 +IW_VERSION = 4.7 IW_SOURCE = iw-$(IW_VERSION).tar.xz IW_SITE = $(BR2_KERNEL_MIRROR)/software/network/iw -IW_LICENSE = iw license +IW_LICENSE = ISC IW_LICENSE_FILES = COPYING IW_DEPENDENCIES = host-pkgconf libnl IW_MAKE_OPTS = CC="$(TARGET_CC)" LD="$(TARGET_LD)" LDFLAGS="$(TARGET_LDFLAGS)" diff --git a/bsp/buildroot/package/jack2/0001-Add-support-for-nios2.patch b/bsp/buildroot/package/jack2/0001-Add-support-for-nios2.patch new file mode 100644 index 00000000..f6d60af2 --- /dev/null +++ b/bsp/buildroot/package/jack2/0001-Add-support-for-nios2.patch @@ -0,0 +1,34 @@ +From 3651f95d0433c84d2b67e30e68dd6140585535b0 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Tue, 19 Apr 2016 19:32:35 +0200 +Subject: [PATCH 1/1] Add support for nios2 + +When compiling jack on nios2, compilation fails because NGREGS is not +defined. Since this is only for debug output on segmentation faults, stub +the debug print out like it's been done for other platforms before. + +Inspired by +https://github.com/jackaudio/jack2/commit/d11bb095291d8880508c87adfe625bf2bcab1456 + +Signed-off-by: Bernd Kuhls +[Patch sent upstream: https://github.com/jackaudio/jack2/pull/199] +--- + dbus/sigsegv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dbus/sigsegv.c b/dbus/sigsegv.c +index 64c3986..ee12f91 100644 +--- a/dbus/sigsegv.c ++++ b/dbus/sigsegv.c +@@ -104,7 +104,7 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { + jack_error("info.si_errno = %d", info->si_errno); + jack_error("info.si_code = %d (%s)", info->si_code, si_code_str); + jack_error("info.si_addr = %p", info->si_addr); +-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) ++#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) && !defined(nios2) + for(i = 0; i < NGREG; i++) + jack_error("reg[%02d] = 0x" REGFORMAT, i, + #if defined(__powerpc64__) +-- +2.8.0.rc3 + diff --git a/bsp/buildroot/package/jack2/0002-Make-backtrace-support-depends-on-execinfo.h-existen.patch b/bsp/buildroot/package/jack2/0002-Make-backtrace-support-depends-on-execinfo.h-existen.patch new file mode 100644 index 00000000..719c6a83 --- /dev/null +++ b/bsp/buildroot/package/jack2/0002-Make-backtrace-support-depends-on-execinfo.h-existen.patch @@ -0,0 +1,67 @@ +From 4b2c73ad056aa327dc3b505410da68cf384317ba Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Mon, 16 May 2016 22:26:05 +0200 +Subject: [PATCH] Make backtrace support depends on execinfo.h existence + +In some C-libraries (like uclibc), backtrace support is optional, so the +execinfo.h file may not exist. + +This change adds the check for execinfo.h header and conditionnaly enable +backtrace support. + +This issue has been triggered by Buildroot farms: + http://autobuild.buildroot.org/results/391/391e71a988250ea66ec4dbee6f60fdce9eaf2766/build-end.log + +Signed-off-by: Samuel Martin +--- + dbus/sigsegv.c | 8 +++++++- + wscript | 1 + + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/dbus/sigsegv.c b/dbus/sigsegv.c +index ee12f91..0b31d89 100644 +--- a/dbus/sigsegv.c ++++ b/dbus/sigsegv.c +@@ -27,7 +27,9 @@ + #include + #include + #include +-#include ++#if defined(HAVE_EXECINFO_H) ++# include ++#endif /* defined(HAVE_EXECINFO_H) */ + #include + #ifndef NO_CPP_DEMANGLE + char * __cxa_demangle(const char * __mangled_name, char * __output_buffer, size_t * __length, int * __status); +@@ -161,12 +163,16 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { + bp = (void**)bp[0]; + } + #else ++# if defined(HAVE_EXECINFO_H) + jack_error("Stack trace (non-dedicated):"); + sz = backtrace(bt, 20); + strings = backtrace_symbols(bt, sz); + + for(i = 0; i < sz; ++i) + jack_error("%s", strings[i]); ++# else /* defined(HAVE_EXECINFO_H) */ ++ jack_error("Stack trace not available"); ++# endif /* defined(HAVE_EXECINFO_H) */ + #endif + jack_error("End of stack trace"); + exit (-1); +diff --git a/wscript b/wscript +index aef4bd8..63ba3aa 100644 +--- a/wscript ++++ b/wscript +@@ -166,6 +166,7 @@ def configure(conf): + if conf.env['BUILD_JACKDBUS'] != True: + conf.fatal('jackdbus was explicitly requested but cannot be built') + ++ conf.check_cc(header_name='execinfo.h', define_name="HAVE_EXECINFO_H", mandatory=False) + conf.check_cc(header_name='samplerate.h', define_name="HAVE_SAMPLERATE") + + if conf.is_defined('HAVE_SAMPLERATE'): +-- +2.8.2 + diff --git a/bsp/buildroot/package/jack2/0003-tests-define-__STDC_LIMIT_MACROS.patch b/bsp/buildroot/package/jack2/0003-tests-define-__STDC_LIMIT_MACROS.patch new file mode 100644 index 00000000..e4990b5c --- /dev/null +++ b/bsp/buildroot/package/jack2/0003-tests-define-__STDC_LIMIT_MACROS.patch @@ -0,0 +1,41 @@ +From c971aaab74ca6e7d4ac3a06bd26e7309dfc5da45 Mon Sep 17 00:00:00 2001 +From: Rahul Bedarkar +Date: Mon, 22 Aug 2016 19:04:47 +0530 +Subject: [PATCH] tests: define __STDC_LIMIT_MACROS + +With glibc 2.16, we get following build error when building jack2: + + [193/247] cxx: tests/iodelay.cpp -> build/tests/iodelay.cpp.4.o + ../tests/iodelay.cpp:171:43: error: 'UINT32_MAX' was not declared in this scope + ../tests/iodelay.cpp:171:55: error: 'UINT32_MAX' was not declared in this scope + ../tests/iodelay.cpp:172:44: error: 'UINT32_MAX' was not declared in this scope + ../tests/iodelay.cpp:172:56: error: 'UINT32_MAX' was not declared in this scope + +In glibc 2.17 or older version, Header defines these macros +for C++ only if explicitly requested by defining __STDC_LIMIT_MACROS. + +We can't use since it requires C++11 standard. + +This build issue found by Buildroot autobuilder. +http://autobuild.buildroot.net/results/369/369ce208ffea43dad75ba0a13469159b341e3bf5/ + +Signed-off-by: Rahul Bedarkar +--- + tests/iodelay.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/iodelay.cpp b/tests/iodelay.cpp +index 1ef470f..f5c5836 100644 +--- a/tests/iodelay.cpp ++++ b/tests/iodelay.cpp +@@ -20,6 +20,7 @@ + + #include + #include ++#define __STDC_LIMIT_MACROS + #include + #include + #include +-- +2.6.2 + diff --git a/bsp/buildroot/package/jack2/Config.in b/bsp/buildroot/package/jack2/Config.in index 94cb7e04..f9de7be0 100644 --- a/bsp/buildroot/package/jack2/Config.in +++ b/bsp/buildroot/package/jack2/Config.in @@ -11,6 +11,8 @@ config BR2_PACKAGE_JACK2 select BR2_PACKAGE_ALSA_LIB_HWDEP select BR2_PACKAGE_ALSA_LIB_SEQ select BR2_PACKAGE_ALSA_LIB_RAWMIDI + # Ensure we get at least one: + select BR2_PACKAGE_JACK2_LEGACY if !BR2_PACKAGE_JACK2_DBUS help JACK Audio Connection Kit (server and example clients). @@ -21,6 +23,30 @@ config BR2_PACKAGE_JACK2 http://jackaudio.org/ +if BR2_PACKAGE_JACK2 + +config BR2_PACKAGE_JACK2_LEGACY + bool "classic jack2" + help + Build and use jackd. + + https://github.com/jackaudio/jackaudio.github.com/wiki/JackDbusPackaging + +config BR2_PACKAGE_JACK2_DBUS + bool "dbus jack2" + depends on BR2_USE_WCHAR # dbus-python, python + select BR2_PACKAGE_DBUS + select BR2_PACKAGE_DBUS_PYTHON + select BR2_PACKAGE_PYTHON3 if !BR2_PACKAGE_PYTHON # runtime + select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime + select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime + help + Build and use jackdbus. + + https://github.com/jackaudio/jackaudio.github.com/wiki/JackDbusPackaging + +endif + comment "jack2 needs a toolchain w/ threads, C++, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 diff --git a/bsp/buildroot/package/jack2/jack2.hash b/bsp/buildroot/package/jack2/jack2.hash new file mode 100644 index 00000000..1b981a4b --- /dev/null +++ b/bsp/buildroot/package/jack2/jack2.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 88f1b6601b7c8950e6a2d5940b423a33ee628ae5583da40bdce3d9317d8c600d jack2-v1.9.10.tar.gz +sha256 f372c4300e3fb2c1ce053e47829df44f3f8b933feb820759392187723ae8e640 ff1ed2c4524095055140370c1008a2d9cccc5645.patch diff --git a/bsp/buildroot/package/jack2/jack2.mk b/bsp/buildroot/package/jack2/jack2.mk index 81508da7..f6ab974e 100644 --- a/bsp/buildroot/package/jack2/jack2.mk +++ b/bsp/buildroot/package/jack2/jack2.mk @@ -9,6 +9,7 @@ JACK2_SITE = $(call github,jackaudio,jack2,$(JACK2_VERSION)) JACK2_LICENSE = GPLv2+ (jack server), LGPLv2.1+ (jack library) JACK2_DEPENDENCIES = libsamplerate libsndfile alsa-lib host-python JACK2_INSTALL_STAGING = YES +JACK2_PATCH = https://github.com/jackaudio/jack2/commit/ff1ed2c4524095055140370c1008a2d9cccc5645.patch ifeq ($(BR2_PACKAGE_OPUS),y) JACK2_DEPENDENCIES += opus @@ -18,12 +19,36 @@ ifeq ($(BR2_PACKAGE_READLINE),y) JACK2_DEPENDENCIES += readline endif +ifeq ($(BR2_PACKAGE_JACK2_LEGACY),y) +JACK2_CONF_OPTS += --classic +else +define JACK2_REMOVE_JACK_CONTROL + $(RM) -f $(TARGET_DIR)/usr/bin/jack_control +endef +JACK2_POST_INSTALL_TARGET_HOOKS += JACK2_REMOVE_JACK_CONTROL +endif + +ifeq ($(BR2_PACKAGE_JACK2_DBUS),y) +JACK2_DEPENDENCIES += dbus +JACK2_CONF_OPTS += --dbus +endif + +# Even though it advertises support for celt-0.5.x, jack2 really +# requires celt >= 0.5.2 but we only have 0.5.1.3 and we cannot +# upgrade, so we do not add a dependency to celt051, which it can't +# find anyway as it looks for celt.pc but we only have celt-51.pc. + +# The dependency against eigen is only useful in conjunction with +# gtkiostream, which we do not have, so we don't need to depend on +# eigen. + define JACK2_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ $(HOST_DIR)/usr/bin/python2 ./waf configure \ --prefix=/usr \ --alsa \ + $(JACK2_CONF_OPTS) \ ) endef diff --git a/bsp/buildroot/package/jamvm/0001-Use-fenv.h-instead-of-fpu_control.h.patch b/bsp/buildroot/package/jamvm/0001-Use-fenv.h-instead-of-fpu_control.h.patch new file mode 100644 index 00000000..50f95cde --- /dev/null +++ b/bsp/buildroot/package/jamvm/0001-Use-fenv.h-instead-of-fpu_control.h.patch @@ -0,0 +1,86 @@ +From 7152ded5219453c9ff1cd062cecbeaf4d77e4cab Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 26 May 2016 15:05:48 +0200 +Subject: [PATCH] Use instead of + +musl libc (http://musl-libc.org lack the non-standard +header, which is used in src/os/linux/{i386,x86_64}/init.c files to +setup the floating point precision. This patch makes it use the +standard C header instead. + +Original patch at Felix Janda at +https://sourceforge.net/p/jamvm/patches/6/. + +Signed-off-by: Thomas Petazzoni +--- + src/os/linux/i386/init.c | 12 ++++++------ + src/os/linux/x86_64/init.c | 16 ++++++---------- + 2 files changed, 12 insertions(+), 16 deletions(-) + +diff --git a/src/os/linux/i386/init.c b/src/os/linux/i386/init.c +index d9c6648..94a733e 100644 +--- a/src/os/linux/i386/init.c ++++ b/src/os/linux/i386/init.c +@@ -19,18 +19,18 @@ + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +-#include ++#include + + /* Change floating point precision to double (64-bit) from + * the extended (80-bit) Linux default. */ + + void setDoublePrecision() { +- fpu_control_t cw; ++ fenv_t fenv; + +- _FPU_GETCW(cw); +- cw &= ~_FPU_EXTENDED; +- cw |= _FPU_DOUBLE; +- _FPU_SETCW(cw); ++ fegetenv(&fenv); ++ fenv.__control_word &= ~0x300; /* _FPU_EXTENDED */ ++ fenv.__control_word |= 0x200; /* _FPU_DOUBLE */ ++ fesetenv(&fenv); + } + + void initialisePlatform() { +diff --git a/src/os/linux/x86_64/init.c b/src/os/linux/x86_64/init.c +index 9d55229..a76a923 100644 +--- a/src/os/linux/x86_64/init.c ++++ b/src/os/linux/x86_64/init.c +@@ -19,9 +19,7 @@ + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +-#ifdef __linux__ +-#include +-#endif ++#include + + /* Change the x87 FPU precision to double (64-bit) from the extended + (80-bit) Linux default. Note, unlike on i386, my testcases pass +@@ -30,14 +28,12 @@ + */ + + void setDoublePrecision() { +-#ifdef __linux__ +- fpu_control_t cw; ++ fenv_t fenv; + +- _FPU_GETCW(cw); +- cw &= ~_FPU_EXTENDED; +- cw |= _FPU_DOUBLE; +- _FPU_SETCW(cw); +-#endif ++ fegetenv(&fenv); ++ fenv.__control_word &= ~0x300; /*_FPU_EXTENDED */ ++ fenv.__control_word |= 0x200; /*_FPU_DOUBLE */ ++ fesetenv(&fenv); + } + + void initialisePlatform() { +-- +2.7.4 + diff --git a/bsp/buildroot/package/jamvm/Config.in b/bsp/buildroot/package/jamvm/Config.in index 3b5ff3e5..2cc97a13 100644 --- a/bsp/buildroot/package/jamvm/Config.in +++ b/bsp/buildroot/package/jamvm/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_JAMVM bool "jamvm" depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_STATIC_LIBS depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \ || BR2_mips || BR2_mipsel || BR2_powerpc select BR2_PACKAGE_ZLIB @@ -11,7 +12,7 @@ config BR2_PACKAGE_JAMVM http://jamvm.sf.net -comment "jamvm needs a toolchain w/ threads" +comment "jamvm needs a toolchain w/ threads, dynamic library" depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64 \ || BR2_mips || BR2_mipsel || BR2_powerpc - depends on !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/janus-gateway/0001-disable-ssp.patch b/bsp/buildroot/package/janus-gateway/0001-disable-ssp.patch index 9ef184aa..f03b5858 100644 --- a/bsp/buildroot/package/janus-gateway/0001-disable-ssp.patch +++ b/bsp/buildroot/package/janus-gateway/0001-disable-ssp.patch @@ -5,6 +5,8 @@ the package user pass the appropriate CFLAGS to enable SSP if needed. Signed-off-by: Gregory Dymarek Signed-off-by: Thomas Petazzoni +(rebased against v0.1.0) +Signed-off-by: Bernd Kuhls diff -rupN janus-gateway-master.orig/Makefile.am janus-gateway-master/Makefile.am --- janus-gateway-master.orig/Makefile.am 2014-11-27 14:36:31.000000000 +0000 @@ -13,8 +15,8 @@ diff -rupN janus-gateway-master.orig/Makefile.am janus-gateway-master/Makefile.a # some fairly big refactoring though, which can wait. # AM_CFLAGS += -Wshadow -Wstrict-aliasing=2 --AM_CFLAGS += -fstack-protector-all -g -ggdb -fPIC -rdynamic -+AM_CFLAGS += -g -ggdb -fPIC -rdynamic +-AM_CFLAGS += -fstack-protector-all -g -ggdb -fPIC -rdynamic -pthread ++AM_CFLAGS += -g -ggdb -fPIC -rdynamic -pthread # FIXME: make docs work with distcheck DISTCHECK_CONFIGURE_FLAGS = --disable-docs --enable-post-processing diff --git a/bsp/buildroot/package/janus-gateway/0002-Add-test-for-Wunused-but-set-variable.patch b/bsp/buildroot/package/janus-gateway/0002-Add-test-for-Wunused-but-set-variable.patch index 14acae55..13bc21ea 100644 --- a/bsp/buildroot/package/janus-gateway/0002-Add-test-for-Wunused-but-set-variable.patch +++ b/bsp/buildroot/package/janus-gateway/0002-Add-test-for-Wunused-but-set-variable.patch @@ -14,6 +14,8 @@ and uses it to detect if the -Wunused-but-set-variable option is supported, and only uses it in this case. Signed-off-by: Thomas Petazzoni +(rebased against v0.1.0) +Signed-off-by: Bernd Kuhls --- Makefile.am | 2 +- configure.ac | 3 ++ @@ -29,11 +31,11 @@ index 5d23e0b..0f51f6a 100644 -Wnested-externs -Wstrict-prototypes -Wunsafe-loop-optimizations \ -Wwrite-strings -Wno-missing-field-initializers -Wno-unused-parameter \ -Wcast-align -Wformat-nonliteral -Wformat-security -Wswitch-default \ -- -Wmissing-include-dirs -Waggregate-return -Wunused-but-set-variable \ -+ -Wmissing-include-dirs -Waggregate-return @GCC_WARN_UNUSED_BUT_SET@ \ +- -Wmissing-include-dirs -Wno-aggregate-return -Wunused-but-set-variable \ ++ -Wmissing-include-dirs -Wno-aggregate-return @GCC_WARN_UNUSED_BUT_SET@ \ -Warray-bounds -Wold-style-definition -Wsign-compare -Wlarger-than=65537 AM_CFLAGS += -Wno-undef # sophiasip is not -Wundef--safe - AM_CFLAGS += -Wredundant-decls # sophiasip also contains redundant declarations + AM_CFLAGS += -Wno-redundant-decls # sophiasip also contains redundant declarations diff --git a/configure.ac b/configure.ac index 17870a7..f9bb1e4 100644 --- a/configure.ac diff --git a/bsp/buildroot/package/janus-gateway/Config.in b/bsp/buildroot/package/janus-gateway/Config.in index 1c00d323..20491b79 100644 --- a/bsp/buildroot/package/janus-gateway/Config.in +++ b/bsp/buildroot/package/janus-gateway/Config.in @@ -7,11 +7,11 @@ config BR2_PACKAGE_JANUS_GATEWAY select BR2_PACKAGE_LIBSRTP select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_DING_LIBS + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, libmicrohttpd depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, libmicrohttpd depends on BR2_USE_WCHAR # libnice -> libglib2 depends on BR2_USE_MMU # libnice depends on !BR2_STATIC_LIBS # dlopen - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libmicrohttpd help Janus is an open source, general purpose, WebRTC gateway designed and developed by Meetecho. @@ -21,4 +21,3 @@ config BR2_PACKAGE_JANUS_GATEWAY comment "janus-gateway needs a toolchain w/ dynamic library, threads, wchar" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/janus-gateway/janus-gateway.hash b/bsp/buildroot/package/janus-gateway/janus-gateway.hash new file mode 100644 index 00000000..fece97a5 --- /dev/null +++ b/bsp/buildroot/package/janus-gateway/janus-gateway.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 4d341a54d3eae5506c3e2409f4a6e4f5159dc4ece3197aaf077d3eb997e69a10 janus-gateway-v0.1.0.tar.gz diff --git a/bsp/buildroot/package/janus-gateway/janus-gateway.mk b/bsp/buildroot/package/janus-gateway/janus-gateway.mk index e1361d3d..d65ab19d 100644 --- a/bsp/buildroot/package/janus-gateway/janus-gateway.mk +++ b/bsp/buildroot/package/janus-gateway/janus-gateway.mk @@ -4,7 +4,7 @@ # ################################################################################ -JANUS_GATEWAY_VERSION = c632c1e9da5ffd8c34df6086a1aa5a8511a2a02d +JANUS_GATEWAY_VERSION = v0.1.0 JANUS_GATEWAY_SITE = $(call github,meetecho,janus-gateway,$(JANUS_GATEWAY_VERSION)) JANUS_GATEWAY_LICENSE = GPLv3 JANUS_GATEWAY_LICENSE_FILES = COPYING @@ -26,8 +26,8 @@ JANUS_GATEWAY_CONF_OPTS = \ --disable-data-channels \ --disable-rabbitmq -ifeq ($(BR2_PACKAGE_LIBWEBSOCK),y) -JANUS_GATEWAY_DEPENDENCIES += libwebsock +ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS),y) +JANUS_GATEWAY_DEPENDENCIES += libwebsockets JANUS_GATEWAY_CONF_OPTS += --enable-websockets else JANUS_GATEWAY_CONF_OPTS += --disable-websockets diff --git a/bsp/buildroot/package/jasper/0008-fix-CVE-2016-2116.patch b/bsp/buildroot/package/jasper/0008-fix-CVE-2016-2116.patch new file mode 100644 index 00000000..1ceb3952 --- /dev/null +++ b/bsp/buildroot/package/jasper/0008-fix-CVE-2016-2116.patch @@ -0,0 +1,18 @@ +Description: Prevent jas_stream_t memory leak in jas_iccprof_createfrombuf() +Author: Tyler Hicks + +From: http://seclists.org/oss-sec/2016/q1/att-507/CVE-2016-2116.patch + +Signed-off-by: Gustavo Zacarias + +--- jasper-1.900.1-debian1.orig/src/libjasper/base/jas_icc.c ++++ jasper-1.900.1-debian1/src/libjasper/base/jas_icc.c +@@ -1693,6 +1693,8 @@ jas_iccprof_t *jas_iccprof_createfrombuf + jas_stream_close(in); + return prof; + error: ++ if (in) ++ jas_stream_close(in); + return 0; + } + diff --git a/bsp/buildroot/package/jasper/0009-fix-CVE-2016-1577.patch b/bsp/buildroot/package/jasper/0009-fix-CVE-2016-1577.patch new file mode 100644 index 00000000..cfe8b45e --- /dev/null +++ b/bsp/buildroot/package/jasper/0009-fix-CVE-2016-1577.patch @@ -0,0 +1,18 @@ +Description: CVE-2016-1577: Prevent double-free in jas_iccattrval_destroy() +Author: Tyler Hicks +Bug-Ubuntu: https://launchpad.net/bugs/1547865 + +From: http://seclists.org/oss-sec/2016/q1/att-507/CVE-2016-1577.patch + +Signed-off-by: Gustavo Zacarias + +--- jasper-1.900.1-debian1.orig/src/libjasper/base/jas_icc.c ++++ jasper-1.900.1-debian1/src/libjasper/base/jas_icc.c +@@ -300,6 +300,7 @@ jas_iccprof_t *jas_iccprof_load(jas_stre + if (jas_iccprof_setattr(prof, tagtabent->tag, attrval)) + goto error; + jas_iccattrval_destroy(attrval); ++ attrval = 0; + } else { + #if 0 + jas_eprintf("warning: skipping unknown tag type\n"); diff --git a/bsp/buildroot/package/jasper/0010-fix-CVE-2016-1867.patch b/bsp/buildroot/package/jasper/0010-fix-CVE-2016-1867.patch new file mode 100644 index 00000000..33f34c35 --- /dev/null +++ b/bsp/buildroot/package/jasper/0010-fix-CVE-2016-1867.patch @@ -0,0 +1,16 @@ +From: http://pkgs.fedoraproject.org/cgit/rpms/jasper.git/plain/jasper-CVE-2016-1867.patch + +Signed-off-by: Gustavo Zacarias + +diff -urNp jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c jasper-1.900.1.new/src/libjasper/jpc/jpc_t2cod.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c 2016-08-11 14:34:31.795661973 +0200 ++++ jasper-1.900.1.new/src/libjasper/jpc/jpc_t2cod.c 2016-08-12 07:02:40.044860209 +0200 +@@ -429,7 +429,7 @@ static int jpc_pi_nextcprl(register jpc_ + } + + for (pi->compno = pchg->compnostart, pi->picomp = +- &pi->picomps[pi->compno]; pi->compno < JAS_CAST(int, pchg->compnoend); ++pi->compno, ++ &pi->picomps[pi->compno]; pi->compno < JAS_CAST(int, pchg->compnoend) && pi->compno < pi->numcomps; ++pi->compno, + ++pi->picomp) { + pirlvl = pi->picomp->pirlvls; + pi->xstep = pi->picomp->hsamp * (1 << (pirlvl->prcwidthexpn + diff --git a/bsp/buildroot/package/jasper/0011-fix-CVE-2015-5221.patch b/bsp/buildroot/package/jasper/0011-fix-CVE-2015-5221.patch new file mode 100644 index 00000000..7dcbdddd --- /dev/null +++ b/bsp/buildroot/package/jasper/0011-fix-CVE-2015-5221.patch @@ -0,0 +1,23 @@ +From: http://pkgs.fedoraproject.org/cgit/rpms/jasper.git/plain/jasper-CVE-2015-5221.patch + +Signed-off-by: Gustavo Zacarias + +diff -urNp jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c jasper-1.900.1.new/src/libjasper/mif/mif_cod.c +--- jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c 2016-08-11 13:46:26.166415464 +0200 ++++ jasper-1.900.1.new/src/libjasper/mif/mif_cod.c 2016-08-11 14:17:20.507144931 +0200 +@@ -569,13 +569,13 @@ static int mif_process_cmpt(mif_hdr_t *h + break; + } + } +- jas_tvparser_destroy(tvp); + if (!cmpt->sampperx || !cmpt->samppery) { + goto error; + } + if (mif_hdr_addcmpt(hdr, hdr->numcmpts, cmpt)) { + goto error; + } ++ jas_tvparser_destroy(tvp); + return 0; + + error: + diff --git a/bsp/buildroot/package/jasper/0012-fix-CVE-2015-5203.patch b/bsp/buildroot/package/jasper/0012-fix-CVE-2015-5203.patch new file mode 100644 index 00000000..50f0613c --- /dev/null +++ b/bsp/buildroot/package/jasper/0012-fix-CVE-2015-5203.patch @@ -0,0 +1,187 @@ +From: http://pkgs.fedoraproject.org/cgit/rpms/jasper.git/plain/jasper-CVE-2015-5203.patch + +Signed-off-by: Gustavo Zacarias + +diff -urNp jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1.new/src/libjasper/base/jas_stream.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2016-08-11 13:35:09.160895769 +0200 ++++ jasper-1.900.1.new/src/libjasper/base/jas_stream.c 2016-08-11 13:39:33.800843489 +0200 +@@ -99,7 +99,7 @@ static int jas_strtoopenmode(const char + static void jas_stream_destroy(jas_stream_t *stream); + static jas_stream_t *jas_stream_create(void); + static void jas_stream_initbuf(jas_stream_t *stream, int bufmode, char *buf, +- int bufsize); ++ size_t bufsize); + + static int mem_read(jas_stream_obj_t *obj, char *buf, int cnt); + static int mem_write(jas_stream_obj_t *obj, char *buf, int cnt); +@@ -168,7 +168,7 @@ static jas_stream_t *jas_stream_create() + return stream; + } + +-jas_stream_t *jas_stream_memopen(char *buf, int bufsize) ++jas_stream_t *jas_stream_memopen(char *buf, size_t bufsize) + { + jas_stream_t *stream; + jas_stream_memobj_t *obj; +@@ -570,7 +570,7 @@ int jas_stream_puts(jas_stream_t *stream + return 0; + } + +-char *jas_stream_gets(jas_stream_t *stream, char *buf, int bufsize) ++char *jas_stream_gets(jas_stream_t *stream, char *buf, size_t bufsize) + { + int c; + char *bufptr; +@@ -694,7 +694,7 @@ long jas_stream_tell(jas_stream_t *strea + \******************************************************************************/ + + static void jas_stream_initbuf(jas_stream_t *stream, int bufmode, char *buf, +- int bufsize) ++ size_t bufsize) + { + /* If this function is being called, the buffer should not have been + initialized yet. */ +@@ -987,7 +987,7 @@ static int mem_read(jas_stream_obj_t *ob + return cnt; + } + +-static int mem_resize(jas_stream_memobj_t *m, int bufsize) ++static int mem_resize(jas_stream_memobj_t *m, size_t bufsize) + { + unsigned char *buf; + +diff -urNp jasper-1.900.1.orig/src/libjasper/include/jasper/jas_stream.h jasper-1.900.1.new/src/libjasper/include/jasper/jas_stream.h +--- jasper-1.900.1.orig/src/libjasper/include/jasper/jas_stream.h 2007-01-19 22:43:04.000000000 +0100 ++++ jasper-1.900.1.new/src/libjasper/include/jasper/jas_stream.h 2016-08-11 13:41:27.841153595 +0200 +@@ -215,7 +215,7 @@ typedef struct { + uchar *bufstart_; + + /* The buffer size. */ +- int bufsize_; ++ size_t bufsize_; + + /* The current position in the buffer. */ + uchar *ptr_; +@@ -267,7 +267,7 @@ typedef struct { + uchar *buf_; + + /* The allocated size of the buffer for holding file data. */ +- int bufsize_; ++ size_t bufsize_; + + /* The length of the file. */ + int_fast32_t len_; +@@ -291,7 +291,7 @@ typedef struct { + jas_stream_t *jas_stream_fopen(const char *filename, const char *mode); + + /* Open a memory buffer as a stream. */ +-jas_stream_t *jas_stream_memopen(char *buf, int bufsize); ++jas_stream_t *jas_stream_memopen(char *buf, size_t bufsize); + + /* Open a file descriptor as a stream. */ + jas_stream_t *jas_stream_fdopen(int fd, const char *mode); +@@ -366,7 +366,7 @@ int jas_stream_printf(jas_stream_t *stre + int jas_stream_puts(jas_stream_t *stream, const char *s); + + /* Read a line of input from a stream. */ +-char *jas_stream_gets(jas_stream_t *stream, char *buf, int bufsize); ++char *jas_stream_gets(jas_stream_t *stream, char *buf, size_t bufsize); + + /* Look at the next character to be read from a stream without actually + removing it from the stream. */ +diff -urNp jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c jasper-1.900.1.new/src/libjasper/jpc/jpc_qmfb.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c 2016-08-11 13:35:09.170895681 +0200 ++++ jasper-1.900.1.new/src/libjasper/jpc/jpc_qmfb.c 2016-08-11 13:45:20.847809678 +0200 +@@ -305,7 +305,7 @@ jpc_qmfb2d_t jpc_ns_qmfb2d = { + void jpc_qmfb_split_row(jpc_fix_t *a, int numcols, int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numcols, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numcols, 1); + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; + jpc_fix_t *buf = splitbuf; + register jpc_fix_t *srcptr; +@@ -365,7 +365,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numrows, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numrows, 1); + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; + jpc_fix_t *buf = splitbuf; + register jpc_fix_t *srcptr; +@@ -425,7 +425,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numrows, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numrows, 1); + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; + jpc_fix_t *buf = splitbuf; + jpc_fix_t *srcptr; +@@ -506,7 +506,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + int stride, int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numrows, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numrows, 1); + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; + jpc_fix_t *buf = splitbuf; + jpc_fix_t *srcptr; +@@ -586,7 +586,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + void jpc_qmfb_join_row(jpc_fix_t *a, int numcols, int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numcols, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numcols, 1); + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; + jpc_fix_t *buf = joinbuf; + register jpc_fix_t *srcptr; +@@ -643,7 +643,7 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numrows, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numrows, 1); + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; + jpc_fix_t *buf = joinbuf; + register jpc_fix_t *srcptr; +@@ -700,7 +700,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numrows, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numrows, 1); + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; + jpc_fix_t *buf = joinbuf; + jpc_fix_t *srcptr; +@@ -778,7 +778,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + int stride, int parity) + { + +- int bufsize = JPC_CEILDIVPOW2(numrows, 1); ++ size_t bufsize = JPC_CEILDIVPOW2(numrows, 1); + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; + jpc_fix_t *buf = joinbuf; + jpc_fix_t *srcptr; +diff -urNp jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c jasper-1.900.1.new/src/libjasper/mif/mif_cod.c +--- jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c 2016-08-11 13:35:09.179895601 +0200 ++++ jasper-1.900.1.new/src/libjasper/mif/mif_cod.c 2016-08-11 13:46:26.166415464 +0200 +@@ -107,7 +107,7 @@ static int mif_hdr_put(mif_hdr_t *hdr, j + static int mif_hdr_addcmpt(mif_hdr_t *hdr, int cmptno, mif_cmpt_t *cmpt); + static mif_cmpt_t *mif_cmpt_create(void); + static void mif_cmpt_destroy(mif_cmpt_t *cmpt); +-static char *mif_getline(jas_stream_t *jas_stream, char *buf, int bufsize); ++static char *mif_getline(jas_stream_t *jas_stream, char *buf, size_t bufsize); + static int mif_getc(jas_stream_t *in); + static mif_hdr_t *mif_makehdrfromimage(jas_image_t *image); + +@@ -657,7 +657,7 @@ static void mif_cmpt_destroy(mif_cmpt_t + * MIF parsing code. + \******************************************************************************/ + +-static char *mif_getline(jas_stream_t *stream, char *buf, int bufsize) ++static char *mif_getline(jas_stream_t *stream, char *buf, size_t bufsize) + { + int c; + char *bufptr; diff --git a/bsp/buildroot/package/jemalloc/0001-Fix-LG_QUANTUM-definition-for-sparc64.patch b/bsp/buildroot/package/jemalloc/0001-Fix-LG_QUANTUM-definition-for-sparc64.patch new file mode 100644 index 00000000..ef5b857d --- /dev/null +++ b/bsp/buildroot/package/jemalloc/0001-Fix-LG_QUANTUM-definition-for-sparc64.patch @@ -0,0 +1,30 @@ +From b3211bd6363ee6884c8db64008dc325a9c711bfb Mon Sep 17 00:00:00 2001 +From: Eric Le Bihan +Date: Thu, 14 Jul 2016 22:44:01 +0200 +Subject: [PATCH] Fix LG_QUANTUM definition for sparc64 + +GCC 4.9.3 cross-compiled for sparc64 defines __sparc_v9__, not +__sparc64__ nor __sparcv9. This prevents LG_QUANTUM from being defined +properly. Adding this new value to the check solves the issue. + +Signed-off-by: Eric Le Bihan +--- + include/jemalloc/internal/jemalloc_internal.h.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/jemalloc/internal/jemalloc_internal.h.in b/include/jemalloc/internal/jemalloc_internal.h.in +index 51bf897..ece15b2 100644 +--- a/include/jemalloc/internal/jemalloc_internal.h.in ++++ b/include/jemalloc/internal/jemalloc_internal.h.in +@@ -234,7 +234,7 @@ typedef unsigned szind_t; + # ifdef __alpha__ + # define LG_QUANTUM 4 + # endif +-# if (defined(__sparc64__) || defined(__sparcv9)) ++# if (defined(__sparc64__) || defined(__sparcv9) || defined(__sparc_v9__)) + # define LG_QUANTUM 4 + # endif + # if (defined(__amd64__) || defined(__x86_64__) || defined(_M_X64)) +-- +2.4.11 + diff --git a/bsp/buildroot/package/jemalloc/Config.in b/bsp/buildroot/package/jemalloc/Config.in new file mode 100644 index 00000000..b1b92bb7 --- /dev/null +++ b/bsp/buildroot/package/jemalloc/Config.in @@ -0,0 +1,24 @@ +config BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS + bool + default y if BR2_arm || BR2_armeb + default y if BR2_aarch64 || BR2_aarch64_be + default y if BR2_i386 || BR2_x86_64 + default y if BR2_mips || BR2_mipsel + default y if BR2_sparc64 + default y if BR2_powerpc + default y if BR2_sh4 || BR2sh4eb || BR2_sh4a || BR2_sh4aeb + +config BR2_PACKAGE_JEMALLOC + bool "jemalloc" + depends on BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS + depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + This library providing a malloc(3) implementation that emphasizes + fragmentation avoidance and scalable concurrency support. + + http://www.canonware.com/jemalloc/ + +comment "jemalloc needs a toolchain w/ dynamic library, threads" + depends on BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS + depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/jemalloc/jemalloc.hash b/bsp/buildroot/package/jemalloc/jemalloc.hash new file mode 100644 index 00000000..b6c860ba --- /dev/null +++ b/bsp/buildroot/package/jemalloc/jemalloc.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 5630650d5c1caab95d2f0898de4fe5ab8519dc680b04963b38bb425ef6a42d57 jemalloc-4.2.1.tar.bz2 diff --git a/bsp/buildroot/package/jemalloc/jemalloc.mk b/bsp/buildroot/package/jemalloc/jemalloc.mk new file mode 100644 index 00000000..7086dfa9 --- /dev/null +++ b/bsp/buildroot/package/jemalloc/jemalloc.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# jemalloc +# +################################################################################ + +JEMALLOC_VERSION = 4.2.1 +JEMALLOC_SOURCE = jemalloc-$(JEMALLOC_VERSION).tar.bz2 +JEMALLOC_SITE = http://www.canonware.com/download/jemalloc +JEMALLOC_LICENSE = BSD-2c +JEMALLOC_LICENSE_FILES = COPYING +JEMALLOC_INSTALL_STAGING = YES + +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/jquery-datetimepicker/jquery-datetimepicker.hash b/bsp/buildroot/package/jquery-datetimepicker/jquery-datetimepicker.hash new file mode 100644 index 00000000..b6aba879 --- /dev/null +++ b/bsp/buildroot/package/jquery-datetimepicker/jquery-datetimepicker.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2f362a8acd149d1487a9460942f135d1037f01ee0cbfecba8c352fa2f79c34c9 jquery-datetimepicker-2.4.5.tar.gz diff --git a/bsp/buildroot/package/jquery-keyboard/jquery-keyboard.hash b/bsp/buildroot/package/jquery-keyboard/jquery-keyboard.hash new file mode 100644 index 00000000..7502867c --- /dev/null +++ b/bsp/buildroot/package/jquery-keyboard/jquery-keyboard.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 6a20a1cdc9367c218048125eeb6f78d775175a964b3b9b781a931b63c0f98c66 jquery-keyboard-v1.18.12.tar.gz diff --git a/bsp/buildroot/package/jquery-mobile/jquery-mobile.hash b/bsp/buildroot/package/jquery-mobile/jquery-mobile.hash new file mode 100644 index 00000000..3dfaa07a --- /dev/null +++ b/bsp/buildroot/package/jquery-mobile/jquery-mobile.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 7ed156b191dc3e262e3f450aede43adfb738ff0085afed87eb18fe4f43dfc681 jquery.mobile-1.4.3.zip diff --git a/bsp/buildroot/package/jquery-sparkline/jquery-sparkline.hash b/bsp/buildroot/package/jquery-sparkline/jquery-sparkline.hash new file mode 100644 index 00000000..d8088bce --- /dev/null +++ b/bsp/buildroot/package/jquery-sparkline/jquery-sparkline.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 06e0242da172ab85985db3774c54ac1b53391a5b447857a100c5118b8281a543 jquery.sparkline.min.js diff --git a/bsp/buildroot/package/jquery-ui-themes/jquery-ui-themes.hash b/bsp/buildroot/package/jquery-ui-themes/jquery-ui-themes.hash new file mode 100644 index 00000000..5441789b --- /dev/null +++ b/bsp/buildroot/package/jquery-ui-themes/jquery-ui-themes.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 90467a83abcb8d2471b0d53d21b4c09e2cf686d5350e10a6e84fa3f3616a840f jquery-ui-themes-1.10.4.zip diff --git a/bsp/buildroot/package/jquery-ui/jquery-ui.hash b/bsp/buildroot/package/jquery-ui/jquery-ui.hash new file mode 100644 index 00000000..daf89d09 --- /dev/null +++ b/bsp/buildroot/package/jquery-ui/jquery-ui.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c76f349930245360f4d1dea672b9a587f8938b536a378e20eeff919f7263f99f jquery-ui-1.10.4.zip diff --git a/bsp/buildroot/package/jsmin/Config.in.host b/bsp/buildroot/package/jsmin/Config.in.host new file mode 100644 index 00000000..25ec9bb8 --- /dev/null +++ b/bsp/buildroot/package/jsmin/Config.in.host @@ -0,0 +1,11 @@ +config BR2_PACKAGE_HOST_JSMIN + bool "host jsmin" + help + JSMin is a filter which removes comments and unnecessary + whitespace from JavaScript files. It typically reduces + filesize by half, resulting in faster downloads. It also + encourages a more expressive programming style because it + eliminates the download cost of clean, literate + self-documentation. + + http://www.crockford.com/javascript/jsmin.html diff --git a/bsp/buildroot/package/jsmin/jsmin.hash b/bsp/buildroot/package/jsmin/jsmin.hash new file mode 100644 index 00000000..6080f109 --- /dev/null +++ b/bsp/buildroot/package/jsmin/jsmin.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 aae127bf7291a7b2592f36599e5ed6c6423eac7abe0cd5992f82d6d46fe9ed2d jsmin-1bf6ce5f74a9f8752ac7f5d115b8d7ccb31cfe1b.tar.gz diff --git a/bsp/buildroot/package/json-c/json-c.hash b/bsp/buildroot/package/json-c/json-c.hash new file mode 100644 index 00000000..65508955 --- /dev/null +++ b/bsp/buildroot/package/json-c/json-c.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 99304a4a633f1ee281d6a521155a182824dd995139d5ed6ee5c93093c281092b json-c-json-c-0.12-20140410.tar.gz diff --git a/bsp/buildroot/package/json-glib/json-glib.hash b/bsp/buildroot/package/json-glib/json-glib.hash index dd8bf54a..18e1aa01 100644 --- a/bsp/buildroot/package/json-glib/json-glib.hash +++ b/bsp/buildroot/package/json-glib/json-glib.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/GNOME/sources/json-glib/0.14/json-glib-0.14.2.sha256sum -sha256 b816a5fa3e5664b08679a6972a6e5693d6cc1990ff4a6f94c07554db96be94a7 json-glib-0.14.2.tar.xz +# From http://ftp.gnome.org/pub/GNOME/sources/json-glib/1.2/json-glib-1.2.0.sha256sum +sha256 99d6dfbe49c08fd7529f1fe8dcb1893b810a1bb222f1e7b65f41507658b8a7d3 json-glib-1.2.0.tar.xz diff --git a/bsp/buildroot/package/json-glib/json-glib.mk b/bsp/buildroot/package/json-glib/json-glib.mk index cffe9580..f7c52c01 100644 --- a/bsp/buildroot/package/json-glib/json-glib.mk +++ b/bsp/buildroot/package/json-glib/json-glib.mk @@ -4,8 +4,8 @@ # ################################################################################ -JSON_GLIB_VERSION_MAJOR = 0.14 -JSON_GLIB_VERSION = $(JSON_GLIB_VERSION_MAJOR).2 +JSON_GLIB_VERSION_MAJOR = 1.2 +JSON_GLIB_VERSION = $(JSON_GLIB_VERSION_MAJOR).0 JSON_GLIB_SITE = http://ftp.gnome.org/pub/GNOME/sources/json-glib/$(JSON_GLIB_VERSION_MAJOR) JSON_GLIB_SOURCE = json-glib-$(JSON_GLIB_VERSION).tar.xz JSON_GLIB_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/json-javascript/json-javascript.hash b/bsp/buildroot/package/json-javascript/json-javascript.hash new file mode 100644 index 00000000..6216445c --- /dev/null +++ b/bsp/buildroot/package/json-javascript/json-javascript.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1a9dd4429e4bb4929dcb438f9591a3625bc8cc161f840b5f843d8b1d2c8dcfe5 json-javascript-3d7767b6b1f3da363c625ff54e63bbf20e9e83ac.tar.gz diff --git a/bsp/buildroot/package/jsoncpp/0001-CMakeLists.txt-Treat-conversion-warning-as-error-onl.patch b/bsp/buildroot/package/jsoncpp/0001-CMakeLists.txt-Treat-conversion-warning-as-error-onl.patch new file mode 100644 index 00000000..3e009b93 --- /dev/null +++ b/bsp/buildroot/package/jsoncpp/0001-CMakeLists.txt-Treat-conversion-warning-as-error-onl.patch @@ -0,0 +1,37 @@ +From 98a7f56ed41071240274063b2d4e39e4e1c9589f Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Mon, 25 Apr 2016 19:41:28 +0200 +Subject: [PATCH 1/1] CMakeLists.txt: Treat conversion warning as error only + with JSONCPP_WITH_WARNING_AS_ERROR=On + +Fixes errors when building with buildroot: +http://autobuild.buildroot.net/?reason=jsoncpp-1.7.2 + +Signed-off-by: Bernd Kuhls +(Patch sent upstream: + https://github.com/open-source-parsers/jsoncpp/pull/466) +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7787850..637fc34 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -107,11 +107,11 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Werror=conversion -Werror=sign-compare") + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # using GCC +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wextra -Werror=conversion") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wextra") + # not yet ready for -Wsign-conversion + + if (JSONCPP_WITH_STRICT_ISO AND NOT JSONCPP_WITH_WARNING_AS_ERROR) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=conversion -pedantic") + endif () + endif() + +-- +2.8.0.rc3 + diff --git a/bsp/buildroot/package/jsoncpp/0001-Remove-Werror.patch b/bsp/buildroot/package/jsoncpp/0001-Remove-Werror.patch deleted file mode 100644 index 178cbbf7..00000000 --- a/bsp/buildroot/package/jsoncpp/0001-Remove-Werror.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d7b84f69c5e92178e110552cce27f900744e1779 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Krause?= -Date: Thu, 30 Jul 2015 23:47:05 +0200 -Subject: [PATCH 1/1] Remove Werror -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - --Werror shouldn't be used in released code since it can cause random build -failures on moderate warnings. It also depends on the used toolchain since -different toolchains may or may not print the same warnings. - -Backported from: d7b84f69c5e92178e110552cce27f900744e1779 - -Signed-off-by: Jörg Krause ---- - CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index cab0de8..62bf203 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -97,10 +97,10 @@ endif( MSVC ) - - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - # using regular Clang or AppleClang -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror -Wall -Wconversion -Wshadow -Wno-sign-conversion") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wno-sign-conversion") - elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - # using GCC -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror -Wall -Wconversion -Wshadow -Wextra -pedantic") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wextra -pedantic") - # not yet ready for -Wsign-conversion - endif() - --- -2.5.0 - diff --git a/bsp/buildroot/package/jsoncpp/0002-Add-option-JSONCPP_WITH_STRICT_ISO.patch b/bsp/buildroot/package/jsoncpp/0002-Add-option-JSONCPP_WITH_STRICT_ISO.patch deleted file mode 100644 index f6172e93..00000000 --- a/bsp/buildroot/package/jsoncpp/0002-Add-option-JSONCPP_WITH_STRICT_ISO.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 9c5478562eba4bed32577a1dd7ce02b3bb7f6b4e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Krause?= -Date: Thu, 29 Oct 2015 09:19:41 +0100 -Subject: [PATCH 1/1] Add option JSONCPP_WITH_STRICT_ISO -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -'-pedantic' issues all warnings demanded by strict ISO C/C++; rejecting -extensions that do not follow ISO C/C++. Without this option, certain GNU -extensions and traditional C/C++ features are supported as well. - -With this option enabled building jsoncpp fails with the musl toolchain on -x86 because of an incompatible posix_memalign declaration [1]. Without -'-pedantic' there is no error anymore and jsoncpp builds fine. - -Add an option JSONCPP_WITH_STRICT_ISO to disable compilation with '-pedantic' -with GCC. If jsoncpp is build with the JSONCPP_WITH_WARNING_AS_ERROR option -'-pedantic-errors' is used instead. - -[1] https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01425.html - -Backported from: 48bfe910622d79507983fc36254ca9f3ca63acb6 - -Signed-off-by: Jörg Krause ---- - CMakeLists.txt | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 62bf203..60ecb6f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -7,6 +7,7 @@ ENABLE_TESTING() - OPTION(JSONCPP_WITH_TESTS "Compile and (for jsoncpp_check) run JsonCpp test executables" ON) - OPTION(JSONCPP_WITH_POST_BUILD_UNITTEST "Automatically run unit-tests as a post build step" ON) - OPTION(JSONCPP_WITH_WARNING_AS_ERROR "Force compilation to fail if a warning occurs" OFF) -+OPTION(JSONCPP_WITH_STRICT_ISO "Issue all the warnings demanded by strict ISO C and ISO C++" ON) - OPTION(JSONCPP_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON) - OPTION(JSONCPP_WITH_CMAKE_PACKAGE "Generate and install cmake package files" OFF) - OPTION(BUILD_SHARED_LIBS "Build jsoncpp_lib as a shared library." OFF) -@@ -83,6 +84,9 @@ macro(UseCompilationWarningAsError) - # Only enabled in debug because some old versions of VS STL generate - # warnings when compiled in release configuration. - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /WX ") -+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") -+ if (JSONCPP_WITH_STRICT_ISO) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic-errors") - endif( MSVC ) - endmacro() - -@@ -100,8 +104,12 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wno-sign-conversion") - elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - # using GCC -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wextra -pedantic") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wconversion -Wshadow -Wextra") - # not yet ready for -Wsign-conversion -+ -+ if (JSONCPP_WITH_STRICT_ISO AND NOT JSONCPP_WITH_WARNING_AS_ERROR) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") -+ endif () - endif() - - IF(JSONCPP_WITH_WARNING_AS_ERROR) --- -2.6.2 - diff --git a/bsp/buildroot/package/jsoncpp/jsoncpp.hash b/bsp/buildroot/package/jsoncpp/jsoncpp.hash new file mode 100644 index 00000000..5b4bbcf7 --- /dev/null +++ b/bsp/buildroot/package/jsoncpp/jsoncpp.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 2179a7df19c1c6dc87e02c65b847efc914625a9b87df3e443d9610fc70c0f557 jsoncpp-1.7.2.tar.gz diff --git a/bsp/buildroot/package/jsoncpp/jsoncpp.mk b/bsp/buildroot/package/jsoncpp/jsoncpp.mk index 52db2cd2..34da14c0 100644 --- a/bsp/buildroot/package/jsoncpp/jsoncpp.mk +++ b/bsp/buildroot/package/jsoncpp/jsoncpp.mk @@ -4,7 +4,7 @@ # ################################################################################ -JSONCPP_VERSION = 1.6.5 +JSONCPP_VERSION = 1.7.2 JSONCPP_SITE = $(call github,open-source-parsers,jsoncpp,$(JSONCPP_VERSION)) JSONCPP_LICENSE = Public Domain or MIT JSONCPP_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/kbd/kbd.mk b/bsp/buildroot/package/kbd/kbd.mk index 9dabce13..0243c532 100644 --- a/bsp/buildroot/package/kbd/kbd.mk +++ b/bsp/buildroot/package/kbd/kbd.mk @@ -17,6 +17,6 @@ KBD_LICENSE = GPLv2+ KBD_LICENSE_FILES = COPYING KBD_AUTORECONF = YES -KBD_INSTALL_TARGET_OPTS += MKINSTALLDIRS=$(@D)/config/mkinstalldirs +KBD_INSTALL_TARGET_OPTS = MKINSTALLDIRS=$(@D)/config/mkinstalldirs DESTDIR=$(TARGET_DIR) install $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/kexec-lite/Config.in b/bsp/buildroot/package/kexec-lite/Config.in index fcc0d88b..97748dcc 100644 --- a/bsp/buildroot/package/kexec-lite/Config.in +++ b/bsp/buildroot/package/kexec-lite/Config.in @@ -14,7 +14,7 @@ config BR2_PACKAGE_KEXEC_LITE This package is a tiny implementation of the kexec userspace components, for devicetree-based platforms. -comment "kexec-lite needs a uClibc or (e)glibc toolchain w/ wchar, dynamic library" +comment "kexec-lite needs a uClibc or glibc toolchain w/ wchar, dynamic library" depends on BR2_powerpc || BR2_powerpc64 depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) diff --git a/bsp/buildroot/package/kexec/0001-vmcore-dmesg-Define-_GNU_SOURCE.patch b/bsp/buildroot/package/kexec/0001-vmcore-dmesg-Define-_GNU_SOURCE.patch new file mode 100644 index 00000000..adaac2f6 --- /dev/null +++ b/bsp/buildroot/package/kexec/0001-vmcore-dmesg-Define-_GNU_SOURCE.patch @@ -0,0 +1,38 @@ +Fix musl build + +Downloaded from http://patchwork.openembedded.org/patch/112685/ + +Signed-off-by: Bernd Kuhls + + +From d811875a41b4628040abaada3da29b7b9592e757 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 9 Jan 2016 17:16:16 -0800 +Subject: [PATCH] vmcore-dmesg: Define _GNU_SOURCE + +loff_t is guarded with _GNU_SOURCE on some C library implementations +e.g. musl since this type is not defined by POSIX. Define _GNU_SOURCE to +include this define, it should help compiling on musl while nothing +changes for glibc based systems since there _GNU_SOURCE is already +defined + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + vmcore-dmesg/vmcore-dmesg.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c +index 0364636..a8f56df 100644 +--- a/vmcore-dmesg/vmcore-dmesg.c ++++ b/vmcore-dmesg/vmcore-dmesg.c +@@ -1,4 +1,5 @@ + #define _XOPEN_SOURCE 600 ++#define _GNU_SOURCE + #define _LARGEFILE_SOURCE 1 + #define _FILE_OFFSET_BITS 64 + #include +-- +2.7.0 + diff --git a/bsp/buildroot/package/kismet/0005-dumpfile_tuntap-don-t-include-linux-if_tun.h-kernel-.patch b/bsp/buildroot/package/kismet/0005-dumpfile_tuntap-don-t-include-linux-if_tun.h-kernel-.patch new file mode 100644 index 00000000..be694345 --- /dev/null +++ b/bsp/buildroot/package/kismet/0005-dumpfile_tuntap-don-t-include-linux-if_tun.h-kernel-.patch @@ -0,0 +1,51 @@ +From 1466cbbdef835634366b2eb3a284fdff5833338c Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 19 Aug 2016 23:30:06 +0200 +Subject: [PATCH] dumpfile_tuntap: don't include linux/if_tun.h kernel header + +dumpfile_tuntap.h mixes userspace and kernel headers. + +As suggested in the musl wiki [1], remove the linux/include directives +and copy the required definitions. + +[1] http://wiki.musl-libc.org/wiki/FAQ + +Signed-off-by: Romain Naour +--- + dumpfile_tuntap.h | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/dumpfile_tuntap.h b/dumpfile_tuntap.h +index 37f50b6..8b23a2a 100644 +--- a/dumpfile_tuntap.h ++++ b/dumpfile_tuntap.h +@@ -64,17 +64,18 @@ + #include "packetchain.h" + #include "dumpfile.h" + +-#ifdef SYS_LINUX +-#include ++#ifdef SYS_LINUX ++/* TUNSETIFF ifr flags */ ++#define IFF_TUN 0x0001 ++#define IFF_TAP 0x0002 ++#define IFF_NO_PI 0x1000 + + // Linux IEEE80211 link typ to set + #define LNX_LINKTYPE_80211 801 +-// If the system headers don't have the TUNSETLINK ioctl, define it here, +-// and we'll figure it out at runtime +-#ifndef TUNSETLINK +-#define TUNSETLINK _IOW('T', 205, int) +-#endif +- ++/* Ioctl defines */ ++#define TUNSETNOCSUM _IOW('T', 200, int) ++#define TUNSETIFF _IOW('T', 202, int) ++#define TUNSETLINK _IOW('T', 205, int) + #endif + + struct ipc_dft_open { +-- +2.5.5 + diff --git a/bsp/buildroot/package/kismet/kismet.hash b/bsp/buildroot/package/kismet/kismet.hash new file mode 100644 index 00000000..e4dc5a48 --- /dev/null +++ b/bsp/buildroot/package/kismet/kismet.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 23b693baa29549b051e95e9d597b115bd94f7267c4677307ebd87f2a00e5a52b kismet-Kismet-2014-02-R1.tar.gz diff --git a/bsp/buildroot/package/kmod/kmod.hash b/bsp/buildroot/package/kmod/kmod.hash index 75b819e3..8220fd49 100644 --- a/bsp/buildroot/package/kmod/kmod.hash +++ b/bsp/buildroot/package/kmod/kmod.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/linux/utils/kernel/kmod/sha256sums.asc -sha256 ba3b1ddea33228b473189fcb05b809024a3b86e9a7cf37d420cae06beb749f82 kmod-22.tar.xz +sha256 d303d5519faec9d69e1132f6b37db2579db17a7fb5c1517da0115d03ba168155 kmod-23.tar.xz diff --git a/bsp/buildroot/package/kmod/kmod.mk b/bsp/buildroot/package/kmod/kmod.mk index 2b9d0029..1753b1d5 100644 --- a/bsp/buildroot/package/kmod/kmod.mk +++ b/bsp/buildroot/package/kmod/kmod.mk @@ -4,7 +4,7 @@ # ################################################################################ -KMOD_VERSION = 22 +KMOD_VERSION = 23 KMOD_SOURCE = kmod-$(KMOD_VERSION).tar.xz KMOD_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kmod KMOD_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/kmsxx/0001-Fix-LTO-support-for-cross-compilation.patch b/bsp/buildroot/package/kmsxx/0001-Fix-LTO-support-for-cross-compilation.patch new file mode 100644 index 00000000..280583af --- /dev/null +++ b/bsp/buildroot/package/kmsxx/0001-Fix-LTO-support-for-cross-compilation.patch @@ -0,0 +1,45 @@ +From 5da1f631bc753655ac94b08a6233eecd0d451327 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" +Date: Fri, 26 Aug 2016 21:55:06 +0200 +Subject: [PATCH] Fix LTO support for cross-compilation. + +When cross-compiling, the ar and ranlib to be used for LTO are prefixed +by the cross-tuple. gcc-ar and gcc-ranlib may not exist. Cfr. +http://autobuild.buildroot.net/results/f3c/f3c48da3a9706cd366c0e0a96c3cd0ff959f2a78/ + +Therefore, search for an appropriate lto-ar and lto-ranlib before +enabling LTO. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- +Submitted upstream: https://github.com/tomba/kmsxx/pull/14 +--- + CMakeLists.txt | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e5b5ea5..c61c81d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,9 +39,15 @@ if (NOT ${U_CMAKE_BUILD_TYPE} MATCHES DEBUG) + CHECK_CXX_COMPILER_FLAG("-flto" HAS_LTO_FLAG) + + if (HAS_LTO_FLAG) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") +- set(CMAKE_AR gcc-ar) +- set(CMAKE_RANLIB gcc-ranlib) ++ find_program(LTO_AR NAMES "${CMAKE_C_COMPILER}-ar" gcc-ar) ++ find_program(LTO_RANLIB NAMES "${CMAKE_C_COMPILER}-ranlib" gcc-ranlib) ++ if (LTO_AR AND LTO_RANLIB) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") ++ set(CMAKE_AR "${LTO_AR}") ++ set(CMAKE_RANLIB "${LTO_RANLIB}") ++ else() ++ message(STATUS "gcc-ar or gcc-ranlib not found, disabling LTO") ++ endif() + endif() + endif() + +-- +2.9.3 + diff --git a/bsp/buildroot/package/kmsxx/Config.in b/bsp/buildroot/package/kmsxx/Config.in new file mode 100644 index 00000000..1d174c18 --- /dev/null +++ b/bsp/buildroot/package/kmsxx/Config.in @@ -0,0 +1,26 @@ +config BR2_PACKAGE_KMSXX + bool "kms++" + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm + select BR2_PACKAGE_LIBDRM + help + libkms++ is a C++11 library for kernel mode setting. + + Also included are simple test tools for KMS. + + https://github.com/tomba/kmsxx + +if BR2_PACKAGE_KMSXX + +config BR2_PACKAGE_KMSXX_INSTALL_TESTS + bool "Install test programs" + help + This option allows to install the kmsxx test programs. + +endif + +comment "kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 3.8" + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8 diff --git a/bsp/buildroot/package/kmsxx/kmsxx.hash b/bsp/buildroot/package/kmsxx/kmsxx.hash new file mode 100644 index 00000000..9e75bb9e --- /dev/null +++ b/bsp/buildroot/package/kmsxx/kmsxx.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ff8bdb84a738477a8740c835e23c5bb59aac750e9e72a4afcad4ec8820ec7da2 kmsxx-bd5f6471e619a6ba2987bc7f66ef78a531f94d6c.tar.gz diff --git a/bsp/buildroot/package/kmsxx/kmsxx.mk b/bsp/buildroot/package/kmsxx/kmsxx.mk new file mode 100644 index 00000000..730292eb --- /dev/null +++ b/bsp/buildroot/package/kmsxx/kmsxx.mk @@ -0,0 +1,54 @@ +################################################################################ +# +# kmsxx +# +################################################################################ + +KMSXX_VERSION = bd5f6471e619a6ba2987bc7f66ef78a531f94d6c +KMSXX_SITE = $(call github,tomba,kmsxx,$(KMSXX_VERSION)) +KMSXX_LICENSE = MPLv2.0 +KMSXX_LICENSE_FILES = LICENSE +KMSXX_INSTALL_STAGING = YES +KMSXX_DEPENDENCIES = libdrm host-pkgconf +KMSXX_CONF_OPTS = -DKMSXX_ENABLE_PYTHON=OFF + +ifeq ($(BR2_PACKAGE_KMSXX_INSTALL_TESTS),y) +KMSXX_TESTS = \ + fbtestpat kmsblank kmscapture \ + kmsprint kmsview testpat wbcap \ + wbm2m + +define KMSXX_INSTALL_TARGET_TESTS + $(foreach t,$(KMSXX_TESTS),\ + $(INSTALL) -D -m 0755 $(@D)/bin/$(t) \ + $(TARGET_DIR)/usr/bin/$(t) + ) +endef +endif + +KMSXX_LIBS = kms++ kms++util + +define KMSXX_INSTALL_TARGET_CMDS + $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS), + $(foreach l,$(KMSXX_LIBS),\ + $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).so \ + $(TARGET_DIR)/usr/lib/lib$(l).so + ) + ) + $(KMSXX_INSTALL_TARGET_TESTS) +endef + +define KMSXX_INSTALL_STAGING_CMDS + $(foreach l,$(KMSXX_LIBS),\ + $(if $(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS), + $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).so \ + $(STAGING_DIR)/usr/lib/lib$(l).so) + $(if $(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS), + $(INSTALL) -D -m 0755 $(@D)/lib/lib$(l).a \ + $(STAGING_DIR)/usr/lib/lib$(l).a) + mkdir -p $(STAGING_DIR)/usr/include/$(l) + cp -dpfr $(@D)/$(l)/inc/$(l)/* $(STAGING_DIR)/usr/include/$(l)/ + ) +endef + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-addon-xvdr/Config.in b/bsp/buildroot/package/kodi-addon-xvdr/Config.in index 6e713af6..85e9d600 100644 --- a/bsp/buildroot/package/kodi-addon-xvdr/Config.in +++ b/bsp/buildroot/package/kodi-addon-xvdr/Config.in @@ -1,5 +1,7 @@ config BR2_PACKAGE_KODI_ADDON_XVDR bool "kodi-addon-xvdr" + # upstream discontinued the development + depends on BR2_DEPRECATED_SINCE_2016_05 help This is a PVR add-on for Kodi to add VDR (http://tvdr.de/) as a TV/PVR Backend to Kodi. diff --git a/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.hash b/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.hash new file mode 100644 index 00000000..933c7b8d --- /dev/null +++ b/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 783796eccc19c639c59b7a05cad1df705d557993b15cc7e29f7dbbd8388d698b kodi-addon-xvdr-ae66610bc2e1a3efe49f4fa0db55ff3a7808a247.tar.gz diff --git a/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.mk b/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.mk index eff053ea..ac7f3cb0 100644 --- a/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.mk +++ b/bsp/buildroot/package/kodi-addon-xvdr/kodi-addon-xvdr.mk @@ -4,10 +4,10 @@ # ################################################################################ -# This cset is on master. When a Isengard branch is made, we should +# This cset is on master. When a Jarvis branch is made, we should # follow it, as incompatible changes in the plugins API can happen # on the master branch. -KODI_ADDON_XVDR_VERSION = 88265b86896513a219acb8d5f0c0f77956fae939 +KODI_ADDON_XVDR_VERSION = ae66610bc2e1a3efe49f4fa0db55ff3a7808a247 KODI_ADDON_XVDR_SITE = $(call github,pipelka,xbmc-addon-xvdr,$(KODI_ADDON_XVDR_VERSION)) KODI_ADDON_XVDR_LICENSE = GPLv2+ KODI_ADDON_XVDR_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/kodi-adsp-basic/Config.in b/bsp/buildroot/package/kodi-adsp-basic/Config.in new file mode 100644 index 00000000..87bdd197 --- /dev/null +++ b/bsp/buildroot/package/kodi-adsp-basic/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_KODI_ADSP_BASIC + bool "kodi-adsp-basic" + select BR2_PACKAGE_LIBPLATFORM + select BR2_PACKAGE_KODI_PLATFORM + help + This add-on contains basic dsp related parts to handle + speaker delays, channel related volume amplification. As + mode it supports a Dolby Pro Logic II compatible + multichannel downmix to stereo, which becomes available if + only 2 channel output on Kodi is selected. + + https://github.com/kodi-adsp/adsp.basic diff --git a/bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.hash b/bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.hash new file mode 100644 index 00000000..e668ff2a --- /dev/null +++ b/bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 0ae320af73085c322671d4b361248ff4341a6a04bd81c8b699847d5b04da828f kodi-adsp-basic-cb56e0eb6530fd50a286d47ef0be529001e9d556.tar.gz diff --git a/bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.mk b/bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.mk new file mode 100644 index 00000000..0b1ba959 --- /dev/null +++ b/bsp/buildroot/package/kodi-adsp-basic/kodi-adsp-basic.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# kodi-adsp-basic +# +################################################################################ + +KODI_ADSP_BASIC_VERSION = cb56e0eb6530fd50a286d47ef0be529001e9d556 +KODI_ADSP_BASIC_SITE = $(call github,kodi-adsp,adsp.basic,$(KODI_ADSP_BASIC_VERSION)) +KODI_ADSP_BASIC_LICENSE = GPLv3+ +KODI_ADSP_BASIC_LICENSE_FILES = LICENSE.md +KODI_ADSP_BASIC_DEPENDENCIES = libplatform kodi-platform + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-adsp-freesurround/Config.in b/bsp/buildroot/package/kodi-adsp-freesurround/Config.in new file mode 100644 index 00000000..80aadf1d --- /dev/null +++ b/bsp/buildroot/package/kodi-adsp-freesurround/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_KODI_ADSP_FREESURROUND + bool "kodi-adsp-freesurround" + select BR2_PACKAGE_LIBPLATFORM + select BR2_PACKAGE_KODI_PLATFORM + help + FreeSurround is meant to be the KODI equivalent of your + hi-fi receiver's Dolby ProLogic II button. It's purpose is + to decode surround information from your stereo music and to + produce multichannel output from it. + + https://github.com/kodi-adsp/adsp.freesurround diff --git a/bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.hash b/bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.hash new file mode 100644 index 00000000..f23717f7 --- /dev/null +++ b/bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 652c32d0c4b61343cbed13b6edd1ab4ad35280240a0ddb386f04adaa46986e7f kodi-adsp-freesurround-08b691d3d9a0382d2f6f789a31614fb02512036c.tar.gz diff --git a/bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.mk b/bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.mk new file mode 100644 index 00000000..49cf6732 --- /dev/null +++ b/bsp/buildroot/package/kodi-adsp-freesurround/kodi-adsp-freesurround.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# kodi-adsp-freesurround +# +################################################################################ + +KODI_ADSP_FREESURROUND_VERSION = 08b691d3d9a0382d2f6f789a31614fb02512036c +KODI_ADSP_FREESURROUND_SITE = $(call github,kodi-adsp,adsp.freesurround,$(KODI_ADSP_FREESURROUND_VERSION)) +KODI_ADSP_FREESURROUND_LICENSE = GPLv3+ +KODI_ADSP_FREESURROUND_LICENSE_FILES = LICENSE.md +KODI_ADSP_FREESURROUND_DEPENDENCIES = libplatform kodi-platform + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.hash b/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.hash new file mode 100644 index 00000000..2760b11b --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 dd4610ba5fdf3f46dcd0deff785d373d3996c6585cbeb39cb4449baafe5ea3df kodi-audiodecoder-modplug-03b772da7ea44ff3c34b322989254cd1e4732443.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.mk b/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.mk index 004d89f4..581223c0 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-modplug/kodi-audiodecoder-modplug.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_MODPLUG_VERSION = 5ae7349f39a8e5552c86dfdad339fb18c7e52550 +KODI_AUDIODECODER_MODPLUG_VERSION = 03b772da7ea44ff3c34b322989254cd1e4732443 KODI_AUDIODECODER_MODPLUG_SITE = $(call github,notspiff,audiodecoder.modplug,$(KODI_AUDIODECODER_MODPLUG_VERSION)) KODI_AUDIODECODER_MODPLUG_LICENSE = GPLv2+ KODI_AUDIODECODER_MODPLUG_LICENSE_FILES = src/ModplugCodec.cpp diff --git a/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.hash b/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.hash new file mode 100644 index 00000000..b4cd28fe --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 da65b21ed6218d65b7d382d7fdd9c848a87f6dc766864925979ea8244320db94 kodi-audiodecoder-nosefart-bfab543bae0d9855538cf03e78ea9cd5e3b9750e.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.mk b/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.mk index 40786d74..49688a4d 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-nosefart/kodi-audiodecoder-nosefart.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_NOSEFART_VERSION = 936313f2be5c4936af8a643876363dcea76a8ebe +KODI_AUDIODECODER_NOSEFART_VERSION = bfab543bae0d9855538cf03e78ea9cd5e3b9750e KODI_AUDIODECODER_NOSEFART_SITE = $(call github,notspiff,audiodecoder.nosefart,$(KODI_AUDIODECODER_NOSEFART_VERSION)) KODI_AUDIODECODER_NOSEFART_LICENSE = GPLv2+ KODI_AUDIODECODER_NOSEFART_LICENSE_FILES = src/NSFCodec.cpp diff --git a/bsp/buildroot/package/kodi-audiodecoder-opus/Config.in b/bsp/buildroot/package/kodi-audiodecoder-opus/Config.in new file mode 100644 index 00000000..12d7247d --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-opus/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_KODI_AUDIODECODER_OPUS + bool "kodi-audiodecoder-opus" + select BR2_PACKAGE_KODI_PLATFORM + select BR2_PACKAGE_LIBOGG + select BR2_PACKAGE_OPUS + select BR2_PACKAGE_OPUSFILE + help + Opus audio decoder for Kodi + + https://github.com/notspiff/audiodecoder.opus diff --git a/bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.hash b/bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.hash new file mode 100644 index 00000000..fa60ce57 --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 74b5736aa21d9cfb8fa835c1dc9cca47817cdb3867f99f5c6aee655f0df476ad kodi-audiodecoder-opus-0bd11e35e6ed8b6480e4100ac8927113cb085eda.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.mk b/bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.mk new file mode 100644 index 00000000..efe17f38 --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-opus/kodi-audiodecoder-opus.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# kodi-audiodecoder-opus +# +################################################################################ + +KODI_AUDIODECODER_OPUS_VERSION = 0bd11e35e6ed8b6480e4100ac8927113cb085eda +KODI_AUDIODECODER_OPUS_SITE = $(call github,notspiff,audiodecoder.opus,$(KODI_AUDIODECODER_OPUS_VERSION)) +KODI_AUDIODECODER_OPUS_LICENSE = GPLv2+ +KODI_AUDIODECODER_OPUS_LICENSE_FILES = src/OpusCodec.cpp +KODI_AUDIODECODER_OPUS_DEPENDENCIES = kodi-platform libogg opus opusfile + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.hash b/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.hash new file mode 100644 index 00000000..f339654f --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 11855e7b0311516602eda34c5fa4917d51220a27c3053ea831da149ae4c93757 kodi-audiodecoder-sidplay-d832f050211b4e5f085a8b09bc7d26ce32098169.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.mk b/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.mk index 82b5c2ba..d8cf438b 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-sidplay/kodi-audiodecoder-sidplay.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_SIDPLAY_VERSION = 27b2c0582878857bfe03195471fa7ffa4bcc40f0 +KODI_AUDIODECODER_SIDPLAY_VERSION = d832f050211b4e5f085a8b09bc7d26ce32098169 KODI_AUDIODECODER_SIDPLAY_SITE = $(call github,notspiff,audiodecoder.sidplay,$(KODI_AUDIODECODER_SIDPLAY_VERSION)) KODI_AUDIODECODER_SIDPLAY_LICENSE = GPLv2+ KODI_AUDIODECODER_SIDPLAY_LICENSE_FILES = src/SIDCodec.cpp diff --git a/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.hash b/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.hash new file mode 100644 index 00000000..e3da5722 --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 6fd6e5dda0fbcdac280952e0efc0bb255ef99628c892164c26e60ee3f2ab8e4e kodi-audiodecoder-snesapu-db62e88e568994a0496d7026a10e044d70b3aa2b.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.mk b/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.mk index a696b411..f9f398ca 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-snesapu/kodi-audiodecoder-snesapu.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_SNESAPU_VERSION = 399d1d3f32fe6f62f5657b8ce67c30229629cb51 +KODI_AUDIODECODER_SNESAPU_VERSION = db62e88e568994a0496d7026a10e044d70b3aa2b KODI_AUDIODECODER_SNESAPU_SITE = $(call github,notspiff,audiodecoder.snesapu,$(KODI_AUDIODECODER_SNESAPU_VERSION)) KODI_AUDIODECODER_SNESAPU_LICENSE = GPLv2+ KODI_AUDIODECODER_SNESAPU_LICENSE_FILES = src/SPCCodec.cpp diff --git a/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.hash b/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.hash new file mode 100644 index 00000000..164e9676 --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 2bd89d66c493ba354df5c154f313a4bd801ff019ad5c102aa54741b99dd9c608 kodi-audiodecoder-stsound-759ae7eadb94adfde8533a2a42d949c321718625.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.mk b/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.mk index 23da01fe..76010899 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-stsound/kodi-audiodecoder-stsound.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_STSOUND_VERSION = f6fbae94818fedd09e2f55c6cd1cb283bfdab6f4 +KODI_AUDIODECODER_STSOUND_VERSION = 759ae7eadb94adfde8533a2a42d949c321718625 KODI_AUDIODECODER_STSOUND_SITE = $(call github,notspiff,audiodecoder.stsound,$(KODI_AUDIODECODER_STSOUND_VERSION)) KODI_AUDIODECODER_STSOUND_LICENSE = GPLv2+ KODI_AUDIODECODER_STSOUND_LICENSE_FILES = src/YMCodec.cpp diff --git a/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.hash b/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.hash new file mode 100644 index 00000000..d4af0197 --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 2e220b7d279fce73ff289536cd9e94b159ae648514fb8b423977dddb99c50e85 kodi-audiodecoder-timidity-a84559da92aa67744069fc9e9dc885732588c8ce.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.mk b/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.mk index 49ff7bc9..fb680d14 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-timidity/kodi-audiodecoder-timidity.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_TIMIDITY_VERSION = da5eb9ac6557fc1ea0f48cc044cfd16f4f2a1e0b +KODI_AUDIODECODER_TIMIDITY_VERSION = a84559da92aa67744069fc9e9dc885732588c8ce KODI_AUDIODECODER_TIMIDITY_SITE = $(call github,notspiff,audiodecoder.timidity,$(KODI_AUDIODECODER_TIMIDITY_VERSION)) KODI_AUDIODECODER_TIMIDITY_LICENSE = GPLv2+ KODI_AUDIODECODER_TIMIDITY_LICENSE_FILES = src/TimidityCodec.cpp diff --git a/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.hash b/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.hash new file mode 100644 index 00000000..5e6dfab3 --- /dev/null +++ b/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7a376447e8390f01c18f22b57ea553441493625545537a023d5d896272e56369 kodi-audiodecoder-vgmstream-cb2892ac0465b0563ee45f532323198a6f722b62.tar.gz diff --git a/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.mk b/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.mk index 999ad463..447d837c 100644 --- a/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.mk +++ b/bsp/buildroot/package/kodi-audiodecoder-vgmstream/kodi-audiodecoder-vgmstream.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIODECODER_VGMSTREAM_VERSION = 7723f9130957f4684eac5788ccbc2f45c39590ad +KODI_AUDIODECODER_VGMSTREAM_VERSION = cb2892ac0465b0563ee45f532323198a6f722b62 KODI_AUDIODECODER_VGMSTREAM_SITE = $(call github,notspiff,audiodecoder.vgmstream,$(KODI_AUDIODECODER_VGMSTREAM_VERSION)) KODI_AUDIODECODER_VGMSTREAM_LICENSE = GPLv2+ KODI_AUDIODECODER_VGMSTREAM_LICENSE_FILES = src/VGMCodec.cpp diff --git a/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.hash b/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.hash new file mode 100644 index 00000000..f563f56b --- /dev/null +++ b/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 4317a01414577885ef4a0ac4f8d95714b021ad15fc668cbf36eae2fdf400bb33 kodi-audioencoder-flac-v1.0.0.tar.gz diff --git a/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.mk b/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.mk index 94645770..ca488262 100644 --- a/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.mk +++ b/bsp/buildroot/package/kodi-audioencoder-flac/kodi-audioencoder-flac.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIOENCODER_FLAC_VERSION = 8e6718508bb9169d614c1fd5ee0e3de02af3b548 +KODI_AUDIOENCODER_FLAC_VERSION = v1.0.0 KODI_AUDIOENCODER_FLAC_SITE = $(call github,xbmc,audioencoder.flac,$(KODI_AUDIOENCODER_FLAC_VERSION)) KODI_AUDIOENCODER_FLAC_LICENSE = GPLv2+ KODI_AUDIOENCODER_FLAC_LICENSE_FILES = src/EncoderFlac.cpp diff --git a/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.hash b/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.hash new file mode 100644 index 00000000..ffd38ba8 --- /dev/null +++ b/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7fbdc6c9111431f49498157204d19dfa94bbf9e5f807b631e84129c6c491225e kodi-audioencoder-lame-v1.0.0.tar.gz diff --git a/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.mk b/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.mk index ca8c6ae1..3e1836fc 100644 --- a/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.mk +++ b/bsp/buildroot/package/kodi-audioencoder-lame/kodi-audioencoder-lame.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIOENCODER_LAME_VERSION = 0f612d467bdde03c6fac25d534a1a338a4f628ac +KODI_AUDIOENCODER_LAME_VERSION = v1.0.0 KODI_AUDIOENCODER_LAME_SITE = $(call github,xbmc,audioencoder.lame,$(KODI_AUDIOENCODER_LAME_VERSION)) KODI_AUDIOENCODER_LAME_LICENSE = GPLv2+ KODI_AUDIOENCODER_LAME_LICENSE_FILES = src/EncoderLame.cpp diff --git a/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.hash b/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.hash new file mode 100644 index 00000000..47f428c7 --- /dev/null +++ b/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 65169e785d82f9081088df2693721f4a7e4b2d24f7e8b1e86b5f443206935303 kodi-audioencoder-vorbis-v1.0.0.tar.gz diff --git a/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.mk b/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.mk index e895ae3a..749ea8e1 100644 --- a/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.mk +++ b/bsp/buildroot/package/kodi-audioencoder-vorbis/kodi-audioencoder-vorbis.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIOENCODER_VORBIS_VERSION = 15d619dae4411ecebadf2ec2996d611600ad0bee +KODI_AUDIOENCODER_VORBIS_VERSION = v1.0.0 KODI_AUDIOENCODER_VORBIS_SITE = $(call github,xbmc,audioencoder.vorbis,$(KODI_AUDIOENCODER_VORBIS_VERSION)) KODI_AUDIOENCODER_VORBIS_LICENSE = GPLv2+ KODI_AUDIOENCODER_VORBIS_LICENSE_FILES = src/EncoderVorbis.cpp diff --git a/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.hash b/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.hash new file mode 100644 index 00000000..86eb13cc --- /dev/null +++ b/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 d4e6de5786b9e2bd3fa5e09314c9a60a8daac32cf96e8aa84ab42cacf60f7094 kodi-audioencoder-wav-v1.0.0.tar.gz diff --git a/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.mk b/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.mk index 543c0512..661ab44b 100644 --- a/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.mk +++ b/bsp/buildroot/package/kodi-audioencoder-wav/kodi-audioencoder-wav.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_AUDIOENCODER_WAV_VERSION = 77e16122b132ca31b27d3602fd2d9ada214ff7f6 +KODI_AUDIOENCODER_WAV_VERSION = v1.0.0 KODI_AUDIOENCODER_WAV_SITE = $(call github,xbmc,audioencoder.wav,$(KODI_AUDIOENCODER_WAV_VERSION)) KODI_AUDIOENCODER_WAV_LICENSE = GPLv2+ KODI_AUDIOENCODER_WAV_LICENSE_FILES = src/EncoderWav.cpp diff --git a/bsp/buildroot/package/kodi-platform/kodi-platform.hash b/bsp/buildroot/package/kodi-platform/kodi-platform.hash new file mode 100644 index 00000000..a2484484 --- /dev/null +++ b/bsp/buildroot/package/kodi-platform/kodi-platform.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 88741358d5d54a0031553ac28aa63bc56c44d994a76f8651bac94a1e244a6595 kodi-platform-45d6ad1984fdb1dc855076ff18484dbec33939d1.tar.gz diff --git a/bsp/buildroot/package/kodi-platform/kodi-platform.mk b/bsp/buildroot/package/kodi-platform/kodi-platform.mk index 0a7cc2ee..4b642f9c 100644 --- a/bsp/buildroot/package/kodi-platform/kodi-platform.mk +++ b/bsp/buildroot/package/kodi-platform/kodi-platform.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_PLATFORM_VERSION = 33b6390b5d2abe5b674f9eb04bdee19228543054 +KODI_PLATFORM_VERSION = 45d6ad1984fdb1dc855076ff18484dbec33939d1 KODI_PLATFORM_SITE = $(call github,xbmc,kodi-platform,$(KODI_PLATFORM_VERSION)) KODI_PLATFORM_LICENSE = GPLv2+ KODI_PLATFORM_LICENSE_FILES = src/util/XMLUtils.h diff --git a/bsp/buildroot/package/kodi-pvr-argustv/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch b/bsp/buildroot/package/kodi-pvr-argustv/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch deleted file mode 100644 index 596be616..00000000 --- a/bsp/buildroot/package/kodi-pvr-argustv/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 2c15b3931410669f281cd7e183c81e550b7e7221 Mon Sep 17 00:00:00 2001 -From: Balint Reczey -Date: Wed, 23 Dec 2015 12:55:00 +0100 -Subject: [PATCH 01/19] Sync enum representation of char_class_e in struct - traits with definition - -Signed-off-by: Bernd Kuhls -[backport of upstream patch from master branch: - https://github.com/kodi-pvr/pvr.argustv/commit/2c15b3931410669f281cd7e183c81e550b7e7221] ---- - src/uri.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/uri.h b/src/uri.h -index 0b2afcd..c20600f 100644 ---- a/src/uri.h -+++ b/src/uri.h -@@ -21,13 +21,13 @@ - namespace uri - { - /// Char class. -- enum char_class_e -+ typedef enum char_class_e : signed char - { - CINV = -2, ///< invalid - CEND = -1, ///< end delimitor - CVAL = 0, ///< valid any position - CVA2 = 1, ///< valid anywhere but 1st position -- }; -+ } char_class_e_type; - - /// Traits used for parsing and encoding components. - struct traits -@@ -35,7 +35,7 @@ namespace uri - char* begin_cstring; ///< begin cstring (or 0 if none) - char begin_char; ///< begin char (or 0 if none) - char end_char; ///< end char (or 0 if none) -- char char_class[256]; ///< map of char to class -+ char_class_e_type char_class[256]; ///< map of char to class - }; - - /** --- -2.7.0 - diff --git a/bsp/buildroot/package/kodi-pvr-argustv/Config.in b/bsp/buildroot/package/kodi-pvr-argustv/Config.in index 247d83ce..216000ae 100644 --- a/bsp/buildroot/package/kodi-pvr-argustv/Config.in +++ b/bsp/buildroot/package/kodi-pvr-argustv/Config.in @@ -1,12 +1,8 @@ config BR2_PACKAGE_KODI_PVR_ARGUSTV bool "kodi-pvr-argustv" - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # jsoncpp select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_KODI_PLATFORM help Kodi's ARGUS TV client addon https://github.com/kodi-pvr/pvr.argustv - -comment "kodi-pvr-argustv needs a toolchain w/ gcc >= 4.7" - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 diff --git a/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.hash b/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.hash new file mode 100644 index 00000000..ef643879 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 68fab94cabbeb0fbf6fac0fcb66e8362505ee736ae3b72c4e29867cfc44b595b kodi-pvr-argustv-2aca01c6db28fe3145b57eb5bf5841895c618507.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.mk b/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.mk index 0ce333a2..3c0f40a2 100644 --- a/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.mk +++ b/bsp/buildroot/package/kodi-pvr-argustv/kodi-pvr-argustv.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_ARGUSTV_VERSION = 32f03271cc3fb1b50edfacd2793d5ac70a98dd20 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_ARGUSTV_VERSION = 2aca01c6db28fe3145b57eb5bf5841895c618507 KODI_PVR_ARGUSTV_SITE = $(call github,kodi-pvr,pvr.argustv,$(KODI_PVR_ARGUSTV_VERSION)) KODI_PVR_ARGUSTV_LICENSE = GPLv2+ KODI_PVR_ARGUSTV_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.hash b/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.hash new file mode 100644 index 00000000..713aae0e --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 1c359c1a59c50f98910ec1d4bc332cd9360447e05d63f0d90b07a7ba22bc7ab6 kodi-pvr-dvblink-06c4e5603e4db0bda3f35e80344a308f486ae0f9.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk b/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk index 88e90c12..75ce6217 100644 --- a/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk +++ b/bsp/buildroot/package/kodi-pvr-dvblink/kodi-pvr-dvblink.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_DVBLINK_VERSION = b87e8a79a329c2f808a5d5abffe05259e365d7e6 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_DVBLINK_VERSION = 06c4e5603e4db0bda3f35e80344a308f486ae0f9 KODI_PVR_DVBLINK_SITE = $(call github,kodi-pvr,pvr.dvblink,$(KODI_PVR_DVBLINK_VERSION)) KODI_PVR_DVBLINK_LICENSE = GPLv2+ KODI_PVR_DVBLINK_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.hash b/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.hash new file mode 100644 index 00000000..785fd6c2 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 a6a6d63e4b88df0d8b5166efdc09f6410cae736e610b328aaea49c8688bfce82 kodi-pvr-dvbviewer-26286604635a170eeea68df9b7eb52fea0056cfe.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk b/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk index 49fc5fc5..b2fae522 100644 --- a/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk +++ b/bsp/buildroot/package/kodi-pvr-dvbviewer/kodi-pvr-dvbviewer.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_DVBVIEWER_VERSION = cbfd4552a4381d289bcfb8eda33699ecfd156bd7 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_DVBVIEWER_VERSION = 26286604635a170eeea68df9b7eb52fea0056cfe KODI_PVR_DVBVIEWER_SITE = $(call github,kodi-pvr,pvr.dvbviewer,$(KODI_PVR_DVBVIEWER_VERSION)) KODI_PVR_DVBVIEWER_LICENSE = GPLv2+ KODI_PVR_DVBVIEWER_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-filmon/Config.in b/bsp/buildroot/package/kodi-pvr-filmon/Config.in index 3d87ec82..0b662df1 100644 --- a/bsp/buildroot/package/kodi-pvr-filmon/Config.in +++ b/bsp/buildroot/package/kodi-pvr-filmon/Config.in @@ -1,12 +1,8 @@ config BR2_PACKAGE_KODI_PVR_FILMON bool "kodi-pvr-filmon" - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # jsoncpp select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_KODI_PLATFORM help Filmon PVR client addon for Kodi https://github.com/kodi-pvr/pvr.filmon - -comment "kodi-pvr-filmon needs a toolchain w/ gcc >= 4.7" - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 diff --git a/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.hash b/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.hash new file mode 100644 index 00000000..b60df982 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 4a51ba62239c96c16c569ca47bc7aac4a2e9e9ef4ae09dfc23d10be15afdee34 kodi-pvr-filmon-4b34b41999b86e675f794ec8e5a63c85b78c001e.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.mk b/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.mk index 7e49268c..0174aa45 100644 --- a/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.mk +++ b/bsp/buildroot/package/kodi-pvr-filmon/kodi-pvr-filmon.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_FILMON_VERSION = 67abb5696798aa954b38de2cc7b4a74e6554d627 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_FILMON_VERSION = 4b34b41999b86e675f794ec8e5a63c85b78c001e KODI_PVR_FILMON_SITE = $(call github,kodi-pvr,pvr.filmon,$(KODI_PVR_FILMON_VERSION)) KODI_PVR_FILMON_LICENSE = GPLv2+ KODI_PVR_FILMON_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-hdhomerun/Config.in b/bsp/buildroot/package/kodi-pvr-hdhomerun/Config.in new file mode 100644 index 00000000..ed5b914c --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-hdhomerun/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_KODI_PVR_HDHOMERUN + bool "kodi-pvr-hdhomerun" + select BR2_PACKAGE_JSONCPP + select BR2_PACKAGE_KODI_PLATFORM + select BR2_PACKAGE_LIBHDHOMERUN + help + Kodi's HDHomeRun client addon + + https://github.com/kodi-pvr/pvr.hdhomerun diff --git a/bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.hash b/bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.hash new file mode 100644 index 00000000..fcf04688 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 84c7dd60db6e0d0c40cc83a70ad860127d0e5c8e77c6091014055372cad5fe1f kodi-pvr-hdhomerun-aa4324eaa5f738394f21d3f54667e346eb65038e.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk b/bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk new file mode 100644 index 00000000..67980fba --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-hdhomerun/kodi-pvr-hdhomerun.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# kodi-pvr-hdhomerun +# +################################################################################ + +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_HDHOMERUN_VERSION = aa4324eaa5f738394f21d3f54667e346eb65038e +KODI_PVR_HDHOMERUN_SITE = $(call github,kodi-pvr,pvr.hdhomerun,$(KODI_PVR_HDHOMERUN_VERSION)) +KODI_PVR_HDHOMERUN_LICENSE = GPLv2+ +KODI_PVR_HDHOMERUN_LICENSE_FILES = src/client.h +KODI_PVR_HDHOMERUN_DEPENDENCIES = jsoncpp kodi-platform libhdhomerun + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.hash b/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.hash new file mode 100644 index 00000000..369e6c02 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 004dee4455d5d539b5e42d663659d4886d9a8650847ad614fa2179bbaace3783 kodi-pvr-hts-3c673b5b29fc26c203c79f7df58680af50a1afa7.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.mk b/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.mk index f8b03598..4ca5a318 100644 --- a/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.mk +++ b/bsp/buildroot/package/kodi-pvr-hts/kodi-pvr-hts.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_HTS_VERSION = 016b0b3251d6d5bffaf68baf59010e4347759c4a +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_HTS_VERSION = 3c673b5b29fc26c203c79f7df58680af50a1afa7 KODI_PVR_HTS_SITE = $(call github,kodi-pvr,pvr.hts,$(KODI_PVR_HTS_VERSION)) KODI_PVR_HTS_LICENSE = GPLv2+ KODI_PVR_HTS_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.hash b/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.hash new file mode 100644 index 00000000..cdf94fdb --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 5b5c67f70f47c52ccda673c3a98b5a81827835fb74289754bebf840133a84d56 kodi-pvr-iptvsimple-ae9bc1d94e97c5381b2fa59adac70a57146016cd.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.mk b/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.mk index 4d5b9e90..85039dd9 100644 --- a/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.mk +++ b/bsp/buildroot/package/kodi-pvr-iptvsimple/kodi-pvr-iptvsimple.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_IPTVSIMPLE_VERSION = 23defebace9a596d549a688c1d017900aeaf7761 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_IPTVSIMPLE_VERSION = ae9bc1d94e97c5381b2fa59adac70a57146016cd KODI_PVR_IPTVSIMPLE_SITE = $(call github,kodi-pvr,pvr.iptvsimple,$(KODI_PVR_IPTVSIMPLE_VERSION)) KODI_PVR_IPTVSIMPLE_LICENSE = GPLv2+ KODI_PVR_IPTVSIMPLE_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch b/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch deleted file mode 100644 index 890c1510..00000000 --- a/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/0001-Sync-enum-representation-of-char_class_e-in-struct-t.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 7b14e0657a1308e8e133991b778e2fdcb2eb6b9c Mon Sep 17 00:00:00 2001 -From: Balint Reczey -Date: Wed, 23 Dec 2015 12:55:00 +0100 -Subject: [PATCH] Sync enum representation of char_class_e in struct traits - with definition - -Signed-off-by: Bernd Kuhls -[backport of upstream patch from master branch: - https://github.com/kodi-pvr/pvr.mediaportal.tvserver/commit/7b14e0657a1308e8e133991b778e2fdcb2eb6b9c] ---- - src/uri.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/uri.h b/src/uri.h -index d2cc949..415e917 100644 ---- a/src/uri.h -+++ b/src/uri.h -@@ -21,13 +21,13 @@ - namespace uri - { - /// Char class. -- enum char_class_e -+ typedef enum char_class_e : signed char - { - CINV = -2, ///< invalid - CEND = -1, ///< end delimitor - CVAL = 0, ///< valid any position - CVA2 = 1, ///< valid anywhere but 1st position -- }; -+ } char_class_e_type; - - /// Traits used for parsing and encoding components. - struct traits -@@ -35,7 +35,7 @@ namespace uri - const char* begin_cstring; ///< begin cstring (or 0 if none) - const char begin_char; ///< begin char (or 0 if none) - const char end_char; ///< end char (or 0 if none) -- const char char_class[256]; ///< map of char to class -+ const char_class_e_type char_class[256]; ///< map of char to class - }; - - /** diff --git a/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.hash b/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.hash new file mode 100644 index 00000000..74770fd3 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 45590c1b8dc57f2b5921641c864e68671c32db33f55db82ca62411557e9278b9 kodi-pvr-mediaportal-tvserver-a3dd464379a56131bae61b94275c14a3abcf2869.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.mk b/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.mk index bff00c7f..e3a4df43 100644 --- a/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.mk +++ b/bsp/buildroot/package/kodi-pvr-mediaportal-tvserver/kodi-pvr-mediaportal-tvserver.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_MEDIAPORTAL_TVSERVER_VERSION = 29809d10010a21b08b9e652e36bc51dac2171690 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_MEDIAPORTAL_TVSERVER_VERSION = a3dd464379a56131bae61b94275c14a3abcf2869 KODI_PVR_MEDIAPORTAL_TVSERVER_SITE = $(call github,kodi-pvr,pvr.mediaportal.tvserver,$(KODI_PVR_MEDIAPORTAL_TVSERVER_VERSION)) KODI_PVR_MEDIAPORTAL_TVSERVER_LICENSE = GPLv2+ KODI_PVR_MEDIAPORTAL_TVSERVER_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash b/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash new file mode 100644 index 00000000..0e9eba87 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 f6d61b134a96a25820b616e60e43ac1ed33bd3f8b9f7612a6f6324356b78582d kodi-pvr-mythtv-84b0b6b122ca779588de5c895ef77b6bc454e859.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk b/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk index 76235eaf..a8a1a6da 100644 --- a/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk +++ b/bsp/buildroot/package/kodi-pvr-mythtv/kodi-pvr-mythtv.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_MYTHTV_VERSION = 8cb158cebc016f1c2a17014bb21873201ed8957e +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_MYTHTV_VERSION = 84b0b6b122ca779588de5c895ef77b6bc454e859 KODI_PVR_MYTHTV_SITE = $(call github,kodi-pvr,pvr.mythtv,$(KODI_PVR_MYTHTV_VERSION)) KODI_PVR_MYTHTV_LICENSE = GPLv2+ KODI_PVR_MYTHTV_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash b/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash new file mode 100644 index 00000000..64c09cfe --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 8c4a36c21dc65cc358b34e5c2db849997f0add2501c3f787f99df3ae0ea850c5 kodi-pvr-nextpvr-2055105c93e18e04e73c87578bece3edf7525e14.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk b/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk index 4ec0d80c..a8b82354 100644 --- a/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk +++ b/bsp/buildroot/package/kodi-pvr-nextpvr/kodi-pvr-nextpvr.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_NEXTPVR_VERSION = 3a205e49b50baba605d3235f6613fdd36c1d3234 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_NEXTPVR_VERSION = 2055105c93e18e04e73c87578bece3edf7525e14 KODI_PVR_NEXTPVR_SITE = $(call github,kodi-pvr,pvr.nextpvr,$(KODI_PVR_NEXTPVR_VERSION)) KODI_PVR_NEXTPVR_LICENSE = GPLv2+ KODI_PVR_NEXTPVR_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.hash b/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.hash new file mode 100644 index 00000000..c6006d2a --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 aa5e8b471993326be3622056a26ebf7387ac4758348e8f64632c1fc6979d993e kodi-pvr-njoy-480c1591d486c6166746fb8b5efc68a7aca3d0f0.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.mk b/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.mk index cbc04d59..0f2eecd3 100644 --- a/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.mk +++ b/bsp/buildroot/package/kodi-pvr-njoy/kodi-pvr-njoy.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_NJOY_VERSION = 4f88a097cb62b4604ffb0ac293a5dc8f40885e79 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_NJOY_VERSION = 480c1591d486c6166746fb8b5efc68a7aca3d0f0 KODI_PVR_NJOY_SITE = $(call github,kodi-pvr,pvr.njoy,$(KODI_PVR_NJOY_VERSION)) KODI_PVR_NJOY_LICENSE = GPLv2+ KODI_PVR_NJOY_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-pctv/Config.in b/bsp/buildroot/package/kodi-pvr-pctv/Config.in index 1bef551b..255cd4a5 100644 --- a/bsp/buildroot/package/kodi-pvr-pctv/Config.in +++ b/bsp/buildroot/package/kodi-pvr-pctv/Config.in @@ -1,12 +1,8 @@ config BR2_PACKAGE_KODI_PVR_PCTV bool "kodi-pvr-pctv" - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # jsoncpp select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_KODI_PLATFORM help PCTV PVR client addon for Kodi https://github.com/kodi-pvr/pvr.vdr.vnsi - -comment "kodi-pvr-pctv needs a toolchain w/ gcc >= 4.7" - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 diff --git a/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.hash b/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.hash new file mode 100644 index 00000000..0ff481a3 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 4c045722c326dfe152ffadb8d966e8db4caa6128a7c53b2a852fce85f803bcbc kodi-pvr-pctv-0096770e96f84c46f444e159b9b737ac8b4238dc.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.mk b/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.mk index 0cda85a4..a9824d5c 100644 --- a/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.mk +++ b/bsp/buildroot/package/kodi-pvr-pctv/kodi-pvr-pctv.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_PCTV_VERSION = bca81657a2879a1ab76404e5b5441e2491f35350 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_PCTV_VERSION = 0096770e96f84c46f444e159b9b737ac8b4238dc KODI_PVR_PCTV_SITE = $(call github,kodi-pvr,pvr.pctv,$(KODI_PVR_PCTV_VERSION)) KODI_PVR_PCTV_LICENSE = GPLv2+ KODI_PVR_PCTV_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-stalker/Config.in b/bsp/buildroot/package/kodi-pvr-stalker/Config.in index 26a8c3f1..3ec530cd 100644 --- a/bsp/buildroot/package/kodi-pvr-stalker/Config.in +++ b/bsp/buildroot/package/kodi-pvr-stalker/Config.in @@ -1,12 +1,8 @@ config BR2_PACKAGE_KODI_PVR_STALKER bool "kodi-pvr-stalker" - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # jsoncpp select BR2_PACKAGE_JSONCPP select BR2_PACKAGE_KODI_PLATFORM help A PVR Client that connects Kodi to Stalker Middleware https://github.com/kodi-pvr/pvr.stalker - -comment "kodi-pvr-stalker needs a toolchain w/ gcc >= 4.7" - depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 diff --git a/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.hash b/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.hash new file mode 100644 index 00000000..7af1bcb2 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 e16cb12bd7a78b8849f370bedb8093d3cb1deb3a766a66efe4b838fc569ab50c kodi-pvr-stalker-5e588330c453141ae0a2f4fd9c02d909ac9d199e.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.mk b/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.mk index 979a4213..d1fa8a0f 100644 --- a/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.mk +++ b/bsp/buildroot/package/kodi-pvr-stalker/kodi-pvr-stalker.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_STALKER_VERSION = a89afb8a2f5e01e3d11f6887ba1f7c81aebd7515 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_STALKER_VERSION = 5e588330c453141ae0a2f4fd9c02d909ac9d199e KODI_PVR_STALKER_SITE = $(call github,kodi-pvr,pvr.stalker,$(KODI_PVR_STALKER_VERSION)) KODI_PVR_STALKER_LICENSE = GPLv2+ KODI_PVR_STALKER_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.hash b/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.hash new file mode 100644 index 00000000..705c0cb3 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 8eb43fb6e2a3132324bf24787bc0545c610832648aa17c12e93676502f7fc565 kodi-pvr-vbox-15e864d160da5a051e18aef06f3a53e49808be02.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.mk b/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.mk index 6bb7769e..593c1e7c 100644 --- a/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.mk +++ b/bsp/buildroot/package/kodi-pvr-vbox/kodi-pvr-vbox.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_VBOX_VERSION = 0b1d571f0259583671c9654febf2bf45a8e9920c +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_VBOX_VERSION = 15e864d160da5a051e18aef06f3a53e49808be02 KODI_PVR_VBOX_SITE = $(call github,kodi-pvr,pvr.vbox,$(KODI_PVR_VBOX_VERSION)) KODI_PVR_VBOX_LICENSE = GPLv2+ KODI_PVR_VBOX_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash b/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash new file mode 100644 index 00000000..ecce639d --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 1d9e70030b73f44786d54e42e46c6bfa7810af3e4c71ba0dca95c2aa1751ef9b kodi-pvr-vdr-vnsi-7e11b853637ec436e30e4ac826de6ee87c303482.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk b/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk index bc482ebc..f8e1e927 100644 --- a/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk +++ b/bsp/buildroot/package/kodi-pvr-vdr-vnsi/kodi-pvr-vdr-vnsi.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_VDR_VNSI_VERSION = 550a4a2e093b4418394cdbe6f72cd7c76f0327b7 +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_VDR_VNSI_VERSION = 7e11b853637ec436e30e4ac826de6ee87c303482 KODI_PVR_VDR_VNSI_SITE = $(call github,kodi-pvr,pvr.vdr.vnsi,$(KODI_PVR_VDR_VNSI_VERSION)) KODI_PVR_VDR_VNSI_LICENSE = GPLv2+ KODI_PVR_VDR_VNSI_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash b/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash new file mode 100644 index 00000000..efdb1253 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 9684775c296dfd9b925d73ed1c21bee45afba4785d1bfb226f98b09ed235a8ee kodi-pvr-vuplus-815ea2f303dbe7dd19f87c53965dfdf2358fcdc8.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk b/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk index 82569fd1..e839bcce 100644 --- a/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk +++ b/bsp/buildroot/package/kodi-pvr-vuplus/kodi-pvr-vuplus.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_VUPLUS_VERSION = 96115e9b8898ed6bde36874b43b2fba531cfef5c +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_VUPLUS_VERSION = 815ea2f303dbe7dd19f87c53965dfdf2358fcdc8 KODI_PVR_VUPLUS_SITE = $(call github,kodi-pvr,pvr.vuplus,$(KODI_PVR_VUPLUS_VERSION)) KODI_PVR_VUPLUS_LICENSE = GPLv2+ KODI_PVR_VUPLUS_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.hash b/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.hash new file mode 100644 index 00000000..6cbdede3 --- /dev/null +++ b/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 25963d8acbce397b6ec940d5ee1d7a69481d295ae31876daf57d3d3537b14543 kodi-pvr-wmc-949fcd162206b569af15942180e6c133ad61e336.tar.gz diff --git a/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.mk b/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.mk index fc385f90..194bd1f2 100644 --- a/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.mk +++ b/bsp/buildroot/package/kodi-pvr-wmc/kodi-pvr-wmc.mk @@ -4,7 +4,9 @@ # ################################################################################ -KODI_PVR_WMC_VERSION = e19c3e99c87e81d406bac0bc4e8edeb47df66dcc +# This cset is on the branch 'Jarvis' +# When Kodi is updated, then this should be updated to the corresponding branch +KODI_PVR_WMC_VERSION = 949fcd162206b569af15942180e6c133ad61e336 KODI_PVR_WMC_SITE = $(call github,kodi-pvr,pvr.wmc,$(KODI_PVR_WMC_VERSION)) KODI_PVR_WMC_LICENSE = GPLv2+ KODI_PVR_WMC_LICENSE_FILES = src/client.h diff --git a/bsp/buildroot/package/kodi-screensaver-asteroids/Config.in b/bsp/buildroot/package/kodi-screensaver-asteroids/Config.in index d5d92c6e..ccc2aba6 100644 --- a/bsp/buildroot/package/kodi-screensaver-asteroids/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-asteroids/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_ASTEROIDS bool "kodi-screensaver-asteroids" - depends on BR2_PACKAGE_KODI_GL + depends on BR2_PACKAGE_HAS_LIBGL help Asteroids screensaver for Kodi https://github.com/notspiff/screensaver.asteroids -comment "kodi-screensaver-asteroids needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-asteroids needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.hash b/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.hash new file mode 100644 index 00000000..a70f1b0a --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 b76b9ba122cebddc7c201b088d93e86fde8fc76e7e9f167ff3e43c3390088f3f kodi-screensaver-asteroids-c7ae05f1881b9abda6a1ac6beaca8d64a164c4fa.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.mk b/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.mk index dce8fb6d..1af1f2ed 100644 --- a/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.mk +++ b/bsp/buildroot/package/kodi-screensaver-asteroids/kodi-screensaver-asteroids.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_SCREENSAVER_ASTEROIDS_VERSION = d4c2e3b499544ef55be364b34e5569d9c31c9615 +KODI_SCREENSAVER_ASTEROIDS_VERSION = c7ae05f1881b9abda6a1ac6beaca8d64a164c4fa KODI_SCREENSAVER_ASTEROIDS_SITE = $(call github,notspiff,screensaver.asteroids,$(KODI_SCREENSAVER_ASTEROIDS_VERSION)) KODI_SCREENSAVER_ASTEROIDS_LICENSE = GPLv2+ KODI_SCREENSAVER_ASTEROIDS_LICENSE_FILES = src/main.cpp diff --git a/bsp/buildroot/package/kodi-screensaver-asterwave/Config.in b/bsp/buildroot/package/kodi-screensaver-asterwave/Config.in new file mode 100644 index 00000000..bd5db738 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-asterwave/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_KODI_SCREENSAVER_ASTERWAVE + bool "kodi-screensaver-asterwave" + depends on BR2_PACKAGE_HAS_LIBGL # libglu, libsoil + select BR2_PACKAGE_LIBGLU + select BR2_PACKAGE_LIBSOIL + help + AsterWave screensaver for Kodi + + https://github.com/notspiff/screensaver.asterwave + +comment "kodi-screensaver-asterwave needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.hash b/bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.hash new file mode 100644 index 00000000..5f04031a --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 6bf9367889c4ddece7e0c3720762d41bb0b22fc9ab28d1c8759edb1f77487ecd kodi-screensaver-asterwave-0dc2c48dadb100954eef823e7e3a5f502ce65b1e.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.mk b/bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.mk new file mode 100644 index 00000000..7c718ccd --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-asterwave/kodi-screensaver-asterwave.mk @@ -0,0 +1,11 @@ +################################################################################ +# +# kodi-screensaver-asterwave +# +################################################################################ + +KODI_SCREENSAVER_ASTERWAVE_VERSION = 0dc2c48dadb100954eef823e7e3a5f502ce65b1e +KODI_SCREENSAVER_ASTERWAVE_SITE = $(call github,notspiff,screensaver.asterwave,$(KODI_SCREENSAVER_ASTERWAVE_VERSION)) +KODI_SCREENSAVER_ASTERWAVE_DEPENDENCIES = kodi libglu libsoil + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-screensaver-biogenesis/Config.in b/bsp/buildroot/package/kodi-screensaver-biogenesis/Config.in index 4b0d0532..cdc2d919 100644 --- a/bsp/buildroot/package/kodi-screensaver-biogenesis/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-biogenesis/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_BIOGENESIS bool "kodi-screensaver-biogenesis" - depends on BR2_PACKAGE_KODI_GL + depends on BR2_PACKAGE_HAS_LIBGL help BioGenesis screensaver for Kodi https://github.com/notspiff/screensaver.biogenesis -comment "kodi-screensaver-biogenesis needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-biogenesis needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.hash b/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.hash new file mode 100644 index 00000000..6fc273d1 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 25e497c6843a7d933d1e4736e8dcb671bc9881328d5e27349dd0b25cb9be07eb kodi-screensaver-biogenesis-39928eef56ed639085d401dd97bf18f44b1f3e8b.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.mk b/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.mk index 728383f6..dce6968d 100644 --- a/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.mk +++ b/bsp/buildroot/package/kodi-screensaver-biogenesis/kodi-screensaver-biogenesis.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_SCREENSAVER_BIOGENESIS_VERSION = 2eccbd4e46320de03fde6731c560660659fd34d7 +KODI_SCREENSAVER_BIOGENESIS_VERSION = 39928eef56ed639085d401dd97bf18f44b1f3e8b KODI_SCREENSAVER_BIOGENESIS_SITE = $(call github,notspiff,screensaver.biogenesis,$(KODI_SCREENSAVER_BIOGENESIS_VERSION)) KODI_SCREENSAVER_BIOGENESIS_LICENSE = GPLv2+ KODI_SCREENSAVER_BIOGENESIS_LICENSE_FILES = src/Life.cpp diff --git a/bsp/buildroot/package/kodi-screensaver-cpblobs/Config.in b/bsp/buildroot/package/kodi-screensaver-cpblobs/Config.in new file mode 100644 index 00000000..e80ea0eb --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-cpblobs/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_KODI_SCREENSAVER_CPBLOBS + bool "kodi-screensaver-cpblobs" + depends on BR2_PACKAGE_HAS_LIBGL # libsoil + select BR2_PACKAGE_LIBSOIL + help + CpBlobs screensaver for Kodi + + https://github.com/notspiff/screensaver.cpblobs + +comment "kodi-screensaver-cpblobs needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.hash b/bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.hash new file mode 100644 index 00000000..ebf19d9d --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 c2d19c33aff73b99cbf51f943b62e58b2b6233dcf1d789ae8f73e92fa96f07bc kodi-screensaver-cpblobs-87a3abfbe6e4fd1089548eab77a84902d0e1af60.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.mk b/bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.mk new file mode 100644 index 00000000..bf67ea08 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-cpblobs/kodi-screensaver-cpblobs.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# kodi-screensaver-cpblobs +# +################################################################################ + +KODI_SCREENSAVER_CPBLOBS_VERSION = 87a3abfbe6e4fd1089548eab77a84902d0e1af60 +KODI_SCREENSAVER_CPBLOBS_SITE = $(call github,notspiff,screensaver.cpblobs,$(KODI_SCREENSAVER_CPBLOBS_VERSION)) +KODI_SCREENSAVER_CPBLOBS_LICENSE = GPLv2 +KODI_SCREENSAVER_CPBLOBS_LICENSE_FILES = LICENSE +KODI_SCREENSAVER_CPBLOBS_DEPENDENCIES = kodi libsoil + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-screensaver-crystalmorph/Config.in b/bsp/buildroot/package/kodi-screensaver-crystalmorph/Config.in index ad29a90e..1303d229 100644 --- a/bsp/buildroot/package/kodi-screensaver-crystalmorph/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-crystalmorph/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_CRYSTALMORPH bool "kodi-screensaver-crystalmorph" - depends on BR2_PACKAGE_KODI_GL # libglu + depends on BR2_PACKAGE_HAS_LIBGL # libglu help CrystalMorph screensaver for Kodi https://github.com/notspiff/screensaver.crystalmorph -comment "kodi-screensaver-crystalmorph needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-crystalmorph needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-crystalmorph/kodi-screensaver-crystalmorph.hash b/bsp/buildroot/package/kodi-screensaver-crystalmorph/kodi-screensaver-crystalmorph.hash new file mode 100644 index 00000000..01183d74 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-crystalmorph/kodi-screensaver-crystalmorph.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 680e9354adcb7048b5c2b55b3c49cf37cea0e12e6564018cd694feeb253c90dd kodi-screensaver-crystalmorph-2e7c10e3543f5aaab6fd2f5aa9d05b976a43ba68.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-greynetic/Config.in b/bsp/buildroot/package/kodi-screensaver-greynetic/Config.in index 14cab180..ce636b82 100644 --- a/bsp/buildroot/package/kodi-screensaver-greynetic/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-greynetic/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_GREYNETIC bool "kodi-screensaver-greynetic" - depends on BR2_PACKAGE_KODI_GL + depends on BR2_PACKAGE_HAS_LIBGL help Greynetic screensaver for Kodi https://github.com/notspiff/screensaver.greynetic -comment "kodi-screensaver-greynetic needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-greynetic needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.hash b/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.hash new file mode 100644 index 00000000..93394532 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 fc114434db18a885fda30ac6b82fe82ec1d5ed97e2ff6414b4927487da684871 kodi-screensaver-greynetic-80e850eb3cbc7ee2c937fcab666dc45d2b2ee0bb.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.mk b/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.mk index 0b16e32a..9773bac1 100644 --- a/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.mk +++ b/bsp/buildroot/package/kodi-screensaver-greynetic/kodi-screensaver-greynetic.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_SCREENSAVER_GREYNETIC_VERSION = 5f370b0f1a51e57719f605344e94824105316c17 +KODI_SCREENSAVER_GREYNETIC_VERSION = 80e850eb3cbc7ee2c937fcab666dc45d2b2ee0bb KODI_SCREENSAVER_GREYNETIC_SITE = $(call github,notspiff,screensaver.greynetic,$(KODI_SCREENSAVER_GREYNETIC_VERSION)) KODI_SCREENSAVER_GREYNETIC_LICENSE = GPLv2+ KODI_SCREENSAVER_GREYNETIC_LICENSE_FILES = src/GreyNetic.cpp diff --git a/bsp/buildroot/package/kodi-screensaver-matrixtrails/Config.in b/bsp/buildroot/package/kodi-screensaver-matrixtrails/Config.in new file mode 100644 index 00000000..e2d3f71a --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-matrixtrails/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_KODI_SCREENSAVER_MATRIXTRAILS + bool "kodi-screensaver-matrixtrails" + depends on BR2_PACKAGE_HAS_LIBGL # libsoil + select BR2_PACKAGE_LIBSOIL + help + Matrix trails screensaver for Kodi + + https://github.com/notspiff/screensaver.matrixtrails + +comment "kodi-screensaver-matrixtrails needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.hash b/bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.hash new file mode 100644 index 00000000..5ae2459c --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 91990a29072cf85f4b9253a16a362d83fdfcc7595de796d982a189aa8618555c kodi-screensaver-matrixtrails-16057e7195f930109f0a4aea999296ca315700e5.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.mk b/bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.mk new file mode 100644 index 00000000..5ecacdf5 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-matrixtrails/kodi-screensaver-matrixtrails.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# kodi-screensaver-matrixtrails +# +################################################################################ + +KODI_SCREENSAVER_MATRIXTRAILS_VERSION = 16057e7195f930109f0a4aea999296ca315700e5 +KODI_SCREENSAVER_MATRIXTRAILS_SITE = $(call github,notspiff,screensaver.matrixtrails,$(KODI_SCREENSAVER_MATRIXTRAILS_VERSION)) +KODI_SCREENSAVER_MATRIXTRAILS_LICENSE = GPLv2+ +KODI_SCREENSAVER_MATRIXTRAILS_LICENSE_FILES = src/matrixtrails.cpp + +KODI_SCREENSAVER_MATRIXTRAILS_DEPENDENCIES = kodi libsoil + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-screensaver-pingpong/Config.in b/bsp/buildroot/package/kodi-screensaver-pingpong/Config.in index 4ccf4c47..3971052b 100644 --- a/bsp/buildroot/package/kodi-screensaver-pingpong/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-pingpong/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_PINGPONG bool "kodi-screensaver-pingpong" - depends on BR2_PACKAGE_KODI_GL + depends on BR2_PACKAGE_HAS_LIBGL help Ping-pong screensaver for Kodi https://github.com/notspiff/screensaver.pingpong -comment "kodi-screensaver-greynetic needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-pingpong needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.hash b/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.hash new file mode 100644 index 00000000..79d4dd40 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 59a5cdfa6387760205efabcd91bc64fdc92f103c8f213b650018160f6c1a691c kodi-screensaver-pingpong-5c7cf6fd9f9ff1468f620bb891e66bebd3a5fe17.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.mk b/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.mk index 324fe3ac..2adf9601 100644 --- a/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.mk +++ b/bsp/buildroot/package/kodi-screensaver-pingpong/kodi-screensaver-pingpong.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_SCREENSAVER_PINGPONG_VERSION = 00fd2a7c70d581ada1bc89829c6870530b4c65b9 +KODI_SCREENSAVER_PINGPONG_VERSION = 5c7cf6fd9f9ff1468f620bb891e66bebd3a5fe17 KODI_SCREENSAVER_PINGPONG_SITE = $(call github,notspiff,screensaver.pingpong,$(KODI_SCREENSAVER_PINGPONG_VERSION)) KODI_SCREENSAVER_PINGPONG_LICENSE = GPLv2+ KODI_SCREENSAVER_PINGPONG_LICENSE_FILES = src/readme.txt diff --git a/bsp/buildroot/package/kodi-screensaver-planestate/Config.in b/bsp/buildroot/package/kodi-screensaver-planestate/Config.in new file mode 100644 index 00000000..b63d70e6 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-planestate/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE + bool "kodi-screensaver-planestate" + depends on BR2_PACKAGE_HAS_LIBGL # libsoil + select BR2_PACKAGE_LIBSOIL + help + PlaneState screensaver for Kodi + + https://github.com/notspiff/screensaver.planestate + +comment "kodi-screensaver-planestate needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.hash b/bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.hash new file mode 100644 index 00000000..9aea9292 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 13ce2881f8eaf9936691cf66b9f3471a718ae87249d62ade55174201873fb496 kodi-screensaver-planestate-95b6d1ec72f37bcd16cf8e5d49806193dba883f0.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.mk b/bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.mk new file mode 100644 index 00000000..38885c5c --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-planestate/kodi-screensaver-planestate.mk @@ -0,0 +1,11 @@ +################################################################################ +# +# kodi-screensaver-planestate +# +################################################################################ + +KODI_SCREENSAVER_PLANESTATE_VERSION = 95b6d1ec72f37bcd16cf8e5d49806193dba883f0 +KODI_SCREENSAVER_PLANESTATE_SITE = $(call github,notspiff,screensaver.planestate,$(KODI_SCREENSAVER_PLANESTATE_VERSION)) +KODI_SCREENSAVER_PLANESTATE_DEPENDENCIES = kodi libsoil + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-screensaver-pyro/Config.in b/bsp/buildroot/package/kodi-screensaver-pyro/Config.in index 45432c47..982542d5 100644 --- a/bsp/buildroot/package/kodi-screensaver-pyro/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-pyro/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_PYRO bool "kodi-screensaver-pyro" - depends on BR2_PACKAGE_KODI_GL + depends on BR2_PACKAGE_HAS_LIBGL help Pyro screensaver for Kodi https://github.com/notspiff/screensaver.pyro -comment "kodi-screensaver-pyro needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-pyro needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.hash b/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.hash new file mode 100644 index 00000000..c79e3f5f --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 951bc3259407b7f21183c34556b1efc4c40bfafec61008cd543f382f67466184 kodi-screensaver-pyro-2476b77d9954980a27e07eb8eb0727e2af226351.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.mk b/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.mk index e4c2b962..f9040527 100644 --- a/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.mk +++ b/bsp/buildroot/package/kodi-screensaver-pyro/kodi-screensaver-pyro.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_SCREENSAVER_PYRO_VERSION = 7551f3f4b6414c40c1c4170c750b9f45dd995261 +KODI_SCREENSAVER_PYRO_VERSION = 2476b77d9954980a27e07eb8eb0727e2af226351 KODI_SCREENSAVER_PYRO_SITE = $(call github,notspiff,screensaver.pyro,$(KODI_SCREENSAVER_PYRO_VERSION)) KODI_SCREENSAVER_PYRO_LICENSE = GPLv2+ KODI_SCREENSAVER_PYRO_LICENSE_FILES = src/Pyro.cpp diff --git a/bsp/buildroot/package/kodi-screensaver-rsxs/0001-cross-compile.patch b/bsp/buildroot/package/kodi-screensaver-rsxs/0001-cross-compile.patch new file mode 100644 index 00000000..56c2f4e4 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-rsxs/0001-cross-compile.patch @@ -0,0 +1,37 @@ +Fix cross-compilation + +Use the cross-compiler and not the host version. + +Patch sent upstream: +https://github.com/notspiff/screensavers.rsxs/pull/5 + +Signed-off-by: Bernd Kuhls + +diff -uNr screensavers.rsxs-195e0ec3fbbcb2ee2012cd560e42d05167f0f259.org/CMakeLists.txt screensavers.rsxs-195e0ec3fbbcb2ee2012cd560e42d05167f0f259/CMakeLists.txt +--- screensavers.rsxs-195e0ec3fbbcb2ee2012cd560e42d05167f0f259.org/CMakeLists.txt 2015-03-19 12:20:23.000000000 +0100 ++++ screensavers.rsxs-195e0ec3fbbcb2ee2012cd560e42d05167f0f259/CMakeLists.txt 2015-07-19 20:26:16.660481032 +0200 +@@ -33,6 +33,11 @@ + ${PROJECT_SOURCE_DIR}/${rsxs_dir}/src/skyrocket + ${PROJECT_SOURCE_DIR}/${rsxs_dir}/src/solarwinds) + ++ ++get_filename_component( COMPILER_FILENAME "${CMAKE_C_COMPILER}" NAME ) ++string( REGEX REPLACE "-[^-]+$" "" ++ TOOLCHAIN_NAME "${COMPILER_FILENAME}" ) ++ + include(ExternalProject) + set(update_command "") + if(BOOTSTRAP_IN_TREE OR NOT DEFINED BOOTSTRAP_IN_TREE) +@@ -46,8 +51,11 @@ + endif() + endif() + externalproject_add(rsxs SOURCE_DIR ${PROJECT_SOURCE_DIR}/${rsxs_dir} +- CONFIGURE_COMMAND ${configure_start} ++ CONFIGURE_COMMAND gl_cv_func_gettimeofday_clobber=no ++ ac_cv_func_malloc_0_nonnull=yes ++ ${configure_start} + --prefix= ++ --host=${TOOLCHAIN_NAME} + --without-xscreensaver + --disable-cyclone + --disable-euphoria diff --git a/bsp/buildroot/package/kodi-screensaver-rsxs/Config.in b/bsp/buildroot/package/kodi-screensaver-rsxs/Config.in new file mode 100644 index 00000000..11546ad1 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-rsxs/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_KODI_SCREENSAVER_RSXS + bool "kodi-screensaver-rsxs" + depends on BR2_PACKAGE_HAS_LIBGL # libglu + depends on BR2_PACKAGE_XORG7 # xlib_libXmu + select BR2_PACKAGE_XLIB_LIBXMU + help + RSXS screensaver add-ons for Kodi + + https://github.com/notspiff/screensavers.rsxs + +comment "kodi-screensaver-rsxs depends on X.org and needs OpenGL" + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.hash b/bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.hash new file mode 100644 index 00000000..568b44b3 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 0797ffb720056ea2e04ac8b7ee4fc2dca1e42611ef138b347e928d8d7f3c696f kodi-screensaver-rsxs-195e0ec3fbbcb2ee2012cd560e42d05167f0f259.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.mk b/bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.mk new file mode 100644 index 00000000..7df6c22c --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-rsxs/kodi-screensaver-rsxs.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# kodi-screensaver-rsxs +# +################################################################################ + +KODI_SCREENSAVER_RSXS_VERSION = 195e0ec3fbbcb2ee2012cd560e42d05167f0f259 +KODI_SCREENSAVER_RSXS_SITE = $(call github,notspiff,screensavers.rsxs,$(KODI_SCREENSAVER_RSXS_VERSION)) +KODI_SCREENSAVER_RSXS_LICENSE = GPLv3 +KODI_SCREENSAVER_RSXS_LICENSE_FILES = lib/rsxs-1.0/COPYING + +KODI_SCREENSAVER_RSXS_DEPENDENCIES = kodi xlib_libXmu + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-screensaver-stars/Config.in b/bsp/buildroot/package/kodi-screensaver-stars/Config.in index c78021a1..bcfb47b2 100644 --- a/bsp/buildroot/package/kodi-screensaver-stars/Config.in +++ b/bsp/buildroot/package/kodi-screensaver-stars/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_KODI_SCREENSAVER_STARS bool "kodi-screensaver-stars" - depends on BR2_PACKAGE_KODI_GL + depends on BR2_PACKAGE_HAS_LIBGL help Starfield screensaver for Kodi https://github.com/notspiff/screensaver.stars -comment "kodi-screensaver-starts needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL +comment "kodi-screensaver-stars needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.hash b/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.hash new file mode 100644 index 00000000..107ada47 --- /dev/null +++ b/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 79633afcdccf5df31c98d2144bd23086d691e7749255b4295b183b535d9b7abf kodi-screensaver-stars-28bf79d4dce040e9fbdc25f51007e13950cab937.tar.gz diff --git a/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.mk b/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.mk index f2a1be1e..b5b5206d 100644 --- a/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.mk +++ b/bsp/buildroot/package/kodi-screensaver-stars/kodi-screensaver-stars.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_SCREENSAVER_STARS_VERSION = 91b59f687ceb52488763aca4ba67d50a92f01731 +KODI_SCREENSAVER_STARS_VERSION = 28bf79d4dce040e9fbdc25f51007e13950cab937 KODI_SCREENSAVER_STARS_SITE = $(call github,notspiff,screensaver.stars,$(KODI_SCREENSAVER_STARS_VERSION)) KODI_SCREENSAVER_STARS_LICENSE = GPLv2+ KODI_SCREENSAVER_STARS_LICENSE_FILES = src/StarField.cpp diff --git a/bsp/buildroot/package/kodi-visualisation-fishbmc/Config.in b/bsp/buildroot/package/kodi-visualisation-fishbmc/Config.in new file mode 100644 index 00000000..9e2eabbd --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-fishbmc/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_KODI_VISUALISATION_FISHBMC + bool "kodi-visualisation-fishbmc" + depends on BR2_PACKAGE_HAS_LIBGL + help + Fische visualiser for Kodi + + https://github.com/notspiff/visualization.fishbmc + +comment "kodi-visualisation-fishbmc needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.hash b/bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.hash new file mode 100644 index 00000000..6a65a58f --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7047d501942bcd5095e0f1424f003caec8eb792b59d16d16ad25f14829844e50 kodi-visualisation-fishbmc-50c38c296a62e096a2216e43b86d864ee265c506.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.mk b/bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.mk new file mode 100644 index 00000000..1e07774f --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-fishbmc/kodi-visualisation-fishbmc.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# kodi-visualisation-fishbmc +# +################################################################################ + +KODI_VISUALISATION_FISHBMC_VERSION = 50c38c296a62e096a2216e43b86d864ee265c506 +KODI_VISUALISATION_FISHBMC_SITE = $(call github,notspiff,visualization.fishbmc,$(KODI_VISUALISATION_FISHBMC_VERSION)) +KODI_VISUALISATION_FISHBMC_LICENSE = GPLv2+ +KODI_VISUALISATION_FISHBMC_LICENSE_FILES = visualization.fishbmc/LICENSE +KODI_VISUALISATION_FISHBMC_DEPENDENCIES = kodi + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-visualisation-fountain/Config.in b/bsp/buildroot/package/kodi-visualisation-fountain/Config.in new file mode 100644 index 00000000..570d1693 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-fountain/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN + bool "kodi-visualisation-fountain" + depends on BR2_PACKAGE_HAS_LIBGL # libsoil + select BR2_PACKAGE_LIBSOIL + help + Fountain visualization for Kodi + + https://github.com/notspiff/visualization.fountain + +comment "kodi-visualisation-fountain needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.hash b/bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.hash new file mode 100644 index 00000000..8dc933ef --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7b2867f415f22e4bc4ba834034f00117fcf76774aea0afc7bf30b5f2d1991dd7 kodi-visualisation-fountain-f22deacd2396a204694d346f85369ea9ea70e16f.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.mk b/bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.mk new file mode 100644 index 00000000..5684402a --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-fountain/kodi-visualisation-fountain.mk @@ -0,0 +1,11 @@ +################################################################################ +# +# kodi-visualisation-fountain +# +################################################################################ + +KODI_VISUALISATION_FOUNTAIN_VERSION = f22deacd2396a204694d346f85369ea9ea70e16f +KODI_VISUALISATION_FOUNTAIN_SITE = $(call github,notspiff,visualization.fountain,$(KODI_VISUALISATION_FOUNTAIN_VERSION)) +KODI_VISUALISATION_FOUNTAIN_DEPENDENCIES = kodi libsoil + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-visualisation-goom/0001-cross-compile.patch b/bsp/buildroot/package/kodi-visualisation-goom/0001-cross-compile.patch new file mode 100644 index 00000000..8dd0fe91 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-goom/0001-cross-compile.patch @@ -0,0 +1,32 @@ +Fix cross-compilation + +Use the cross-compiler and not the host version. + +Patch sent upstream: +https://github.com/notspiff/visualization.goom/pull/4 + +Signed-off-by: Bernd Kuhls + +diff -uNr visualization.goom-fb5933ba5b2143d055cc7749dc60a82f6002b305.org/CMakeLists.txt visualization.goom-fb5933ba5b2143d055cc7749dc60a82f6002b305/CMakeLists.txt +--- visualization.goom-fb5933ba5b2143d055cc7749dc60a82f6002b305.org/CMakeLists.txt 2014-10-31 11:34:21.000000000 +0100 ++++ visualization.goom-fb5933ba5b2143d055cc7749dc60a82f6002b305/CMakeLists.txt 2015-07-19 19:49:43.340054342 +0200 +@@ -13,6 +13,10 @@ + ${KODI_INCLUDE_DIR} + ${PROJECT_SOURCE_DIR}/lib/goom2k4-0/src) + ++get_filename_component( COMPILER_FILENAME "${CMAKE_C_COMPILER}" NAME ) ++string( REGEX REPLACE "-[^-]+$" "" ++ TOOLCHAIN_NAME "${COMPILER_FILENAME}" ) ++ + include(ExternalProject) + set(update_command "") + if(BOOTSTRAP_IN_TREE OR NOT DEFINED BOOTSTRAP_IN_TREE) +@@ -20,7 +24,7 @@ + endif() + externalproject_add(libgoom SOURCE_DIR ${PROJECT_SOURCE_DIR}/lib/goom2k4-0 + "${update_command}" +- CONFIGURE_COMMAND ${PROJECT_SOURCE_DIR}/lib/goom2k4-0/configure --disable-shared --enable-static --with-pic --prefix= ++ CONFIGURE_COMMAND ${PROJECT_SOURCE_DIR}/lib/goom2k4-0/configure --disable-shared --enable-static --with-pic --prefix= --host=${TOOLCHAIN_NAME} + BUILD_COMMAND ${MAKE} + INSTALL_COMMAND "") + diff --git a/bsp/buildroot/package/kodi-visualisation-goom/Config.in b/bsp/buildroot/package/kodi-visualisation-goom/Config.in new file mode 100644 index 00000000..de4d2ef2 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-goom/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_KODI_VISUALISATION_GOOM + bool "kodi-visualisation-goom" + depends on BR2_PACKAGE_HAS_LIBGL + help + GOOM visualiser for Kodi + + https://github.com/notspiff/visualization.goom + +comment "kodi-visualization-goom needs OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.hash b/bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.hash new file mode 100644 index 00000000..8507c652 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 66a71a5c5a1c0016d7020fcc9941634ee465dab14644cdc96023ce0a28408338 kodi-visualisation-goom-16747b7dba9cbdcfdc8df44e849eaf09450fc86f.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.mk b/bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.mk new file mode 100644 index 00000000..89f2bab1 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-goom/kodi-visualisation-goom.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# kodi-visualisation-goom +# +################################################################################ + +KODI_VISUALISATION_GOOM_VERSION = 16747b7dba9cbdcfdc8df44e849eaf09450fc86f +KODI_VISUALISATION_GOOM_SITE = $(call github,notspiff,visualization.goom,$(KODI_VISUALISATION_GOOM_VERSION)) +KODI_VISUALISATION_GOOM_LICENSE = GPLv2+ +KODI_VISUALISATION_GOOM_LICENSE_FILES = src/Main.cpp + +KODI_VISUALISATION_GOOM_DEPENDENCIES = kodi + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-visualisation-shadertoy/0001-FindOpenGLES2-also-search-for-egl-with-pkg-config.patch b/bsp/buildroot/package/kodi-visualisation-shadertoy/0001-FindOpenGLES2-also-search-for-egl-with-pkg-config.patch index f40c1738..6737296f 100644 --- a/bsp/buildroot/package/kodi-visualisation-shadertoy/0001-FindOpenGLES2-also-search-for-egl-with-pkg-config.patch +++ b/bsp/buildroot/package/kodi-visualisation-shadertoy/0001-FindOpenGLES2-also-search-for-egl-with-pkg-config.patch @@ -17,15 +17,15 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b084cf..81bbe27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -24,7 +24,7 @@ else() +@@ -35,7 +35,7 @@ + endif() endif() - endif() --include_directories(${OpenGL_INCLUDE_DIR} -+include_directories(${OpenGL_INCLUDE_DIR} ${OpenGLES2_INCLUDE_DIRS} - ${GLEW_INCLUDE_DIR} - ${KODI_INCLUDE_DIR} - ${PROJECT_SOURCE_DIR}/lib/kissfft +- include_directories(${OpenGL_INCLUDE_DIR} ++ include_directories(${OpenGL_INCLUDE_DIR} ${OpenGLES2_INCLUDE_DIRS} + ${GLEW_INCLUDE_DIR} + ${KODI_INCLUDE_DIR} + ${platform_INCLUDE_DIRS} diff --git a/FindOpenGLES2.cmake b/FindOpenGLES2.cmake index e1b7d21..2a9ce0d 100644 --- a/FindOpenGLES2.cmake diff --git a/bsp/buildroot/package/kodi-visualisation-shadertoy/Config.in b/bsp/buildroot/package/kodi-visualisation-shadertoy/Config.in index 10a6e55d..ac177027 100644 --- a/bsp/buildroot/package/kodi-visualisation-shadertoy/Config.in +++ b/bsp/buildroot/package/kodi-visualisation-shadertoy/Config.in @@ -1,5 +1,7 @@ config BR2_PACKAGE_KODI_VISUALISATION_SHADERTOY bool "kodi-visualisation-shadertoy" + select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_HAS_LIBGL + select BR2_PACKAGE_LIBPLATFORM help Shadertoy visualiser for Kodi diff --git a/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.hash b/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.hash new file mode 100644 index 00000000..fdd81fd5 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 88732c399bb7e1237e8fc375583bb3789c96a28695a3805fb374361a7e5636c5 kodi-visualisation-shadertoy-f9988007681bf37e6c03d6992bae30133b020608.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.mk b/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.mk index 1b11f793..e5f2d911 100644 --- a/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.mk +++ b/bsp/buildroot/package/kodi-visualisation-shadertoy/kodi-visualisation-shadertoy.mk @@ -4,10 +4,14 @@ # ################################################################################ -KODI_VISUALISATION_SHADERTOY_VERSION = a4eaaad4ab7204a30224f2c6952f7a7035ca1c38 +KODI_VISUALISATION_SHADERTOY_VERSION = f9988007681bf37e6c03d6992bae30133b020608 KODI_VISUALISATION_SHADERTOY_SITE = $(call github,notspiff,visualization.shadertoy,$(KODI_VISUALISATION_SHADERTOY_VERSION)) KODI_VISUALISATION_SHADERTOY_LICENSE = GPLv2+ KODI_VISUALISATION_SHADERTOY_LICENSE_FILES = src/main.cpp -KODI_VISUALISATION_SHADERTOY_DEPENDENCIES = kodi +KODI_VISUALISATION_SHADERTOY_DEPENDENCIES = kodi libplatform + +ifeq ($(BR2_PACKAGE_LIBGLEW),y) +KODI_VISUALISATION_SHADERTOY_DEPENDENCIES += libglew +endif $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.hash b/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.hash new file mode 100644 index 00000000..18e38f57 --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 aa417d6ad3d3770029e7d8d9f7f0ca8d56a8a4f47821267b5a8604fc26993334 kodi-visualisation-spectrum-9dbe53a0db73f00ee22e9ca235c98f8137b7bb9e.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.mk b/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.mk index 79f03c87..de197eb7 100644 --- a/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.mk +++ b/bsp/buildroot/package/kodi-visualisation-spectrum/kodi-visualisation-spectrum.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_VISUALISATION_SPECTRUM_VERSION = aae1960b5bc14e50914205e2dabcb51077690a64 +KODI_VISUALISATION_SPECTRUM_VERSION = 9dbe53a0db73f00ee22e9ca235c98f8137b7bb9e KODI_VISUALISATION_SPECTRUM_SITE = $(call github,notspiff,visualization.spectrum,$(KODI_VISUALISATION_SPECTRUM_VERSION)) KODI_VISUALISATION_SPECTRUM_LICENSE = GPLv2+ KODI_VISUALISATION_SPECTRUM_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/kodi-visualisation-waveforhue/kodi-visualisation-waveforhue.hash b/bsp/buildroot/package/kodi-visualisation-waveforhue/kodi-visualisation-waveforhue.hash new file mode 100644 index 00000000..5f49daae --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-waveforhue/kodi-visualisation-waveforhue.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 2590ce4ee1816ffdf59fe33580a36fba49fbd1f60f4c9022b3315e04debc9c73 kodi-visualisation-waveforhue-e87d5c7d7e7504036b80af8bc89f4cf6489085fe.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.hash b/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.hash new file mode 100644 index 00000000..728b857e --- /dev/null +++ b/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 439bd50fcb1c0912532d0d113f7eeadf28f72bd2cb0c234581ee1acc2a70e45b kodi-visualisation-waveform-89aec48e2975f820004df5a1a53801339a5b3064.tar.gz diff --git a/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.mk b/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.mk index eec0cfca..81e880b0 100644 --- a/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.mk +++ b/bsp/buildroot/package/kodi-visualisation-waveform/kodi-visualisation-waveform.mk @@ -4,7 +4,7 @@ # ################################################################################ -KODI_VISUALISATION_WAVEFORM_VERSION = abbdbffc5fd2dff1d627de8df3cb5a3887d1119c +KODI_VISUALISATION_WAVEFORM_VERSION = 89aec48e2975f820004df5a1a53801339a5b3064 KODI_VISUALISATION_WAVEFORM_SITE = $(call github,notspiff,visualization.waveform,$(KODI_VISUALISATION_WAVEFORM_VERSION)) KODI_VISUALISATION_WAVEFORM_LICENSE = GPLv2+ KODI_VISUALISATION_WAVEFORM_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/kodi/0004-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch b/bsp/buildroot/package/kodi/0004-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch index 641525ca..2678a783 100644 --- a/bsp/buildroot/package/kodi/0004-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch +++ b/bsp/buildroot/package/kodi/0004-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch @@ -17,14 +17,17 @@ diff --git a/project/cmake/kodi-config.cmake.in b/project/cmake/kodi-config.cmak index 76626ec..ffb8e1d 100644 --- a/project/cmake/kodi-config.cmake.in +++ b/project/cmake/kodi-config.cmake.in -@@ -4,12 +4,12 @@ SET(APP_NAME_UC @APP_NAME_UC@) - SET(APP_VERSION_MAJOR @APP_VERSION_MAJOR@) - SET(APP_VERSION_MINOR @APP_VERSION_MINOR@) - SET(@APP_NAME_UC@_PREFIX @APP_PREFIX@) --SET(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@) --SET(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@) -+SET(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@) -+SET(@APP_NAME_UC@_LIB_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@) +@@ -7,15 +7,15 @@ + SET(@APP_NAME_UC@_PREFIX @APP_PREFIX@) + ENDIF() + IF(NOT @APP_NAME_UC@_INCLUDE_DIR) +- SET(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@) ++ SET(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@) + ENDIF() + IF(NOT @APP_NAME_UC@_LIB_DIR) +- SET(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@) ++ SET(@APP_NAME_UC@_LIB_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@) + ENDIF() IF(NOT WIN32) SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@") ENDIF() @@ -32,7 +35,7 @@ index 76626ec..ffb8e1d 100644 +LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@) ADD_DEFINITIONS(@ARCH_DEFINES@ -DBUILD_KODI_ADDON) - include(addon-helpers) + if(NOT CORE_SYSTEM_NAME) -- 2.5.0 diff --git a/bsp/buildroot/package/kodi/0005-native-TexturePacker-fix-compilation-with-gcc-4.6.patch b/bsp/buildroot/package/kodi/0005-native-TexturePacker-fix-compilation-with-gcc-4.6.patch new file mode 100644 index 00000000..3d9370ff --- /dev/null +++ b/bsp/buildroot/package/kodi/0005-native-TexturePacker-fix-compilation-with-gcc-4.6.patch @@ -0,0 +1,53 @@ +From 2b395fb3f07551ae1ce2e484c14ac59f36e192b0 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Thu, 17 Mar 2016 21:47:53 +0100 +Subject: [PATCH] native/TexturePacker: fix compilation with gcc 4.6 + +Kodi itself depends on gcc >= 4.7 due to its use of the C++11 standard. +When cross-compiling the host gcc currently also needs to be >= 4.7 due +to the texturepacker tool being needed as native binary to compile +Textures.xbt for the target system. + +Cross-compiling on a system where host gcc is at version 4.6 fails atm +with this error: + +cc1plus: error: unrecognized command line option '-std=c++11' +make[4]: *** [md5.o] Error 1 +make[4]: *** Waiting for unfinished jobs.... +cc1plus: error: unrecognized command line option '-std=c++11' +cc1plus: error: unrecognized command line option '-std=c++11' + +make[4]: *** [DecoderManager.o] Error 1 +make[4]: *** [XBTFWriter.o] Error 1 +cc1plus: error: unrecognized command line option '-std=c++11' +make[4]: *** [TexturePacker.o] Error 1 +cc1plus: error: unrecognized command line option '-std=c++11' +make[4]: *** [decoder/PNGDecoder.o] Error 1 +make[3]: *** [all] Error 2 +make[2]: *** [native/TexturePacker] Error 2 + +Using this patch the problem is fixed and a working TexturePacker host +binary is created. + +Signed-off-by: Bernd Kuhls +Patch sent upstream: https://github.com/xbmc/xbmc/pull/9378 +--- + tools/depends/native/TexturePacker/src/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/depends/native/TexturePacker/src/Makefile.am b/tools/depends/native/TexturePacker/src/Makefile.am +index c1fc8be..d075290 100644 +--- a/tools/depends/native/TexturePacker/src/Makefile.am ++++ b/tools/depends/native/TexturePacker/src/Makefile.am +@@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = subdir-objects + + AM_CFLAGS = -DTARGET_POSIX -DUSE_LZO_PACKING + AM_CFLAGS += @EXTRA_DEFINES@ +-AM_CXXFLAGS = $(AM_CFLAGS) -std=c++11 ++AM_CXXFLAGS = $(AM_CFLAGS) -std=c++0x + + AM_CPPFLAGS = \ + -I. \ +-- +2.7.0 + diff --git a/bsp/buildroot/package/kodi/0006-ffmpeg30.patch b/bsp/buildroot/package/kodi/0006-ffmpeg30.patch new file mode 100644 index 00000000..9164d48a --- /dev/null +++ b/bsp/buildroot/package/kodi/0006-ffmpeg30.patch @@ -0,0 +1,646 @@ +Add support for ffmpeg 3.0 + +Changes from original commit are only in file paths & quilt refresh. + +commit c31b7d374062f87c7512d9872cbceac920465913 +Author: Philip Langdale +Date: Mon Sep 21 19:49:36 2015 -0700 + + ffmpeg: Update AVPixelFormat and AV_PIX_FMT_* to compile with master + + The deprecated PixelFormat and PIX_FMT_* names have been removed in + ffmpeg master. + +Signed-off-by: Bernd Kuhls +[Downloaded from +https://gitweb.gentoo.org/repo/gentoo.git/tree/media-tv/kodi/files/kodi-16-ffmpeg3.patch] + +Index: xbmc-16.0-Jarvis/xbmc/cores/FFmpeg.h +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/FFmpeg.h ++++ xbmc-16.0-Jarvis/xbmc/cores/FFmpeg.h +@@ -24,7 +24,6 @@ + #include "utils/CPUInfo.h" + + extern "C" { +-#include "libswscale/swscale.h" + #include "libavcodec/avcodec.h" + #include "libavformat/avformat.h" + #include "libavutil/avutil.h" +@@ -33,23 +32,6 @@ extern "C" { + #include "libpostproc/postprocess.h" + } + +-inline int SwScaleCPUFlags() +-{ +- unsigned int cpuFeatures = g_cpuInfo.GetCPUFeatures(); +- int flags = 0; +- +- if (cpuFeatures & CPU_FEATURE_MMX) +- flags |= SWS_CPU_CAPS_MMX; +- if (cpuFeatures & CPU_FEATURE_MMX2) +- flags |= SWS_CPU_CAPS_MMX2; +- if (cpuFeatures & CPU_FEATURE_3DNOW) +- flags |= SWS_CPU_CAPS_3DNOW; +- if (cpuFeatures & CPU_FEATURE_ALTIVEC) +- flags |= SWS_CPU_CAPS_ALTIVEC; +- +- return flags; +-} +- + inline int PPCPUFlags() + { + unsigned int cpuFeatures = g_cpuInfo.GetCPUFeatures(); +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecUtils.cpp +@@ -39,7 +39,7 @@ extern "C" { + #include "libswscale/swscale.h" + } + +-// allocate a new picture (PIX_FMT_YUV420P) ++// allocate a new picture (AV_PIX_FMT_YUV420P) + DVDVideoPicture* CDVDCodecUtils::AllocatePicture(int iWidth, int iHeight) + { + DVDVideoPicture* pPicture = new DVDVideoPicture; +@@ -264,13 +264,13 @@ DVDVideoPicture* CDVDCodecUtils::Convert + + int dstformat; + if (format == RENDER_FMT_UYVY422) +- dstformat = PIX_FMT_UYVY422; ++ dstformat = AV_PIX_FMT_UYVY422; + else +- dstformat = PIX_FMT_YUYV422; ++ dstformat = AV_PIX_FMT_YUYV422; + +- struct SwsContext *ctx = sws_getContext(pSrc->iWidth, pSrc->iHeight, PIX_FMT_YUV420P, ++ struct SwsContext *ctx = sws_getContext(pSrc->iWidth, pSrc->iHeight, AV_PIX_FMT_YUV420P, + pPicture->iWidth, pPicture->iHeight, (AVPixelFormat)dstformat, +- SWS_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ SWS_BILINEAR, NULL, NULL, NULL); + sws_scale(ctx, src, srcStride, 0, pSrc->iHeight, dst, dstStride); + sws_freeContext(ctx); + } +@@ -403,25 +403,25 @@ double CDVDCodecUtils::NormalizeFramedur + } + + struct EFormatMap { +- PixelFormat pix_fmt; ++ AVPixelFormat pix_fmt; + ERenderFormat format; + }; + + static const EFormatMap g_format_map[] = { +- { PIX_FMT_YUV420P, RENDER_FMT_YUV420P } +-, { PIX_FMT_YUVJ420P, RENDER_FMT_YUV420P } +-, { PIX_FMT_YUV420P10, RENDER_FMT_YUV420P10 } +-, { PIX_FMT_YUV420P16, RENDER_FMT_YUV420P16 } +-, { PIX_FMT_UYVY422, RENDER_FMT_UYVY422 } +-, { PIX_FMT_YUYV422, RENDER_FMT_YUYV422 } +-, { PIX_FMT_VAAPI_VLD, RENDER_FMT_VAAPI } +-, { PIX_FMT_DXVA2_VLD, RENDER_FMT_DXVA } +-, { PIX_FMT_NONE , RENDER_FMT_NONE } ++ { AV_PIX_FMT_YUV420P, RENDER_FMT_YUV420P } ++, { AV_PIX_FMT_YUVJ420P, RENDER_FMT_YUV420P } ++, { AV_PIX_FMT_YUV420P10, RENDER_FMT_YUV420P10 } ++, { AV_PIX_FMT_YUV420P16, RENDER_FMT_YUV420P16 } ++, { AV_PIX_FMT_UYVY422, RENDER_FMT_UYVY422 } ++, { AV_PIX_FMT_YUYV422, RENDER_FMT_YUYV422 } ++, { AV_PIX_FMT_VAAPI_VLD, RENDER_FMT_VAAPI } ++, { AV_PIX_FMT_DXVA2_VLD, RENDER_FMT_DXVA } ++, { AV_PIX_FMT_NONE , RENDER_FMT_NONE } + }; + + ERenderFormat CDVDCodecUtils::EFormatFromPixfmt(int fmt) + { +- for(const EFormatMap *p = g_format_map; p->pix_fmt != PIX_FMT_NONE; ++p) ++ for(const EFormatMap *p = g_format_map; p->pix_fmt != AV_PIX_FMT_NONE; ++p) + { + if(p->pix_fmt == fmt) + return p->format; +@@ -431,10 +431,10 @@ ERenderFormat CDVDCodecUtils::EFormatFro + + int CDVDCodecUtils::PixfmtFromEFormat(ERenderFormat fmt) + { +- for(const EFormatMap *p = g_format_map; p->pix_fmt != PIX_FMT_NONE; ++p) ++ for(const EFormatMap *p = g_format_map; p->pix_fmt != AV_PIX_FMT_NONE; ++p) + { + if(p->format == fmt) + return p->pix_fmt; + } +- return PIX_FMT_NONE; ++ return AV_PIX_FMT_NONE; + } +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -77,8 +77,8 @@ enum DecoderState + STATE_SW_MULTI + }; + +-enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx +- , const PixelFormat * fmt ) ++enum AVPixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx ++ , const AVPixelFormat * fmt ) + { + CDVDVideoCodecFFmpeg* ctx = (CDVDVideoCodecFFmpeg*)avctx->opaque; + +@@ -104,8 +104,8 @@ enum PixelFormat CDVDVideoCodecFFmpeg::G + avctx->hwaccel_context = 0; + } + +- const PixelFormat * cur = fmt; +- while(*cur != PIX_FMT_NONE) ++ const AVPixelFormat * cur = fmt; ++ while(*cur != AV_PIX_FMT_NONE) + { + #ifdef HAVE_LIBVDPAU + if(VDPAU::CDecoder::IsVDPAUFormat(*cur) && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVDPAU)) +@@ -137,7 +137,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::G + #endif + #ifdef HAVE_LIBVA + // mpeg4 vaapi decoding is disabled +- if(*cur == PIX_FMT_VAAPI_VLD && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVAAPI)) ++ if(*cur == AV_PIX_FMT_VAAPI_VLD && CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_USEVAAPI)) + { + VAAPI::CDecoder* dec = new VAAPI::CDecoder(); + if(dec->Open(avctx, ctx->m_pCodecContext, *cur, ctx->m_uSurfacesCount) == true) +@@ -214,11 +214,11 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStre + + for(std::vector::iterator it = options.m_formats.begin(); it != options.m_formats.end(); ++it) + { +- m_formats.push_back((PixelFormat)CDVDCodecUtils::PixfmtFromEFormat(*it)); ++ m_formats.push_back((AVPixelFormat)CDVDCodecUtils::PixfmtFromEFormat(*it)); + if(*it == RENDER_FMT_YUV420P) +- m_formats.push_back(PIX_FMT_YUVJ420P); ++ m_formats.push_back(AV_PIX_FMT_YUVJ420P); + } +- m_formats.push_back(PIX_FMT_NONE); /* always add none to get a terminated list in ffmpeg world */ ++ m_formats.push_back(AV_PIX_FMT_NONE); /* always add none to get a terminated list in ffmpeg world */ + + pCodec = avcodec_find_decoder(hints.codec); + +@@ -655,7 +655,7 @@ bool CDVDVideoCodecFFmpeg::GetPictureCom + pDvdVideoPicture->color_transfer = m_pCodecContext->color_trc; + pDvdVideoPicture->color_matrix = m_pCodecContext->colorspace; + if(m_pCodecContext->color_range == AVCOL_RANGE_JPEG +- || m_pCodecContext->pix_fmt == PIX_FMT_YUVJ420P) ++ || m_pCodecContext->pix_fmt == AV_PIX_FMT_YUVJ420P) + pDvdVideoPicture->color_range = 1; + else + pDvdVideoPicture->color_range = 0; +@@ -738,8 +738,8 @@ bool CDVDVideoCodecFFmpeg::GetPicture(DV + pDvdVideoPicture->iFlags |= pDvdVideoPicture->data[0] ? 0 : DVP_FLAG_DROPPED; + pDvdVideoPicture->extended_format = 0; + +- PixelFormat pix_fmt; +- pix_fmt = (PixelFormat)m_pFrame->format; ++ AVPixelFormat pix_fmt; ++ pix_fmt = (AVPixelFormat)m_pFrame->format; + + pDvdVideoPicture->format = CDVDCodecUtils::EFormatFromPixfmt(pix_fmt); + return true; +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h +@@ -46,7 +46,7 @@ public: + public: + IHardwareDecoder() {} + virtual ~IHardwareDecoder() {}; +- virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces) = 0; ++ virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces) = 0; + virtual int Decode (AVCodecContext* avctx, AVFrame* frame) = 0; + virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture) = 0; + virtual int Check (AVCodecContext* avctx) = 0; +@@ -77,7 +77,7 @@ public: + void SetHardware(IHardwareDecoder* hardware); + + protected: +- static enum PixelFormat GetFormat(struct AVCodecContext * avctx, const PixelFormat * fmt); ++ static enum AVPixelFormat GetFormat(struct AVCodecContext * avctx, const AVPixelFormat * fmt); + + int FilterOpen(const std::string& filters, bool scale); + void FilterClose(); +@@ -119,7 +119,7 @@ protected: + int m_iLastKeyframe; + double m_dts; + bool m_started; +- std::vector m_formats; ++ std::vector m_formats; + double m_decoderPts; + int m_skippedDeint; + bool m_requestSkipDeint; +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp +@@ -554,11 +554,11 @@ void CDVDVideoCodecVDA::DisplayQueuePop( + + void CDVDVideoCodecVDA::UYVY422_to_YUV420P(uint8_t *yuv422_ptr, int yuv422_stride, DVDVideoPicture *picture) + { +- // convert PIX_FMT_UYVY422 to PIX_FMT_YUV420P. ++ // convert AV_PIX_FMT_UYVY422 to AV_PIX_FMT_YUV420P. + struct SwsContext *swcontext = sws_getContext( +- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_UYVY422, +- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_YUV420P, +- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_UYVY422, ++ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_YUV420P, ++ SWS_FAST_BILINEAR, NULL, NULL, NULL); + if (swcontext) + { + uint8_t *src[] = { yuv422_ptr, 0, 0, 0 }; +@@ -574,11 +574,11 @@ void CDVDVideoCodecVDA::UYVY422_to_YUV42 + + void CDVDVideoCodecVDA::BGRA_to_YUV420P(uint8_t *bgra_ptr, int bgra_stride, DVDVideoPicture *picture) + { +- // convert PIX_FMT_BGRA to PIX_FMT_YUV420P. ++ // convert AV_PIX_FMT_BGRA to AV_PIX_FMT_YUV420P. + struct SwsContext *swcontext = sws_getContext( +- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_BGRA, +- m_videobuffer.iWidth, m_videobuffer.iHeight, PIX_FMT_YUV420P, +- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_BGRA, ++ m_videobuffer.iWidth, m_videobuffer.iHeight, AV_PIX_FMT_YUV420P, ++ SWS_FAST_BILINEAR, NULL, NULL, NULL); + if (swcontext) + { + uint8_t *src[] = { bgra_ptr, 0, 0, 0 }; +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp +@@ -886,7 +886,7 @@ static bool CheckCompatibility(AVCodecCo + return true; + } + +-bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum PixelFormat fmt, unsigned int surfaces) ++bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixelFormat fmt, unsigned int surfaces) + { + if (!CheckCompatibility(avctx)) + return false; +@@ -1135,9 +1135,9 @@ bool CDecoder::OpenDecoder() + return true; + } + +-bool CDecoder::Supports(enum PixelFormat fmt) ++bool CDecoder::Supports(enum AVPixelFormat fmt) + { +- if(fmt == PIX_FMT_DXVA2_VLD) ++ if(fmt == AV_PIX_FMT_DXVA2_VLD) + return true; + return false; + } +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.h +@@ -141,7 +141,7 @@ class CDecoder + public: + CDecoder(); + ~CDecoder(); +- virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces); ++ virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces); + virtual int Decode (AVCodecContext* avctx, AVFrame* frame); + virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture); + virtual int Check (AVCodecContext* avctx); +@@ -154,7 +154,7 @@ public: + int GetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags); + void RelBuffer(uint8_t *data); + +- static bool Supports(enum PixelFormat fmt); ++ static bool Supports(enum AVPixelFormat fmt); + + void CloseDXVADecoder(); + +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +@@ -479,7 +479,7 @@ CDecoder::~CDecoder() + Close(); + } + +-bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat fmt, unsigned int surfaces) ++bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat fmt, unsigned int surfaces) + { + // don't support broken wrappers by default + // nvidia cards with a vaapi to vdpau wrapper +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.h +@@ -406,7 +406,7 @@ public: + CDecoder(); + virtual ~CDecoder(); + +- virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0); ++ virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0); + virtual int Decode (AVCodecContext* avctx, AVFrame* frame); + virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture); + virtual void Reset(); +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.cpp +@@ -186,7 +186,7 @@ void CDecoder::Close() + m_bitstream = NULL; + } + +-bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum PixelFormat fmt, unsigned int surfaces) ++bool CDecoder::Open(AVCodecContext *avctx, AVCodecContext* mainctx, enum AVPixelFormat fmt, unsigned int surfaces) + { + Close(); + +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDA.h +@@ -35,7 +35,7 @@ class CDecoder + public: + CDecoder(); + ~CDecoder(); +- virtual bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0); ++ virtual bool Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0); + virtual int Decode(AVCodecContext* avctx, AVFrame* frame); + virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture); + virtual int Check(AVCodecContext* avctx); +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -486,7 +486,7 @@ CDecoder::CDecoder() : m_vdpauOutput(&m_ + m_vdpauConfig.context = 0; + } + +-bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat fmt, unsigned int surfaces) ++bool CDecoder::Open(AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat fmt, unsigned int surfaces) + { + // check if user wants to decode this format with VDPAU + std::string gpuvendor = g_Windowing.GetRenderVendor(); +@@ -760,7 +760,7 @@ int CDecoder::Check(AVCodecContext* avct + return 0; + } + +-bool CDecoder::IsVDPAUFormat(PixelFormat format) ++bool CDecoder::IsVDPAUFormat(AVPixelFormat format) + { + if (format == AV_PIX_FMT_VDPAU) + return true; +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h +@@ -556,7 +556,7 @@ public: + CDecoder(); + virtual ~CDecoder(); + +- virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum PixelFormat, unsigned int surfaces = 0); ++ virtual bool Open (AVCodecContext* avctx, AVCodecContext* mainctx, const enum AVPixelFormat, unsigned int surfaces = 0); + virtual int Decode (AVCodecContext* avctx, AVFrame* frame); + virtual bool GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture* picture); + virtual void Reset(); +@@ -571,7 +571,7 @@ public: + bool Supports(VdpVideoMixerFeature feature); + bool Supports(EINTERLACEMETHOD method); + EINTERLACEMETHOD AutoInterlaceMethod(); +- static bool IsVDPAUFormat(PixelFormat fmt); ++ static bool IsVDPAUFormat(AVPixelFormat fmt); + + static void FFReleaseBuffer(void *opaque, uint8_t *data); + static int FFGetBuffer(AVCodecContext *avctx, AVFrame *pic, int flags); +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +@@ -1638,7 +1638,7 @@ void CDVDDemuxFFmpeg::ParsePacket(AVPack + + // for video we need a decoder to get desired information into codec context + if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO && st->codec->extradata && +- (!st->codec->width || st->codec->pix_fmt == PIX_FMT_NONE)) ++ (!st->codec->width || st->codec->pix_fmt == AV_PIX_FMT_NONE)) + { + // open a decoder, it will be cleared down by ffmpeg on closing the stream + if (!st->codec->codec) +@@ -1695,7 +1695,7 @@ bool CDVDDemuxFFmpeg::IsVideoReady() + st = m_pFormatContext->streams[idx]; + if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) + { +- if (st->codec->width && st->codec->pix_fmt != PIX_FMT_NONE) ++ if (st->codec->width && st->codec->pix_fmt != AV_PIX_FMT_NONE) + return true; + hasVideo = true; + } +@@ -1708,7 +1708,7 @@ bool CDVDDemuxFFmpeg::IsVideoReady() + st = m_pFormatContext->streams[i]; + if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) + { +- if (st->codec->width && st->codec->pix_fmt != PIX_FMT_NONE) ++ if (st->codec->width && st->codec->pix_fmt != AV_PIX_FMT_NONE) + return true; + hasVideo = true; + } +Index: xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDFileInfo.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/dvdplayer/DVDFileInfo.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/dvdplayer/DVDFileInfo.cpp +@@ -275,7 +275,7 @@ bool CDVDFileInfo::ExtractThumb(const st + + uint8_t *pOutBuf = new uint8_t[nWidth * nHeight * 4]; + struct SwsContext *context = sws_getContext(picture.iWidth, picture.iHeight, +- PIX_FMT_YUV420P, nWidth, nHeight, PIX_FMT_BGRA, SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ AV_PIX_FMT_YUV420P, nWidth, nHeight, AV_PIX_FMT_BGRA, SWS_FAST_BILINEAR, NULL, NULL, NULL); + + if (context) + { +Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +@@ -2932,7 +2932,7 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im + } + else if (m_format == RENDER_FMT_NV12) + { +- srcFormat = PIX_FMT_NV12; ++ srcFormat = AV_PIX_FMT_NV12; + for (int i = 0; i < 2; i++) + { + src[i] = im->plane[i]; +@@ -2941,13 +2941,13 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im + } + else if (m_format == RENDER_FMT_YUYV422) + { +- srcFormat = PIX_FMT_YUYV422; ++ srcFormat = AV_PIX_FMT_YUYV422; + src[0] = im->plane[0]; + srcStride[0] = im->stride[0]; + } + else if (m_format == RENDER_FMT_UYVY422) + { +- srcFormat = PIX_FMT_UYVY422; ++ srcFormat = AV_PIX_FMT_UYVY422; + src[0] = im->plane[0]; + srcStride[0] = im->stride[0]; + } +@@ -2965,8 +2965,8 @@ void CLinuxRendererGL::ToRGBFrame(YV12Im + + m_context = sws_getCachedContext(m_context, + im->width, im->height, (AVPixelFormat)srcFormat, +- im->width, im->height, (AVPixelFormat)PIX_FMT_BGRA, +- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ im->width, im->height, (AVPixelFormat)AV_PIX_FMT_BGRA, ++ SWS_FAST_BILINEAR, NULL, NULL, NULL); + + uint8_t *dst[] = { m_rgbBuffer, 0, 0, 0 }; + int dstStride[] = { (int)m_sourceWidth * 4, 0, 0, 0 }; +@@ -2995,7 +2995,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I + + if (m_format == RENDER_FMT_YUV420P) + { +- srcFormat = PIX_FMT_YUV420P; ++ srcFormat = AV_PIX_FMT_YUV420P; + for (int i = 0; i < 3; i++) + { + srcTop[i] = im->plane[i]; +@@ -3006,7 +3006,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I + } + else if (m_format == RENDER_FMT_NV12) + { +- srcFormat = PIX_FMT_NV12; ++ srcFormat = AV_PIX_FMT_NV12; + for (int i = 0; i < 2; i++) + { + srcTop[i] = im->plane[i]; +@@ -3017,7 +3017,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I + } + else if (m_format == RENDER_FMT_YUYV422) + { +- srcFormat = PIX_FMT_YUYV422; ++ srcFormat = AV_PIX_FMT_YUYV422; + srcTop[0] = im->plane[0]; + srcStrideTop[0] = im->stride[0] * 2; + srcBot[0] = im->plane[0] + im->stride[0]; +@@ -3025,7 +3025,7 @@ void CLinuxRendererGL::ToRGBFields(YV12I + } + else if (m_format == RENDER_FMT_UYVY422) + { +- srcFormat = PIX_FMT_UYVY422; ++ srcFormat = AV_PIX_FMT_UYVY422; + srcTop[0] = im->plane[0]; + srcStrideTop[0] = im->stride[0] * 2; + srcBot[0] = im->plane[0] + im->stride[0]; +@@ -3045,8 +3045,8 @@ void CLinuxRendererGL::ToRGBFields(YV12I + + m_context = sws_getCachedContext(m_context, + im->width, im->height >> 1, (AVPixelFormat)srcFormat, +- im->width, im->height >> 1, (AVPixelFormat)PIX_FMT_BGRA, +- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ im->width, im->height >> 1, (AVPixelFormat)AV_PIX_FMT_BGRA, ++ SWS_FAST_BILINEAR, NULL, NULL, NULL); + uint8_t *dstTop[] = { m_rgbBuffer, 0, 0, 0 }; + uint8_t *dstBot[] = { m_rgbBuffer + m_sourceWidth * m_sourceHeight * 2, 0, 0, 0 }; + int dstStride[] = { (int)m_sourceWidth * 4, 0, 0, 0 }; +Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp +@@ -2006,8 +2006,8 @@ void CLinuxRendererGLES::UploadYV12Textu + #endif + { + m_sw_context = sws_getCachedContext(m_sw_context, +- im->width, im->height, PIX_FMT_YUV420P, +- im->width, im->height, PIX_FMT_RGBA, ++ im->width, im->height, AV_PIX_FMT_YUV420P, ++ im->width, im->height, AV_PIX_FMT_RGBA, + SWS_FAST_BILINEAR, NULL, NULL, NULL); + + uint8_t *src[] = { im->plane[0], im->plane[1], im->plane[2], 0 }; +Index: xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/WinRenderer.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/cores/VideoRenderers/WinRenderer.cpp ++++ xbmc-16.0-Jarvis/xbmc/cores/VideoRenderers/WinRenderer.cpp +@@ -94,16 +94,16 @@ CWinRenderer::~CWinRenderer() + UnInit(); + } + +-static enum PixelFormat PixelFormatFromFormat(ERenderFormat format) ++static enum AVPixelFormat PixelFormatFromFormat(ERenderFormat format) + { +- if (format == RENDER_FMT_DXVA) return PIX_FMT_NV12; +- if (format == RENDER_FMT_YUV420P) return PIX_FMT_YUV420P; +- if (format == RENDER_FMT_YUV420P10) return PIX_FMT_YUV420P10; +- if (format == RENDER_FMT_YUV420P16) return PIX_FMT_YUV420P16; +- if (format == RENDER_FMT_NV12) return PIX_FMT_NV12; +- if (format == RENDER_FMT_UYVY422) return PIX_FMT_UYVY422; +- if (format == RENDER_FMT_YUYV422) return PIX_FMT_YUYV422; +- return PIX_FMT_NONE; ++ if (format == RENDER_FMT_DXVA) return AV_PIX_FMT_NV12; ++ if (format == RENDER_FMT_YUV420P) return AV_PIX_FMT_YUV420P; ++ if (format == RENDER_FMT_YUV420P10) return AV_PIX_FMT_YUV420P10; ++ if (format == RENDER_FMT_YUV420P16) return AV_PIX_FMT_YUV420P16; ++ if (format == RENDER_FMT_NV12) return AV_PIX_FMT_NV12; ++ if (format == RENDER_FMT_UYVY422) return AV_PIX_FMT_UYVY422; ++ if (format == RENDER_FMT_YUYV422) return AV_PIX_FMT_YUYV422; ++ return AV_PIX_FMT_NONE; + } + + void CWinRenderer::ManageTextures() +@@ -719,13 +719,13 @@ void CWinRenderer::Render(DWORD flags) + + void CWinRenderer::RenderSW() + { +- enum PixelFormat format = PixelFormatFromFormat(m_format); ++ enum AVPixelFormat format = PixelFormatFromFormat(m_format); + + // 1. convert yuv to rgb + m_sw_scale_ctx = sws_getCachedContext(m_sw_scale_ctx, + m_sourceWidth, m_sourceHeight, format, +- m_sourceWidth, m_sourceHeight, PIX_FMT_BGRA, +- SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); ++ m_sourceWidth, m_sourceHeight, AV_PIX_FMT_BGRA, ++ SWS_FAST_BILINEAR, NULL, NULL, NULL); + + YUVBuffer* buf = (YUVBuffer*)m_VideoBuffers[m_iYV12RenderBuffer]; + +Index: xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/pictures/Picture.cpp ++++ xbmc-16.0-Jarvis/xbmc/pictures/Picture.cpp +@@ -342,9 +342,9 @@ bool CPicture::ScaleImage(uint8_t *in_pi + uint8_t *out_pixels, unsigned int out_width, unsigned int out_height, unsigned int out_pitch, + CPictureScalingAlgorithm::Algorithm scalingAlgorithm /* = CPictureScalingAlgorithm::NoAlgorithm */) + { +- struct SwsContext *context = sws_getContext(in_width, in_height, PIX_FMT_BGRA, +- out_width, out_height, PIX_FMT_BGRA, +- CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm) | SwScaleCPUFlags(), NULL, NULL, NULL); ++ struct SwsContext *context = sws_getContext(in_width, in_height, AV_PIX_FMT_BGRA, ++ out_width, out_height, AV_PIX_FMT_BGRA, ++ CPictureScalingAlgorithm::ToSwscale(scalingAlgorithm), NULL, NULL, NULL); + + uint8_t *src[] = { in_pixels, 0, 0, 0 }; + int srcStride[] = { (int)in_pitch, 0, 0, 0 }; +Index: xbmc-16.0-Jarvis/xbmc/video/FFmpegVideoDecoder.cpp +=================================================================== +--- xbmc-16.0-Jarvis.orig/xbmc/video/FFmpegVideoDecoder.cpp ++++ xbmc-16.0-Jarvis/xbmc/video/FFmpegVideoDecoder.cpp +@@ -252,7 +252,7 @@ bool FFmpegVideoDecoder::nextFrame( CBas + return false; + + // Due to a bug in swsscale we need to allocate one extra line of data +- if ( avpicture_alloc( m_pFrameRGB, PIX_FMT_RGB32, m_frameRGBwidth, m_frameRGBheight + 1 ) < 0 ) ++ if ( avpicture_alloc( m_pFrameRGB, AV_PIX_FMT_RGB32, m_frameRGBwidth, m_frameRGBheight + 1 ) < 0 ) + return false; + } + +@@ -287,7 +287,7 @@ bool FFmpegVideoDecoder::nextFrame( CBas + + // We got the video frame, render it into the picture buffer + struct SwsContext * context = sws_getContext( m_pCodecCtx->width, m_pCodecCtx->height, m_pCodecCtx->pix_fmt, +- m_frameRGBwidth, m_frameRGBheight, PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL ); ++ m_frameRGBwidth, m_frameRGBheight, AV_PIX_FMT_RGB32, SWS_FAST_BILINEAR, NULL, NULL, NULL ); + + sws_scale( context, m_pFrame->data, m_pFrame->linesize, 0, m_pCodecCtx->height, + m_pFrameRGB->data, m_pFrameRGB->linesize ); diff --git a/bsp/buildroot/package/kodi/0007-exif-Fix-for-out-of-memory-errors-with-large-numbers.patch b/bsp/buildroot/package/kodi/0007-exif-Fix-for-out-of-memory-errors-with-large-numbers.patch new file mode 100644 index 00000000..9b0e47d0 --- /dev/null +++ b/bsp/buildroot/package/kodi/0007-exif-Fix-for-out-of-memory-errors-with-large-numbers.patch @@ -0,0 +1,45 @@ +From f63563615e357b7d794a38e1d37276c325d1466f Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sat, 7 May 2016 13:47:42 +0100 +Subject: [PATCH] [exif] Fix for out-of-memory errors with large numbers + of jpegs + +This reverts part of https://github.com/xbmc/xbmc/pull/7472 + +Basically the commit made the 4 comments in the exif block increase +from 2K to 64K each, so you now need 256K per photo. + +When opening a folder exif information for all photos is extracted. +So, for a folder of 5000 jpegs, 1.2GB of RAM is needed just for +the comments. + +As a 64K comment string is of no use to kodi, just truncate them to 2K +like we used to. + +See: +http://trac.kodi.tv/ticket/16193 +http://forum.kodi.tv/showthread.php?tid=251908 + +Signed-off-by: Bernd Kuhls +(backported from upstream commit in master branch: + https://github.com/xbmc/xbmc/commit/f63563615e357b7d794a38e1d37276c325d1466f) +--- + lib/libexif/libexif.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/libexif/libexif.h b/lib/libexif/libexif.h +index aa8da07..519ac30 100644 +--- a/lib/libexif/libexif.h ++++ b/lib/libexif/libexif.h +@@ -81,7 +81,7 @@ typedef struct { + #define EXIF_COMMENT_CHARSET_UNICODE 3 // Exif: Unicode (UTF-16) + #define EXIF_COMMENT_CHARSET_JIS 4 // Exif: JIS X208-1990 + +-#define MAX_COMMENT 65533 // 2 bytes - 2 for the length param ++#define MAX_COMMENT 2000 + #define MAX_DATE_COPIES 10 + + typedef struct { +-- +2.8.1 + diff --git a/bsp/buildroot/package/kodi/0008-Fix-nullpadding-issue-when-reading-certain-id3v1-tag.patch b/bsp/buildroot/package/kodi/0008-Fix-nullpadding-issue-when-reading-certain-id3v1-tag.patch new file mode 100644 index 00000000..dc428d6c --- /dev/null +++ b/bsp/buildroot/package/kodi/0008-Fix-nullpadding-issue-when-reading-certain-id3v1-tag.patch @@ -0,0 +1,82 @@ +From 78571ed421e3fd3d5244cd76670e4e1bab69132f Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Fri, 27 May 2016 17:30:28 +0200 +Subject: [PATCH 1/1] Fix nullpadding issue when reading certain id3v1 tags + +backported from upstream commit to master branch: + +https://github.com/xbmc/xbmc/commit/cdabf9dd9e82f4b2d639fb769db08227a7c52046 + +to fix problems with taglib-1.11: + +http://trac.kodi.tv/ticket/16454 +https://github.com/taglib/taglib/issues/741#issuecomment-218059031 + +Signed-off-by: Bernd Kuhls +--- + xbmc/music/tags/TagLoaderTagLib.cpp | 21 --------------------- + xbmc/music/tags/TagLoaderTagLib.h | 3 +++ + 2 files changed, 3 insertions(+), 21 deletions(-) + +diff --git a/xbmc/music/tags/TagLoaderTagLib.cpp b/xbmc/music/tags/TagLoaderTagLib.cpp +index b78a591..0fc346a 100644 +--- a/xbmc/music/tags/TagLoaderTagLib.cpp ++++ b/xbmc/music/tags/TagLoaderTagLib.cpp +@@ -46,31 +46,12 @@ + #include "utils/URIUtils.h" + #include "utils/log.h" + #include "utils/StringUtils.h" +-#include "utils/CharsetConverter.h" + #include "utils/Base64.h" + #include "settings/AdvancedSettings.h" + + using namespace TagLib; + using namespace MUSIC_INFO; + +-template +-class TagStringHandler : public T +-{ +-public: +- TagStringHandler() {} +- virtual ~TagStringHandler() {} +- virtual String parse(const ByteVector &data) const +- { +- std::string strSource(data.data(), data.size()); +- std::string strUTF8; +- g_charsetConverter.unknownToUTF8(strSource, strUTF8); +- return String(strUTF8, String::UTF8); +- } +-}; +- +-static const TagStringHandler ID3v1StringHandler; +-static const TagStringHandler ID3v2StringHandler; +- + CTagLoaderTagLib::CTagLoaderTagLib() + { + } +@@ -824,8 +805,6 @@ bool CTagLoaderTagLib::Load(const std::string& strFileName, CMusicInfoTag& tag, + return false; + } + +- ID3v1::Tag::setStringHandler(&ID3v1StringHandler); +- ID3v2::Tag::setLatin1StringHandler(&ID3v2StringHandler); + TagLib::File* file = NULL; + TagLib::APE::File* apeFile = NULL; + TagLib::ASF::File* asfFile = NULL; +diff --git a/xbmc/music/tags/TagLoaderTagLib.h b/xbmc/music/tags/TagLoaderTagLib.h +index f83ea4f..0edb84f 100644 +--- a/xbmc/music/tags/TagLoaderTagLib.h ++++ b/xbmc/music/tags/TagLoaderTagLib.h +@@ -44,6 +44,9 @@ + #include + #include "ImusicInfoTagLoader.h" + ++#include ++#include ++ + namespace MUSIC_INFO + { + class CMusicInfoTag; +-- +2.8.1 + diff --git a/bsp/buildroot/package/kodi/0009-lib-cximage-6.0-fix-compilation-with-gcc6.patch b/bsp/buildroot/package/kodi/0009-lib-cximage-6.0-fix-compilation-with-gcc6.patch new file mode 100644 index 00000000..a8de36c7 --- /dev/null +++ b/bsp/buildroot/package/kodi/0009-lib-cximage-6.0-fix-compilation-with-gcc6.patch @@ -0,0 +1,1438 @@ +From 8f82e51563f0e1bc9b7a8adf669ad2b66e7ce3e5 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Thu, 28 Apr 2016 17:17:40 +0200 +Subject: [PATCH] lib/cximage-6.0: fix compilation with gcc6 + +For a quick fix I renamed min() to cxmin() and max() to cxmax() to +prevent the conflict with the gcc definition. + +Forum thread for reference: +http://forum.kodi.tv/showthread.php?tid=263884 + +Signed-off-by: Bernd Kuhls +(Patch sent upstream: https://github.com/xbmc/xbmc/pull/9703) +--- + lib/cximage-6.0/CxImage/ximabmp.cpp | 6 +- + lib/cximage-6.0/CxImage/ximadef.h | 8 +- + lib/cximage-6.0/CxImage/ximadsp.cpp | 182 +++++++++++++++++------------------ + lib/cximage-6.0/CxImage/ximage.cpp | 4 +- + lib/cximage-6.0/CxImage/ximagif.cpp | 6 +- + lib/cximage-6.0/CxImage/ximahist.cpp | 12 +-- + lib/cximage-6.0/CxImage/ximaint.cpp | 8 +- + lib/cximage-6.0/CxImage/ximaiter.h | 4 +- + lib/cximage-6.0/CxImage/ximajbg.cpp | 2 +- + lib/cximage-6.0/CxImage/ximapal.cpp | 14 +-- + lib/cximage-6.0/CxImage/ximapng.cpp | 12 +-- + lib/cximage-6.0/CxImage/ximaraw.cpp | 4 +- + lib/cximage-6.0/CxImage/ximasel.cpp | 50 +++++----- + lib/cximage-6.0/CxImage/ximath.cpp | 8 +- + lib/cximage-6.0/CxImage/ximatif.cpp | 6 +- + lib/cximage-6.0/CxImage/ximatran.cpp | 138 +++++++++++++------------- + lib/cximage-6.0/CxImage/ximawnd.cpp | 16 +-- + 17 files changed, 236 insertions(+), 244 deletions(-) + +diff --git a/lib/cximage-6.0/CxImage/ximabmp.cpp b/lib/cximage-6.0/CxImage/ximabmp.cpp +index 726ff91..55842b1 100644 +--- a/lib/cximage-6.0/CxImage/ximabmp.cpp ++++ b/lib/cximage-6.0/CxImage/ximabmp.cpp +@@ -46,7 +46,7 @@ bool CxImageBMP::Encode(CxFile * hFile) + bihtoh(&infohdr); + + // Write the file header +- hFile->Write(&hdr,min(14,sizeof(BITMAPFILEHEADER)),1); ++ hFile->Write(&hdr,cxmin(14,sizeof(BITMAPFILEHEADER)),1); + hFile->Write(&infohdr,sizeof(BITMAPINFOHEADER),1); + //and DIB+ALPHA interlaced + BYTE *srcalpha = AlphaGetPointer(); +@@ -64,7 +64,7 @@ bool CxImageBMP::Encode(CxFile * hFile) + #endif //CXIMAGE_SUPPORT_ALPHA + { + // Write the file header +- hFile->Write(&hdr,min(14,sizeof(BITMAPFILEHEADER)),1); ++ hFile->Write(&hdr,cxmin(14,sizeof(BITMAPFILEHEADER)),1); + //copy attributes + memcpy(pDib,&head,sizeof(BITMAPINFOHEADER)); + bihtoh((BITMAPINFOHEADER*)pDib); +@@ -86,7 +86,7 @@ bool CxImageBMP::Decode(CxFile * hFile) + BITMAPFILEHEADER bf; + DWORD off = hFile->Tell(); // + cx_try { +- if (hFile->Read(&bf,min(14,sizeof(bf)),1)==0) cx_throw("Not a BMP"); ++ if (hFile->Read(&bf,cxmin(14,sizeof(bf)),1)==0) cx_throw("Not a BMP"); + + bf.bfSize = my_ntohl(bf.bfSize); + bf.bfOffBits = my_ntohl(bf.bfOffBits); +diff --git a/lib/cximage-6.0/CxImage/ximadef.h b/lib/cximage-6.0/CxImage/ximadef.h +index fe383bf..53ea452 100644 +--- a/lib/cximage-6.0/CxImage/ximadef.h ++++ b/lib/cximage-6.0/CxImage/ximadef.h +@@ -53,12 +53,8 @@ + #define CXIMAGE_SUPPORT_WINDOWS 0 + #endif + +-#ifndef min +-#define min(a,b) (((a)<(b))?(a):(b)) +-#endif +-#ifndef max +-#define max(a,b) (((a)>(b))?(a):(b)) +-#endif ++#define cxmin(a,b) (((a)<(b))?(a):(b)) ++#define cxmax(a,b) (((a)>(b))?(a):(b)) + + #ifndef PI + #define PI 3.141592653589793f +diff --git a/lib/cximage-6.0/CxImage/ximadsp.cpp b/lib/cximage-6.0/CxImage/ximadsp.cpp +index 8425bb2..813253b 100644 +--- a/lib/cximage-6.0/CxImage/ximadsp.cpp ++++ b/lib/cximage-6.0/CxImage/ximadsp.cpp +@@ -389,8 +389,8 @@ RGBQUAD CxImage::RGBtoHSL(RGBQUAD lRGBColor) + G = lRGBColor.rgbGreen; + B = lRGBColor.rgbBlue; + +- cMax = max( max(R,G), B); /* calculate lightness */ +- cMin = min( min(R,G), B); ++ cMax = cxmax( cxmax(R,G), B); /* calculate lightness */ ++ cMin = cxmin( cxmin(R,G), B); + L = (BYTE)((((cMax+cMin)*HSLMAX)+RGBMAX)/(2*RGBMAX)); + + if (cMax==cMin){ /* r=g=b --> achromatic case */ +@@ -489,9 +489,9 @@ RGBQUAD CxImage::YUVtoRGB(RGBQUAD lYUVColor) + G = (int)( Y - 0.344f * U - 0.714f * V); + B = (int)( Y + 1.770f * U); + +- R= min(255,max(0,R)); +- G= min(255,max(0,G)); +- B= min(255,max(0,B)); ++ R= cxmin(255,cxmax(0,R)); ++ G= cxmin(255,cxmax(0,G)); ++ B= cxmin(255,cxmax(0,B)); + RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0}; + return rgb; + } +@@ -510,9 +510,9 @@ RGBQUAD CxImage::RGBtoYUV(RGBQUAD lRGBColor) + U = (int)((B-Y) * 0.565f + 128); + V = (int)((R-Y) * 0.713f + 128); + +- Y= min(255,max(0,Y)); +- U= min(255,max(0,U)); +- V= min(255,max(0,V)); ++ Y= cxmin(255,cxmax(0,Y)); ++ U= cxmin(255,cxmax(0,U)); ++ V= cxmin(255,cxmax(0,V)); + RGBQUAD yuv={(BYTE)V,(BYTE)U,(BYTE)Y,0}; + return yuv; + } +@@ -528,9 +528,9 @@ RGBQUAD CxImage::YIQtoRGB(RGBQUAD lYIQColor) + G = (int)( Y - 0.273f * I - 0.647f * Q); + B = (int)( Y - 1.104f * I + 1.701f * Q); + +- R= min(255,max(0,R)); +- G= min(255,max(0,G)); +- B= min(255,max(0,B)); ++ R= cxmin(255,cxmax(0,R)); ++ G= cxmin(255,cxmax(0,G)); ++ B= cxmin(255,cxmax(0,B)); + RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0}; + return rgb; + } +@@ -546,9 +546,9 @@ RGBQUAD CxImage::RGBtoYIQ(RGBQUAD lRGBColor) + I = (int)( 0.5960f * R - 0.2742f * G - 0.3219f * B + 128); + Q = (int)( 0.2109f * R - 0.5229f * G + 0.3120f * B + 128); + +- Y= min(255,max(0,Y)); +- I= min(255,max(0,I)); +- Q= min(255,max(0,Q)); ++ Y= cxmin(255,cxmax(0,Y)); ++ I= cxmin(255,cxmax(0,I)); ++ Q= cxmin(255,cxmax(0,Q)); + RGBQUAD yiq={(BYTE)Q,(BYTE)I,(BYTE)Y,0}; + return yiq; + } +@@ -565,9 +565,9 @@ RGBQUAD CxImage::XYZtoRGB(RGBQUAD lXYZColor) + G = (int)( -0.969256f * X + 1.875992f * Y + 0.041556f * Z * k); + B = (int)( 0.055648f * X - 0.204043f * Y + 1.057311f * Z * k); + +- R= min(255,max(0,R)); +- G= min(255,max(0,G)); +- B= min(255,max(0,B)); ++ R= cxmin(255,cxmax(0,R)); ++ G= cxmin(255,cxmax(0,G)); ++ B= cxmin(255,cxmax(0,B)); + RGBQUAD rgb={(BYTE)B,(BYTE)G,(BYTE)R,0}; + return rgb; + } +@@ -583,9 +583,9 @@ RGBQUAD CxImage::RGBtoXYZ(RGBQUAD lRGBColor) + Y = (int)( 0.212671f * R + 0.715160f * G + 0.072169f * B); + Z = (int)((0.019334f * R + 0.119193f * G + 0.950227f * B)*0.918483657f); + +- //X= min(255,max(0,X)); +- //Y= min(255,max(0,Y)); +- //Z= min(255,max(0,Z)); ++ //X= cxmin(255,cxmax(0,X)); ++ //Y= cxmin(255,cxmax(0,Y)); ++ //Z= cxmin(255,cxmax(0,Z)); + RGBQUAD xyz={(BYTE)Z,(BYTE)Y,(BYTE)X,0}; + return xyz; + } +@@ -707,7 +707,7 @@ bool CxImage::Light(long brightness, long contrast) + + BYTE cTable[256]; // + for (int i=0;i<256;i++) { +- cTable[i] = (BYTE)max(0,min(255,(int)((i-128)*c + brightness + 0.5f))); ++ cTable[i] = (BYTE)cxmax(0,cxmin(255,(int)((i-128)*c + brightness + 0.5f))); + } + + return Lut(cTable); +@@ -830,11 +830,11 @@ bool CxImage::Filter(long* kernel, long Ksize, long Kfactor, long Koffset) + } + } + if (Kfactor==0 || ksumcur==0){ +- cPtr2[iY1] = (BYTE)min(255, max(0,(int)(b + Koffset))); ++ cPtr2[iY1] = (BYTE)cxmin(255, cxmax(0,(int)(b + Koffset))); + } else if (ksumtot == ksumcur) { +- cPtr2[iY1] = (BYTE)min(255, max(0,(int)(b/Kfactor + Koffset))); ++ cPtr2[iY1] = (BYTE)cxmin(255, cxmax(0,(int)(b/Kfactor + Koffset))); + } else { +- cPtr2[iY1] = (BYTE)min(255, max(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset))); ++ cPtr2[iY1] = (BYTE)cxmin(255, cxmax(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset))); + } + } + } +@@ -863,17 +863,17 @@ bool CxImage::Filter(long* kernel, long Ksize, long Kfactor, long Koffset) + } + } + if (Kfactor==0 || ksumcur==0){ +- c.rgbRed = (BYTE)min(255, max(0,(int)(r + Koffset))); +- c.rgbGreen = (BYTE)min(255, max(0,(int)(g + Koffset))); +- c.rgbBlue = (BYTE)min(255, max(0,(int)(b + Koffset))); ++ c.rgbRed = (BYTE)cxmin(255, cxmax(0,(int)(r + Koffset))); ++ c.rgbGreen = (BYTE)cxmin(255, cxmax(0,(int)(g + Koffset))); ++ c.rgbBlue = (BYTE)cxmin(255, cxmax(0,(int)(b + Koffset))); + } else if (ksumtot == ksumcur) { +- c.rgbRed = (BYTE)min(255, max(0,(int)(r/Kfactor + Koffset))); +- c.rgbGreen = (BYTE)min(255, max(0,(int)(g/Kfactor + Koffset))); +- c.rgbBlue = (BYTE)min(255, max(0,(int)(b/Kfactor + Koffset))); ++ c.rgbRed = (BYTE)cxmin(255, cxmax(0,(int)(r/Kfactor + Koffset))); ++ c.rgbGreen = (BYTE)cxmin(255, cxmax(0,(int)(g/Kfactor + Koffset))); ++ c.rgbBlue = (BYTE)cxmin(255, cxmax(0,(int)(b/Kfactor + Koffset))); + } else { +- c.rgbRed = (BYTE)min(255, max(0,(int)((r*ksumtot)/(ksumcur*Kfactor) + Koffset))); +- c.rgbGreen = (BYTE)min(255, max(0,(int)((g*ksumtot)/(ksumcur*Kfactor) + Koffset))); +- c.rgbBlue = (BYTE)min(255, max(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset))); ++ c.rgbRed = (BYTE)cxmin(255, cxmax(0,(int)((r*ksumtot)/(ksumcur*Kfactor) + Koffset))); ++ c.rgbGreen = (BYTE)cxmin(255, cxmax(0,(int)((g*ksumtot)/(ksumcur*Kfactor) + Koffset))); ++ c.rgbBlue = (BYTE)cxmin(255, cxmax(0,(int)((b*ksumtot)/(ksumcur*Kfactor) + Koffset))); + } + tmp.BlindSetPixelColor(x,y,c); + } +@@ -1078,8 +1078,8 @@ bool CxImage::Edge(long Ksize) + // + void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffset, bool bMixAlpha) + { +- long lWide = min(GetWidth(),imgsrc2.GetWidth()-lXOffset); +- long lHeight = min(GetHeight(),imgsrc2.GetHeight()-lYOffset); ++ long lWide = cxmin(GetWidth(),imgsrc2.GetWidth()-lXOffset); ++ long lHeight = cxmin(GetHeight(),imgsrc2.GetHeight()-lYOffset); + + bool bEditAlpha = imgsrc2.AlphaIsValid() & bMixAlpha; + +@@ -1112,16 +1112,16 @@ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffse + if (bEditAlpha) rgbDest.rgbReserved = (BYTE)((rgb1.rgbReserved+rgb2.rgbReserved)/2); + break; + case OpAdd: +- rgbDest.rgbBlue = (BYTE)max(0,min(255,rgb1.rgbBlue+rgb2.rgbBlue)); +- rgbDest.rgbGreen = (BYTE)max(0,min(255,rgb1.rgbGreen+rgb2.rgbGreen)); +- rgbDest.rgbRed = (BYTE)max(0,min(255,rgb1.rgbRed+rgb2.rgbRed)); +- if (bEditAlpha) rgbDest.rgbReserved = (BYTE)max(0,min(255,rgb1.rgbReserved+rgb2.rgbReserved)); ++ rgbDest.rgbBlue = (BYTE)cxmax(0,cxmin(255,rgb1.rgbBlue+rgb2.rgbBlue)); ++ rgbDest.rgbGreen = (BYTE)cxmax(0,cxmin(255,rgb1.rgbGreen+rgb2.rgbGreen)); ++ rgbDest.rgbRed = (BYTE)cxmax(0,cxmin(255,rgb1.rgbRed+rgb2.rgbRed)); ++ if (bEditAlpha) rgbDest.rgbReserved = (BYTE)cxmax(0,cxmin(255,rgb1.rgbReserved+rgb2.rgbReserved)); + break; + case OpSub: +- rgbDest.rgbBlue = (BYTE)max(0,min(255,rgb1.rgbBlue-rgb2.rgbBlue)); +- rgbDest.rgbGreen = (BYTE)max(0,min(255,rgb1.rgbGreen-rgb2.rgbGreen)); +- rgbDest.rgbRed = (BYTE)max(0,min(255,rgb1.rgbRed-rgb2.rgbRed)); +- if (bEditAlpha) rgbDest.rgbReserved = (BYTE)max(0,min(255,rgb1.rgbReserved-rgb2.rgbReserved)); ++ rgbDest.rgbBlue = (BYTE)cxmax(0,cxmin(255,rgb1.rgbBlue-rgb2.rgbBlue)); ++ rgbDest.rgbGreen = (BYTE)cxmax(0,cxmin(255,rgb1.rgbGreen-rgb2.rgbGreen)); ++ rgbDest.rgbRed = (BYTE)cxmax(0,cxmin(255,rgb1.rgbRed-rgb2.rgbRed)); ++ if (bEditAlpha) rgbDest.rgbReserved = (BYTE)cxmax(0,cxmin(255,rgb1.rgbReserved-rgb2.rgbReserved)); + break; + case OpAnd: + rgbDest.rgbBlue = (BYTE)(rgb1.rgbBlue&rgb2.rgbBlue); +@@ -1202,11 +1202,11 @@ void CxImage::Mix(CxImage & imgsrc2, ImageOpType op, long lXOffset, long lYOffse + double dSmallAmt = dSmall*((double)rgb2.rgbBlue); + + if( lAverage < lThresh+1){ +- rgbDest.rgbBlue = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbBlue) + ++ rgbDest.rgbBlue = (BYTE)cxmax(0,cxmin(255,(int)(dLarge*((double)rgb1.rgbBlue) + + dSmallAmt))); +- rgbDest.rgbGreen = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbGreen) + ++ rgbDest.rgbGreen = (BYTE)cxmax(0,cxmin(255,(int)(dLarge*((double)rgb1.rgbGreen) + + dSmallAmt))); +- rgbDest.rgbRed = (BYTE)max(0,min(255,(int)(dLarge*((double)rgb1.rgbRed) + ++ rgbDest.rgbRed = (BYTE)cxmax(0,cxmin(255,(int)(dLarge*((double)rgb1.rgbRed) + + dSmallAmt))); + } + else +@@ -1274,9 +1274,9 @@ bool CxImage::ShiftRGB(long r, long g, long b) + #endif //CXIMAGE_SUPPORT_SELECTION + { + color = BlindGetPixelColor(x,y); +- color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + r))); +- color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + g))); +- color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + b))); ++ color.rgbRed = (BYTE)cxmax(0,cxmin(255,(int)(color.rgbRed + r))); ++ color.rgbGreen = (BYTE)cxmax(0,cxmin(255,(int)(color.rgbGreen + g))); ++ color.rgbBlue = (BYTE)cxmax(0,cxmin(255,(int)(color.rgbBlue + b))); + BlindSetPixelColor(x,y,color); + } + } +@@ -1284,9 +1284,9 @@ bool CxImage::ShiftRGB(long r, long g, long b) + } else { + for(DWORD j=0; j + for (int i=0;i<256;i++) { +- cTable[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax))); ++ cTable[i] = (BYTE)cxmax(0,cxmin(255,(int)( pow((double)i, dinvgamma) / dMax))); + } + + return Lut(cTable); +@@ -1337,21 +1337,21 @@ bool CxImage::GammaRGB(float gammaR, float gammaG, float gammaB) + dMax = pow(255.0, dinvgamma) / 255.0; + BYTE cTableR[256]; + for (i=0;i<256;i++) { +- cTableR[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax))); ++ cTableR[i] = (BYTE)cxmax(0,cxmin(255,(int)( pow((double)i, dinvgamma) / dMax))); + } + + dinvgamma = 1/gammaG; + dMax = pow(255.0, dinvgamma) / 255.0; + BYTE cTableG[256]; + for (i=0;i<256;i++) { +- cTableG[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax))); ++ cTableG[i] = (BYTE)cxmax(0,cxmin(255,(int)( pow((double)i, dinvgamma) / dMax))); + } + + dinvgamma = 1/gammaB; + dMax = pow(255.0, dinvgamma) / 255.0; + BYTE cTableB[256]; + for (i=0;i<256;i++) { +- cTableB[i] = (BYTE)max(0,min(255,(int)( pow((double)i, dinvgamma) / dMax))); ++ cTableB[i] = (BYTE)cxmax(0,cxmin(255,(int)( pow((double)i, dinvgamma) / dMax))); + } + + return Lut(cTableR, cTableG, cTableB); +@@ -1442,11 +1442,11 @@ bool CxImage::Noise(long level) + { + color = BlindGetPixelColor(x,y); + n=(long)((rand()/(float)RAND_MAX - 0.5)*level); +- color.rgbRed = (BYTE)max(0,min(255,(int)(color.rgbRed + n))); ++ color.rgbRed = (BYTE)cxmax(0,cxmin(255,(int)(color.rgbRed + n))); + n=(long)((rand()/(float)RAND_MAX - 0.5)*level); +- color.rgbGreen = (BYTE)max(0,min(255,(int)(color.rgbGreen + n))); ++ color.rgbGreen = (BYTE)cxmax(0,cxmin(255,(int)(color.rgbGreen + n))); + n=(long)((rand()/(float)RAND_MAX - 0.5)*level); +- color.rgbBlue = (BYTE)max(0,min(255,(int)(color.rgbBlue + n))); ++ color.rgbBlue = (BYTE)cxmax(0,cxmin(255,(int)(color.rgbBlue + n))); + BlindSetPixelColor(x,y,color); + } + } +@@ -1561,8 +1561,8 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage + + //DFT buffers + double *real2,*imag2; +- real2 = (double*)malloc(max(w,h) * sizeof(double)); +- imag2 = (double*)malloc(max(w,h) * sizeof(double)); ++ real2 = (double*)malloc(cxmax(w,h) * sizeof(double)); ++ imag2 = (double*)malloc(cxmax(w,h) * sizeof(double)); + + /* Transform the rows */ + real = (double *)malloc(w * sizeof(double)); +@@ -1617,7 +1617,7 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage + + /* converting from double to byte, there is a HUGE loss in the dynamics + "nn" tries to keep an acceptable SNR, but 8bit=48dB: don't ask more */ +- double nn=pow((double)2,(double)log((double)max(w,h))/(double)log((double)2)-4); ++ double nn=pow((double)2,(double)log((double)cxmax(w,h))/(double)log((double)2)-4); + //reversed gain for reversed transform + if (direction==-1) nn=1/nn; + //bMagnitude : just to see it on the screen +@@ -1626,15 +1626,15 @@ bool CxImage::FFT2(CxImage* srcReal, CxImage* srcImag, CxImage* dstReal, CxImage + for (j=0;jSetPixelIndex(k,j,(BYTE)max(0,min(255,(nn*(3+log(_cabs(grid[k][j]))))))); ++ tmpReal->SetPixelIndex(k,j,(BYTE)cxmax(0,cxmin(255,(nn*(3+log(_cabs(grid[k][j]))))))); + if (grid[k][j].x==0){ +- tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128+(atan(grid[k][j].y/0.0000000001)*nn))))); ++ tmpImag->SetPixelIndex(k,j,(BYTE)cxmax(0,cxmin(255,(128+(atan(grid[k][j].y/0.0000000001)*nn))))); + } else { +- tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128+(atan(grid[k][j].y/grid[k][j].x)*nn))))); ++ tmpImag->SetPixelIndex(k,j,(BYTE)cxmax(0,cxmin(255,(128+(atan(grid[k][j].y/grid[k][j].x)*nn))))); + } + } else { +- tmpReal->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128 + grid[k][j].x*nn)))); +- tmpImag->SetPixelIndex(k,j,(BYTE)max(0,min(255,(128 + grid[k][j].y*nn)))); ++ tmpReal->SetPixelIndex(k,j,(BYTE)cxmax(0,cxmin(255,(128 + grid[k][j].x*nn)))); ++ tmpImag->SetPixelIndex(k,j,(BYTE)cxmax(0,cxmin(255,(128 + grid[k][j].y*nn)))); + } + } + } +@@ -1922,7 +1922,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius) + + correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy); + +- tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5)))); ++ tmp.BlindSetPixelIndex(x,y,(BYTE)cxmin(255,cxmax(0,(xy0 + radius * correction + 0.5)))); + } + } + +@@ -1943,7 +1943,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius) + + correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy); + +- tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5)))); ++ tmp.BlindSetPixelIndex(x,y,(BYTE)cxmin(255,cxmax(0,(xy0 + radius * correction + 0.5)))); + } + } + for (x=0;x<=w;x+=w){ +@@ -1963,7 +1963,7 @@ bool CxImage::RepairChannel(CxImage *ch, float radius) + + correction = ((1.0+iy*iy)*ixx - ix*iy*ixy + (1.0+ix*ix)*iyy)/(1.0+ix*ix+iy*iy); + +- tmp.BlindSetPixelIndex(x,y,(BYTE)min(255,max(0,(xy0 + radius * correction + 0.5)))); ++ tmp.BlindSetPixelIndex(x,y,(BYTE)cxmin(255,cxmax(0,(xy0 + radius * correction + 0.5)))); + } + } + +@@ -2621,8 +2621,8 @@ bool CxImage::SelectiveBlur(float radius, BYTE threshold, CxImage* iDst) + } + + //build the difference mask +- BYTE thresh_dw = (BYTE)max( 0 ,(int)(128 - threshold)); +- BYTE thresh_up = (BYTE)min(255,(int)(128 + threshold)); ++ BYTE thresh_dw = (BYTE)cxmax( 0 ,(int)(128 - threshold)); ++ BYTE thresh_up = (BYTE)cxmin(255,(int)(128 + threshold)); + long kernel[]={-100,-100,-100,-100,801,-100,-100,-100,-100}; + if (!Tmp.Filter(kernel,3,800,128)){ + delete [] pPalette; +@@ -2755,7 +2755,7 @@ bool CxImage::UnsharpMask(float radius /*= 5.0*/, float amount /*= 0.5*/, int th + if (abs(diff) < threshold){ + dest_row[z] = cur_row[z]; + } else { +- dest_row[z] = (BYTE)min(255, max(0,(int)(cur_row[z] + amount * diff))); ++ dest_row[z] = (BYTE)cxmin(255, cxmax(0,(int)(cur_row[z] + amount * diff))); + } + } + } +@@ -2952,7 +2952,7 @@ bool CxImage::RedEyeRemove(float strength) + float a = 1.0f-5.0f*((float)((x-0.5f*(xmax+xmin))*(x-0.5f*(xmax+xmin))+(y-0.5f*(ymax+ymin))*(y-0.5f*(ymax+ymin))))/((float)((xmax-xmin)*(ymax-ymin))); + if (a<0) a=0; + color = BlindGetPixelColor(x,y); +- color.rgbRed = (BYTE)(a*min(color.rgbGreen,color.rgbBlue)+(1.0f-a)*color.rgbRed); ++ color.rgbRed = (BYTE)(a*cxmin(color.rgbGreen,color.rgbBlue)+(1.0f-a)*color.rgbRed); + BlindSetPixelColor(x,y,color); + } + } +@@ -2990,7 +2990,7 @@ bool CxImage::Saturate(const long saturation, const long colorspace) + case 1: + { + for (int i=0;i<256;i++) { +- cTable[i] = (BYTE)max(0,min(255,(int)(i + saturation))); ++ cTable[i] = (BYTE)cxmax(0,cxmin(255,(int)(i + saturation))); + } + for(long y=ymin; yleft,0); +- xmax = min(pBox->right,head.biWidth); +- ymin = max(pBox->bottom,0); +- ymax = min(pBox->top,head.biHeight); ++ xmin = cxmax(pBox->left,0); ++ xmax = cxmin(pBox->right,head.biWidth); ++ ymin = cxmax(pBox->bottom,0); ++ ymax = cxmin(pBox->top,head.biHeight); + } else { + xmin = ymin = 0; + xmax = head.biWidth; ymax=head.biHeight; +@@ -3463,7 +3463,7 @@ bool CxImage::AdaptiveThreshold(long method, long nBoxSize, CxImage* pContrastMa + r.top = r.bottom + nBoxSize; + int threshold = OptimalThreshold(method, &r, pContrastMask); + if (threshold <0) return false; +- mask.SetPixelIndex(x,y,(BYTE)max(0,min(255,nBias+((1.0f-fGlobalLocalBalance)*threshold + fGlobalLocalBalance*globalthreshold)))); ++ mask.SetPixelIndex(x,y,(BYTE)cxmax(0,cxmin(255,nBias+((1.0f-fGlobalLocalBalance)*threshold + fGlobalLocalBalance*globalthreshold)))); + } + } + +@@ -3490,10 +3490,6 @@ bool CxImage::AdaptiveThreshold(long method, long nBoxSize, CxImage* pContrastMa + * Note: nOpacity=0 && bSelectFilledArea=true act as a "magic wand" + * \return true if everything is ok + */ +-#if defined(XBMC) && !defined(_WIN32) +-int max(int a, int b) { return a > b ? a : b; } +-int min(int a, int b) { return a < b ? a : b; } +-#endif + + bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFillColor, const BYTE nTolerance, + BYTE nOpacity, const bool bSelectFilledArea, const BYTE nSelectionLevel) +@@ -3538,8 +3534,8 @@ bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFil + if (IsIndexed()){ //--- Generic indexed image, no tolerance OR Grayscale image with tolerance + BYTE idxRef = GetPixelIndex(xStart,yStart); + BYTE idxFill = GetNearestIndex(cFillColor); +- BYTE idxMin = (BYTE)min(255, max(0,(int)(idxRef - nTolerance))); +- BYTE idxMax = (BYTE)min(255, max(0,(int)(idxRef + nTolerance))); ++ BYTE idxMin = (BYTE)cxmin(255, cxmax(0,(int)(idxRef - nTolerance))); ++ BYTE idxMax = (BYTE)cxmin(255, cxmax(0,(int)(idxRef + nTolerance))); + + while(!q.empty()) + { +@@ -3575,12 +3571,12 @@ bool CxImage::FloodFill(const long xStart, const long yStart, const RGBQUAD cFil + } else { //--- RGB image + RGBQUAD cRef = GetPixelColor(xStart,yStart); + RGBQUAD cRefMin, cRefMax; +- cRefMin.rgbRed = (BYTE)min(255, max(0,(int)(cRef.rgbRed - nTolerance))); +- cRefMin.rgbGreen = (BYTE)min(255, max(0,(int)(cRef.rgbGreen - nTolerance))); +- cRefMin.rgbBlue = (BYTE)min(255, max(0,(int)(cRef.rgbBlue - nTolerance))); +- cRefMax.rgbRed = (BYTE)min(255, max(0,(int)(cRef.rgbRed + nTolerance))); +- cRefMax.rgbGreen = (BYTE)min(255, max(0,(int)(cRef.rgbGreen + nTolerance))); +- cRefMax.rgbBlue = (BYTE)min(255, max(0,(int)(cRef.rgbBlue + nTolerance))); ++ cRefMin.rgbRed = (BYTE)cxmin(255, cxmax(0,(int)(cRef.rgbRed - nTolerance))); ++ cRefMin.rgbGreen = (BYTE)cxmin(255, cxmax(0,(int)(cRef.rgbGreen - nTolerance))); ++ cRefMin.rgbBlue = (BYTE)cxmin(255, cxmax(0,(int)(cRef.rgbBlue - nTolerance))); ++ cRefMax.rgbRed = (BYTE)cxmin(255, cxmax(0,(int)(cRef.rgbRed + nTolerance))); ++ cRefMax.rgbGreen = (BYTE)cxmin(255, cxmax(0,(int)(cRef.rgbGreen + nTolerance))); ++ cRefMax.rgbBlue = (BYTE)cxmin(255, cxmax(0,(int)(cRef.rgbBlue + nTolerance))); + + while(!q.empty()) + { +diff --git a/lib/cximage-6.0/CxImage/ximage.cpp b/lib/cximage-6.0/CxImage/ximage.cpp +index e81d3c6..26c6993 100644 +--- a/lib/cximage-6.0/CxImage/ximage.cpp ++++ b/lib/cximage-6.0/CxImage/ximage.cpp +@@ -460,7 +460,7 @@ bool CxImage::CreateFromArray(BYTE* pArray,DWORD dwWidth,DWORD dwHeight,DWORD dw + src+=4; + } + } else { +- memcpy(dst,src,min(info.dwEffWidth,dwBytesperline)); ++ memcpy(dst,src,cxmin(info.dwEffWidth,dwBytesperline)); + } + } + return true; +@@ -500,7 +500,7 @@ bool CxImage::CreateFromMatrix(BYTE** ppMatrix,DWORD dwWidth,DWORD dwHeight,DWOR + src+=4; + } + } else { +- memcpy(dst,src,min(info.dwEffWidth,dwBytesperline)); ++ memcpy(dst,src,cxmin(info.dwEffWidth,dwBytesperline)); + } + } + } +diff --git a/lib/cximage-6.0/CxImage/ximagif.cpp b/lib/cximage-6.0/CxImage/ximagif.cpp +index b89e061..64b1ccc 100644 +--- a/lib/cximage-6.0/CxImage/ximagif.cpp ++++ b/lib/cximage-6.0/CxImage/ximagif.cpp +@@ -478,7 +478,7 @@ bool CxImageGIF::Encode(CxFile * fp, CxImage ** pImages, int pagecount, bool bLo + ghost.EncodeHeader(fp); + + if (m_loops!=1){ +- ghost.SetLoops(max(0,m_loops-1)); ++ ghost.SetLoops(cxmax(0,m_loops-1)); + ghost.EncodeLoopExtension(fp); + } + +@@ -1340,10 +1340,10 @@ void CxImageGIF::GetComment(char* sz_comment_out) + //////////////////////////////////////////////////////////////////////////////// + void CxImageGIF::GifMix(CxImage & imgsrc2, struct_image & imgdesc) + { +- long ymin = max(0,(long)(GetHeight()-imgdesc.t - imgdesc.h)); ++ long ymin = cxmax(0,(long)(GetHeight()-imgdesc.t - imgdesc.h)); + long ymax = GetHeight()-imgdesc.t; + long xmin = imgdesc.l; +- long xmax = min(GetWidth(), (DWORD)(imgdesc.l + imgdesc.w)); ++ long xmax = cxmin(GetWidth(), (DWORD)(imgdesc.l + imgdesc.w)); + + long ibg2= imgsrc2.GetTransIndex(); + BYTE i2; +diff --git a/lib/cximage-6.0/CxImage/ximahist.cpp b/lib/cximage-6.0/CxImage/ximahist.cpp +index a2aed03..5391107 100644 +--- a/lib/cximage-6.0/CxImage/ximahist.cpp ++++ b/lib/cximage-6.0/CxImage/ximahist.cpp +@@ -110,7 +110,7 @@ bool CxImage::HistogramStretch(long method, double threshold) + // calculate LUT + BYTE lut[256]; + for (x = 0; x <256; x++){ +- lut[x] = (BYTE)max(0,min(255,(255 * (x - minc) / (maxc - minc)))); ++ lut[x] = (BYTE)cxmax(0,cxmin(255,(255 * (x - minc) / (maxc - minc)))); + } + + for (y=0; yGetEffWidth(); +- else n = min(n,(int)ima->GetEffWidth()); ++ else n = cxmin(n,(int)ima->GetEffWidth()); + + if ((IterImage!=NULL)&&(buf!=NULL)&&(n>0)) memcpy(IterImage,buf,n); + } +@@ -148,7 +148,7 @@ inline void CImageIterator::SetRow(BYTE *buf, int n) + inline void CImageIterator::GetRow(BYTE *buf, int n) + { + if ((IterImage!=NULL)&&(buf!=NULL)&&(n>0)) +- memcpy(buf,IterImage,min(n,(int)ima->GetEffWidth())); ++ memcpy(buf,IterImage,cxmin(n,(int)ima->GetEffWidth())); + } + ///////////////////////////////////////////////////////////////////// + inline BYTE* CImageIterator::GetRow() +diff --git a/lib/cximage-6.0/CxImage/ximajbg.cpp b/lib/cximage-6.0/CxImage/ximajbg.cpp +index 06fb9bf..8a01e28 100644 +--- a/lib/cximage-6.0/CxImage/ximajbg.cpp ++++ b/lib/cximage-6.0/CxImage/ximajbg.cpp +@@ -145,7 +145,7 @@ bool CxImageJBG::Encode(CxFile * hFile) + jbg_enc_init(&jbig_state, w, h, planes, &buffer, jbig_data_out, hFile); + + //jbg_enc_layers(&jbig_state, 2); +- //jbg_enc_lrlmax(&jbig_state, 800, 600); ++ //jbg_enc_lrlcxmax(&jbig_state, 800, 600); + + // Specify a few other options (each is ignored if negative) + int dl = -1, dh = -1, d = -1, l0 = -1, mx = -1; +diff --git a/lib/cximage-6.0/CxImage/ximapal.cpp b/lib/cximage-6.0/CxImage/ximapal.cpp +index b3bd3da..3788c98 100644 +--- a/lib/cximage-6.0/CxImage/ximapal.cpp ++++ b/lib/cximage-6.0/CxImage/ximapal.cpp +@@ -398,8 +398,8 @@ void CxImage::RGBtoBGR(BYTE *buffer, int length) + { + if (buffer && (head.biClrUsed==0)){ + BYTE temp; +- length = min(length,(int)info.dwEffWidth); +- length = min(length,(int)(3*head.biWidth)); ++ length = cxmin(length,(int)info.dwEffWidth); ++ length = cxmin(length,(int)(3*head.biWidth)); + for (int i=0;i needed for grayscale PNGs + + #ifdef USE_NEW_LIBPNG_API +- int nshift = max(0,(_bit_depth>>3)-1)<<3; ++ int nshift = cxmax(0,(_bit_depth>>3)-1)<<3; + #else +- int nshift = max(0,(info_ptr->bit_depth>>3)-1)<<3; ++ int nshift = cxmax(0,(info_ptr->bit_depth>>3)-1)<<3; + #endif + + #ifdef USE_NEW_LIBPNG_API +@@ -255,10 +255,10 @@ bool CxImagePNG::Decode(CxFile *hFile) + if (pal){ + DWORD ip; + #ifdef USE_NEW_LIBPNG_API +- for (ip=0;ipnum_trans);ip++) ++ for (ip=0;ipnum_trans);ip++) + #if PNG_LIBPNG_VER > 10399 + pal[ip].rgbReserved=info_ptr->trans_alpha[ip]; + #else +@@ -737,9 +737,9 @@ bool CxImagePNG::Encode(CxFile *hFile) + #endif // CXIMAGE_SUPPORT_ALPHA // + + #ifdef USE_NEW_LIBPNG_API +- int row_size = max(info.dwEffWidth, (_width * _channels * _bit_depth / 8)); ++ int row_size = cxmax(info.dwEffWidth, (_width * _channels * _bit_depth / 8)); + #else +- int row_size = max(info.dwEffWidth, info_ptr->width*info_ptr->channels*(info_ptr->bit_depth/8)); ++ int row_size = cxmax(info.dwEffWidth, info_ptr->width*info_ptr->channels*(info_ptr->bit_depth/8)); + info_ptr->rowbytes = row_size; + #endif + BYTE *row_pointers = new BYTE[row_size]; +diff --git a/lib/cximage-6.0/CxImage/ximaraw.cpp b/lib/cximage-6.0/CxImage/ximaraw.cpp +index fd86f96..52d964d 100644 +--- a/lib/cximage-6.0/CxImage/ximaraw.cpp ++++ b/lib/cximage-6.0/CxImage/ximaraw.cpp +@@ -216,7 +216,7 @@ bool CxImageRAW::Decode(CxFile *hFile) + + DWORD size = dcr.width * (dcr.colors*dcr.opt.output_bps/8); + RGBtoBGR(ppm,size); +- memcpy(GetBits(dcr.height - 1 - row), ppm, min(size,GetEffWidth())); ++ memcpy(GetBits(dcr.height - 1 - row), ppm, cxmin(size,GetEffWidth())); + } + free (ppm); + +@@ -298,7 +298,7 @@ bool CxImageRAW::GetExifThumbnail(const char *filename, const char *outname, int + // Resizing. + if (image.GetWidth() > 256 || image.GetHeight() > 256) + { +- float amount = 256.0f / max(image.GetWidth(), image.GetHeight()); ++ float amount = 256.0f / cxmax(image.GetWidth(), image.GetHeight()); + image.Resample((long)(image.GetWidth() * amount), (long)(image.GetHeight() * amount), 0); + } + +diff --git a/lib/cximage-6.0/CxImage/ximasel.cpp b/lib/cximage-6.0/CxImage/ximasel.cpp +index 3a7c9a1..37cd10f 100644 +--- a/lib/cximage-6.0/CxImage/ximasel.cpp ++++ b/lib/cximage-6.0/CxImage/ximasel.cpp +@@ -113,15 +113,15 @@ bool CxImage::SelectionAddRect(RECT r, BYTE level) + if (r.left r2.left) info.rSelectionBox.left = max(0L,min(head.biWidth,r2.left)); +- if (info.rSelectionBox.right <= r2.right) info.rSelectionBox.right = max(0L,min(head.biWidth,r2.right+1)); +- if (info.rSelectionBox.bottom > r2.bottom) info.rSelectionBox.bottom = max(0L,min(head.biHeight,r2.bottom)); ++ if (info.rSelectionBox.top <= r2.top) info.rSelectionBox.top = cxmax(0L,cxmin(head.biHeight,r2.top+1)); ++ if (info.rSelectionBox.left > r2.left) info.rSelectionBox.left = cxmax(0L,cxmin(head.biWidth,r2.left)); ++ if (info.rSelectionBox.right <= r2.right) info.rSelectionBox.right = cxmax(0L,cxmin(head.biWidth,r2.right+1)); ++ if (info.rSelectionBox.bottom > r2.bottom) info.rSelectionBox.bottom = cxmax(0L,cxmin(head.biHeight,r2.bottom)); + +- long ymin = max(0L,min(head.biHeight,r2.bottom)); +- long ymax = max(0L,min(head.biHeight,r2.top+1)); +- long xmin = max(0L,min(head.biWidth,r2.left)); +- long xmax = max(0L,min(head.biWidth,r2.right+1)); ++ long ymin = cxmax(0L,cxmin(head.biHeight,r2.bottom)); ++ long ymax = cxmax(0L,cxmin(head.biHeight,r2.top+1)); ++ long xmin = cxmax(0L,cxmin(head.biWidth,r2.left)); ++ long xmax = cxmax(0L,cxmin(head.biWidth,r2.right+1)); + + for (long y=ymin; y (xcenter - xradius)) info.rSelectionBox.left = max(0L,min(head.biWidth,(xcenter - xradius))); +- if (info.rSelectionBox.right <= (xcenter + xradius)) info.rSelectionBox.right = max(0L,min(head.biWidth,(xcenter + xradius + 1))); +- if (info.rSelectionBox.bottom > (ycenter - yradius)) info.rSelectionBox.bottom = max(0L,min(head.biHeight,(ycenter - yradius))); +- if (info.rSelectionBox.top <= (ycenter + yradius)) info.rSelectionBox.top = max(0L,min(head.biHeight,(ycenter + yradius + 1))); ++ if (info.rSelectionBox.left > (xcenter - xradius)) info.rSelectionBox.left = cxmax(0L,cxmin(head.biWidth,(xcenter - xradius))); ++ if (info.rSelectionBox.right <= (xcenter + xradius)) info.rSelectionBox.right = cxmax(0L,cxmin(head.biWidth,(xcenter + xradius + 1))); ++ if (info.rSelectionBox.bottom > (ycenter - yradius)) info.rSelectionBox.bottom = cxmax(0L,cxmin(head.biHeight,(ycenter - yradius))); ++ if (info.rSelectionBox.top <= (ycenter + yradius)) info.rSelectionBox.top = cxmax(0L,cxmin(head.biHeight,(ycenter + yradius + 1))); + +- long xmin = max(0L,min(head.biWidth,xcenter - xradius)); +- long xmax = max(0L,min(head.biWidth,xcenter + xradius + 1)); +- long ymin = max(0L,min(head.biHeight,ycenter - yradius)); +- long ymax = max(0L,min(head.biHeight,ycenter + yradius + 1)); ++ long xmin = cxmax(0L,cxmin(head.biWidth,xcenter - xradius)); ++ long xmax = cxmax(0L,cxmin(head.biWidth,xcenter + xradius + 1)); ++ long ymin = cxmax(0L,cxmin(head.biHeight,ycenter - yradius)); ++ long ymax = cxmax(0L,cxmin(head.biHeight,ycenter + yradius + 1)); + + long y,yo; +- for (y=ymin; yx < next->x) {r2.left=current->x; r2.right=next->x; } else {r2.left=next->x ; r2.right=current->x; } + if (current->y < next->y) {r2.bottom=current->y; r2.top=next->y; } else {r2.bottom=next->y ; r2.top=current->y; } +- if (localbox.top < r2.top) localbox.top = max(0L,min(head.biHeight-1,r2.top+1)); +- if (localbox.left > r2.left) localbox.left = max(0L,min(head.biWidth-1,r2.left-1)); +- if (localbox.right < r2.right) localbox.right = max(0L,min(head.biWidth-1,r2.right+1)); +- if (localbox.bottom > r2.bottom) localbox.bottom = max(0L,min(head.biHeight-1,r2.bottom-1)); ++ if (localbox.top < r2.top) localbox.top = cxmax(0L,cxmin(head.biHeight-1,r2.top+1)); ++ if (localbox.left > r2.left) localbox.left = cxmax(0L,cxmin(head.biWidth-1,r2.left-1)); ++ if (localbox.right < r2.right) localbox.right = cxmax(0L,cxmin(head.biWidth-1,r2.right+1)); ++ if (localbox.bottom > r2.bottom) localbox.bottom = cxmax(0L,cxmin(head.biHeight-1,r2.bottom-1)); + + i++; + } +@@ -385,10 +385,10 @@ bool CxImage::SelectionAddPolygon(POINT *points, long npoints, BYTE level) + for (x=localbox.left; x<=localbox.right; x++) + if (plocal[x + yoffset]!=1) pSelection[x + yoffset]=level; + } +- if (info.rSelectionBox.top <= localbox.top) info.rSelectionBox.top = min(head.biHeight,localbox.top + 1); +- if (info.rSelectionBox.left > localbox.left) info.rSelectionBox.left = min(head.biWidth,localbox.left); +- if (info.rSelectionBox.right <= localbox.right) info.rSelectionBox.right = min(head.biWidth,localbox.right + 1); +- if (info.rSelectionBox.bottom > localbox.bottom) info.rSelectionBox.bottom = min(head.biHeight,localbox.bottom); ++ if (info.rSelectionBox.top <= localbox.top) info.rSelectionBox.top = cxmin(head.biHeight,localbox.top + 1); ++ if (info.rSelectionBox.left > localbox.left) info.rSelectionBox.left = cxmin(head.biWidth,localbox.left); ++ if (info.rSelectionBox.right <= localbox.right) info.rSelectionBox.right = cxmin(head.biWidth,localbox.right + 1); ++ if (info.rSelectionBox.bottom > localbox.bottom) info.rSelectionBox.bottom = cxmin(head.biHeight,localbox.bottom); + + free(plocal); + free(pix); +diff --git a/lib/cximage-6.0/CxImage/ximath.cpp b/lib/cximage-6.0/CxImage/ximath.cpp +index 37533e2..f84eb72 100644 +--- a/lib/cximage-6.0/CxImage/ximath.cpp ++++ b/lib/cximage-6.0/CxImage/ximath.cpp +@@ -64,10 +64,10 @@ CxRect2 CxRect2::CrossSection(CxRect2 const &r2) const + */ + { + CxRect2 cs; +- cs.botLeft.x=max(botLeft.x, r2.botLeft.x); +- cs.botLeft.y=max(botLeft.y, r2.botLeft.y); +- cs.topRight.x=min(topRight.x, r2.topRight.x); +- cs.topRight.y=min(topRight.y, r2.topRight.y); ++ cs.botLeft.x=cxmax(botLeft.x, r2.botLeft.x); ++ cs.botLeft.y=cxmax(botLeft.y, r2.botLeft.y); ++ cs.topRight.x=cxmin(topRight.x, r2.topRight.x); ++ cs.topRight.y=cxmin(topRight.y, r2.topRight.y); + if (cs.botLeft.x<=cs.topRight.x && cs.botLeft.y<=cs.topRight.y) { + return cs; + } else { +diff --git a/lib/cximage-6.0/CxImage/ximatif.cpp b/lib/cximage-6.0/CxImage/ximatif.cpp +index 658392a..002766c 100644 +--- a/lib/cximage-6.0/CxImage/ximatif.cpp ++++ b/lib/cximage-6.0/CxImage/ximatif.cpp +@@ -470,9 +470,9 @@ bool CxImageTIF::Decode(CxFile * hFile) + if ( cb > 0.00304 ) cb = 1.055 * pow(cb,0.41667) - 0.055; + else cb = 12.92 * cb; + +- c.rgbRed =(BYTE)max(0,min(255,(int)(cr*255))); +- c.rgbGreen=(BYTE)max(0,min(255,(int)(cg*255))); +- c.rgbBlue =(BYTE)max(0,min(255,(int)(cb*255))); ++ c.rgbRed =(BYTE)cxmax(0,cxmin(255,(int)(cr*255))); ++ c.rgbGreen=(BYTE)cxmax(0,cxmin(255,(int)(cg*255))); ++ c.rgbBlue =(BYTE)cxmax(0,cxmin(255,(int)(cb*255))); + + SetPixelColor(xi,yi,c); + #if CXIMAGE_SUPPORT_ALPHA +diff --git a/lib/cximage-6.0/CxImage/ximatran.cpp b/lib/cximage-6.0/CxImage/ximatran.cpp +index 64a71e7..84d5e03 100644 +--- a/lib/cximage-6.0/CxImage/ximatran.cpp ++++ b/lib/cximage-6.0/CxImage/ximatran.cpp +@@ -302,12 +302,12 @@ bool CxImage::RotateLeft(CxImage* iDst) + for (ys = 0; ys < newHeight; ys+=RBLOCK) { + if (head.biBitCount==24) { + //RGB24 optimized pixel access: +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ //do rotation ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ //do rotation + info.nProgress = (long)(100*x/newWidth); + x2=newWidth-x-1; + dstPtr = (BYTE*) imgDest.BlindGetPixelPointer(x,ys); + srcPtr = (BYTE*) BlindGetPixelPointer(ys, x2); +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + //imgDest.SetPixelColor(x, y, GetPixelColor(y, x2)); + *(dstPtr) = *(srcPtr); + *(dstPtr+1) = *(srcPtr+1); +@@ -318,19 +318,19 @@ bool CxImage::RotateLeft(CxImage* iDst) + }//for x + } else { + //anything else than 24bpp (and 1bpp): palette +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + info.nProgress = (long)(100*x/newWidth); // + x2=newWidth-x-1; +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + imgDest.SetPixelIndex(x, y, BlindGetPixelIndex(y, x2)); + }//for y + }//for x + }//if (version selection) + #if CXIMAGE_SUPPORT_ALPHA + if (AlphaIsValid()) { +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + x2=newWidth-x-1; +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + imgDest.AlphaSet(x,y,BlindAlphaGet(y, x2)); + }//for y + }//for x +@@ -343,9 +343,9 @@ bool CxImage::RotateLeft(CxImage* iDst) + imgDest.info.rSelectionBox.right = newWidth-info.rSelectionBox.bottom; + imgDest.info.rSelectionBox.bottom = info.rSelectionBox.left; + imgDest.info.rSelectionBox.top = info.rSelectionBox.right; +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + x2=newWidth-x-1; +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + imgDest.SelectionSet(x,y,BlindSelectionGet(y, x2)); + }//for y + }//for x +@@ -447,12 +447,12 @@ bool CxImage::RotateRight(CxImage* iDst) + for (ys = 0; ys < newHeight; ys+=RBLOCK) { + if (head.biBitCount==24) { + //RGB24 optimized pixel access: +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + info.nProgress = (long)(100*y/newHeight); // + y2=newHeight-y-1; + dstPtr = (BYTE*) imgDest.BlindGetPixelPointer(xs,y); + srcPtr = (BYTE*) BlindGetPixelPointer(y2, xs); +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + //imgDest.SetPixelColor(x, y, GetPixelColor(y2, x)); + *(dstPtr) = *(srcPtr); + *(dstPtr+1) = *(srcPtr+1); +@@ -463,19 +463,19 @@ bool CxImage::RotateRight(CxImage* iDst) + }//for y + } else { + //anything else than BW & RGB24: palette +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + info.nProgress = (long)(100*y/newHeight); // + y2=newHeight-y-1; +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + imgDest.SetPixelIndex(x, y, BlindGetPixelIndex(y2, x)); + }//for x + }//for y + }//if + #if CXIMAGE_SUPPORT_ALPHA + if (AlphaIsValid()){ +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + y2=newHeight-y-1; +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + imgDest.AlphaSet(x,y,BlindAlphaGet(y2, x)); + }//for x + }//for y +@@ -488,9 +488,9 @@ bool CxImage::RotateRight(CxImage* iDst) + imgDest.info.rSelectionBox.right = info.rSelectionBox.top; + imgDest.info.rSelectionBox.bottom = newHeight-info.rSelectionBox.right; + imgDest.info.rSelectionBox.top = newHeight-info.rSelectionBox.left; +- for (y = ys; y < min(newHeight, ys+RBLOCK); y++){ ++ for (y = ys; y < cxmin(newHeight, ys+RBLOCK); y++){ + y2=newHeight-y-1; +- for (x = xs; x < min(newWidth, xs+RBLOCK); x++){ ++ for (x = xs; x < cxmin(newWidth, xs+RBLOCK); x++){ + imgDest.SelectionSet(x,y,BlindSelectionGet(y2, x)); + }//for x + }//for y +@@ -608,10 +608,10 @@ bool CxImage::Rotate(float angle, CxImage* iDst) + newP4.x = (float)(p4.x*cos_angle - p4.y*sin_angle); + newP4.y = (float)(p4.x*sin_angle + p4.y*cos_angle); + +- leftTop.x = min(min(newP1.x,newP2.x),min(newP3.x,newP4.x)); +- leftTop.y = min(min(newP1.y,newP2.y),min(newP3.y,newP4.y)); +- rightBottom.x = max(max(newP1.x,newP2.x),max(newP3.x,newP4.x)); +- rightBottom.y = max(max(newP1.y,newP2.y),max(newP3.y,newP4.y)); ++ leftTop.x = cxmin(cxmin(newP1.x,newP2.x),cxmin(newP3.x,newP4.x)); ++ leftTop.y = cxmin(cxmin(newP1.y,newP2.y),cxmin(newP3.y,newP4.y)); ++ rightBottom.x = cxmax(cxmax(newP1.x,newP2.x),cxmax(newP3.x,newP4.x)); ++ rightBottom.y = cxmax(cxmax(newP1.y,newP2.y),cxmax(newP3.y,newP4.y)); + leftBottom.x = leftTop.x; + leftBottom.y = rightBottom.y; + rightTop.x = rightBottom.x; +@@ -740,10 +740,10 @@ bool CxImage::Rotate2(float angle, + }//if + + //(read new dimensions from location of corners) +- float minx = (float) min(min(newp[0].x,newp[1].x),min(newp[2].x,newp[3].x)); +- float miny = (float) min(min(newp[0].y,newp[1].y),min(newp[2].y,newp[3].y)); +- float maxx = (float) max(max(newp[0].x,newp[1].x),max(newp[2].x,newp[3].x)); +- float maxy = (float) max(max(newp[0].y,newp[1].y),max(newp[2].y,newp[3].y)); ++ float minx = (float) cxmin(cxmin(newp[0].x,newp[1].x),cxmin(newp[2].x,newp[3].x)); ++ float miny = (float) cxmin(cxmin(newp[0].y,newp[1].y),cxmin(newp[2].y,newp[3].y)); ++ float maxx = (float) cxmax(cxmax(newp[0].x,newp[1].x),cxmax(newp[2].x,newp[3].x)); ++ float maxy = (float) cxmax(cxmax(newp[0].y,newp[1].y),cxmax(newp[2].y,newp[3].y)); + int newWidth = (int) floor(maxx-minx+0.5f); + int newHeight= (int) floor(maxy-miny+0.5f); + float ssx=((maxx+minx)- ((float) newWidth-1))/2.0f; //start for x +@@ -1003,12 +1003,12 @@ bool CxImage::Resample(long newx, long newy, int mode, CxImage* iDst) + if (info.nEscape) break; + fY = y * yScale; + ifY = (int)fY; +- ifY1 = min(ymax, ifY+1); ++ ifY1 = cxmin(ymax, ifY+1); + dy = fY - ifY; + for(long x=0; x 1 && fy > 1) { +@@ -813,7 +813,7 @@ long CxImage::Draw(HDC hdc, long x, long y, long cx, long cy, RECT* pClipRect, b + + for(yy=0;yy>8); +-- +2.8.0.rc3 + diff --git a/bsp/buildroot/package/kodi/0010-curl-support-version-7.5.0-and-upwards.patch b/bsp/buildroot/package/kodi/0010-curl-support-version-7.5.0-and-upwards.patch new file mode 100644 index 00000000..b6743ae5 --- /dev/null +++ b/bsp/buildroot/package/kodi/0010-curl-support-version-7.5.0-and-upwards.patch @@ -0,0 +1,34 @@ +From 7d3c70b163bc67aeb1fdef8fd2347b39f311c584 Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Sun, 24 Jul 2016 20:24:07 +0200 +Subject: [PATCH] Curl: Adjust multi_cleanup method which returns CURLMcode + +Signed-off-by: Bernd Kuhls +(backported from upstream commit: + https://github.com/xbmc/xbmc/commit/2a8d3e7f6cffea52740b8392a3be8ec251d5ff70) +--- + xbmc/filesystem/DllLibCurl.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/filesystem/DllLibCurl.h b/xbmc/filesystem/DllLibCurl.h +index db97f92..9e78a91 100644 +--- a/xbmc/filesystem/DllLibCurl.h ++++ b/xbmc/filesystem/DllLibCurl.h +@@ -52,7 +52,7 @@ namespace XCURL + virtual CURLMcode multi_fdset(CURLM *multi_handle, fd_set *read_fd_set, fd_set *write_fd_set, fd_set *exc_fd_set, int *max_fd)=0; + virtual CURLMcode multi_timeout(CURLM *multi_handle, long *timeout)=0; + virtual CURLMsg* multi_info_read(CURLM *multi_handle, int *msgs_in_queue)=0; +- virtual void multi_cleanup(CURL_HANDLE * handle )=0; ++ virtual CURLMcode multi_cleanup(CURLM * handle )=0; + virtual struct curl_slist* slist_append(struct curl_slist *, const char *)=0; + virtual void slist_free_all(struct curl_slist *)=0; + }; +@@ -77,7 +77,7 @@ namespace XCURL + DEFINE_METHOD5(CURLMcode, multi_fdset, (CURLM *p1, fd_set *p2, fd_set *p3, fd_set *p4, int *p5)) + DEFINE_METHOD2(CURLMcode, multi_timeout, (CURLM *p1, long *p2)) + DEFINE_METHOD2(CURLMsg*, multi_info_read, (CURLM *p1, int *p2)) +- DEFINE_METHOD1(void, multi_cleanup, (CURLM *p1)) ++ DEFINE_METHOD1(CURLMcode, multi_cleanup, (CURLM *p1)) + DEFINE_METHOD2(struct curl_slist*, slist_append, (struct curl_slist * p1, const char * p2)) + DEFINE_METHOD1(void, slist_free_all, (struct curl_slist * p1)) + DEFINE_METHOD1(const char *, easy_strerror, (CURLcode p1)) diff --git a/bsp/buildroot/package/kodi/Config.in b/bsp/buildroot/package/kodi/Config.in index 7d288820..f388a724 100644 --- a/bsp/buildroot/package/kodi/Config.in +++ b/bsp/buildroot/package/kodi/Config.in @@ -1,11 +1,16 @@ config BR2_PACKAGE_KODI_ARCH_SUPPORTS bool - default y if (BR2_arm || (BR2_mipsel && BR2_TOOLCHAIN_USES_GLIBC) || BR2_i386 || BR2_x86_64) && BR2_PACKAGE_BOOST_ARCH_SUPPORTS + default y if (BR2_arm || (BR2_mipsel && BR2_TOOLCHAIN_USES_GLIBC) || BR2_i386 || BR2_x86_64) \ + && BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS \ + && BR2_TOOLCHAIN_HAS_SYNC_8 -comment "kodi needs a toolchain w/ C++, threads, wchar, dynamic library" +comment "kodi needs a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.7, host gcc >= 4.6" depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ - || !BR2_USE_WCHAR || BR2_STATIC_LIBS + || !BR2_USE_WCHAR || BR2_STATIC_LIBS \ + || !BR2_HOST_GCC_AT_LEAST_4_6 \ + || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 \ + || BR2_TOOLCHAIN_USES_MUSL depends on BR2_USE_MMU config BR2_PACKAGE_KODI_EGL_GLES @@ -31,6 +36,16 @@ comment "kodi requires an OpenGL ES and EGL backend" menuconfig BR2_PACKAGE_KODI bool "kodi" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_HOST_GCC_AT_LEAST_4_6 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_USES_MUSL + depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL + depends on BR2_USE_MMU # python + depends on BR2_USE_WCHAR + depends on !BR2_STATIC_LIBS # python + depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS select BR2_NEEDS_HOST_JAVA select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_THREAD @@ -42,11 +57,14 @@ menuconfig BR2_PACKAGE_KODI select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_GIFLIB select BR2_PACKAGE_JASPER select BR2_PACKAGE_JPEG select BR2_PACKAGE_LIBASS select BR2_PACKAGE_LIBCDIO + select BR2_PACKAGE_LIBCROSSGUID select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_LIBDCADEC select BR2_PACKAGE_LIBFRIBIDI select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_KODI_GL select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_KODI_GL @@ -81,19 +99,10 @@ menuconfig BR2_PACKAGE_KODI select BR2_PACKAGE_TIFF select BR2_PACKAGE_TINYXML select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_KODI_GL - select BR2_PACKAGE_XLIB_LIBXMU if BR2_PACKAGE_KODI_GL # needed by rsxs screensaver select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_KODI_GL - select BR2_PACKAGE_XLIB_LIBXT if BR2_PACKAGE_KODI_GL # needed by rsxs screensaver select BR2_PACKAGE_YAJL select BR2_PACKAGE_ZLIB select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL - depends on BR2_USE_MMU # python - depends on BR2_USE_WCHAR - depends on !BR2_STATIC_LIBS # python - depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS help Kodi is an award-winning free and open source (GPL) software media player and entertainment hub for digital media. @@ -112,7 +121,6 @@ config BR2_PACKAGE_KODI_ALSA_LIB config BR2_PACKAGE_KODI_AVAHI bool "avahi" - depends on !BR2_STATIC_LIBS # avahi select BR2_PACKAGE_AVAHI select BR2_PACKAGE_AVAHI_DAEMON help @@ -128,45 +136,20 @@ config BR2_PACKAGE_KODI_DBUS config BR2_PACKAGE_KODI_LIBBLURAY bool "blu-ray" select BR2_PACKAGE_LIBBLURAY - depends on !BR2_STATIC_LIBS help Enable Blu-ray input support. Select this if you want to play back Blu-ray content. -comment "libbluray support needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - -config BR2_PACKAGE_KODI_GOOM - bool "goom screensaver" - depends on BR2_PACKAGE_KODI_GL - help - Enable goom screensaver - -comment "goom needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL - -config BR2_PACKAGE_KODI_RSXS - bool "rsxs screensaver" - depends on BR2_PACKAGE_KODI_GL - help - Enable goom screensaver - -comment "rsxs needs an OpenGL backend" - depends on !BR2_PACKAGE_KODI_GL - config BR2_PACKAGE_KODI_LIBCEC bool "hdmi cec" - depends on !BR2_STATIC_LIBS # libcec depends on BR2_PACKAGE_HAS_UDEV - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # libcec select BR2_PACKAGE_LIBCEC help Enable CEC (Consumer Electronics Control) support. Select this if you want Kodi to support HDMI CEC. -comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS || !BR2_PACKAGE_HAS_UDEV || \ - !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 +comment "hdmi cec support needs udev /dev management" + depends on !BR2_PACKAGE_HAS_UDEV config BR2_PACKAGE_KODI_LIRC bool "lirc" @@ -175,6 +158,7 @@ config BR2_PACKAGE_KODI_LIRC config BR2_PACKAGE_KODI_LIBMICROHTTPD bool "web server" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, libmicrohttpd select BR2_PACKAGE_LIBMICROHTTPD help Enable webserver feature @@ -190,6 +174,18 @@ config BR2_PACKAGE_KODI_LIBNFS comment "nfs support needs a toolchain w/ threads support" depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC) +config BR2_PACKAGE_KODI_MYSQL + bool "mysql" + select BR2_PACKAGE_MYSQL + help + Enable MySQL support + +config BR2_PACKAGE_KODI_NONFREE + bool "nonfree components" + help + Enable components with non-free licenses. This option + currently only controls support for RAR archives. + config BR2_PACKAGE_KODI_RTMPDUMP bool "rtmp" select BR2_PACKAGE_RTMPDUMP @@ -199,21 +195,18 @@ config BR2_PACKAGE_KODI_RTMPDUMP config BR2_PACKAGE_KODI_LIBSHAIRPLAY bool "shairport" - depends on !BR2_STATIC_LIBS # libshairplay -> avahi select BR2_PACKAGE_LIBSHAIRPLAY help Enable Shairport support. Select this if you want to stream content from an Apple device. -comment "shairport support needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - -comment "samba support needs an (e)glibc toolchain w/ RPC" - depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_TOOLCHAIN_HAS_NATIVE_RPC +comment "samba support needs a glibc or uClibc toolchain w/ RPC" + depends on (!BR2_TOOLCHAIN_USES_GLIBC && \ + !BR2_TOOLCHAIN_USES_UCLIBC) || !BR2_TOOLCHAIN_HAS_NATIVE_RPC config BR2_PACKAGE_KODI_LIBSMBCLIENT bool "samba" - depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_SAMBA4 @@ -235,6 +228,9 @@ config BR2_PACKAGE_KODI_LIBTHEORA config BR2_PACKAGE_KODI_LIBUSB bool "usb" + # https://github.com/xbmc/xbmc/blob/Jarvis/configure.ac#L1554 + # "if libudev is available, we don't need libusb" + depends on !BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_LIBUSB select BR2_PACKAGE_LIBUSB_COMPAT help @@ -243,19 +239,23 @@ config BR2_PACKAGE_KODI_LIBUSB config BR2_PACKAGE_KODI_LIBVA bool "va" select BR2_PACKAGE_LIBVA - depends on !BR2_STATIC_LIBS help Enable libva support. -comment "libva support needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS - -config BR2_PACKAGE_KODI_WAVPACK - bool "wavpack" - select BR2_PACKAGE_WAVPACK +config BR2_PACKAGE_KODI_LIBVDPAU + bool "vdpau" + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_LIBVDPAU help - Enable WAV input support. - Select this if you want to play back WV files. + Enable libvdpau support. + +comment "libvdpau support needs X.org" + depends on !BR2_PACKAGE_XORG7 + +config BR2_PACKAGE_KODI_UPNP + bool "upnp" + help + Enable UPnP support config BR2_PACKAGE_KODI_OPTICALDRIVE bool @@ -263,6 +263,7 @@ config BR2_PACKAGE_KODI_OPTICALDRIVE menu "Audio decoder addons" source "package/kodi-audiodecoder-modplug/Config.in" source "package/kodi-audiodecoder-nosefart/Config.in" + source "package/kodi-audiodecoder-opus/Config.in" source "package/kodi-audiodecoder-sidplay/Config.in" source "package/kodi-audiodecoder-snesapu/Config.in" source "package/kodi-audiodecoder-stsound/Config.in" @@ -270,6 +271,11 @@ menu "Audio decoder addons" source "package/kodi-audiodecoder-vgmstream/Config.in" endmenu +menu "Audio DSP addons" + source "package/kodi-adsp-basic/Config.in" + source "package/kodi-adsp-freesurround/Config.in" +endmenu + menu "Audio encoder addons" source "package/kodi-audioencoder-flac/Config.in" source "package/kodi-audioencoder-lame/Config.in" @@ -283,6 +289,7 @@ menu "PVR addons" source "package/kodi-pvr-dvblink/Config.in" source "package/kodi-pvr-dvbviewer/Config.in" source "package/kodi-pvr-filmon/Config.in" + source "package/kodi-pvr-hdhomerun/Config.in" source "package/kodi-pvr-hts/Config.in" source "package/kodi-pvr-iptvsimple/Config.in" source "package/kodi-pvr-mediaportal-tvserver/Config.in" @@ -299,15 +306,23 @@ endmenu menu "Screensavers" source "package/kodi-screensaver-asteroids/Config.in" + source "package/kodi-screensaver-asterwave/Config.in" source "package/kodi-screensaver-biogenesis/Config.in" + source "package/kodi-screensaver-cpblobs/Config.in" source "package/kodi-screensaver-crystalmorph/Config.in" source "package/kodi-screensaver-greynetic/Config.in" + source "package/kodi-screensaver-matrixtrails/Config.in" source "package/kodi-screensaver-pingpong/Config.in" + source "package/kodi-screensaver-planestate/Config.in" source "package/kodi-screensaver-pyro/Config.in" + source "package/kodi-screensaver-rsxs/Config.in" source "package/kodi-screensaver-stars/Config.in" endmenu menu "Visualisations" + source "package/kodi-visualisation-fishbmc/Config.in" + source "package/kodi-visualisation-fountain/Config.in" + source "package/kodi-visualisation-goom/Config.in" source "package/kodi-visualisation-shadertoy/Config.in" source "package/kodi-visualisation-spectrum/Config.in" source "package/kodi-visualisation-waveforhue/Config.in" diff --git a/bsp/buildroot/package/kodi/kodi.hash b/bsp/buildroot/package/kodi/kodi.hash index 14af9afd..5aa580ec 100644 --- a/bsp/buildroot/package/kodi/kodi.hash +++ b/bsp/buildroot/package/kodi/kodi.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 dd8aeb942e6de5d1488e243e1346cff3f6597e21b5131a3ba72ff5cc82037110 kodi-15.2-Isengard.tar.gz +sha256 7d82c8aff2715c83deecdf10c566e26105bec0473af530a1356d4c747ebdfd10 kodi-16.1-Jarvis.tar.gz diff --git a/bsp/buildroot/package/kodi/kodi.mk b/bsp/buildroot/package/kodi/kodi.mk index bf3aa7a0..e0361dae 100644 --- a/bsp/buildroot/package/kodi/kodi.mk +++ b/bsp/buildroot/package/kodi/kodi.mk @@ -4,19 +4,60 @@ # ################################################################################ -KODI_VERSION = 15.2-Isengard +KODI_VERSION = 16.1-Jarvis KODI_SITE = $(call github,xbmc,xbmc,$(KODI_VERSION)) KODI_LICENSE = GPLv2 KODI_LICENSE_FILES = LICENSE.GPL # needed for binary addons KODI_INSTALL_STAGING = YES -KODI_DEPENDENCIES = host-gawk host-gettext host-gperf host-zip host-giflib \ - host-libjpeg host-lzo host-nasm host-libpng host-swig -KODI_DEPENDENCIES += boost bzip2 expat ffmpeg fontconfig freetype jasper jpeg \ - libass libcdio libcurl libfribidi libgcrypt libmpeg2 \ - libogg libplist libpng libsamplerate libsquish libvorbis libxml2 \ - libxslt lzo ncurses openssl pcre python readline sqlite taglib tiff \ - tinyxml yajl zlib +KODI_DEPENDENCIES = \ + boost \ + bzip2 \ + expat \ + ffmpeg \ + fontconfig \ + freetype \ + giflib \ + host-gawk \ + host-gettext \ + host-giflib \ + host-gperf \ + host-libjpeg \ + host-libpng \ + host-lzo \ + host-nasm \ + host-swig \ + host-zip \ + jasper \ + jpeg \ + libass \ + libcdio \ + libcrossguid \ + libcurl \ + libdcadec \ + libfribidi \ + libgcrypt \ + libmpeg2 \ + libogg \ + libplist \ + libpng \ + libsamplerate \ + libsquish \ + libvorbis \ + libxml2 \ + libxslt \ + lzo \ + ncurses \ + openssl \ + pcre \ + python \ + readline \ + sqlite \ + taglib \ + tiff \ + tinyxml \ + yajl \ + zlib KODI_CONF_ENV = \ PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)" \ @@ -32,13 +73,11 @@ KODI_CONF_OPTS += \ --with-ffmpeg=shared \ --disable-joystick \ --disable-openmax \ - --disable-projectm \ --disable-pulse \ - --disable-vdpau \ --disable-vtbdecoder \ --enable-optimizations -ifeq ($(BR2_PACKAGE_MYSQL),y) +ifeq ($(BR2_PACKAGE_KODI_MYSQL),y) KODI_CONF_OPTS += --enable-mysql KODI_CONF_ENV += ac_cv_path_MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config" KODI_DEPENDENCIES += mysql @@ -46,6 +85,14 @@ else KODI_CONF_OPTS += --disable-mysql endif +ifeq ($(BR2_PACKAGE_KODI_NONFREE),y) +KODI_CONF_OPTS += --enable-non-free +KODI_LICENSE := $(KODI_LICENSE), unrar +KODI_LICENSE_FILES += lib/UnrarXLib/license.txt +else +KODI_CONF_OPTS += --disable-non-free +endif + ifeq ($(BR2_PACKAGE_RPI_USERLAND),y) KODI_DEPENDENCIES += rpi-userland KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer @@ -54,8 +101,15 @@ KODI_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads LIBS="-lvcos -lvchostif" endif -ifeq ($(BR2_PACKAGE_LIBFSLVPUWRAP),y) -KODI_DEPENDENCIES += libfslvpuwrap +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) +KODI_DEPENDENCIES += udev +KODI_CONF_OPTS += --enable-udev +else +KODI_CONF_OPTS += --disable-udev +endif + +ifeq ($(BR2_PACKAGE_IMX_VPUWRAP),y) +KODI_DEPENDENCIES += imx-vpuwrap KODI_CONF_OPTS += --enable-codec=imxvpu endif @@ -88,24 +142,8 @@ ifeq ($(BR2_PACKAGE_KODI_GL),y) KODI_DEPENDENCIES += libglew libglu libgl xlib_libX11 xlib_libXext \ xlib_libXmu xlib_libXrandr xlib_libXt libdrm KODI_CONF_OPTS += --enable-gl --enable-x11 --disable-gles -ifeq ($(BR2_PACKAGE_KODI_RSXS),y) -# fix rsxs compile -# gcc5: http://trac.kodi.tv/ticket/16006#comment:6 -# make sure target libpng-config is used, options taken from rsxs-0.9/acinclude.m4 -KODI_CONF_ENV += \ - ac_cv_type__Bool=yes \ - jm_cv_func_gettimeofday_clobber=no \ - mac_cv_pkg_png=$(STAGING_DIR)/usr/bin/libpng-config \ - mac_cv_pkg_cppflags="`$(STAGING_DIR)/usr/bin/libpng-config --I_opts --cppflags`" \ - mac_cv_pkg_cxxflags="`$(STAGING_DIR)/usr/bin/libpng-config --ccopts`" \ - mac_cv_pkg_ldflags="`$(STAGING_DIR)/usr/bin/libpng-config --L_opts --R_opts`" \ - mac_cv_pkg_libs="`$(STAGING_DIR)/usr/bin/libpng-config --libs`" -KODI_CONF_OPTS += --enable-rsxs else -KODI_CONF_OPTS += --disable-rsxs -endif -else -KODI_CONF_OPTS += --disable-gl --disable-rsxs --disable-x11 +KODI_CONF_OPTS += --disable-gl --disable-x11 ifeq ($(BR2_PACKAGE_KODI_EGL_GLES),y) KODI_DEPENDENCIES += libegl libgles KODI_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) `$(PKG_CONFIG_HOST_BINARY) --cflags --libs egl`" @@ -116,12 +154,6 @@ KODI_CONF_OPTS += --disable-gles endif endif -ifeq ($(BR2_PACKAGE_KODI_GOOM),y) -KODI_CONF_OPTS += --enable-goom -else -KODI_CONF_OPTS += --disable-goom -endif - ifeq ($(BR2_PACKAGE_KODI_LIBUSB),y) KODI_DEPENDENCIES += libusb-compat KODI_CONF_OPTS += --enable-libusb @@ -198,10 +230,6 @@ else KODI_CONF_OPTS += --disable-lirc endif -ifeq ($(BR2_PACKAGE_KODI_WAVPACK),y) -KODI_DEPENDENCIES += wavpack -endif - ifeq ($(BR2_PACKAGE_KODI_LIBTHEORA),y) KODI_DEPENDENCIES += libtheora endif @@ -214,6 +242,19 @@ else KODI_CONF_OPTS += --disable-vaapi endif +ifeq ($(BR2_PACKAGE_KODI_LIBVDPAU),y) +KODI_DEPENDENCIES += libvdpau +KODI_CONF_OPTS += --enable-vdpau +else +KODI_CONF_OPTS += --disable-vdpau +endif + +ifeq ($(BR2_PACKAGE_KODI_UPNP),y) +KODI_CONF_OPTS += --enable-upnp +else +KODI_CONF_OPTS += --disable-upnp +endif + ifeq ($(BR2_PACKAGE_KODI_OPTICALDRIVE),y) KODI_CONF_OPTS += --enable-optical-drive --enable-dvdcss else @@ -229,7 +270,6 @@ endef KODI_PRE_CONFIGURE_HOOKS += KODI_BOOTSTRAP define KODI_CLEAN_UNUSED_ADDONS - rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/screensaver.rsxs.plasma rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.milkdrop rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.projectm rm -Rf $(TARGET_DIR)/usr/share/kodi/addons/visualization.itunes diff --git a/bsp/buildroot/package/ktap/ktap.hash b/bsp/buildroot/package/ktap/ktap.hash new file mode 100644 index 00000000..d58bd85b --- /dev/null +++ b/bsp/buildroot/package/ktap/ktap.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 bc8b03a53c430ae4fcf594ffdf31e2b2ed47a8fee25dd8fea60aa34f75441707 ktap-eb66d40310c93dc82bc8eac889744c1ed1f01f7b.tar.gz diff --git a/bsp/buildroot/package/kvmtool/Config.in b/bsp/buildroot/package/kvmtool/Config.in index f047c755..d2290c5d 100644 --- a/bsp/buildroot/package/kvmtool/Config.in +++ b/bsp/buildroot/package/kvmtool/Config.in @@ -19,12 +19,12 @@ config BR2_PACKAGE_KVMTOOL https://git.kernel.org/cgit/linux/kernel/git/will/kvmtool.git/tree/README -comment "kvmtool needs a (e)glibc or musl toolchain" +comment "kvmtool needs a glibc or musl toolchain" depends on BR2_USE_MMU depends on BR2_i386 || BR2_mips || BR2_x86_64 depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) -comment "kvmtool needs a (e)glibc or musl toolchain w/ dynamic library" +comment "kvmtool needs a glibc or musl toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_aarch64 || BR2_arm || BR2_armeb depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || \ diff --git a/bsp/buildroot/package/lapack/Config.in b/bsp/buildroot/package/lapack/Config.in new file mode 100644 index 00000000..b5eca492 --- /dev/null +++ b/bsp/buildroot/package/lapack/Config.in @@ -0,0 +1,21 @@ +comment "lapack/blas needs a toolchain w/ fortran" + depends on !(BR2_powerpc && BR2_TOOLCHAIN_USES_UCLIBC) + depends on !BR2_TOOLCHAIN_HAS_FORTRAN + +config BR2_PACKAGE_LAPACK + bool "lapack/blas" + depends on BR2_TOOLCHAIN_HAS_FORTRAN + # _fpu_control is used on PowerPC, but not available with uClibc + depends on !(BR2_powerpc && BR2_TOOLCHAIN_USES_UCLIBC) + help + LAPACK and BLAS FORTRAN implementation. This package + installs two libraries: libblas and liblapack. + + http://www.netlib.org/lapack/ + +config BR2_PACKAGE_LAPACK_COMPLEX + bool "Complex/Complex16 support" + depends on BR2_PACKAGE_LAPACK + default y + help + Builds support for COMPLEX and COMPLEX16 data types. diff --git a/bsp/buildroot/package/lapack/lapack.hash b/bsp/buildroot/package/lapack/lapack.hash new file mode 100644 index 00000000..e57cebcb --- /dev/null +++ b/bsp/buildroot/package/lapack/lapack.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 888a50d787a9d828074db581c80b2d22bdb91435a673b1bf6cd6eb51aa50d1de lapack-3.6.1.tgz diff --git a/bsp/buildroot/package/lapack/lapack.mk b/bsp/buildroot/package/lapack/lapack.mk new file mode 100644 index 00000000..56008e14 --- /dev/null +++ b/bsp/buildroot/package/lapack/lapack.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# lapack +# +################################################################################ + +LAPACK_VERSION = 3.6.1 +LAPACK_SOURCE = lapack-$(LAPACK_VERSION).tgz +LAPACK_LICENSE = BSD-3c +LAPACK_LICENSE_FILES = LICENSE +LAPACK_SITE = http://www.netlib.org/lapack +LAPACK_INSTALL_STAGING = YES +LAPACK_CONF_OPTS = -DLAPACKE=ON -DCBLAS=ON + +ifeq ($(BR2_PACKAGE_LAPACK_COMPLEX),y) +LAPACK_CONF_OPTS += -DBUILD_COMPLEX=ON -DBUILD_COMPLEX16=ON +else +LAPACK_CONF_OPTS += -DBUILD_COMPLEX=OFF -DBUILD_COMPLEX16=OFF +endif + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/latencytop/latencytop.hash b/bsp/buildroot/package/latencytop/latencytop.hash new file mode 100644 index 00000000..4be004ca --- /dev/null +++ b/bsp/buildroot/package/latencytop/latencytop.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 9e7f72fbea7bd918e71212a1eabaad8488d2c602205d2e3c95d62cd57e9203ef latencytop-0.5.tar.gz diff --git a/bsp/buildroot/package/lcdapi/0001-Remove-installation-of-docs-examples.patch b/bsp/buildroot/package/lcdapi/0001-Remove-installation-of-docs-examples.patch deleted file mode 100644 index dcadcf4a..00000000 --- a/bsp/buildroot/package/lcdapi/0001-Remove-installation-of-docs-examples.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ede0fa7d410be407164b68570a1540378bf0bd09 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sat, 19 Jul 2014 10:40:59 +0200 -Subject: [PATCH] Remove installation of docs/examples - -They get installed in the wrong directory, i.e if DESTDIR is -/path/to/output/target, they will be installed in -/path/to/output/target./examples and /path/to/output/target./docs. - -Since we don't need docs and examples in Buildroot anyway, simply get -rid of them. - -Signed-off-by: Thomas Petazzoni ---- - Makefile.am | 11 ----------- - 1 file changed, 11 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index c56860a..6b1267b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -69,14 +69,3 @@ liblcdapi_la_CXXFLAGS = \ - -g0 -DNODEBUG -Os - - ACLOCAL_AMFLAGS = -I m4 -- --docsdir = $(top_srcdir)/docs --exampledir = $(top_srcdir)/example --dist_docs_DATA = \ -- docs/Makefile.am \ -- docs/Makefile.in \ -- docs/Doxyfile.in --dist_example_DATA = \ -- example/client.cpp \ -- example/Makefile.am \ -- example/Makefile.in --- -2.0.0 - diff --git a/bsp/buildroot/package/lcdapi/lcdapi.hash b/bsp/buildroot/package/lcdapi/lcdapi.hash new file mode 100644 index 00000000..98c42f8f --- /dev/null +++ b/bsp/buildroot/package/lcdapi/lcdapi.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 fa26b53fd543ebab825d55cafb4c88af6a71ac3dcf86d4e8bcd3592be4212b55 lcdapi-v0.10.tar.gz diff --git a/bsp/buildroot/package/lcdapi/lcdapi.mk b/bsp/buildroot/package/lcdapi/lcdapi.mk index bcf5c477..5d8c2ee5 100644 --- a/bsp/buildroot/package/lcdapi/lcdapi.mk +++ b/bsp/buildroot/package/lcdapi/lcdapi.mk @@ -4,7 +4,7 @@ # ################################################################################ -LCDAPI_VERSION = dbbdca06f271b8cf81b4817a9da3d558cfe59905 +LCDAPI_VERSION = v0.10 LCDAPI_SITE = $(call github,spdawson,lcdapi,$(LCDAPI_VERSION)) LCDAPI_LICENSE = LGPLv2.1+ LCDAPI_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/less/Config.in b/bsp/buildroot/package/less/Config.in index b7aa152a..caf688ae 100644 --- a/bsp/buildroot/package/less/Config.in +++ b/bsp/buildroot/package/less/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LESS bool "less" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES help Excellent text file viewer. diff --git a/bsp/buildroot/package/leveldb/leveldb.hash b/bsp/buildroot/package/leveldb/leveldb.hash new file mode 100644 index 00000000..1f83e6e7 --- /dev/null +++ b/bsp/buildroot/package/leveldb/leveldb.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 4aa1a7479bc567b95a59ac6fb79eba49f61884d6fd400f20b7af147d54c5cee5 leveldb-v1.18.tar.gz diff --git a/bsp/buildroot/package/lft/Config.in b/bsp/buildroot/package/lft/Config.in new file mode 100644 index 00000000..9ed7b8bd --- /dev/null +++ b/bsp/buildroot/package/lft/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_LFT + bool "lft" + select BR2_PACKAGE_LIBPCAP + help + LFT, short for Layer Four Traceroute, is a sort of + 'traceroute' that often works much faster (than the + commonly-used Van Jacobson method) and goes through many + configurations of packet-filters (firewalls). + + http://pwhois.org/lft/ diff --git a/bsp/buildroot/package/lft/lft.hash b/bsp/buildroot/package/lft/lft.hash new file mode 100644 index 00000000..714b7bd5 --- /dev/null +++ b/bsp/buildroot/package/lft/lft.hash @@ -0,0 +1,2 @@ +# Locally calculated, matches download from fossies.org and pwhois.org +sha256 fa163f8eaa9c27e12ecf533e79d8606895a301d2a75b9a77f0df29ef9a20c561 lft-3.76.tar.gz diff --git a/bsp/buildroot/package/lft/lft.mk b/bsp/buildroot/package/lft/lft.mk new file mode 100644 index 00000000..d2b82b2b --- /dev/null +++ b/bsp/buildroot/package/lft/lft.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# lft +# +################################################################################ + +LFT_VERSION = 3.76 +LFT_SITE = http://pwhois.org/get +LFT_DEPENDENCIES = libpcap +LFT_LICENSE = VOSTROM Public License for Open Source +LFT_LICENSE_FILES = COPYING +LFT_CONF_OPTS = --with-pcap=$(STAGING_DIR)/usr +LFT_MAKE_ENV = STRIP=true + +ifeq ($(BR2_STATIC_LIBS),y) +LFT_CONF_OPTS += LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/lftp/0001-fix-static-link-with-readline.patch b/bsp/buildroot/package/lftp/0001-fix-static-link-with-readline.patch new file mode 100644 index 00000000..33923966 --- /dev/null +++ b/bsp/buildroot/package/lftp/0001-fix-static-link-with-readline.patch @@ -0,0 +1,40 @@ +fix static link with readline + +When readline is static library, we need to link against ncurses +because readline needs ncurses. It is because, dependent library's +symbols are not resolved when static library is built. Those symbols +are resolved program tries to link with static library. + +We can't pass linker flags for ncurses by setting LIBS environment +variable via _CONF_ENV because it looks like build system is not +taking that into account and even though it would have been, order of +linking is important. + +We can't also pass linker flags for ncurses via --with-readline-libs +conf options because it causes lftp_LIB_READLINE macro to take readline +headers from host machine if available. To use --with-readline-libs +we need to set --with-readline=yes and --with-readline-inc to include +dir. But when --with-readline=yes, readline_prefix is computed based +on if headers can be found in /usr/local or /usr. If readline is +installed on host machine, then configure fails since we are using +headers for host machine. If headers are not found in /usr/local or /usr +then only path specified --with-readline-inc is taken into account. +So specifying linker flags for ncurses via --with-readline-libs will +not work in all cases. + +So it looks like, updating linker flags directly is only option to fix +static link issue against readline. + +Signed-off-by: Rahul Bedarkar + +--- lftp-4.7.3/m4/lftp_lib_readline.m4.old 2016-08-08 19:49:12.217596470 +0530 ++++ lftp-4.7.3/m4/lftp_lib_readline.m4 2016-08-08 19:49:46.265596398 +0530 +@@ -108,7 +108,7 @@ AC_DEFUN([lftp_LIB_READLINE], + readline_include_dir="$readline_include_dir/readline" + fi + readline_ld_flags="-L$readline_prefix/lib" +- readline_lib_flags="-lreadline" ++ readline_lib_flags="-lreadline -lncurses" + run_readline_test="yes" + elif test "$readline_requested" = "yes"; then + if test -n "$readline_include_dir" -a -n "$readline_lib_flags"; then diff --git a/bsp/buildroot/package/lftp/lftp.hash b/bsp/buildroot/package/lftp/lftp.hash index 4c5d7995..57a5205a 100644 --- a/bsp/buildroot/package/lftp/lftp.hash +++ b/bsp/buildroot/package/lftp/lftp.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 1e7cb674c83ace48172263f86847ed04bb6ab2f24116b11a8505f70a15e8805c lftp-4.6.4.tar.xz +sha256 3b22259cdc4c1a6ae349057d16bda4b4816929e04d223242ab8927bc31a48e7c lftp-4.7.3.tar.xz diff --git a/bsp/buildroot/package/lftp/lftp.mk b/bsp/buildroot/package/lftp/lftp.mk index 5051f707..802bbc74 100644 --- a/bsp/buildroot/package/lftp/lftp.mk +++ b/bsp/buildroot/package/lftp/lftp.mk @@ -4,15 +4,21 @@ # ################################################################################ -LFTP_VERSION = 4.6.4 +LFTP_VERSION = 4.7.3 LFTP_SOURCE = lftp-$(LFTP_VERSION).tar.xz LFTP_SITE = http://lftp.yar.ru/ftp LFTP_LICENSE = GPLv3+ LFTP_LICENSE_FILES = COPYING -# Needed so that our libtool patch applies properly +# Needed so that our libtool patch applies properly, and for patch +# 0001-fix-static-link-with-readline.patch. LFTP_AUTORECONF = YES LFTP_DEPENDENCIES = readline zlib host-pkgconf +# Help lftp finding readline and zlib +LFTP_CONF_OPTS = \ + --with-readline=$(STAGING_DIR)/usr \ + --with-zlib=$(STAGING_DIR)/usr + ifneq ($(BR2_STATIC_LIBS),y) LFTP_CONF_OPTS += --with-modules endif diff --git a/bsp/buildroot/package/libaacs/Config.in b/bsp/buildroot/package/libaacs/Config.in new file mode 100644 index 00000000..d59b6da6 --- /dev/null +++ b/bsp/buildroot/package/libaacs/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_LIBAACS + bool "libaacs" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_LIBGCRYPT + help + libaacs is a research project to implement the Advanced Access + Content System specification. + NB: this project doesn't offer any key or certificate that + could be used to decode encrypted copyrighted material. + + http://www.videolan.org/developers/libaacs.html + +comment "libaacs needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/libaacs/libaacs.hash b/bsp/buildroot/package/libaacs/libaacs.hash new file mode 100644 index 00000000..7160c6a9 --- /dev/null +++ b/bsp/buildroot/package/libaacs/libaacs.hash @@ -0,0 +1,2 @@ +# From http://download.videolan.org/pub/videolan/libaacs/0.8.1/libaacs-0.8.1.tar.bz2.sha512 +sha512 dd677627f073460b719b9f836b026acc3e23b166c7b16bd205cf2ca97c376095980532fb15087c0d77b30c712cd5a5dd90b2cc2ae3128da717621ebd825afcc4 libaacs-0.8.1.tar.bz2 diff --git a/bsp/buildroot/package/libaacs/libaacs.mk b/bsp/buildroot/package/libaacs/libaacs.mk new file mode 100644 index 00000000..df611543 --- /dev/null +++ b/bsp/buildroot/package/libaacs/libaacs.mk @@ -0,0 +1,24 @@ +################################################################################ +# +# libaacs +# +################################################################################ + +LIBAACS_VERSION = 0.8.1 +LIBAACS_SITE = http://download.videolan.org/pub/videolan/libaacs/$(LIBAACS_VERSION) +LIBAACS_SOURCE = libaacs-$(LIBAACS_VERSION).tar.bz2 +LIBAACS_LICENSE = LGPLv2.1+ +LIBAACS_LICENSE_FILES = COPYING +LIBAACS_INSTALL_STAGING = YES +LIBAACS_DEPENDENCIES = host-bison host-flex libgcrypt +LIBAACS_CONF_OPTS = \ + --disable-werror \ + --disable-extra-warnings \ + --disable-optimizations \ + --disable-examples \ + --disable-debug \ + --with-gnu-ld \ + --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ + --with-gpg-error-prefix=$(STAGING_DIR)/usr + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libaio/0001-arches.patch b/bsp/buildroot/package/libaio/0001-arches.patch index c85568ca..4b77f577 100644 --- a/bsp/buildroot/package/libaio/0001-arches.patch +++ b/bsp/buildroot/package/libaio/0001-arches.patch @@ -1,145 +1,28 @@ Patch borrowed from OpenEmbedded, available at -recipes/libaio/libaio-0.3.106/00_arches.patch in their source -tree. The patch has been adapted to remove the ARM-related -definitions, since they have been merged in later versions of libaio. +/meta/recipes-extended/libaio/libaio/00_arches.patch in their source +tree. This patch has been modified to only add the MIPS definitions. -The patch adds various architecture specific definitions (syscall -number and macros) for m68k, MIPS, PA/RISC and Sparc. Amongst these, -Buildroot mostly only cares about MIPS, but it was just easier to take -the whole OpenEmbedded patch. +The patch adds MIPS specific definitions (syscall number and macros). -Signed-off-by: Thomas Petazzoni ---- - src/libaio.h | 24 +++++ - src/syscall-m68k.h | 78 +++++++++++++++++ - src/syscall-mips.h | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++ - src/syscall-parisc.h | 146 +++++++++++++++++++++++++++++++++ - src/syscall-sparc.h | 130 +++++++++++++++++++++++++++++ - src/syscall.h | 8 + - 7 files changed, 725 insertions(+) +Signed-off-by: Alistair Francis -Index: libaio-0.3.109/src/libaio.h +Index: libaio-0.3.110/src/syscall.h =================================================================== ---- libaio-0.3.109.orig/src/libaio.h -+++ libaio-0.3.109/src/libaio.h -@@ -83,6 +83,30 @@ - #define PADDEDptr(x, y) x; unsigned y - #define PADDEDul(x, y) unsigned long x; unsigned y - # endif -+#elif defined(__m68k__) /* big endian, 32 bits */ -+#define PADDED(x, y) unsigned y; x -+#define PADDEDptr(x, y) unsigned y; x -+#define PADDEDul(x, y) unsigned y; unsigned long x -+#elif defined(__sparc__) /* big endian, 32 bits */ -+#define PADDED(x, y) unsigned y; x -+#define PADDEDptr(x, y) unsigned y; x -+#define PADDEDul(x, y) unsigned y; unsigned long x -+#elif defined(__hppa__) /* big endian, 32 bits */ -+#define PADDED(x, y) unsigned y; x -+#define PADDEDptr(x, y) unsigned y; x -+#define PADDEDul(x, y) unsigned y; unsigned long x +--- libaio-0.3.110.orig/src/syscall.h ++++ libaio-0.3.110/src/syscall.h +@@ -28,6 +28,8 @@ + #include "syscall-sparc.h" + #elif defined(__aarch64__) + #include "syscall-arm64.h" +#elif defined(__mips__) -+# if defined (__MIPSEB__) /* big endian, 32 bits */ -+#define PADDED(x, y) unsigned y; x -+#define PADDEDptr(x, y) unsigned y; x -+#define PADDEDul(x, y) unsigned y; unsigned long x -+# elif defined(__MIPSEL__) /* little endian, 32 bits */ -+#define PADDED(x, y) x; unsigned y -+#define PADDEDptr(x, y) x; unsigned y -+#define PADDEDul(x, y) unsigned long x; unsigned y -+# else -+# error "neither mipseb nor mipsel?" -+# endif ++#include "syscall-mips.h" #else - #error endian? - #endif -Index: libaio-0.3.109/src/syscall-m68k.h + #warning "using generic syscall method" + #include "syscall-generic.h" +Index: libaio-0.3.110/src/syscall-mips.h =================================================================== --- /dev/null -+++ libaio-0.3.109/src/syscall-m68k.h -@@ -0,0 +1,78 @@ -+#define __NR_io_setup 241 -+#define __NR_io_destroy 242 -+#define __NR_io_getevents 243 -+#define __NR_io_submit 244 -+#define __NR_io_cancel 245 -+ -+#define io_syscall1(type,fname,sname,atype,a) \ -+type fname(atype a) \ -+{ \ -+register long __res __asm__ ("%d0") = __NR_##sname; \ -+register long __a __asm__ ("%d1") = (long)(a); \ -+__asm__ __volatile__ ("trap #0" \ -+ : "+d" (__res) \ -+ : "d" (__a) ); \ -+return (type) __res; \ -+} -+ -+#define io_syscall2(type,fname,sname,atype,a,btype,b) \ -+type fname(atype a,btype b) \ -+{ \ -+register long __res __asm__ ("%d0") = __NR_##sname; \ -+register long __a __asm__ ("%d1") = (long)(a); \ -+register long __b __asm__ ("%d2") = (long)(b); \ -+__asm__ __volatile__ ("trap #0" \ -+ : "+d" (__res) \ -+ : "d" (__a), "d" (__b) \ -+ ); \ -+return (type) __res; \ -+} -+ -+#define io_syscall3(type,fname,sname,atype,a,btype,b,ctype,c) \ -+type fname(atype a,btype b,ctype c) \ -+{ \ -+register long __res __asm__ ("%d0") = __NR_##sname; \ -+register long __a __asm__ ("%d1") = (long)(a); \ -+register long __b __asm__ ("%d2") = (long)(b); \ -+register long __c __asm__ ("%d3") = (long)(c); \ -+__asm__ __volatile__ ("trap #0" \ -+ : "+d" (__res) \ -+ : "d" (__a), "d" (__b), \ -+ "d" (__c) \ -+ ); \ -+return (type) __res; \ -+} -+ -+#define io_syscall4(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d) \ -+type fname (atype a, btype b, ctype c, dtype d) \ -+{ \ -+register long __res __asm__ ("%d0") = __NR_##sname; \ -+register long __a __asm__ ("%d1") = (long)(a); \ -+register long __b __asm__ ("%d2") = (long)(b); \ -+register long __c __asm__ ("%d3") = (long)(c); \ -+register long __d __asm__ ("%d4") = (long)(d); \ -+__asm__ __volatile__ ("trap #0" \ -+ : "+d" (__res) \ -+ : "d" (__a), "d" (__b), \ -+ "d" (__c), "d" (__d) \ -+ ); \ -+return (type) __res; \ -+} -+ -+#define io_syscall5(type,fname,sname,atype,a,btype,b,ctype,c,dtype,d,etype,e) \ -+type fname (atype a,btype b,ctype c,dtype d,etype e) \ -+{ \ -+register long __res __asm__ ("%d0") = __NR_##sname; \ -+register long __a __asm__ ("%d1") = (long)(a); \ -+register long __b __asm__ ("%d2") = (long)(b); \ -+register long __c __asm__ ("%d3") = (long)(c); \ -+register long __d __asm__ ("%d4") = (long)(d); \ -+register long __e __asm__ ("%d5") = (long)(e); \ -+__asm__ __volatile__ ("trap #0" \ -+ : "+d" (__res) \ -+ : "d" (__a), "d" (__b), \ -+ "d" (__c), "d" (__d), "d" (__e) \ -+ ); \ -+return (type) __res; \ -+} -+ -Index: libaio-0.3.109/src/syscall-mips.h -=================================================================== ---- /dev/null -+++ libaio-0.3.109/src/syscall-mips.h ++++ libaio-0.3.110/src/syscall-mips.h @@ -0,0 +1,223 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public @@ -364,308 +247,3 @@ Index: libaio-0.3.109/src/syscall-mips.h + +#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ + -Index: libaio-0.3.109/src/syscall-parisc.h -=================================================================== ---- /dev/null -+++ libaio-0.3.109/src/syscall-parisc.h -@@ -0,0 +1,146 @@ -+/* -+ * Linux system call numbers. -+ * -+ * Cary Coutant says that we should just use another syscall gateway -+ * page to avoid clashing with the HPUX space, and I think he's right: -+ * it will would keep a branch out of our syscall entry path, at the -+ * very least. If we decide to change it later, we can ``just'' tweak -+ * the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be -+ * 1024 or something. Oh, and recompile libc. =) -+ * -+ * 64-bit HPUX binaries get the syscall gateway address passed in a register -+ * from the kernel at startup, which seems a sane strategy. -+ */ -+ -+#define __NR_Linux 0 -+#define __NR_io_setup (__NR_Linux + 215) -+#define __NR_io_destroy (__NR_Linux + 216) -+#define __NR_io_getevents (__NR_Linux + 217) -+#define __NR_io_submit (__NR_Linux + 218) -+#define __NR_io_cancel (__NR_Linux + 219) -+ -+#define SYS_ify(syscall_name) __NR_##syscall_name -+ -+/* Assume all syscalls are done from PIC code just to be -+ * safe. The worst case scenario is that you lose a register -+ * and save/restore r19 across the syscall. */ -+#define PIC -+ -+/* Definition taken from glibc 2.3.3 -+ * sysdeps/unix/sysv/linux/hppa/sysdep.h -+ */ -+ -+#ifdef PIC -+/* WARNING: CANNOT BE USED IN A NOP! */ -+# define K_STW_ASM_PIC " copy %%r19, %%r4\n" -+# define K_LDW_ASM_PIC " copy %%r4, %%r19\n" -+# define K_USING_GR4 "%r4", -+#else -+# define K_STW_ASM_PIC " \n" -+# define K_LDW_ASM_PIC " \n" -+# define K_USING_GR4 -+#endif -+ -+/* GCC has to be warned that a syscall may clobber all the ABI -+ registers listed as "caller-saves", see page 8, Table 2 -+ in section 2.2.6 of the PA-RISC RUN-TIME architecture -+ document. However! r28 is the result and will conflict with -+ the clobber list so it is left out. Also the input arguments -+ registers r20 -> r26 will conflict with the list so they -+ are treated specially. Although r19 is clobbered by the syscall -+ we cannot say this because it would violate ABI, thus we say -+ r4 is clobbered and use that register to save/restore r19 -+ across the syscall. */ -+ -+#define K_CALL_CLOB_REGS "%r1", "%r2", K_USING_GR4 \ -+ "%r20", "%r29", "%r31" -+ -+#undef K_INLINE_SYSCALL -+#define K_INLINE_SYSCALL(name, nr, args...) ({ \ -+ long __sys_res; \ -+ { \ -+ register unsigned long __res __asm__("r28"); \ -+ K_LOAD_ARGS_##nr(args) \ -+ /* FIXME: HACK stw/ldw r19 around syscall */ \ -+ __asm__ volatile( \ -+ K_STW_ASM_PIC \ -+ " ble 0x100(%%sr2, %%r0)\n" \ -+ " ldi %1, %%r20\n" \ -+ K_LDW_ASM_PIC \ -+ : "=r" (__res) \ -+ : "i" (SYS_ify(name)) K_ASM_ARGS_##nr \ -+ : "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr \ -+ ); \ -+ __sys_res = (long)__res; \ -+ } \ -+ __sys_res; \ -+}) -+ -+#define K_LOAD_ARGS_0() -+#define K_LOAD_ARGS_1(r26) \ -+ register unsigned long __r26 __asm__("r26") = (unsigned long)(r26); \ -+ K_LOAD_ARGS_0() -+#define K_LOAD_ARGS_2(r26,r25) \ -+ register unsigned long __r25 __asm__("r25") = (unsigned long)(r25); \ -+ K_LOAD_ARGS_1(r26) -+#define K_LOAD_ARGS_3(r26,r25,r24) \ -+ register unsigned long __r24 __asm__("r24") = (unsigned long)(r24); \ -+ K_LOAD_ARGS_2(r26,r25) -+#define K_LOAD_ARGS_4(r26,r25,r24,r23) \ -+ register unsigned long __r23 __asm__("r23") = (unsigned long)(r23); \ -+ K_LOAD_ARGS_3(r26,r25,r24) -+#define K_LOAD_ARGS_5(r26,r25,r24,r23,r22) \ -+ register unsigned long __r22 __asm__("r22") = (unsigned long)(r22); \ -+ K_LOAD_ARGS_4(r26,r25,r24,r23) -+#define K_LOAD_ARGS_6(r26,r25,r24,r23,r22,r21) \ -+ register unsigned long __r21 __asm__("r21") = (unsigned long)(r21); \ -+ K_LOAD_ARGS_5(r26,r25,r24,r23,r22) -+ -+/* Even with zero args we use r20 for the syscall number */ -+#define K_ASM_ARGS_0 -+#define K_ASM_ARGS_1 K_ASM_ARGS_0, "r" (__r26) -+#define K_ASM_ARGS_2 K_ASM_ARGS_1, "r" (__r25) -+#define K_ASM_ARGS_3 K_ASM_ARGS_2, "r" (__r24) -+#define K_ASM_ARGS_4 K_ASM_ARGS_3, "r" (__r23) -+#define K_ASM_ARGS_5 K_ASM_ARGS_4, "r" (__r22) -+#define K_ASM_ARGS_6 K_ASM_ARGS_5, "r" (__r21) -+ -+/* The registers not listed as inputs but clobbered */ -+#define K_CLOB_ARGS_6 -+#define K_CLOB_ARGS_5 K_CLOB_ARGS_6, "%r21" -+#define K_CLOB_ARGS_4 K_CLOB_ARGS_5, "%r22" -+#define K_CLOB_ARGS_3 K_CLOB_ARGS_4, "%r23" -+#define K_CLOB_ARGS_2 K_CLOB_ARGS_3, "%r24" -+#define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25" -+#define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26" -+ -+#define io_syscall1(type,fname,sname,type1,arg1) \ -+type fname(type1 arg1) \ -+{ \ -+ return K_INLINE_SYSCALL(sname, 1, arg1); \ -+} -+ -+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \ -+type fname(type1 arg1, type2 arg2) \ -+{ \ -+ return K_INLINE_SYSCALL(sname, 2, arg1, arg2); \ -+} -+ -+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \ -+type fname(type1 arg1, type2 arg2, type3 arg3) \ -+{ \ -+ return K_INLINE_SYSCALL(sname, 3, arg1, arg2, arg3); \ -+} -+ -+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ -+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -+{ \ -+ return K_INLINE_SYSCALL(sname, 4, arg1, arg2, arg3, arg4); \ -+} -+ -+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ -+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ -+{ \ -+ return K_INLINE_SYSCALL(sname, 5, arg1, arg2, arg3, arg4, arg5); \ -+} -+ -Index: libaio-0.3.109/src/syscall-sparc.h -=================================================================== ---- /dev/null -+++ libaio-0.3.109/src/syscall-sparc.h -@@ -0,0 +1,130 @@ -+/* $Id: unistd.h,v 1.74 2002/02/08 03:57:18 davem Exp $ */ -+ -+/* -+ * System calls under the Sparc. -+ * -+ * Don't be scared by the ugly clobbers, it is the only way I can -+ * think of right now to force the arguments into fixed registers -+ * before the trap into the system call with gcc 'asm' statements. -+ * -+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) -+ * -+ * SunOS compatibility based upon preliminary work which is: -+ * -+ * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) -+ */ -+ -+ -+#define __NR_io_setup 268 -+#define __NR_io_destroy 269 -+#define __NR_io_submit 270 -+#define __NR_io_cancel 271 -+#define __NR_io_getevents 272 -+ -+ -+#define io_syscall1(type,fname,sname,type1,arg1) \ -+type fname(type1 arg1) \ -+{ \ -+long __res; \ -+register long __g1 __asm__ ("g1") = __NR_##sname; \ -+register long __o0 __asm__ ("o0") = (long)(arg1); \ -+__asm__ __volatile__ ("t 0x10\n\t" \ -+ "bcc 1f\n\t" \ -+ "mov %%o0, %0\n\t" \ -+ "sub %%g0, %%o0, %0\n\t" \ -+ "1:\n\t" \ -+ : "=r" (__res), "=&r" (__o0) \ -+ : "1" (__o0), "r" (__g1) \ -+ : "cc"); \ -+if (__res < -255 || __res >= 0) \ -+ return (type) __res; \ -+return -1; \ -+} -+ -+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \ -+type fname(type1 arg1,type2 arg2) \ -+{ \ -+long __res; \ -+register long __g1 __asm__ ("g1") = __NR_##sname; \ -+register long __o0 __asm__ ("o0") = (long)(arg1); \ -+register long __o1 __asm__ ("o1") = (long)(arg2); \ -+__asm__ __volatile__ ("t 0x10\n\t" \ -+ "bcc 1f\n\t" \ -+ "mov %%o0, %0\n\t" \ -+ "sub %%g0, %%o0, %0\n\t" \ -+ "1:\n\t" \ -+ : "=r" (__res), "=&r" (__o0) \ -+ : "1" (__o0), "r" (__o1), "r" (__g1) \ -+ : "cc"); \ -+if (__res < -255 || __res >= 0) \ -+ return (type) __res; \ -+return -1; \ -+} -+ -+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \ -+type fname(type1 arg1,type2 arg2,type3 arg3) \ -+{ \ -+long __res; \ -+register long __g1 __asm__ ("g1") = __NR_##sname; \ -+register long __o0 __asm__ ("o0") = (long)(arg1); \ -+register long __o1 __asm__ ("o1") = (long)(arg2); \ -+register long __o2 __asm__ ("o2") = (long)(arg3); \ -+__asm__ __volatile__ ("t 0x10\n\t" \ -+ "bcc 1f\n\t" \ -+ "mov %%o0, %0\n\t" \ -+ "sub %%g0, %%o0, %0\n\t" \ -+ "1:\n\t" \ -+ : "=r" (__res), "=&r" (__o0) \ -+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \ -+ : "cc"); \ -+if (__res < -255 || __res>=0) \ -+ return (type) __res; \ -+return -1; \ -+} -+ -+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ -+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ -+{ \ -+long __res; \ -+register long __g1 __asm__ ("g1") = __NR_##sname; \ -+register long __o0 __asm__ ("o0") = (long)(arg1); \ -+register long __o1 __asm__ ("o1") = (long)(arg2); \ -+register long __o2 __asm__ ("o2") = (long)(arg3); \ -+register long __o3 __asm__ ("o3") = (long)(arg4); \ -+__asm__ __volatile__ ("t 0x10\n\t" \ -+ "bcc 1f\n\t" \ -+ "mov %%o0, %0\n\t" \ -+ "sub %%g0, %%o0, %0\n\t" \ -+ "1:\n\t" \ -+ : "=r" (__res), "=&r" (__o0) \ -+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \ -+ : "cc"); \ -+if (__res < -255 || __res>=0) \ -+ return (type) __res; \ -+return -1; \ -+} -+ -+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ -+ type5,arg5) \ -+type fname(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \ -+{ \ -+long __res; \ -+register long __g1 __asm__ ("g1") = __NR_##sname; \ -+register long __o0 __asm__ ("o0") = (long)(arg1); \ -+register long __o1 __asm__ ("o1") = (long)(arg2); \ -+register long __o2 __asm__ ("o2") = (long)(arg3); \ -+register long __o3 __asm__ ("o3") = (long)(arg4); \ -+register long __o4 __asm__ ("o4") = (long)(arg5); \ -+__asm__ __volatile__ ("t 0x10\n\t" \ -+ "bcc 1f\n\t" \ -+ "mov %%o0, %0\n\t" \ -+ "sub %%g0, %%o0, %0\n\t" \ -+ "1:\n\t" \ -+ : "=r" (__res), "=&r" (__o0) \ -+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \ -+ : "cc"); \ -+if (__res < -255 || __res>=0) \ -+ return (type) __res; \ -+return -1; \ -+} -+ -Index: libaio-0.3.109/src/syscall.h -=================================================================== ---- libaio-0.3.109.orig/src/syscall.h -+++ libaio-0.3.109/src/syscall.h -@@ -24,6 +24,14 @@ - #include "syscall-alpha.h" - #elif defined(__arm__) - #include "syscall-arm.h" -+#elif defined(__m68k__) -+#include "syscall-m68k.h" -+#elif defined(__sparc__) -+#include "syscall-sparc.h" -+#elif defined(__hppa__) -+#include "syscall-parisc.h" -+#elif defined(__mips__) -+#include "syscall-mips.h" - #else - #error "add syscall-arch.h" - #endif diff --git a/bsp/buildroot/package/libaio/0002-src-Makefile-add-ENABLE_SHARED-boolean-to-allow-stat.patch b/bsp/buildroot/package/libaio/0002-src-Makefile-add-ENABLE_SHARED-boolean-to-allow-stat.patch new file mode 100644 index 00000000..50703c3f --- /dev/null +++ b/bsp/buildroot/package/libaio/0002-src-Makefile-add-ENABLE_SHARED-boolean-to-allow-stat.patch @@ -0,0 +1,56 @@ +From 14dee5707716629b1bc8d06b93cdfe9ea1a3b813 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 29 Aug 2016 22:14:26 +0200 +Subject: [PATCH] src/Makefile: add ENABLE_SHARED boolean to allow static-only + build + +Currently, the libaio builds sytem builds a shared library +unconditionally. In some environments, this is not possible or +desirable. This commit adds a new Makefile variable, ENABLE_SHARED, +which defaults to "1" (i.e shared library enabled) and that allows to +override this behavior, and therefore to disable the build and +installation of the shared library. + +Signed-off-by: Thomas Petazzoni +--- + src/Makefile | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index eadb336..cfab240 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -8,12 +8,17 @@ SO_CFLAGS=-shared $(CFLAGS) + L_CFLAGS=$(CFLAGS) + LINK_FLAGS= + LINK_FLAGS+=$(LDFLAGS) ++ENABLE_SHARED ?= 1 + + soname=libaio.so.1 + minor=0 + micro=1 + libname=$(soname).$(minor).$(micro) +-all_targets += libaio.a $(libname) ++all_targets += libaio.a ++ ++ifeq ($(ENABLE_SHARED),1) ++all_targets += $(libname) ++endif + + all: $(all_targets) + +@@ -55,9 +60,11 @@ $(libname): $(libaio_sobjs) libaio.map + install: $(all_targets) + install -D -m 644 libaio.h $(includedir)/libaio.h + install -D -m 644 libaio.a $(libdir)/libaio.a ++ifeq ($(ENABLE_SHARED),1) + install -D -m 755 $(libname) $(libdir)/$(libname) + ln -sf $(libname) $(libdir)/$(soname) + ln -sf $(libname) $(libdir)/libaio.so ++endif + + $(libaio_objs): libaio.h + +-- +2.7.4 + diff --git a/bsp/buildroot/package/libaio/Config.in b/bsp/buildroot/package/libaio/Config.in index cc44cb6d..3031c894 100644 --- a/bsp/buildroot/package/libaio/Config.in +++ b/bsp/buildroot/package/libaio/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS bool - default y if BR2_arm || BR2_armeb || BR2_i386 || \ + default y if BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \ BR2_m68k || BR2_mips || BR2_mipsel || BR2_powerpc || \ BR2_sparc || BR2_x86_64 diff --git a/bsp/buildroot/package/libaio/libaio.hash b/bsp/buildroot/package/libaio/libaio.hash index deb16e86..7aa8961f 100644 --- a/bsp/buildroot/package/libaio/libaio.hash +++ b/bsp/buildroot/package/libaio/libaio.hash @@ -1,2 +1,2 @@ -# From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/liba/libaio/libaio_0.3.109-3.dsc -sha256 bf4a457253cbaab215aea75cb6e18dc8d95bbd507e9920661ff9bdd288c8778d libaio_0.3.109.orig.tar.gz +# From http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/liba/libaio/libaio_0.3.110-1.dsc +sha256 e019028e631725729376250e32b473012f7cb68e1f7275bfc1bbcdd0f8745f7e libaio_0.3.110.orig.tar.gz diff --git a/bsp/buildroot/package/libaio/libaio.mk b/bsp/buildroot/package/libaio/libaio.mk index 53ad7eb2..5ebe1b7e 100644 --- a/bsp/buildroot/package/libaio/libaio.mk +++ b/bsp/buildroot/package/libaio/libaio.mk @@ -4,23 +4,35 @@ # ################################################################################ -LIBAIO_VERSION = 0.3.109 +LIBAIO_VERSION = 0.3.110 LIBAIO_SOURCE = libaio_$(LIBAIO_VERSION).orig.tar.gz LIBAIO_SITE = http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/liba/libaio LIBAIO_INSTALL_STAGING = YES LIBAIO_LICENSE = LGPLv2.1+ LIBAIO_LICENSE_FILES = COPYING +LIBAIO_CONFIGURE_OPTS = $(TARGET_CONFIGURE_OPTS) + +ifeq ($(BR2_STATIC_LIBS),y) +LIBAIO_CONFIGURE_OPTS += ENABLE_SHARED=0 +endif + +# On PowerPC, a weird toolchain issue causes -Os builds to produce +# references to hidden symbols, so we're forcing -O2 +ifeq ($(BR2_powerpc),y) +LIBAIO_CONFIGURE_OPTS += CFLAGS="$(subst -Os,-O2,$(TARGET_CFLAGS))" +endif + define LIBAIO_BUILD_CMDS - $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) + $(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define LIBAIO_INSTALL_STAGING_CMDS - $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install + $(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install endef define LIBAIO_INSTALL_TARGET_CMDS - $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install + $(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/libamcodec/0001-Include-stdint.h-where-needed.patch b/bsp/buildroot/package/libamcodec/0001-Include-stdint.h-where-needed.patch new file mode 100644 index 00000000..6d588f6b --- /dev/null +++ b/bsp/buildroot/package/libamcodec/0001-Include-stdint.h-where-needed.patch @@ -0,0 +1,47 @@ +From ff6d4326f839321c079d60ae9301c6202942f675 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 27 Aug 2016 14:31:04 +0200 +Subject: [PATCH] Include where needed + +The {u,}int{8,16,32}_t types are defined in , so it should be +included when such types are used. + +Not including might work by accident with some C libraries +due to it being included by other headers, but it for example causes +build failures with the musl C library. + +Signed-off-by: Thomas Petazzoni +Upstream-status: https://github.com/mdrjr/c2_aml_libs/pull/1 +--- + amadec/audio-dec.h | 1 + + amavutils/include/Amvideoutils.h | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/amadec/audio-dec.h b/amadec/audio-dec.h +index 4325fe4..ac0f36b 100644 +--- a/amadec/audio-dec.h ++++ b/amadec/audio-dec.h +@@ -12,6 +12,7 @@ + #define AUDIO_DEC_H + + #include ++#include + + #include + #include +diff --git a/amavutils/include/Amvideoutils.h b/amavutils/include/Amvideoutils.h +index 6f978e4..94f10a6 100644 +--- a/amavutils/include/Amvideoutils.h ++++ b/amavutils/include/Amvideoutils.h +@@ -5,6 +5,8 @@ + extern "C" { + #endif + ++#include ++ + #define HDMI_HDCP_PASS (1) + #define HDMI_HDCP_FAILED (0) + #define HDMI_NOCONNECT (-1) +-- +2.7.4 + diff --git a/bsp/buildroot/package/libamcodec/Config.in b/bsp/buildroot/package/libamcodec/Config.in new file mode 100644 index 00000000..7300259e --- /dev/null +++ b/bsp/buildroot/package/libamcodec/Config.in @@ -0,0 +1,14 @@ +comment "libamcodec needs a toolchain w/ threads, dynamic library" + depends on BR2_arm || BR2_aarch64 + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + +config BR2_PACKAGE_LIBAMCODEC + bool "libamcodec" + depends on BR2_arm || BR2_aarch64 + depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib + depends on !BR2_STATIC_LIBS # dlfcn.h + select BR2_PACKAGE_ALSA_LIB + help + Interface library for Amlogic media codecs + + https://github.com/mdrjr/c2_aml_libs.git diff --git a/bsp/buildroot/package/libamcodec/libamcodec.hash b/bsp/buildroot/package/libamcodec/libamcodec.hash new file mode 100644 index 00000000..13bb1e85 --- /dev/null +++ b/bsp/buildroot/package/libamcodec/libamcodec.hash @@ -0,0 +1,2 @@ +# Locally computed hash +sha256 5e4a1157e75f802585445df55182b5ef123f635b7faca95fbda3f7cdef8bad1c libamcodec-6f9b99182f94be14fce785c75aa1e9bce868e229.tar.gz diff --git a/bsp/buildroot/package/libamcodec/libamcodec.mk b/bsp/buildroot/package/libamcodec/libamcodec.mk new file mode 100644 index 00000000..8fab95dc --- /dev/null +++ b/bsp/buildroot/package/libamcodec/libamcodec.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# libamcodec +# +################################################################################ + +LIBAMCODEC_VERSION = 6f9b99182f94be14fce785c75aa1e9bce868e229 +LIBAMCODEC_SITE = $(call github,mdrjr,c2_aml_libs,$(LIBAMCODEC_VERSION)) +LIBAMCODEC_DEPENDENCIES = alsa-lib +LIBAMCODEC_LICENSE = Unclear +LIBAMCODEC_INSTALL_STAGING = YES + +# This package uses the AML_LIBS_STAGING_DIR variable to construct the +# header and library paths used when compiling +define LIBAMCODEC_BUILD_CMDS + $(foreach d,amavutils amadec amcodec,\ + $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ + -C $(@D)/$(d) AML_LIBS_STAGING_DIR=$(STAGING_DIR) + ) +endef + +define LIBAMCODEC_INSTALL_STAGING_CMDS + $(INSTALL) -D -m 0755 $(@D)/amavutils/libamavutils.so $(STAGING_DIR)/usr/lib/libamavutils.so + $(INSTALL) -D -m 0555 $(@D)/amadec/libamadec.so $(STAGING_DIR)/usr/lib/libamadec.so + $(INSTALL) -D -m 0555 $(@D)/amcodec/libamcodec.so $(STAGING_DIR)/usr/lib/libamcodec.so + mkdir -p $(STAGING_DIR)/usr/include/amcodec + cp -rf $(@D)/amcodec/include/* $(STAGING_DIR)/usr/include/amcodec +endef + +define LIBAMCODEC_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/amavutils/libamavutils.so $(TARGET_DIR)/usr/lib/libamavutils.so + $(INSTALL) -D -m 0555 $(@D)/amadec/libamadec.so $(TARGET_DIR)/usr/lib/libamadec.so + $(INSTALL) -D -m 0555 $(@D)/amcodec/libamcodec.so $(TARGET_DIR)/usr/lib/libamcodec.so +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/libarchive/Config.in b/bsp/buildroot/package/libarchive/Config.in index 81b5936c..fd429acb 100644 --- a/bsp/buildroot/package/libarchive/Config.in +++ b/bsp/buildroot/package/libarchive/Config.in @@ -24,4 +24,10 @@ config BR2_PACKAGE_LIBARCHIVE_BSDCPIO The 'bsdcpio' program is a different interface to essentially the same functionality as 'bsdtar'. +config BR2_PACKAGE_LIBARCHIVE_BSDCAT + bool "bsdcat" + help + The 'bsdcat' program is a simple replacement tool + for zcat, bzcat, xzcat, and such. + endif diff --git a/bsp/buildroot/package/libarchive/libarchive.hash b/bsp/buildroot/package/libarchive/libarchive.hash index 5f962115..2c39bd3e 100644 --- a/bsp/buildroot/package/libarchive/libarchive.hash +++ b/bsp/buildroot/package/libarchive/libarchive.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e libarchive-3.1.2.tar.gz +sha256 72ee1a4e3fd534525f13a0ba1aa7b05b203d186e0c6072a8a4738649d0b3cfd2 libarchive-3.2.1.tar.gz diff --git a/bsp/buildroot/package/libarchive/libarchive.mk b/bsp/buildroot/package/libarchive/libarchive.mk index 726142b2..bcf92f90 100644 --- a/bsp/buildroot/package/libarchive/libarchive.mk +++ b/bsp/buildroot/package/libarchive/libarchive.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBARCHIVE_VERSION = 3.1.2 +LIBARCHIVE_VERSION = 3.2.1 LIBARCHIVE_SITE = http://www.libarchive.org/downloads LIBARCHIVE_INSTALL_STAGING = YES LIBARCHIVE_LICENSE = BSD-2c, BSD-3c @@ -30,6 +30,16 @@ else LIBARCHIVE_CONF_OPTS += --disable-bsdcpio endif +ifeq ($(BR2_PACKAGE_LIBARCHIVE_BSDCAT),y) +ifeq ($(BR2_STATIC_LIBS),y) +LIBARCHIVE_CONF_OPTS += --enable-bsdcat=static +else +LIBARCHIVE_CONF_OPTS += --enable-bsdcat=shared +endif +else +LIBARCHIVE_CONF_OPTS += --disable-bsdcat +endif + ifeq ($(BR2_PACKAGE_ACL),y) LIBARCHIVE_DEPENDENCIES += acl else @@ -92,11 +102,30 @@ else LIBARCHIVE_CONF_OPTS += --without-zlib endif -ifeq ($(BR2_PACKAGE_XZ),y) +# libarchive requires LZMA with thread support in the toolchain +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS)$(BR2_PACKAGE_XZ),yy) LIBARCHIVE_DEPENDENCIES += xz LIBARCHIVE_CONF_OPTS += --with-lzma else LIBARCHIVE_CONF_OPTS += --without-lzma endif +# The only user of host-libarchive needs zlib support +HOST_LIBARCHIVE_DEPENDENCIES = host-zlib +HOST_LIBARCHIVE_CONF_OPTS = \ + --disable-bsdtar \ + --disable-bsdcpio \ + --disable-bsdcat \ + --disable-acl \ + --disable-xattr \ + --without-bz2lib \ + --without-expat \ + --without-libiconv-prefix \ + --without-xml2 \ + --without-lzo2 \ + --without-nettle \ + --without-openssl \ + --without-lzma + $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/libasplib/0001-Fix-linux-detection-with-buildroot.patch b/bsp/buildroot/package/libasplib/0001-Fix-linux-detection-with-buildroot.patch deleted file mode 100644 index 66f51851..00000000 --- a/bsp/buildroot/package/libasplib/0001-Fix-linux-detection-with-buildroot.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1dc4480e5157e7ac8eb0364446787128f0a156aa Mon Sep 17 00:00:00 2001 -From: Bernd Kuhls -Date: Sun, 20 Dec 2015 22:25:52 +0100 -Subject: [PATCH 1/1] Fix linux detection with buildroot - -Inspired by -http://lists.busybox.net/pipermail/buildroot/2015-July/133312.html - -Patch sent upstream: https://github.com/kodi-adsp/asplib/pull/2 - -Signed-off-by: Bernd Kuhls ---- - asplib_utils/os/asplib_base_os.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/asplib_utils/os/asplib_base_os.h b/asplib_utils/os/asplib_base_os.h -index a2d3b98..9a90b54 100644 ---- a/asplib_utils/os/asplib_base_os.h -+++ b/asplib_utils/os/asplib_base_os.h -@@ -27,7 +27,7 @@ - #define TARGET_WINDOWS - #endif - #include "windows/windows_definitions.h" --#elif defined(__gnu_linux__) -+#elif (defined(__gnu_linux__) || defined(__linux__)) - #if !defined(TARGET_WINDOWS) - #define TARGET_LINUX - #endif --- -2.6.4 - diff --git a/bsp/buildroot/package/libasplib/Config.in b/bsp/buildroot/package/libasplib/Config.in index 71ccfa01..89d54484 100644 --- a/bsp/buildroot/package/libasplib/Config.in +++ b/bsp/buildroot/package/libasplib/Config.in @@ -1,14 +1,11 @@ config BR2_PACKAGE_LIBASPLIB bool "libasplib" depends on BR2_INSTALL_LIBSTDCPP - # needs from the compiler - depends on BR2_i386 || BR2_x86_64 help asplib (Achim's Signal Processing LIBrary), is a small and lightweight C++ library for digital signal processing. - https://github.com/kodi-adsp/asplib + https://github.com/AchimTuran/asplib comment "asplib needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP - depends on BR2_i386 || BR2_x86_64 diff --git a/bsp/buildroot/package/libasplib/libasplib.hash b/bsp/buildroot/package/libasplib/libasplib.hash index 96c6a2c1..bbd027dd 100644 --- a/bsp/buildroot/package/libasplib/libasplib.hash +++ b/bsp/buildroot/package/libasplib/libasplib.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 8979cbd1620dde0603f596d2d05d300355f07e42637bb41ecd564541fa1332f4 libasplib-2fac1bf34efd210b95949fddcbd4a12d287d3e82.tar.gz +sha256 ccc2718c79a8d684317cc1987ede88b198e1602df47d0f18f03d474eda00af9c libasplib-f7219142e790a329b002a94f3db943abcb183739.tar.gz diff --git a/bsp/buildroot/package/libasplib/libasplib.mk b/bsp/buildroot/package/libasplib/libasplib.mk index 27629f56..41aeaeb8 100644 --- a/bsp/buildroot/package/libasplib/libasplib.mk +++ b/bsp/buildroot/package/libasplib/libasplib.mk @@ -4,8 +4,8 @@ # ################################################################################ -LIBASPLIB_VERSION = 2fac1bf34efd210b95949fddcbd4a12d287d3e82 -LIBASPLIB_SITE = $(call github,kodi-adsp,asplib,$(LIBASPLIB_VERSION)) +LIBASPLIB_VERSION = f7219142e790a329b002a94f3db943abcb183739 +LIBASPLIB_SITE = $(call github,AchimTuran,asplib,$(LIBASPLIB_VERSION)) LIBASPLIB_LICENSE = GPLv3+ LIBASPLIB_LICENSE_FILES = LICENSE LIBASPLIB_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libass/libass.hash b/bsp/buildroot/package/libass/libass.hash index 87d3f269..5dddc403 100644 --- a/bsp/buildroot/package/libass/libass.hash +++ b/bsp/buildroot/package/libass/libass.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 e0071a3b2e95411c8d474014678368e3f0b852f7d663e0564b344e7335eb0671 libass-0.13.0.tar.xz +sha256 d698d0a6adca7c36c5a86b540d67b05bfd36cebc3c351ab7646497c43fe1face libass-0.13.2.tar.xz diff --git a/bsp/buildroot/package/libass/libass.mk b/bsp/buildroot/package/libass/libass.mk index 2f0ca08a..716bca6b 100644 --- a/bsp/buildroot/package/libass/libass.mk +++ b/bsp/buildroot/package/libass/libass.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBASS_VERSION = 0.13.0 +LIBASS_VERSION = 0.13.2 LIBASS_SOURCE = libass-$(LIBASS_VERSION).tar.xz # Do not use the github helper here, the generated tarball is *NOT* # the same as the one uploaded by upstream for the release. diff --git a/bsp/buildroot/package/libassuan/Config.in b/bsp/buildroot/package/libassuan/Config.in index 4f0a6ba0..012e65c4 100644 --- a/bsp/buildroot/package/libassuan/Config.in +++ b/bsp/buildroot/package/libassuan/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LIBASSUAN bool "libassuan" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_USE_MMU # fork() select BR2_PACKAGE_LIBGPG_ERROR help diff --git a/bsp/buildroot/package/libassuan/libassuan.hash b/bsp/buildroot/package/libassuan/libassuan.hash index a019f76c..01ade11f 100644 --- a/bsp/buildroot/package/libassuan/libassuan.hash +++ b/bsp/buildroot/package/libassuan/libassuan.hash @@ -1,2 +1,2 @@ # From https://www.gnupg.org/download/integrity_check.html -sha1 c21b86482f6a3624c2b46b91e20f8415f244233a libassuan-2.2.1.tar.bz2 +sha1 27391cf4a820b5350ea789c30661830c9a271518 libassuan-2.4.3.tar.bz2 diff --git a/bsp/buildroot/package/libassuan/libassuan.mk b/bsp/buildroot/package/libassuan/libassuan.mk index 3656ea57..c4d2e4f4 100644 --- a/bsp/buildroot/package/libassuan/libassuan.mk +++ b/bsp/buildroot/package/libassuan/libassuan.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBASSUAN_VERSION = 2.2.1 +LIBASSUAN_VERSION = 2.4.3 LIBASSUAN_SITE = ftp://ftp.gnupg.org/gcrypt/libassuan LIBASSUAN_SOURCE = libassuan-$(LIBASSUAN_VERSION).tar.bz2 LIBASSUAN_LICENSE = LGPLv2.1+ (library), GPLv3 (tests, doc) diff --git a/bsp/buildroot/package/libatomic_ops/libatomic_ops.hash b/bsp/buildroot/package/libatomic_ops/libatomic_ops.hash new file mode 100644 index 00000000..d91f7059 --- /dev/null +++ b/bsp/buildroot/package/libatomic_ops/libatomic_ops.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2616be0a2f70f7e3eb12f131a36e32723ed5a1928f17b886c3e7c62f7ed14339 libatomic_ops-libatomic_ops-7_4_2.tar.gz diff --git a/bsp/buildroot/package/libbdplus/Config.in b/bsp/buildroot/package/libbdplus/Config.in new file mode 100644 index 00000000..2d314d13 --- /dev/null +++ b/bsp/buildroot/package/libbdplus/Config.in @@ -0,0 +1,20 @@ +config BR2_PACKAGE_LIBBDPLUS + bool "libbdplus" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_LIBGCRYPT + help + libbdplus is a research project to implement the BD+ System + Specifications. + This research project provides, through an open-source + library, a way to understand how the BD+ works. + NB: this project doesn't offer any key, configuration file or + certificate that could be used to decode encrypted copyrighted + material. + + http://www.videolan.org/developers/libbdplus.html + +comment "libbdplus needs a toolchain w/ threads, dynamic library" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/libbdplus/libbdplus.hash b/bsp/buildroot/package/libbdplus/libbdplus.hash new file mode 100644 index 00000000..552cd71c --- /dev/null +++ b/bsp/buildroot/package/libbdplus/libbdplus.hash @@ -0,0 +1,2 @@ +# From http://download.videolan.org/pub/videolan/libbdplus/0.1.2/libbdplus-0.1.2.tar.bz2.sha512 +sha512 e00e7bc9f52b9275646593b753ba646b052255be94a7241965f4dbe4734f8f6a072973ed4b9997957f939236b0633897c295749f79e232188430795be5b5087b libbdplus-0.1.2.tar.bz2 diff --git a/bsp/buildroot/package/libbdplus/libbdplus.mk b/bsp/buildroot/package/libbdplus/libbdplus.mk new file mode 100644 index 00000000..45913edd --- /dev/null +++ b/bsp/buildroot/package/libbdplus/libbdplus.mk @@ -0,0 +1,31 @@ +################################################################################ +# +# libbdplus +# +################################################################################ + +LIBBDPLUS_VERSION = 0.1.2 +LIBBDPLUS_SITE = http://download.videolan.org/pub/videolan/libbdplus/$(LIBBDPLUS_VERSION) +LIBBDPLUS_SOURCE = libbdplus-$(LIBBDPLUS_VERSION).tar.bz2 +LIBBDPLUS_LICENSE = LGPLv2.1+ +LIBBDPLUS_LICENSE_FILES = COPYING +LIBBDPLUS_INSTALL_STAGING = YES +LIBBDPLUS_DEPENDENCIES = libgcrypt +LIBBDPLUS_CONF_OPTS = \ + --disable-werror \ + --disable-extra-warnings \ + --disable-optimizations \ + --disable-examples \ + --disable-debug \ + --with-gnu-ld \ + --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ + --with-gpg-error-prefix=$(STAGING_DIR)/usr + +ifeq ($(BR2_PACKAGE_LIBAACS),y) +LIBBDPLUS_DEPENDENCIES += libaacs +LIBBDPLUS_CONF_OPTS += --with-libaacs +else +LIBBDPLUS_CONF_OPTS += --without-libaacs +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libbluray/Config.in b/bsp/buildroot/package/libbluray/Config.in index 357a562d..b9589356 100644 --- a/bsp/buildroot/package/libbluray/Config.in +++ b/bsp/buildroot/package/libbluray/Config.in @@ -8,5 +8,4 @@ config BR2_PACKAGE_LIBBLURAY http://www.videolan.org/developers/libbluray.html comment "libbluray needs a toolchain w/ threads, dynamic library" - depends on !BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/libbluray/libbluray.hash b/bsp/buildroot/package/libbluray/libbluray.hash index 5bb41a12..ea0df505 100644 --- a/bsp/buildroot/package/libbluray/libbluray.hash +++ b/bsp/buildroot/package/libbluray/libbluray.hash @@ -1,2 +1,2 @@ -# From http://get.videolan.org/libbluray/0.8.1/libbluray-0.8.1.tar.bz2.sha512 -sha512 6618e01a567f0dc5d21302fc771d4155589c81703028b76f6090a2d12ef1c7e9d08d9c79312a7c8b2ca0d6c63ce980195f0866509a4f8f05f64ed6650c7f78dc libbluray-0.8.1.tar.bz2 +# From http://get.videolan.org/libbluray/0.9.3/libbluray-0.9.3.tar.bz2.sha512 +sha512 1e308b85c51d43b23b186fdd2631f963d4c25de8aff29f335e131b32a175434ee21460a7aa470c508ad13662cf9052649bb4eb974dbd709eb9e6797fb84e0823 libbluray-0.9.3.tar.bz2 diff --git a/bsp/buildroot/package/libbluray/libbluray.mk b/bsp/buildroot/package/libbluray/libbluray.mk index e62ad484..dfe58f4e 100644 --- a/bsp/buildroot/package/libbluray/libbluray.mk +++ b/bsp/buildroot/package/libbluray/libbluray.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBBLURAY_VERSION = 0.8.1 +LIBBLURAY_VERSION = 0.9.3 LIBBLURAY_SITE = http://get.videolan.org/libbluray/$(LIBBLURAY_VERSION) LIBBLURAY_SOURCE = libbluray-$(LIBBLURAY_VERSION).tar.bz2 LIBBLURAY_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libbsd/0001-build-clock_gettime-might-need-librt.patch b/bsp/buildroot/package/libbsd/0001-build-clock_gettime-might-need-librt.patch deleted file mode 100644 index ad6fcdbd..00000000 --- a/bsp/buildroot/package/libbsd/0001-build-clock_gettime-might-need-librt.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 188049ac7adcabfa66e5b6a674ac28a2f7da81f3 Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias -Date: Fri, 12 Feb 2016 11:06:58 -0300 -Subject: [PATCH] build: clock_gettime might need librt - -In older glibc versions (< 2.17) clock_gettime is in librt. -Add a check for this to avoid build breakage for programs/libraries that -use libbsd on such systems. - -Signed-off-by: Gustavo Zacarias ---- -Patch status: submitted upstream - - configure.ac | 5 +++++ - src/Makefile.am | 2 ++ - 2 files changed, 7 insertions(+) - -diff --git a/configure.ac b/configure.ac -index d334774..1862d19 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -44,6 +44,11 @@ AC_SUBST([TESTU01_LIBS]) - AM_CONDITIONAL([HAVE_LIBTESTU01], - [test "x$ac_cv_lib_testu01_unif01_CreateExternGenBits" = "xyes"]) - -+# In old glibc versions (< 2.17) clock_gettime() is in librt -+AC_SEARCH_LIBS([clock_gettime], [rt], -+ [LIB_CLOCK_GETTIME="-lrt"]) -+AC_SUBST([LIB_CLOCK_GETTIME]) -+ - # Checks for header files. - AC_CHECK_HEADERS([sys/ndir.h sys/dir.h ndir.h dirent.h]) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 4649937..6b705f0 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -52,6 +52,8 @@ hash/md5hl.c: $(srcdir)/hash/helper.c - libbsd_la_DEPENDENCIES = \ - $(libbsd_la_included_sources) \ - libbsd.map -+libbsd_la_LIBADD = \ -+ $(LIB_CLOCK_GETTIME) - libbsd_la_LDFLAGS = \ - -Wl,--version-script=$(srcdir)/libbsd.map \ - -version-number $(LIBBSD_ABI) --- -2.4.10 - diff --git a/bsp/buildroot/package/libbsd/Config.in b/bsp/buildroot/package/libbsd/Config.in index dd2c19c1..9b5b8981 100644 --- a/bsp/buildroot/package/libbsd/Config.in +++ b/bsp/buildroot/package/libbsd/Config.in @@ -17,6 +17,6 @@ config BR2_PACKAGE_LIBBSD http://libbsd.freedesktop.org/ -comment "libbsd needs an (e)glibc toolchain w/ threads" +comment "libbsd needs a glibc toolchain w/ threads" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/libbsd/libbsd.hash b/bsp/buildroot/package/libbsd/libbsd.hash index f77c0aa4..bc6c7cfb 100644 --- a/bsp/buildroot/package/libbsd/libbsd.hash +++ b/bsp/buildroot/package/libbsd/libbsd.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 b2f644cae94a6e2fe109449c20ad79a0f6ee4faec2205b07eefa0020565e250a libbsd-0.8.2.tar.xz +sha256 934b634f4dfd865b6482650b8f522c70ae65c463529de8be907b53c89c3a34a8 libbsd-0.8.3.tar.xz diff --git a/bsp/buildroot/package/libbsd/libbsd.mk b/bsp/buildroot/package/libbsd/libbsd.mk index f750d752..a932f2b4 100644 --- a/bsp/buildroot/package/libbsd/libbsd.mk +++ b/bsp/buildroot/package/libbsd/libbsd.mk @@ -4,13 +4,11 @@ # ################################################################################ -LIBBSD_VERSION = 0.8.2 +LIBBSD_VERSION = 0.8.3 LIBBSD_SOURCE = libbsd-$(LIBBSD_VERSION).tar.xz LIBBSD_SITE = http://libbsd.freedesktop.org/releases LIBBSD_LICENSE = BSD-3c, MIT LIBBSD_LICENSE_FILES = COPYING LIBBSD_INSTALL_STAGING = YES -# For 0001-build-clock_gettime-might-need-librt.patch -LIBBSD_AUTORECONF = YES $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libcap-ng/Config.in b/bsp/buildroot/package/libcap-ng/Config.in index 4939e262..d1663cde 100644 --- a/bsp/buildroot/package/libcap-ng/Config.in +++ b/bsp/buildroot/package/libcap-ng/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_LIBCAP_NG bool "libcap-ng" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # triggers compiler bug help The libcap-ng library is intended to make programming with posix capabilities much easier than the traditional libcap diff --git a/bsp/buildroot/package/libcap-ng/libcap-ng.hash b/bsp/buildroot/package/libcap-ng/libcap-ng.hash index d8dde236..ecea6e88 100644 --- a/bsp/buildroot/package/libcap-ng/libcap-ng.hash +++ b/bsp/buildroot/package/libcap-ng/libcap-ng.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 48a2083276f9820cb92dcb05d001b30733bcbf48c14c230303cac3cd08b45b6b libcap-ng-0.7.4.tar.gz +sha256 615549ce39b333f6b78baee0c0b4ef18bc726c6bf1cca123dfd89dd963f6d06b libcap-ng-0.7.7.tar.gz diff --git a/bsp/buildroot/package/libcap-ng/libcap-ng.mk b/bsp/buildroot/package/libcap-ng/libcap-ng.mk index c2ae25bc..d78f5dc6 100644 --- a/bsp/buildroot/package/libcap-ng/libcap-ng.mk +++ b/bsp/buildroot/package/libcap-ng/libcap-ng.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBCAP_NG_VERSION = 0.7.4 +LIBCAP_NG_VERSION = 0.7.7 LIBCAP_NG_SITE = http://people.redhat.com/sgrubb/libcap-ng LIBCAP_NG_LICENSE = GPLv2+ LGPLv2.1+ LIBCAP_NG_LICENSE_FILES = COPYING COPYING.LIB diff --git a/bsp/buildroot/package/libcap/0001-build-system-fixes-for-cross-compilation.patch b/bsp/buildroot/package/libcap/0001-build-system-fixes-for-cross-compilation.patch new file mode 100644 index 00000000..de240908 --- /dev/null +++ b/bsp/buildroot/package/libcap/0001-build-system-fixes-for-cross-compilation.patch @@ -0,0 +1,53 @@ +From d8d70559a279706c206761dfaf665d2197934123 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Sun, 6 Mar 2016 22:52:02 +0100 +Subject: [PATCH] build-system: fixes for cross-compilation + +Avoid the libcap buildsys forcing CC/CFLAGS/LDFLAGS/AR/RANLIB + +Signed-off-by: Gustavo Zacarias +[yann.morin.1998@free.fr: dont chmod +x the shared lib] +Signed-off-by: "Yann E. MORIN" + +diff --git a/Make.Rules b/Make.Rules +index 8347b26..8a07a3f 100644 +--- a/Make.Rules ++++ b/Make.Rules +@@ -48,26 +48,26 @@ MINOR=25 + KERNEL_HEADERS := $(topdir)/libcap/include/uapi + IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include + +-CC := gcc +-CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +-BUILD_CC := $(CC) +-BUILD_CFLAGS := $(CFLAGS) $(IPATH) +-AR := ar +-RANLIB := ranlib ++CC ?= gcc ++CFLAGS ?= -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 ++BUILD_CC ?= $(CC) ++BUILD_CFLAGS ?= $(CFLAGS) $(IPATH) ++AR ?= ar ++RANLIB ?= ranlib + DEBUG = -g #-DDEBUG + WARNINGS=-Wall -Wwrite-strings \ + -Wpointer-arith -Wcast-qual -Wcast-align \ + -Wstrict-prototypes -Wmissing-prototypes \ + -Wnested-externs -Winline -Wshadow + LD=$(CC) -Wl,-x -shared +-LDFLAGS := #-g ++LDFLAGS ?= #-g + BUILD_GPERF := $(shell which gperf >/dev/null 2>/dev/null && echo yes) + + SYSTEM_HEADERS = /usr/include + INCS=$(topdir)/libcap/include/sys/capability.h + LDFLAGS += -L$(topdir)/libcap + CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) +-PAM_CAP := $(shell if [ -f /usr/include/security/pam_modules.h ]; then echo yes ; else echo no ; fi) ++PAM_CAP = no + INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi) + DYNAMIC := $(shell if [ ! -d "$(topdir)/.git" ]; then echo yes; fi) + +-- +1.9.1 + diff --git a/bsp/buildroot/package/libcap/0001-build-system.patch b/bsp/buildroot/package/libcap/0001-build-system.patch deleted file mode 100644 index 8915a69e..00000000 --- a/bsp/buildroot/package/libcap/0001-build-system.patch +++ /dev/null @@ -1,54 +0,0 @@ -Avoid the libcap buildsys forcing CC/CFLAGS/LDFLAGS/AR/RANLIB -Also install the shared lib +x - -Signed-off-by: Gustavo Zacarias - -diff -Nura libcap-2.22.orig/libcap/Makefile libcap-2.22/libcap/Makefile ---- libcap-2.22.orig/libcap/Makefile 2010-08-08 19:26:04.000000000 -0300 -+++ libcap-2.22/libcap/Makefile 2011-12-14 11:33:51.761800334 -0300 -@@ -65,7 +65,7 @@ - install -m 0644 include/sys/capability.h $(INCDIR)/sys - mkdir -p -m 0755 $(LIBDIR) - install -m 0644 $(STALIBNAME) $(LIBDIR)/$(STALIBNAME) -- install -m 0644 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME) -+ install -m 0755 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME) - ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME) - ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME) - ifeq ($(FAKEROOT),) -diff -Nura libcap-2.22.orig/Make.Rules libcap-2.22/Make.Rules ---- libcap-2.22.orig/Make.Rules 2011-07-24 23:18:23.000000000 -0300 -+++ libcap-2.22/Make.Rules 2011-12-14 11:33:28.707278685 -0300 -@@ -47,25 +47,25 @@ - KERNEL_HEADERS := $(topdir)/libcap/include - IPATH += -fPIC -I$(topdir)/libcap/include -I$(KERNEL_HEADERS) - --CC := gcc --CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 --BUILD_CC := $(CC) --BUILD_CFLAGS := $(CFLAGS) $(IPATH) --AR := ar --RANLIB := ranlib -+CC ?= gcc -+CFLAGS ?= -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -+BUILD_CC ?= $(CC) -+BUILD_CFLAGS ?= $(CFLAGS) $(IPATH) -+AR ?= ar -+RANLIB ?= ranlib - DEBUG = -g #-DDEBUG - WARNINGS=-Wall -Wwrite-strings \ - -Wpointer-arith -Wcast-qual -Wcast-align \ - -Wstrict-prototypes -Wmissing-prototypes \ - -Wnested-externs -Winline -Wshadow - LD=$(CC) -Wl,-x -shared --LDFLAGS := #-g -+LDFLAGS ?= #-g - - SYSTEM_HEADERS = /usr/include - INCS=$(topdir)/libcap/include/sys/capability.h - LDFLAGS += -L$(topdir)/libcap - CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) --PAM_CAP := $(shell if [ -f /usr/include/security/pam_modules.h ]; then echo yes ; else echo no ; fi) -+PAM_CAP = no - INDENT := $(shell if [ -n "$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi) - DYNAMIC := $(shell if [ ! -d "$(topdir)/.git" ]; then echo yes; fi) - LIBATTR := yes diff --git a/bsp/buildroot/package/libcap/0002-libcap-split-install-into-install-shared-install-sta.patch b/bsp/buildroot/package/libcap/0002-libcap-split-install-into-install-shared-install-sta.patch new file mode 100644 index 00000000..a8579b76 --- /dev/null +++ b/bsp/buildroot/package/libcap/0002-libcap-split-install-into-install-shared-install-sta.patch @@ -0,0 +1,48 @@ +From af21635665ab568f3333ff9fe8b474f4950e5acb Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 6 Mar 2016 22:53:24 +0100 +Subject: [PATCH] libcap: split install into install-shared/install-static + +In order to support static only builds, split the install target into +install-shared and install-static targets. + +Signed-off-by: Thomas Petazzoni +[yann.morin.1998@free.fr: install the .pc file in the common rule] +Signed-off-by: "Yann E. MORIN" + +diff --git a/libcap/Makefile b/libcap/Makefile +index d189777..44ddb27 100644 +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -62,19 +62,25 @@ $(MINLIBNAME): $(OBJS) + cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS) + $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ + +-install: all ++install: install-shared install-static ++ ++install-common: + mkdir -p -m 0755 $(FAKEROOT)$(INCDIR)/sys + install -m 0644 include/sys/capability.h $(FAKEROOT)$(INCDIR)/sys ++ mkdir -p -m 0755 $(FAKEROOT)$(PKGCONFIGDIR) ++ install -m 0644 libcap.pc $(FAKEROOT)$(PKGCONFIGDIR)/libcap.pc ++ ++install-static: $(STALIBNAME) install-common + mkdir -p -m 0755 $(FAKEROOT)$(LIBDIR) + install -m 0644 $(STALIBNAME) $(FAKEROOT)$(LIBDIR)/$(STALIBNAME) ++ ++install-shared: $(MINLIBNAME) install-common + install -m 0644 $(MINLIBNAME) $(FAKEROOT)$(LIBDIR)/$(MINLIBNAME) + ln -sf $(MINLIBNAME) $(FAKEROOT)$(LIBDIR)/$(MAJLIBNAME) + ln -sf $(MAJLIBNAME) $(FAKEROOT)$(LIBDIR)/$(LIBNAME) + ifeq ($(FAKEROOT),) + -/sbin/ldconfig + endif +- mkdir -p -m 0755 $(FAKEROOT)$(PKGCONFIGDIR) +- install -m 0644 libcap.pc $(FAKEROOT)$(PKGCONFIGDIR)/libcap.pc + + clean: + $(LOCALCLEAN) +-- +1.9.1 + diff --git a/bsp/buildroot/package/libcap/0002-split-static-shared-install.patch b/bsp/buildroot/package/libcap/0002-split-static-shared-install.patch deleted file mode 100644 index 21e7f2af..00000000 --- a/bsp/buildroot/package/libcap/0002-split-static-shared-install.patch +++ /dev/null @@ -1,30 +0,0 @@ -libcap: split install into install-shared/install-static - -In order to support static only builds, split the install target into -install-shared and install-static targets. - -Signed-off-by: Thomas Petazzoni - -Index: b/libcap/Makefile -=================================================================== ---- a/libcap/Makefile -+++ b/libcap/Makefile -@@ -60,11 +60,17 @@ - cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS) - $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@ - --install: all -+install: install-shared install-static -+ -+install-common: - mkdir -p -m 0755 $(INCDIR)/sys - install -m 0644 include/sys/capability.h $(INCDIR)/sys - mkdir -p -m 0755 $(LIBDIR) -+ -+install-static: install-common - install -m 0644 $(STALIBNAME) $(LIBDIR)/$(STALIBNAME) -+ -+install-shared: install-common - install -m 0755 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME) - ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME) - ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME) diff --git a/bsp/buildroot/package/libcap/0003-Change-the-location-we-include-linux-xattr.h.patch b/bsp/buildroot/package/libcap/0003-Change-the-location-we-include-linux-xattr.h.patch deleted file mode 100644 index 78587802..00000000 --- a/bsp/buildroot/package/libcap/0003-Change-the-location-we-include-linux-xattr.h.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 84fb6007dcc7f6b6da9f6dab77a487c22b6c7beb Mon Sep 17 00:00:00 2001 -From: Andrew G Morgan -Date: Sun, 9 Mar 2014 16:33:15 -0700 -Subject: [PATCH] Change the location we include linux/xattr.h - -This header stuff seems a bit fragile, but Serge reports including -it in sys/capability.h was causing a lot of trouble building dependent -app packages. - -From the perspective of libcap, this API is only needed internally in -cap_file.c so we put an include there. - -Status: upstream. - -Signed-off-by: Andrew G Morgan -Signed-off-by: Gustavo Zacarias ---- - -diff --git a/libcap/cap_file.c b/libcap/cap_file.c -index d3dc1d0..553c2d2 100644 ---- a/libcap/cap_file.c -+++ b/libcap/cap_file.c -@@ -10,6 +10,8 @@ - #include - #include - -+#include -+ - #define XATTR_SECURITY_PREFIX "security." - - #include "libcap.h" -diff --git a/libcap/include/sys/capability.h b/libcap/include/sys/capability.h -index 64ac50e..dddc75b 100644 ---- a/libcap/include/sys/capability.h -+++ b/libcap/include/sys/capability.h -@@ -27,7 +27,6 @@ extern "C" { - #define __user - #endif - #include --#include - - /* - * POSIX capability types --- -2.0.4 - diff --git a/bsp/buildroot/package/libcap/0003-libcap-cap_file.c-fix-build-with-old-kernel-headers.patch b/bsp/buildroot/package/libcap/0003-libcap-cap_file.c-fix-build-with-old-kernel-headers.patch new file mode 100644 index 00000000..02cc228b --- /dev/null +++ b/bsp/buildroot/package/libcap/0003-libcap-cap_file.c-fix-build-with-old-kernel-headers.patch @@ -0,0 +1,51 @@ +From ace694e9574eb38e07cfe0db235434eb40003f47 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 14 Mar 2016 22:39:15 +0100 +Subject: [PATCH] libcap/cap_file.c: fix build with old kernel headers + +Signed-off-by: Thomas Petazzoni +--- + libcap/cap_file.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/libcap/cap_file.c b/libcap/cap_file.c +index 40756ea..e3d54dd 100644 +--- a/libcap/cap_file.c ++++ b/libcap/cap_file.c +@@ -23,6 +23,33 @@ extern int fsetxattr(int, const char *, const void *, size_t, int); + extern int removexattr(const char *, const char *); + extern int fremovexattr(int, const char *); + ++ ++/* ++ * Old kernels (before 2.6.36) were defining XATTR_NAME_CAPS in ++ * , but using XATTR_SECURITY_PREFIX and ++ * XATTR_CAPS_SUFFIX which were defined in the kernel-only part of ++ * . ++ * ++ * In kernel 2.6.36 (commit af4f136056c984b0aa67feed7d3170b958370b2f), ++ * the XATTR_NAME_CAPS definition was moved to the kernel-only part of ++ * . It's only in kernel 3.0 (commit ++ * 1dbe39424a43e56a6c9aed12661192af51dcdb9f) that was ++ * fixed to expose XATTR_NAME_CAPS and the related definitions to ++ * userspace. ++ * ++ * In order to cope with kernels < 3.0, we define here the appropriate ++ * values, which we assume haven't changed over history. ++ */ ++#ifndef XATTR_CAPS_SUFFIX ++#define XATTR_CAPS_SUFFIX "capability" ++#endif ++#ifndef XATTR_SECURITY_PREFIX ++#define XATTR_SECURITY_PREFIX "security." ++#endif ++#ifndef XATTR_NAME_CAPS ++#define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX ++#endif ++ + #include "libcap.h" + + #ifdef VFS_CAP_U32 +-- +2.6.4 + diff --git a/bsp/buildroot/package/libcap/Config.in b/bsp/buildroot/package/libcap/Config.in index 2e3c8d97..5b0c8271 100644 --- a/bsp/buildroot/package/libcap/Config.in +++ b/bsp/buildroot/package/libcap/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_LIBCAP bool "libcap" - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # XATTR_NAME_CAPS help This library implements the user-space interfaces to the POSIX 1003.1e capabilities available in Linux kernels. These @@ -23,6 +22,3 @@ config BR2_PACKAGE_LIBCAP_TOOLS CONFIG_EXT2_FS_XATTR and CONFIG_EXT2_FS_SECURITY for ext2). endif - -comment "libcap needs a toolchain w/ headers >= 3.0" - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 diff --git a/bsp/buildroot/package/libcap/libcap.hash b/bsp/buildroot/package/libcap/libcap.hash index 75822e59..a1dcd62b 100644 --- a/bsp/buildroot/package/libcap/libcap.hash +++ b/bsp/buildroot/package/libcap/libcap.hash @@ -1,2 +1,2 @@ # https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/sha256sums.asc -sha256 cee4568f78dc851d726fc93f25f4ed91cc223b1fe8259daa4a77158d174e6c65 libcap-2.24.tar.xz +sha256 693c8ac51e983ee678205571ef272439d83afe62dd8e424ea14ad9790bc35162 libcap-2.25.tar.xz diff --git a/bsp/buildroot/package/libcap/libcap.mk b/bsp/buildroot/package/libcap/libcap.mk index 54844f8d..bcb5d8ce 100644 --- a/bsp/buildroot/package/libcap/libcap.mk +++ b/bsp/buildroot/package/libcap/libcap.mk @@ -4,27 +4,19 @@ # ################################################################################ -LIBCAP_VERSION = 2.24 +LIBCAP_VERSION = 2.25 LIBCAP_SITE = https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2 LIBCAP_SOURCE = libcap-$(LIBCAP_VERSION).tar.xz LIBCAP_LICENSE = GPLv2 or BSD-3c LIBCAP_LICENSE_FILES = License -LIBCAP_DEPENDENCIES = host-libcap +LIBCAP_DEPENDENCIES = host-libcap host-gperf LIBCAP_INSTALL_STAGING = YES -ifeq ($(BR2_PACKAGE_ATTR),y) -LIBCAP_DEPENDENCIES += attr -LIBCAP_HAVE_LIBATTR = yes -else -LIBCAP_HAVE_LIBATTR = no -endif - -# we don't have host-attr -HOST_LIBCAP_DEPENDENCIES = +HOST_LIBCAP_DEPENDENCIES = host-gperf ifeq ($(BR2_STATIC_LIBS),y) -LIBCAP_MAKE_TARGET = libcap.a +LIBCAP_MAKE_TARGET = libcap.a libcap.pc LIBCAP_MAKE_INSTALL_TARGET = install-static else LIBCAP_MAKE_TARGET = all @@ -32,7 +24,6 @@ LIBCAP_MAKE_INSTALL_TARGET = install endif LIBCAP_MAKE_FLAGS = \ - LIBATTR=$(LIBCAP_HAVE_LIBATTR) \ BUILD_CC="$(HOSTCC)" \ BUILD_CFLAGS="$(HOST_CFLAGS)" @@ -67,12 +58,13 @@ define LIBCAP_INSTALL_TARGET_CMDS endef define HOST_LIBCAP_BUILD_CMDS - $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) LIBATTR=no + $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D)\ + RAISE_SETFCAP=no endef define HOST_LIBCAP_INSTALL_CMDS - $(HOST_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(HOST_DIR) \ - prefix=/usr lib=lib install + $(HOST_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(HOST_DIR) \ + RAISE_SETFCAP=no prefix=/usr lib=lib install endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/libcec/0001-fixed-don-t-generate-an-invalid-env.h-when-not-built.patch b/bsp/buildroot/package/libcec/0001-fixed-don-t-generate-an-invalid-env.h-when-not-built.patch deleted file mode 100644 index d823a5b2..00000000 --- a/bsp/buildroot/package/libcec/0001-fixed-don-t-generate-an-invalid-env.h-when-not-built.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 369ffb5be23eca520df99732541d0482da271fd3 Mon Sep 17 00:00:00 2001 -From: Lars Op den Kamp -Date: Sat, 11 Jul 2015 00:53:17 +0200 -Subject: [PATCH] fixed: don't generate an invalid env.h when not built with - the .git dir present. closes #112 - -Backported from upstream commit 2f32a9debc1f148b5dfcfc463480f1432bb71725. - -Signed-off-by: Thomas Petazzoni ---- - support/git-rev.sh | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/support/git-rev.sh b/support/git-rev.sh -index 5dce3d0..4aadae6 100755 ---- a/support/git-rev.sh -+++ b/support/git-rev.sh -@@ -1,5 +1,8 @@ - #!/bin/sh - - ## cmake doesn't read the variable when it doesn't end with a newline, and I haven't figured out how to have it add a newline directly... --echo -n "`git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h"`\n" -- -+if [ -d .git ]; then -+ echo "`git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h"`" -+else -+ echo "" -+fi --- -2.5.0 - diff --git a/bsp/buildroot/package/libcec/libcec.hash b/bsp/buildroot/package/libcec/libcec.hash new file mode 100644 index 00000000..377f343a --- /dev/null +++ b/bsp/buildroot/package/libcec/libcec.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 0f29d5a2d155b507807ba896bc3b3e50a0ab56bf8f543a2bf5c2798c790292b5 libcec-2c675dac48387c48c7f43c5d2547ef0c4ef5c7dd.tar.gz diff --git a/bsp/buildroot/package/libcec/libcec.mk b/bsp/buildroot/package/libcec/libcec.mk index c5b008f9..b762d88d 100644 --- a/bsp/buildroot/package/libcec/libcec.mk +++ b/bsp/buildroot/package/libcec/libcec.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBCEC_VERSION = libcec-3.0.1 +LIBCEC_VERSION = 2c675dac48387c48c7f43c5d2547ef0c4ef5c7dd LIBCEC_SITE = $(call github,Pulse-Eight,libcec,$(LIBCEC_VERSION)) LIBCEC_LICENSE = GPLv2+ LIBCEC_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/libcgroup/Config.in b/bsp/buildroot/package/libcgroup/Config.in index d02c2829..03efa71e 100644 --- a/bsp/buildroot/package/libcgroup/Config.in +++ b/bsp/buildroot/package/libcgroup/Config.in @@ -18,5 +18,5 @@ config BR2_PACKAGE_LIBCGROUP_TOOLS endif -comment "libcgroup needs an (e)glibc toolchain w/ C++" +comment "libcgroup needs a glibc toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/libcli/libcli.hash b/bsp/buildroot/package/libcli/libcli.hash new file mode 100644 index 00000000..f6ea12ad --- /dev/null +++ b/bsp/buildroot/package/libcli/libcli.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 3c801cb0112b6b5e07bdc3b98c034b36df6f33a8ed95ce74520b704bdbc0f36d libcli-c63c9d35144939c8b4fa3c5394aed2e29ff517b0.tar.gz diff --git a/bsp/buildroot/package/libcoap/0001-configure-only-add-Wunused-result-if-supported-by-th.patch b/bsp/buildroot/package/libcoap/0001-configure-only-add-Wunused-result-if-supported-by-th.patch new file mode 100644 index 00000000..bc938904 --- /dev/null +++ b/bsp/buildroot/package/libcoap/0001-configure-only-add-Wunused-result-if-supported-by-th.patch @@ -0,0 +1,38 @@ +From d5914ecbb0285aea1eb2b9432d6e91155877fd95 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 9 Jun 2016 21:53:59 +0200 +Subject: [PATCH] configure: only add -Wunused-result if supported by the + compiler + +Old gcc versions such as 4.3.x do not support -Wunused-result, so +instead of unconditionally using this warning, only use it if supported +by the compiler. + +Signed-off-by: Thomas Petazzoni +--- +Submitted upstream: https://github.com/obgm/libcoap/pull/32 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index f4452ac..6354fcf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -110,12 +110,12 @@ WARNING_CFLAGS="\ + -Wswitch-default \ + -Wswitch-enum \ + -Wunused \ +--Wunused-result \ + " + + # check whether or not the compiler supports -Wlogical-op (clang does not...) + AX_CHECK_COMPILE_FLAG([-Wlogical-op], [WARNING_CFLAGS="$WARNING_CFLAGS -Wlogical-op"],,[-Werror]) + AX_CHECK_COMPILE_FLAG([-fdiagnostics-color], [CFLAGS="$CFLAGS -fdiagnostics-color"],,[-Werror]) ++AX_CHECK_COMPILE_FLAG([-Wunused-result], [WARNING_CFLAGS="$WARNING_CFLAGS -Wunused-result"]) + + AC_SUBST([WARNING_CFLAGS]) + +-- +2.7.4 + diff --git a/bsp/buildroot/package/libcoap/Config.in b/bsp/buildroot/package/libcoap/Config.in new file mode 100644 index 00000000..c089b550 --- /dev/null +++ b/bsp/buildroot/package/libcoap/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_LIBCOAP + bool "libcoap" + help + libcoap is a C implementation of a lightweight application-protocol + for devices that are constrained their resources such as computing + power, RF range, memory, bandwith, or network packet sizes. This + protocol, CoAP, is standardized by the IETF as RFC 7252. For further + information related to CoAP, see . + + https://github.com/obgm/libcoap diff --git a/bsp/buildroot/package/libcoap/libcoap.hash b/bsp/buildroot/package/libcoap/libcoap.hash new file mode 100644 index 00000000..dce491b5 --- /dev/null +++ b/bsp/buildroot/package/libcoap/libcoap.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 f66e91742c2b027fcd7c575d8e7b53d79d3624aad1b3baba481dd88f6e2bc44d libcoap-c909bf802034b7762a2182848304b2530e58444f.tar.gz diff --git a/bsp/buildroot/package/libcoap/libcoap.mk b/bsp/buildroot/package/libcoap/libcoap.mk new file mode 100644 index 00000000..ef9b731b --- /dev/null +++ b/bsp/buildroot/package/libcoap/libcoap.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# libcoap +# +################################################################################ + +LIBCOAP_VERSION = c909bf802034b7762a2182848304b2530e58444f +LIBCOAP_SITE = $(call github,obgm,libcoap,$(LIBCOAP_VERSION)) +LIBCOAP_INSTALL_STAGING = YES +LIBCOAP_LICENSE = GPLv2+ or BSD-2c +LIBCOAP_LICENSE_FILES = COPYING LICENSE.GPL LICENSE.BSD +LIBCOAP_CONF_OPTS = --disable-examples +LIBCOAP_AUTORECONF = YES + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libcofi/Config.in b/bsp/buildroot/package/libcofi/Config.in index e9914d6e..df9ab71b 100644 --- a/bsp/buildroot/package/libcofi/Config.in +++ b/bsp/buildroot/package/libcofi/Config.in @@ -1,8 +1,14 @@ config BR2_PACKAGE_LIBCOFI bool "libcofi" depends on BR2_arm + # builds a shared library + depends on !BR2_STATIC_LIBS help A replacement for memcpy and memset functionality for the Raspberry Pi with the intention of gaining greater performance. https://github.com/simonjhall/copies-and-fills + +comment "libcofi needs a toolchain w/ dynamic library" + depends on BR2_arm + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/libcofi/libcofi.hash b/bsp/buildroot/package/libcofi/libcofi.hash new file mode 100644 index 00000000..1baaece4 --- /dev/null +++ b/bsp/buildroot/package/libcofi/libcofi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 72ec89c19267612b316ec9c5835c07212b8f0a377c5b4c20b6e46e69a6e4a5e5 libcofi-7313fbe12b0593034d0a1b606bf33c7cf4ababce.tar.gz diff --git a/bsp/buildroot/package/libconfuse/libconfuse.hash b/bsp/buildroot/package/libconfuse/libconfuse.hash index 3e221d2a..ec485a19 100644 --- a/bsp/buildroot/package/libconfuse/libconfuse.hash +++ b/bsp/buildroot/package/libconfuse/libconfuse.hash @@ -1,2 +1,3 @@ -# From https://github.com/martinh/libconfuse/releases/download/v2.8/confuse-2.8.tar.xz.md5 -md5 cb552c5737a72ef164733f0118971eb0 confuse-2.8.tar.xz +# From https://github.com/martinh/libconfuse/releases/download/v3.0/confuse-3.0.tar.xz.md5, sha256 locally computed. +md5 c534b51a2118ed57031dc548032304a3 confuse-3.0.tar.xz +sha256 bb75174e02aa8b44fa1a872a47beeea1f5fe715ab669694c97803eb6127cc861 confuse-3.0.tar.xz diff --git a/bsp/buildroot/package/libconfuse/libconfuse.mk b/bsp/buildroot/package/libconfuse/libconfuse.mk index 1a01896e..2908af32 100644 --- a/bsp/buildroot/package/libconfuse/libconfuse.mk +++ b/bsp/buildroot/package/libconfuse/libconfuse.mk @@ -4,14 +4,19 @@ # ################################################################################ -LIBCONFUSE_VERSION = 2.8 +LIBCONFUSE_VERSION = 3.0 LIBCONFUSE_SOURCE = confuse-$(LIBCONFUSE_VERSION).tar.xz LIBCONFUSE_SITE = https://github.com/martinh/libconfuse/releases/download/v$(LIBCONFUSE_VERSION) LIBCONFUSE_INSTALL_STAGING = YES LIBCONFUSE_CONF_OPTS = --disable-rpath LIBCONFUSE_DEPENDENCIES = host-flex +HOST_LIBCONFUSE_DEPENDENCIES = host-flex LIBCONFUSE_LICENSE = ISC LIBCONFUSE_LICENSE_FILES = LICENSE +ifeq ($(BR2_PACKAGE_GETTEXT),y) +LIBCONFUSE_DEPENDENCIES += gettext +endif + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/libcroco/libcroco.mk b/bsp/buildroot/package/libcroco/libcroco.mk index c4cb6762..39dd5279 100644 --- a/bsp/buildroot/package/libcroco/libcroco.mk +++ b/bsp/buildroot/package/libcroco/libcroco.mk @@ -10,6 +10,7 @@ LIBCROCO_SITE = http://ftp.gnome.org/pub/gnome/sources/libcroco/$(LIBCROCO_VERSI LIBCROCO_SOURCE = libcroco-$(LIBCROCO_VERSION).tar.xz LIBCROCO_INSTALL_STAGING = YES LIBCROCO_DEPENDENCIES = host-pkgconf libglib2 libxml2 +HOST_LIBCROCO_DEPENDENCIES = host-pkgconf host-libglib2 host-libxml2 LIBCROCO_CONFIG_SCRIPTS = croco-$(LIBCROCO_VERSION_MAJOR)-config # NEWS states that it's only LGPL # Source code says v2.1+ even though COPYING.LIB is v2 diff --git a/bsp/buildroot/package/libcrossguid/Config.in b/bsp/buildroot/package/libcrossguid/Config.in index 907ad2da..61ca781a 100644 --- a/bsp/buildroot/package/libcrossguid/Config.in +++ b/bsp/buildroot/package/libcrossguid/Config.in @@ -11,5 +11,5 @@ config BR2_PACKAGE_LIBCROSSGUID https://github.com/graeme-hill/crossguid comment "libcrossguid needs a toolchain w/ C++, wchar, gcc >= 4.7" - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \\ + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 diff --git a/bsp/buildroot/package/libcrossguid/libcrossguid.hash b/bsp/buildroot/package/libcrossguid/libcrossguid.hash new file mode 100644 index 00000000..a991da56 --- /dev/null +++ b/bsp/buildroot/package/libcrossguid/libcrossguid.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 022c9f02cc36e865cd8fd0111a597ff2bd91988deeb348dbe2aba64aed1abd99 libcrossguid-8f399e8bd4252be9952f3dfa8199924cc8487ca4.tar.gz diff --git a/bsp/buildroot/package/libcurl/libcurl.hash b/bsp/buildroot/package/libcurl/libcurl.hash index eef2c13b..ff0026de 100644 --- a/bsp/buildroot/package/libcurl/libcurl.hash +++ b/bsp/buildroot/package/libcurl/libcurl.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 ddc643ab9382e24bbe4747d43df189a0a6ce38fcb33df041b9cb0b3cd47ae98f curl-7.47.1.tar.bz2 +sha256 3c12c5f54ccaa1d40abc65d672107dcc75d3e1fcb38c267484334280096e5156 curl-7.50.1.tar.bz2 diff --git a/bsp/buildroot/package/libcurl/libcurl.mk b/bsp/buildroot/package/libcurl/libcurl.mk index 33a54106..4a018b87 100644 --- a/bsp/buildroot/package/libcurl/libcurl.mk +++ b/bsp/buildroot/package/libcurl/libcurl.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBCURL_VERSION = 7.47.1 +LIBCURL_VERSION = 7.50.1 LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.bz2 LIBCURL_SITE = http://curl.haxx.se/download LIBCURL_DEPENDENCIES = host-pkgconf \ @@ -40,10 +40,12 @@ else ifeq ($(BR2_PACKAGE_LIBNSS),y) LIBCURL_CONF_OPTS += --with-nss=$(STAGING_DIR)/usr LIBCURL_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) `$(PKG_CONFIG_HOST_BINARY) nspr nss --cflags`" LIBCURL_DEPENDENCIES += libnss +else ifeq ($(BR2_PACKAGE_MBEDTLS),y) +LIBCURL_CONF_OPTS += --with-mbedtls=$(STAGING_DIR)/usr +LIBCURL_DEPENDENCIES += mbedtls else -# polarssl support needs 1.3.x LIBCURL_CONF_OPTS += --without-ssl --without-gnutls \ - --without-polarssl --without-nss + --without-polarssl --without-nss --without-mbedtls endif ifeq ($(BR2_PACKAGE_C_ARES),y) diff --git a/bsp/buildroot/package/libdcadec/libdcadec.hash b/bsp/buildroot/package/libdcadec/libdcadec.hash new file mode 100644 index 00000000..dda58d10 --- /dev/null +++ b/bsp/buildroot/package/libdcadec/libdcadec.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ed9d207fde3e8d576f3af8b0d1235b3371e315175757173689104efcaebf0d44 libdcadec-v0.2.0.tar.gz diff --git a/bsp/buildroot/package/libdcadec/libdcadec.mk b/bsp/buildroot/package/libdcadec/libdcadec.mk index 2b391fcb..48e4a12f 100644 --- a/bsp/buildroot/package/libdcadec/libdcadec.mk +++ b/bsp/buildroot/package/libdcadec/libdcadec.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBDCADEC_VERSION = 2a9186e34ce557d3af1a20f5b558d1e6687708b9 +LIBDCADEC_VERSION = v0.2.0 LIBDCADEC_SITE = $(call github,foo86,dcadec,$(LIBDCADEC_VERSION)) LIBDCADEC_LICENSE = LGPLv2.1+ LIBDCADEC_LICENSE_FILES = COPYING.LGPLv2.1 diff --git a/bsp/buildroot/package/libdri2/libdri2.hash b/bsp/buildroot/package/libdri2/libdri2.hash new file mode 100644 index 00000000..03a37ad4 --- /dev/null +++ b/bsp/buildroot/package/libdri2/libdri2.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 7c427f5c3fbda3d1df1dc77129e87605f4af1f3ad2adf2653c560d1703aa4395 libdri2-4f1eef3183df2b270c3d5cbef07343ee5127a6a4.tar.gz diff --git a/bsp/buildroot/package/libdrm/0001-Add-ARM-support-into-xf86drm.h.patch b/bsp/buildroot/package/libdrm/0001-Add-ARM-support-into-xf86drm.h.patch new file mode 100644 index 00000000..3c00e9c7 --- /dev/null +++ b/bsp/buildroot/package/libdrm/0001-Add-ARM-support-into-xf86drm.h.patch @@ -0,0 +1,56 @@ +From 2e3dd0040e676530f7e735fab335ff449b9b3f4d Mon Sep 17 00:00:00 2001 +From: Lauren Post +Date: Tue, 22 Mar 2016 22:08:25 +0100 +Subject: [PATCH] Add ARM support into xf86drm.h + +This provides support for Xorg interface. Without this the vivante +samples will hang during close requiring a reboot + +[Adapted from yocto project] +Upstream-Status: Pending +Signed-off-by: Lauren Post +Signed-off-by: Evan Kotara +[Thomas: change CAS code to only be used on ARMv6/ARMv7, and not +ARMv4/ARMv5, which don't support ldrex/strex. If no CAS implementation +is provided libdrm falls back to a system call for locking/unlocking.] +Signed-off-by: Thomas Petazzoni +--- + xf86drm.h | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/xf86drm.h b/xf86drm.h +index 481d882..72341f6 100644 +--- a/xf86drm.h ++++ b/xf86drm.h +@@ -469,6 +469,28 @@ do { register unsigned int __old __asm("o0"); \ + : "cr0", "memory"); \ + } while (0) + ++# elif defined (__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \ ++ || defined (__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) \ ++ || defined (__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) \ ++ || defined (__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \ ++ || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \ ++ || defined(__ARM_ARCH_7EM__) ++ #undef DRM_DEV_MODE ++ #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ++ ++ #define DRM_CAS(lock,old,new,__ret) \ ++ do { \ ++ __asm__ __volatile__ ( \ ++ "1: ldrex %0, [%1]\n" \ ++ " teq %0, %2\n" \ ++ " ite eq\n" \ ++ " strexeq %0, %3, [%1]\n" \ ++ " movne %0, #1\n" \ ++ : "=&r" (__ret) \ ++ : "r" (lock), "r" (old), "r" (new) \ ++ : "cc","memory"); \ ++ } while (0) ++ + #endif /* architecture */ + #endif /* __GNUC__ >= 2 */ + +-- +2.6.4 + diff --git a/bsp/buildroot/package/libdrm/0001-update-arm.patch b/bsp/buildroot/package/libdrm/0001-update-arm.patch deleted file mode 100644 index 1a95a14b..00000000 --- a/bsp/buildroot/package/libdrm/0001-update-arm.patch +++ /dev/null @@ -1,37 +0,0 @@ -[Adapted from yocto project] - -Add ARM support into xf86drm.h. This provides support for Xorg interface. -Without this the vivante samples will hang during close requiring a reboot - -Upstream-Status: Pending - -Signed-off-by: Lauren Post -Signed-off-by: Evan Kotara - -diff --git a/xf86drm.h b/xf86drm.h ---- a/xf86drm.h -+++ b/xf86drm.h -@@ -461,6 +461,23 @@ do { register unsigned int __old __asm(" - : "cr0", "memory"); \ - } while (0) - -+#elif defined(__arm__) -+ #undef DRM_DEV_MODE -+ #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) -+ -+ #define DRM_CAS(lock,old,new,__ret) \ -+ do { \ -+ __asm__ __volatile__ ( \ -+ "1: ldrex %0, [%1]\n" \ -+ " teq %0, %2\n" \ -+ " ite eq\n" \ -+ " strexeq %0, %3, [%1]\n" \ -+ " movne %0, #1\n" \ -+ : "=&r" (__ret) \ -+ : "r" (lock), "r" (old), "r" (new) \ -+ : "cc","memory"); \ -+ } while (0) -+ - #endif /* architecture */ - #endif /* __GNUC__ >= 2 */ - diff --git a/bsp/buildroot/package/libdrm/0002-xf86atomic-require-CAS-support-in-libatomic_ops.patch b/bsp/buildroot/package/libdrm/0002-xf86atomic-require-CAS-support-in-libatomic_ops.patch new file mode 100644 index 00000000..ff920fb5 --- /dev/null +++ b/bsp/buildroot/package/libdrm/0002-xf86atomic-require-CAS-support-in-libatomic_ops.patch @@ -0,0 +1,32 @@ +From 7384f79f69fdb7b691cc5b0c28c301b3fe8b633e Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 26 May 2016 10:46:57 +0200 +Subject: [PATCH] xf86atomic: require CAS support in libatomic_ops + +Since AO_compare_and_swap_full() is used by libdrm, AO_REQUIRE_CAS +must be defined before including so that we are sure +that CAS support will be provided. This is necessary to make sure that +the AO_compare_and_swap_full() function will be provided on all +architectures, including the ones that don't have built-in CAS support +such as SPARCv8. + +Signed-off-by: Thomas Petazzoni +--- + xf86atomic.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/xf86atomic.h b/xf86atomic.h +index 922b37d..d7017a5 100644 +--- a/xf86atomic.h ++++ b/xf86atomic.h +@@ -58,6 +58,7 @@ typedef struct { + #endif + + #if HAVE_LIB_ATOMIC_OPS ++#define AO_REQUIRE_CAS + #include + + #define HAS_ATOMIC_OPS 1 +-- +2.7.4 + diff --git a/bsp/buildroot/package/libdrm/0002-xf86drm.c-Include-limits.h-to-fix-build-error-on-Sol.patch b/bsp/buildroot/package/libdrm/0002-xf86drm.c-Include-limits.h-to-fix-build-error-on-Sol.patch deleted file mode 100644 index 03b45245..00000000 --- a/bsp/buildroot/package/libdrm/0002-xf86drm.c-Include-limits.h-to-fix-build-error-on-Sol.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3fed80daf1dcb0b5d20e623d27228726c735e138 Mon Sep 17 00:00:00 2001 -From: Bernd Kuhls -Date: Sun, 27 Sep 2015 19:09:47 +0200 -Subject: [PATCH 1/1] xf86drm.c: Include limits.h to fix build error on Solaris - and with musl - -musl's strict implementation requires #include for PATH_MAX. - -Patch suggested by evgeny for Solaris: -https://bugs.freedesktop.org/show_bug.cgi?id=92082 - -Signed-off-by: Bernd Kuhls ---- - xf86drm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/xf86drm.c b/xf86drm.c -index a9f5c29..ec985eb 100644 ---- a/xf86drm.c -+++ b/xf86drm.c -@@ -53,6 +53,7 @@ - #include - #include - #include -+#include - #ifdef HAVE_SYS_MKDEV_H - # include /* defines major(), minor(), and makedev() on Solaris */ - #endif --- -2.5.3 - diff --git a/bsp/buildroot/package/libdrm/Config.in b/bsp/buildroot/package/libdrm/Config.in index 445a85bf..3f39e27e 100644 --- a/bsp/buildroot/package/libdrm/Config.in +++ b/bsp/buildroot/package/libdrm/Config.in @@ -1,4 +1,4 @@ -config BR2_PACKAGE_LIBDRM +menuconfig BR2_PACKAGE_LIBDRM bool "libdrm" select BR2_PACKAGE_LIBPTHREAD_STUBS depends on BR2_TOOLCHAIN_HAS_THREADS # libpthread-stubs @@ -9,33 +9,42 @@ config BR2_PACKAGE_LIBDRM if BR2_PACKAGE_LIBDRM -config BR2_PACKAGE_LIBDRM_INSTALL_TESTS - bool "Install test programs" - help - This option allows to install the libdrm test programs. +config BR2_PACKAGE_LIBDRM_HAS_ATOMIC + bool + default y if BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS || \ + BR2_TOOLCHAIN_HAS_SYNC_4 -menu "DRM Drivers" +config BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC + bool + select BR2_PACKAGE_LIBATOMIC_OPS if !BR2_TOOLCHAIN_HAS_SYNC_4 config BR2_PACKAGE_LIBDRM_INTEL bool "intel" - select BR2_PACKAGE_LIBATOMIC_OPS select BR2_PACKAGE_LIBPCIACCESS depends on BR2_i386 || BR2_x86_64 + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install intel graphics driver. config BR2_PACKAGE_LIBDRM_RADEON bool "radeon" + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install AMD/ATI graphics driver. config BR2_PACKAGE_LIBDRM_AMDGPU bool "amdgpu" + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install AMD GPU driver. config BR2_PACKAGE_LIBDRM_NOUVEAU bool "nouveau" + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install NVIDIA graphics driver. @@ -48,6 +57,8 @@ config BR2_PACKAGE_LIBDRM_VMWGFX config BR2_PACKAGE_LIBDRM_OMAP bool "omap (experimental)" depends on BR2_arm + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install the TI OMAP driver using an experimental API. @@ -60,16 +71,29 @@ config BR2_PACKAGE_LIBDRM_EXYNOS config BR2_PACKAGE_LIBDRM_FREEDRENO bool "freedreno" depends on BR2_arm || BR2_aarch64 || BR2_aarch64_be + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install Qualcomm Snapdragon driver. config BR2_PACKAGE_LIBDRM_TEGRA bool "tegra (experimental)" depends on BR2_arm + depends on BR2_PACKAGE_LIBDRM_HAS_ATOMIC + select BR2_PACKAGE_LIBDRM_ENABLE_ATOMIC help Install NVIDIA Tegra driver using an experimental API. -endmenu +config BR2_PACKAGE_LIBDRM_VC4 + bool "vc4" + depends on BR2_arm + help + Install vc4 (Raspberry Pi) driver. + +config BR2_PACKAGE_LIBDRM_INSTALL_TESTS + bool "Install test programs" + help + This option allows to install the libdrm test programs. endif diff --git a/bsp/buildroot/package/libdrm/libdrm.hash b/bsp/buildroot/package/libdrm/libdrm.hash index 948c7bf3..c2057805 100644 --- a/bsp/buildroot/package/libdrm/libdrm.hash +++ b/bsp/buildroot/package/libdrm/libdrm.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/dri-devel/2015-December/097697.html -sha256 79cb8e988749794edfb2d777b298d5292eff353bbbb71ed813589e61d2bc2d76 libdrm-2.4.66.tar.bz2 +# From https://lists.freedesktop.org/archives/dri-devel/2016-July/113899.html +sha256 b17d4b39ed97ca0e4cffa0db06ff609e617bac94646ec38e8e0579d530540e7b libdrm-2.4.70.tar.bz2 diff --git a/bsp/buildroot/package/libdrm/libdrm.mk b/bsp/buildroot/package/libdrm/libdrm.mk index 8d84beb2..d8d77449 100644 --- a/bsp/buildroot/package/libdrm/libdrm.mk +++ b/bsp/buildroot/package/libdrm/libdrm.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBDRM_VERSION = 2.4.66 +LIBDRM_VERSION = 2.4.70 LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.bz2 LIBDRM_SITE = http://dri.freedesktop.org/libdrm LIBDRM_LICENSE = MIT @@ -21,9 +21,16 @@ LIBDRM_CONF_OPTS = \ LIBDRM_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' +ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y) +LIBDRM_DEPENDENCIES += libatomic_ops +ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) +LIBDRM_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DAO_NO_SPARC_V9" +endif +endif + ifeq ($(BR2_PACKAGE_LIBDRM_INTEL),y) LIBDRM_CONF_OPTS += --enable-intel -LIBDRM_DEPENDENCIES += libatomic_ops libpciaccess +LIBDRM_DEPENDENCIES += libpciaccess else LIBDRM_CONF_OPTS += --disable-intel endif @@ -76,6 +83,12 @@ else LIBDRM_CONF_OPTS += --disable-tegra-experimental-api endif +ifeq ($(BR2_PACKAGE_LIBDRM_VC4),y) +LIBDRM_CONF_OPTS += --enable-vc4 +else +LIBDRM_CONF_OPTS += --disable-vc4 +endif + ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBDRM_CONF_OPTS += --enable-udev LIBDRM_DEPENDENCIES += udev diff --git a/bsp/buildroot/package/libdvdcss/Config.in b/bsp/buildroot/package/libdvdcss/Config.in new file mode 100644 index 00000000..a8c3b84c --- /dev/null +++ b/bsp/buildroot/package/libdvdcss/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_LIBDVDCSS + bool "libdvdcss" + help + libdvdcss is a simple library designed for accessing DVDs like + a block device without having to bother about the decryption. + + http://www.videolan.org/developers/libdvdcss.html diff --git a/bsp/buildroot/package/libdvdcss/libdvdcss.hash b/bsp/buildroot/package/libdvdcss/libdvdcss.hash new file mode 100644 index 00000000..57abd77a --- /dev/null +++ b/bsp/buildroot/package/libdvdcss/libdvdcss.hash @@ -0,0 +1,2 @@ +# From http://download.videolan.org/pub/videolan/libdvdcss/1.4.0/libdvdcss-1.4.0.tar.bz2.sha256 +sha256 2089375984800df29a4817b37f3123c1706723342d6dab4d0a8b75c25c2c845a libdvdcss-1.4.0.tar.bz2 diff --git a/bsp/buildroot/package/libdvdcss/libdvdcss.mk b/bsp/buildroot/package/libdvdcss/libdvdcss.mk new file mode 100644 index 00000000..8e1c9299 --- /dev/null +++ b/bsp/buildroot/package/libdvdcss/libdvdcss.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# libdvdcss +# +################################################################################ + +LIBDVDCSS_VERSION = 1.4.0 +LIBDVDCSS_SOURCE = libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2 +LIBDVDCSS_SITE = http://www.videolan.org/pub/videolan/libdvdcss/$(LIBDVDCSS_VERSION) +LIBDVDCSS_INSTALL_STAGING = YES +LIBDVDCSS_LICENSE = GPLv2+ +LIBDVDCSS_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libdvdnav/0001-do-not-match-nios2-as-os2.patch b/bsp/buildroot/package/libdvdnav/0001-do-not-match-nios2-as-os2.patch new file mode 100644 index 00000000..27030bb2 --- /dev/null +++ b/bsp/buildroot/package/libdvdnav/0001-do-not-match-nios2-as-os2.patch @@ -0,0 +1,16 @@ +Fix misdetection while nios2 cross-compile + +Signed-off-bye: Waldemar Brodkorb + +diff -Nur libdvdnav-5.0.3.orig/configure.ac libdvdnav-5.0.3/configure.ac +--- libdvdnav-5.0.3.orig/configure.ac 2015-01-27 16:57:43.000000000 +0100 ++++ libdvdnav-5.0.3/configure.ac 2016-07-31 11:48:09.312947473 +0200 +@@ -73,7 +73,7 @@ + [*mingw32* | *cygwin*], [AC_CHECK_FUNCS(gettimeofday)]) + + AS_CASE([$host], +- [*os2*], [LDFLAGS="$LDFLAGS -no-undefined"]) ++ [*-os2*], [LDFLAGS="$LDFLAGS -no-undefined"]) + + dnl --------------------------------------------- + dnl threads diff --git a/bsp/buildroot/package/libdvdnav/0001-fix-os2-support.patch b/bsp/buildroot/package/libdvdnav/0001-fix-os2-support.patch deleted file mode 100644 index 0f75f2fb..00000000 --- a/bsp/buildroot/package/libdvdnav/0001-fix-os2-support.patch +++ /dev/null @@ -1,32 +0,0 @@ -configure: fix build on NIOS II platform - -NIOS II is a CPU architecture from Altera, which uses 'nios2' as the -architecture part of the tuple. Unfortunately, 'nios2' matches the -current '*os2*' test done by libdvdnav's configure script to detect -the OS/2 operating system. This leads to build issues as the build -process of libdvdnav then tries to use OS/2 specific compiler -options, that do not exist in the gcc used for Linux/NIOS2. - -To fix this, this patch makes the test for OS/2 a little bit more -specific: in the case of the OS/2 operating system, the OS part of the -tuple contains just 'os2' (confirmed by looking at config.guess and -config.sub in the gnuconfig project). So using '*-os2-*' will properly -match the OS/2 operating system but not the NIOS II architecture. - -Upstream-status: not needed, newer upstream versions no longer have - this test -Signed-off-by: Thomas Petazzoni - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -166,7 +166,7 @@ - *cygwin*) - LDFLAGS="-no-undefined $LDFLAGS" - ;; -- *os2*) -+ *-os2-*) - LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" - ;; - *) diff --git a/bsp/buildroot/package/libdvdnav/Config.in b/bsp/buildroot/package/libdvdnav/Config.in index fb13bc02..8cfcb4a6 100644 --- a/bsp/buildroot/package/libdvdnav/Config.in +++ b/bsp/buildroot/package/libdvdnav/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_LIBDVDNAV bool "libdvdnav" depends on BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_STATIC_LIBS # libdvdread select BR2_PACKAGE_LIBDVDREAD help libdvdnav is a library that allows easy use of sophisticated @@ -10,5 +9,5 @@ config BR2_PACKAGE_LIBDVDNAV http://www.mplayerhq.hu -comment "libdvdnav needs a toolchain w/ dynamic library, threads" - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS +comment "libdvdnav needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/libdvdnav/libdvdnav.hash b/bsp/buildroot/package/libdvdnav/libdvdnav.hash index 4a0d851b..d3b6fdb8 100644 --- a/bsp/buildroot/package/libdvdnav/libdvdnav.hash +++ b/bsp/buildroot/package/libdvdnav/libdvdnav.hash @@ -1,2 +1,2 @@ -# Locally calculated -sha256 7fca272ecc3241b6de41bbbf7ac9a303ba25cb9e0c82aa23901d3104887f2372 libdvdnav-4.2.1.tar.xz +# From http://download.videolan.org/pub/videolan/libdvdnav/5.0.3/libdvdnav-5.0.3.tar.bz2.sha256 +sha256 5097023e3d2b36944c763f1df707ee06b19dc639b2b68fb30113a5f2cbf60b6d libdvdnav-5.0.3.tar.bz2 diff --git a/bsp/buildroot/package/libdvdnav/libdvdnav.mk b/bsp/buildroot/package/libdvdnav/libdvdnav.mk index 2ff2ce91..b53f0c82 100644 --- a/bsp/buildroot/package/libdvdnav/libdvdnav.mk +++ b/bsp/buildroot/package/libdvdnav/libdvdnav.mk @@ -4,19 +4,14 @@ # ################################################################################ -LIBDVDNAV_VERSION = 4.2.1 -LIBDVDNAV_SOURCE = libdvdnav-$(LIBDVDNAV_VERSION).tar.xz -LIBDVDNAV_SITE = http://dvdnav.mplayerhq.hu/releases -# configure not shipped -LIBDVDNAV_AUTORECONF = YES +LIBDVDNAV_VERSION = 5.0.3 +LIBDVDNAV_SOURCE = libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2 +LIBDVDNAV_SITE = http://www.videolan.org/pub/videolan/libdvdnav/$(LIBDVDNAV_VERSION) LIBDVDNAV_INSTALL_STAGING = YES -LIBDVDNAV_CONFIG_SCRIPTS = dvdnav-config LIBDVDNAV_DEPENDENCIES = libdvdread host-pkgconf LIBDVDNAV_LICENSE = GPLv2+ LIBDVDNAV_LICENSE_FILES = COPYING - -# By default libdvdnav tries to find dvdread-config in $PATH. Because -# of cross compilation, we prefer using pkg-config. -LIBDVDNAV_CONF_OPTS = --with-dvdread-config="$(PKG_CONFIG_HOST_BINARY) dvdread" +# 0001-do-not-match-nios2-as-os2.patch +LIBDVDNAV_AUTORECONF = YES $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libdvdread/0001-fix-os2-support.patch b/bsp/buildroot/package/libdvdread/0001-fix-os2-support.patch deleted file mode 100644 index 755bfaf3..00000000 --- a/bsp/buildroot/package/libdvdread/0001-fix-os2-support.patch +++ /dev/null @@ -1,31 +0,0 @@ -configure: fix build on NIOS II platform - -NIOS II is a CPU architecture from Altera, which uses 'nios2' as the -architecture part of the tuple. Unfortunately, 'nios2' matches the -current '*os2*' test done by libdvdread's configure script to detect -the OS/2 operating system. This leads to build issues as the build -process of libdvdread then tries to use OS/2 specific compiler -options, that do not exist in the gcc used for Linux/NIOS2. - -To fix this, this patch makes the test for OS/2 a little bit more -specific: in the case of the OS/2 operating system, the OS part of the -tuple contains just 'os2' (confirmed by looking at config.guess and -config.sub in the gnuconfig project). So using '*-os2-*' will properly -match the OS/2 operating system but not the NIOS II architecture. - -Upstream-status: submitted -Signed-off-by: Thomas Petazzoni - -Index: b/configure.ac -=================================================================== ---- a/configure.ac -+++ b/configure.ac -@@ -146,7 +146,7 @@ - *cygwin*) - LDFLAGS="-no-undefined $LDFLAGS" - ;; -- *os2*) -+ *-os2-*) - LDFLAGS="-no-undefined -Zbin-files $LDFLAGS" - ;; - *) diff --git a/bsp/buildroot/package/libdvdread/Config.in b/bsp/buildroot/package/libdvdread/Config.in index 1326709f..91bec83a 100644 --- a/bsp/buildroot/package/libdvdread/Config.in +++ b/bsp/buildroot/package/libdvdread/Config.in @@ -1,11 +1,8 @@ config BR2_PACKAGE_LIBDVDREAD bool "libdvdread" - depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_LIBDVDCSS help libdvdread provides a simple foundation for reading DVD-Video images. http://www.mplayerhq.hu/MPlayer/releases/dvdnav/ - -comment "libdvdread needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/libdvdread/libdvdread.hash b/bsp/buildroot/package/libdvdread/libdvdread.hash index 11cc1cea..bef93fc0 100644 --- a/bsp/buildroot/package/libdvdread/libdvdread.hash +++ b/bsp/buildroot/package/libdvdread/libdvdread.hash @@ -1,2 +1,2 @@ -# Locally calculated -sha256 af9b98f049580a6521d56c978b736d3d609562dd12955e11d50e26d97542dcd4 libdvdread-4.2.1.tar.xz +# From http://download.videolan.org/pub/videolan/libdvdread/5.0.0/libdvdread-5.0.3.tar.bz2.sha256 +sha256 321cdf2dbdc83c96572bc583cd27d8c660ddb540ff16672ecb28607d018ed82b libdvdread-5.0.3.tar.bz2 diff --git a/bsp/buildroot/package/libdvdread/libdvdread.mk b/bsp/buildroot/package/libdvdread/libdvdread.mk index 66584609..adf79d85 100644 --- a/bsp/buildroot/package/libdvdread/libdvdread.mk +++ b/bsp/buildroot/package/libdvdread/libdvdread.mk @@ -4,14 +4,13 @@ # ################################################################################ -LIBDVDREAD_VERSION = 4.2.1 -LIBDVDREAD_SOURCE = libdvdread-$(LIBDVDREAD_VERSION).tar.xz -LIBDVDREAD_SITE = http://dvdnav.mplayerhq.hu/releases -# configure not shipped -LIBDVDREAD_AUTORECONF = YES +LIBDVDREAD_VERSION = 5.0.3 +LIBDVDREAD_SOURCE = libdvdread-$(LIBDVDREAD_VERSION).tar.bz2 +LIBDVDREAD_SITE = http://www.videolan.org/pub/videolan/libdvdread/$(LIBDVDREAD_VERSION) LIBDVDREAD_INSTALL_STAGING = YES -LIBDVDREAD_CONFIG_SCRIPTS = dvdread-config LIBDVDREAD_LICENSE = GPLv2+ LIBDVDREAD_LICENSE_FILES = COPYING +LIBDVDREAD_CONF_OPTS = --with-libdvdcss +LIBDVDREAD_DEPENDENCIES = libdvdcss host-pkgconf $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libeXosip2/0002-use-pkg-config-to-detect-openssl.patch b/bsp/buildroot/package/libeXosip2/0001-use-pkg-config-to-detect-openssl.patch similarity index 100% rename from bsp/buildroot/package/libeXosip2/0002-use-pkg-config-to-detect-openssl.patch rename to bsp/buildroot/package/libeXosip2/0001-use-pkg-config-to-detect-openssl.patch diff --git a/bsp/buildroot/package/libeXosip2/libeXosip2.hash b/bsp/buildroot/package/libeXosip2/libeXosip2.hash new file mode 100644 index 00000000..1f16994b --- /dev/null +++ b/bsp/buildroot/package/libeXosip2/libeXosip2.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 91da1a084c9ab663afe04b493342e075ad59ac54a1af011c7f2ba4543a923564 libeXosip2-3.6.0.tar.gz diff --git a/bsp/buildroot/package/libebml/libebml.hash b/bsp/buildroot/package/libebml/libebml.hash index d5a8cb87..5abc1ebf 100644 --- a/bsp/buildroot/package/libebml/libebml.hash +++ b/bsp/buildroot/package/libebml/libebml.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 195894b31aaca55657c9bc157d744f23b0c25597606b97cfa5a9039c4b684295 libebml-1.3.1.tar.bz2 +sha256 35fb44daa41961f94a0ac1b8f06801e88cc9bf2ad6f562ced8ab7c1f1a875499 libebml-1.3.3.tar.bz2 diff --git a/bsp/buildroot/package/libebml/libebml.mk b/bsp/buildroot/package/libebml/libebml.mk index 4613c6ef..36c8a5c7 100644 --- a/bsp/buildroot/package/libebml/libebml.mk +++ b/bsp/buildroot/package/libebml/libebml.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBEBML_VERSION = 1.3.1 +LIBEBML_VERSION = 1.3.3 LIBEBML_SOURCE = libebml-$(LIBEBML_VERSION).tar.bz2 LIBEBML_SITE = http://dl.matroska.org/downloads/libebml LIBEBML_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libebur128/Config.in b/bsp/buildroot/package/libebur128/Config.in new file mode 100644 index 00000000..1a6a7436 --- /dev/null +++ b/bsp/buildroot/package/libebur128/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_LIBEBUR128 + bool "libebur128" + # build system has no support to disable shared linking + # leading to a build error with a static-only toolchain + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_SPEEX + help + libebur128 is a library that implements the EBU R 128 standard + for loudness normalization. + + https://github.com/jiixyj/libebur128 + +comment "libebur128 needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/libebur128/libebur128.mk b/bsp/buildroot/package/libebur128/libebur128.mk new file mode 100644 index 00000000..f5ada311 --- /dev/null +++ b/bsp/buildroot/package/libebur128/libebur128.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# libebur128 +# +################################################################################ + +LIBEBUR128_VERSION = v1.1.0 +LIBEBUR128_SITE = $(call github,jiixyj,libebur128,$(LIBEBUR128_VERSION)) +LIBEBUR128_LICENSE = MIT +LIBEBUR128_LICENSE_FILES = COPYING +LIBEBUR128_INSTALL_STAGING = YES +LIBEBUR128_DEPENDENCIES = speex + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/libenca/libenca.hash b/bsp/buildroot/package/libenca/libenca.hash new file mode 100644 index 00000000..e6d6b35d --- /dev/null +++ b/bsp/buildroot/package/libenca/libenca.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 14457b185c77b947ca2f8e09a2c3ec66940d97a2ccea28b8e61a6e0f3a0033f6 libenca-1.16.tar.gz diff --git a/bsp/buildroot/package/libepoxy/0001-select-platforms-based-on-configuration-results.patch b/bsp/buildroot/package/libepoxy/0001-select-platforms-based-on-configuration-results.patch new file mode 100644 index 00000000..e3a7b499 --- /dev/null +++ b/bsp/buildroot/package/libepoxy/0001-select-platforms-based-on-configuration-results.patch @@ -0,0 +1,125 @@ +From 7eff2bf8e27599c1c94217b2bb1b73d4b7d18e59 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 6 May 2015 10:45:22 +0200 +Subject: [PATCH 1/4] select platforms based on configuration results +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller +Fetched from pull #81 on github for libepoxy: +https://github.com/anholt/libepoxy/pull/81/commits +Signed-off-by: Gustavo Zacarias +--- + configure.ac | 13 +++++-------- + src/dispatch_common.c | 9 ++++++--- + src/dispatch_common.h | 9 +++++---- + 3 files changed, 16 insertions(+), 15 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2d67726..225ab73 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,6 +58,10 @@ AC_CHECK_HEADER([KHR/khrplatform.h], + # uintptr_t to a void *") by default. Kill that. + XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) + ++PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) ++ ++AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) ++ + has_znow=yes + + case $host_os in +@@ -86,7 +90,7 @@ case $host_os in + ;; + *) + build_egl=yes +- build_glx=yes ++ build_glx=$x11 + build_wgl=no + # On platforms with dlopen, we load everything dynamically and + # don't link against a specific window system or GL implementation. +@@ -144,13 +148,6 @@ esac + + AC_SUBST([VISIBILITY_CFLAGS]) + +-PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) +-if test x$x11 = xno -a x$build_glx = xyes; then +- AC_MSG_ERROR([libX11 headers (libx11-dev) required to build with GLX support]) +-fi +- +-AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) +- + PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no]) + + AC_CONFIG_FILES([ +diff --git a/src/dispatch_common.c b/src/dispatch_common.c +index 013027f..163d348 100644 +--- a/src/dispatch_common.c ++++ b/src/dispatch_common.c +@@ -656,10 +656,13 @@ epoxy_get_proc_address(const char *name) + #elif defined(__APPLE__) + return epoxy_gl_dlsym(name); + #else ++#if PLATFORM_HAS_GLX + if (epoxy_current_context_is_glx()) { + return glXGetProcAddressARB((const GLubyte *)name); +- } else { ++ } else ++#endif /* PLATFORM_HAS_GLX */ + #if PLATFORM_HAS_EGL ++ { + GLenum egl_api = epoxy_egl_get_current_gl_context_api(); + + switch (egl_api) { +@@ -669,10 +672,10 @@ epoxy_get_proc_address(const char *name) + case EGL_NONE: + break; + } +-#endif + } ++#endif /* PLATFORM_HAS_EGL */ + errx(1, "Couldn't find current GLX or EGL context.\n"); +-#endif ++#endif /* _WIN32 | __APPLE__*/ + } + + WRAPPER_VISIBILITY (void) +diff --git a/src/dispatch_common.h b/src/dispatch_common.h +index 676a4d5..2728b45 100644 +--- a/src/dispatch_common.h ++++ b/src/dispatch_common.h +@@ -21,12 +21,13 @@ + * IN THE SOFTWARE. + */ + ++#include + #include + + #ifdef _WIN32 + #define PLATFORM_HAS_EGL 0 + #define PLATFORM_HAS_GLX 0 +-#define PLATFORM_HAS_WGL 1 ++#define PLATFORM_HAS_WGL BUILD_WGL + #define EPOXY_IMPORTEXPORT __declspec(dllexport) + #elif defined(__APPLE__) + #define PLATFORM_HAS_EGL 0 +@@ -34,13 +35,13 @@ + #define PLATFORM_HAS_WGL 0 + #define EPOXY_IMPORTEXPORT + #elif defined(ANDROID) +-#define PLATFORM_HAS_EGL 1 ++#define PLATFORM_HAS_EGL BUILD_EGL + #define PLATFORM_HAS_GLX 0 + #define PLATFORM_HAS_WGL 0 + #define EPOXY_IMPORTEXPORT + #else +-#define PLATFORM_HAS_EGL 1 +-#define PLATFORM_HAS_GLX 1 ++#define PLATFORM_HAS_EGL BUILD_EGL ++#define PLATFORM_HAS_GLX BUILD_GLX + #define PLATFORM_HAS_WGL 0 + #define EPOXY_IMPORTEXPORT + #endif + diff --git a/bsp/buildroot/package/libepoxy/0002-add-an-option-to-disable-glx-support.patch b/bsp/buildroot/package/libepoxy/0002-add-an-option-to-disable-glx-support.patch new file mode 100644 index 00000000..a81547de --- /dev/null +++ b/bsp/buildroot/package/libepoxy/0002-add-an-option-to-disable-glx-support.patch @@ -0,0 +1,39 @@ +From a9efde0fb2678cd26bdf26d256732d97ded0c595 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 6 May 2015 11:05:48 +0200 +Subject: [PATCH 2/4] add an option to disable glx support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +this option would help us in yocto to get deterministic build results + +Signed-off-by: Andreas Müller +Fetched from pull #81 on github for libepoxy: +https://github.com/anholt/libepoxy/pull/81/commits +Signed-off-by: Gustavo Zacarias +--- + configure.ac | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 225ab73..d3d947c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,7 +58,14 @@ AC_CHECK_HEADER([KHR/khrplatform.h], + # uintptr_t to a void *") by default. Kill that. + XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) + +-PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) ++AC_ARG_ENABLE([glx], ++ [AS_HELP_STRING([--disable-glx], ++ [disable if you don't want x11/glx support])], ++ [], ++ [enable_glx=yes] ++ ) ++ ++PKG_CHECK_MODULES(X11, [x11], [x11=$enable_glx], [x11=no]) + + AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) + + diff --git a/bsp/buildroot/package/libepoxy/0003-make-enable-glx-actually-work-on-osx-and-windows.patch b/bsp/buildroot/package/libepoxy/0003-make-enable-glx-actually-work-on-osx-and-windows.patch new file mode 100644 index 00000000..5b0d4fec --- /dev/null +++ b/bsp/buildroot/package/libepoxy/0003-make-enable-glx-actually-work-on-osx-and-windows.patch @@ -0,0 +1,67 @@ +From 902ea1eb073187603ec2eda4d2a146bef96592d4 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Mon, 18 Jan 2016 10:08:44 -0800 +Subject: [PATCH 3/4] Make --enable-glx actually work on OSX and Windows + +Followup for anholt/libepoxy#52 + +Signed-off-by: Jeremy Huddleston Sequoia +Fetched from pull #81 on github for libepoxy: +https://github.com/anholt/libepoxy/pull/81/commits +Signed-off-by: Gustavo Zacarias +--- + configure.ac | 6 +++--- + src/dispatch_common.h | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d3d947c..b4c7ede 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -61,7 +61,7 @@ XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) + AC_ARG_ENABLE([glx], + [AS_HELP_STRING([--disable-glx], + [disable if you don't want x11/glx support])], +- [], ++ [enable_glx=$enableval], + [enable_glx=yes] + ) + +@@ -74,7 +74,7 @@ has_znow=yes + case $host_os in + mingw*) + build_egl=no +- build_glx=no ++ build_glx=$x11 + build_wgl=yes + # On windows, the DLL has to have all of its functions + # resolved at link time, so we have to link directly aginst +@@ -89,7 +89,7 @@ case $host_os in + ;; + darwin*) + build_egl=no +- build_glx=no ++ build_glx=$x11 + build_wgl=no + build_apple=yes + has_znow=no +diff --git a/src/dispatch_common.h b/src/dispatch_common.h +index 2728b45..c30ce44 100644 +--- a/src/dispatch_common.h ++++ b/src/dispatch_common.h +@@ -26,12 +26,12 @@ + + #ifdef _WIN32 + #define PLATFORM_HAS_EGL 0 +-#define PLATFORM_HAS_GLX 0 ++#define PLATFORM_HAS_GLX BUILD_GLX + #define PLATFORM_HAS_WGL BUILD_WGL + #define EPOXY_IMPORTEXPORT __declspec(dllexport) + #elif defined(__APPLE__) + #define PLATFORM_HAS_EGL 0 +-#define PLATFORM_HAS_GLX 0 ++#define PLATFORM_HAS_GLX BUILD_GLX + #define PLATFORM_HAS_WGL 0 + #define EPOXY_IMPORTEXPORT + #elif defined(ANDROID) + diff --git a/bsp/buildroot/package/libepoxy/0004-darwin-use-glx-instead-of-opengl-framework.patch b/bsp/buildroot/package/libepoxy/0004-darwin-use-glx-instead-of-opengl-framework.patch new file mode 100644 index 00000000..be9b009f --- /dev/null +++ b/bsp/buildroot/package/libepoxy/0004-darwin-use-glx-instead-of-opengl-framework.patch @@ -0,0 +1,95 @@ +From d010922282580a32dfebcda12ee1c307b3ef6005 Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Mon, 18 Jan 2016 09:49:55 -0800 +Subject: [PATCH 4/4] darwin: Use GLX instead of OpenGL.framework if it is the + current context + +Also makes a stab at similar support for Win32 + +anholt/libepoxy#63 + +Signed-off-by: Jeremy Huddleston Sequoia +Fetched from pull #81 on github for libepoxy: +https://github.com/anholt/libepoxy/pull/81/commits +Signed-off-by: Gustavo Zacarias +--- + src/dispatch_common.c | 29 ++++++++++++++++------------- + 1 file changed, 16 insertions(+), 13 deletions(-) + +diff --git a/src/dispatch_common.c b/src/dispatch_common.c +index 163d348..cb9f76a 100644 +--- a/src/dispatch_common.c ++++ b/src/dispatch_common.c +@@ -482,16 +482,20 @@ epoxy_glx_dlsym(const char *name) + void * + epoxy_gl_dlsym(const char *name) + { +-#ifdef _WIN32 ++#if defined(_WIN32) || defined(__APPLE__) ++if (!epoxy_current_context_is_glx()) { ++# if defined(_WIN32) + return do_dlsym(&api.gl_handle, "OPENGL32", name, true); +-#elif defined(__APPLE__) ++# elif defined(__APPLE__) + return do_dlsym(&api.gl_handle, + "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", + name, true); +-#else ++# endif ++} ++#endif ++ + /* There's no library for desktop GL support independent of GLX. */ + return epoxy_glx_dlsym(name); +-#endif + } + + void * +@@ -615,7 +619,7 @@ epoxy_get_bootstrap_proc_address(const char *name) + */ + #if PLATFORM_HAS_GLX + if (api.glx_handle && glXGetCurrentContext()) +- return epoxy_gl_dlsym(name); ++ return epoxy_glx_dlsym(name); + #endif + + /* If epoxy hasn't loaded any API-specific library yet, try to +@@ -644,22 +648,17 @@ epoxy_get_bootstrap_proc_address(const char *name) + } + #endif /* PLATFORM_HAS_EGL */ + +- /* Fall back to GLX */ ++ /* Fall back to the platform default */ + return epoxy_gl_dlsym(name); + } + + void * + epoxy_get_proc_address(const char *name) + { +-#ifdef _WIN32 +- return wglGetProcAddress(name); +-#elif defined(__APPLE__) +- return epoxy_gl_dlsym(name); +-#else + #if PLATFORM_HAS_GLX + if (epoxy_current_context_is_glx()) { + return glXGetProcAddressARB((const GLubyte *)name); +- } else ++ } + #endif /* PLATFORM_HAS_GLX */ + #if PLATFORM_HAS_EGL + { +@@ -674,8 +673,12 @@ epoxy_get_proc_address(const char *name) + } + } + #endif /* PLATFORM_HAS_EGL */ ++#if defined(_WIN32) ++ return wglGetProcAddress(name); ++#elif defined(__APPLE__) ++ return epoxy_gl_dlsym(name); ++#endif + errx(1, "Couldn't find current GLX or EGL context.\n"); +-#endif /* _WIN32 | __APPLE__*/ + } + + WRAPPER_VISIBILITY (void) diff --git a/bsp/buildroot/package/libepoxy/0005-Forward-egl-cflags-into-epoxy.pc.patch b/bsp/buildroot/package/libepoxy/0005-Forward-egl-cflags-into-epoxy.pc.patch new file mode 100644 index 00000000..d13f01de --- /dev/null +++ b/bsp/buildroot/package/libepoxy/0005-Forward-egl-cflags-into-epoxy.pc.patch @@ -0,0 +1,45 @@ +From 68e5f1574758240aedfe8653d7aaae62cdb08bf5 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Sun, 20 Dec 2015 10:07:06 -0300 +Subject: [PATCH] Forward egl cflags into epoxy.pc + +When building mesa egl without x11 and gles2 the headers need a +MESA_EGL_NO_X11_HEADERS define, so put them in epoxy.pc as well since +otherwise builds will fail. + +Signed-off-by: Gustavo Zacarias +--- +Status: pull request https://github.com/anholt/libepoxy/pull/80 + + configure.ac | 2 ++ + epoxy.pc.in | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c7cffb2..7b599de 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -102,6 +102,8 @@ if test x$build_egl = xyes; then + AC_DEFINE([BUILD_EGL], [1], [build EGL tests]) + fi + ++AC_SUBST(EGL_CFLAGS) ++ + PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no]) + if test x$gl = xno; then + build_glx=no +diff --git a/epoxy.pc.in b/epoxy.pc.in +index 8c85a33..f377da5 100644 +--- a/epoxy.pc.in ++++ b/epoxy.pc.in +@@ -6,6 +6,6 @@ includedir=@includedir@ + Name: epoxy + Description: epoxy GL dispatch Library + Version: @PACKAGE_VERSION@ +-Cflags: -I${includedir} ++Cflags: -I${includedir} @EGL_CFLAGS@ + Libs: -L${libdir} -lepoxy + Libs.private: @DLOPEN_LIBS@ +-- +2.4.10 + diff --git a/bsp/buildroot/package/libepoxy/0006-Make-egl-conditional.patch b/bsp/buildroot/package/libepoxy/0006-Make-egl-conditional.patch new file mode 100644 index 00000000..752e8e4f --- /dev/null +++ b/bsp/buildroot/package/libepoxy/0006-Make-egl-conditional.patch @@ -0,0 +1,59 @@ +From 5492e81f317e48141b0687ad77252c52c2dfcd6d Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Fri, 5 Feb 2016 19:03:39 -0300 +Subject: [PATCH] Make egl conditional + +Mesa can be built with GLX and without EGL support, so make this +possible in epoxy as well. + +Signed-off-by: Gustavo Zacarias +--- + configure.ac | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6e56599..21e3a25 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,6 +58,13 @@ AC_CHECK_HEADER([KHR/khrplatform.h], + # uintptr_t to a void *") by default. Kill that. + XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) + ++AC_ARG_ENABLE([egl], ++ [AS_HELP_STRING([--disable-egl], ++ [disable if you don't want egl support])], ++ [enable_egl=$enableval], ++ [enable_egl=yes] ++ ) ++ + AC_ARG_ENABLE([glx], + [AS_HELP_STRING([--disable-glx], + [disable if you don't want x11/glx support])], +@@ -65,6 +72,7 @@ AC_ARG_ENABLE([glx], + [enable_glx=yes] + ) + ++PKG_CHECK_MODULES(EGL, [egl], [egl=$enable_egl], [egl=no]) + PKG_CHECK_MODULES(X11, [x11], [x11=$enable_glx], [x11=no]) + + AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) +@@ -96,7 +104,7 @@ case $host_os in + EPOXY_LINK_LIBS="" + ;; + *) +- build_egl=yes ++ build_egl=$egl + build_glx=$x11 + build_wgl=no + # On platforms with dlopen, we load everything dynamically and +@@ -109,7 +117,6 @@ AC_SUBST(EPOXY_LINK_LIBS) + + AM_CONDITIONAL(BUILD_EGL, test x$build_egl = xyes) + if test x$build_egl = xyes; then +- PKG_CHECK_MODULES(EGL, [egl]) + AC_DEFINE([BUILD_EGL], [1], [build EGL tests]) + fi + +-- +2.4.10 + diff --git a/bsp/buildroot/package/libepoxy/Config.in b/bsp/buildroot/package/libepoxy/Config.in new file mode 100644 index 00000000..c87366af --- /dev/null +++ b/bsp/buildroot/package/libepoxy/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBEPOXY + bool "libepoxy" + select BR2_PACKAGE_XUTIL_UTIL_MACROS + depends on BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL + help + Epoxy is a library for handling OpenGL function pointer + management for you. + + https://github.com/anholt/libepoxy + +comment "libepoxy needs an OpenGL and/or OpenGL EGL backend" + depends on !BR2_PACKAGE_HAS_LIBEGL && !BR2_PACKAGE_HAS_LIBGL diff --git a/bsp/buildroot/package/libepoxy/libepoxy.hash b/bsp/buildroot/package/libepoxy/libepoxy.hash new file mode 100644 index 00000000..cb35cd40 --- /dev/null +++ b/bsp/buildroot/package/libepoxy/libepoxy.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 6700ddedffb827b42c72cce1e0be6fba67b678b19bf256e1b5efd3ea38cc2bb4 libepoxy-v1.3.1.tar.gz diff --git a/bsp/buildroot/package/x11r7/libepoxy/libepoxy.mk b/bsp/buildroot/package/libepoxy/libepoxy.mk similarity index 50% rename from bsp/buildroot/package/x11r7/libepoxy/libepoxy.mk rename to bsp/buildroot/package/libepoxy/libepoxy.mk index 12ddd030..7436e8fe 100644 --- a/bsp/buildroot/package/x11r7/libepoxy/libepoxy.mk +++ b/bsp/buildroot/package/libepoxy/libepoxy.mk @@ -7,10 +7,24 @@ LIBEPOXY_VERSION = v1.3.1 LIBEPOXY_SITE = $(call github,anholt,libepoxy,$(LIBEPOXY_VERSION)) LIBEPOXY_INSTALL_STAGING = YES +# For patches 0001-0006: LIBEPOXY_AUTORECONF = YES -LIBEPOXY_DEPENDENCIES = xlib_libX11 xutil_util-macros libegl \ - $(if $(BR2_PACKAGE_HAS_LIBGL),libgl) host-pkgconf +LIBEPOXY_DEPENDENCIES = xutil_util-macros LIBEPOXY_LICENSE = MIT LIBEPOXY_LICENSE_FILES = COPYING +ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y) +LIBEPOXY_CONF_OPTS += --enable-egl +LIBEPOXY_DEPENDENCIES += libegl +else +LIBEPOXY_CONF_OPTS += --disable-egl +endif + +ifeq ($(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_XLIB_LIBX11),yy) +LIBEPOXY_CONF_OPTS += --enable-glx +LIBEPOXY_DEPENDENCIES += libgl xlib_libX11 +else +LIBEPOXY_CONF_OPTS += --disable-glx +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.hash b/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.hash index 32723ba9..ee2ae9bb 100644 --- a/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.hash +++ b/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.hash @@ -1,2 +1,2 @@ -# From https://download.enlightenment.org/rel/libs/evas_generic_loaders/evas_generic_loaders-1.15.0.tar.xz.sha256 -sha256 1e539e4d4d4e1590345caeb7fdd84f47ec7cd63bb76b6b7107a87420a401fd7f evas_generic_loaders-1.15.0.tar.xz +# From https://download.enlightenment.org/rel/libs/evas_generic_loaders/evas_generic_loaders-1.17.0.tar.xz.sha256 +sha256 c2f5193a9326532d3ab3ff76f547b9d17b33ae7221ce4d6e0aefb905ba0dd87a evas_generic_loaders-1.17.0.tar.xz diff --git a/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.mk b/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.mk index ff8ea372..abc436b9 100644 --- a/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.mk +++ b/bsp/buildroot/package/libevas-generic-loaders/libevas-generic-loaders.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBEVAS_GENERIC_LOADERS_VERSION = 1.15.0 +LIBEVAS_GENERIC_LOADERS_VERSION = 1.17.0 LIBEVAS_GENERIC_LOADERS_SOURCE = evas_generic_loaders-$(LIBEVAS_GENERIC_LOADERS_VERSION).tar.xz LIBEVAS_GENERIC_LOADERS_SITE = http://download.enlightenment.org/rel/libs/evas_generic_loaders LIBEVAS_GENERIC_LOADERS_LICENSE = GPLv2 diff --git a/bsp/buildroot/package/libevdev/libevdev.hash b/bsp/buildroot/package/libevdev/libevdev.hash index 20ca4fbe..a2074f87 100644 --- a/bsp/buildroot/package/libevdev/libevdev.hash +++ b/bsp/buildroot/package/libevdev/libevdev.hash @@ -1,2 +1,2 @@ -# Hash from http://lists.freedesktop.org/archives/input-tools/2016-January/001240.html -sha256 7b2ae1a0c7f9f7a96198ddc8fd167f090f233d6cbd8168b847e4f968445132d3 libevdev-1.4.6.tar.xz +# Hash from https://lists.freedesktop.org/archives/input-tools/2016-June/001307.html +sha256 5ee2163656a61f5703cb5c08a05c9471ffb7b640bfbe2c55194ea50d908f629b libevdev-1.5.2.tar.xz diff --git a/bsp/buildroot/package/libevdev/libevdev.mk b/bsp/buildroot/package/libevdev/libevdev.mk index 5513191a..3f2bbd4f 100644 --- a/bsp/buildroot/package/libevdev/libevdev.mk +++ b/bsp/buildroot/package/libevdev/libevdev.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBEVDEV_VERSION = 1.4.6 +LIBEVDEV_VERSION = 1.5.2 LIBEVDEV_SITE = http://www.freedesktop.org/software/libevdev LIBEVDEV_SOURCE = libevdev-$(LIBEVDEV_VERSION).tar.xz LIBEVDEV_LICENSE = X11 diff --git a/bsp/buildroot/package/libfastjson/0001-fix-missing-config.h.patch b/bsp/buildroot/package/libfastjson/0001-fix-missing-config.h.patch new file mode 100644 index 00000000..8663e23d --- /dev/null +++ b/bsp/buildroot/package/libfastjson/0001-fix-missing-config.h.patch @@ -0,0 +1,29 @@ +From 3e017fe8da1e821d4fcd801c75467c8ec2a81eb4 Mon Sep 17 00:00:00 2001 +From: Rainer Gerhards +Date: Tue, 19 Apr 2016 08:21:50 +0200 +Subject: [PATCH] fix missing config.h + +[yann.morin.1998@free.fr: backport from upstream] +Signed-off-by: "Yann E. MORIN" + +--- + json_object_iterator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/json_object_iterator.c b/json_object_iterator.c +index 6ab3a85..fb51f6e 100644 +--- a/json_object_iterator.c ++++ b/json_object_iterator.c +@@ -17,8 +17,8 @@ + ******************************************************************************* + */ + ++#include "config.h" + #include +- + #include "json.h" + #include "json_object_private.h" + #include "json_object_iterator.h" +-- +2.7.4 + diff --git a/bsp/buildroot/package/libfastjson/0002-m4-fix-detection-of-atomics.patch b/bsp/buildroot/package/libfastjson/0002-m4-fix-detection-of-atomics.patch new file mode 100644 index 00000000..1fdbf192 --- /dev/null +++ b/bsp/buildroot/package/libfastjson/0002-m4-fix-detection-of-atomics.patch @@ -0,0 +1,86 @@ +From df087711cf7be55268a55e7820f4d928cb34c078 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Sat, 9 Jul 2016 20:44:36 +0200 +Subject: [PATCH] m4: fix detection of atomics + +In cross-compilation, it is impossible to run code at configure time to +detect the target specifics. + +As such, AC_TRY_RUN fails miserably to detect reliably that atomic +intrisics are present in a toolchain, and decides they are not just +because this is cross-compilation. + +Instead of AC_TRY_RUN, use AC_LINK_IFELSE that does not need to actually +run code, since all we're interested in is whether the intrisics are +present (or not). Fix both the 32- and 64-bit variants, even if the +latter is not used currently. + +Fixes build failures detected by the Buildroot autobuilders, like: + http://autobuild.buildroot.org/results/23a/23ac0e742ed3a70ae4d038f8c9eadc23e708f671/build-end.log + http://autobuild.buildroot.org/results/192/1923d0b570adba494f83747a9610ea6ec35f5223/build-end.log + +and many other cases, espcially on architectures where such intrisics are +present, but where the toolchain does not have threads (and anyway, it +is much more efficient to use the intrisics rather than use mutexes). + +Signed-off-by: "Yann E. MORIN" +--- +Patch sent upstream: + https://github.com/rsyslog/libfastjson/pull/109 + +--- + m4/atomic_operations.m4 | 6 ++---- + m4/atomic_operations_64bit.m4 | 6 ++---- + 2 files changed, 4 insertions(+), 8 deletions(-) + +diff --git a/m4/atomic_operations.m4 b/m4/atomic_operations.m4 +index ad0ee60..7d2bca6 100644 +--- a/m4/atomic_operations.m4 ++++ b/m4/atomic_operations.m4 +@@ -9,9 +9,7 @@ + # + AC_DEFUN([RS_ATOMIC_OPERATIONS], + [AC_CACHE_CHECK([whether the compiler provides atomic builtins], [ap_cv_atomic_builtins], +-[AC_TRY_RUN([ +-int main() +-{ ++[AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[ + unsigned long val = 1010, tmp, *mem = &val; + + if (__sync_fetch_and_add(&val, 1010) != 1010 || val != 2020) +@@ -44,7 +42,7 @@ int main() + return 1; + + return 0; +-}], [ap_cv_atomic_builtins=yes], [ap_cv_atomic_builtins=no], [ap_cv_atomic_builtins=no])]) ++]])], [ap_cv_atomic_builtins=yes], [ap_cv_atomic_builtins=no])]) + + if test "$ap_cv_atomic_builtins" = "yes"; then + AC_DEFINE(HAVE_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins]) +diff --git a/m4/atomic_operations_64bit.m4 b/m4/atomic_operations_64bit.m4 +index 9fbef0a..d01a977 100644 +--- a/m4/atomic_operations_64bit.m4 ++++ b/m4/atomic_operations_64bit.m4 +@@ -9,9 +9,7 @@ + # + AC_DEFUN([RS_ATOMIC_OPERATIONS_64BIT], + [AC_CACHE_CHECK([whether the compiler provides atomic builtins for 64 bit data types], [ap_cv_atomic_builtins_64], +-[AC_TRY_RUN([ +-int main() +-{ ++[AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[ + unsigned long long val = 1010, tmp, *mem = &val; + + if (__sync_fetch_and_add(&val, 1010) != 1010 || val != 2020) +@@ -44,7 +42,7 @@ int main() + return 1; + + return 0; +-}], [ap_cv_atomic_builtins_64=yes], [ap_cv_atomic_builtins_64=no], [ap_cv_atomic_builtins_64=no])]) ++]])], [ap_cv_atomic_builtins_64=yes], [ap_cv_atomic_builtins_64=no])]) + + if test "$ap_cv_atomic_builtins_64" = "yes"; then + AC_DEFINE(HAVE_ATOMIC_BUILTINS64, 1, [Define if compiler provides 64 bit atomic builtins]) +-- +2.7.4 + diff --git a/bsp/buildroot/package/libfastjson/Config.in b/bsp/buildroot/package/libfastjson/Config.in new file mode 100644 index 00000000..fbc9b1d6 --- /dev/null +++ b/bsp/buildroot/package/libfastjson/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_LIBFASTJSON + bool "libfastjson" + # uses the __sync_*_4 intrisics, or pthreads to emulate atomicity + depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_THREADS + help + Libfastjson - A fast json library for C + + Libfastjson is a fork from json-c. The aim of this project + is not to provide a slightly modified clone of json-c. + Its aim is to provide: + + - a small library with essential json handling functions + - sufficiently good json support (not 100% standards compliant) + - be very fast in processing + + https://github.com/rsyslog/libfastjson/ diff --git a/bsp/buildroot/package/libfastjson/libfastjson.hash b/bsp/buildroot/package/libfastjson/libfastjson.hash new file mode 100644 index 00000000..8531dac3 --- /dev/null +++ b/bsp/buildroot/package/libfastjson/libfastjson.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 fcdca0c4702362de3db3f02c8da05f985b54a9eccd618af41730409b75d10a8f libfastjson-v0.99.2.tar.gz diff --git a/bsp/buildroot/package/libfastjson/libfastjson.mk b/bsp/buildroot/package/libfastjson/libfastjson.mk new file mode 100644 index 00000000..ec5390c5 --- /dev/null +++ b/bsp/buildroot/package/libfastjson/libfastjson.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# libfastjson +# +################################################################################ + +LIBFASTJSON_VERSION = v0.99.2 +LIBFASTJSON_SITE = $(call github,rsyslog,libfastjson,$(LIBFASTJSON_VERSION)) +LIBFASTJSON_INSTALL_STAGING = YES +# From git +LIBFASTJSON_AUTORECONF = YES +LIBFASTJSON_LICENSE = MIT +LIBFASTJSON_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libffi/0004-m68k-support-ISA-A-Coldfire-CPUs.patch b/bsp/buildroot/package/libffi/0004-m68k-support-ISA-A-Coldfire-CPUs.patch new file mode 100644 index 00000000..9308c895 --- /dev/null +++ b/bsp/buildroot/package/libffi/0004-m68k-support-ISA-A-Coldfire-CPUs.patch @@ -0,0 +1,77 @@ +From 733bb188b898385cfb5ad28cc0e3ecaf38237350 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Sat, 20 Aug 2016 00:52:19 +0200 +Subject: [PATCH] m68k: support ISA-A Coldfire CPUs + +Fix compilation for m68k/coldfire CPUs like mcf5208. + +Signed-off-by: Waldemar Brodkorb +Signed-off-by: Thorsten Glaser +--- + src/m68k/sysv.S | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/src/m68k/sysv.S b/src/m68k/sysv.S +index ec2b14f..ea40f11 100644 +--- a/src/m68k/sysv.S ++++ b/src/m68k/sysv.S +@@ -3,7 +3,7 @@ + sysv.S - Copyright (c) 2012 Alan Hourihane + Copyright (c) 1998, 2012 Andreas Schwab + Copyright (c) 2008 Red Hat, Inc. +- Copyright (c) 2012 Thorsten Glaser ++ Copyright (c) 2012, 2016 Thorsten Glaser + + m68k Foreign Function Interface + +@@ -72,6 +72,15 @@ CALLFUNC(ffi_call_SYSV): + pea 4(%sp) + #if !defined __PIC__ + jsr CALLFUNC(ffi_prep_args) ++#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__) ++ move.l _current_shared_library_a5_offset_(%a5),%a0 ++ move.l CALLFUNC(ffi_prep_args@GOT)(%a0),%a0 ++ jsr (%a0) ++#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__) ++ move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0 ++ lea (-6,%pc,%a0),%a0 ++ move.l CALLFUNC(ffi_prep_args@GOT)(%a0),%a0 ++ jsr (%a0) + #else + bsr.l CALLFUNC(ffi_prep_args@PLTPC) + #endif +@@ -215,6 +224,15 @@ CALLFUNC(ffi_closure_SYSV): + move.l %a0,-(%sp) + #if !defined __PIC__ + jsr CALLFUNC(ffi_closure_SYSV_inner) ++#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__) ++ move.l _current_shared_library_a5_offset_(%a5),%a0 ++ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0 ++ jsr (%a0) ++#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__) ++ move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0 ++ lea (-6,%pc,%a0),%a0 ++ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0 ++ jsr (%a0) + #else + bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC) + #endif +@@ -317,6 +335,15 @@ CALLFUNC(ffi_closure_struct_SYSV): + move.l %a0,-(%sp) + #if !defined __PIC__ + jsr CALLFUNC(ffi_closure_SYSV_inner) ++#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__) ++ move.l _current_shared_library_a5_offset_(%a5),%a0 ++ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0 ++ jsr (%a0) ++#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__) ++ move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0 ++ lea (-6,%pc,%a0),%a0 ++ move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0 ++ jsr (%a0) + #else + bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC) + #endif +-- +1.7.10.4 + diff --git a/bsp/buildroot/package/libfm-extra/Config.in b/bsp/buildroot/package/libfm-extra/Config.in index f0e0b631..79465f97 100644 --- a/bsp/buildroot/package/libfm-extra/Config.in +++ b/bsp/buildroot/package/libfm-extra/Config.in @@ -6,7 +6,7 @@ config BR2_PACKAGE_LIBFM_EXTRA depends on BR2_USE_MMU # libglib2 help The libfm-extra package contains a library and other files - required by menu-cache-gen libexec of menu-cache-1.0.0 + required by menu-cache-gen libexec of menu-cache http://wiki.lxde.org/en/Libfm diff --git a/bsp/buildroot/package/libfm-extra/libfm-extra.hash b/bsp/buildroot/package/libfm-extra/libfm-extra.hash index 5311decc..8a78adeb 100644 --- a/bsp/buildroot/package/libfm-extra/libfm-extra.hash +++ b/bsp/buildroot/package/libfm-extra/libfm-extra.hash @@ -1,2 +1,3 @@ -# From http://blog.lxde.org/?p=1280 -sha1 c3f2f34086761d89d6aba549883610084ba00750 libfm-1.2.3.tar.xz +# From https://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/LibFM/ +md5 74997d75e7e87dc73398746fd373bf52 libfm-1.2.4.tar.xz +sha1 2f8183389c8e74edb15c6c8ab260df5dd39f3b2d libfm-1.2.4.tar.xz diff --git a/bsp/buildroot/package/libfm-extra/libfm-extra.mk b/bsp/buildroot/package/libfm-extra/libfm-extra.mk index f5b19288..0e7a7dc0 100644 --- a/bsp/buildroot/package/libfm-extra/libfm-extra.mk +++ b/bsp/buildroot/package/libfm-extra/libfm-extra.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBFM_EXTRA_VERSION = 1.2.3 +LIBFM_EXTRA_VERSION = 1.2.4 LIBFM_EXTRA_SOURCE = libfm-$(LIBFM_EXTRA_VERSION).tar.xz LIBFM_EXTRA_SITE = http://sourceforge.net/projects/pcmanfm/files LIBFM_EXTRA_DEPENDENCIES = libglib2 host-intltool diff --git a/bsp/buildroot/package/libfm/Config.in b/bsp/buildroot/package/libfm/Config.in index 603b4d51..0463d1c5 100644 --- a/bsp/buildroot/package/libfm/Config.in +++ b/bsp/buildroot/package/libfm/Config.in @@ -2,7 +2,7 @@ config BR2_PACKAGE_LIBFM bool "libfm" select BR2_PACKAGE_MENU_CACHE select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_LIBGTK2 + select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 select BR2_PACKAGE_CAIRO depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # libglib2 diff --git a/bsp/buildroot/package/libfm/libfm.hash b/bsp/buildroot/package/libfm/libfm.hash index 5311decc..8a78adeb 100644 --- a/bsp/buildroot/package/libfm/libfm.hash +++ b/bsp/buildroot/package/libfm/libfm.hash @@ -1,2 +1,3 @@ -# From http://blog.lxde.org/?p=1280 -sha1 c3f2f34086761d89d6aba549883610084ba00750 libfm-1.2.3.tar.xz +# From https://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/LibFM/ +md5 74997d75e7e87dc73398746fd373bf52 libfm-1.2.4.tar.xz +sha1 2f8183389c8e74edb15c6c8ab260df5dd39f3b2d libfm-1.2.4.tar.xz diff --git a/bsp/buildroot/package/libfm/libfm.mk b/bsp/buildroot/package/libfm/libfm.mk index e8410d02..633a844d 100644 --- a/bsp/buildroot/package/libfm/libfm.mk +++ b/bsp/buildroot/package/libfm/libfm.mk @@ -4,10 +4,10 @@ # ################################################################################ -LIBFM_VERSION = 1.2.3 +LIBFM_VERSION = 1.2.4 LIBFM_SOURCE = libfm-$(LIBFM_VERSION).tar.xz LIBFM_SITE = http://sourceforge.net/projects/pcmanfm/files -LIBFM_DEPENDENCIES = menu-cache libgtk2 libglib2 cairo +LIBFM_DEPENDENCIES = menu-cache libglib2 cairo LIBFM_LICENSE = GPLv2+, LGPLv2.1+ LIBFM_LICENSE_FILES = COPYING src/extra/fm-xml-file.c LIBFM_INSTALL_STAGING = YES @@ -19,4 +19,12 @@ else LIBFM_CONF_OPTS += --disable-exif endif +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) +LIBFM_CONF_OPTS += --with-gtk=3 +LIBFM_DEPENDENCIES += libgtk3 +else +LIBFM_CONF_OPTS += --with-gtk=2 +LIBFM_DEPENDENCIES += libgtk2 +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libfreeimage/0004-fix-gcc-6.patch b/bsp/buildroot/package/libfreeimage/0004-fix-gcc-6.patch new file mode 100644 index 00000000..0f10dec7 --- /dev/null +++ b/bsp/buildroot/package/libfreeimage/0004-fix-gcc-6.patch @@ -0,0 +1,31 @@ +libraw/dc_raw: fix gcc-6 failures + +With gcc-6, it is no longer allowed to narrow the type of constants in +a constant array declaration. + +Fixes: + http://autobuild.buildroot.org/results/081/0811531872f69f9febbdc482dfbdd7fb5c35d1c8/build-end.log + +Signed-off-by: "Yann E. MORIN" + +diff -durN a/Source/LibRawLite/internal/dcraw_common.cpp b/Source/LibRawLite/internal/dcraw_common.cpp +--- a/Source/LibRawLite/internal/dcraw_common.cpp ++++ b/Source/LibRawLite/internal/dcraw_common.cpp +@@ -2479,7 +2479,7 @@ + + void CLASS kodak_radc_load_raw() + { +- static const char src[] = { ++ static const signed char src[] = { + 1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8, + 1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8, + 2,1, 2,3, 3,0, 3,2, 3,4, 4,6, 5,5, 6,7, 6,8, +@@ -4519,7 +4519,7 @@ + */ + void CLASS vng_interpolate() + { +- static const signed char *cp, terms[] = { ++ static const int *cp, terms[] = { + -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01, + -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01, + -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03, diff --git a/bsp/buildroot/package/libfslcodec/Config.in b/bsp/buildroot/package/libfslcodec/Config.in deleted file mode 100644 index d2007fe1..00000000 --- a/bsp/buildroot/package/libfslcodec/Config.in +++ /dev/null @@ -1,13 +0,0 @@ -config BR2_PACKAGE_LIBFSLCODEC - bool "libfslcodec" - depends on BR2_arm # Only relevant for i.MX - depends on BR2_TOOLCHAIN_USES_GLIBC # prebuilt binaries - help - Binary codec libraries for the Freescale i.MX SoCs. - - This library is provided by Freescale as-is and doesn't have - an upstream. - -comment "libfslcodec needs an (e)glibc toolchain" - depends on BR2_arm - depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/libfslcodec/libfslcodec.hash b/bsp/buildroot/package/libfslcodec/libfslcodec.hash deleted file mode 100644 index d977a66a..00000000 --- a/bsp/buildroot/package/libfslcodec/libfslcodec.hash +++ /dev/null @@ -1,2 +0,0 @@ -# locally computed -sha256 de1251286ebbc1541452f2f70fbd73e42c58f95630d65d1f9aaabf10a6caa38f libfslcodec-4.0.7.bin diff --git a/bsp/buildroot/package/libfslcodec/libfslcodec.mk b/bsp/buildroot/package/libfslcodec/libfslcodec.mk deleted file mode 100644 index e151c662..00000000 --- a/bsp/buildroot/package/libfslcodec/libfslcodec.mk +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# -# libfslcodec -# -################################################################################ - -LIBFSLCODEC_VERSION = 4.0.7 -LIBFSLCODEC_SITE = $(FREESCALE_IMX_SITE) -LIBFSLCODEC_SOURCE = libfslcodec-$(LIBFSLCODEC_VERSION).bin -LIBFSLCODEC_INSTALL_STAGING = YES - -LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c (flac, ogg headers) -LIBFSLCODEC_LICENSE_FILES = EULA COPYING -LIBFSLCODEC_REDISTRIBUTE = NO - -define LIBFSLCODEC_EXTRACT_CMDS - $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLCODEC_SOURCE)) -endef - -# FIXME The Makefile installs both the arm9 and arm11 versions of the -# libraries, but we only need one of them. - -$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libfslparser/Config.in b/bsp/buildroot/package/libfslparser/Config.in deleted file mode 100644 index e3ab980e..00000000 --- a/bsp/buildroot/package/libfslparser/Config.in +++ /dev/null @@ -1,8 +0,0 @@ -config BR2_PACKAGE_LIBFSLPARSER - bool "libfslparser" - depends on BR2_arm # Only relevant for i.MX - help - Binary parser libraries for the Freescale i.MX SoCs. - - This library is provided by Freescale as-is and doesn't have - an upstream. diff --git a/bsp/buildroot/package/libfslparser/libfslparser.hash b/bsp/buildroot/package/libfslparser/libfslparser.hash deleted file mode 100644 index 976a2d21..00000000 --- a/bsp/buildroot/package/libfslparser/libfslparser.hash +++ /dev/null @@ -1,2 +0,0 @@ -# locally computed -sha256 e7c248e64db03c3ddd84f50ae408e560f8f5819e58c487a5dec5141bc384ae83 libfslparser-4.0.7.bin diff --git a/bsp/buildroot/package/libfslparser/libfslparser.mk b/bsp/buildroot/package/libfslparser/libfslparser.mk deleted file mode 100644 index c5efc85c..00000000 --- a/bsp/buildroot/package/libfslparser/libfslparser.mk +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -# -# libfslparser -# -################################################################################ - -LIBFSLPARSER_VERSION = 4.0.7 -LIBFSLPARSER_SITE = $(FREESCALE_IMX_SITE) -LIBFSLPARSER_SOURCE = libfslparser-$(LIBFSLPARSER_VERSION).bin -LIBFSLPARSER_INSTALL_STAGING = YES - -LIBFSLPARSER_LICENSE = Freescale Semiconductor Software License Agreement -LIBFSLPARSER_LICENSE_FILES = EULA COPYING -LIBFSLPARSER_REDISTRIBUTE = NO - -define LIBFSLPARSER_EXTRACT_CMDS - $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLPARSER_SOURCE)) -endef - -# The Makefile installs several versions of the libraries, but we only -# need one of them, depending on the platform. - -$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libfslvpuwrap/Config.in b/bsp/buildroot/package/libfslvpuwrap/Config.in deleted file mode 100644 index 9cc15d5c..00000000 --- a/bsp/buildroot/package/libfslvpuwrap/Config.in +++ /dev/null @@ -1,15 +0,0 @@ -comment "libfslvpuwrap needs an imx-specific Linux kernel to be built" - depends on BR2_arm - depends on !BR2_LINUX_KERNEL - -config BR2_PACKAGE_LIBFSLVPUWRAP - bool "libfslvpuwrap" - depends on BR2_LINUX_KERNEL - depends on BR2_arm # Only relevant for i.MX - select BR2_PACKAGE_FREESCALE_IMX - select BR2_PACKAGE_IMX_VPU - help - Wrapper library for the vpu library, giving it a different API. - - This library is provided by Freescale as-is and doesn't have - an upstream. diff --git a/bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.hash b/bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.hash deleted file mode 100644 index 8e6ba614..00000000 --- a/bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.hash +++ /dev/null @@ -1,2 +0,0 @@ -# locally computed -sha256 e4bfe218d17ec66acf8cd97d08fef8ef71ab6762d4c8cf0d0193eca5f599b4c9 libfslvpuwrap-1.0.61.bin diff --git a/bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.mk b/bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.mk deleted file mode 100644 index b3d6f0cf..00000000 --- a/bsp/buildroot/package/libfslvpuwrap/libfslvpuwrap.mk +++ /dev/null @@ -1,21 +0,0 @@ -################################################################################ -# -# libfslvpuwrap -# -################################################################################ - -LIBFSLVPUWRAP_VERSION = 1.0.61 -LIBFSLVPUWRAP_SITE = $(FREESCALE_IMX_SITE) -LIBFSLVPUWRAP_SOURCE = libfslvpuwrap-$(LIBFSLVPUWRAP_VERSION).bin -LIBFSLVPUWRAP_DEPENDENCIES = imx-vpu -LIBFSLVPUWRAP_INSTALL_STAGING = YES - -LIBFSLVPUWRAP_LICENSE = Freescale Semiconductor Software License Agreement -LIBFSLVPUWRAP_LICENSE_FILES = EULA COPYING -LIBFSLVPUWRAP_REDISTRIBUTE = NO - -define LIBFSLVPUWRAP_EXTRACT_CMDS - $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLVPUWRAP_SOURCE)) -endef - -$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libftdi/Config.in b/bsp/buildroot/package/libftdi/Config.in index 8e02cb91..beb42d34 100644 --- a/bsp/buildroot/package/libftdi/Config.in +++ b/bsp/buildroot/package/libftdi/Config.in @@ -13,14 +13,12 @@ if BR2_PACKAGE_LIBFTDI config BR2_PACKAGE_LIBTFDI_CPP bool "C++ bindings" depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_USE_WCHAR select BR2_PACKAGE_BOOST help C++ bindings for libftdi comment "libftdi C++ bindings need a toolchain w/ wchar, C++" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP endif # BR2_PACKAGE_LIBFTDI diff --git a/bsp/buildroot/package/libftdi/libftdi.mk b/bsp/buildroot/package/libftdi/libftdi.mk index 28f20e35..2364c462 100644 --- a/bsp/buildroot/package/libftdi/libftdi.mk +++ b/bsp/buildroot/package/libftdi/libftdi.mk @@ -7,6 +7,7 @@ LIBFTDI_VERSION = 0.20 LIBFTDI_SITE = http://www.intra2net.com/en/developer/libftdi/download LIBFTDI_DEPENDENCIES = libusb-compat libusb +HOST_LIBFTDI_DEPENDENCIES = host-libusb-compat host-libusb LIBFTDI_INSTALL_STAGING = YES LIBFTDI_CONFIG_SCRIPTS = libftdi-config LIBFTDI_AUTORECONF = YES diff --git a/bsp/buildroot/package/libftdi1/Config.in b/bsp/buildroot/package/libftdi1/Config.in index 61d4c1cf..aca797b6 100644 --- a/bsp/buildroot/package/libftdi1/Config.in +++ b/bsp/buildroot/package/libftdi1/Config.in @@ -14,14 +14,12 @@ config BR2_PACKAGE_LIBFTDI1_LIBFTDIPP1 select BR2_PACKAGE_BOOST depends on BR2_INSTALL_LIBSTDCPP # boost depends on BR2_TOOLCHAIN_HAS_THREADS # boost - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_USE_WCHAR # boost help C++ bindings for libftdi comment "libftdipp1 needs a toolchain w/ C++, wchar" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS config BR2_PACKAGE_LIBFTDI1_PYTHON_BINDINGS bool "python bindings" diff --git a/bsp/buildroot/package/libftdi1/libftdi1.hash b/bsp/buildroot/package/libftdi1/libftdi1.hash index e53bc8f7..0a891824 100644 --- a/bsp/buildroot/package/libftdi1/libftdi1.hash +++ b/bsp/buildroot/package/libftdi1/libftdi1.hash @@ -1,2 +1,2 @@ # Locally computed (after checking the signature from http://www.intra2net.com/en/developer/libftdi/download.php) -sha256 a6ea795c829219015eb372b03008351cee3fb39f684bff3bf8a4620b558488d6 libftdi1-1.2.tar.bz2 +sha256 9a8c95c94bfbcf36584a0a58a6e2003d9b133213d9202b76aec76302ffaa81f4 libftdi1-1.3.tar.bz2 diff --git a/bsp/buildroot/package/libftdi1/libftdi1.mk b/bsp/buildroot/package/libftdi1/libftdi1.mk index e77f37bb..26aa293b 100644 --- a/bsp/buildroot/package/libftdi1/libftdi1.mk +++ b/bsp/buildroot/package/libftdi1/libftdi1.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBFTDI1_VERSION = 1.2 +LIBFTDI1_VERSION = 1.3 LIBFTDI1_SOURCE = libftdi1-$(LIBFTDI1_VERSION).tar.bz2 LIBFTDI1_SITE = http://www.intra2net.com/en/developer/libftdi/download LIBFTDI1_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libfuse/libfuse.hash b/bsp/buildroot/package/libfuse/libfuse.hash index c9c23022..60bdf639 100644 --- a/bsp/buildroot/package/libfuse/libfuse.hash +++ b/bsp/buildroot/package/libfuse/libfuse.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 579f371cc5ffc1afca7057512bf7d52988a9ede57859a7c55e5b9f72435cdbb5 fuse-2.9.5.tar.gz +sha256 832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874 fuse-2.9.7.tar.gz diff --git a/bsp/buildroot/package/libfuse/libfuse.mk b/bsp/buildroot/package/libfuse/libfuse.mk index bece18df..57aabcd9 100644 --- a/bsp/buildroot/package/libfuse/libfuse.mk +++ b/bsp/buildroot/package/libfuse/libfuse.mk @@ -4,9 +4,9 @@ # ################################################################################ -LIBFUSE_VERSION = 2.9.5 +LIBFUSE_VERSION = 2.9.7 LIBFUSE_SOURCE = fuse-$(LIBFUSE_VERSION).tar.gz -LIBFUSE_SITE = https://github.com/libfuse/libfuse/releases/download/fuse_$(subst .,_,$(LIBFUSE_VERSION)) +LIBFUSE_SITE = https://github.com/libfuse/libfuse/releases/download/fuse-$(LIBFUSE_VERSION) LIBFUSE_LICENSE = GPLv2, LGPLv2.1 LIBFUSE_LICENSE_FILES = COPYING COPYING.LIB LIBFUSE_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libgcrypt/Config.in b/bsp/buildroot/package/libgcrypt/Config.in index dd8f2701..d3e5d4f7 100644 --- a/bsp/buildroot/package/libgcrypt/Config.in +++ b/bsp/buildroot/package/libgcrypt/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LIBGCRYPT bool "libgcrypt" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error select BR2_PACKAGE_LIBGPG_ERROR help LibGCrypt is GNU's basic cryptographic library. diff --git a/bsp/buildroot/package/libgcrypt/libgcrypt.hash b/bsp/buildroot/package/libgcrypt/libgcrypt.hash index 272d3323..885f8317 100644 --- a/bsp/buildroot/package/libgcrypt/libgcrypt.hash +++ b/bsp/buildroot/package/libgcrypt/libgcrypt.hash @@ -1,4 +1,4 @@ -# From https://lists.gnupg.org/pipermail/gnupg-announce/2016q1/000384.html -sha1 c3a5a13e717f7b3e3895650afc1b6e0d3fe9c726 libgcrypt-1.6.5.tar.bz2 +# From https://lists.gnu.org/archive/html/info-gnu/2016-08/msg00008.html +sha1 5a034291e7248592605db448481478e6c963aa9c libgcrypt-1.7.3.tar.bz2 # Calculated based on the hash above -sha256 f49ebc5842d455ae7019def33eb5a014a0f07a2a8353dc3aa50a76fd1dafa924 libgcrypt-1.6.5.tar.bz2 +sha256 ddac6111077d0a1612247587be238c5294dd0ee4d76dc7ba783cc55fb0337071 libgcrypt-1.7.3.tar.bz2 diff --git a/bsp/buildroot/package/libgcrypt/libgcrypt.mk b/bsp/buildroot/package/libgcrypt/libgcrypt.mk index 7c27a223..31f4d6cd 100644 --- a/bsp/buildroot/package/libgcrypt/libgcrypt.mk +++ b/bsp/buildroot/package/libgcrypt/libgcrypt.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBGCRYPT_VERSION = 1.6.5 +LIBGCRYPT_VERSION = 1.7.3 LIBGCRYPT_SOURCE = libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2 LIBGCRYPT_LICENSE = LGPLv2.1+ LIBGCRYPT_LICENSE_FILES = COPYING.LIB @@ -18,6 +18,11 @@ LIBGCRYPT_CONF_ENV = \ LIBGCRYPT_CONF_OPTS = \ --with-gpg-error-prefix=$(STAGING_DIR)/usr +# Libgcrypt doesn't support assembly for coldfire +ifeq ($(BR2_m68k_cf),y) +LIBGCRYPT_CONF_OPTS += --disable-asm +endif + # Code doesn't build in thumb mode ifeq ($(BR2_arm),y) LIBGCRYPT_CONF_ENV += CFLAGS="$(patsubst -mthumb,,$(TARGET_CFLAGS))" diff --git a/bsp/buildroot/package/libgee/Config.in b/bsp/buildroot/package/libgee/Config.in new file mode 100644 index 00000000..07c387c9 --- /dev/null +++ b/bsp/buildroot/package/libgee/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_LIBGEE + bool "libgee" + depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_LIBGLIB2 + help + Libgee is an utility library providing GObject-based + interfaces and classes for commonly used data structures. + + https://wiki.gnome.org/Projects/Libgee + +comment "libgee needs a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/libgee/libgee.hash b/bsp/buildroot/package/libgee/libgee.hash new file mode 100644 index 00000000..4c38c783 --- /dev/null +++ b/bsp/buildroot/package/libgee/libgee.hash @@ -0,0 +1,2 @@ +# From http://ftp.acc.umu.se/pub/gnome/sources/libgee/0.18/libgee-0.18.0.sha256sum +sha256 4ad99ef937d071b4883c061df40bfe233f7649d50c354cf81235f180b4244399 libgee-0.18.0.tar.xz diff --git a/bsp/buildroot/package/libgee/libgee.mk b/bsp/buildroot/package/libgee/libgee.mk new file mode 100644 index 00000000..1df322c0 --- /dev/null +++ b/bsp/buildroot/package/libgee/libgee.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# libgee +# +################################################################################ + +LIBGEE_VERSION_MAJOR = 0.18 +LIBGEE_VERSION = $(LIBGEE_VERSION_MAJOR).0 +LIBGEE_SITE = http://ftp.gnome.org/pub/gnome/sources/libgee/$(LIBGEE_VERSION_MAJOR) +LIBGEE_SOURCE = libgee-$(LIBGEE_VERSION).tar.xz +LIBGEE_DEPENDENCIES = host-pkgconf host-vala libglib2 +LIBGEE_INSTALL_STAGING = YES +LIBGEE_LICENSE = LGPLv2.1+ +LIBGEE_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libglib2/Config.in b/bsp/buildroot/package/libglib2/Config.in index 7cbfea5d..84ee816a 100644 --- a/bsp/buildroot/package/libglib2/Config.in +++ b/bsp/buildroot/package/libglib2/Config.in @@ -3,7 +3,8 @@ config BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_LIBFFI - select BR2_PACKAGE_PCRE_UCP if BR2_PACKAGE_PCRE + select BR2_PACKAGE_PCRE + select BR2_PACKAGE_PCRE_UCP select BR2_PACKAGE_ZLIB depends on BR2_USE_WCHAR # gettext depends on BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/libglib2/libglib2.hash b/bsp/buildroot/package/libglib2/libglib2.hash index 7bce911f..6463759f 100644 --- a/bsp/buildroot/package/libglib2/libglib2.hash +++ b/bsp/buildroot/package/libglib2/libglib2.hash @@ -1,2 +1,2 @@ -# https://download.gnome.org/sources/glib/2.46/glib-2.46.2.sha256sum -sha256 5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db glib-2.46.2.tar.xz +# https://download.gnome.org/sources/glib/2.48/glib-2.48.1.sha256sum +sha256 74411bff489cb2a3527bac743a51018841a56a4d896cc1e0d0d54f8166a14612 glib-2.48.1.tar.xz diff --git a/bsp/buildroot/package/libglib2/libglib2.mk b/bsp/buildroot/package/libglib2/libglib2.mk index ea45f4aa..e2bff6d5 100644 --- a/bsp/buildroot/package/libglib2/libglib2.mk +++ b/bsp/buildroot/package/libglib2/libglib2.mk @@ -4,8 +4,8 @@ # ################################################################################ -LIBGLIB2_VERSION_MAJOR = 2.46 -LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).2 +LIBGLIB2_VERSION_MAJOR = 2.48 +LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).1 LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR) LIBGLIB2_LICENSE = LGPLv2+ @@ -97,11 +97,18 @@ HOST_LIBGLIB2_CONF_OPTS = \ --disable-libelf \ --disable-selinux \ --disable-systemtap \ - --disable-xattr + --disable-xattr \ + --with-pcre=system -LIBGLIB2_DEPENDENCIES = host-pkgconf host-libglib2 libffi zlib $(if $(BR2_NEEDS_GETTEXT),gettext) host-gettext +LIBGLIB2_DEPENDENCIES = \ + host-pkgconf host-libglib2 host-gettext \ + libffi pcre zlib $(if $(BR2_NEEDS_GETTEXT),gettext) -HOST_LIBGLIB2_DEPENDENCIES = host-pkgconf host-libffi host-zlib host-gettext +HOST_LIBGLIB2_DEPENDENCIES = \ + host-gettext host-libffi host-pcre host-pkgconf host-zlib + +LIBGLIB2_CONF_OPTS = \ + --with-pcre=system ifneq ($(BR2_ENABLE_LOCALE),y) LIBGLIB2_DEPENDENCIES += libiconv @@ -119,30 +126,42 @@ LIBGLIB2_CONF_OPTS += --with-libiconv=gnu LIBGLIB2_DEPENDENCIES += libiconv endif -ifeq ($(BR2_PACKAGE_PCRE),y) -LIBGLIB2_CONF_OPTS += --with-pcre=system -LIBGLIB2_DEPENDENCIES += pcre -else -LIBGLIB2_CONF_OPTS += --with-pcre=internal +# Purge gdb-related files +ifneq ($(BR2_PACKAGE_GDB),y) +define LIBGLIB2_REMOVE_GDB_FILES + rm -rf $(TARGET_DIR)/usr/share/glib-2.0/gdb +endef endif +# Purge useless binaries from target define LIBGLIB2_REMOVE_DEV_FILES rm -rf $(TARGET_DIR)/usr/lib/glib-2.0 - rm -rf $(TARGET_DIR)/usr/share/glib-2.0/gettext - rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share/glib-2.0 - rm -f $(addprefix $(TARGET_DIR)/usr/bin/,glib-genmarshal glib-gettextize glib-mkenums gobject-query gtester gtester-report) + rm -rf $(addprefix $(TARGET_DIR)/usr/share/glib-2.0/,codegen gettext) + rm -f $(addprefix $(TARGET_DIR)/usr/bin/,gdbus-codegen glib-compile-schemas glib-compile-resources glib-genmarshal glib-gettextize glib-mkenums gobject-query gtester gtester-report) + $(LIBGLIB2_REMOVE_GDB_FILES) endef LIBGLIB2_POST_INSTALL_TARGET_HOOKS += LIBGLIB2_REMOVE_DEV_FILES -define LIBGLIB2_REMOVE_GDB_FILES - rm -rf $(TARGET_DIR)/usr/share/glib-2.0/gdb - rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share/glib-2.0 +# Remove schema sources/DTDs, we use staging ones to compile them. +# Do so at target finalization since other packages install additional +# ones and we want to deal with it in a single place. +define LIBGLIB2_REMOVE_TARGET_SCHEMAS + rm -f $(TARGET_DIR)/usr/share/glib-2.0/schemas/*.xml \ + $(TARGET_DIR)/usr/share/glib-2.0/schemas/*.dtd endef -ifneq ($(BR2_PACKAGE_GDB),y) -LIBGLIB2_POST_INSTALL_TARGET_HOOKS += LIBGLIB2_REMOVE_GDB_FILES -endif +# Compile schemas at target finalization since other packages install +# them as well, and better do it in a central place. +# It's used at run time so it doesn't matter defering it. +define LIBGLIB2_COMPILE_SCHEMAS + $(HOST_DIR)/usr/bin/glib-compile-schemas \ + $(STAGING_DIR)/usr/share/glib-2.0/schemas \ + --targetdir=$(TARGET_DIR)/usr/share/glib-2.0/schemas +endef + +LIBGLIB2_TARGET_FINALIZE_HOOKS += LIBGLIB2_REMOVE_TARGET_SCHEMAS +LIBGLIB2_TARGET_FINALIZE_HOOKS += LIBGLIB2_COMPILE_SCHEMAS $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/libglu/libglu.hash b/bsp/buildroot/package/libglu/libglu.hash new file mode 100644 index 00000000..784386e0 --- /dev/null +++ b/bsp/buildroot/package/libglu/libglu.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 3d19cca9b26ec4048dd22e3d294acd43e080a3205a29ff47765bd514571ea8f9 glu-9.0.0.tar.gz diff --git a/bsp/buildroot/package/libgpg-error/0001-avoid-breakage-with-gcc-5.patch b/bsp/buildroot/package/libgpg-error/0001-avoid-breakage-with-gcc-5.patch deleted file mode 100644 index 96dc569c..00000000 --- a/bsp/buildroot/package/libgpg-error/0001-avoid-breakage-with-gcc-5.patch +++ /dev/null @@ -1,56 +0,0 @@ -Patch ported from Debian -http://anonscm.debian.org/cgit/pkg-gnupg/libgpg-error.git/diff/?id=c3d7571 - -Signed-off-by: Bernd Kuhls - - -From 91da4f5dbbc9d93975ef9753652a4e71719f9f27 Mon Sep 17 00:00:00 2001 -From: Daniel Kahn Gillmor -Date: Mon, 16 Mar 2015 13:26:00 -0400 -Subject: [LIBGPG-ERROR PATCH] avoid breakage with gcc 5 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - - * src/Makefile.am: add -P to the C preprocessor when building - mkerrcodes.h, to avoid a noisy intermediate pipeline. - --- - -With gcc 5 without this patch, we see many errors like the following: - -gcc -I. -I. -o mkerrcodes ./mkerrcodes.c -In file included from ./mkerrcodes.c:26:0: -./mkerrcodes.h:9:5: error: expected expression before ‘,’ token - { , "GPG_ERR_E2BIG" }, - ^ -./mkerrcodes.h:10:5: error: expected expression before ‘,’ token - { , "GPG_ERR_EACCES" }, - ^ - -This patch cleans up the generated mkerrcodes.h by making the -intermediate stage clean for all the versions of gcc i tested (4.x and -5). - -Debian-Bug-Id: 777374 -Signed-Off-By: Daniel Kahn Gillmor ---- - src/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 99c2c53..f847a80 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -213,7 +213,7 @@ code-to-errno.h: Makefile mkerrnos.awk errnos.in - # It is correct to use $(CPP). We want the host's idea of the error codes. - mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers) - $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@ -- $(CPP) $(CPPFLAGS) $(extra_cppflags) _$@ | grep GPG_ERR_ | \ -+ $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \ - $(AWK) -f $(srcdir)/mkerrcodes.awk >$@ - -rm _$@ - --- -2.1.4 - diff --git a/bsp/buildroot/package/libgpg-error/Config.in b/bsp/buildroot/package/libgpg-error/Config.in index 8287f98b..40424e41 100644 --- a/bsp/buildroot/package/libgpg-error/Config.in +++ b/bsp/buildroot/package/libgpg-error/Config.in @@ -1,7 +1,49 @@ +config BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS + bool + # see src/syscfg/ + default y if \ + BR2_aarch64 || BR2_aarch64_eb || BR2_arm || \ + BR2_armeb || BR2_i386 || BR2_mips || \ + BR2_mipsel || BR2_mips64 || BR2_mips64el || \ + BR2_m68k || BR2_nios2 || BR2_powerpc || \ + BR2_powerpc64 || BR2_powerpc64le || BR2_sh4 || \ + BR2_sh4eb || BR2_sh4a || BR2_sh4aeb || \ + BR2_sparc || BR2_sparc64 || BR2_x86_64 + config BR2_PACKAGE_LIBGPG_ERROR bool "libgpg-error" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS help Libgpg-error is a small library with error codes and descriptions shared by most GnuPG related software. - ftp://gd.tuwien.ac.at/privacy/gnupg/libgpg-error + https://www.gnupg.org/related_software/libgpg-error + +config BR2_PACKAGE_LIBGPG_ERROR_SYSCFG + string + default "aarch64-unknown-linux-gnu" \ + if BR2_aarch64 || BR2_aarch64_eb + default "arm-unknown-linux-gnueabi" \ + if BR2_arm || BR2_armeb + default "i686-pc-linux-gnu" \ + if BR2_i386 + default "mips-unknown-linux-gnu" \ + if BR2_mips || BR2_mipsel + default "mips64el-unknown-linux-gnuabi64" \ + if BR2_mips64 || BR2_mips64el + default "m68k-unknown-linux-gnu" \ + if BR2_m68k + default "nios2-unknown-linux-gnu" \ + if BR2_nios2 + default "powerpc-unknown-linux-gnu" \ + if BR2_powerpc + default "powerpc64-unknown-linux-gnu" \ + if BR2_powerpc64 || BR2_powerpc64le + default "sh4-unknown-linux-gnu" \ + if BR2_sh4 || BR2_sh4eb || BR2_sh4a || BR2_sh4aeb + default "sparc-unknown-linux-gnu" \ + if BR2_sparc + default "sparc64-unknown-linux-gnu" \ + if BR2_sparc64 + default "x86_64-pc-linux-gnu" \ + if BR2_x86_64 diff --git a/bsp/buildroot/package/libgpg-error/libgpg-error.hash b/bsp/buildroot/package/libgpg-error/libgpg-error.hash index 76aff5d7..85d433df 100644 --- a/bsp/buildroot/package/libgpg-error/libgpg-error.hash +++ b/bsp/buildroot/package/libgpg-error/libgpg-error.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 fa6fbf315efa33a943751e3c4d04ea3d41ddf4bdee5727de3c0978277d52923b libgpg-error-1.12.tar.gz +sha256 88cb2d2370f8378fd38452b99dc1419a80fd5897739b7198a4a7996364507803 libgpg-error-1.24.tar.gz diff --git a/bsp/buildroot/package/libgpg-error/libgpg-error.mk b/bsp/buildroot/package/libgpg-error/libgpg-error.mk index 52b7058e..1945673b 100644 --- a/bsp/buildroot/package/libgpg-error/libgpg-error.mk +++ b/bsp/buildroot/package/libgpg-error/libgpg-error.mk @@ -4,14 +4,24 @@ # ################################################################################ -LIBGPG_ERROR_VERSION = 1.12 +LIBGPG_ERROR_VERSION = 1.24 LIBGPG_ERROR_SITE = ftp://ftp.gnupg.org/gcrypt/libgpg-error -LIBGPG_ERROR_LICENSE = LGPLv2.1+ -LIBGPG_ERROR_LICENSE_FILES = COPYING.LIB +LIBGPG_ERROR_LICENSE = GPLv2+, LGPLv2.1+ +LIBGPG_ERROR_LICENSE_FILES = COPYING COPYING.LIB LIBGPG_ERROR_INSTALL_STAGING = YES LIBGPG_ERROR_CONFIG_SCRIPTS = gpg-error-config -# we patch src/Makefile.am -LIBGPG_ERROR_AUTORECONF = YES -LIBGPG_ERROR_GETTEXTIZE = YES + +ifeq ($(BR2_PACKAGE_GETTEXT),y) +LIBGPG_ERROR_DEPENDENCIES += gettext +endif + +define LIBGPG_ERROR_FIX_CROSS_COMPILATION + cd $(@D)/src/syscfg && \ + ln -s lock-obj-pub.$(call qstrip, $(BR2_PACKAGE_LIBGPG_ERROR_SYSCFG)).h \ + lock-obj-pub.$(GNU_TARGET_NAME).h +endef +LIBGPG_ERROR_PRE_CONFIGURE_HOOKS += LIBGPG_ERROR_FIX_CROSS_COMPILATION + +LIBGPG_ERROR_CONF_OPTS = --disable-tests $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libgpgme/Config.in b/bsp/buildroot/package/libgpgme/Config.in index e176dacd..4aabd063 100644 --- a/bsp/buildroot/package/libgpgme/Config.in +++ b/bsp/buildroot/package/libgpgme/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LIBGPGME bool "libgpgme" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_USE_MMU # libassuan #gnupg is not needed to build, but at runtime. select BR2_PACKAGE_GNUPG if !BR2_PACKAGE_GNUPG2 diff --git a/bsp/buildroot/package/libgpgme/libgpgme.mk b/bsp/buildroot/package/libgpgme/libgpgme.mk index 18680998..574ddd6b 100644 --- a/bsp/buildroot/package/libgpgme/libgpgme.mk +++ b/bsp/buildroot/package/libgpgme/libgpgme.mk @@ -23,7 +23,9 @@ LIBGPGME_CONF_OPTS = --with-gpg=/usr/bin/gpg \ # Handle argp-standalone or it errors out during build ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) -LIBGPGME_CONF_ENV += LIBS="-largp" +# musl libc does not define error_t in errno.h, but argp.h does. +# Assume we have error_t to avoid collision with the argp.h error_t. +LIBGPGME_CONF_ENV += LIBS="-largp" ac_cv_type_error_t=yes LIBGPGME_DEPENDENCIES += argp-standalone endif diff --git a/bsp/buildroot/package/libgtk2/libgtk2.hash b/bsp/buildroot/package/libgtk2/libgtk2.hash index 1eb795de..175702f7 100644 --- a/bsp/buildroot/package/libgtk2/libgtk2.hash +++ b/bsp/buildroot/package/libgtk2/libgtk2.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.29.sha256sum -sha256 0741c59600d3d810a223866453dc2bbb18ce4723828681ba24aa6519c37631b8 gtk+-2.24.29.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.30.sha256sum +sha256 0d15cec3b6d55c60eac205b1f3ba81a1ed4eadd9d0f8e7c508bc7065d0c4ca50 gtk+-2.24.30.tar.xz diff --git a/bsp/buildroot/package/libgtk2/libgtk2.mk b/bsp/buildroot/package/libgtk2/libgtk2.mk index 17cdfcb0..94fa97f2 100644 --- a/bsp/buildroot/package/libgtk2/libgtk2.mk +++ b/bsp/buildroot/package/libgtk2/libgtk2.mk @@ -5,7 +5,7 @@ ################################################################################ LIBGTK2_VERSION_MAJOR = 2.24 -LIBGTK2_VERSION = $(LIBGTK2_VERSION_MAJOR).29 +LIBGTK2_VERSION = $(LIBGTK2_VERSION_MAJOR).30 LIBGTK2_SOURCE = gtk+-$(LIBGTK2_VERSION).tar.xz LIBGTK2_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK2_VERSION_MAJOR) LIBGTK2_INSTALL_STAGING = YES @@ -85,6 +85,7 @@ LIBGTK2_CONF_OPTS += --without-libtiff endif ifeq ($(BR2_PACKAGE_CUPS),y) +LIBGTK2_CONF_OPTS += CUPS_CONFIG="$(STAGING_DIR)/usr/bin/cups-config" LIBGTK2_DEPENDENCIES += cups else LIBGTK2_CONF_OPTS += --disable-cups diff --git a/bsp/buildroot/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch b/bsp/buildroot/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch deleted file mode 100644 index c2f4b4fe..00000000 --- a/bsp/buildroot/package/libgtk3/0004-Fix-undefined-reference-to-get_xkb.patch +++ /dev/null @@ -1,33 +0,0 @@ -From b64a04250b1f35923434158beb6ddb5726b41eac Mon Sep 17 00:00:00 2001 -From: Eric Le Bihan -Date: Mon, 27 Oct 2014 10:34:38 +0100 -Subject: [PATCH 1/1] Fix undefined reference to get_xkb() - -When configuring Gtk+ with --disable-xkb, the build fails because of an -undefined reference to get_xkb(). - -This patch fixes this issue. - -Signed-off-by: Eric Le Bihan ---- - gdk/x11/gdkkeys-x11.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/gdk/x11/gdkkeys-x11.c b/gdk/x11/gdkkeys-x11.c -index c45a971..6a5481b 100644 ---- a/gdk/x11/gdkkeys-x11.c -+++ b/gdk/x11/gdkkeys-x11.c -@@ -1498,8 +1498,10 @@ gdk_x11_keymap_map_virtual_modifiers (GdkKeymap *keymap, - int i, j; - gboolean retval; - -+#ifdef HAVE_XKB - if (KEYMAP_USE_XKB (keymap)) - get_xkb (keymap_x11); -+#endif - - retval = TRUE; - --- -1.9.1 - diff --git a/bsp/buildroot/package/libgtk3/0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/bsp/buildroot/package/libgtk3/0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch new file mode 100644 index 00000000..cea4259b --- /dev/null +++ b/bsp/buildroot/package/libgtk3/0004-Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch @@ -0,0 +1,105 @@ +From 4d09ff324419fe4e671233044e424378da53969b Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 9 Jun 2015 14:20:30 +0300 +Subject: [PATCH] Remove Gdk-dependency from gtk-encode-symbolic-svg + +Building gtk-encode-symbolic-svg without building Gdk is useful +as only the icon tools are needed on the native build: this makes +native build much faster and requires much less dependencies. + +Upstream-Status: Pending + +Signed-off-by: Jussi Kukkonen +Signed-off-by: Gustavo Zacarias +--- +Patch status: taken from yocto, upstream pending + + gtk/encodesymbolic.c | 36 ++++++++++-------------------------- + 1 file changed, 10 insertions(+), 26 deletions(-) + +diff --git a/gtk/encodesymbolic.c b/gtk/encodesymbolic.c +index 9f7d015..1f07563 100644 +--- a/gtk/encodesymbolic.c ++++ b/gtk/encodesymbolic.c +@@ -19,7 +19,6 @@ + + #include + #include +-#include + #include + + #ifdef HAVE_UNISTD_H +@@ -43,30 +42,18 @@ static GdkPixbuf * + load_symbolic_svg (char *file_data, gsize file_len, + int width, + int height, +- const GdkRGBA *fg, +- const GdkRGBA *success_color, +- const GdkRGBA *warning_color, +- const GdkRGBA *error_color, ++ const char *css_fg, ++ const char *css_success, ++ const char *css_warning, ++ const char *css_error, + GError **error) + { + GInputStream *stream; + GdkPixbuf *pixbuf; +- gchar *css_fg; +- gchar *css_success; +- gchar *css_warning; +- gchar *css_error; + gchar *data; + gchar *svg_width, *svg_height; + gchar *escaped_file_data; + +- css_fg = gdk_rgba_to_string (fg); +- +- css_success = css_warning = css_error = NULL; +- +- css_warning = gdk_rgba_to_string (warning_color); +- css_error = gdk_rgba_to_string (error_color); +- css_success = gdk_rgba_to_string (success_color); +- + /* Fetch size from the original icon */ + stream = g_memory_input_stream_new_from_data (file_data, file_len, NULL); + pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, error); +@@ -105,10 +92,6 @@ load_symbolic_svg (char *file_data, gsize file_len, + "", + NULL); + g_free (escaped_file_data); +- g_free (css_fg); +- g_free (css_warning); +- g_free (css_error); +- g_free (css_success); + g_free (svg_width); + g_free (svg_height); + +@@ -167,7 +150,8 @@ make_symbolic_pixbuf (char *file, + GError **error) + + { +- GdkRGBA r = { 1,0,0,1}, g = {0,1,0,1}; ++ const char r[] = "rgba(255,0,0,1)"; ++ const char g[] = "rgba(0,255,0,1)"; + GdkPixbuf *loaded; + GdkPixbuf *pixbuf; + int plane; +@@ -196,10 +180,10 @@ make_symbolic_pixbuf (char *file, + * the "rest", as all color fractions should add up to 1. + */ + loaded = load_symbolic_svg (file_data, file_len, width, height, +- &g, +- plane == 0 ? &r : &g, +- plane == 1 ? &r : &g, +- plane == 2 ? &r : &g, ++ g, ++ plane == 0 ? r : g, ++ plane == 1 ? r : g, ++ plane == 2 ? r : g, + error); + if (loaded == NULL) + return NULL; +-- +2.1.4 + diff --git a/bsp/buildroot/package/libgtk3/0005-do-not-build-extract-strings.patch b/bsp/buildroot/package/libgtk3/0005-do-not-build-extract-strings.patch deleted file mode 100644 index f1fbaaaa..00000000 --- a/bsp/buildroot/package/libgtk3/0005-do-not-build-extract-strings.patch +++ /dev/null @@ -1,47 +0,0 @@ -Do not build util/extract-strings - -Do not build util/extract-strings, as it will be built by host-libgtk3 -and installed in $(HOST_DIR)/usr/bin (thus avoiding the -lint linking -issue with uClibc). - -Signed-off-by: Eric Le Bihan - -Index: gtk+-3.14.0/Makefile.am -=================================================================== ---- gtk+-3.14.0.orig/Makefile.am 2014-09-22 05:17:44.000000000 +0200 -+++ gtk+-3.14.0/Makefile.am 2014-09-25 16:08:32.000000000 +0200 -@@ -1,7 +1,7 @@ - ## Makefile.am for GTK+ - include $(top_srcdir)/Makefile.decl - --SRC_SUBDIRS = util gdk gtk libgail-util modules demos tests testsuite examples -+SRC_SUBDIRS = gdk gtk libgail-util modules demos tests testsuite examples - SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build - - ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -Index: gtk+-3.14.0/gtk/Makefile.am -=================================================================== ---- gtk+-3.14.0.orig/gtk/Makefile.am 2014-09-22 05:09:39.000000000 +0200 -+++ gtk+-3.14.0/gtk/Makefile.am 2014-09-25 16:09:10.000000000 +0200 -@@ -1330,7 +1330,7 @@ - - %.ui.h: %.ui - $(AM_V_GEN) mkdir -p $(dir $@) \ -- && $(top_builddir)/util/extract-strings$(EXEEXT) $< > $@ -+ && extract-strings$(EXEEXT) $< > $@ - - # - # rules to generate built sources -Index: gtk+-3.14.0/gtk/inspector/Makefile.am -=================================================================== ---- gtk+-3.14.0.orig/gtk/inspector/Makefile.am 2014-09-04 20:11:33.000000000 +0200 -+++ gtk+-3.14.0/gtk/inspector/Makefile.am 2014-09-25 16:09:48.000000000 +0200 -@@ -114,7 +114,7 @@ - template_headers = $(templates:.ui=.ui.h) - - %.ui.h : %.ui -- $(AM_V_GEN) $(top_builddir)/util/extract-strings$(EXEEXT) $< > $@ -+ $(AM_V_GEN) extract-strings$(EXEEXT) $< > $@ - - EXTRA_DIST += \ - inspector.gresource.xml \ diff --git a/bsp/buildroot/package/libgtk3/Config.in b/bsp/buildroot/package/libgtk3/Config.in index ac56b85a..39105acd 100644 --- a/bsp/buildroot/package/libgtk3/Config.in +++ b/bsp/buildroot/package/libgtk3/Config.in @@ -1,3 +1,15 @@ +comment "libgtk3 needs a toolchain w/ wchar, threads, C++" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_HAS_THREADS + +comment "libgtk3 needs an OpenGL or OpenGL EGL backend provided by mesa3d" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL && \ + !BR2_PACKAGE_HAS_LIBGL + config BR2_PACKAGE_LIBGTK3 bool "libgtk3" select BR2_PACKAGE_ATK @@ -5,10 +17,11 @@ config BR2_PACKAGE_LIBGTK3 select BR2_PACKAGE_CAIRO_PS select BR2_PACKAGE_CAIRO_PDF select BR2_PACKAGE_CAIRO_SVG + select BR2_PACKAGE_LIBEPOXY select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_PANGO select BR2_PACKAGE_GDK_PIXBUF - # atleast 1 backend must be enabled + # At least one backend is required select BR2_PACKAGE_LIBGTK3_BROADWAY if \ !(BR2_PACKAGE_LIBGTK3_X11 || BR2_PACKAGE_LIBGTK3_WAYLAND) depends on BR2_USE_WCHAR # glib2 @@ -16,6 +29,8 @@ config BR2_PACKAGE_LIBGTK3 depends on BR2_USE_MMU # glib2 depends on BR2_INSTALL_LIBSTDCPP # pango depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz + depends on BR2_PACKAGE_MESA3D_OPENGL_EGL || \ + BR2_PACKAGE_HAS_LIBGL help The GTK+ version 3 graphical user interface library @@ -23,33 +38,10 @@ config BR2_PACKAGE_LIBGTK3 if BR2_PACKAGE_LIBGTK3 -comment "GDK backend" - -config BR2_PACKAGE_LIBGTK3_X11 - bool "GDK X11 backend" - default y - depends on BR2_PACKAGE_XORG7 - select BR2_PACKAGE_FONTCONFIG - select BR2_PACKAGE_XLIB_LIBX11 - select BR2_PACKAGE_XLIB_LIBXEXT - select BR2_PACKAGE_XLIB_LIBXRENDER - select BR2_PACKAGE_XLIB_LIBXI - help - This enables the X11 backend for GDK. - -config BR2_PACKAGE_LIBGTK3_WAYLAND - bool "GDK Wayland backend" - default y - # Needs a libgtk3 bump to match API level - depends on BROKEN - depends on BR2_PACKAGE_WAYLAND - select BR2_PACKAGE_LIBXKBCOMMON - help - This enables the Wayland backend for GDK. - config BR2_PACKAGE_LIBGTK3_BROADWAY - bool "GDK Broadway backend" - help + bool "Broadway GDK backend" + default y + help This enables the Broadway backend for GDK, which provides support for displaying GTK+ applications in a web browser, using HTML5 and web sockets. @@ -58,14 +50,45 @@ config BR2_PACKAGE_LIBGTK3_BROADWAY 192.168.0.1 and use it from a web browser, execute the following commands: - $ broadwayd -a 192.168.0.1 -p 8080 :2 & - $ export GDK_BACKEND=broadway - $ export BROADWAY_DISPLAY=:2 - $ gtk3-demo + $ broadwayd -a 192.168.0.1 -p 8080 :2 & + $ export GDK_BACKEND=broadway + $ export BROADWAY_DISPLAY=:2 + $ gtk3-demo Then open a web browser at address http://192.168.0.1:8080. Javascript and web sockets should be enabled. +comment "Wayland GDK backend needs an OpenGL EGL backend provided by mesa3d w/ headers >= 3.17" + depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL || \ + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 + +config BR2_PACKAGE_LIBGTK3_WAYLAND + bool "Wayland GDK backend" + default y + depends on BR2_PACKAGE_MESA3D_OPENGL_EGL + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 + select BR2_PACKAGE_WAYLAND + select BR2_PACKAGE_WAYLAND_PROTOCOLS + select BR2_PACKAGE_LIBXKBCOMMON + help + This enables the Wayland backend for GDK. + +comment "X11 GDK backend needs an OpenGL provider" + depends on !BR2_PACKAGE_HAS_LIBGL + +config BR2_PACKAGE_LIBGTK3_X11 + bool "X11 GDK backend" + default y + depends on BR2_PACKAGE_XORG7 + depends on BR2_PACKAGE_HAS_LIBGL + select BR2_PACKAGE_FONTCONFIG + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_LIBXRENDER + select BR2_PACKAGE_XLIB_LIBXI + help + This enables the X11 backend for GDK. + config BR2_PACKAGE_LIBGTK3_DEMO bool "Install libgtk3 demo program" select BR2_PACKAGE_SHARED_MIME_INFO @@ -81,9 +104,3 @@ config BR2_PACKAGE_LIBGTK3_TESTS allows to install them to the target. endif - -comment "libgtk3 needs a toolchain w/ wchar, threads, C++" - depends on BR2_USE_MMU - depends on BR2_TOOLCHAIN_HAS_SYNC_4 - depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ - !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/libgtk3/libgtk3.hash b/bsp/buildroot/package/libgtk3/libgtk3.hash index b310aec0..b6998a49 100644 --- a/bsp/buildroot/package/libgtk3/libgtk3.hash +++ b/bsp/buildroot/package/libgtk3/libgtk3.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/gtk+/3.14/gtk+-3.14.15.sha256sum -sha256 3ac87659112ced9e5ee5bd55d055faa881aafd040f26ca40b0d8ba0fa6509c83 gtk+-3.14.15.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/gtk+/3.20/gtk+-3.20.6.sha256sum +sha256 3f8016563a96b1cfef4ac9e795647f6316deb2978ff939b19e4e4f8f936fa4b2 gtk+-3.20.6.tar.xz diff --git a/bsp/buildroot/package/libgtk3/libgtk3.mk b/bsp/buildroot/package/libgtk3/libgtk3.mk index d268b56d..08d172fd 100644 --- a/bsp/buildroot/package/libgtk3/libgtk3.mk +++ b/bsp/buildroot/package/libgtk3/libgtk3.mk @@ -4,8 +4,8 @@ # ################################################################################ -LIBGTK3_VERSION_MAJOR = 3.14 -LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).15 +LIBGTK3_VERSION_MAJOR = 3.20 +LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).6 LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR) LIBGTK3_LICENSE = LGPLv2+ @@ -24,7 +24,11 @@ LIBGTK3_CONF_OPTS = \ --enable-gtk2-dependency \ --disable-introspection -LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf +# Override pkg-config pkgdatadir variable, it needs the prefix +LIBGTK3_MAKE_OPTS = \ + WAYLAND_PROTOCOLS_DATADIR=$(STAGING_DIR)/usr/share/wayland-protocols + +LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf libepoxy ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi @@ -38,7 +42,7 @@ LIBGTK3_CONF_OPTS += --disable-x11-backend endif ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y) -LIBGTK3_DEPENDENCIES += wayland libxkbcommon +LIBGTK3_DEPENDENCIES += wayland wayland-protocols libxkbcommon LIBGTK3_CONF_OPTS += --enable-wayland-backend else LIBGTK3_CONF_OPTS += --disable-wayland-backend @@ -136,8 +140,7 @@ LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS # for both native and target builds). # # But no native version of libintl is available (the functions are -# provided by glibc). So gtk-update-icon-cache will not build, and -# extract-strings neither. +# provided by glibc). So gtk-update-icon-cache will not build. # # As a workaround, we build gtk-update-icon-cache on our own, set # --enable-gtk2-dependency=yes and force './configure' to use our version. @@ -146,10 +149,12 @@ HOST_LIBGTK3_DEPENDENCIES = \ host-libglib2 \ host-libpng \ host-gdk-pixbuf \ - host-pkgconf + host-pkgconf \ + host-librsvg HOST_LIBGTK3_CFLAGS = \ - `$(HOST_DIR)/usr/bin/pkgconf --cflags --libs gdk-pixbuf-2.0` + `$(HOST_DIR)/usr/bin/pkgconf --cflags --libs gdk-pixbuf-2.0` \ + `$(HOST_DIR)/usr/bin/pkgconf --cflags --libs gio-2.0` define HOST_LIBGTK3_CONFIGURE_CMDS echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h @@ -163,17 +168,25 @@ define HOST_LIBGTK3_BUILD_CMDS $(HOST_LIBGTK3_CFLAGS) \ -o $(@D)/gtk/gtk-update-icon-cache $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ - $(@D)/util/extract-strings.c \ + $(@D)/gtk/encodesymbolic.c \ $(HOST_LIBGTK3_CFLAGS) \ - -o $(@D)/util/extract-strings + -o $(@D)/gtk/gtk-encode-symbolic-svg endef define HOST_LIBGTK3_INSTALL_CMDS $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-update-icon-cache \ $(HOST_DIR)/usr/bin/gtk-update-icon-cache - $(INSTALL) -D -m 0755 $(@D)/util/extract-strings \ - $(HOST_DIR)/usr/bin/extract-strings + $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-encode-symbolic-svg \ + $(HOST_DIR)/usr/bin/gtk-encode-symbolic-svg endef +# Create icon-theme.cache for each of the icon directories/themes +# It's not strictly necessary but speeds up lookups +define LIBGTK3_UPDATE_ICON_CACHE + find $(TARGET_DIR)/usr/share/icons -maxdepth 1 -mindepth 1 -type d \ + -exec $(HOST_DIR)/usr/bin/gtk-update-icon-cache {} \; +endef +LIBGTK3_TARGET_FINALIZE_HOOKS += LIBGTK3_UPDATE_ICON_CACHE + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/libgudev/Config.in b/bsp/buildroot/package/libgudev/Config.in index ecaacf5f..21606ac4 100644 --- a/bsp/buildroot/package/libgudev/Config.in +++ b/bsp/buildroot/package/libgudev/Config.in @@ -11,9 +11,6 @@ config BR2_PACKAGE_LIBGUDEV It's now a project on its own. Required for building some programs that use udev, when using systemd. - When systemd is not used, libgudev is directly provided by - eudev. - https://wiki.gnome.org/Projects/libgudev comment "libgudev needs udev /dev handling and a toolchain w/ wchar, threads" diff --git a/bsp/buildroot/package/libhid/libhid.hash b/bsp/buildroot/package/libhid/libhid.hash new file mode 100644 index 00000000..7a843b60 --- /dev/null +++ b/bsp/buildroot/package/libhid/libhid.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 f6809ab3b9c907cbb05ceba9ee6ca23a705f85fd71588518e14b3a7d9f2550e5 libhid-0.2.16.tar.gz diff --git a/bsp/buildroot/package/libical/Config.in b/bsp/buildroot/package/libical/Config.in index 48170e9f..3220d5be 100644 --- a/bsp/buildroot/package/libical/Config.in +++ b/bsp/buildroot/package/libical/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_LIBICAL depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR + select BR2_TARGET_TZ_INFO help libical is an Open Source (MPL/LGPL) implementation of the IETF's iCalendar Calendaring and Scheduling protocols. diff --git a/bsp/buildroot/package/libical/libical.mk b/bsp/buildroot/package/libical/libical.mk index e8cb3f8d..a5110395 100644 --- a/bsp/buildroot/package/libical/libical.mk +++ b/bsp/buildroot/package/libical/libical.mk @@ -13,5 +13,7 @@ LIBICAL_LICENSE_FILES = LICENSE # building without this option is broken, it is used by # Gentoo/alpinelinux as well LIBICAL_CONF_OPTS = -DSHARED_ONLY=true +# never build time zone info, always use system's tzinfo +LIBICAL_CONF_OPTS += -DUSE_BUILTIN_TZDATA=false $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/libidn/libidn.hash b/bsp/buildroot/package/libidn/libidn.hash index 20c844e1..4658a3e8 100644 --- a/bsp/buildroot/package/libidn/libidn.hash +++ b/bsp/buildroot/package/libidn/libidn.hash @@ -1,2 +1,4 @@ -# From http://lists.nongnu.org/archive/html/help-libidn/2015-08/msg00001.html -sha1 ddd018611b98af7c67d434aa42d15d39f45129f5 libidn-1.32.tar.gz +# From http://lists.nongnu.org/archive/html/help-libidn/2016-07/msg00009.html +sha1 57872fdc665dcc585e16f4ac0bb35374b1103f7e libidn-1.33.tar.gz +# Calculated based on the hash above +sha256 44a7aab635bb721ceef6beecc4d49dfd19478325e1b47f3196f7d2acc4930e19 libidn-1.33.tar.gz diff --git a/bsp/buildroot/package/libidn/libidn.mk b/bsp/buildroot/package/libidn/libidn.mk index ab439493..99c9e2cb 100644 --- a/bsp/buildroot/package/libidn/libidn.mk +++ b/bsp/buildroot/package/libidn/libidn.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBIDN_VERSION = 1.32 +LIBIDN_VERSION = 1.33 LIBIDN_SITE = $(BR2_GNU_MIRROR)/libidn LIBIDN_INSTALL_STAGING = YES LIBIDN_CONF_ENV = EMACS="no" diff --git a/bsp/buildroot/package/libiio/0001-cmake-libxml2-detection-try-first-the-CMake-module-f.patch b/bsp/buildroot/package/libiio/0001-cmake-libxml2-detection-try-first-the-CMake-module-f.patch deleted file mode 100644 index 9f441698..00000000 --- a/bsp/buildroot/package/libiio/0001-cmake-libxml2-detection-try-first-the-CMake-module-f.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4f849e1d2287206cfb7ff0fdeca96c22383b0d53 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Mon, 29 Dec 2014 19:05:13 +0100 -Subject: [PATCH] cmake: libxml2 detection: try first the CMake module from - libxml2 - -Libxml2 >=2.9.2 provides its own CMake module, so check for it before -falling back on the CMake's module FindLibXml2.cmake. - -Signed-off-by: Samuel Martin ---- - CMakeLists.txt | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 393fee3..b4f1d26 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -38,7 +38,19 @@ endif() - find_library(AVAHI_CLIENT_LIBRARIES avahi-client) - find_library(AVAHI_COMMON_LIBRARIES avahi-common) - find_library(PTHREAD_LIBRARIES pthread) --include(FindLibXml2) -+ -+# Since libxml2-2.9.2, libxml2 provides its own LibXml2-config.cmake, with all -+# variables correctly set. -+# So, try first to find the CMake module provided by libxml2 package, then fallback -+# on the CMake's FindLibXml2.cmake module (which can lack some definition, especially -+# in static build case). -+find_package(LibXml2 QUIET NO_MODULE) -+if(DEFINED LIBXML2_VERSION_STRING) -+ set(LIBXML2_FOUND ON) -+ set(LIBXML2_INCLUDE_DIR ${LIBXML2_INCLUDE_DIRS}) -+else() -+ include(FindLibXml2) -+endif() - - set(LIBIIO_CFILES channel.c device.c context.c buffer.c utilities.c) - set(LIBIIO_HEADERS iio.h) --- -2.2.1 - diff --git a/bsp/buildroot/package/libiio/0001-lock.c-Don-t-include-pthread.h-if-NO_THREADS-is-defi.patch b/bsp/buildroot/package/libiio/0001-lock.c-Don-t-include-pthread.h-if-NO_THREADS-is-defi.patch new file mode 100644 index 00000000..fd029ccc --- /dev/null +++ b/bsp/buildroot/package/libiio/0001-lock.c-Don-t-include-pthread.h-if-NO_THREADS-is-defi.patch @@ -0,0 +1,26 @@ +From d052d263600549979a6219a59e85af80eeafc6d2 Mon Sep 17 00:00:00 2001 +From: Paul Cercueil +Date: Tue, 5 Jul 2016 12:12:41 +0200 +Subject: [PATCH] lock.c: Don't include if NO_THREADS is defined + +Signed-off-by: Paul Cercueil +--- + lock.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lock.c b/lock.c +index 39248ab..00eb9d9 100644 +--- a/lock.c ++++ b/lock.c +@@ -18,7 +18,7 @@ + + #ifdef _WIN32 + #include +-#else ++#elif !defined(NO_THREADS) + #include + #endif + +-- +2.8.1 + diff --git a/bsp/buildroot/package/libiio/0002-CMake-Link-with-librt-if-found.patch b/bsp/buildroot/package/libiio/0002-CMake-Link-with-librt-if-found.patch new file mode 100644 index 00000000..2c450165 --- /dev/null +++ b/bsp/buildroot/package/libiio/0002-CMake-Link-with-librt-if-found.patch @@ -0,0 +1,30 @@ +From 1bc450179a0819970261e6a29071756d09b71c5f Mon Sep 17 00:00:00 2001 +From: Paul Cercueil +Date: Fri, 19 Aug 2016 09:00:58 +0200 +Subject: [PATCH] CMake: Link with librt if found + +This is required for older versions of glibc. + +Signed-off-by: Paul Cercueil +--- + CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2a339fe..3dd3520 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -113,6 +113,10 @@ add_definitions(-DLIBIIO_VERSION_GIT="${LIBIIO_VERSION_GIT}") + if(WITH_LOCAL_BACKEND) + add_definitions(-DLOCAL_BACKEND=1) + set(LIBIIO_CFILES ${LIBIIO_CFILES} local.c) ++ ++ # Link with librt if present ++ find_library(LIBRT_LIBRARIES rt) ++ set(LIBS_TO_LINK ${LIBS_TO_LINK} ${LIBRT_LIBRARIES}) + endif() + + find_library(LIBUSB_LIBRARIES usb-1.0) +-- +2.8.1 + diff --git a/bsp/buildroot/package/libiio/0002-cmake-fix-build-on-unix-systems-without-cpp.patch b/bsp/buildroot/package/libiio/0002-cmake-fix-build-on-unix-systems-without-cpp.patch deleted file mode 100644 index 4839a394..00000000 --- a/bsp/buildroot/package/libiio/0002-cmake-fix-build-on-unix-systems-without-cpp.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2e6fa357ffbe755bfecaecad4fc82e3307fe2831 Mon Sep 17 00:00:00 2001 -From: Paul Cercueil -Date: Wed, 22 Jul 2015 10:25:01 +0200 -Subject: [PATCH] CMake: Fix build on UNIX systems without a C++ compiler - -Signed-off-by: Paul Cercueil ---- - bindings/csharp/CMakeLists.txt | 2 +- - bindings/python/CMakeLists.txt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/bindings/csharp/CMakeLists.txt b/bindings/csharp/CMakeLists.txt -index 8aafb8f..fceab88 100644 ---- a/bindings/csharp/CMakeLists.txt -+++ b/bindings/csharp/CMakeLists.txt -@@ -1,5 +1,5 @@ - cmake_minimum_required(VERSION 2.8.7) --project(libiio-sharp) -+project(libiio-sharp LANGUAGES NONE) - - find_program(MCS_EXECUTABLE - NAMES mcs csc -diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt -index 22ffdb4..76ceae8 100644 ---- a/bindings/python/CMakeLists.txt -+++ b/bindings/python/CMakeLists.txt -@@ -1,5 +1,5 @@ - cmake_minimum_required(VERSION 2.8.7) --project(libiio-py) -+project(libiio-py LANGUAGES NONE) - - include(FindPythonInterp) - --- -2.1.4 - diff --git a/bsp/buildroot/package/libiio/Config.in b/bsp/buildroot/package/libiio/Config.in index 99da4c1c..2e7a76d8 100644 --- a/bsp/buildroot/package/libiio/Config.in +++ b/bsp/buildroot/package/libiio/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_LIBIIO bool "libiio" - select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND if !BR2_PACKAGE_LIBIIO_NETWORK_BACKEND + select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND if !BR2_PACKAGE_LIBIIO_XML_BACKEND help Libiio is a library to ease the development of software interfacing Linux Industrial I/O (IIO) devices. @@ -15,27 +15,60 @@ config BR2_PACKAGE_LIBIIO_LOCAL_BACKEND help Enable the local backend of the library. -config BR2_PACKAGE_LIBIIO_NETWORK_BACKEND - bool "Network backend" +config BR2_PACKAGE_LIBIIO_XML_BACKEND + bool "XML backend" select BR2_PACKAGE_LIBXML2 default y + help + Enable the XML backend of the library. + +config BR2_PACKAGE_LIBIIO_NETWORK_BACKEND + bool "Network backend" + depends on BR2_PACKAGE_LIBIIO_XML_BACKEND + default y help Enable the network backend of the library. +config BR2_PACKAGE_LIBIIO_USB_BACKEND + bool "USB backend" + depends on BR2_TOOLCHAIN_HAS_THREADS # from libusb + depends on BR2_PACKAGE_LIBIIO_XML_BACKEND + select BR2_PACKAGE_LIBUSB + default y + help + Enable the USB backend of the library. + +comment "The USB backend needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_LIBIIO_SERIAL_BACKEND + bool "Serial backend" + depends on BR2_PACKAGE_LIBIIO_XML_BACKEND + select BR2_PACKAGE_LIBSERIALPORT + default y + help + Enable the serial backend of the library. + config BR2_PACKAGE_LIBIIO_IIOD bool "IIO Daemon" select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_bfin default y help Install the IIO Daemon. comment "IIO Daemon needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_bfin + +comment "IIO Daemon is not yet available on Blackfin" + depends on BR2_bfin config BR2_PACKAGE_LIBIIO_TESTS bool "Install test programs" select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND + select BR2_PACKAGE_LIBIIO_XML_BACKEND select BR2_PACKAGE_LIBIIO_NETWORK_BACKEND depends on BR2_TOOLCHAIN_HAS_THREADS help diff --git a/bsp/buildroot/package/libiio/libiio.hash b/bsp/buildroot/package/libiio/libiio.hash index 28b9c63e..f15182aa 100644 --- a/bsp/buildroot/package/libiio/libiio.hash +++ b/bsp/buildroot/package/libiio/libiio.hash @@ -1,2 +1,2 @@ -# From https://github.com/analogdevicesinc/libiio/archive/v0.5/ -sha256 c41cdcfeae8717e72f1100b4dac9d7cc9d86f4e0731da3354149cb7e051666f3 libiio-0.5.tar.gz +# From https://github.com/analogdevicesinc/libiio/archive/v0.7/ +sha256 c2b02f1cb51870db52368fdaa8087dc2a4ec43f2bc3c3514d8214952f14c3f39 libiio-0.7.tar.gz diff --git a/bsp/buildroot/package/libiio/libiio.mk b/bsp/buildroot/package/libiio/libiio.mk index 0e92b738..e8fb6b2f 100644 --- a/bsp/buildroot/package/libiio/libiio.mk +++ b/bsp/buildroot/package/libiio/libiio.mk @@ -4,22 +4,37 @@ # ################################################################################ -LIBIIO_VERSION = 0.5 +LIBIIO_VERSION = 0.7 LIBIIO_SITE = $(call github,analogdevicesinc,libiio,v$(LIBIIO_VERSION)) LIBIIO_INSTALL_STAGING = YES LIBIIO_LICENSE = LGPLv2.1+ -LIBIIO_LICENSE_FILES = COPYING +LIBIIO_LICENSE_FILES = COPYING.txt LIBIIO_CONF_OPTS = -DENABLE_IPV6=ON \ -DWITH_LOCAL_BACKEND=$(if $(BR2_PACKAGE_LIBIIO_LOCAL_BACKEND),ON,OFF) \ + -DWITH_NETWORK_BACKEND=$(if $(BR2_PACKAGE_LIBIIO_NETWORK_BACKEND),ON,OFF) \ -DWITH_TESTS=$(if $(BR2_PACKAGE_LIBIIO_TESTS),ON,OFF) \ -DWITH_DOC=OFF -ifeq ($(BR2_PACKAGE_LIBIIO_NETWORK_BACKEND),y) +ifeq ($(BR2_PACKAGE_LIBIIO_XML_BACKEND),y) LIBIIO_DEPENDENCIES += libxml2 -LIBIIO_CONF_OPTS += -DWITH_NETWORK_BACKEND=ON +LIBIIO_CONF_OPTS += -DWITH_XML_BACKEND=ON else -LIBIIO_CONF_OPTS += -DWITH_NETWORK_BACKEND=OFF +LIBIIO_CONF_OPTS += -DWITH_XML_BACKEND=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBIIO_USB_BACKEND),y) +LIBIIO_DEPENDENCIES += libusb +LIBIIO_CONF_OPTS += -DWITH_USB_BACKEND=ON +else +LIBIIO_CONF_OPTS += -DWITH_USB_BACKEND=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBIIO_SERIAL_BACKEND),y) +LIBIIO_DEPENDENCIES += libserialport +LIBIIO_CONF_OPTS += -DWITH_SERIAL_BACKEND=ON +else +LIBIIO_CONF_OPTS += -DWITH_SERIAL_BACKEND=OFF endif ifeq ($(BR2_PACKAGE_LIBIIO_IIOD),y) @@ -64,13 +79,6 @@ define LIBIIO_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/libiio/S99iiod \ $(TARGET_DIR)/etc/init.d/S99iiod endef -define LIBIIO_INSTALL_INIT_SYSTEMD - $(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants - $(INSTALL) -D -m 0644 $(@D)/debian/iiod.service \ - $(TARGET_DIR)/usr/lib/systemd/system/iiod.service - ln -fs ../../../../usr/lib/systemd/system/iiod.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/iiod.service -endef endif $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/libimxvpuapi/Config.in b/bsp/buildroot/package/libimxvpuapi/Config.in new file mode 100644 index 00000000..8b8b839c --- /dev/null +++ b/bsp/buildroot/package/libimxvpuapi/Config.in @@ -0,0 +1,16 @@ +comment "libimxvpuapi needs an i.MX platform with VPU support" + depends on BR2_arm + depends on !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU + +config BR2_PACKAGE_LIBIMXVPUAPI + bool "libimxvpuapi" + depends on BR2_arm # Only relevant for i.MX + depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU + select BR2_PACKAGE_IMX_VPU + help + This library provides an API for using the iMX6 VPU video + engine. It is an alternative to Freescale's VPU + wrapper. Both the wrapper and this library are layered on + top of imx-vpu, the low-level iMX6 VPU interface. + + https://github.com/Freescale/libimxvpuapi diff --git a/bsp/buildroot/package/libimxvpuapi/libimxvpuapi.hash b/bsp/buildroot/package/libimxvpuapi/libimxvpuapi.hash new file mode 100644 index 00000000..c8cabcf2 --- /dev/null +++ b/bsp/buildroot/package/libimxvpuapi/libimxvpuapi.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 8e6dc4105db6164c0de72fd60eb73f4ba1632f7ba5052b1abc834b462b566da2 libimxvpuapi-0.10.2.tar.gz diff --git a/bsp/buildroot/package/libimxvpuapi/libimxvpuapi.mk b/bsp/buildroot/package/libimxvpuapi/libimxvpuapi.mk new file mode 100644 index 00000000..df848062 --- /dev/null +++ b/bsp/buildroot/package/libimxvpuapi/libimxvpuapi.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# libimxvpuapi +# +################################################################################ + +LIBIMXVPUAPI_VERSION = 0.10.2 +LIBIMXVPUAPI_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI_VERSION)) +LIBIMXVPUAPI_LICENSE = LGPLv2.1+ +LIBIMXVPUAPI_LICENSE_FILES = LICENSE +LIBIMXVPUAPI_DEPENDENCIES = host-pkgconf host-python imx-vpu +LIBIMXVPUAPI_INSTALL_STAGING = YES + +define LIBIMXVPUAPI_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) $(HOST_DIR)/usr/bin/python2 ./waf configure \ + --prefix=/usr --libdir=/usr/lib +endef + +define LIBIMXVPUAPI_BUILD_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS) +endef + +define LIBIMXVPUAPI_INSTALL_STAGING_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(STAGING_DIR) install +endef + +define LIBIMXVPUAPI_INSTALL_TARGET_CMDS + cd $(@D); \ + $(HOST_DIR)/usr/bin/python2 ./waf --destdir=$(TARGET_DIR) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/libinput/0001-rename-log_msg-to-libinput_log_msg.patch b/bsp/buildroot/package/libinput/0001-rename-log_msg-to-libinput_log_msg.patch deleted file mode 100644 index e36862a1..00000000 --- a/bsp/buildroot/package/libinput/0001-rename-log_msg-to-libinput_log_msg.patch +++ /dev/null @@ -1,77 +0,0 @@ -From bf4a4a4e2b0479322fe16c9e1f15f146daa893ee Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Thu, 21 Aug 2014 18:18:16 +0200 -Subject: [PATCH] rename log_msg to libinput_log_msg - -This fixes a conflict between libevdev and libinput on the definition -of the log_msg() symbol. - -http://autobuild.buildroot.net/results/c13/c133b7c706ee31302125df8ca94f4d0f0152c6c6/build-end.log - -Signed-off-by: Romain Naour -[yann.morin.1998@free.fr: rebase on-top of 0.6.0] -Signed-off-by: "Yann E. MORIN" -[ps.report@gmx.net: rebase on top of 0.7.0] -Signed-off-by: Peter Seiderer ---- - src/libinput-private.h | 14 +++++++------- - src/libinput.c | 2 +- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/libinput-private.h b/src/libinput-private.h -index b36dc95..98f91b3 100644 ---- a/src/libinput-private.h -+++ b/src/libinput-private.h -@@ -259,12 +259,12 @@ - - typedef void (*libinput_source_dispatch_t)(void *data); - --#define log_debug(li_, ...) log_msg((li_), LIBINPUT_LOG_PRIORITY_DEBUG, __VA_ARGS__) --#define log_info(li_, ...) log_msg((li_), LIBINPUT_LOG_PRIORITY_INFO, __VA_ARGS__) --#define log_error(li_, ...) log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, __VA_ARGS__) --#define log_bug_kernel(li_, ...) log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, "kernel bug: " __VA_ARGS__) --#define log_bug_libinput(li_, ...) log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, "libinput bug: " __VA_ARGS__) --#define log_bug_client(li_, ...) log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, "client bug: " __VA_ARGS__) -+#define log_debug(li_, ...) libinput_log_msg((li_), LIBINPUT_LOG_PRIORITY_DEBUG, __VA_ARGS__) -+#define log_info(li_, ...) libinput_log_msg((li_), LIBINPUT_LOG_PRIORITY_INFO, __VA_ARGS__) -+#define log_error(li_, ...) libinput_log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, __VA_ARGS__) -+#define log_bug_kernel(li_, ...) libinput_log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, "kernel bug: " __VA_ARGS__) -+#define log_bug_libinput(li_, ...) libinput_log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, "libinput bug: " __VA_ARGS__) -+#define log_bug_client(li_, ...) libinput_log_msg((li_), LIBINPUT_LOG_PRIORITY_ERROR, "client bug: " __VA_ARGS__) - - #define log_debug_ratelimit(li_, r_, ...) log_msg_ratelimit((li_), (r_), LIBINPUT_LOG_PRIORITY_DEBUG, __VA_ARGS__) - #define log_info_ratelimit(li_, r_, ...) log_msg_ratelimit((li_), (r_), LIBINPUT_LOG_PRIORITY_INFO, __VA_ARGS__) -@@ -281,7 +281,7 @@ - LIBINPUT_ATTRIBUTE_PRINTF(4, 5); - - void --log_msg(struct libinput *libinput, -+libinput_log_msg(struct libinput *libinput, - enum libinput_log_priority priority, - const char *format, ...) - LIBINPUT_ATTRIBUTE_PRINTF(3, 4); -diff --git a/src/libinput.c b/src/libinput.c -index 279cce0..5748e5e 100644 ---- a/src/libinput.c -+++ b/src/libinput.c -@@ -155,7 +155,7 @@ - } - - void --log_msg(struct libinput *libinput, -+libinput_log_msg(struct libinput *libinput, - enum libinput_log_priority priority, - const char *format, ...) - { -@@ -184,7 +184,7 @@ - va_end(args); - - if (state == RATELIMIT_THRESHOLD) -- log_msg(libinput, -+ libinput_log_msg(libinput, - priority, - "WARNING: log rate limit exceeded (%d msgs per %dms). Discarding future messages.\n", - ratelimit->burst, --- -2.1.2 - diff --git a/bsp/buildroot/package/libinput/libinput.hash b/bsp/buildroot/package/libinput/libinput.hash index ea4c8e70..9f628ccd 100644 --- a/bsp/buildroot/package/libinput/libinput.hash +++ b/bsp/buildroot/package/libinput/libinput.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/wayland-devel/2016-January/026701.html -sha256 5e08c45dbb8bf32490cc6cd626da098564d646d161a07cba2e3adbd9745c0622 libinput-1.1.5.tar.xz +# From https://lists.freedesktop.org/archives/wayland-devel/2016-July/030121.html +sha256 76ef10874519d1a67b57e5c68ede06106b9fbf611a3ecf69c84886107c67b420 libinput-1.4.0.tar.xz diff --git a/bsp/buildroot/package/libinput/libinput.mk b/bsp/buildroot/package/libinput/libinput.mk index 6d8b7b61..01b67720 100644 --- a/bsp/buildroot/package/libinput/libinput.mk +++ b/bsp/buildroot/package/libinput/libinput.mk @@ -4,16 +4,21 @@ # ################################################################################ -LIBINPUT_VERSION = 1.1.5 +LIBINPUT_VERSION = 1.4.0 LIBINPUT_SOURCE = libinput-$(LIBINPUT_VERSION).tar.xz LIBINPUT_SITE = http://www.freedesktop.org/software/libinput -LIBINPUT_LICENSE = MIT -LIBINPUT_LICENSE_FILES = COPYING - LIBINPUT_DEPENDENCIES = host-pkgconf libevdev mtdev udev LIBINPUT_INSTALL_STAGING = YES - +LIBINPUT_LICENSE = MIT +LIBINPUT_LICENSE_FILES = COPYING # Tests need fork, so just disable them everywhere. -LIBINPUT_CONF_OPTS = --disable-tests +LIBINPUT_CONF_OPTS = --disable-tests --disable-libwacom + +ifeq ($(BR2_PACKAGE_LIBGTK3),y) +LIBINPUT_CONF_OPTS += --enable-event-gui +LIBINPUT_DEPENDENCIES += libgtk3 +else +LIBINPUT_CONF_OPTS += --disable-event-gui +endif $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libiqrf/libiqrf.hash b/bsp/buildroot/package/libiqrf/libiqrf.hash new file mode 100644 index 00000000..12d526c8 --- /dev/null +++ b/bsp/buildroot/package/libiqrf/libiqrf.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 8111031dd9dd6093a1927eb32dd7476fe22cfee9190043aa8e4c88003c104b16 libiqrf-v0.1.2.tar.gz diff --git a/bsp/buildroot/package/libksba/Config.in b/bsp/buildroot/package/libksba/Config.in index 780fed9b..1f25d6db 100644 --- a/bsp/buildroot/package/libksba/Config.in +++ b/bsp/buildroot/package/libksba/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_LIBKSBA bool "libksba" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error select BR2_PACKAGE_LIBGPG_ERROR help CMS and X.509 library diff --git a/bsp/buildroot/package/libksba/libksba.hash b/bsp/buildroot/package/libksba/libksba.hash index f7727f10..92abbab6 100644 --- a/bsp/buildroot/package/libksba/libksba.hash +++ b/bsp/buildroot/package/libksba/libksba.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 0c7f5ffe34d0414f6951d9880a46fcc2985c487f7c36369b9f11ad41131c7786 libksba-1.3.3.tar.bz2 +sha256 f6c2883cebec5608692d8730843d87f237c0964d923bbe7aa89c05f20558ad4f libksba-1.3.4.tar.bz2 diff --git a/bsp/buildroot/package/libksba/libksba.mk b/bsp/buildroot/package/libksba/libksba.mk index 76515347..40a8c9b5 100644 --- a/bsp/buildroot/package/libksba/libksba.mk +++ b/bsp/buildroot/package/libksba/libksba.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBKSBA_VERSION = 1.3.3 +LIBKSBA_VERSION = 1.3.4 LIBKSBA_SOURCE = libksba-$(LIBKSBA_VERSION).tar.bz2 LIBKSBA_SITE = ftp://ftp.gnupg.org/gcrypt/libksba LIBKSBA_LICENSE = LGPLv3+ or GPLv2+ (library, headers), GPLv3+ (manual, tests, build system) diff --git a/bsp/buildroot/package/libldns/0001-bugfix-548-Double-free-for-answers-4096.patch b/bsp/buildroot/package/libldns/0001-bugfix-548-Double-free-for-answers-4096.patch new file mode 100644 index 00000000..4097cfed --- /dev/null +++ b/bsp/buildroot/package/libldns/0001-bugfix-548-Double-free-for-answers-4096.patch @@ -0,0 +1,28 @@ +From 128aeb54593d4dd8ff2403eb2dd7d6cd596717d2 Mon Sep 17 00:00:00 2001 +From: Willem Toorop +Date: Tue, 28 Jan 2014 11:06:38 +0100 +Subject: [PATCH] bugfix #548: Double free for answers > 4096 + +in ldns_resolver_send_pkt. Thank you sunthought@gmail.com + +[Backport from upstream commit 2853eb352b4461e98f2926ace4ea3810cedf4167] +Signed-off-by: Bernd Kuhls +--- + resolver.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/resolver.c b/resolver.c +index 16efc90..1474dc8 100644 +--- a/resolver.c ++++ b/resolver.c +@@ -1117,6 +1117,7 @@ ldns_resolver_send_pkt(ldns_pkt **answer, ldns_resolver *r, + ldns_pkt_set_edns_udp_size(query_pkt + , 4096); + ldns_pkt_free(answer_pkt); ++ answer_pkt = NULL; + /* Nameservers should not become + * unreachable because fragments are + * dropped (network error). We might +-- +2.6.4 + diff --git a/bsp/buildroot/package/libldns/0001-fix-double-free-for-answers-bigger-than-4096.patch b/bsp/buildroot/package/libldns/0001-fix-double-free-for-answers-bigger-than-4096.patch deleted file mode 100644 index 36bc8753..00000000 --- a/bsp/buildroot/package/libldns/0001-fix-double-free-for-answers-bigger-than-4096.patch +++ /dev/null @@ -1,25 +0,0 @@ -Downloaded from -http://anonscm.debian.org/cgit/pkg-nlnetlabs/ldns.git/plain/debian/patches/fix-double-free-for-answers-bigger-than-4096.patch - -which is a backport from upstream -http://git.nlnetlabs.nl/ldns/commit/?h=develop&id=2853eb352b4461e98f2926ace4ea3810cedf4167 - -Signed-off-by: Bernd Kuhls - -From 2853eb352b4461e98f2926ace4ea3810cedf4167 Mon Sep 17 00:00:00 2001 -From: Willem Toorop -Date: Tue, 28 Jan 2014 11:06:38 +0100 -Subject: bugfix #548: Double free for answers > 4096 - -in ldns_resolver_send_pkt. Thank you sunthought@gmail.com ---- ---- ldns.orig/resolver.c -+++ ldns/resolver.c -@@ -1117,6 +1117,7 @@ ldns_resolver_send_pkt(ldns_pkt **answer - ldns_pkt_set_edns_udp_size(query_pkt - , 4096); - ldns_pkt_free(answer_pkt); -+ answer_pkt = NULL; - /* Nameservers should not become - * unreachable because fragments are - * dropped (network error). We might diff --git a/bsp/buildroot/package/libldns/0002-fix-whitespace-bug-in-ldns-read-zone.patch b/bsp/buildroot/package/libldns/0002-whitespace-bug-in-ldns-read-zone.patch similarity index 61% rename from bsp/buildroot/package/libldns/0002-fix-whitespace-bug-in-ldns-read-zone.patch rename to bsp/buildroot/package/libldns/0002-whitespace-bug-in-ldns-read-zone.patch index 4d8908eb..ec87b18e 100644 --- a/bsp/buildroot/package/libldns/0002-fix-whitespace-bug-in-ldns-read-zone.patch +++ b/bsp/buildroot/package/libldns/0002-whitespace-bug-in-ldns-read-zone.patch @@ -1,20 +1,19 @@ -Dwonloaded from -http://anonscm.debian.org/cgit/pkg-nlnetlabs/ldns.git/tree/debian/patches/fix-whitespace-bug-in-ldns-read-zone.patch - -which is a backport from -http://git.nlnetlabs.nl/ldns/commit/?h=develop&id=d6037a22fbedb8ef3a22de4107e4eaa36840865b - -Signed-off-by: Bernd Kuhls - -From d6037a22fbedb8ef3a22de4107e4eaa36840865b Mon Sep 17 00:00:00 2001 +From 055ea6aef77058f651b5571d98d2d9458821a977 Mon Sep 17 00:00:00 2001 From: Matthijs Mekking Date: Wed, 18 Jun 2014 09:55:17 +0200 -Subject: whitespace bug in ldns-read-zone +Subject: [PATCH] whitespace bug in ldns-read-zone +[Backport from upstream commit d6037a22fbedb8ef3a22de4107e4eaa36840865b] +Signed-off-by: Bernd Kuhls --- ---- ldns.orig/rr.c -+++ ldns/rr.c -@@ -670,6 +670,18 @@ ldns_rr_new_question_frm_str(ldns_rr **n + rr.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/rr.c b/rr.c +index cfee170..e530702 100644 +--- a/rr.c ++++ b/rr.c +@@ -670,6 +670,18 @@ ldns_rr_new_question_frm_str(ldns_rr **newrr, const char *str, true); } @@ -33,7 +32,7 @@ Subject: whitespace bug in ldns-read-zone ldns_status ldns_rr_new_frm_fp(ldns_rr **newrr, FILE *fp, uint32_t *ttl, ldns_rdf **origin, ldns_rdf **prev) { -@@ -745,6 +757,9 @@ ldns_rr_new_frm_fp_l(ldns_rr **newrr, FI +@@ -745,6 +757,9 @@ ldns_rr_new_frm_fp_l(ldns_rr **newrr, FILE *fp, uint32_t *default_ttl, ldns_rdf s = LDNS_STATUS_SYNTAX_TTL; } else if (strncmp(line, "$INCLUDE", 8) == 0) { s = LDNS_STATUS_SYNTAX_INCLUDE; @@ -43,3 +42,6 @@ Subject: whitespace bug in ldns-read-zone } else { if (origin && *origin) { s = ldns_rr_new_frm_str(&rr, (const char*) line, ttl, *origin, prev); +-- +2.6.4 + diff --git a/bsp/buildroot/package/libldns/0003-let-doxyparse-output-manpage-generation-issues.patch b/bsp/buildroot/package/libldns/0003-let-doxyparse-output-manpage-generation-issues.patch new file mode 100644 index 00000000..223ebe98 --- /dev/null +++ b/bsp/buildroot/package/libldns/0003-let-doxyparse-output-manpage-generation-issues.patch @@ -0,0 +1,116 @@ +From d8a3da12be085fbc92e3d4d4d084c328fc37485a Mon Sep 17 00:00:00 2001 +From: Willem Toorop +Date: Thu, 27 Nov 2014 16:21:54 +0100 +Subject: [PATCH] let doxyparse output manpage generation issues + +[Backport from upstream commit +168ee09a4bf184947798c3ee3ac99b6651470d64, fixes the build with Perl +5.22.] +Signed-off-by: Bernd Kuhls +--- + doc/doxyparse.pl | 45 ++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 38 insertions(+), 7 deletions(-) + +diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl +index 96a1732..a09b2e8 100755 +--- a/doc/doxyparse.pl ++++ b/doc/doxyparse.pl +@@ -57,10 +57,15 @@ This manpage was automaticly generated from the ldns source code by + use of Doxygen and some perl. + "; + +-getopts("m:",\%options); ++getopts("em:",\%options); + # if -m manpage file is given process that file + # parse the file which tells us what manpages go together + my $functions, $see_also; ++my $i = -1; ++my $report_errors = defined $options{'e'}; ++my $errors = 0; ++my %unique; ++ + if (defined $options{'m'}) { + # process + open(MAN, "<$options{'m'}") or die "Cannot open $options{'m'}"; +@@ -68,18 +73,35 @@ if (defined $options{'m'}) { + # func1, func2, .. | see_also1, see_also2, ... + while() { + chomp; ++ $i += 1; + if (/^#/) { next; } + if (/^$/) { next; } +- ($functions, $see_also) = split /[\t ]*\|[\t ]*/, $_; +- #print "{$functions}\n"; +- #print "{$see_also}\n"; ++ my @parts = split /[\t ]*\|[\t ]*/, $_; ++ $functions = shift @parts; ++ $see_also = join ', ', @parts; ++ print "{$functions}\n"; ++ print "{$see_also}\n"; + my @funcs = split /[\t ]*,[\t ]*/, $functions; + my @also = split /[\t ]*,[\t ]*/, $see_also; + $manpages{$funcs[0]} = \@funcs; + $see_also{$funcs[0]} = \@also; ++ foreach (@funcs) { ++ if ($unique{$_}) { ++ push $unique{$_}, ($i,); ++ } else { ++ $unique{$_} = [$i]; ++ } ++ } + #print "[", $funcs[0], "]\n"; + } + close(MAN); ++ while (($func, $lines) = each %unique ) { ++ if (scalar @$lines > 1) { ++ print STDERR "$func in function_manpages on lines: " ++ . join(", ",@$lines) . "\n" if $report_errors; ++ $errors += 1; ++ } ++ } + } else { + print "Need -m file to process the .h files\n"; + exit 1; +@@ -95,7 +117,7 @@ mkdir "doc/man"; + mkdir "doc/man/man$MAN_SECTION"; + + $state = 0; +-my $i; ++$i = 0; + my @lines = ; + my $max = @lines; + +@@ -273,7 +295,7 @@ foreach (keys %manpages) { + + print MAN $MAN_MIDDLE; + +- if (defined(@$also)) { ++ if (@$also) { + print MAN "\n.SH SEE ALSO\n\\fI"; + print MAN join "\\fR, \\fI", @$also; + print MAN "\\fR.\nAnd "; +@@ -290,7 +312,7 @@ foreach (keys %manpages) { + # create symlinks + chdir("$BASE/man$MAN_SECTION"); + foreach (@$name) { +- print STDERR $_,"\n"; ++ print STDOUT $_,"\n"; + my $new_file = $_ . "." . $MAN_SECTION; + if ($new_file eq $symlink_file) { + next; +@@ -301,3 +323,12 @@ foreach (keys %manpages) { + chdir("../../.."); # and back, tricky and fragile... + close(MAN); + } ++foreach (keys %api) { ++ next if (/ / || /^$/); ++ if (not $unique{$_}) { ++ print STDERR "no man page for $_\n" if $report_errors; ++ $errors += 1; ++ } ++} ++ ++exit ($report_errors and $errors != 0); +-- +2.6.4 + diff --git a/bsp/buildroot/package/libldns/0004-Comment-out-debugging-remnants.patch b/bsp/buildroot/package/libldns/0004-Comment-out-debugging-remnants.patch new file mode 100644 index 00000000..65925387 --- /dev/null +++ b/bsp/buildroot/package/libldns/0004-Comment-out-debugging-remnants.patch @@ -0,0 +1,31 @@ +From 9720f6f7fdae210aa6d87d97324abd32e103dd16 Mon Sep 17 00:00:00 2001 +From: Willem Toorop +Date: Thu, 27 Nov 2014 16:50:33 +0100 +Subject: [PATCH] Comment out debugging remnants + +[Backport from upstream commit +a0a943d504debb05ce4d62ea81c2d218a6cc8727, needed for a following patch +fixing the build with Perl 5.10.] +Signed-off-by: Bernd Kuhls +--- + doc/doxyparse.pl | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl +index a09b2e8..3f7897f 100755 +--- a/doc/doxyparse.pl ++++ b/doc/doxyparse.pl +@@ -79,8 +79,8 @@ if (defined $options{'m'}) { + my @parts = split /[\t ]*\|[\t ]*/, $_; + $functions = shift @parts; + $see_also = join ', ', @parts; +- print "{$functions}\n"; +- print "{$see_also}\n"; ++ #print "{$functions}\n"; ++ #print "{$see_also}\n"; + my @funcs = split /[\t ]*,[\t ]*/, $functions; + my @also = split /[\t ]*,[\t ]*/, $see_also; + $manpages{$funcs[0]} = \@funcs; +-- +2.6.4 + diff --git a/bsp/buildroot/package/libldns/0005-Remove-manpage-content-nondeterminicity-warnings.patch b/bsp/buildroot/package/libldns/0005-Remove-manpage-content-nondeterminicity-warnings.patch new file mode 100644 index 00000000..c2826340 --- /dev/null +++ b/bsp/buildroot/package/libldns/0005-Remove-manpage-content-nondeterminicity-warnings.patch @@ -0,0 +1,429 @@ +From adcef14bb9257ab38238eacabaa48cb7e8ef471f Mon Sep 17 00:00:00 2001 +From: Willem Toorop +Date: Wed, 14 Jan 2015 10:14:32 +0100 +Subject: [PATCH] Remove manpage content nondeterminicity & warnings + +TODO: Missing manpages + +[Backport upstream commit a56e48856d519d12f1ef600848f335615467f147, +which fixes the build with Perl 5.10.] +Signed-off-by: Bernd Kuhls +--- + doc/doxyparse.pl | 20 +++-- + doc/function_manpages | 244 ++++++++++++++++++++++++-------------------------- + 2 files changed, 133 insertions(+), 131 deletions(-) + +diff --git a/doc/doxyparse.pl b/doc/doxyparse.pl +index 3f7897f..b9f015d 100755 +--- a/doc/doxyparse.pl ++++ b/doc/doxyparse.pl +@@ -35,7 +35,7 @@ my %see_also; + + my $BASE="doc/man"; + my $MAN_SECTION = "3"; +-my $MAN_HEADER = ".TH ldns $MAN_SECTION \"30 May 2006\"\n"; ++my $MAN_HEADER = ".ad l\n.TH ldns $MAN_SECTION \"30 May 2006\"\n"; + my $MAN_MIDDLE = ".SH AUTHOR + The ldns team at NLnet Labs. Which consists out of + Jelte Jansen and Miek Gieben. +@@ -60,8 +60,8 @@ use of Doxygen and some perl. + getopts("em:",\%options); + # if -m manpage file is given process that file + # parse the file which tells us what manpages go together +-my $functions, $see_also; +-my $i = -1; ++my $functions, $see_also, $shorts; ++my $i = 0; + my $report_errors = defined $options{'e'}; + my $errors = 0; + my %unique; +@@ -78,16 +78,22 @@ if (defined $options{'m'}) { + if (/^$/) { next; } + my @parts = split /[\t ]*\|[\t ]*/, $_; + $functions = shift @parts; +- $see_also = join ', ', @parts; ++ @parts = split /[\t ]*-[\t ]*/, join ', ', @parts; ++ $see_also = shift @parts; ++ if (! $see_also) { ++ @parts = split /[\t ]*-[\t ]*/, $_; ++ $functions = shift @parts; ++ } + #print "{$functions}\n"; + #print "{$see_also}\n"; + my @funcs = split /[\t ]*,[\t ]*/, $functions; + my @also = split /[\t ]*,[\t ]*/, $see_also; + $manpages{$funcs[0]} = \@funcs; + $see_also{$funcs[0]} = \@also; ++ $shorts{$funcs[0]} = join '', @parts; + foreach (@funcs) { + if ($unique{$_}) { +- push $unique{$_}, ($i,); ++ push @{$unique{$_}}, ($i,); + } else { + $unique{$_} = [$i]; + } +@@ -249,6 +255,7 @@ while($i < $max) { + foreach (keys %manpages) { + $name = $manpages{$_}; + $also = $see_also{$_}; ++ my $shrt = $shorts{$_}; + + $filename = @$name[0]; + $filename = "$BASE/man$MAN_SECTION/$filename.$MAN_SECTION"; +@@ -261,6 +268,9 @@ foreach (keys %manpages) { + print MAN $MAN_HEADER; + print MAN ".SH NAME\n"; + print MAN join ", ", @$name; ++ if ($shrt) { ++ print MAN " \\- $shrt"; ++ } + print MAN "\n\n"; + print MAN ".SH SYNOPSIS\n"; + +diff --git a/doc/function_manpages b/doc/function_manpages +index ce05899..db53ee5 100644 +--- a/doc/function_manpages ++++ b/doc/function_manpages +@@ -8,221 +8,213 @@ + + ### host2wire.h + # conversion functions +-ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire | ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf ++ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire | ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf - conversion functions + # lower level conversions, some are from host2str.h +-ldns_pkt2buffer_str, ldns_pktheader2buffer_str, ldns_rr2buffer_str, ldns_rr_list2buffer_str, ldns_rdf2buffer_str, ldns_key2buffer_str, ldns_pkt2buffer_wire, ldns_rr2buffer_wire, ldns_rdf2buffer_wire, ldns_rrsig2buffer_wire, ldns_rr_rdata2buffer_wire | ldns_pkt2str, ldns_rr2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str ++ldns_pkt2buffer_str, ldns_pktheader2buffer_str, ldns_rr2buffer_str, ldns_rr_list2buffer_str, ldns_rdf2buffer_str, ldns_key2buffer_str, ldns_pkt2buffer_wire, ldns_rr2buffer_wire, ldns_rdf2buffer_wire, ldns_rrsig2buffer_wire, ldns_rr_rdata2buffer_wire | ldns_pkt2str, ldns_rr2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str - lower level conversions + ### /host2wire.h + + ### host2str.h +-ldns_rr2str, ldns_pkt2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str | ldns_rr_print, ldns_rdf_print, ldns_pkt_print, ldns_rr_list_print, ldns_resolver_print, ldns_zone_print +-ldns_rr_print, ldns_rdf_print, ldns_pkt_print, ldns_rr_list_print, ldns_resolver_print, ldns_zone_print | ldns_rr2str, ldns_rdf2str, ldns_pkt2str, ldns_rr_list2str, ldns_key2str ++ldns_rr2str, ldns_pkt2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str | ldns_rr_print, ldns_rdf_print, ldns_pkt_print, ldns_rr_list_print, ldns_resolver_print, ldns_zone_print - functions for conversions to string + ### /host2str.h + + ### host2str.h + # and even lower +-ldns_rdf2buffer_str_a, ldns_rdf2buffer_str_aaaa, ldns_rdf2buffer_str_str, ldns_rdf2buffer_str_b64, ldns_rdf2buffer_str_hex, ldns_rdf2buffer_str_type, ldns_rdf2buffer_str_class, ldns_rdf2buffer_str_alg, ldns_rdf2buffer_str_loc, ldns_rdf2buffer_str_unknown, ldns_rdf2buffer_str_nsap, ldns_rdf2buffer_str_wks, ldns_rdf2buffer_str_nsec, ldns_rdf2buffer_str_period, ldns_rdf2buffer_str_tsigtime, ldns_rdf2buffer_str_apl, ldns_rdf2buffer_str_int16_data, ldns_rdf2buffer_str_int16, ldns_rdf2buffer_str_ipseckey ++ldns_rdf2buffer_str_a, ldns_rdf2buffer_str_aaaa, ldns_rdf2buffer_str_str, ldns_rdf2buffer_str_b64, ldns_rdf2buffer_str_hex, ldns_rdf2buffer_str_type, ldns_rdf2buffer_str_class, ldns_rdf2buffer_str_alg, ldns_rdf2buffer_str_loc, ldns_rdf2buffer_str_unknown, ldns_rdf2buffer_str_nsap, ldns_rdf2buffer_str_wks, ldns_rdf2buffer_str_nsec, ldns_rdf2buffer_str_period, ldns_rdf2buffer_str_tsigtime, ldns_rdf2buffer_str_apl, ldns_rdf2buffer_str_int16_data, ldns_rdf2buffer_str_int16, ldns_rdf2buffer_str_ipseckey - lower level to string conversion functions + ### /host2str.h + + ### wire2host.h + # wirefunctions +-ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf, ldns_wire2dname | ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire, ldns_dname2wire +-ldns_buffer2pkt_wire ++ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf, ldns_wire2dname | ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire, ldns_dname2wire - convert from wire format to host type ++ldns_buffer2pkt_wire - convert buffer/wire format to ldns_pkt + ### /wire2host.h + + ### dname.h +-ldns_dname_left_chop, ldns_dname_label_count | ldns_dname +-ldns_dname2canonical | ldns_dname +-ldns_dname_cat_clone, ldns_dname_cat | ldns_dname +-ldns_dname_new, ldns_dname_new_frm_str, ldns_dname_new_frm_data | ldns_dname, ldns_pkt_query_new_frm_str, ldns_rdf_new_frm_str, ldns_rr_new_frm_str +-ldns_dname_is_subdomain, ldns_dname_str_absolute, ldns_dname_label | ldns_dname +-ldns_dname_compare, ldns_dname_interval | ldns_dname_is_subdomain | ldns_dname +-ldns_dname | ldns_dname_left_chop, ldns_dname_label_count, ldns_dname2canonical, ldns_dname_cat, ldns_dname_cat_clone, ldns_dname_new, ldns_dname_new_frm_str, ldns_dname_new_frm_data, ldns_dname_is_subdomain, ldns_dname_str_absolute, ldns_dname_label, ldns_dname_compare, ldns_dname_interval ++ldns_dname_left_chop, ldns_dname_label_count - dname label functions ++ldns_dname2canonical - canonicalize dname ++ldns_dname_cat_clone, ldns_dname_cat - concatenate two dnames ++ldns_dname_new, ldns_dname_new_frm_str, ldns_dname_new_frm_data | ldns_pkt_query_new_frm_str, ldns_rdf_new_frm_str, ldns_rr_new_frm_str - create a dname ++ldns_dname_is_subdomain, ldns_dname_str_absolute, ldns_dname_label - check properties of dnames ++ldns_dname_compare, ldns_dname_interval | ldns_dname_is_subdomain - compare two dnames + ### /dname.h + + ### dane.h +-ldns_dane_create_tlsa_owner, ldns_dane_cert2rdf, ldns_dane_select_certificate, ldns_dane_create_tlsa_rr | ldns_dane_verify, ldns_dane_verify_rr +-ldns_dane_verify, ldns_dane_verify_rr | ldns_dane_create_tlsa_owner, ldns_dane_cert2rdf, ldns_dane_select_certificate, ldns_dane_create_tlsa_rr ++ldns_dane_create_tlsa_rr, ldns_dane_create_tlsa_owner, ldns_dane_cert2rdf, ldns_dane_select_certificate | ldns_dane_verify, ldns_dane_verify_rr - TLSA RR creation functions ++ldns_dane_verify, ldns_dane_verify_rr | ldns_dane_create_tlsa_owner, ldns_dane_cert2rdf, ldns_dane_select_certificate, ldns_dane_create_tlsa_rr - TLSA RR verification functions + ### /dane.h + + ### rdata.h +-ldns_rdf, ldns_rdf_type | ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data, ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare, ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t +-ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data | ldns_rdf +-ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare | ldns_rdf +-ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print | ldns_rdf +-ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t | ldns_rdf +-ldns_rdf_address_reverse | ldns_rdf +-ldns_octet | ldns_rdf ++ldns_rdf, ldns_rdf_type | ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data, ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare, ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t - rdata field type ++ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data | ldns_rdf - set rdf attributes ++ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare | ldns_rdf - get rdf attributes ++ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print | ldns_rdf - ldns_rdf creation, destruction and printing ++ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t | ldns_rdf - rdf numeric converion functions ++ldns_rdf_address_reverse | ldns_rdf - reverse an address rdf ++ldns_octet | ldns_rdf - removes escaped from the input + # why is this in rdata.h? +-ldns_str2period ++ldns_str2period - converts a ttl value (like 5d2h) to a long + ### /rdata.h + + ### higher.h +-ldns_get_rr_list_addr_by_name, ldns_get_rr_list_name_by_addr | ldns_rr_list, ldns_rr +-ldns_get_rr_list_hosts_frm_fp, ldns_get_rr_list_hosts_frm_file | ldns_rr_list, ldns_rr, ldns_get_rr_list_hosts_frm_fp_l +-ldns_get_rr_list_hosts_frm_fp_l | ldns_rr_list +-ldns_getaddrinfo ++ldns_get_rr_list_addr_by_name, ldns_get_rr_list_name_by_addr | ldns_rr_list, ldns_rr - get addresses by name or names by address ++ldns_get_rr_list_hosts_frm_file, ldns_get_rr_list_hosts_frm_fp, ldns_get_rr_list_hosts_frm_fp_l | ldns_rr_list, ldns_rr - parse /etc/hosts file ++ldns_getaddrinfo - mimic libc getaddrinfo + ### /higher.h + + # + ### dnssec.h + # +-ldns_calc_keytag, ldns_verify, ldns_verify_rrsig, ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5, ldns_key_rr2ds, ldns_key_buf2dsa, ldns_key_buf2rsa | ldns_key, ldns_sign_public, ldns_zone_sign, ldns_verify, ldns_verify_rrsig +- + # algs +-ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5 | ldns_key, ldns_sign_public, ldns_zone_sign, ldns_verify, ldns_verify_rrsig ++ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5 | ldns_key, ldns_sign_public, ldns_zone_sign, ldns_verify, ldns_verify_rrsig - verify signature data buffers + + # tsig +-ldns_pkt_tsig_verify, ldns_pkt_tsig_sign | ldns_key ++ldns_pkt_tsig_verify, ldns_pkt_tsig_sign | ldns_key - tsig signing and verification + + # verify +-ldns_verify, ldns_verify_rrsig, ldns_verify_rrsig_keylist, ldns_verify_rrsig_keylist_notime, ldns_verify_notime | ldns_verify_rrsig_evp | ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5, ldns_sign_public, ldns_zone_sign, ldns_key ++ldns_verify, ldns_verify_rrsig, ldns_verify_rrsig_keylist, ldns_verify_rrsig_keylist_notime, ldns_verify_notime | ldns_verify_rrsig_evp | ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5, ldns_sign_public, ldns_zone_sign, ldns_key - verify rrsigs + + # convert +-ldns_key_buf2dsa, ldns_key_buf2rsa | ldns_key_rr2ds +-ldns_key_rr2ds | ldns_key +-ldns_create_nsec | ldns_sign_public ++ldns_key_buf2dsa, ldns_key_buf2rsa | ldns_key_rr2ds - convert buffer to openssl key ++ldns_key_rr2ds | ldns_key - create DS rr from DNSKEY rr ++ldns_create_nsec | ldns_sign_public - Create a NSEC record + + # signing +-ldns_sign_public | ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1, ldns_verify, ldns_verify_rrsig, ldns_key +-ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1 | ldns_sign_public +-ldns_dnssec_zone_sign, ldns_dnssec_zone_sign_nsec3 | ldns_zone_sign, ldns_zone_sign_nsec3 | ldns_sign_public, ldns_key, ldns_init_random +-ldns_init_random | ldns_sign_public, ldns_key +-ldns_pkt_verify | ldns_verify, ldns_sign_public, ldns_zone_sign ++ldns_sign_public | ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1, ldns_verify, ldns_verify_rrsig, ldns_key - sign an rrset ++ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1 | ldns_sign_public - sign buffer ++ldns_init_random | ldns_sign_public, ldns_key - seed the random function ++ldns_pkt_verify | ldns_verify, ldns_sign_public, ldns_zone_sign - verify a packet ++ldns_zone_sign, ldns_zone_sign_nsec3 - dnssec sign a zone + + # new family of dnssec functions +-ldns_dnssec_zone, ldns_dnssec_name, ldns_dnssec_rrs, ldns_dnssec_rrsets | ldns_dnssec_zone_new, ldns_dnssec_name_new, ldns_dnssec_rrs_new, ldns_dnssec_rrsets_new +-ldns_dnssec_zone_find_rrset, ldns_dnssec_zone_new, ldns_dnssec_zone_free, ldns_dnssec_zone_add_rr, ldns_dnssec_zone_names_print, ldns_dnssec_zone_print, ldns_dnssec_zone_add_empty_nonterminals | ldns_dnssec_zone +-ldns_dnssec_name_new, ldns_dnssec_name_new_frm_rr, ldns_dnssec_name_free, ldns_dnssec_name_name, ldns_dnssec_name_set_name, ldns_dnssec_name_set_nsec, ldns_dnssec_name_cmp, ldns_dnssec_name_add_rr, ldns_dnssec_name_find_rrset, ldns_dnssec_name_print | ldns_dnssec_zone +-ldns_dnssec_rrsets_new, ldns_dnssec_rrsets_free, ldns_dnssec_rrsets_type, ldns_dnssec_rrsets_set_type, ldns_dnssec_rrsets_add_rr, ldns_dnssec_rrsets_print | ldns_dnssec_zone +-ldns_dnssec_rrs_new, ldns_dnssec_rrs_free, ldns_dnssec_rrs_add_rr, ldns_dnssec_rrs_print | ldns_dnssec_zone ++ldns_dnssec_zone, ldns_dnssec_name, ldns_dnssec_rrs, ldns_dnssec_rrsets | ldns_dnssec_zone_new, ldns_dnssec_name_new, ldns_dnssec_rrs_new, ldns_dnssec_rrsets_new - data structures ++ldns_dnssec_zone_find_rrset, ldns_dnssec_zone_new, ldns_dnssec_zone_free, ldns_dnssec_zone_add_rr, ldns_dnssec_zone_names_print, ldns_dnssec_zone_print, ldns_dnssec_zone_add_empty_nonterminals | ldns_dnssec_zone - functions for ldns_dnssec_zone ++ldns_dnssec_name_new, ldns_dnssec_name_new_frm_rr, ldns_dnssec_name_free, ldns_dnssec_name_name, ldns_dnssec_name_set_name, ldns_dnssec_name_set_nsec, ldns_dnssec_name_cmp, ldns_dnssec_name_add_rr, ldns_dnssec_name_find_rrset, ldns_dnssec_name_print | ldns_dnssec_zone - functions for ldns_dnssec_name ++ldns_dnssec_rrsets_new, ldns_dnssec_rrsets_free, ldns_dnssec_rrsets_type, ldns_dnssec_rrsets_set_type, ldns_dnssec_rrsets_add_rr, ldns_dnssec_rrsets_print | ldns_dnssec_zone - functions for ldns_dnssec_rrsets ++ldns_dnssec_rrs_new, ldns_dnssec_rrs_free, ldns_dnssec_rrs_add_rr, ldns_dnssec_rrs_print | ldns_dnssec_zone - functions for ldns_dnssec-rrs + + # verification +-ldns_dnssec_data_chain, ldns_dnssec_data_chain_struct, ldns_dnssec_trust_tree | ldns_dnssec_data_chain_new, ldns_dnssec_trust_tree_new, ldns_dnssec_verify_denial +-ldns_dnssec_data_chain_new, ldns_dnssec_data_chain_free, ldns_dnssec_data_chain_deep_free, ldns_dnssec_build_data_chain, ldns_dnssec_data_chain_print | ldns_dnssec_data_chain +-ldns_dnssec_trust_tree_new, ldns_dnssec_trust_tree_free, ldns_dnssec_trust_tree_depth, ldns_dnssec_derive_trust_tree, ldns_dnssec_trust_tree_contains_keys, ldns_dnssec_trust_tree_print, ldns_dnssec_trust_tree_print_sm, ldns_dnssec_trust_tree_add_parent, ldns_dnssec_derive_trust_tree_normal_rrset, ldns_dnssec_derive_trust_tree_dnskey_rrset, ldns_dnssec_derive_trust_tree_ds_rrset, ldns_dnssec_derive_trust_tree_no_sig | ldns_dnssec_data_chain, ldns_dnssec_trust_tree +-ldns_dnssec_verify_denial, ldns_dnssec_verify_denial_nsec3 | ldns_dnssec_trust_tree, ldns_dnssec_data_chain ++ldns_dnssec_data_chain, ldns_dnssec_data_chain_struct, ldns_dnssec_trust_tree | ldns_dnssec_data_chain_new, ldns_dnssec_trust_tree_new, ldns_dnssec_verify_denial - data structures for validation chains ++ldns_dnssec_data_chain_new, ldns_dnssec_data_chain_free, ldns_dnssec_data_chain_deep_free, ldns_dnssec_build_data_chain, ldns_dnssec_data_chain_print | ldns_dnssec_data_chain - ldns_chain creation, destruction and printing ++ldns_dnssec_trust_tree_new, ldns_dnssec_trust_tree_free, ldns_dnssec_trust_tree_depth, ldns_dnssec_derive_trust_tree, ldns_dnssec_trust_tree_contains_keys, ldns_dnssec_trust_tree_print, ldns_dnssec_trust_tree_print_sm, ldns_dnssec_trust_tree_add_parent, ldns_dnssec_derive_trust_tree_normal_rrset, ldns_dnssec_derive_trust_tree_dnskey_rrset, ldns_dnssec_derive_trust_tree_ds_rrset, ldns_dnssec_derive_trust_tree_no_sig | ldns_dnssec_data_chain, ldns_dnssec_trust_tree - functions for ldns_dnssec_trust_tree ++ldns_dnssec_verify_denial, ldns_dnssec_verify_denial_nsec3 | ldns_dnssec_trust_tree, ldns_dnssec_data_chain - verify denial of existence + + # new signing functions +-ldns_dnssec_zone_sign, ldns_dnssec_zone_sign_nsec3, ldns_dnssec_zone_mark_glue, ldns_dnssec_name_node_next_nonglue, ldns_dnssec_zone_create_nsecs, ldns_dnssec_remove_signatures, ldns_dnssec_zone_create_rrsigs | ldns_dnssec_zone ++ldns_dnssec_zone_sign, ldns_dnssec_zone_sign_nsec3, ldns_dnssec_zone_mark_glue, ldns_dnssec_name_node_next_nonglue, ldns_dnssec_zone_create_nsecs, ldns_dnssec_remove_signatures, ldns_dnssec_zone_create_rrsigs | ldns_dnssec_zone - sign ldns_dnssec_zone + + ### /dnssec.h + + ### dnskey.h +-ldns_key_new | ldns_key, ldns_key_list_new +-ldns_key_new_frm_algorithm, ldns_key_new_frm_fp, ldns_key_new_frm_fp_l | ldns_key +-ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l | ldns_key_new_frm_fp, ldns_key +-ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l | ldns_key_new_frm_fp, ldns_key +-ldns_key_list_new | ldns_key_new, ldns_key ++ldns_key_new, ldns_key_new_frm_algorithm, ldns_key_new_frm_fp, ldns_key_new_frm_fp_l, ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l, ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l | ldns_key - create a ldns_key ++ldns_key_list_new - create a ldns_key_list + # access, write +-ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_algo_supported | ldns_key_push_key, ldns_key +-ldns_key_list_push_key | ldns_key_list_pop_key, ldns_key +-ldns_key_list_pop_key | ldns_key_list_push_key, ldns_key ++ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_algo_supported | ldns_key_push_key, ldns_key - set ldns_key attributes ++ldns_key_list_push_key, ldns_key_list_pop_key | ldns_key - manipulate ldns_key_list + # access, read +-ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags | ldns_key ++ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags | ldns_key - read ldns_keys + # convert +-ldns_key2rr | ldns_key +-ldns_key_free, ldns_key_deep_free, ldns_key_list_free | ldns_key ++ldns_key2rr | ldns_key - convert ldns_key to rr ++ldns_key_free, ldns_key_deep_free, ldns_key_list_free | ldns_key - free a ldns_key + # +-ldns_key_print | ldns_key_new, ldns_key +-ldns_key | ldns_key_new, ldns_key_new_frm_algorithm,ldns_key_new_frm_fp,ldns_key_new_frm_fp_l, ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l, ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l, ldns_key_list_new, ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_list_push_key, ldns_key_list_pop_key, ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags, ldns_key2rr, ldns_key_free, ldns_key_deep_free, ldns_key_list_free, ldns_key_print ++ldns_key_print | ldns_key_new, ldns_key - print a ldns_key ++ldns_calc_keytag, ldns_calc_keytag_raw | ldns_key - calculate ldns keytag ++ldns_key | ldns_key_new, ldns_key_new_frm_algorithm,ldns_key_new_frm_fp,ldns_key_new_frm_fp_l, ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l, ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l, ldns_key_list_new, ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_list_push_key, ldns_key_list_pop_key, ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags, ldns_key2rr, ldns_key_free, ldns_key_deep_free, ldns_key_list_free, ldns_key_print - ldns_key data structure + ### /dnskey.h + + ### MIEK TOT HIER TOT HIER + +-# lists +-ldns_key_list_new, ldns_key_list_push_key, ldns_key_list_pop_key, ldns_key_list_key_count, ldns_key_list_key | ldns_key_list, ldns_key +-ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key | ldns_key_list, ldns_key +- +-# gets/sets +-ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags | ldns_key +-ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count | ldns_key +- + # errr.h +-ldns_get_errorstr_by_id | ldns_status +-ldns_status | ldns_get_errorstr_by_id ++ldns_get_errorstr_by_id, ldns_status - errors + + ### net.h +-ldns_send | ldns_pkt, ldns_resolver +-ldns_tcp_send_query, ldns_tcp_read_wire, ldns_tcp_connect | ldns_send, ldns_pkt, ldns_resolver ++ldns_send | ldns_pkt, ldns_resolver - send a packet ++ldns_tcp_send_query, ldns_tcp_read_wire, ldns_tcp_connect | ldns_send, ldns_pkt, ldns_resolver - tcp queries + ### /net.h + + ### buffer.h + # general +-ldns_buffer | ldns_buffer_new, ldns_buffer_new_frm_data, ldns_buffer_clear, ldns_buffer_printf, ldns_buffer_free, ldns_buffer_export, ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip, ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current, ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok, ldns_buffer_write_at, ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32 +-ldns_buffer_new, ldns_buffer_new_frm_data, ldns_buffer_clear, ldns_buffer_printf, ldns_buffer_free, ldns_buffer_export | ldns_buffer ++ldns_buffer, ldns_buffer_new, ldns_buffer_new_frm_data, ldns_buffer_clear, ldns_buffer_printf, ldns_buffer_free, ldns_buffer_copy, ldns_buffer_export, ldns_buffer_export2str, ldns_buffer2str | ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip, ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current, ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok, ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32, ldns_buffer_write_u32, ldns_buffer_write_u32_at - buffers + # position +-ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip | ldns_buffer ++ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip | ldns_buffer - buffer positioning + # values and pointers +-ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current | ldns_buffer ++ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current | ldns_buffer - buffer limits and pointers + # info +-ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok | ldns_buffer ++ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok | ldns_buffer - check buffer status + # read and write +-ldns_buffer_write_at, ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32 | ldns_buffer ++ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32, ldns_buffer_write_u32, ldns_buffer_write_u32_at | ldns_buffer - reading and writing buffers + ### /buffer.h + + # parse.h +-ldns_bget_token, ldns_bgetc, ldns_bskipcs | ldns_buffer +-ldns_fget_token, ldns_fskipcs | ldns_buffer +-ldns_str_remove_comment +- ++ldns_bget_token, ldns_bgetc, ldns_bskipcs | ldns_buffer - get tokens from buffers ++ldns_fget_token, ldns_fskipcs | ldns_buffer - get tokens from files + + # rr.h and other general rr funcs +-ldns_rr, ldns_rr_class, ldns_rr_type, ldns_rr_compress, ldns_rr_list | ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print, ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf, ldns_rr_push_rdf, ldns_rr_pop_rdf, ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class, ldns_rr_list_rr_count, ldns_rr_list_set_rr_count, ldns_rr_list_new, ldns_rr_list_free, ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr, ldns_is_rrset, ldns_rr_set_push_rr, ldns_rr_set_pop_rr, ldns_get_rr_class_by_name, ldns_get_rr_type_by_name, ldns_rr_list_clone, ldns_rr_list_sort, ldns_rr_compare, ldns_rr_compare_ds, ldns_rr_uncompressed_size, ldns_rr2canonical, ldns_rr_label_count, ldns_is_rrset, ldns_rr_descriptor, ldns_rr_descript +-ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print | ldns_rr, ldns_rr_list +-ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf | ldns_rr, ldns_rr_list +-ldns_rr_push_rdf, ldns_rr_pop_rdf | ldns_rr, ldns_rr_list +-ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class | ldns_rr, ldns_rr_list +-ldns_rr_list_rr_count, ldns_rr_list_set_rr_count | ldns_rr, ldns_rr_list +-ldns_rr_list_new, ldns_rr_list_free | ldns_rr, ldns_rr_list +-ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr | ldns_rr, ldns_rr_list +-ldns_is_rrset | ldns_rr, ldns_rr_list +-ldns_rr_set_push_rr, ldns_rr_set_pop_rr | ldns_rr, ldns_rr_list +-ldns_get_rr_class_by_name, ldns_get_rr_type_by_name | ldns_rr, ldns_rr_list +-ldns_rr_list_clone | ldns_rr, ldns_rr_list +-ldns_rr_list_sort | ldns_rr, ldns_rr_list +-ldns_rr_compare, ldns_rr_compare_ds | ldns_rr, ldns_rr_list +-ldns_rr_uncompressed_size | ldns_rr, ldns_rr_list +-ldns_rr2canonical | ldns_rr, ldns_rr_list +-ldns_rr_label_count | ldns_rr, ldns_rr_list +-ldns_is_rrset | ldns_rr ++ldns_rr, ldns_rr_class, ldns_rr_type, ldns_rr_compress, ldns_rr_list | ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print, ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf, ldns_rr_push_rdf, ldns_rr_pop_rdf, ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class, ldns_rr_list_rr_count, ldns_rr_list_set_rr_count, ldns_rr_list_new, ldns_rr_list_free, ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr, ldns_is_rrset, ldns_rr_set_push_rr, ldns_rr_set_pop_rr, ldns_get_rr_class_by_name, ldns_get_rr_type_by_name, ldns_rr_list_clone, ldns_rr_list_sort, ldns_rr_compare, ldns_rr_compare_ds, ldns_rr_uncompressed_size, ldns_rr2canonical, ldns_rr_label_count, ldns_is_rrset, ldns_rr_descriptor, ldns_rr_descript - types representing dns resource records ++ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print | ldns_rr, ldns_rr_list - ldns_rr creation, destruction and printing ++ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf | ldns_rr, ldns_rr_list - set ldns_rr attributes ++ldns_rr_push_rdf, ldns_rr_pop_rdf | ldns_rr, ldns_rr_list - push and pop rdata fields ++ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class | ldns_rr, ldns_rr_list - access rdata fields on ldns_rr ++ldns_rr_list_rr_count, ldns_rr_list_set_rr_count | ldns_rr, ldns_rr_list - get and set ldns_rr_list length ++ldns_rr_list_new, ldns_rr_list_free | ldns_rr, ldns_rr_list - ldns_rr_list creation and destruction ++ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr | ldns_rr, ldns_rr_list - ldns_rr_list manipulation ++ldns_is_rrset | ldns_rr, ldns_rr_list - is rr_list a rrset ++ldns_rr_set_push_rr, ldns_rr_set_pop_rr | ldns_rr, ldns_rr_list - push and pop rr on a rrset ++ldns_get_rr_class_by_name, ldns_get_rr_type_by_name | ldns_rr, ldns_rr_list - lookup class or type by name ++ldns_rr_list_clone | ldns_rr, ldns_rr_list - clone a ldns_rr_list ++ldns_rr_list_sort | ldns_rr, ldns_rr_list - sort a ldns_rr_list ++ldns_rr_compare, ldns_rr_compare_ds | ldns_rr, ldns_rr_list - compare a ldns_rr ++ldns_rr_uncompressed_size | ldns_rr, ldns_rr_list - calculates the uncompressed size of an RR ++ldns_rr2canonical | ldns_rr, ldns_rr_list - canonicalize a RR ++ldns_rr_label_count | ldns_rr, ldns_rr_list - return ownername label count + + # rr descriptors +-ldns_rr_descriptor, ldns_rr_descript, ldns_rr_descriptor_minimum, ldns_rr_descriptor_maximum, ldns_rr_descriptor_field_type | ldns_rr, ldns_rdf ++ldns_rr_descriptor, ldns_rr_descript, ldns_rr_descriptor_minimum, ldns_rr_descriptor_maximum, ldns_rr_descriptor_field_type | ldns_rr, ldns_rdf - rdata field descriptors + + # packet.h +-ldns_pkt, ldns_pkt_section, ldns_pkt_type | ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type, ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type, ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig, ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data ++ldns_pkt, ldns_pkt_section, ldns_pkt_type | ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type, ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type, ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig, ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data - request or anser packets types + +-ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type | ldns_pkt ++ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type | ldns_pkt - ldns_pkt creation, destruction and printing + # gets +-ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type | ldns_pkt ++ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type | ldns_pkt - get ldns_pkt attributes + # sets +-ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig | ldns_pkt ++ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig | ldns_pkt - set ldns_pkt attributes + # EDNS0 +-ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data | ldns_pkt ++ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data | ldns_pkt - ldns_pkt ends0 related functions + + # rr_functions.h +-ldns_rr_ns_nsdname ++ldns_rr_ns_nsdname - get dname rdata field from NS RR + # +-ldns_rr_mx_preference, ldns_rr_mx_exchange ++ldns_rr_mx_preference, ldns_rr_mx_exchange - get MX RR rdata fields + # +-ldns_rr_rrsig_typecovered, ldns_rr_rrsig_set_typecovered, ldns_rr_rrsig_algorithm, ldns_rr_rrsig_set_algorithm, ldns_rr_rrsig_labels, ldns_rr_rrsig_set_labels, ldns_rr_rrsig_origttl, ldns_rr_rrsig_set_origttl, ldns_rr_rrsig_expiration, ldns_rr_rrsig_set_expiration, ldns_rr_rrsig_inception, ldns_rr_rrsig_set_inception, ldns_rr_rrsig_keytag, ldns_rr_rrsig_set_keytag, ldns_rr_rrsig_signame, ldns_rr_rrsig_set_signame, ldns_rr_rrsig_sig, ldns_rr_rrsig_set_sig ++ldns_rr_rrsig_typecovered, ldns_rr_rrsig_set_typecovered, ldns_rr_rrsig_algorithm, ldns_rr_rrsig_set_algorithm, ldns_rr_rrsig_labels, ldns_rr_rrsig_set_labels, ldns_rr_rrsig_origttl, ldns_rr_rrsig_set_origttl, ldns_rr_rrsig_expiration, ldns_rr_rrsig_set_expiration, ldns_rr_rrsig_inception, ldns_rr_rrsig_set_inception, ldns_rr_rrsig_keytag, ldns_rr_rrsig_set_keytag, ldns_rr_rrsig_signame, ldns_rr_rrsig_set_signame, ldns_rr_rrsig_sig, ldns_rr_rrsig_set_sig - get and set RRSIG RR rdata fields + # +-ldns_rr_dnskey_flags, ldns_rr_dnskey_set_flags, ldns_rr_dnskey_protocol, ldns_rr_dnskey_set_protocol, ldns_rr_dnskey_algorithm, ldns_rr_dnskey_set_algorithm, ldns_rr_dnskey_key, ldns_rr_dnskey_set_key | ldns_rr ++ldns_rr_dnskey_flags, ldns_rr_dnskey_set_flags, ldns_rr_dnskey_protocol, ldns_rr_dnskey_set_protocol, ldns_rr_dnskey_algorithm, ldns_rr_dnskey_set_algorithm, ldns_rr_dnskey_key, ldns_rr_dnskey_set_key | ldns_rr - get and set DNSKEY RR rdata fields + + ### zone.h +-ldns_zone | ldns_zone_new, ldns_zone_deep_free, ldns_zone_new_frm_fp, ldns_zone_new_frm_fp_l, ldns_zone_sort, ldns_zone_glue_rr_list, ldns_zone_push_rr, ldns_zone_push_rr_list, ldns_zone_set_rrs, ldns_zone_set_soa, ldns_zone_rrs, ldns_zone_soa, ldns_zone_rr_count, ++ldns_zone, ldns_zone_new, ldns_zone_free, ldns_zone_deep_free, ldns_zone_new_frm_fp, ldns_zone_new_frm_fp_l, ldns_zone_print, ldns_zone_print_fmt - ldns_zone creation, destruction and printing ++ldns_zone_sort, ldns_zone_glue_rr_list | ldns_zone - sort a zone and get the glue records ++ldns_zone_push_rr, ldns_zone_push_rr_list | ldns_zone - add rr's to a ldns_zone ++ldns_zone_set_rrs, ldns_zone_set_soa | ldns_zone, ldns_zone_rrs, ldns_zone_soa - ldns_zone set content ++ldns_zone_rrs, ldns_zone_soa | ldns_zone ldns_zone_set_rrs - ldns_zone get content ++ldns_zone_rr_count | ldns_zone - get ldns_zone size + ++### update.h ++ldns_update_pkt_new | ldns_update_pkt_tsig_add, ldns_update_pkt_tsig_add, ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount, ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount - create an update packet + +-ldns_zone_new, ldns_zone_deep_free, ldns_zone_new_frm_fp, ldns_zone_new_frm_fp_l | ldns_zone +-ldns_zone_sort, ldns_zone_glue_rr_list | ldns_zone +-ldns_zone_push_rr, ldns_zone_push_rr_list | ldns_zone +-ldns_zone_set_rrs, ldns_zone_set_soa | ldns_zone, ldns_zone_rrs, ldns_zone_soa +-ldns_zone_rrs, ldns_zone_soa | ldns_zone ldns_zone_set_rrs +-ldns_zone_rr_count | ldns_zone ++ldns_update_pkt_tsig_add | ldns_update_pkt_new - add resolver's tsig credentials to an ldns_pkt ++ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount | ldns_update_pkt_new - return update packet counters ++ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount | ldns_update_pkt_new - set the update packet counters ++ ++### keys.h ++ldns_algorithm - numbers assigned to algorithms used in dns ++ ++ ++ldns_axfr_start, ldns_axfr_next, ldns_axfr_abort, ldns_axfr_complete, ldns_axfr_last_pkt - functions for full zone transfer ++ ++ldns_b32_ntop_calculate_size, ldns_b32_pton_calculate_size, ldns_b64_ntop_calculate_size, ldns_b64_pton_calculate_size - return size needed for b32 or b64 encoded or decoded data ++ ++ldns_duration_type, ldns_duration_create, ldns_duration_create_from_string, ldns_duration_cleanup, ldns_duration_compare, ldns_duration2string, ldns_duration2time - duration type and related functions ++ ++ldns_bubblebabble - encode data as BubbleBabble ++ ++ldns_version - return library version + +-### update.h +-ldns_update_pkt_new | ldns_update_pkt_tsig_add, ldns_update_pkt_tsig_add, ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount, ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount, + +-ldns_update_pkt_tsig_add | ldns_update_pkt_new +-ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount | ldns_update_pkt_new +-ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount | ldns_update_pkt_new +-- +2.6.4 + diff --git a/bsp/buildroot/package/libllcp/libllcp.hash b/bsp/buildroot/package/libllcp/libllcp.hash new file mode 100644 index 00000000..47c909f1 --- /dev/null +++ b/bsp/buildroot/package/libllcp/libllcp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 4336533304a11ecb3041d211ccecd7759b7c7aad4f44037721803e2da1094d22 libllcp-05dfa8003433a7070bfd8ae02efdb0203bbf34aa.tar.gz diff --git a/bsp/buildroot/package/liblog4c-localtime/liblog4c-localtime.hash b/bsp/buildroot/package/liblog4c-localtime/liblog4c-localtime.hash new file mode 100644 index 00000000..2e4e6417 --- /dev/null +++ b/bsp/buildroot/package/liblog4c-localtime/liblog4c-localtime.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 a1f68d8251509c0171f8bfea42f9e2a5255a4185f7dcbe67f584aa09709b2496 liblog4c-localtime-v1.0.tar.gz diff --git a/bsp/buildroot/package/liblogging/Config.in b/bsp/buildroot/package/liblogging/Config.in index 12ee950d..23c3c1ad 100644 --- a/bsp/buildroot/package/liblogging/Config.in +++ b/bsp/buildroot/package/liblogging/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_LIBLOGGING bool "liblogging" - select BR2_PACKAGE_SYSTEMD_COMPAT if BR2_INIT_SYSTEMD help Liblogging is an easy to use library for logging. It offers an enhanced replacement diff --git a/bsp/buildroot/package/libmatroska/libmatroska.hash b/bsp/buildroot/package/libmatroska/libmatroska.hash index 4d9a5357..275af639 100644 --- a/bsp/buildroot/package/libmatroska/libmatroska.hash +++ b/bsp/buildroot/package/libmatroska/libmatroska.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 bea10320f1f1fd121bbd7db9ffc77b2518e8269f00903549c5425478bbf8393f libmatroska-1.4.2.tar.bz2 +sha256 d3efaa9f6d3964351a05bea0f848a8d5dc570e4791f179816ce9a93730296bd7 libmatroska-1.4.4.tar.bz2 diff --git a/bsp/buildroot/package/libmatroska/libmatroska.mk b/bsp/buildroot/package/libmatroska/libmatroska.mk index 5e2d9b1a..083cced9 100644 --- a/bsp/buildroot/package/libmatroska/libmatroska.mk +++ b/bsp/buildroot/package/libmatroska/libmatroska.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBMATROSKA_VERSION = 1.4.2 +LIBMATROSKA_VERSION = 1.4.4 LIBMATROSKA_SOURCE = libmatroska-$(LIBMATROSKA_VERSION).tar.bz2 LIBMATROSKA_SITE = http://dl.matroska.org/downloads/libmatroska LIBMATROSKA_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libmbim/libmbim.hash b/bsp/buildroot/package/libmbim/libmbim.hash index f066e96b..21921c9d 100644 --- a/bsp/buildroot/package/libmbim/libmbim.hash +++ b/bsp/buildroot/package/libmbim/libmbim.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 949351d3e3d69b81e40a49f1d187944c26149e0647a415f0227ccdc112047b29 libmbim-1.12.2.tar.xz +sha256 ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b libmbim-1.14.0.tar.xz diff --git a/bsp/buildroot/package/libmbim/libmbim.mk b/bsp/buildroot/package/libmbim/libmbim.mk index 3cb9235e..0f757c02 100644 --- a/bsp/buildroot/package/libmbim/libmbim.mk +++ b/bsp/buildroot/package/libmbim/libmbim.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBMBIM_VERSION = 1.12.2 +LIBMBIM_VERSION = 1.14.0 LIBMBIM_SITE = http://www.freedesktop.org/software/libmbim LIBMBIM_SOURCE = libmbim-$(LIBMBIM_VERSION).tar.xz LIBMBIM_LICENSE = LGPLv2+ (library), GPLv2+ (programs) diff --git a/bsp/buildroot/package/libmemcached/libmemcached.mk b/bsp/buildroot/package/libmemcached/libmemcached.mk index a5ea4f5d..36d09139 100644 --- a/bsp/buildroot/package/libmemcached/libmemcached.mk +++ b/bsp/buildroot/package/libmemcached/libmemcached.mk @@ -18,9 +18,7 @@ LIBMEMCACHED_AUTORECONF = YES LIBMEMCACHED_LICENSE = BSD-3c LIBMEMCACHED_LICENSE_FILES = COPYING -# Help libmemcached to understand that -fPIE and -pie should not be -# used when linking statically. -ifeq ($(BR2_STATIC_LIBS),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) LIBMEMCACHED_CONF_ENV += \ ax_cv_check_cflags__Werror__fPIE=no \ ax_cv_check_cflags__Werror__pie=no \ diff --git a/bsp/buildroot/package/libmicrohttpd/Config.in b/bsp/buildroot/package/libmicrohttpd/Config.in index 68191ea7..302dbb7a 100644 --- a/bsp/buildroot/package/libmicrohttpd/Config.in +++ b/bsp/buildroot/package/libmicrohttpd/Config.in @@ -1,8 +1,6 @@ config BR2_PACKAGE_LIBMICROHTTPD bool "libmicrohttpd" depends on BR2_TOOLCHAIN_HAS_THREADS - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help GNU libmicrohttpd is a small C library that makes it easy to run an HTTP server as part of another application. @@ -13,6 +11,7 @@ if BR2_PACKAGE_LIBMICROHTTPD config BR2_PACKAGE_LIBMICROHTTPD_SSL bool "https support" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on BR2_USE_WCHAR select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBGCRYPT @@ -26,4 +25,3 @@ endif comment "libmicrohttpd needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.hash b/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.hash index f0f15012..b2287163 100644 --- a/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.hash +++ b/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 87667e158f2bf8c691a002e256ffe30885d4121a9ee4143af0320c47cdf8a2a4 libmicrohttpd-0.9.48.tar.gz +# Locally calculated +sha256 d1b6385068abded29b6470e383287aa7705de05ae3c08ad0bf5747ac4dc6ebd7 libmicrohttpd-0.9.50.tar.gz diff --git a/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.mk b/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.mk index 9c41b894..2266d3ce 100644 --- a/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.mk +++ b/bsp/buildroot/package/libmicrohttpd/libmicrohttpd.mk @@ -4,11 +4,22 @@ # ################################################################################ -LIBMICROHTTPD_VERSION = 0.9.48 +LIBMICROHTTPD_VERSION = 0.9.50 LIBMICROHTTPD_SITE = $(BR2_GNU_MIRROR)/libmicrohttpd LIBMICROHTTPD_LICENSE_FILES = COPYING LIBMICROHTTPD_INSTALL_STAGING = YES LIBMICROHTTPD_CONF_OPTS = --disable-curl --disable-examples +LIBMICROHTTPD_CFLAGS = $(TARGET_CFLAGS) -std=c99 + +# gcc on arc and bfin doesn't define _REENTRANT when -pthread is +# passed while it should. Compensate this defiency here otherwise +# libmicrohttpd configure script doesn't find that thread support is +# enabled. +ifeq ($(BR2_arc)$(BR2_bfin),y) +LIBMICROHTTPD_CFLAGS += -D_REENTRANT +endif + +LIBMICROHTTPD_CONF_ENV += CFLAGS="$(LIBMICROHTTPD_CFLAGS)" ifeq ($(BR2_PACKAGE_LIBMICROHTTPD_SSL),y) LIBMICROHTTPD_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/libminiupnpc/Config.in b/bsp/buildroot/package/libminiupnpc/Config.in new file mode 100644 index 00000000..c2417073 --- /dev/null +++ b/bsp/buildroot/package/libminiupnpc/Config.in @@ -0,0 +1,20 @@ +config BR2_PACKAGE_LIBMINIUPNPC + bool "libminiupnpc" + depends on !BR2_BINFMT_FLAT + depends on !BR2_STATIC_LIBS + help + The UPnP protocol is supported by most home adsl/cable routers + and Microsoft Windows 2K/XP. The aim of the MiniUPnP project is + to bring a free software solution to support the "Internet + Gateway Device" part of the protocol. + + Miniupnpc aims at the simplest library possible, with the + smallest footprint and no dependencies to other libraries such + as XML parsers or HTTP implementations. All the code is pure + ANSI C. + + http://miniupnp.free.fr + +comment "libminiupnpc needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + depends on !BR2_BINFMT_FLAT diff --git a/bsp/buildroot/package/libminiupnpc/libminiupnpc.hash b/bsp/buildroot/package/libminiupnpc/libminiupnpc.hash new file mode 100644 index 00000000..985d69d4 --- /dev/null +++ b/bsp/buildroot/package/libminiupnpc/libminiupnpc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 d434ceb8986efbe199c5ca53f90ed53eab290b1e6d0530b717eb6fa49d61f93b miniupnpc-2.0.tar.gz diff --git a/bsp/buildroot/package/libminiupnpc/libminiupnpc.mk b/bsp/buildroot/package/libminiupnpc/libminiupnpc.mk new file mode 100644 index 00000000..0eb7cf63 --- /dev/null +++ b/bsp/buildroot/package/libminiupnpc/libminiupnpc.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# libminiupnpc +# +################################################################################ + +LIBMINIUPNPC_VERSION = 2.0 +LIBMINIUPNPC_SOURCE = miniupnpc-$(LIBMINIUPNPC_VERSION).tar.gz +LIBMINIUPNPC_SITE = http://miniupnp.free.fr/files +LIBMINIUPNPC_INSTALL_STAGING = YES +LIBMINIUPNPC_LICENSE = BSD-3c +LIBMINIUPNPC_LICENSE_FILES = LICENSE + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/libnatpmp/Config.in b/bsp/buildroot/package/libnatpmp/Config.in new file mode 100644 index 00000000..879e5ee1 --- /dev/null +++ b/bsp/buildroot/package/libnatpmp/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_LIBNATPMP + bool "libnatpmp" + depends on !BR2_BINFMT_FLAT + depends on !BR2_STATIC_LIBS + help + libnatpmp is an attempt to make a portable and fully compliant + implementation of the NAT-PMP protocol for the client side. It + is based on non blocking sockets and all calls of the API are + asynchronous. It is therefore very easy to integrate the + NAT-PMP code to any event driven code. + + http://miniupnp.free.fr/libnatpmp.html + +comment "libnatpmp needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + depends on !BR2_BINFMT_FLAT diff --git a/bsp/buildroot/package/libnatpmp/libnatpmp.hash b/bsp/buildroot/package/libnatpmp/libnatpmp.hash new file mode 100644 index 00000000..a5cab3ce --- /dev/null +++ b/bsp/buildroot/package/libnatpmp/libnatpmp.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 e1aa9c4c4219bc06943d6b2130f664daee213fb262fcb94dd355815b8f4536b0 libnatpmp-20150609.tar.gz diff --git a/bsp/buildroot/package/libnatpmp/libnatpmp.mk b/bsp/buildroot/package/libnatpmp/libnatpmp.mk new file mode 100644 index 00000000..cdd65e96 --- /dev/null +++ b/bsp/buildroot/package/libnatpmp/libnatpmp.mk @@ -0,0 +1,31 @@ +################################################################################ +# +# libnatpmp +# +################################################################################ + +LIBNATPMP_VERSION = 20150609 +LIBNATPMP_SITE = http://miniupnp.free.fr/files +LIBNATPMP_INSTALL_STAGING = YES +LIBNATPMP_LICENSE = BSD-3c +LIBNATPMP_LICENSE_FILES = LICENSE + +define LIBNATPMP_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + CC="$(TARGET_CC)" +endef + +define LIBNATPMP_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + PREFIX=$(STAGING_DIR) \ + HEADERS='declspec.h natpmp.h' \ + $(TARGET_CONFIGURE_OPTS) install +endef + +define LIBNATPMP_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + PREFIX=$(TARGET_DIR) \ + $(TARGET_CONFIGURE_OPTS) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/libndp/libndp.hash b/bsp/buildroot/package/libndp/libndp.hash new file mode 100644 index 00000000..51e312dd --- /dev/null +++ b/bsp/buildroot/package/libndp/libndp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 42c0a8938d4302c72a42e2d954deef7e4903bb3974da6804a929a3cd0b5b6aa7 libndp-v1.5.tar.gz diff --git a/bsp/buildroot/package/libnet/Config.in b/bsp/buildroot/package/libnet/Config.in index 8a881286..0c5c230a 100644 --- a/bsp/buildroot/package/libnet/Config.in +++ b/bsp/buildroot/package/libnet/Config.in @@ -8,5 +8,5 @@ config BR2_PACKAGE_LIBNET http://sourceforge.net/projects/libnet-dev -comment "libnet needs a (e)glibc or uClibc toolchain" +comment "libnet needs a glibc or uClibc toolchain" depends on BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/libnfs/libnfs.hash b/bsp/buildroot/package/libnfs/libnfs.hash index 14d304fc..27a9e5d3 100644 --- a/bsp/buildroot/package/libnfs/libnfs.hash +++ b/bsp/buildroot/package/libnfs/libnfs.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 e95af693e763a504eee72dacf3dc6c1001d83e40b807e7e1d0be2eaf48af779c libnfs-libnfs-1.9.8.tar.gz +sha256 7f6c62a05c7e0f0749f2b13f178a4ed7aaf17bd09e65a10bb147bfe9807da272 libnfs-libnfs-1.10.0.tar.gz diff --git a/bsp/buildroot/package/libnfs/libnfs.mk b/bsp/buildroot/package/libnfs/libnfs.mk index 40d5cebb..e49656b7 100644 --- a/bsp/buildroot/package/libnfs/libnfs.mk +++ b/bsp/buildroot/package/libnfs/libnfs.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBNFS_VERSION = libnfs-1.9.8 +LIBNFS_VERSION = libnfs-1.10.0 LIBNFS_SITE = $(call github,sahlberg,libnfs,$(LIBNFS_VERSION)) LIBNFS_INSTALL_STAGING = YES LIBNFS_AUTORECONF = YES @@ -17,10 +17,4 @@ ifeq ($(BR2_PACKAGE_LIBTIRPC),y) LIBNFS_DEPENDENCIES += libtirpc endif -# Needed for autoreconf -define LIBNFS_MAKE_M4_DIR - mkdir $(@D)/m4 -endef -LIBNFS_POST_EXTRACT_HOOKS += LIBNFS_MAKE_M4_DIR - $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libnftnl/0001-Rename-xfree-to-libnftnl_xfree-to-avoid-symbol-namin.patch b/bsp/buildroot/package/libnftnl/0001-Rename-xfree-to-libnftnl_xfree-to-avoid-symbol-namin.patch index 26c9d2e6..fc96a126 100644 --- a/bsp/buildroot/package/libnftnl/0001-Rename-xfree-to-libnftnl_xfree-to-avoid-symbol-namin.patch +++ b/bsp/buildroot/package/libnftnl/0001-Rename-xfree-to-libnftnl_xfree-to-avoid-symbol-namin.patch @@ -1,7 +1,7 @@ -From 85dfe7dcd20c54e6d75d66a400f7ae038a52239b Mon Sep 17 00:00:00 2001 +From 610d015143e88629eab07067a4ae0c1d7548cfaf Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni -Date: Mon, 29 Dec 2014 15:31:40 +0100 -Subject: [PATCH 1/2] Rename xfree() to libnftnl_xfree() to avoid symbol naming +Date: Thu, 2 Jun 2016 23:03:27 -0300 +Subject: [PATCH] Rename xfree() to libnftnl_xfree() to avoid symbol naming conflict When ELF binaries and shared libraries are used, the internal @@ -22,32 +22,36 @@ libnftnl_xfree(). Signed-off-by: Thomas Petazzoni [Gustavo: update for version 1.0.5] -Signed-off-by: Thomas Petazzoni +Signed-off-by: Gustavo Zacarias --- include/utils.h | 2 +- src/chain.c | 28 ++++++++++++++-------------- src/common.c | 2 +- src/expr.c | 4 ++-- src/expr/data_reg.c | 4 ++-- + src/expr/dynset.c | 2 +- src/expr/immediate.c | 2 +- src/expr/log.c | 6 +++--- + src/expr/lookup.c | 2 +- src/expr/match.c | 6 +++--- src/expr/target.c | 6 +++--- src/gen.c | 2 +- src/mxml.c | 2 +- - src/rule.c | 26 +++++++++++++------------- + src/rule.c | 30 +++++++++++++++--------------- src/ruleset.c | 2 +- src/set.c | 22 +++++++++++----------- - src/set_elem.c | 16 ++++++++-------- + src/set_elem.c | 20 ++++++++++---------- src/table.c | 14 +++++++------- + src/trace.c | 14 +++++++------- + src/udata.c | 2 +- src/utils.c | 2 +- - 17 files changed, 73 insertions(+), 73 deletions(-) + 21 files changed, 87 insertions(+), 87 deletions(-) diff --git a/include/utils.h b/include/utils.h -index f7436fa..e03ee3b 100644 +index 46ff18a..0320c96 100644 --- a/include/utils.h +++ b/include/utils.h -@@ -17,7 +17,7 @@ +@@ -19,7 +19,7 @@ #define __noreturn __attribute__((__noreturn__)) @@ -57,11 +61,11 @@ index f7436fa..e03ee3b 100644 #define div_round_up(n, d) (((n) + (d) - 1) / (d)) diff --git a/src/chain.c b/src/chain.c -index 8a8e8b8..37a27b1 100644 +index 990c576..b8f1e1f 100644 --- a/src/chain.c +++ b/src/chain.c -@@ -96,13 +96,13 @@ EXPORT_SYMBOL(nftnl_chain_alloc, nft_chain_alloc); - void nftnl_chain_free(struct nftnl_chain *c) +@@ -96,13 +96,13 @@ EXPORT_SYMBOL_ALIAS(nftnl_chain_alloc, nft_chain_alloc); + void nftnl_chain_free(const struct nftnl_chain *c) { if (c->table != NULL) - xfree(c->table); @@ -76,7 +80,7 @@ index 8a8e8b8..37a27b1 100644 - xfree(c); + nftnl_xfree(c); } - EXPORT_SYMBOL(nftnl_chain_free, nft_chain_free); + EXPORT_SYMBOL_ALIAS(nftnl_chain_free, nft_chain_free); @@ -120,7 +120,7 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) switch (attr) { @@ -155,41 +159,41 @@ index 8a8e8b8..37a27b1 100644 - xfree(list); + nftnl_xfree(list); } - EXPORT_SYMBOL(nftnl_chain_list_free, nft_chain_list_free); + EXPORT_SYMBOL_ALIAS(nftnl_chain_list_free, nft_chain_list_free); -@@ -1061,6 +1061,6 @@ EXPORT_SYMBOL(nftnl_chain_list_iter_next, nft_chain_list_iter_next); +@@ -1061,6 +1061,6 @@ EXPORT_SYMBOL_ALIAS(nftnl_chain_list_iter_next, nft_chain_list_iter_next); void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) { - xfree(iter); + nftnl_xfree(iter); } - EXPORT_SYMBOL(nftnl_chain_list_iter_destroy, nft_chain_list_iter_destroy); + EXPORT_SYMBOL_ALIAS(nftnl_chain_list_iter_destroy, nft_chain_list_iter_destroy); diff --git a/src/common.c b/src/common.c -index 43d2cfd..0bc814d 100644 +index bf4176c..98f8012 100644 --- a/src/common.c +++ b/src/common.c -@@ -58,7 +58,7 @@ EXPORT_SYMBOL(nftnl_parse_err_alloc, nft_parse_err_alloc); +@@ -58,7 +58,7 @@ EXPORT_SYMBOL_ALIAS(nftnl_parse_err_alloc, nft_parse_err_alloc); void nftnl_parse_err_free(struct nftnl_parse_err *err) { - xfree(err); + nftnl_xfree(err); } - EXPORT_SYMBOL(nftnl_parse_err_free, nft_parse_err_free); + EXPORT_SYMBOL_ALIAS(nftnl_parse_err_free, nft_parse_err_free); diff --git a/src/expr.c b/src/expr.c -index 3249a5c..8563d9e 100644 +index ed07dc4..6c08bd0 100644 --- a/src/expr.c +++ b/src/expr.c -@@ -50,7 +50,7 @@ void nftnl_expr_free(struct nftnl_expr *expr) +@@ -50,7 +50,7 @@ void nftnl_expr_free(const struct nftnl_expr *expr) if (expr->ops->free) expr->ops->free(expr); - xfree(expr); + nftnl_xfree(expr); } - EXPORT_SYMBOL(nftnl_expr_free, nft_rule_expr_free); + EXPORT_SYMBOL_ALIAS(nftnl_expr_free, nft_rule_expr_free); @@ -257,7 +257,7 @@ struct nftnl_expr *nftnl_expr_parse(struct nlattr *attr) return expr; @@ -201,7 +205,7 @@ index 3249a5c..8563d9e 100644 return NULL; } diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c -index b85d2ef..32becb4 100644 +index 2a23285..2b1a87e 100644 --- a/src/expr/data_reg.c +++ b/src/expr/data_reg.c @@ -123,7 +123,7 @@ static int nftnl_data_reg_verdict_xml_parse(union nftnl_data_reg *reg, @@ -213,7 +217,7 @@ index b85d2ef..32becb4 100644 reg->chain = strdup(chain); } -@@ -504,7 +504,7 @@ void nftnl_free_verdict(union nftnl_data_reg *data) +@@ -511,7 +511,7 @@ void nftnl_free_verdict(const union nftnl_data_reg *data) switch(data->verdict) { case NFT_JUMP: case NFT_GOTO: @@ -222,8 +226,21 @@ index b85d2ef..32becb4 100644 break; default: break; +diff --git a/src/expr/dynset.c b/src/expr/dynset.c +index c8d97a5..604600a 100644 +--- a/src/expr/dynset.c ++++ b/src/expr/dynset.c +@@ -361,7 +361,7 @@ static void nftnl_expr_dynset_free(const struct nftnl_expr *e) + { + struct nftnl_expr_dynset *dynset = nftnl_expr_data(e); + +- xfree(dynset->set_name); ++ nftnl_xfree(dynset->set_name); + } + + struct expr_ops expr_ops_dynset = { diff --git a/src/expr/immediate.c b/src/expr/immediate.c -index c2fb9ad..4a8cd83 100644 +index eb2ca0f..237f944 100644 --- a/src/expr/immediate.c +++ b/src/expr/immediate.c @@ -44,7 +44,7 @@ nftnl_expr_immediate_set(struct nftnl_expr *e, uint16_t type, @@ -236,7 +253,7 @@ index c2fb9ad..4a8cd83 100644 imm->data.chain = strdup(data); break; diff --git a/src/expr/log.c b/src/expr/log.c -index f615d8e..1957aa6 100644 +index c3dc0a6..ab24686 100644 --- a/src/expr/log.c +++ b/src/expr/log.c @@ -38,7 +38,7 @@ static int nftnl_expr_log_set(struct nftnl_expr *e, uint16_t type, @@ -257,7 +274,7 @@ index f615d8e..1957aa6 100644 log->prefix = strdup(mnl_attr_get_str(tb[NFTA_LOG_PREFIX])); e->flags |= (1 << NFTNL_EXPR_LOG_PREFIX); -@@ -329,7 +329,7 @@ static void nftnl_expr_log_free(struct nftnl_expr *e) +@@ -329,7 +329,7 @@ static void nftnl_expr_log_free(const struct nftnl_expr *e) { struct nftnl_expr_log *log = nftnl_expr_data(e); @@ -266,8 +283,21 @@ index f615d8e..1957aa6 100644 } struct expr_ops expr_ops_log = { +diff --git a/src/expr/lookup.c b/src/expr/lookup.c +index ed32ba6..6e9b0e6 100644 +--- a/src/expr/lookup.c ++++ b/src/expr/lookup.c +@@ -258,7 +258,7 @@ static void nftnl_expr_lookup_free(const struct nftnl_expr *e) + { + struct nftnl_expr_lookup *lookup = nftnl_expr_data(e); + +- xfree(lookup->set_name); ++ nftnl_xfree(lookup->set_name); + } + + struct expr_ops expr_ops_lookup = { diff --git a/src/expr/match.c b/src/expr/match.c -index ddecb43..2071b3c 100644 +index 2929b43..ec46394 100644 --- a/src/expr/match.c +++ b/src/expr/match.c @@ -50,7 +50,7 @@ nftnl_expr_match_set(struct nftnl_expr *e, uint16_t type, @@ -288,7 +318,7 @@ index ddecb43..2071b3c 100644 match_data = calloc(1, len); if (match_data == NULL) -@@ -237,7 +237,7 @@ static void nftnl_expr_match_free(struct nftnl_expr *e) +@@ -237,7 +237,7 @@ static void nftnl_expr_match_free(const struct nftnl_expr *e) { struct nftnl_expr_match *match = nftnl_expr_data(e); @@ -298,7 +328,7 @@ index ddecb43..2071b3c 100644 struct expr_ops expr_ops_match = { diff --git a/src/expr/target.c b/src/expr/target.c -index cbbee60..064f56a 100644 +index 68a7d8a..05f9e5a 100644 --- a/src/expr/target.c +++ b/src/expr/target.c @@ -50,7 +50,7 @@ nftnl_expr_target_set(struct nftnl_expr *e, uint16_t type, @@ -319,7 +349,7 @@ index cbbee60..064f56a 100644 target_data = calloc(1, len); if (target_data == NULL) -@@ -238,7 +238,7 @@ static void nftnl_expr_target_free(struct nftnl_expr *e) +@@ -238,7 +238,7 @@ static void nftnl_expr_target_free(const struct nftnl_expr *e) { struct nftnl_expr_target *target = nftnl_expr_data(e); @@ -329,17 +359,17 @@ index cbbee60..064f56a 100644 struct expr_ops expr_ops_target = { diff --git a/src/gen.c b/src/gen.c -index eb3b70d..dac3e47 100644 +index 115a105..576771a 100644 --- a/src/gen.c +++ b/src/gen.c -@@ -37,7 +37,7 @@ EXPORT_SYMBOL(nftnl_gen_alloc, nft_gen_alloc); +@@ -37,7 +37,7 @@ EXPORT_SYMBOL_ALIAS(nftnl_gen_alloc, nft_gen_alloc); - void nftnl_gen_free(struct nftnl_gen *gen) + void nftnl_gen_free(const struct nftnl_gen *gen) { - xfree(gen); + nftnl_xfree(gen); } - EXPORT_SYMBOL(nftnl_gen_free, nft_gen_free); + EXPORT_SYMBOL_ALIAS(nftnl_gen_free, nft_gen_free); diff --git a/src/mxml.c b/src/mxml.c index 51dbf1b..5b2aa57 100644 @@ -355,10 +385,10 @@ index 51dbf1b..5b2aa57 100644 if (tree == NULL) goto err_expr; diff --git a/src/rule.c b/src/rule.c -index 0fb27ed..f8e33ff 100644 +index 8ee8648..8158c26 100644 --- a/src/rule.c +++ b/src/rule.c -@@ -72,11 +72,11 @@ void nftnl_rule_free(struct nftnl_rule *r) +@@ -72,13 +72,13 @@ void nftnl_rule_free(const struct nftnl_rule *r) nftnl_expr_free(e); if (r->table != NULL) @@ -367,13 +397,16 @@ index 0fb27ed..f8e33ff 100644 if (r->chain != NULL) - xfree(r->chain); + nftnl_xfree(r->chain); + if (r->user.data != NULL) +- xfree(r->user.data); ++ nftnl_xfree(r->user.data); - xfree(r); + nftnl_xfree(r); } - EXPORT_SYMBOL(nftnl_rule_free, nft_rule_free); + EXPORT_SYMBOL_ALIAS(nftnl_rule_free, nft_rule_free); -@@ -94,13 +94,13 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) +@@ -96,13 +96,13 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) switch (attr) { case NFTNL_RULE_TABLE: if (r->table) { @@ -389,7 +422,7 @@ index 0fb27ed..f8e33ff 100644 r->chain = NULL; } break; -@@ -136,13 +136,13 @@ void nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, +@@ -138,13 +138,13 @@ void nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, switch(attr) { case NFTNL_RULE_TABLE: if (r->table) @@ -405,7 +438,16 @@ index 0fb27ed..f8e33ff 100644 r->chain = strdup(data); break; -@@ -425,12 +425,12 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) +@@ -165,7 +165,7 @@ void nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, + break; + case NFTNL_RULE_USERDATA: + if (r->user.data != NULL) +- xfree(r->user.data); ++ nftnl_xfree(r->user.data); + + r->user.data = malloc(data_len); + if (!r->user.data) +@@ -434,12 +434,12 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) return -1; if (tb[NFTA_RULE_TABLE]) { @@ -420,7 +462,7 @@ index 0fb27ed..f8e33ff 100644 r->chain = strdup(mnl_attr_get_str(tb[NFTA_RULE_CHAIN])); r->flags |= (1 << NFTNL_RULE_CHAIN); } -@@ -451,7 +451,7 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) +@@ -460,7 +460,7 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) mnl_attr_get_payload(tb[NFTA_RULE_USERDATA]); if (r->user.data) @@ -429,50 +471,50 @@ index 0fb27ed..f8e33ff 100644 r->user.len = mnl_attr_get_payload_len(tb[NFTA_RULE_USERDATA]); -@@ -1042,7 +1042,7 @@ EXPORT_SYMBOL(nftnl_expr_iter_next, nft_rule_expr_iter_next); +@@ -1054,7 +1054,7 @@ EXPORT_SYMBOL_ALIAS(nftnl_expr_iter_next, nft_rule_expr_iter_next); void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) { - xfree(iter); + nftnl_xfree(iter); } - EXPORT_SYMBOL(nftnl_expr_iter_destroy, nft_rule_expr_iter_destroy); + EXPORT_SYMBOL_ALIAS(nftnl_expr_iter_destroy, nft_rule_expr_iter_destroy); -@@ -1072,7 +1072,7 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list) +@@ -1084,7 +1084,7 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list) list_del(&r->head); nftnl_rule_free(r); } - xfree(list); + nftnl_xfree(list); } - EXPORT_SYMBOL(nftnl_rule_list_free, nft_rule_list_free); + EXPORT_SYMBOL_ALIAS(nftnl_rule_list_free, nft_rule_list_free); -@@ -1163,6 +1163,6 @@ EXPORT_SYMBOL(nftnl_rule_list_iter_next, nft_rule_list_iter_next); +@@ -1175,6 +1175,6 @@ EXPORT_SYMBOL_ALIAS(nftnl_rule_list_iter_next, nft_rule_list_iter_next); - void nftnl_rule_list_iter_destroy(struct nftnl_rule_list_iter *iter) + void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) { - xfree(iter); + nftnl_xfree(iter); } - EXPORT_SYMBOL(nftnl_rule_list_iter_destroy, nft_rule_list_iter_destroy); + EXPORT_SYMBOL_ALIAS(nftnl_rule_list_iter_destroy, nft_rule_list_iter_destroy); diff --git a/src/ruleset.c b/src/ruleset.c -index 7b1ab7a..b8188de 100644 +index 414b7c4..6ec38c6 100644 --- a/src/ruleset.c +++ b/src/ruleset.c -@@ -74,7 +74,7 @@ void nftnl_ruleset_free(struct nftnl_ruleset *r) +@@ -74,7 +74,7 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r) nftnl_set_list_free(r->set_list); if (r->flags & (1 << NFTNL_RULESET_RULELIST)) nftnl_rule_list_free(r->rule_list); - xfree(r); + nftnl_xfree(r); } - EXPORT_SYMBOL(nftnl_ruleset_free, nft_ruleset_free); + EXPORT_SYMBOL_ALIAS(nftnl_ruleset_free, nft_ruleset_free); diff --git a/src/set.c b/src/set.c -index f5a9454..4eff325 100644 +index dbea93b..025d50c 100644 --- a/src/set.c +++ b/src/set.c -@@ -45,15 +45,15 @@ void nftnl_set_free(struct nftnl_set *s) +@@ -45,15 +45,15 @@ void nftnl_set_free(const struct nftnl_set *s) struct nftnl_set_elem *elem, *tmp; if (s->table != NULL) @@ -489,7 +531,7 @@ index f5a9454..4eff325 100644 - xfree(s); + nftnl_xfree(s); } - EXPORT_SYMBOL(nftnl_set_free, nft_set_free); + EXPORT_SYMBOL_ALIAS(nftnl_set_free, nft_set_free); @@ -69,14 +69,14 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) case NFTNL_SET_TABLE: @@ -539,26 +581,26 @@ index f5a9454..4eff325 100644 s->name = strdup(mnl_attr_get_str(tb[NFTA_SET_NAME])); s->flags |= (1 << NFTNL_SET_NAME); } -@@ -1085,7 +1085,7 @@ void nftnl_set_list_free(struct nftnl_set_list *list) +@@ -1087,7 +1087,7 @@ void nftnl_set_list_free(struct nftnl_set_list *list) list_del(&s->head); nftnl_set_free(s); } - xfree(list); + nftnl_xfree(list); } - EXPORT_SYMBOL(nftnl_set_list_free, nft_set_list_free); + EXPORT_SYMBOL_ALIAS(nftnl_set_list_free, nft_set_list_free); -@@ -1175,7 +1175,7 @@ EXPORT_SYMBOL(nftnl_set_list_iter_next, nft_set_list_iter_next); +@@ -1177,7 +1177,7 @@ EXPORT_SYMBOL_ALIAS(nftnl_set_list_iter_next, nft_set_list_iter_next); - void nftnl_set_list_iter_destroy(struct nftnl_set_list_iter *iter) + void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) { - xfree(iter); + nftnl_xfree(iter); } - EXPORT_SYMBOL(nftnl_set_list_iter_destroy, nft_set_list_iter_destroy); + EXPORT_SYMBOL_ALIAS(nftnl_set_list_iter_destroy, nft_set_list_iter_destroy); diff --git a/src/set_elem.c b/src/set_elem.c -index 293ce15..4e20159 100644 +index b9c7e1e..c8ffeae 100644 --- a/src/set_elem.c +++ b/src/set_elem.c @@ -43,7 +43,7 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s) @@ -570,16 +612,19 @@ index 293ce15..4e20159 100644 s->data.chain = NULL; } } -@@ -51,7 +51,7 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s) - if (s->flags & (1 << NFTNL_SET_ELEM_EXPR)) +@@ -52,9 +52,9 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s) nftnl_expr_free(s->expr); + if (s->flags & (1 << NFTNL_SET_ELEM_USERDATA)) +- xfree(s->user.data); ++ nftnl_xfree(s->user.data); + - xfree(s); + nftnl_xfree(s); } - EXPORT_SYMBOL(nftnl_set_elem_free, nft_set_elem_free); + EXPORT_SYMBOL_ALIAS(nftnl_set_elem_free, nft_set_elem_free); -@@ -67,7 +67,7 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) +@@ -70,7 +70,7 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) case NFTNL_SET_ELEM_CHAIN: if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN)) { if (s->data.chain) { @@ -588,7 +633,7 @@ index 293ce15..4e20159 100644 s->data.chain = NULL; } } -@@ -110,7 +110,7 @@ void nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, +@@ -113,7 +113,7 @@ void nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, break; case NFTNL_SET_ELEM_CHAIN: /* NFTA_SET_ELEM_DATA */ if (s->data.chain) @@ -597,7 +642,16 @@ index 293ce15..4e20159 100644 s->data.chain = strdup(data); break; -@@ -390,7 +390,7 @@ static int nftnl_set_elems_parse2(struct nftnl_set *s, const struct nlattr *nest +@@ -126,7 +126,7 @@ void nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, + break; + case NFTNL_SET_ELEM_USERDATA: /* NFTA_SET_ELEM_USERDATA */ + if (s->user.data != NULL) +- xfree(s->user.data); ++ nftnl_xfree(s->user.data); + + s->user.data = malloc(data_len); + if (!s->user.data) +@@ -399,7 +399,7 @@ static int nftnl_set_elems_parse2(struct nftnl_set *s, const struct nlattr *nest mnl_attr_get_payload(tb[NFTA_SET_ELEM_USERDATA]); if (e->user.data) @@ -606,7 +660,7 @@ index 293ce15..4e20159 100644 e->user.len = mnl_attr_get_payload_len(tb[NFTA_SET_ELEM_USERDATA]); e->user.data = malloc(e->user.len); -@@ -462,13 +462,13 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) +@@ -471,13 +471,13 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) return -1; if (tb[NFTA_SET_ELEM_LIST_TABLE]) { @@ -622,21 +676,21 @@ index 293ce15..4e20159 100644 s->name = strdup(mnl_attr_get_str(tb[NFTA_SET_ELEM_LIST_SET])); s->flags |= (1 << NFTNL_SET_NAME); -@@ -853,7 +853,7 @@ EXPORT_SYMBOL(nftnl_set_elems_iter_next, nft_set_elems_iter_next); +@@ -866,7 +866,7 @@ EXPORT_SYMBOL_ALIAS(nftnl_set_elems_iter_next, nft_set_elems_iter_next); void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) { - xfree(iter); + nftnl_xfree(iter); } - EXPORT_SYMBOL(nftnl_set_elems_iter_destroy, nft_set_elems_iter_destroy); + EXPORT_SYMBOL_ALIAS(nftnl_set_elems_iter_destroy, nft_set_elems_iter_destroy); diff --git a/src/table.c b/src/table.c -index 28f6bd6..6aa2eb5 100644 +index 42fe49f..7363853 100644 --- a/src/table.c +++ b/src/table.c -@@ -45,9 +45,9 @@ EXPORT_SYMBOL(nftnl_table_alloc, nft_table_alloc); - void nftnl_table_free(struct nftnl_table *t) +@@ -45,9 +45,9 @@ EXPORT_SYMBOL_ALIAS(nftnl_table_alloc, nft_table_alloc); + void nftnl_table_free(const struct nftnl_table *t) { if (t->flags & (1 << NFTNL_TABLE_NAME)) - xfree(t->name); @@ -645,7 +699,7 @@ index 28f6bd6..6aa2eb5 100644 - xfree(t); + nftnl_xfree(t); } - EXPORT_SYMBOL(nftnl_table_free, nft_table_free); + EXPORT_SYMBOL_ALIAS(nftnl_table_free, nft_table_free); @@ -65,7 +65,7 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) switch (attr) { @@ -674,28 +728,66 @@ index 28f6bd6..6aa2eb5 100644 t->name = strdup(mnl_attr_get_str(tb[NFTA_TABLE_NAME])); t->flags |= (1 << NFTNL_TABLE_NAME); } -@@ -496,7 +496,7 @@ void nftnl_table_list_free(struct nftnl_table_list *list) +@@ -497,7 +497,7 @@ void nftnl_table_list_free(struct nftnl_table_list *list) list_del(&r->head); nftnl_table_free(r); } - xfree(list); + nftnl_xfree(list); } - EXPORT_SYMBOL(nftnl_table_list_free, nft_table_list_free); + EXPORT_SYMBOL_ALIAS(nftnl_table_list_free, nft_table_list_free); -@@ -581,6 +581,6 @@ EXPORT_SYMBOL(nftnl_table_list_iter_next, nft_table_list_iter_next); +@@ -582,6 +582,6 @@ EXPORT_SYMBOL_ALIAS(nftnl_table_list_iter_next, nft_table_list_iter_next); - void nftnl_table_list_iter_destroy(struct nftnl_table_list_iter *iter) + void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) { - xfree(iter); + nftnl_xfree(iter); } - EXPORT_SYMBOL(nftnl_table_list_iter_destroy, nft_table_list_iter_destroy); + EXPORT_SYMBOL_ALIAS(nftnl_table_list_iter_destroy, nft_table_list_iter_destroy); +diff --git a/src/trace.c b/src/trace.c +index 921fa21..1933bb8 100644 +--- a/src/trace.c ++++ b/src/trace.c +@@ -61,13 +61,13 @@ struct nftnl_trace *nftnl_trace_alloc(void) + EXPORT_SYMBOL(nftnl_trace_free); + void nftnl_trace_free(const struct nftnl_trace *t) + { +- xfree(t->chain); +- xfree(t->table); +- xfree(t->jump_target); +- xfree(t->ll.data); +- xfree(t->nh.data); +- xfree(t->th.data); +- xfree(t); ++ nftnl_xfree(t->chain); ++ nftnl_xfree(t->table); ++ nftnl_xfree(t->jump_target); ++ nftnl_xfree(t->ll.data); ++ nftnl_xfree(t->nh.data); ++ nftnl_xfree(t->th.data); ++ nftnl_xfree(t); + } + + EXPORT_SYMBOL(nftnl_trace_is_set); +diff --git a/src/udata.c b/src/udata.c +index 60c2f34..ec1f7dc 100644 +--- a/src/udata.c ++++ b/src/udata.c +@@ -32,7 +32,7 @@ EXPORT_SYMBOL(nftnl_udata_buf_alloc); + + void nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) + { +- xfree(buf); ++ nftnl_xfree(buf); + } + EXPORT_SYMBOL(nftnl_udata_buf_free); + diff --git a/src/utils.c b/src/utils.c -index c241e5f..ba44a60 100644 +index 22710b9..f29416e 100644 --- a/src/utils.c +++ b/src/utils.c -@@ -249,7 +249,7 @@ int nftnl_fprintf(FILE *fp, void *obj, uint32_t cmd, uint32_t type, uint32_t fla +@@ -264,7 +264,7 @@ int nftnl_fprintf(FILE *fp, const void *obj, uint32_t cmd, uint32_t type, out: if (buf != _buf) @@ -705,5 +797,5 @@ index c241e5f..ba44a60 100644 return ret; } -- -2.4.9 +2.7.3 diff --git a/bsp/buildroot/package/libnftnl/Config.in b/bsp/buildroot/package/libnftnl/Config.in index 365ab102..d4c9a1bb 100644 --- a/bsp/buildroot/package/libnftnl/Config.in +++ b/bsp/buildroot/package/libnftnl/Config.in @@ -1,9 +1,9 @@ -comment "libnftnl needs a toolchain w/ headers >= 3.1" - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 +comment "libnftnl needs a toolchain w/ headers >= 3.12" + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 config BR2_PACKAGE_LIBNFTNL bool "libnftnl" - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 select BR2_PACKAGE_LIBMNL help libnftnl is a userspace library providing a low-level diff --git a/bsp/buildroot/package/libnftnl/libnftnl.hash b/bsp/buildroot/package/libnftnl/libnftnl.hash index 50896fba..66987e15 100644 --- a/bsp/buildroot/package/libnftnl/libnftnl.hash +++ b/bsp/buildroot/package/libnftnl/libnftnl.hash @@ -1,2 +1,2 @@ -# From http://www.netfilter.org/projects/libnftnl/downloads.html#libnftnl-1.0.5 -sha1 2ae3172251574ee36077af760933ec0369960a17 libnftnl-1.0.5.tar.bz2 +# From http://www.netfilter.org/projects/libnftnl/downloads.html#libnftnl-1.0.6 +sha1 453f1c2d99d219baeca4ba42aa874f02d2ddf2f7 libnftnl-1.0.6.tar.bz2 diff --git a/bsp/buildroot/package/libnftnl/libnftnl.mk b/bsp/buildroot/package/libnftnl/libnftnl.mk index 37c82d3a..2f832049 100644 --- a/bsp/buildroot/package/libnftnl/libnftnl.mk +++ b/bsp/buildroot/package/libnftnl/libnftnl.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBNFTNL_VERSION = 1.0.5 +LIBNFTNL_VERSION = 1.0.6 LIBNFTNL_SITE = http://netfilter.org/projects/libnftnl/files LIBNFTNL_SOURCE = libnftnl-$(LIBNFTNL_VERSION).tar.bz2 LIBNFTNL_LICENSE = GPLv2+ diff --git a/bsp/buildroot/package/libnspr/0003-enable-internal-getproto-functions-for-musl.patch b/bsp/buildroot/package/libnspr/0003-enable-internal-getproto-functions-for-musl.patch deleted file mode 100644 index 860ca2ad..00000000 --- a/bsp/buildroot/package/libnspr/0003-enable-internal-getproto-functions-for-musl.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c950bcf9cc7bdc68ed9751a1b7d04f4b4c2a9fb0 Mon Sep 17 00:00:00 2001 -From: Sergio Prado -Date: Tue, 5 Jan 2016 21:15:34 -0200 -Subject: [PATCH] enable internal getproto functions for musl - -Musl toolchains does not have getprotobyname_r and getprotobynumber_r -functions and need its internal implementation. - -Patch backported from Alpine Linux commit -a162da839db0d3f8be94a5c1ad2e2e54e691c38a. - -Signed-off-by: Sergio Prado ---- - nspr/pr/src/misc/prnetdb.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/nspr/pr/src/misc/prnetdb.c b/nspr/pr/src/misc/prnetdb.c -index b86248f863f0..dc83a5615f45 100644 ---- a/nspr/pr/src/misc/prnetdb.c -+++ b/nspr/pr/src/misc/prnetdb.c -@@ -61,10 +61,7 @@ PRLock *_pr_dnsLock = NULL; - #define _PR_HAVE_GETPROTO_R_POINTER - #endif - --#if defined(SOLARIS) || (defined(BSDI) && defined(_REENTRANT)) \ -- || (defined(LINUX) && defined(_REENTRANT) \ -- && !(defined(__GLIBC__) && __GLIBC__ >= 2) \ -- && !defined(ANDROID)) -+#if defined(SOLARIS) || (defined(BSDI) && defined(_REENTRANT)) - #define _PR_HAVE_GETPROTO_R - #define _PR_HAVE_GETPROTO_R_POINTER - #endif --- -1.9.1 - diff --git a/bsp/buildroot/package/libnspr/libnspr.hash b/bsp/buildroot/package/libnspr/libnspr.hash index 87f6d4fa..f513213d 100644 --- a/bsp/buildroot/package/libnspr/libnspr.hash +++ b/bsp/buildroot/package/libnspr/libnspr.hash @@ -1,2 +1,2 @@ -# From https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.11/src/SHA256SUMS -sha256 cb320a9eee7028275ac0fce7adc39dee36f14f02fd8432fce1b7e1aa5e3685c2 nspr-4.11.tar.gz +# From https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.12/src/SHA256SUMS +sha256 e0b10a1e569153668ff8bdea6c7e491b389fab69c2f18285a1ebf7c2ea4269de nspr-4.12.tar.gz diff --git a/bsp/buildroot/package/libnspr/libnspr.mk b/bsp/buildroot/package/libnspr/libnspr.mk index 9f49eef9..0311f8fc 100644 --- a/bsp/buildroot/package/libnspr/libnspr.mk +++ b/bsp/buildroot/package/libnspr/libnspr.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBNSPR_VERSION = 4.11 +LIBNSPR_VERSION = 4.12 LIBNSPR_SOURCE = nspr-$(LIBNSPR_VERSION).tar.gz LIBNSPR_SITE = https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(LIBNSPR_VERSION)/src LIBNSPR_SUBDIR = nspr diff --git a/bsp/buildroot/package/libnss/libnss.hash b/bsp/buildroot/package/libnss/libnss.hash index 4fa5897b..8e03faf3 100644 --- a/bsp/buildroot/package/libnss/libnss.hash +++ b/bsp/buildroot/package/libnss/libnss.hash @@ -1,2 +1,2 @@ -# From https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_21_RTM/src/SHA256SUMS -sha256 3f7a5b027d7cdd5c0e4ff7544da33fdc6f56c2f8c27fff02938fd4a6fbe87239 nss-3.21.tar.gz +# From https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_23_RTM/src/SHA256SUMS +sha256 94b383e31c9671e9dfcca81084a8a813817e8f05a57f54533509b318d26e11cf nss-3.23.tar.gz diff --git a/bsp/buildroot/package/libnss/libnss.mk b/bsp/buildroot/package/libnss/libnss.mk index 6fdb77cd..e2bbf1f3 100644 --- a/bsp/buildroot/package/libnss/libnss.mk +++ b/bsp/buildroot/package/libnss/libnss.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBNSS_VERSION = 3.21 +LIBNSS_VERSION = 3.23 LIBNSS_SOURCE = nss-$(LIBNSS_VERSION).tar.gz LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(subst .,_,$(LIBNSS_VERSION))_RTM/src LIBNSS_DISTDIR = dist diff --git a/bsp/buildroot/package/libopenh264/libopenh264.hash b/bsp/buildroot/package/libopenh264/libopenh264.hash new file mode 100644 index 00000000..6d7c40b9 --- /dev/null +++ b/bsp/buildroot/package/libopenh264/libopenh264.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 98077bd5d113c183ce02b678733b0cada2cf36750370579534c4d70f0b6c27b5 libopenh264-v1.5.0.tar.gz diff --git a/bsp/buildroot/package/libopenh264/libopenh264.mk b/bsp/buildroot/package/libopenh264/libopenh264.mk index cbe30bcc..6f1c7a64 100644 --- a/bsp/buildroot/package/libopenh264/libopenh264.mk +++ b/bsp/buildroot/package/libopenh264/libopenh264.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBOPENH264_VERSION = v1.4.0 +LIBOPENH264_VERSION = v1.5.0 LIBOPENH264_SITE = $(call github,cisco,openh264,$(LIBOPENH264_VERSION)) LIBOPENH264_LICENSE = BSD-2c LIBOPENH264_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/liboping/0001-configure-also-check-for-clockgettime.patch b/bsp/buildroot/package/liboping/0001-configure-also-check-for-clockgettime.patch new file mode 100644 index 00000000..b2c58555 --- /dev/null +++ b/bsp/buildroot/package/liboping/0001-configure-also-check-for-clockgettime.patch @@ -0,0 +1,39 @@ +From a45f3610beba1f7e6e1a038e3a1fe4150057c262 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Tue, 5 Jul 2016 15:31:28 +0200 +Subject: [PATCH] configure: also check for clockgettime() + +clock_gettime() is also in -lrt so we also need to check for it. + +Signed-off-by: "Yann E. MORIN" +--- + configure.ac | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f83f5ab..3b6ae09 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -199,12 +199,16 @@ fi + + AC_SUBST(LIBOPING_PC_LIBS_PRIVATE) + +-nanosleep_needs_rt="no" ++needs_rt="no" + AC_CHECK_FUNCS(nanosleep, [], + AC_CHECK_LIB(rt, nanosleep, +- [nanosleep_needs_rt="yes"], ++ [needs_rt="yes"], + AC_MSG_ERROR(cannot find nanosleep))) +-AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes") ++AC_CHECK_FUNCS(clock_gettime, [], ++ AC_CHECK_LIB(rt, clock_gettime, ++ [needs_rt="yes"], ++ AC_MSG_ERROR(cannot find clock_gettime))) ++AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$needs_rt" = "xyes") + + with_ncurses="no" + AC_CHECK_HEADERS(ncursesw/ncurses.h ncurses.h, [with_ncurses="yes"], []) +-- +2.7.4 + diff --git a/bsp/buildroot/package/liboping/liboping.hash b/bsp/buildroot/package/liboping/liboping.hash index 536f6aef..3e796cca 100644 --- a/bsp/buildroot/package/liboping/liboping.hash +++ b/bsp/buildroot/package/liboping/liboping.hash @@ -1,2 +1,2 @@ # From http://noping.cc/#download -sha256 824792ae7fc5e9569bacc4167b89de31f6ba8476de44760f0bc272682e894b41 liboping-1.8.0.tar.gz +sha256 44bb1d88b56b88fda5533edb3aa005c69b3cd396f20453a157d7e31e536f3530 liboping-1.9.0.tar.bz2 diff --git a/bsp/buildroot/package/liboping/liboping.mk b/bsp/buildroot/package/liboping/liboping.mk index 94de73c3..dd703871 100644 --- a/bsp/buildroot/package/liboping/liboping.mk +++ b/bsp/buildroot/package/liboping/liboping.mk @@ -4,12 +4,15 @@ # ################################################################################ -LIBOPING_VERSION = 1.8.0 +LIBOPING_VERSION = 1.9.0 LIBOPING_SITE = http://noping.cc/files +LIBOPING_SOURCE = liboping-$(LIBOPING_VERSION).tar.bz2 LIBOPING_INSTALL_STAGING = YES LIBOPING_DEPENDENCIES = $(if $(BR2_PACKAGE_NCURSES),ncurses) LIBOPING_CONF_OPTS = --without-perl-bindings LIBOPING_LICENSE = LGPLv2.1+, GPLv2 LIBOPING_LICENSE_FILES = COPYING +LIBOPING_AUTORECONF = YES + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libpam-tacplus/libpam-tacplus.hash b/bsp/buildroot/package/libpam-tacplus/libpam-tacplus.hash new file mode 100644 index 00000000..c8a77232 --- /dev/null +++ b/bsp/buildroot/package/libpam-tacplus/libpam-tacplus.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 747f7ad980a3726ed3abc5fec92e867efa8af8c53caac547cab7eb6af5ce0edf libpam-tacplus-1.3.9.tar.gz diff --git a/bsp/buildroot/package/libphidget/libphidget.hash b/bsp/buildroot/package/libphidget/libphidget.hash new file mode 100644 index 00000000..a89ba367 --- /dev/null +++ b/bsp/buildroot/package/libphidget/libphidget.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 2d496828a085ada8ff139da9306bd2b8cb987798fee93caf0089dc399195e238 libphidget_2.1.8.20140319.tar.gz diff --git a/bsp/buildroot/package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch b/bsp/buildroot/package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch new file mode 100644 index 00000000..ab3444b7 --- /dev/null +++ b/bsp/buildroot/package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch @@ -0,0 +1,53 @@ +From ba1057d74aac6c2dde5477bd6a2deea79f14962c Mon Sep 17 00:00:00 2001 +From: Luca Ceresoli +Date: Sat, 12 Mar 2016 15:19:34 +0100 +Subject: [PATCH 1/2] Use mutex types compatible with musl (fixes musl build) + +PTHREAD_MUTEX_FAST_NP and PTHREAD_MUTEX_RECURSIVE_NP are not defined +in the musl C library. Use values that map to the same mutex type in +GNU libc and uClibc-ng. + +Fixes the following build errors when building with musl: + + ../src/pj/os_core_unix.c: In function 'init_mutex': + ../src/pj/os_core_unix.c:1128:40: error: 'PTHREAD_MUTEX_FAST_NP' undeclared (first use in this function) + rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_FAST_NP); + ^ + ../src/pj/os_core_unix.c:1128:40: note: each undeclared identifier is reported only once for each function it appears in + ../src/pj/os_core_unix.c:1138:40: error: 'PTHREAD_MUTEX_RECURSIVE_NP' undeclared (first use in this function) + rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); + ^ + +Original patch: +http://git.alpinelinux.org/cgit/aports/plain/main/pjproject/musl-fixes.patch + +Signed-off-by: Luca Ceresoli +--- + pjlib/src/pj/os_core_unix.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pjlib/src/pj/os_core_unix.c b/pjlib/src/pj/os_core_unix.c +index 1c87b2f..f08ba27 100644 +--- a/pjlib/src/pj/os_core_unix.c ++++ b/pjlib/src/pj/os_core_unix.c +@@ -1125,7 +1125,7 @@ static pj_status_t init_mutex(pj_mutex_t *mutex, const char *name, int type) + if (type == PJ_MUTEX_SIMPLE) { + #if (defined(PJ_LINUX) && PJ_LINUX!=0) || \ + defined(PJ_HAS_PTHREAD_MUTEXATTR_SETTYPE) +- rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_FAST_NP); ++ rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL); + #elif (defined(PJ_RTEMS) && PJ_RTEMS!=0) || \ + defined(PJ_PTHREAD_MUTEXATTR_T_HAS_RECURSIVE) + /* Nothing to do, default is simple */ +@@ -1135,7 +1135,7 @@ static pj_status_t init_mutex(pj_mutex_t *mutex, const char *name, int type) + } else { + #if (defined(PJ_LINUX) && PJ_LINUX!=0) || \ + defined(PJ_HAS_PTHREAD_MUTEXATTR_SETTYPE) +- rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); ++ rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + #elif (defined(PJ_RTEMS) && PJ_RTEMS!=0) || \ + defined(PJ_PTHREAD_MUTEXATTR_T_HAS_RECURSIVE) + // Phil Torre : +-- +1.9.1 + diff --git a/bsp/buildroot/package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch b/bsp/buildroot/package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch new file mode 100644 index 00000000..e1cb0022 --- /dev/null +++ b/bsp/buildroot/package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch @@ -0,0 +1,82 @@ +From cca93ce25f993c97ef3d96fa32461d5717c30518 Mon Sep 17 00:00:00 2001 +From: Luca Ceresoli +Date: Sat, 12 Mar 2016 15:31:47 +0100 +Subject: [PATCH 2/2] Replace __sched_priority with sched_priority(fixes musl + build) + +The musl C library defines sched_priority, not __sched_priority as GNU +libc and uClibc-ng do. Use sched_priority instead. + +This does not break compatibility with GNU libc and uClibc-ng because +both define in sched.h: + + #define sched_priority __sched_priority + +Fixes the following build errors when building with musl: + + ../src/samples/siprtp.c: In function 'boost_priority': + ../src/samples/siprtp.c:1137:7: error: 'struct sched_param' has no member named '__sched_priority' + tp.__sched_priority = max_prio; + ^ + In file included from /home/murray/devel/buildroot/test-musl-eabi/build/libpjsip-2.4.5/pjlib/include/pj/except.h:30:0, + from /home/murray/devel/buildroot/test-musl-eabi/build/libpjsip-2.4.5/pjlib/include/pjlib.h:35, + from ../src/samples/siprtp.c:76: + ../src/samples/siprtp.c:1146:18: error: 'struct sched_param' has no member named '__sched_priority' + policy, tp.__sched_priority)); + ^ + +Original patch: +http://git.alpinelinux.org/cgit/aports/plain/main/pjproject/musl-fixes.patch + +Signed-off-by: Luca Ceresoli +--- + pjsip-apps/src/samples/siprtp.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/pjsip-apps/src/samples/siprtp.c b/pjsip-apps/src/samples/siprtp.c +index 796464f..6e32a8f 100644 +--- a/pjsip-apps/src/samples/siprtp.c ++++ b/pjsip-apps/src/samples/siprtp.c +@@ -1134,7 +1134,7 @@ static void boost_priority(void) + PJ_RETURN_OS_ERROR(rc)); + return; + } +- tp.__sched_priority = max_prio; ++ tp.sched_priority = max_prio; + + rc = sched_setscheduler(0, POLICY, &tp); + if (rc != 0) { +@@ -1143,7 +1143,7 @@ static void boost_priority(void) + } + + PJ_LOG(4, (THIS_FILE, "New process policy=%d, priority=%d", +- policy, tp.__sched_priority)); ++ policy, tp.sched_priority)); + + /* + * Adjust thread scheduling algorithm and priority +@@ -1156,10 +1156,10 @@ static void boost_priority(void) + } + + PJ_LOG(4, (THIS_FILE, "Old thread policy=%d, priority=%d", +- policy, tp.__sched_priority)); ++ policy, tp.sched_priority)); + + policy = POLICY; +- tp.__sched_priority = max_prio; ++ tp.sched_priority = max_prio; + + rc = pthread_setschedparam(pthread_self(), policy, &tp); + if (rc != 0) { +@@ -1169,7 +1169,7 @@ static void boost_priority(void) + } + + PJ_LOG(4, (THIS_FILE, "New thread policy=%d, priority=%d", +- policy, tp.__sched_priority)); ++ policy, tp.sched_priority)); + } + + #else +-- +1.9.1 + diff --git a/bsp/buildroot/package/libpjsip/Config.in b/bsp/buildroot/package/libpjsip/Config.in new file mode 100644 index 00000000..727d2ec3 --- /dev/null +++ b/bsp/buildroot/package/libpjsip/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_LIBPJSIP + bool "libpjsip" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_LIBSRTP + help + PJSIP is a free and open source multimedia communication + library written in C language implementing standard based + protocols such as: SIP, SDP, RTP, STUN, TURN, and ICE. + + http://www.pjsip.org + +comment "libpjsip needs a toolchain w/ C++, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/libpjsip/libpjsip.hash b/bsp/buildroot/package/libpjsip/libpjsip.hash new file mode 100644 index 00000000..e0d3d143 --- /dev/null +++ b/bsp/buildroot/package/libpjsip/libpjsip.hash @@ -0,0 +1,5 @@ +# From http://www.pjsip.org/release/2.4.5/MD5SUM.TXT +md5 f58b3485977b3a700256203a554b3869 pjproject-2.4.5.tar.bz2 + +# Locally computed +sha256 086f5e70dcaee312b66ddc24dac6ef85e6f1fec4eed00ff2915cebe0ee3cdd8d pjproject-2.4.5.tar.bz2 diff --git a/bsp/buildroot/package/libpjsip/libpjsip.mk b/bsp/buildroot/package/libpjsip/libpjsip.mk new file mode 100644 index 00000000..2b5e18f2 --- /dev/null +++ b/bsp/buildroot/package/libpjsip/libpjsip.mk @@ -0,0 +1,50 @@ +################################################################################ +# +# libpjsip +# +################################################################################ + +LIBPJSIP_VERSION = 2.4.5 +LIBPJSIP_SOURCE = pjproject-$(LIBPJSIP_VERSION).tar.bz2 +LIBPJSIP_SITE = http://www.pjsip.org/release/$(LIBPJSIP_VERSION) +LIBPJSIP_DEPENDENCIES = libsrtp +LIBPJSIP_LICENSE = GPLv2+ +LIBPJSIP_LICENSE_FILES = COPYING +LIBPJSIP_INSTALL_STAGING = YES +LIBPJSIP_MAKE = $(MAKE1) + +LIBPJSIP_CFLAGS = $(TARGET_CFLAGS) -DPJ_HAS_IPV6=1 + +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k_cf),y) +LIBPJSIP_CFLAGS += -mxgot +endif + +LIBPJSIP_CONF_ENV = \ + LD="$(TARGET_CC)" \ + CFLAGS="$(LIBPJSIP_CFLAGS)" + +LIBPJSIP_CONF_OPTS = \ + --disable-sound \ + --disable-gsm-codec \ + --disable-speex-codec \ + --disable-speex-aec \ + --disable-resample \ + --disable-video \ + --disable-opencore-amr \ + --disable-g7221-codec \ + --disable-ilbc-codec \ + --with-external-srtp=$(STAGING_DIR)/usr + +ifeq ($(BR2_PACKAGE_OPENSSL),y) +LIBPJSIP_DEPENDENCIES += openssl +LIBPJSIP_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr +else +LIBPJSIP_CONF_OPTS += --disable-ssl +endif + +ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) +LIBPJSIP_DEPENDENCIES += util-linux +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libplatform/libplatform.hash b/bsp/buildroot/package/libplatform/libplatform.hash new file mode 100644 index 00000000..8975dfd8 --- /dev/null +++ b/bsp/buildroot/package/libplatform/libplatform.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 3603ead8b16a48cb35b1e6dea330a693f10552b1a6ea036c5db9ec248cd8baf5 libplatform-feafe68e3e0b02c3261aefb3d711863ef6fadd38.tar.gz diff --git a/bsp/buildroot/package/libplatform/libplatform.mk b/bsp/buildroot/package/libplatform/libplatform.mk index 4eb934f8..6d549151 100644 --- a/bsp/buildroot/package/libplatform/libplatform.mk +++ b/bsp/buildroot/package/libplatform/libplatform.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBPLATFORM_VERSION = 1.0.10 +LIBPLATFORM_VERSION = feafe68e3e0b02c3261aefb3d711863ef6fadd38 LIBPLATFORM_SITE = $(call github,Pulse-Eight,platform,$(LIBPLATFORM_VERSION)) LIBPLATFORM_LICENSE = GPLv2+, PHP license v3.01 LIBPLATFORM_LICENSE_FILES = src/os.h src/util/fstrcmp.c diff --git a/bsp/buildroot/package/libplayer/Config.in b/bsp/buildroot/package/libplayer/Config.in index aa599ae5..37fbb26c 100644 --- a/bsp/buildroot/package/libplayer/Config.in +++ b/bsp/buildroot/package/libplayer/Config.in @@ -11,12 +11,8 @@ config BR2_PACKAGE_LIBPLAYER if BR2_PACKAGE_LIBPLAYER config BR2_PACKAGE_LIBPLAYER_MPLAYER bool "mplayer backend" - # mplayer - depends on !(BR2_bfin || BR2_sh2a || BR2_sh4a || BR2_sh4aeb || \ - BR2_microblaze || BR2_aarch64 || BR2_nios2) - # mplayer - # Broken support for +Date: Thu, 26 May 2016 16:26:18 -0300 +Subject: [PATCH] Disable pngfix and png-fix-itxt + +Disable the new pngfix and png-fix-itxt tools: they take up space, fail +to build on some oddball toolchain configurations and aren't +expected/needed in a non-interactive embedded system. + +Signed-off-by: Gustavo Zacarias +--- + Makefile.am | 2 +- + Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 7212951..3430dca 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -18,7 +18,7 @@ check_PROGRAMS += timepng + endif + + # Utilities - installed +-bin_PROGRAMS= pngfix png-fix-itxt ++bin_PROGRAMS= + + # This ensures that pnglibconf.h gets built at the start of 'make all' or + # 'make check', but it does not add dependencies to the individual programs, +diff --git a/Makefile.in b/Makefile.in +index a66f6aa..4e67782 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -104,7 +104,7 @@ check_PROGRAMS = pngtest$(EXEEXT) pngunknown$(EXEEXT) \ + pngstest$(EXEEXT) pngvalid$(EXEEXT) pngimage$(EXEEXT) \ + $(am__EXEEXT_1) + @HAVE_CLOCK_GETTIME_TRUE@am__append_1 = timepng +-bin_PROGRAMS = pngfix$(EXEEXT) png-fix-itxt$(EXEEXT) ++bin_PROGRAMS = + @PNG_ARM_NEON_TRUE@am__append_2 = arm/arm_init.c\ + @PNG_ARM_NEON_TRUE@ arm/filter_neon.S arm/filter_neon_intrinsics.c + +-- +2.7.3 + diff --git a/bsp/buildroot/package/libpng/0001-disable-tools.patch b/bsp/buildroot/package/libpng/0001-disable-tools.patch deleted file mode 100644 index e30eca9f..00000000 --- a/bsp/buildroot/package/libpng/0001-disable-tools.patch +++ /dev/null @@ -1,30 +0,0 @@ -Disable the new pngfix and png-fix-itxt tools: they take up space, fail to -build on some oddball toolchain configurations and aren't expected/needed -in a non-interactive embedded system. - -Signed-off-by: Gustavo Zacarias - -diff -Nura libpng-1.6.10.orig/Makefile.am libpng-1.6.10/Makefile.am ---- libpng-1.6.10.orig/Makefile.am 2014-03-17 08:51:25.812005079 -0300 -+++ libpng-1.6.10/Makefile.am 2014-03-17 09:14:28.807586433 -0300 -@@ -10,7 +10,7 @@ - check_PROGRAMS= pngtest pngunknown pngstest pngvalid pngimage - - # Utilities - installed --bin_PROGRAMS= pngfix png-fix-itxt -+bin_PROGRAMS= - - # This ensures that pnglibconf.h gets built at the start of 'make all' or - # 'make check', but it does not add dependencies to the individual programs, -diff -Nura libpng-1.6.10.orig/Makefile.in libpng-1.6.10/Makefile.in ---- libpng-1.6.10.orig/Makefile.in 2014-03-17 08:51:25.807005070 -0300 -+++ libpng-1.6.10/Makefile.in 2014-03-17 09:14:44.846617623 -0300 -@@ -87,7 +87,7 @@ - host_triplet = @host@ - check_PROGRAMS = pngtest$(EXEEXT) pngunknown$(EXEEXT) \ - pngstest$(EXEEXT) pngvalid$(EXEEXT) pngimage$(EXEEXT) --bin_PROGRAMS = pngfix$(EXEEXT) png-fix-itxt$(EXEEXT) -+bin_PROGRAMS = - @PNG_ARM_NEON_TRUE@am__append_1 = arm/arm_init.c\ - @PNG_ARM_NEON_TRUE@ arm/filter_neon.S arm/filter_neon_intrinsics.c - diff --git a/bsp/buildroot/package/libpng/0002-ignore-symbol-prefix.patch b/bsp/buildroot/package/libpng/0002-Don-t-append-prefix-to-symbol-names-in-version-script.patch similarity index 64% rename from bsp/buildroot/package/libpng/0002-ignore-symbol-prefix.patch rename to bsp/buildroot/package/libpng/0002-Don-t-append-prefix-to-symbol-names-in-version-script.patch index 5a8ede58..0754e213 100644 --- a/bsp/buildroot/package/libpng/0002-ignore-symbol-prefix.patch +++ b/bsp/buildroot/package/libpng/0002-Don-t-append-prefix-to-symbol-names-in-version-script.patch @@ -1,7 +1,7 @@ -From dbfea83a7436cbac34cc883ab2b7befacaf02c40 Mon Sep 17 00:00:00 2001 -From: Danomi Manchego -Date: Tue, 23 Jun 2015 13:54:42 -0400 -Subject: libpng: don't append prefix to symbol names in version script +From 473fdecd9a580b45251480b8ccbbb1927c598310 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Thu, 26 May 2016 16:27:13 -0300 +Subject: [PATCH] Don't append prefix to symbol names in version script Even if Blackfin GNU toolchain add prefix '_' to all symbols, symbol prefix is not accepted in the link flag --version-script. @@ -9,19 +9,20 @@ Don't append prefix in the symbols in the version script file. Original patch by: Sonic Zhang -Rebase to apply cleanly. +[Gustavo: update for 1.6.22] +Signed-off-by: Gustavo Zacarias -Signed-off-by: Danomi Manchego +Signed-off-by: Gustavo Zacarias --- - Makefile.am | 2 +- - Makefile.in | 2 +- + Makefile.am | 2 +- + Makefile.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am -index dcc5439..e543c81 100644 +index 3430dca..db6a7a2 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -231,7 +231,7 @@ contrib/tools/pngfix.o: pnglibconf.h +@@ -236,7 +236,7 @@ contrib/tools/pngfix.o: pnglibconf.h # interfering with the symbol file format. SYMBOL_CFLAGS = -DPNGLIB_LIBNAME='PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0'\ -DPNGLIB_VERSION='@PNGLIB_VERSION@'\ @@ -31,18 +32,18 @@ index dcc5439..e543c81 100644 if DO_PNG_PREFIX diff --git a/Makefile.in b/Makefile.in -index 975f931..a3e0552 100644 +index 4e67782..5f468d9 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -747,7 +747,7 @@ SUFFIXES = .chk .out +@@ -754,7 +754,7 @@ SUFFIXES = .chk .out # interfering with the symbol file format. SYMBOL_CFLAGS = -DPNGLIB_LIBNAME='PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0' \ -DPNGLIB_VERSION='@PNGLIB_VERSION@' \ - -DSYMBOL_PREFIX='$(SYMBOL_PREFIX)' -DPNG_NO_USE_READ_MACROS \ + -DSYMBOL_PREFIX='' -DPNG_NO_USE_READ_MACROS \ - -DPNG_BUILDING_SYMBOL_TABLE $(am__append_5) + -DPNG_BUILDING_SYMBOL_TABLE $(am__append_6) # EXT_LIST is a list of the possibly library directory extensions, this exists -- -1.7.9.5 +2.7.3 diff --git a/bsp/buildroot/package/libpng/libpng.hash b/bsp/buildroot/package/libpng/libpng.hash index 3b2db43c..04e8e40e 100644 --- a/bsp/buildroot/package/libpng/libpng.hash +++ b/bsp/buildroot/package/libpng/libpng.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/libpng/files/libpng16/1.6.21/ -md5 3bacb4728f6694a64ad9052769d6a4ce libpng-1.6.21.tar.xz -sha1 978b2f4e007eda56032001493ddb97d20f0ab291 libpng-1.6.21.tar.xz +# From http://sourceforge.net/projects/libpng/files/libpng16/1.6.23/ +md5 9b320a05ed4db1f3f0865c8a951fd9aa libpng-1.6.23.tar.xz +sha1 4857fb8dbd5ca7ddacc40c183e340b9ffa34a097 libpng-1.6.23.tar.xz diff --git a/bsp/buildroot/package/libpng/libpng.mk b/bsp/buildroot/package/libpng/libpng.mk index 7ce4a3a6..0dfc5359 100644 --- a/bsp/buildroot/package/libpng/libpng.mk +++ b/bsp/buildroot/package/libpng/libpng.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBPNG_VERSION = 1.6.21 +LIBPNG_VERSION = 1.6.23 LIBPNG_SERIES = 16 LIBPNG_SOURCE = libpng-$(LIBPNG_VERSION).tar.xz LIBPNG_SITE = http://downloads.sourceforge.net/project/libpng/libpng${LIBPNG_SERIES}/$(LIBPNG_VERSION) @@ -12,6 +12,7 @@ LIBPNG_LICENSE = libpng license LIBPNG_LICENSE_FILES = LICENSE LIBPNG_INSTALL_STAGING = YES LIBPNG_DEPENDENCIES = host-pkgconf zlib +HOST_LIBPNG_DEPENDENCIES = host-pkgconf host-zlib LIBPNG_CONFIG_SCRIPTS = libpng$(LIBPNG_SERIES)-config libpng-config LIBPNG_CONF_OPTS = $(if $(BR2_ARM_CPU_HAS_NEON),--enable-arm-neon=yes,--enable-arm-neon=no) diff --git a/bsp/buildroot/package/libpqxx/Config.in b/bsp/buildroot/package/libpqxx/Config.in new file mode 100644 index 00000000..ddf14fd6 --- /dev/null +++ b/bsp/buildroot/package/libpqxx/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_LIBPQXX + bool "libpqxx" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_POSTGRESQL + help + libpqxx is the official C++ client API for PostgreSQL, the + enterprise-strength open-source relational database. + + http://pqxx.org/development/libpqxx/ + +comment "libpqxx needs toolchain w/ C++ support" + depends on !BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_POSTGRESQL diff --git a/bsp/buildroot/package/libpqxx/libpqxx.hash b/bsp/buildroot/package/libpqxx/libpqxx.hash new file mode 100644 index 00000000..65c50c67 --- /dev/null +++ b/bsp/buildroot/package/libpqxx/libpqxx.hash @@ -0,0 +1,4 @@ +# From: http://pqxx.org/download/software/libpqxx/libpqxx-4.0.1.tar.gz.md5sum +md5 6ea888b9ba85dd7cef1b182dc5f223a2 libpqxx-4.0.1.tar.gz +# Locally computed after verifying md5sum: +sha256 097ceda2797761ce517faa5bee186c883df1c407cb2aada613a16773afeedc38 libpqxx-4.0.1.tar.gz diff --git a/bsp/buildroot/package/libpqxx/libpqxx.mk b/bsp/buildroot/package/libpqxx/libpqxx.mk new file mode 100644 index 00000000..05871903 --- /dev/null +++ b/bsp/buildroot/package/libpqxx/libpqxx.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# libpqxx +# +################################################################################ + +LIBPQXX_VERSION = 4.0.1 +LIBPQXX_SITE = http://pqxx.org/download/software/libpqxx +LIBPQXX_INSTALL_STAGING = YES +LIBPQXX_DEPENDENCIES = postgresql +LIBPQXX_LICENSE = BSD-3c +LIBPQXX_LICENSE_FILES = COPYING + +LIBPQXX_CONF_ENV += ac_cv_path_PG_CONFIG=$(STAGING_DIR)/usr/bin/pg_config + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libqmi/libqmi.hash b/bsp/buildroot/package/libqmi/libqmi.hash index a2c37d3c..08da1ae2 100644 --- a/bsp/buildroot/package/libqmi/libqmi.hash +++ b/bsp/buildroot/package/libqmi/libqmi.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 0857bffece4e8ddfa7f721dd9ca63b4c78de345ac9ae2faebf04062cacba3780 libqmi-1.12.6.tar.xz +sha256 7ab6bb47fd23bf4d3fa17424e40ea5552d08b19e5ee4f125f21f316c8086ba2a libqmi-1.16.0.tar.xz diff --git a/bsp/buildroot/package/libqmi/libqmi.mk b/bsp/buildroot/package/libqmi/libqmi.mk index 1bc61212..825493ee 100644 --- a/bsp/buildroot/package/libqmi/libqmi.mk +++ b/bsp/buildroot/package/libqmi/libqmi.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBQMI_VERSION = 1.12.6 +LIBQMI_VERSION = 1.16.0 LIBQMI_SITE = http://www.freedesktop.org/software/libqmi LIBQMI_SOURCE = libqmi-$(LIBQMI_VERSION).tar.xz LIBQMI_LICENSE = LGPLv2+ (library), GPLv2+ (programs) diff --git a/bsp/buildroot/package/libraw/libraw.hash b/bsp/buildroot/package/libraw/libraw.hash index e23ca9ce..29794252 100644 --- a/bsp/buildroot/package/libraw/libraw.hash +++ b/bsp/buildroot/package/libraw/libraw.hash @@ -1,2 +1,3 @@ # Locally calculated sha256 e599651a4cc37e00cfc2d2b56be87c3a4e4dae2c360b680fe9ab3f93d07cdea1 LibRaw-0.17.1.tar.gz +sha256 3c09bc4d70268e78798696c5ea3a8cc65fe4e161811d5321fc3ef2ca012d8fd1 0001-Fix_gcc6_narrowing_conversion.patch?id=d890937aaca6359df45a66b35e547c94ca564823 diff --git a/bsp/buildroot/package/libraw/libraw.mk b/bsp/buildroot/package/libraw/libraw.mk index 7fc4709e..d76a1808 100644 --- a/bsp/buildroot/package/libraw/libraw.mk +++ b/bsp/buildroot/package/libraw/libraw.mk @@ -7,6 +7,9 @@ LIBRAW_VERSION = 0.17.1 LIBRAW_SOURCE = LibRaw-$(LIBRAW_VERSION).tar.gz LIBRAW_SITE = http://www.libraw.org/data +LIBRAW_PATCH = \ + https://anonscm.debian.org/cgit/pkg-phototools/libraw.git/plain/debian/patches/0001-Fix_gcc6_narrowing_conversion.patch?id=d890937aaca6359df45a66b35e547c94ca564823 + LIBRAW_INSTALL_STAGING = YES # we patch configure.ac LIBRAW_AUTORECONF = YES diff --git a/bsp/buildroot/package/librsvg/librsvg.hash b/bsp/buildroot/package/librsvg/librsvg.hash index 5147cdaa..f9844b23 100644 --- a/bsp/buildroot/package/librsvg/librsvg.hash +++ b/bsp/buildroot/package/librsvg/librsvg.hash @@ -1,2 +1,2 @@ -# From http://ftp.acc.umu.se/pub/gnome/sources/librsvg/2.40/librsvg-2.40.13.sha256sum -sha256 4d6ea93ec05f5dabe7262d711d246a0a99b2311e215360dd3dcabd6afe3b9804 librsvg-2.40.13.tar.xz +# From http://ftp.acc.umu.se/pub/gnome/sources/librsvg/2.40/librsvg-2.40.16.sha256sum +sha256 d48bcf6b03fa98f07df10332fb49d8c010786ddca6ab34cbba217684f533ff2e librsvg-2.40.16.tar.xz diff --git a/bsp/buildroot/package/librsvg/librsvg.mk b/bsp/buildroot/package/librsvg/librsvg.mk index 80d2cba0..b711de47 100644 --- a/bsp/buildroot/package/librsvg/librsvg.mk +++ b/bsp/buildroot/package/librsvg/librsvg.mk @@ -5,7 +5,7 @@ ################################################################################ LIBRSVG_VERSION_MAJOR = 2.40 -LIBRSVG_VERSION = $(LIBRSVG_VERSION_MAJOR).13 +LIBRSVG_VERSION = $(LIBRSVG_VERSION_MAJOR).16 LIBRSVG_SITE = http://ftp.gnome.org/pub/gnome/sources/librsvg/$(LIBRSVG_VERSION_MAJOR) LIBRSVG_SOURCE = librsvg-$(LIBRSVG_VERSION).tar.xz LIBRSVG_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/librtas/Config.in b/bsp/buildroot/package/librtas/Config.in index 2e6063f8..fb0ac766 100644 --- a/bsp/buildroot/package/librtas/Config.in +++ b/bsp/buildroot/package/librtas/Config.in @@ -9,6 +9,6 @@ config BR2_PACKAGE_LIBRTAS http://librtas.sourceforge.net/ -comment "librtas needs an (e)glibc toolchain" +comment "librtas needs a glibc toolchain" depends on BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/librtlsdr/librtlsdr.hash b/bsp/buildroot/package/librtlsdr/librtlsdr.hash new file mode 100644 index 00000000..24bca467 --- /dev/null +++ b/bsp/buildroot/package/librtlsdr/librtlsdr.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 98fb5c34ac94d6f2235a0bb41a08f8bed7949e1d1b91ea57a7c1110191ea58de librtlsdr-v0.5.3.tar.gz diff --git a/bsp/buildroot/package/libseccomp/0002-musl.patch b/bsp/buildroot/package/libseccomp/0002-musl.patch deleted file mode 100644 index 9858d760..00000000 --- a/bsp/buildroot/package/libseccomp/0002-musl.patch +++ /dev/null @@ -1,28 +0,0 @@ -From eb5382287cd25235e760b5da4939510b11bbf2a1 Mon Sep 17 00:00:00 2001 -From: Kylie McClain -Date: Fri, 1 Jan 2016 13:12:59 -0500 -Subject: [PATCH] system.h: Remove conflicting kernel header include - -This fixes building on musl libc, since musl does not include kernel -headers. I've tested this as working on both glibc and musl. - -Signed-off-by: Kylie McClain -[Bernd: downloaded from upstream PR: - https://github.com/seccomp/libseccomp/pull/23] -Signed-off-by: Bernd Kuhls ---- - src/system.h | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/system.h b/src/system.h -index 4660679..e84b0a0 100644 ---- a/src/system.h -+++ b/src/system.h -@@ -23,7 +23,6 @@ - #define _SYSTEM_H - - #include --#include - - #include "configure.h" - diff --git a/bsp/buildroot/package/libseccomp/Config.in b/bsp/buildroot/package/libseccomp/Config.in index 4c34c546..ddfe9f07 100644 --- a/bsp/buildroot/package/libseccomp/Config.in +++ b/bsp/buildroot/package/libseccomp/Config.in @@ -1,7 +1,8 @@ config BR2_PACKAGE_LIBSECCOMP bool "libseccomp" depends on BR2_aarch64 || BR2_mips || BR2_mipsel || BR2_mips64 || \ - BR2_mips64el || BR2_i386 || BR2_x86_64 + BR2_mips64el || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || \ + BR2_powerpc depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 help High level interface to the Linux Kernel's seccomp filter diff --git a/bsp/buildroot/package/libseccomp/libseccomp.hash b/bsp/buildroot/package/libseccomp/libseccomp.hash new file mode 100644 index 00000000..ef390ff5 --- /dev/null +++ b/bsp/buildroot/package/libseccomp/libseccomp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 09864282ae579c34bd5ef75ef3487200adfecaa51f5cffc7c7ad1ed2f89f5d6c libseccomp-v2.3.1.tar.gz diff --git a/bsp/buildroot/package/libseccomp/libseccomp.mk b/bsp/buildroot/package/libseccomp/libseccomp.mk index 69559f73..03fc6cf8 100644 --- a/bsp/buildroot/package/libseccomp/libseccomp.mk +++ b/bsp/buildroot/package/libseccomp/libseccomp.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBSECCOMP_VERSION = v2.2.3 +LIBSECCOMP_VERSION = v2.3.1 LIBSECCOMP_SITE = $(call github,seccomp,libseccomp,$(LIBSECCOMP_VERSION)) LIBSECCOMP_LICENSE = LGPLv2.1 LIBSECCOMP_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/libsecret/libsecret.hash b/bsp/buildroot/package/libsecret/libsecret.hash index cd405e6a..a637cbec 100644 --- a/bsp/buildroot/package/libsecret/libsecret.hash +++ b/bsp/buildroot/package/libsecret/libsecret.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/GNOME/sources/libsecret/0.18/libsecret-0.18.4.sha256sum -sha256 0f29b51698198e6999c91f4adce3119c8c457f546b133a85baea5ea9010a19ed libsecret-0.18.4.tar.xz +# From http://ftp.gnome.org/pub/GNOME/sources/libsecret/0.18/libsecret-0.18.5.sha256sum +sha256 9ce7bd8dd5831f2786c935d82638ac428fa085057cc6780aba0e39375887ccb3 libsecret-0.18.5.tar.xz diff --git a/bsp/buildroot/package/libsecret/libsecret.mk b/bsp/buildroot/package/libsecret/libsecret.mk index 84e9f3b9..20a217f1 100644 --- a/bsp/buildroot/package/libsecret/libsecret.mk +++ b/bsp/buildroot/package/libsecret/libsecret.mk @@ -5,7 +5,7 @@ ################################################################################ LIBSECRET_VERSION_MAJOR = 0.18 -LIBSECRET_VERSION = $(LIBSECRET_VERSION_MAJOR).4 +LIBSECRET_VERSION = $(LIBSECRET_VERSION_MAJOR).5 LIBSECRET_SITE = http://ftp.gnome.org/pub/GNOME/sources/libsecret/$(LIBSECRET_VERSION_MAJOR) LIBSECRET_SOURCE = libsecret-$(LIBSECRET_VERSION).tar.xz LIBSECRET_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libselinux/0003-revert-ln-relative.patch b/bsp/buildroot/package/libselinux/0003-revert-ln-relative.patch new file mode 100644 index 00000000..b8ad0700 --- /dev/null +++ b/bsp/buildroot/package/libselinux/0003-revert-ln-relative.patch @@ -0,0 +1,24 @@ +Makefile: revert libselinux: use ln --relative to create .so symlinks + +This reverts 71393a181d63c9baae5fe8dcaeb9411d1f253998 + +ln --relative is too recent to be available in all distributions, +especially enterprise-grade distros that can stick around as long as +they are maintained (up to 10 years in some cases?). + +For the sake of Buildroot, revert the upstream patch. + +Signed-off-by: "Yann E. MORIN" + +diff -durN a/src/Makefile b/src/Makefile +--- a/src/Makefile ++++ b/src/Makefile +@@ -151,7 +151,7 @@ + install -m 755 $(LIBSO) $(SHLIBDIR) + test -d $(LIBDIR)/pkgconfig || install -m 755 -d $(LIBDIR)/pkgconfig + install -m 644 $(LIBPC) $(LIBDIR)/pkgconfig +- ln -sf --relative $(SHLIBDIR)/$(LIBSO) $(LIBDIR)/$(TARGET) ++ cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET) + + install-pywrap: pywrap + test -d $(PYLIBDIR)/site-packages/selinux || install -m 755 -d $(PYLIBDIR)/site-packages/selinux diff --git a/bsp/buildroot/package/libselinux/Config.in b/bsp/buildroot/package/libselinux/Config.in index bc8298db..c88669b4 100644 --- a/bsp/buildroot/package/libselinux/Config.in +++ b/bsp/buildroot/package/libselinux/Config.in @@ -4,6 +4,8 @@ config BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_PCRE depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS + # Uses , not available in musl or uClibc + depends on BR2_TOOLCHAIN_USES_GLIBC # Toolchain issue: "fixup not contained within frag" depends on !BR2_arc help @@ -17,6 +19,7 @@ config BR2_PACKAGE_LIBSELINUX http://selinuxproject.org/page/Main_Page -comment "libselinux needs a toolchain w/ threads, dynamic library" +comment "libselinux needs a glibc toolchain w/ threads, dynamic library" depends on !BR2_arc - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/libselinux/libselinux.hash b/bsp/buildroot/package/libselinux/libselinux.hash index 861c327f..a4c34408 100644 --- a/bsp/buildroot/package/libselinux/libselinux.hash +++ b/bsp/buildroot/package/libselinux/libselinux.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 57aad47c06b7ec18a76e8d9870539277a84cb40109cfdcf70ed3260bdb04447a libselinux-2.1.13.tar.gz +sha256 94c9e97706280bedcc288f784f67f2b9d3d6136c192b2c9f812115edba58514f libselinux-2.5.tar.gz diff --git a/bsp/buildroot/package/libselinux/libselinux.mk b/bsp/buildroot/package/libselinux/libselinux.mk index d4b96c47..6f941732 100644 --- a/bsp/buildroot/package/libselinux/libselinux.mk +++ b/bsp/buildroot/package/libselinux/libselinux.mk @@ -4,8 +4,8 @@ # ################################################################################ -LIBSELINUX_VERSION = 2.1.13 -LIBSELINUX_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20130423 +LIBSELINUX_VERSION = 2.5 +LIBSELINUX_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20160223 LIBSELINUX_LICENSE = Public Domain LIBSELINUX_LICENSE_FILES = LICENSE @@ -13,8 +13,10 @@ LIBSELINUX_DEPENDENCIES = libsepol pcre LIBSELINUX_INSTALL_STAGING = YES +# Filter out D_FILE_OFFSET_BITS=64. This fixes errors caused by glibc 2.22. LIBSELINUX_MAKE_OPTS = \ $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(filter-out -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS))" \ LDFLAGS="$(TARGET_LDFLAGS) -lpcre -lpthread" \ ARCH=$(KERNEL_ARCH) diff --git a/bsp/buildroot/package/libsemanage/0001-execption-lib-path-fix.patch b/bsp/buildroot/package/libsemanage/0001-execption-lib-path-fix.patch deleted file mode 100644 index cbcbea59..00000000 --- a/bsp/buildroot/package/libsemanage/0001-execption-lib-path-fix.patch +++ /dev/null @@ -1,14 +0,0 @@ -Patch to correct a missing header file issue. - -Signed-off-by Clayton Shotwell - ---- a/src/exception.sh 2011-12-21 11:46:04.000000000 -0600 -+++ b/src/exception.sh 2012-08-27 11:29:58.000000000 -0500 -@@ -9,6 +9,6 @@ - } - " - } --gcc -x c -c - -aux-info temp.aux < ../include/semanage/semanage.h -+gcc -x c -c - -aux-info temp.aux -I../include < ../include/semanage/semanage.h - for i in `awk '/extern int/ { print $6 }' temp.aux`; do except $i ; done - rm -f -- temp.aux -.o diff --git a/bsp/buildroot/package/libsemanage/0002-workaround-blackfin-issue.patch b/bsp/buildroot/package/libsemanage/0001-workaround-blackfin-issue.patch similarity index 89% rename from bsp/buildroot/package/libsemanage/0002-workaround-blackfin-issue.patch rename to bsp/buildroot/package/libsemanage/0001-workaround-blackfin-issue.patch index 5d00c698..7ce96066 100644 --- a/bsp/buildroot/package/libsemanage/0002-workaround-blackfin-issue.patch +++ b/bsp/buildroot/package/libsemanage/0001-workaround-blackfin-issue.patch @@ -8,14 +8,15 @@ symbols are visible in the final DSO, which is not a problem for proper execution, it just isn't as clean. Signed-off-by: Thomas Petazzoni +Signed-off-by: Adam Duskett Index: b/src/dso.h =================================================================== --- a/src/dso.h +++ b/src/dso.h @@ -1,7 +1,7 @@ - #ifndef _SELINUX_DSO_H - #define _SELINUX_DSO_H 1 + #ifndef _SEPOL_DSO_H + #define _SEPOL_DSO_H 1 -#ifdef SHARED +#if defined(SHARED) && !defined(__bfin__) diff --git a/bsp/buildroot/package/libsemanage/Config.in b/bsp/buildroot/package/libsemanage/Config.in index d9a83c0c..4318dbfc 100644 --- a/bsp/buildroot/package/libsemanage/Config.in +++ b/bsp/buildroot/package/libsemanage/Config.in @@ -1,10 +1,16 @@ config BR2_PACKAGE_LIBSEMANAGE bool "libsemanage" + select BR2_PACKAGE_AUDIT select BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_USTR select BR2_PACKAGE_BZIP2 + depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS + # - libselinux needs fts.h (not available in uClibc/musl) + # - libsemanage itself needs getpwent_r() not available in musl + # - audit is not available on musl + depends on BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_arc help libsemanage is the policy management library. It uses @@ -17,6 +23,8 @@ config BR2_PACKAGE_LIBSEMANAGE http://selinuxproject.org/page/Main_Page -comment "libsemanage needs a toolchain w/ threads, dynamic library" +comment "libsemanage needs a glibc toolchain w/ threads, dynamic library" depends on !BR2_arc - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/libsemanage/libsemanage.hash b/bsp/buildroot/package/libsemanage/libsemanage.hash index d4204d1b..69f7c8d3 100644 --- a/bsp/buildroot/package/libsemanage/libsemanage.hash +++ b/bsp/buildroot/package/libsemanage/libsemanage.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 de2e8077245581e94576276f54e80a53c23c28d6961d2dfbe2f004eaba452e91 libsemanage-2.1.10.tar.gz +sha256 46e2f36254369b6e91d1eea0460c262b139361b055a3a67d3ceea2d8ef72e006 libsemanage-2.5.tar.gz diff --git a/bsp/buildroot/package/libsemanage/libsemanage.mk b/bsp/buildroot/package/libsemanage/libsemanage.mk index 197c14e4..beb34ba3 100644 --- a/bsp/buildroot/package/libsemanage/libsemanage.mk +++ b/bsp/buildroot/package/libsemanage/libsemanage.mk @@ -4,11 +4,11 @@ # ################################################################################ -LIBSEMANAGE_VERSION = 2.1.10 -LIBSEMANAGE_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20130423 +LIBSEMANAGE_VERSION = 2.5 +LIBSEMANAGE_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20160223 LIBSEMANAGE_LICENSE = LGPLv2.1+ LIBSEMANAGE_LICENSE_FILES = COPYING -LIBSEMANAGE_DEPENDENCIES = host-bison host-flex libselinux ustr bzip2 +LIBSEMANAGE_DEPENDENCIES = host-bison host-flex audit libselinux ustr bzip2 LIBSEMANAGE_INSTALL_STAGING = YES LIBSEMANAGE_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) @@ -27,7 +27,7 @@ define LIBSEMANAGE_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) $(LIBSEMANAGE_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install endef -HOST_LIBSEMANAGE_DEPENDENCIES = host-bison host-libsepol host-libselinux \ +HOST_LIBSEMANAGE_DEPENDENCIES = host-bison host-audit host-libsepol host-libselinux \ host-ustr host-bzip2 host-swig HOST_LIBSEMANAGE_MAKE_OPTS += $(HOST_CONFIGURE_OPTS) \ SWIG_LIB="$(HOST_DIR)/usr/share/swig/$(SWIG_VERSION)/" diff --git a/bsp/buildroot/package/libsepol/0001-support-static-only.patch b/bsp/buildroot/package/libsepol/0001-support-static-only.patch index b9746807..3e6d555e 100644 --- a/bsp/buildroot/package/libsepol/0001-support-static-only.patch +++ b/bsp/buildroot/package/libsepol/0001-support-static-only.patch @@ -7,26 +7,30 @@ libraries. It allows to support cases where the target architecture does not have support for shared libraries. Signed-off-by: Thomas Petazzoni +Signed-off-by: Adam Duskett Index: b/src/Makefile =================================================================== + +diff --git a/src/Makefile b/src/Makefile +index db6c2ba..0006285 100644 --- a/src/Makefile +++ b/src/Makefile -@@ -17,7 +17,12 @@ - CFLAGS ?= -Werror -Wall -W -Wundef -Wshadow -Wmissing-noreturn -Wmissing-format-attribute - override CFLAGS += -I. -I../include -D_GNU_SOURCE +@@ -30,8 +30,12 @@ LOBJS += $(sort $(patsubst %.c,%.lo,$(wildcard $(CILDIR)/src/*.c) $(CIL_GENERATE + override CFLAGS += -I$(CILDIR)/include + endif --all: $(LIBA) $(LIBSO) $(LIBPC) +ALL_TARGETS = $(LIBA) $(LIBPC) +ifeq ($(STATIC),) +ALL_TARGETS += $(LIBSO) +endif -+ + +-all: $(LIBA) $(LIBSO) $(LIBPC) +all: $(ALL_TARGETS) + $(LIBA): $(OBJS) - $(AR) rcs $@ $^ -@@ -39,11 +44,13 @@ +@@ -66,11 +70,13 @@ install: all test -d $(LIBDIR) || install -m 755 -d $(LIBDIR) install -m 644 $(LIBA) $(LIBDIR) @@ -37,7 +41,7 @@ Index: b/src/Makefile +ifeq ($(STATIC),) + test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR) + install -m 755 $(LIBSO) $(SHLIBDIR) - cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET) + ln -sf --relative $(SHLIBDIR)/$(LIBSO) $(LIBDIR)/$(TARGET) +endif relabel: diff --git a/bsp/buildroot/package/libsepol/0002-workaround-blackfin-issue.patch b/bsp/buildroot/package/libsepol/0002-workaround-blackfin-issue.patch index 5d00c698..3c3bd482 100644 --- a/bsp/buildroot/package/libsepol/0002-workaround-blackfin-issue.patch +++ b/bsp/buildroot/package/libsepol/0002-workaround-blackfin-issue.patch @@ -8,17 +8,19 @@ symbols are visible in the final DSO, which is not a problem for proper execution, it just isn't as clean. Signed-off-by: Thomas Petazzoni +Signed-off-by: Adam Duskett Index: b/src/dso.h =================================================================== --- a/src/dso.h +++ b/src/dso.h -@@ -1,7 +1,7 @@ - #ifndef _SELINUX_DSO_H - #define _SELINUX_DSO_H 1 +@@ -5,7 +5,7 @@ + #define DISABLE_SYMVER 1 + #endif -#ifdef SHARED +#if defined(SHARED) && !defined(__bfin__) # define hidden __attribute__ ((visibility ("hidden"))) # define hidden_proto(fct) __hidden_proto (fct, fct##_internal) # define __hidden_proto(fct, internal) \ + diff --git a/bsp/buildroot/package/libsepol/0003-add-stdarg-include.patch b/bsp/buildroot/package/libsepol/0003-add-stdarg-include.patch new file mode 100644 index 00000000..246c9654 --- /dev/null +++ b/bsp/buildroot/package/libsepol/0003-add-stdarg-include.patch @@ -0,0 +1,18 @@ +Add missing include + +This is needed to fix the build on uClibc, due to the usage of +va_list. + +Signed-off-by: Thomas Petazzoni +Index: b/cil/src/cil_log.h +=================================================================== +--- a/cil/src/cil_log.h ++++ b/cil/src/cil_log.h +@@ -30,6 +30,7 @@ + #define CIL_LOG_H_ + + #include ++#include + #include + + #define MAX_LOG_SIZE 512 diff --git a/bsp/buildroot/package/libsepol/0004-revert-ln-relative.patch b/bsp/buildroot/package/libsepol/0004-revert-ln-relative.patch new file mode 100644 index 00000000..0902d8d4 --- /dev/null +++ b/bsp/buildroot/package/libsepol/0004-revert-ln-relative.patch @@ -0,0 +1,24 @@ +Makefile: revert libsepol: use ln --relative to create .so symlinks + +This reverts 71393a181d63c9baae5fe8dcaeb9411d1f253998 + +ln --relative is too recent to be available in all distributions, +especially enterprise-grade distros that can stick around as long as +they are maintained (up to 10 years in some cases?). + +For the sake of Buildroot, revert the upstream patch. + +Signed-off-by: "Yann E. MORIN" + +diff -durN a/src/Makefile b/src/Makefile +--- a/src/Makefile ++++ b/src/Makefile +@@ -77,7 +77,7 @@ + ifeq ($(STATIC),) + test -d $(SHLIBDIR) || install -m 755 -d $(SHLIBDIR) + install -m 755 $(LIBSO) $(SHLIBDIR) +- ln -sf --relative $(SHLIBDIR)/$(LIBSO) $(LIBDIR)/$(TARGET) ++ cd $(LIBDIR) && ln -sf ../../`basename $(SHLIBDIR)`/$(LIBSO) $(TARGET) + endif + + relabel: diff --git a/bsp/buildroot/package/libsepol/libsepol.hash b/bsp/buildroot/package/libsepol/libsepol.hash index df5dabdf..266ce43f 100644 --- a/bsp/buildroot/package/libsepol/libsepol.hash +++ b/bsp/buildroot/package/libsepol/libsepol.hash @@ -1,2 +1,2 @@ # From https://github.com/SELinuxProject/selinux/wiki/Releases -sha256 290d17f583635a4a5d8a2141511272adf0571c4205cdea38b5a68df20d58a70b libsepol-2.1.9.tar.gz +sha256 2bdeec56d0a08b082b93b40703b4b3329cc5562152f7254d8f6ef6b56afe850a libsepol-2.5.tar.gz diff --git a/bsp/buildroot/package/libsepol/libsepol.mk b/bsp/buildroot/package/libsepol/libsepol.mk index 1e709c61..3b02175f 100644 --- a/bsp/buildroot/package/libsepol/libsepol.mk +++ b/bsp/buildroot/package/libsepol/libsepol.mk @@ -4,12 +4,14 @@ # ################################################################################ -LIBSEPOL_VERSION = 2.1.9 -LIBSEPOL_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20130423 +LIBSEPOL_VERSION = 2.5 +LIBSEPOL_SITE = https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20160223 LIBSEPOL_LICENSE = LGPLv2.1+ LIBSEPOL_LICENSE_FILES = COPYING LIBSEPOL_INSTALL_STAGING = YES +LIBSEPOL_DEPENDENCIES = host-flex +HOST_LIBSEPOL_DEPENDENCIES = host-flex LIBSEPOL_MAKE_FLAGS = $(TARGET_CONFIGURE_OPTS) diff --git a/bsp/buildroot/package/libserial/Config.in b/bsp/buildroot/package/libserial/Config.in index df5d1b54..bd936b93 100644 --- a/bsp/buildroot/package/libserial/Config.in +++ b/bsp/buildroot/package/libserial/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_LIBSERIAL bool "libserial" depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS # boost depends on BR2_TOOLCHAIN_HAS_THREADS # boost depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST @@ -12,5 +11,4 @@ config BR2_PACKAGE_LIBSERIAL http://libserial.sourceforge.net/ comment "libserial needs a toolchain w/ C++, threads, wchar" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/libserialport/0001-uclinux-detection.patch b/bsp/buildroot/package/libserialport/0001-uclinux-detection.patch new file mode 100644 index 00000000..7d7199c1 --- /dev/null +++ b/bsp/buildroot/package/libserialport/0001-uclinux-detection.patch @@ -0,0 +1,26 @@ +From faab9aa5879fab93556b7a3a6f24070eeb3cbf15 Mon Sep 17 00:00:00 2001 +From: Paul Cercueil +Date: Mon, 29 Aug 2016 11:11:01 +0200 +Subject: [PATCH] Fix Linux files not compiled in with a toolchain for ucLinux + +Signed-off-by: Paul Cercueil +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index f6b66e8..de6f5b9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -74,7 +74,7 @@ AC_DEFINE_UNQUOTED([SP_LIB_VERSION_REVISION], [$SP_LIB_VERSION_REVISION], [.]) + AC_DEFINE_UNQUOTED([SP_LIB_VERSION_AGE], [$SP_LIB_VERSION_AGE], [.]) + AC_DEFINE_UNQUOTED([SP_LIB_VERSION_STRING], ["$SP_LIB_VERSION"], [.]) + +-AM_CONDITIONAL([LINUX], [test -z "${host_os##linux*}"]) ++AM_CONDITIONAL([LINUX], [test -z "${host_os##linux*}" || test -z "${host_os##uclinux*}"]) + AM_CONDITIONAL([WIN32], [test -z "${host_os##mingw*}" || test -z "${host_os##cygwin*}"]) + AM_CONDITIONAL([MACOSX], [test -z "${host_os##darwin*}"]) + AM_CONDITIONAL([FREEBSD], [test -z "${host_os##freebsd*}"]) +-- +2.8.1 + diff --git a/bsp/buildroot/package/libserialport/libserialport.mk b/bsp/buildroot/package/libserialport/libserialport.mk index d8c3a3d1..86ae17f5 100644 --- a/bsp/buildroot/package/libserialport/libserialport.mk +++ b/bsp/buildroot/package/libserialport/libserialport.mk @@ -10,5 +10,6 @@ LIBSERIALPORT_LICENSE = LGPLv3+ LIBSERIALPORT_LICENSE_FILES = COPYING LIBSERIALPORT_INSTALL_STAGING = YES LIBSERIALPORT_DEPENDENCIES = host-pkgconf +LIBSERIALPORT_AUTORECONF = YES $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libsha1/libsha1.hash b/bsp/buildroot/package/libsha1/libsha1.hash new file mode 100644 index 00000000..6d597abf --- /dev/null +++ b/bsp/buildroot/package/libsha1/libsha1.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ef4c75007ac41c3dc09e0225943c789ba2b9c632a6cd7b548e0519477ac2f768 libsha1-0.3.tar.gz diff --git a/bsp/buildroot/package/libshairplay/libshairplay.hash b/bsp/buildroot/package/libshairplay/libshairplay.hash new file mode 100644 index 00000000..19261f98 --- /dev/null +++ b/bsp/buildroot/package/libshairplay/libshairplay.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 49ac0e0470ec6367f720c7b79a09165138f57b60f5949a2d9c38be5823d13294 libshairplay-ce80e005908f41d0e6fde1c4a21e9cb8ee54007b.tar.gz diff --git a/bsp/buildroot/package/libshairplay/libshairplay.mk b/bsp/buildroot/package/libshairplay/libshairplay.mk index 35bbeac9..4bdd1a04 100644 --- a/bsp/buildroot/package/libshairplay/libshairplay.mk +++ b/bsp/buildroot/package/libshairplay/libshairplay.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBSHAIRPLAY_VERSION = 64d59e3087f829006d091fa0d114efb50972a2bf +LIBSHAIRPLAY_VERSION = ce80e005908f41d0e6fde1c4a21e9cb8ee54007b LIBSHAIRPLAY_SITE = $(call github,juhovh,shairplay,$(LIBSHAIRPLAY_VERSION)) LIBSHAIRPLAY_INSTALL_STAGING = YES LIBSHAIRPLAY_AUTORECONF = YES diff --git a/bsp/buildroot/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch b/bsp/buildroot/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch new file mode 100644 index 00000000..4d173c51 --- /dev/null +++ b/bsp/buildroot/package/libshout/0001-Fix-THEORA-SPEEX-_LDFLAGS-typo.patch @@ -0,0 +1,45 @@ +From d96a3cafeebeb80b4796bacbe0e6da0bbd3ee48e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sun, 28 Aug 2016 00:39:55 +0200 +Subject: [PATCH 1/2] Fix {THEORA,SPEEX}_LDFLAGS typo +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Needed to properly link against libshout, otherwise the build fails with: + + error: LDFLAGS: No such file or directory + +Upstream status: pending +https://github.com/xiph/Icecast-libshout/pull/4 + +Signed-off-by: Jörg Krause +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 87a7f55..85f18ad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -134,7 +134,7 @@ PKG_CHECK_MODULES(THEORA, theora, [ + ]) + fi + XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$THEORA_CFLAGS]) +-XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA LDFLAGS $THEORA_LIBS]) ++XIPH_VAR_PREPEND([XIPH_LIBS],[$THEORA_LDFLAGS $THEORA_LIBS]) + AM_CONDITIONAL([HAVE_THEORA], [test -n "$THEORA_LIBS"]) + if test -n "$THEORA_LIBS" + then +@@ -153,7 +153,7 @@ PKG_CHECK_MODULES(SPEEX, speex, [ + ]) + fi + XIPH_VAR_APPEND([XIPH_CPPFLAGS],[$SPEEX_CFLAGS]) +-XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX LDFLAGS $SPEEX_LIBS]) ++XIPH_VAR_PREPEND([XIPH_LIBS],[$SPEEX_LDFLAGS $SPEEX_LIBS]) + AM_CONDITIONAL([HAVE_SPEEX], [test -n "$SPEEX_LIBS"]) + if test -n "$SPEEX_LIBS" + then +-- +2.9.3 + diff --git a/bsp/buildroot/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch b/bsp/buildroot/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch new file mode 100644 index 00000000..08d7fa91 --- /dev/null +++ b/bsp/buildroot/package/libshout/0002-Make-sure-SHOUT_REQUIRES-contains-OpenSSL.patch @@ -0,0 +1,55 @@ +From 69774132422af1d017008eb5daed8e2099d2fa0a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Wed, 31 Aug 2016 21:55:51 +0200 +Subject: [PATCH 2/2] Make sure @SHOUT_REQUIRES@ contains OpenSSL +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Static linking userspace programs such as mpd against libshout +currently doesn't work out of the box, because libshout is linked +against libssl, but this isn't expressed in libshouts pkg-config +file: + +``` +/usr/lib/libshout.a(tls.o): In function `tls_check_cert': +tls.c:(.text+0x10): undefined reference to `SSL_get_peer_certificate' +tls.c:(.text+0x24): undefined reference to `SSL_get_verify_result' +tls.c:(.text+0x4c): undefined reference to `X509_get_subject_name' +tls.c:(.text+0x60): undefined reference to `X509_NAME_get_text_by_NID' +tls.c:(.text+0x118): undefined reference to `X509_NAME_get_entry' +tls.c:(.text+0x11c): undefined reference to `X509_NAME_ENTRY_get_data' +tls.c:(.text+0x120): undefined reference to `ASN1_STRING_length' +tls.c:(.text+0x148): undefined reference to `X509_free' +tls.c:(.text+0x178): undefined reference to `X509_NAME_get_index_by_NID' +``` + +Since OpenSSL installs its own .pc files, make sure that @SHOUT_REQUIRES@ +contains `ssl`. + +Upstream status: pending +https://github.com/xiph/Icecast-libshout/pull/5 + +Signed-off-by: Jörg Krause +--- + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 85f18ad..2b9c505 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,6 +197,10 @@ XIPH_PATH_OPENSSL([ + ]) + AC_SUBST([SHOUT_TLS]) + AM_CONDITIONAL([HAVE_TLS], [test -n "$OPENSSL_LIBS"]) ++if test "$SHOUT_TLS" = "1" ++then ++ SHOUT_REQUIRES="$SHOUT_REQUIRES, libssl" ++fi + + SHOUT_VERSION="$VERSION" + SHOUT_CPPFLAGS="-I$shout_includedir $VORBIS_CFLAGS $PTHREAD_CPPFLAGS" +-- +2.9.3 + diff --git a/bsp/buildroot/package/libshout/libshout.hash b/bsp/buildroot/package/libshout/libshout.hash index 908bd991..5b3ae2d4 100644 --- a/bsp/buildroot/package/libshout/libshout.hash +++ b/bsp/buildroot/package/libshout/libshout.hash @@ -1,2 +1,3 @@ -# From http://downloads.xiph.org/releases/libshout/SHA256SUMS -sha256 cf3c5f6b4a5e3fcfbe09fb7024aa88ad4099a9945f7cb037ec06bcee7a23926e libshout-2.3.1.tar.gz +# From https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/libshout/Manifest +# hash from http://downloads.xiph.org/releases/libshout/SHA256SUMS is wrong! +sha256 f3acb8dec26f2dbf6df778888e0e429a4ce9378a9d461b02a7ccbf2991bbf24d libshout-2.4.1.tar.gz diff --git a/bsp/buildroot/package/libshout/libshout.mk b/bsp/buildroot/package/libshout/libshout.mk index faee3eb0..bf855952 100644 --- a/bsp/buildroot/package/libshout/libshout.mk +++ b/bsp/buildroot/package/libshout/libshout.mk @@ -4,13 +4,16 @@ # ################################################################################ -LIBSHOUT_VERSION = 2.3.1 +LIBSHOUT_VERSION = 2.4.1 LIBSHOUT_SITE = http://downloads.xiph.org/releases/libshout LIBSHOUT_LICENSE = LGPLv2+ LIBSHOUT_LICENSE_FILES = COPYING LIBSHOUT_INSTALL_STAGING = YES LIBSHOUT_DEPENDENCIES = host-pkgconf libogg libvorbis +# patching configure.ac +LIBSHOUT_AUTORECONF = YES + ifeq ($(BR2_PACKAGE_LIBTHEORA),y) LIBSHOUT_CONF_OPTS += --enable-theora LIBSHOUT_DEPENDENCIES += libtheora @@ -25,4 +28,11 @@ else LIBSHOUT_CONF_OPTS += --disable-speex endif +ifeq ($(BR2_PACKAGE_OPENSSL),y) +LIBSHOUT_CONF_OPTS += --with-openssl +LIBSHOUT_DEPENDENCIES += openssl +else +LIBSHOUT_CONF_OPTS += --without-openssl +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libsidplay2/0003-gcc6.patch b/bsp/buildroot/package/libsidplay2/0003-gcc6.patch new file mode 100644 index 00000000..53601f6d --- /dev/null +++ b/bsp/buildroot/package/libsidplay2/0003-gcc6.patch @@ -0,0 +1,44 @@ +Fix build with gcc6 + +gcc6 triggers an error during build: + +xsid.cpp:101:1: error: narrowing conversion of ''\200'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] + }; + ^ +xsid.cpp:101:1: error: narrowing conversion of ''\224'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] +xsid.cpp:101:1: error: narrowing conversion of ''\251'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] +xsid.cpp:101:1: error: narrowing conversion of ''\274'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] +xsid.cpp:101:1: error: narrowing conversion of ''\316'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] +xsid.cpp:101:1: error: narrowing conversion of ''\341'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] +xsid.cpp:101:1: error: narrowing conversion of ''\362'' from 'char' to 'int8_t {aka signed char}' inside { } [-Wnarrowing] + +To fix the problem change the array type from int8_t to char as proposed +by Khem Raj: +http://lists.busybox.net/pipermail/buildroot/2016-August/169540.html + +Signed-off-by: Bernd Kuhls + +diff -uNr sidplay-libs-2.1.1.org/libsidplay/src/xsid/xsid.cpp sidplay-libs-2.1.1/libsidplay/src/xsid/xsid.cpp +--- sidplay-libs-2.1.1.org/libsidplay/src/xsid/xsid.cpp 2004-06-14 22:08:02.000000000 +0200 ++++ sidplay-libs-2.1.1/libsidplay/src/xsid/xsid.cpp 2016-08-12 18:10:20.000000000 +0200 +@@ -94,7 +94,7 @@ + '\x08', '\x19', '\x2a', '\x3b', '\x4c', '\x5d', '\x6e', '\x7f' + }; + */ +-const int8_t XSID::sampleConvertTable[16] = ++const char XSID::sampleConvertTable[16] = + { + '\x80', '\x94', '\xa9', '\xbc', '\xce', '\xe1', '\xf2', '\x03', + '\x1b', '\x2a', '\x3b', '\x49', '\x58', '\x66', '\x73', '\x7f' +diff -uNr sidplay-libs-2.1.1.org/libsidplay/src/xsid/xsid.h sidplay-libs-2.1.1/libsidplay/src/xsid/xsid.h +--- sidplay-libs-2.1.1.org/libsidplay/src/xsid/xsid.h 2004-06-14 22:08:02.000000000 +0200 ++++ sidplay-libs-2.1.1/libsidplay/src/xsid/xsid.h 2016-08-12 18:11:01.000000000 +0200 +@@ -238,7 +238,7 @@ + uint8_t sidData0x18; + bool _sidSamples; + int8_t sampleOffset; +- static const int8_t sampleConvertTable[16]; ++ static const char sampleConvertTable[16]; + bool wasRunning; + + private: diff --git a/bsp/buildroot/package/libsigc/libsigc.hash b/bsp/buildroot/package/libsigc/libsigc.hash index b9c99c5e..c4524140 100644 --- a/bsp/buildroot/package/libsigc/libsigc.hash +++ b/bsp/buildroot/package/libsigc/libsigc.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/libsigc++/2.6/libsigc++-2.6.2.sha256sum -sha256 fdace7134c31de792c17570f9049ca0657909b28c4c70ec4882f91a03de54437 libsigc++-2.6.2.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/libsigc++/2.8/libsigc++-2.8.0.sha256sum +sha256 774980d027c52947cb9ee4fac6ffe2ca60cc2f753068a89dfd281c83dbff9651 libsigc++-2.8.0.tar.xz diff --git a/bsp/buildroot/package/libsigc/libsigc.mk b/bsp/buildroot/package/libsigc/libsigc.mk index 0dc5d24f..f3ca9702 100644 --- a/bsp/buildroot/package/libsigc/libsigc.mk +++ b/bsp/buildroot/package/libsigc/libsigc.mk @@ -4,8 +4,8 @@ # ################################################################################ -LIBSIGC_VERSION_MAJOR = 2.6 -LIBSIGC_VERSION = $(LIBSIGC_VERSION_MAJOR).2 +LIBSIGC_VERSION_MAJOR = 2.8 +LIBSIGC_VERSION = $(LIBSIGC_VERSION_MAJOR).0 LIBSIGC_SOURCE = libsigc++-$(LIBSIGC_VERSION).tar.xz LIBSIGC_SITE = http://ftp.gnome.org/pub/GNOME/sources/libsigc++/$(LIBSIGC_VERSION_MAJOR) LIBSIGC_DEPENDENCIES = host-m4 diff --git a/bsp/buildroot/package/libsigsegv/Config.in b/bsp/buildroot/package/libsigsegv/Config.in index e5224da2..f258dc9e 100644 --- a/bsp/buildroot/package/libsigsegv/Config.in +++ b/bsp/buildroot/package/libsigsegv/Config.in @@ -1,14 +1,20 @@ +config BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS + bool + # with glibc/musl, ucontext is available for all supported + # architectures + default y if BR2_TOOLCHAIN_USES_GLIBC + default y if BR2_TOOLCHAIN_USES_MUSL + # with uclibc, ucontext is only available for a subset of the + # supported architectures + default y if BR2_TOOLCHAIN_USES_UCLIBC && \ + (BR2_ARM_CPU_HAS_ARM || BR2_i386 || \ + BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \ + BR2_sparc || BR2_x86_64) + config BR2_PACKAGE_LIBSIGSEGV bool "libsigsegv" - depends on !BR2_xtensa - depends on !BR2_arc # no ucontext_i.sym file - depends on !BR2_microblaze - # No ucontext support in uclibc for powerpc and superh - depends on !((BR2_powerpc || BR2_sh) && BR2_TOOLCHAIN_USES_UCLIBC) + depends on BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS help Library for handling page faults in user mode. - http://libsigsegv.sourceforge.net/ - -comment "libsigsegv needs an (e)glibc toolchain" - depends on (BR2_powerpc || BR2_sh) && BR2_TOOLCHAIN_USES_UCLIBC + http://www.gnu.org/software/libsigsegv/ diff --git a/bsp/buildroot/package/libsndfile/libsndfile.hash b/bsp/buildroot/package/libsndfile/libsndfile.hash index 04d091b5..a87b7c30 100644 --- a/bsp/buildroot/package/libsndfile/libsndfile.hash +++ b/bsp/buildroot/package/libsndfile/libsndfile.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 cd6520ec763d1a45573885ecb1f8e4e42505ac12180268482a44b28484a25092 libsndfile-1.0.26.tar.gz +sha256 a391952f27f4a92ceb2b4c06493ac107896ed6c76be9a613a4731f076d30fac0 libsndfile-1.0.27.tar.gz diff --git a/bsp/buildroot/package/libsndfile/libsndfile.mk b/bsp/buildroot/package/libsndfile/libsndfile.mk index 107a3566..aaef6571 100644 --- a/bsp/buildroot/package/libsndfile/libsndfile.mk +++ b/bsp/buildroot/package/libsndfile/libsndfile.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBSNDFILE_VERSION = 1.0.26 +LIBSNDFILE_VERSION = 1.0.27 LIBSNDFILE_SITE = http://www.mega-nerd.com/libsndfile/files LIBSNDFILE_INSTALL_STAGING = YES LIBSNDFILE_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/libsoc/libsoc.hash b/bsp/buildroot/package/libsoc/libsoc.hash index e6a85771..77f2fad7 100644 --- a/bsp/buildroot/package/libsoc/libsoc.hash +++ b/bsp/buildroot/package/libsoc/libsoc.hash @@ -1,2 +1,2 @@ -# Locally calculated -sha256 fc7f4c4ec5cc694833f27d91603aaaa6a43e8100ab26bac47f553753c8d45ac0 libsoc-0.7.1.tar.gz +# Locally computed: +sha256 8df626bde365b94a805e1c323104c63a7429ec64c9df815cd1d9b9c4b317e066 libsoc-0.8.2.tar.gz diff --git a/bsp/buildroot/package/libsoc/libsoc.mk b/bsp/buildroot/package/libsoc/libsoc.mk index 84e281fb..03bef043 100644 --- a/bsp/buildroot/package/libsoc/libsoc.mk +++ b/bsp/buildroot/package/libsoc/libsoc.mk @@ -4,11 +4,23 @@ # ################################################################################ -LIBSOC_VERSION = 0.7.1 +LIBSOC_VERSION = 0.8.2 LIBSOC_SITE = $(call github,jackmitch,libsoc,$(LIBSOC_VERSION)) LIBSOC_LICENSE = LGPLv2.1 -LIBSOC_LICENSE_FILES = COPYING +LIBSOC_LICENSE_FILES = LICENCE LIBSOC_AUTORECONF = YES LIBSOC_INSTALL_STAGING = YES +# Install Python 2 bindings +ifeq ($(BR2_PACKAGE_PYTHON),y) +LIBSOC_DEPENDENCIES += python +LIBSOC_CONF_OPTS += --enable-python=2 +# Install Python 3 bindings +else ifeq ($(BR2_PACKAGE_PYTHON3),y) +LIBSOC_DEPENDENCIES += python3 +LIBSOC_CONF_OPTS += --enable-python=3 +else +LIBSOC_CONF_OPTS += --disable-python +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libsodium/libsodium.hash b/bsp/buildroot/package/libsodium/libsodium.hash index 35442370..8b795551 100644 --- a/bsp/buildroot/package/libsodium/libsodium.hash +++ b/bsp/buildroot/package/libsodium/libsodium.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 940d03ea7d2caa7940e24564bf6d9f66d6edd1df1e0111ff8e3655f3b864fb59 libsodium-1.0.6.tar.gz +sha256 c0f191d2527852641e0a996b7b106d2e04cbc76ea50731b2d0babd3409301926 libsodium-1.0.8.tar.gz diff --git a/bsp/buildroot/package/libsodium/libsodium.mk b/bsp/buildroot/package/libsodium/libsodium.mk index 09bc7776..a8c28a6c 100644 --- a/bsp/buildroot/package/libsodium/libsodium.mk +++ b/bsp/buildroot/package/libsodium/libsodium.mk @@ -4,14 +4,15 @@ # ################################################################################ -LIBSODIUM_VERSION = 1.0.6 +LIBSODIUM_VERSION = 1.0.8 LIBSODIUM_SITE = https://download.libsodium.org/libsodium/releases LIBSODIUM_LICENSE = ISC LIBSODIUM_LICENSE_FILES = LICENSE LIBSODIUM_INSTALL_STAGING = YES -ifeq ($(BR2_arc),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) LIBSODIUM_CONF_OPTS += --disable-pie endif $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/libsoup/libsoup.hash b/bsp/buildroot/package/libsoup/libsoup.hash index 78785508..45cee421 100644 --- a/bsp/buildroot/package/libsoup/libsoup.hash +++ b/bsp/buildroot/package/libsoup/libsoup.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/libsoup/2.52/libsoup-2.52.2.sha256sum -sha256 db55628b5c7d952945bb71b236469057c8dfb8dea0c271513579c6273c2093dc libsoup-2.52.2.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/libsoup/2.54/libsoup-2.54.1.sha256sum +sha256 47b42c232034734d66e5f093025843a5d8cc4b2357c011085a2fd04ef02dd633 libsoup-2.54.1.tar.xz diff --git a/bsp/buildroot/package/libsoup/libsoup.mk b/bsp/buildroot/package/libsoup/libsoup.mk index fd51a0e7..5f5156b6 100644 --- a/bsp/buildroot/package/libsoup/libsoup.mk +++ b/bsp/buildroot/package/libsoup/libsoup.mk @@ -4,15 +4,15 @@ # ################################################################################ -LIBSOUP_VERSION_MAJOR = 2.52 -LIBSOUP_VERSION = $(LIBSOUP_VERSION_MAJOR).2 +LIBSOUP_VERSION_MAJOR = 2.54 +LIBSOUP_VERSION = $(LIBSOUP_VERSION_MAJOR).1 LIBSOUP_SOURCE = libsoup-$(LIBSOUP_VERSION).tar.xz LIBSOUP_SITE = http://ftp.gnome.org/pub/gnome/sources/libsoup/$(LIBSOUP_VERSION_MAJOR) LIBSOUP_LICENSE = LGPLv2+ LIBSOUP_LICENSE_FILES = COPYING LIBSOUP_INSTALL_STAGING = YES LIBSOUP_CONF_ENV = ac_cv_path_GLIB_GENMARSHAL=$(LIBGLIB2_HOST_BINARY) -LIBSOUP_CONF_OPTS = --disable-glibtest --enable-vala=no +LIBSOUP_CONF_OPTS = --disable-glibtest --enable-vala=no --with-gssapi=no LIBSOUP_DEPENDENCIES = host-pkgconf host-libglib2 \ libglib2 libxml2 sqlite host-intltool diff --git a/bsp/buildroot/package/libsrtp/0001-Rename-SHA1-functions-to-avoid-conflicts-with-downst.patch b/bsp/buildroot/package/libsrtp/0001-Rename-SHA1-functions-to-avoid-conflicts-with-downst.patch new file mode 100644 index 00000000..60a123ec --- /dev/null +++ b/bsp/buildroot/package/libsrtp/0001-Rename-SHA1-functions-to-avoid-conflicts-with-downst.patch @@ -0,0 +1,396 @@ +From f76eb65d008d0c8e06698e4a63a776e91b80155b Mon Sep 17 00:00:00 2001 +From: jfigus +Date: Tue, 4 Nov 2014 14:54:02 -0500 +Subject: [PATCH] Rename SHA1 functions to avoid conflicts with downstream + packages. + +Backported from upstream commit c270245a94ae9a007202754eb8f7ce9e48f97007 +and tweaked to apply on top of v1.5.4. + +Signed-off-by: Vicente Olivert Riera +--- + crypto/hash/hmac.c | 20 ++++++++++---------- + crypto/hash/hmac_ossl.c | 18 +++++++++--------- + crypto/hash/sha1.c | 32 ++++++++++++++++---------------- + crypto/include/hmac.h | 4 ++-- + crypto/include/sha1.h | 34 +++++++++++++++++----------------- + crypto/test/sha1_driver.c | 8 ++++---- + 6 files changed, 58 insertions(+), 58 deletions(-) + +diff --git a/crypto/hash/hmac.c b/crypto/hash/hmac.c +index ddb75ea..4bed61e 100644 +--- a/crypto/hash/hmac.c ++++ b/crypto/hash/hmac.c +@@ -141,11 +141,11 @@ hmac_init(hmac_ctx_t *state, const uint8_t *key, int key_len) { + debug_print(mod_hmac, "ipad: %s", octet_string_hex_string(ipad, 64)); + + /* initialize sha1 context */ +- sha1_init(&state->init_ctx); ++ srtp_sha1_init(&state->init_ctx); + + /* hash ipad ^ key */ +- sha1_update(&state->init_ctx, ipad, 64); +- memcpy(&state->ctx, &state->init_ctx, sizeof(sha1_ctx_t)); ++ srtp_sha1_update(&state->init_ctx, ipad, 64); ++ memcpy(&state->ctx, &state->init_ctx, sizeof(srtp_sha1_ctx_t)); + + return err_status_ok; + } +@@ -153,7 +153,7 @@ hmac_init(hmac_ctx_t *state, const uint8_t *key, int key_len) { + err_status_t + hmac_start(hmac_ctx_t *state) { + +- memcpy(&state->ctx, &state->init_ctx, sizeof(sha1_ctx_t)); ++ memcpy(&state->ctx, &state->init_ctx, sizeof(srtp_sha1_ctx_t)); + + return err_status_ok; + } +@@ -165,7 +165,7 @@ hmac_update(hmac_ctx_t *state, const uint8_t *message, int msg_octets) { + octet_string_hex_string(message, msg_octets)); + + /* hash message into sha1 context */ +- sha1_update(&state->ctx, message, msg_octets); ++ srtp_sha1_update(&state->ctx, message, msg_octets); + + return err_status_ok; + } +@@ -183,7 +183,7 @@ hmac_compute(hmac_ctx_t *state, const void *message, + + /* hash message, copy output into H */ + hmac_update(state, (const uint8_t*)message, msg_octets); +- sha1_final(&state->ctx, H); ++ srtp_sha1_final(&state->ctx, H); + + /* + * note that we don't need to debug_print() the input, since the +@@ -193,16 +193,16 @@ hmac_compute(hmac_ctx_t *state, const void *message, + octet_string_hex_string((uint8_t *)H, 20)); + + /* re-initialize hash context */ +- sha1_init(&state->ctx); ++ srtp_sha1_init(&state->ctx); + + /* hash opad ^ key */ +- sha1_update(&state->ctx, (uint8_t *)state->opad, 64); ++ srtp_sha1_update(&state->ctx, (uint8_t *)state->opad, 64); + + /* hash the result of the inner hash */ +- sha1_update(&state->ctx, (uint8_t *)H, 20); ++ srtp_sha1_update(&state->ctx, (uint8_t *)H, 20); + + /* the result is returned in the array hash_value[] */ +- sha1_final(&state->ctx, hash_value); ++ srtp_sha1_final(&state->ctx, hash_value); + + /* copy hash_value to *result */ + for (i=0; i < tag_len; i++) +diff --git a/crypto/hash/hmac_ossl.c b/crypto/hash/hmac_ossl.c +index f62ce57..2ec8350 100644 +--- a/crypto/hash/hmac_ossl.c ++++ b/crypto/hash/hmac_ossl.c +@@ -163,11 +163,11 @@ hmac_init (hmac_ctx_t *state, const uint8_t *key, int key_len) + debug_print(mod_hmac, "ipad: %s", octet_string_hex_string(ipad, sizeof(ipad))); + + /* initialize sha1 context */ +- sha1_init(&state->init_ctx); ++ srtp_sha1_init(&state->init_ctx); + state->init_ctx_initialized = 1; + + /* hash ipad ^ key */ +- sha1_update(&state->init_ctx, ipad, sizeof(ipad)); ++ srtp_sha1_update(&state->init_ctx, ipad, sizeof(ipad)); + return (hmac_start(state)); + } + +@@ -192,7 +192,7 @@ hmac_update (hmac_ctx_t *state, const uint8_t *message, int msg_octets) + octet_string_hex_string(message, msg_octets)); + + /* hash message into sha1 context */ +- sha1_update(&state->ctx, message, msg_octets); ++ srtp_sha1_update(&state->ctx, message, msg_octets); + + return err_status_ok; + } +@@ -211,8 +211,8 @@ hmac_compute (hmac_ctx_t *state, const void *message, + } + + /* hash message, copy output into H */ +- sha1_update(&state->ctx, message, msg_octets); +- sha1_final(&state->ctx, H); ++ srtp_sha1_update(&state->ctx, message, msg_octets); ++ srtp_sha1_final(&state->ctx, H); + + /* + * note that we don't need to debug_print() the input, since the +@@ -222,16 +222,16 @@ hmac_compute (hmac_ctx_t *state, const void *message, + octet_string_hex_string((uint8_t*)H, sizeof(H))); + + /* re-initialize hash context */ +- sha1_init(&state->ctx); ++ srtp_sha1_init(&state->ctx); + + /* hash opad ^ key */ +- sha1_update(&state->ctx, (uint8_t*)state->opad, sizeof(state->opad)); ++ srtp_sha1_update(&state->ctx, (uint8_t*)state->opad, sizeof(state->opad)); + + /* hash the result of the inner hash */ +- sha1_update(&state->ctx, (uint8_t*)H, sizeof(H)); ++ srtp_sha1_update(&state->ctx, (uint8_t*)H, sizeof(H)); + + /* the result is returned in the array hash_value[] */ +- sha1_final(&state->ctx, hash_value); ++ srtp_sha1_final(&state->ctx, hash_value); + + /* copy hash_value to *result */ + for (i = 0; i < tag_len; i++) { +diff --git a/crypto/hash/sha1.c b/crypto/hash/sha1.c +index c200437..29c2e62 100644 +--- a/crypto/hash/sha1.c ++++ b/crypto/hash/sha1.c +@@ -77,17 +77,17 @@ uint32_t SHA_K2 = 0x8F1BBCDC; /* Kt for 40 <= t <= 59 */ + uint32_t SHA_K3 = 0xCA62C1D6; /* Kt for 60 <= t <= 79 */ + + void +-sha1(const uint8_t *msg, int octets_in_msg, uint32_t hash_value[5]) { +- sha1_ctx_t ctx; ++srtp_sha1(const uint8_t *msg, int octets_in_msg, uint32_t hash_value[5]) { ++ srtp_sha1_ctx_t ctx; + +- sha1_init(&ctx); +- sha1_update(&ctx, msg, octets_in_msg); +- sha1_final(&ctx, hash_value); ++ srtp_sha1_init(&ctx); ++ srtp_sha1_update(&ctx, msg, octets_in_msg); ++ srtp_sha1_final(&ctx, hash_value); + + } + + /* +- * sha1_core(M, H) computes the core compression function, where M is ++ * srtp_sha1_core(M, H) computes the core compression function, where M is + * the next part of the message (in network byte order) and H is the + * intermediate state { H0, H1, ...} (in host byte order) + * +@@ -99,7 +99,7 @@ sha1(const uint8_t *msg, int octets_in_msg, uint32_t hash_value[5]) { + */ + + void +-sha1_core(const uint32_t M[16], uint32_t hash_value[5]) { ++srtp_sha1_core(const uint32_t M[16], uint32_t hash_value[5]) { + uint32_t H0; + uint32_t H1; + uint32_t H2; +@@ -186,7 +186,7 @@ sha1_core(const uint32_t M[16], uint32_t hash_value[5]) { + } + + void +-sha1_init(sha1_ctx_t *ctx) { ++srtp_sha1_init(srtp_sha1_ctx_t *ctx) { + + /* initialize state vector */ + ctx->H[0] = 0x67452301; +@@ -204,7 +204,7 @@ sha1_init(sha1_ctx_t *ctx) { + } + + void +-sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { ++srtp_sha1_update(srtp_sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { + int i; + uint8_t *buf = (uint8_t *)ctx->M; + +@@ -227,13 +227,13 @@ sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { + + /* process a whole block */ + +- debug_print(mod_sha1, "(update) running sha1_core()", NULL); ++ debug_print(mod_sha1, "(update) running srtp_sha1_core()", NULL); + +- sha1_core(ctx->M, ctx->H); ++ srtp_sha1_core(ctx->M, ctx->H); + + } else { + +- debug_print(mod_sha1, "(update) not running sha1_core()", NULL); ++ debug_print(mod_sha1, "(update) not running srtp_sha1_core()", NULL); + + for (i=ctx->octets_in_buffer; + i < (ctx->octets_in_buffer + octets_in_msg); i++) +@@ -247,12 +247,12 @@ sha1_update(sha1_ctx_t *ctx, const uint8_t *msg, int octets_in_msg) { + } + + /* +- * sha1_final(ctx, output) computes the result for ctx and copies it ++ * srtp_sha1_final(ctx, output) computes the result for ctx and copies it + * into the twenty octets located at *output + */ + + void +-sha1_final(sha1_ctx_t *ctx, uint32_t *output) { ++srtp_sha1_final(srtp_sha1_ctx_t *ctx, uint32_t *output) { + uint32_t A, B, C, D, E, TEMP; + uint32_t W[80]; + int i, t; +@@ -339,11 +339,11 @@ sha1_final(sha1_ctx_t *ctx, uint32_t *output) { + + } + +- debug_print(mod_sha1, "(final) running sha1_core()", NULL); ++ debug_print(mod_sha1, "(final) running srtp_sha1_core()", NULL); + + if (ctx->octets_in_buffer >= 56) { + +- debug_print(mod_sha1, "(final) running sha1_core() again", NULL); ++ debug_print(mod_sha1, "(final) running srtp_sha1_core() again", NULL); + + /* we need to do one final run of the compression algo */ + +diff --git a/crypto/include/hmac.h b/crypto/include/hmac.h +index 875f45c..9fc664e 100644 +--- a/crypto/include/hmac.h ++++ b/crypto/include/hmac.h +@@ -51,8 +51,8 @@ + + typedef struct { + uint8_t opad[64]; +- sha1_ctx_t ctx; +- sha1_ctx_t init_ctx; ++ srtp_sha1_ctx_t ctx; ++ srtp_sha1_ctx_t init_ctx; + #ifdef OPENSSL + int ctx_initialized; + int init_ctx_initialized; +diff --git a/crypto/include/sha1.h b/crypto/include/sha1.h +index f1744ce..e177af6 100644 +--- a/crypto/include/sha1.h ++++ b/crypto/include/sha1.h +@@ -56,15 +56,15 @@ + #include + #include + +-typedef EVP_MD_CTX sha1_ctx_t; ++typedef EVP_MD_CTX srtp_sha1_ctx_t; + + /* +- * sha1_init(&ctx) initializes the SHA1 context ctx ++ * srtp_sha1_init(&ctx) initializes the SHA1 context ctx + * +- * sha1_update(&ctx, msg, len) hashes the len octets starting at msg ++ * srtp_sha1_update(&ctx, msg, len) hashes the len octets starting at msg + * into the SHA1 context + * +- * sha1_final(&ctx, output) performs the final processing of the SHA1 ++ * srtp_sha1_final(&ctx, output) performs the final processing of the SHA1 + * context and writes the result to the 20 octets at output + * + * Return values are ignored on the EVP functions since all three +@@ -72,18 +72,18 @@ typedef EVP_MD_CTX sha1_ctx_t; + * + */ + +-static inline void sha1_init (sha1_ctx_t *ctx) ++static inline void srtp_sha1_init (srtp_sha1_ctx_t *ctx) + { + EVP_MD_CTX_init(ctx); + EVP_DigestInit(ctx, EVP_sha1()); + } + +-static inline void sha1_update (sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg) ++static inline void srtp_sha1_update (srtp_sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg) + { + EVP_DigestUpdate(ctx, M, octets_in_msg); + } + +-static inline void sha1_final (sha1_ctx_t *ctx, uint32_t *output) ++static inline void srtp_sha1_final (srtp_sha1_ctx_t *ctx, uint32_t *output) + { + unsigned int len = 0; + +@@ -97,7 +97,7 @@ typedef struct { + uint32_t M[16]; /* message buffer */ + int octets_in_buffer; /* octets of message in buffer */ + uint32_t num_bits_in_msg; /* total number of bits in message */ +-} sha1_ctx_t; ++} srtp_sha1_ctx_t; + + /* + * sha1(&ctx, msg, len, output) hashes the len octets starting at msg +@@ -110,33 +110,33 @@ void + sha1(const uint8_t *message, int octets_in_msg, uint32_t output[5]); + + /* +- * sha1_init(&ctx) initializes the SHA1 context ctx ++ * srtp_sha1_init(&ctx) initializes the SHA1 context ctx + * +- * sha1_update(&ctx, msg, len) hashes the len octets starting at msg ++ * srtp_sha1_update(&ctx, msg, len) hashes the len octets starting at msg + * into the SHA1 context + * +- * sha1_final(&ctx, output) performs the final processing of the SHA1 ++ * srtp_sha1_final(&ctx, output) performs the final processing of the SHA1 + * context and writes the result to the 20 octets at output + * + */ + + void +-sha1_init(sha1_ctx_t *ctx); ++srtp_sha1_init(srtp_sha1_ctx_t *ctx); + + void +-sha1_update(sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg); ++srtp_sha1_update(srtp_sha1_ctx_t *ctx, const uint8_t *M, int octets_in_msg); + + void +-sha1_final(sha1_ctx_t *ctx, uint32_t output[5]); ++srtp_sha1_final(srtp_sha1_ctx_t *ctx, uint32_t output[5]); + + /* +- * The sha1_core function is INTERNAL to SHA-1, but it is declared ++ * The srtp_sha1_core function is INTERNAL to SHA-1, but it is declared + * here because it is also used by the cipher SEAL 3.0 in its key + * setup algorithm. + */ + + /* +- * sha1_core(M, H) computes the core sha1 compression function, where M is ++ * srtp_sha1_core(M, H) computes the core sha1 compression function, where M is + * the next part of the message and H is the intermediate state {H0, + * H1, ...} + * +@@ -145,7 +145,7 @@ sha1_final(sha1_ctx_t *ctx, uint32_t output[5]); + */ + + void +-sha1_core(const uint32_t M[16], uint32_t hash_value[5]); ++srtp_sha1_core(const uint32_t M[16], uint32_t hash_value[5]); + + #endif /* else OPENSSL */ + +diff --git a/crypto/test/sha1_driver.c b/crypto/test/sha1_driver.c +index 6adfad1..2e19479 100644 +--- a/crypto/test/sha1_driver.c ++++ b/crypto/test/sha1_driver.c +@@ -102,7 +102,7 @@ hash_test_case_add(hash_test_case_t **list_ptr, + + err_status_t + sha1_test_case_validate(const hash_test_case_t *test_case) { +- sha1_ctx_t ctx; ++ srtp_sha1_ctx_t ctx; + uint32_t hash_value[5]; + + if (test_case == NULL) +@@ -113,9 +113,9 @@ sha1_test_case_validate(const hash_test_case_t *test_case) { + if (test_case->data_len > MAX_HASH_DATA_LEN) + return err_status_bad_param; + +- sha1_init(&ctx); +- sha1_update(&ctx, test_case->data, test_case->data_len); +- sha1_final(&ctx, hash_value); ++ srtp_sha1_init(&ctx); ++ srtp_sha1_update(&ctx, test_case->data, test_case->data_len); ++ srtp_sha1_final(&ctx, hash_value); + if (0 == memcmp(test_case->hash, hash_value, 20)) { + #if VERBOSE + printf("PASSED: reference value: %s\n", +-- +2.7.3 + diff --git a/bsp/buildroot/package/libsrtp/libsrtp.hash b/bsp/buildroot/package/libsrtp/libsrtp.hash new file mode 100644 index 00000000..cb060d27 --- /dev/null +++ b/bsp/buildroot/package/libsrtp/libsrtp.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 56a7b521c25134f48faff26b0b1e3d4378a14986a2d3d7bc6fefb48987304ff0 libsrtp-v1.5.4.tar.gz diff --git a/bsp/buildroot/package/libsrtp/libsrtp.mk b/bsp/buildroot/package/libsrtp/libsrtp.mk index bcf344fa..40b85e69 100644 --- a/bsp/buildroot/package/libsrtp/libsrtp.mk +++ b/bsp/buildroot/package/libsrtp/libsrtp.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBSRTP_VERSION = v1.5.2 +LIBSRTP_VERSION = v1.5.4 LIBSRTP_SITE = $(call github,cisco,libsrtp,$(LIBSRTP_VERSION)) LIBSRTP_INSTALL_STAGING = YES LIBSRTP_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/libssh/Config.in b/bsp/buildroot/package/libssh/Config.in index 3357fb9e..6029f459 100644 --- a/bsp/buildroot/package/libssh/Config.in +++ b/bsp/buildroot/package/libssh/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_LIBSSH depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS # Either OpenSSL or libgcrypt are mandatory + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS && !BR2_PACKAGE_OPENSSL # libgcrypt select BR2_PACKAGE_LIBGCRYPT if !BR2_PACKAGE_OPENSSL help libssh is a multiplatform C library implementing the SSHv2 diff --git a/bsp/buildroot/package/libssh2/Config.in b/bsp/buildroot/package/libssh2/Config.in index ea4bb3b0..0deb3bbc 100644 --- a/bsp/buildroot/package/libssh2/Config.in +++ b/bsp/buildroot/package/libssh2/Config.in @@ -1,8 +1,7 @@ config BR2_PACKAGE_LIBSSH2 bool "libssh2" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS && !BR2_PACKAGE_OPENSSL # libgcrypt select BR2_PACKAGE_LIBGCRYPT if !BR2_PACKAGE_OPENSSL - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help libssh2 is a client-side C library implementing the SSH2 protocol as defined by Internet Drafts: SECSH-TRANS(22), diff --git a/bsp/buildroot/package/libstrophe/libstrophe.hash b/bsp/buildroot/package/libstrophe/libstrophe.hash new file mode 100644 index 00000000..d8403039 --- /dev/null +++ b/bsp/buildroot/package/libstrophe/libstrophe.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 08f4a85ef419a8bdf08b6afa8f7b2a0e5e180fdc9c16cede81af672ec10e21e7 libstrophe-0.8.8.tar.gz +sha256 00936397cbb75ef168992868ae559b141b505d3a06f08163012b240390efa553 b08766c8e46956daba010044b00c97f78b598780.patch diff --git a/bsp/buildroot/package/libtasn1/libtasn1.hash b/bsp/buildroot/package/libtasn1/libtasn1.hash index 41e10a6c..dc652103 100644 --- a/bsp/buildroot/package/libtasn1/libtasn1.hash +++ b/bsp/buildroot/package/libtasn1/libtasn1.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 3462fc25e2d2536878c39a8825f5e36ba2e2611b27ef535e064f4c56258e508b libtasn1-4.6.tar.gz +sha256 fa802fc94d79baa00e7397cedf29eb6827d4bd8b4dd77b577373577c93a8c513 libtasn1-4.8.tar.gz diff --git a/bsp/buildroot/package/libtasn1/libtasn1.mk b/bsp/buildroot/package/libtasn1/libtasn1.mk index 701e0e15..c51d8c00 100644 --- a/bsp/buildroot/package/libtasn1/libtasn1.mk +++ b/bsp/buildroot/package/libtasn1/libtasn1.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBTASN1_VERSION = 4.6 +LIBTASN1_VERSION = 4.8 LIBTASN1_SITE = http://ftp.gnu.org/gnu/libtasn1 LIBTASN1_DEPENDENCIES = host-bison LIBTASN1_LICENSE = GPLv3+, LGPLv2.1+ diff --git a/bsp/buildroot/package/libtomcrypt/Config.in b/bsp/buildroot/package/libtomcrypt/Config.in new file mode 100644 index 00000000..6678b303 --- /dev/null +++ b/bsp/buildroot/package/libtomcrypt/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_LIBTOMCRYPT + bool "libtomcrypt" + select BR2_PACKAGE_LIBTOMMATH + help + LibTomCrypt is a fairly comprehensive, modular and portable + cryptographic toolkit that provides developers with a vast array + of well known published block ciphers, one-way hash functions, + chaining modes, pseudo-random number generators, public key + cryptography and a plethora of other routines. + + http://www.libtom.net diff --git a/bsp/buildroot/package/libtomcrypt/libtomcrypt.hash b/bsp/buildroot/package/libtomcrypt/libtomcrypt.hash new file mode 100644 index 00000000..562016d5 --- /dev/null +++ b/bsp/buildroot/package/libtomcrypt/libtomcrypt.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 e33b47d77a495091c8703175a25c8228aff043140b2554c08a3c3cd71f79d116 crypt-1.17.tar.bz2 diff --git a/bsp/buildroot/package/libtomcrypt/libtomcrypt.mk b/bsp/buildroot/package/libtomcrypt/libtomcrypt.mk new file mode 100644 index 00000000..53dbfd50 --- /dev/null +++ b/bsp/buildroot/package/libtomcrypt/libtomcrypt.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# libtomcrypt +# +################################################################################ + +LIBTOMCRYPT_VERSION = 1.17 +LIBTOMCRYPT_SITE = https://github.com/libtom/libtomcrypt/releases/download/$(LIBTOMCRYPT_VERSION) +LIBTOMCRYPT_SOURCE = crypt-$(LIBTOMCRYPT_VERSION).tar.bz2 +LIBTOMCRYPT_LICENSE = WTFPL +LIBTOMCRYPT_LICENSE_FILES = LICENSE +LIBTOMCRYPT_INSTALL_STAGING = YES +LIBTOMCRYPT_INSTALL_TARGET = NO # only static library +LIBTOMCRYPT_DEPENDENCIES = libtommath + +LIBTOMCRYPT_CFLAGS = -I./src/headers $(TARGET_CFLAGS) -DLTC_SOURCE -DLTM_DESC \ + $(if $(BR2_USE_WCHAR),,-DLTC_NO_WCHAR) + +define LIBTOMCRYPT_BUILD_CMDS + $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="$(LIBTOMCRYPT_CFLAGS)" +endef + +define LIBTOMCRYPT_INSTALL_STAGING_CMDS + $(MAKE) -C $(@D) DESTDIR="$(STAGING_DIR)" NODOCS=1 INSTALL_USER=$(shell id -u) INSTALL_GROUP=$(shell id -g) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/libtommath/Config.in b/bsp/buildroot/package/libtommath/Config.in new file mode 100644 index 00000000..b2ffc722 --- /dev/null +++ b/bsp/buildroot/package/libtommath/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_LIBTOMMATH + bool "libtommath" + help + LibTomMath is a free open source portable number theoretic + multiple-precision integer library written entirely in C. + + http://www.libtom.net diff --git a/bsp/buildroot/package/libtommath/libtommath.hash b/bsp/buildroot/package/libtommath/libtommath.hash new file mode 100644 index 00000000..fcf2ddc9 --- /dev/null +++ b/bsp/buildroot/package/libtommath/libtommath.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 993a7df9ee091fca430cdde3263df57d88ef62af8103903214da49fc51bbb56c ltm-1.0.tar.xz diff --git a/bsp/buildroot/package/libtommath/libtommath.mk b/bsp/buildroot/package/libtommath/libtommath.mk new file mode 100644 index 00000000..eb3b00e8 --- /dev/null +++ b/bsp/buildroot/package/libtommath/libtommath.mk @@ -0,0 +1,23 @@ +################################################################################ +# +# libtommath +# +################################################################################ + +LIBTOMMATH_VERSION = 1.0 +LIBTOMMATH_SITE = https://github.com/libtom/libtommath/releases/download/v$(LIBTOMMATH_VERSION) +LIBTOMMATH_SOURCE = ltm-$(LIBTOMMATH_VERSION).tar.xz +LIBTOMMATH_LICENSE = WTFPL +LIBTOMMATH_LICENSE_FILES = LICENSE +LIBTOMMATH_INSTALL_STAGING = YES +LIBTOMMATH_INSTALL_TARGET = NO # only static library + +define LIBTOMMATH_BUILD_CMDS + $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="-I./ -fPIC $(TARGET_CFLAGS)" +endef + +define LIBTOMMATH_INSTALL_STAGING_CMDS + $(MAKE) -C $(@D) DESTDIR="$(STAGING_DIR)" install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/libtool/libtool.mk b/bsp/buildroot/package/libtool/libtool.mk index 8688f8b2..1d066bd1 100644 --- a/bsp/buildroot/package/libtool/libtool.mk +++ b/bsp/buildroot/package/libtool/libtool.mk @@ -10,6 +10,7 @@ LIBTOOL_SITE = $(BR2_GNU_MIRROR)/libtool LIBTOOL_INSTALL_STAGING = YES LIBTOOL_CONF_ENV = HELP2MAN=true LIBTOOL_DEPENDENCIES = host-m4 +HOST_LIBTOOL_DEPENDENCIES = host-m4 LIBTOOL_LICENSE = GPLv2+ LIBTOOL_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/libtpl/libtpl.hash b/bsp/buildroot/package/libtpl/libtpl.hash new file mode 100644 index 00000000..7df62f20 --- /dev/null +++ b/bsp/buildroot/package/libtpl/libtpl.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 0b3750bf62f56be4c42f83c89d8449b24f1c5f1605a104801d70f2f3c06fb2ff libtpl-v1.6.1.tar.gz diff --git a/bsp/buildroot/package/libuci/libuci.mk b/bsp/buildroot/package/libuci/libuci.mk index 8c060d59..66470457 100644 --- a/bsp/buildroot/package/libuci/libuci.mk +++ b/bsp/buildroot/package/libuci/libuci.mk @@ -6,7 +6,7 @@ LIBUCI_VERSION = e339407372ffc70b1451e4eda218c01aa95a6a7f LIBUCI_SITE = git://nbd.name/uci.git -LIBUCI_LICENSE = LGPLv2.1 +LIBUCI_LICENSE = LGPLv2.1, GPLv2 (tools) LIBUCI_INSTALL_STAGING = YES LIBUCI_DEPENDENCIES = libubox @@ -15,6 +15,7 @@ LIBUCI_DEPENDENCIES += lua LIBUCI_CONF_OPTS += -DBUILD_LUA=ON \ -DLUAPATH=/usr/lib/lua/5.1 \ -DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include +LIBUCI_LICENSE := $(LIBUCI_LICENSE), GPLv2 (lua bindings) else LIBUCI_CONF_OPTS += -DBUILD_LUA=OFF endif diff --git a/bsp/buildroot/package/libucl/libucl.hash b/bsp/buildroot/package/libucl/libucl.hash new file mode 100644 index 00000000..bd2ca13b --- /dev/null +++ b/bsp/buildroot/package/libucl/libucl.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2f69995c7f8320350f56c1183c395cc4a2a958331f22d60b7839a117c9c601e1 libucl-0.7.3.tar.gz diff --git a/bsp/buildroot/package/libuecc/libuecc.hash b/bsp/buildroot/package/libuecc/libuecc.hash new file mode 100644 index 00000000..67eb5eb5 --- /dev/null +++ b/bsp/buildroot/package/libuecc/libuecc.hash @@ -0,0 +1,4 @@ +# from https://projects.universe-factory.net/projects/fastd/files +md5 5cd543cb8e7bce83a22c07a0579c95a1 libuecc-7.tar.xz +# computed locally +sha256 b94aef08eab5359d0facaa7ead2ce81b193eef0c61379d9835213ebc0a46257a libuecc-7.tar.xz diff --git a/bsp/buildroot/package/libuecc/libuecc.mk b/bsp/buildroot/package/libuecc/libuecc.mk index bddb7d51..87ca2e42 100644 --- a/bsp/buildroot/package/libuecc/libuecc.mk +++ b/bsp/buildroot/package/libuecc/libuecc.mk @@ -4,8 +4,9 @@ # ################################################################################ -LIBUECC_VERSION = v6 -LIBUECC_SITE = git://git.universe-factory.net/libuecc +LIBUECC_VERSION = 7 +LIBUECC_SITE = https://projects.universe-factory.net/attachments/download/85 +LIBUECC_SOURCE = libuecc-$(LIBUECC_VERSION).tar.xz LIBUECC_LICENSE = BSD-2c LIBUECC_LICENSE_FILES = COPYRIGHT LIBUECC_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libuio/0001-configure-remove-po-Makefile.in.patch b/bsp/buildroot/package/libuio/0001-configure-remove-po-Makefile.in.patch new file mode 100644 index 00000000..067465cc --- /dev/null +++ b/bsp/buildroot/package/libuio/0001-configure-remove-po-Makefile.in.patch @@ -0,0 +1,26 @@ +From c5fa0b778e1c2a7d03ff6e661bdfa2faef878f68 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Fri, 1 Jul 2016 17:56:30 +0200 +Subject: [PATCH] configure: remove po/Makefile.in + +The file po/Makefile.in is automatically added to AC_OUTPUT while using gettexize + +Signed-off-by: Romain Naour +--- + configure.ac | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f7fb40f..a25e463 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,5 +55,4 @@ dnl last but not least + AC_OUTPUT([Makefile + libuio.dox + libuio-uninstalled.pc +- libuio.pc +- po/Makefile.in]) ++ libuio.pc]) +-- +2.5.5 + diff --git a/bsp/buildroot/package/libuio/0002-fix-build-with-musl.patch b/bsp/buildroot/package/libuio/0002-fix-build-with-musl.patch new file mode 100644 index 00000000..6e5b168c --- /dev/null +++ b/bsp/buildroot/package/libuio/0002-fix-build-with-musl.patch @@ -0,0 +1,57 @@ +From c378ee112857128002754c616acb6841ee32aaf6 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 2 Jul 2016 10:52:28 +0200 +Subject: [PATCH] fix build with musl + +limits.h header is missing in attr.c, base.c and helper.c to provide +PATH_MAX. + +Fixes: +http://autobuild.buildroot.net/results/702/7023104e6018ea46c54073ddbe5119d0f66ae5a3 + +Signed-off-by: Romain Naour +--- + attr.c | 1 + + base.c | 1 + + helper.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/attr.c b/attr.c +index 4245140..7512f4e 100644 +--- a/attr.c ++++ b/attr.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/base.c b/base.c +index 14ebcee..4ce7301 100644 +--- a/base.c ++++ b/base.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/helper.c b/helper.c +index 170f084..1fb0b4c 100644 +--- a/helper.c ++++ b/helper.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.5.5 + diff --git a/bsp/buildroot/package/libuio/Config.in b/bsp/buildroot/package/libuio/Config.in new file mode 100644 index 00000000..a96df54b --- /dev/null +++ b/bsp/buildroot/package/libuio/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_LIBUIO + bool "libuio" + select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE + help + libuio is a light-weight C programming library to handle UIO + (Userspace I/O) device discovery and binding task. + + http://github.com/Linutronix/libuio diff --git a/bsp/buildroot/package/libuio/libuio.hash b/bsp/buildroot/package/libuio/libuio.hash new file mode 100644 index 00000000..6afe7dea --- /dev/null +++ b/bsp/buildroot/package/libuio/libuio.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 57f9617f75d20f7912b270568cffdf098fe9d0c1ca690c002e949be8424aa4e6 libuio-940861de278cb794bf9d775b76a4d1d4f9108607.tar.gz diff --git a/bsp/buildroot/package/libuio/libuio.mk b/bsp/buildroot/package/libuio/libuio.mk new file mode 100644 index 00000000..6d07f1fa --- /dev/null +++ b/bsp/buildroot/package/libuio/libuio.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# libuio +# +################################################################################ + +# v0.2.7 +LIBUIO_VERSION = 940861de278cb794bf9d775b76a4d1d4f9108607 +LIBUIO_SITE = $(call github,Linutronix,libuio,$(LIBUIO_VERSION)) +LIBUIO_LICENSE = LGPLv2.1 (library), GPLv2 (programs) +LIBUIO_LICENSE_FILES = COPYING +LIBUIO_CONF_OPTS = --with-glib=no --without-werror +LIBUIO_INSTALL_STAGING = YES + +# Fetched from github, no pre-generated configure script provided +LIBUIO_GETTEXTIZE = YES +LIBUIO_AUTORECONF = YES + +# Avoid build issue when makeinfo is missing +LIBUIO_CONF_ENV += MAKEINFO=true + +ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) +LIBUIO_DEPENDENCIES += argp-standalone +LIBUIO_LIBS += -largp +endif + +# libuio pulls in libintl if needed, so ensure we also +# link against it, otherwise static linking fails +ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y) +LIBUIO_DEPENDENCIES += gettext +LIBUIO_LIBS += -lintl +endif + +LIBUIO_CONF_ENV += LIBS="$(LIBUIO_LIBS)" + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libump/Config.in b/bsp/buildroot/package/libump/Config.in index 10232b3f..696ccf3b 100644 --- a/bsp/buildroot/package/libump/Config.in +++ b/bsp/buildroot/package/libump/Config.in @@ -8,6 +8,6 @@ config BR2_PACKAGE_LIBUMP http://github.com/linux-sunxi/libump -comment "libump needs a (e)glibc toolchain" +comment "libump needs a glibc toolchain" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/libump/libump.hash b/bsp/buildroot/package/libump/libump.hash new file mode 100644 index 00000000..5d2ad2eb --- /dev/null +++ b/bsp/buildroot/package/libump/libump.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 745bbb3e6a6b2b1d8caec75d2f2e884691ceefa5c2be0480baed31dba66cf450 libump-ec0680628744f30b8fac35e41a7bd8e23e59c39f.tar.gz diff --git a/bsp/buildroot/package/libunwind/Config.in b/bsp/buildroot/package/libunwind/Config.in index 593172fc..04ab5a5c 100644 --- a/bsp/buildroot/package/libunwind/Config.in +++ b/bsp/buildroot/package/libunwind/Config.in @@ -10,13 +10,16 @@ config BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS bool default y if BR2_TOOLCHAIN_USES_GLIBC && \ - (BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_mips64 || \ + (((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) || \ + BR2_mips || BR2_mipsel || BR2_mips64 || \ BR2_mips64el || BR2_powerpc || BR2_sh || BR2_sh64 || BR2_i386 || BR2_x86_64) default y if BR2_TOOLCHAIN_USES_UCLIBC && \ - (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel || \ + (((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) || \ + BR2_i386 || BR2_mips || BR2_mipsel || \ BR2_mips64 || BR2_mips64el || BR2_x86_64) default y if BR2_TOOLCHAIN_USES_MUSL && \ - (BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64) + (((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) || \ + BR2_i386 || BR2_x86_64) config BR2_PACKAGE_LIBUNWIND bool "libunwind" diff --git a/bsp/buildroot/package/libupnp/libupnp.hash b/bsp/buildroot/package/libupnp/libupnp.hash index 59f7d7b5..64a8bdbb 100644 --- a/bsp/buildroot/package/libupnp/libupnp.hash +++ b/bsp/buildroot/package/libupnp/libupnp.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 b3142b39601243b50532eec90f4a27dba85eb86f58d4b849ac94edeb29d9b22a libupnp-1.6.19.tar.bz2 +sha256 ee3537081e3ea56f66ada10387486823989210bc98002f098305551c966e3a63 libupnp-1.6.20.tar.bz2 diff --git a/bsp/buildroot/package/libupnp/libupnp.mk b/bsp/buildroot/package/libupnp/libupnp.mk index 48233b61..e12f4105 100644 --- a/bsp/buildroot/package/libupnp/libupnp.mk +++ b/bsp/buildroot/package/libupnp/libupnp.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBUPNP_VERSION = 1.6.19 +LIBUPNP_VERSION = 1.6.20 LIBUPNP_SOURCE = libupnp-$(LIBUPNP_VERSION).tar.bz2 LIBUPNP_SITE = http://downloads.sourceforge.net/project/pupnp/pupnp/libUPnP%20$(LIBUPNP_VERSION) LIBUPNP_CONF_ENV = ac_cv_lib_compat_ftime=no diff --git a/bsp/buildroot/package/libupnpp/Config.in b/bsp/buildroot/package/libupnpp/Config.in index 17a33918..2d995867 100644 --- a/bsp/buildroot/package/libupnpp/Config.in +++ b/bsp/buildroot/package/libupnpp/Config.in @@ -6,8 +6,6 @@ config BR2_PACKAGE_LIBUPNPP depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # libupnp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help The libupnpp C++ library wraps libupnp for easier use by upmpdcli and upplay. @@ -15,5 +13,4 @@ config BR2_PACKAGE_LIBUPNPP http://www.lesbonscomptes.com/upmpdcli/ comment "libupnpp needs a toolchain w/ C++, threads, gcc >= 4.6" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 diff --git a/bsp/buildroot/package/libupnpp/libupnpp.hash b/bsp/buildroot/package/libupnpp/libupnpp.hash index a301fb3c..685ccf4b 100644 --- a/bsp/buildroot/package/libupnpp/libupnpp.hash +++ b/bsp/buildroot/package/libupnpp/libupnpp.hash @@ -1,2 +1,2 @@ -# Hashes from: http://www.lesbonscomptes.com/upmpdcli/downloads/libupnpp-0.13.1.tar.gz.sha256 -sha256 d4604e3e4875e99d0446a436f857a849d1e3dda59096861dcd6a0e6c16474cb7 libupnpp-0.13.1.tar.gz +# Hashes from: http://www.lesbonscomptes.com/upmpdcli/downloads/libupnpp-0.14.1.tar.gz.sha256 +sha256 ffb33379f3734419de683b0adca5228e802c64d3960681c15f3a8de7d7e315d1 libupnpp-0.14.1.tar.gz diff --git a/bsp/buildroot/package/libupnpp/libupnpp.mk b/bsp/buildroot/package/libupnpp/libupnpp.mk index 71ba3116..1525f816 100644 --- a/bsp/buildroot/package/libupnpp/libupnpp.mk +++ b/bsp/buildroot/package/libupnpp/libupnpp.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBUPNPP_VERSION = 0.13.1 +LIBUPNPP_VERSION = 0.14.1 LIBUPNPP_SITE = http://www.lesbonscomptes.com/upmpdcli/downloads LIBUPNPP_LICENSE = GPLv2+ LIBUPNPP_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/libusb-compat/libusb-compat.mk b/bsp/buildroot/package/libusb-compat/libusb-compat.mk index a98eb092..26107be8 100644 --- a/bsp/buildroot/package/libusb-compat/libusb-compat.mk +++ b/bsp/buildroot/package/libusb-compat/libusb-compat.mk @@ -9,6 +9,7 @@ LIBUSB_COMPAT_VERSION = $(LIBUSB_COMPAT_VERSION_MAJOR).5 LIBUSB_COMPAT_SOURCE = libusb-compat-$(LIBUSB_COMPAT_VERSION).tar.bz2 LIBUSB_COMPAT_SITE = http://downloads.sourceforge.net/project/libusb/libusb-compat-$(LIBUSB_COMPAT_VERSION_MAJOR)/libusb-compat-$(LIBUSB_COMPAT_VERSION) LIBUSB_COMPAT_DEPENDENCIES = host-pkgconf libusb +HOST_LIBUSB_COMPAT_DEPENDENCIES = host-pkgconf host-libusb LIBUSB_COMPAT_INSTALL_STAGING = YES LIBUSB_COMPAT_CONFIG_SCRIPTS = libusb-config LIBUSB_COMPAT_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/libusbgx/Config.in b/bsp/buildroot/package/libusbgx/Config.in new file mode 100644 index 00000000..fcebf3cf --- /dev/null +++ b/bsp/buildroot/package/libusbgx/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBUSBGX + bool "libusbgx" + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_LIBCONFIG + help + libusbgx is a C library encapsulating the kernel USB + gadget-configfs userspace API functionality. + + https://github.com/libusbgx/libusbgx + +comment "libusbgx needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/libusbgx/libusbgx.hash b/bsp/buildroot/package/libusbgx/libusbgx.hash new file mode 100644 index 00000000..c185c580 --- /dev/null +++ b/bsp/buildroot/package/libusbgx/libusbgx.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 1e258205dcde99d0eeb52404ee7ff1bc9a39eb3878e8455fb72bad7cf90c7357 libusbgx-2e3d43ee098ed928d1baa61ce791ce9ff4788c5a.tar.gz diff --git a/bsp/buildroot/package/libusbgx/libusbgx.mk b/bsp/buildroot/package/libusbgx/libusbgx.mk new file mode 100644 index 00000000..1340d2d1 --- /dev/null +++ b/bsp/buildroot/package/libusbgx/libusbgx.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# libusbgx +# +################################################################################ + +LIBUSBGX_VERSION = 2e3d43ee098ed928d1baa61ce791ce9ff4788c5a +LIBUSBGX_SITE = $(call github,libusbgx,libusbgx,$(LIBUSBGX_VERSION)) +LIBUSBGX_LICENSE = GPLv2+ (examples), LGPLv2.1+ (library) +LIBUSBGX_LICENSE_FILES = COPYING COPYING.LGPL +LIBUSBGX_DEPENDENCIES = host-pkgconf libconfig +LIBUSBGX_AUTORECONF = YES +LIBUSBGX_INSTALL_STAGING = YES + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libuv/0001-unix-fix-support-for-uClibc-ng.patch b/bsp/buildroot/package/libuv/0001-unix-fix-support-for-uClibc-ng.patch deleted file mode 100644 index 6aec436d..00000000 --- a/bsp/buildroot/package/libuv/0001-unix-fix-support-for-uClibc-ng.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 21dcb3a98feb3ae6ba862cfbf25fba3361bc8a9b Mon Sep 17 00:00:00 2001 -From: Martin Bark -Date: Mon, 14 Dec 2015 21:46:17 +0000 -Subject: [PATCH] unix: fix support for uClibc-ng - -uClibc-ng is currently at v1.0.9. The patch corrects the uClibc -version test so that HAVE_IFADDRS_H is defined for uClibc versions -after v0.9.32. - -Signed-off-by: Martin Bark ---- - src/unix/linux-core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/unix/linux-core.c b/src/unix/linux-core.c -index 3ff6fb1..4735bc4 100644 ---- a/src/unix/linux-core.c -+++ b/src/unix/linux-core.c -@@ -39,7 +39,7 @@ - #define HAVE_IFADDRS_H 1 - - #ifdef __UCLIBC__ --# if __UCLIBC_MAJOR__ < 0 || __UCLIBC_MINOR__ < 9 || __UCLIBC_SUBLEVEL__ < 32 -+# if __UCLIBC_MAJOR__ < 0 && __UCLIBC_MINOR__ < 9 && __UCLIBC_SUBLEVEL__ < 32 - # undef HAVE_IFADDRS_H - # endif - #endif --- -2.5.0 - diff --git a/bsp/buildroot/package/libuv/libuv.hash b/bsp/buildroot/package/libuv/libuv.hash index abbbb0c6..75c7ffec 100644 --- a/bsp/buildroot/package/libuv/libuv.hash +++ b/bsp/buildroot/package/libuv/libuv.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 906e1a5c673c95cb261adeacdb7308a65b4a8f7c9c50d85f3021364951fa9cde libuv-v1.8.0.tar.gz +sha256 a6ca9f0648973d1463f46b495ce546ddcbe7cce2f04b32e802a15539e46c57ad libuv-v1.9.1.tar.gz diff --git a/bsp/buildroot/package/libuv/libuv.mk b/bsp/buildroot/package/libuv/libuv.mk index bf1deadd..11d51dda 100644 --- a/bsp/buildroot/package/libuv/libuv.mk +++ b/bsp/buildroot/package/libuv/libuv.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBUV_VERSION = v1.8.0 +LIBUV_VERSION = v1.9.1 LIBUV_SITE = $(call github,libuv,libuv,$(LIBUV_VERSION)) LIBUV_DEPENDENCIES = host-pkgconf LIBUV_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/libv4l/0002-dvb-keytable-fix-missing-libintl-linking.patch b/bsp/buildroot/package/libv4l/0002-dvb-keytable-fix-missing-libintl-linking.patch deleted file mode 100644 index 1b89961d..00000000 --- a/bsp/buildroot/package/libv4l/0002-dvb-keytable-fix-missing-libintl-linking.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 9eec274c2a92beb2bb1a3a1eeffef1988c7dd016 Mon Sep 17 00:00:00 2001 -From: Peter Seiderer -Date: Fri, 16 Oct 2015 20:32:45 +0200 -Subject: [PATCH] dvb/keytable: fix missing libintl linking - -Patch upstream at -http://git.linuxtv.org/v4l-utils.git/commit/?id=ceaec539b62d83ffb5fdb5231e574a6adef0bf83. - -Signed-off-by: Peter Seiderer ---- - utils/dvb/Makefile.am | 8 ++++---- - utils/keytable/Makefile.am | 1 + - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/utils/dvb/Makefile.am b/utils/dvb/Makefile.am -index 6aae408..a96a1a2 100644 ---- a/utils/dvb/Makefile.am -+++ b/utils/dvb/Makefile.am -@@ -2,19 +2,19 @@ bin_PROGRAMS = dvb-fe-tool dvbv5-zap dvbv5-scan dvb-format-convert - man_MANS = dvb-fe-tool.1 dvbv5-zap.1 dvbv5-scan.1 dvb-format-convert.1 - - dvb_fe_tool_SOURCES = dvb-fe-tool.c --dvb_fe_tool_LDADD = ../../lib/libdvbv5/libdvbv5.la -+dvb_fe_tool_LDADD = ../../lib/libdvbv5/libdvbv5.la @LIBINTL@ - dvb_fe_tool_LDFLAGS = $(ARGP_LIBS) -lm - - dvbv5_zap_SOURCES = dvbv5-zap.c --dvbv5_zap_LDADD = ../../lib/libdvbv5/libdvbv5.la -+dvbv5_zap_LDADD = ../../lib/libdvbv5/libdvbv5.la @LIBINTL@ - dvbv5_zap_LDFLAGS = $(ARGP_LIBS) -lm - - dvbv5_scan_SOURCES = dvbv5-scan.c --dvbv5_scan_LDADD = ../../lib/libdvbv5/libdvbv5.la -+dvbv5_scan_LDADD = ../../lib/libdvbv5/libdvbv5.la @LIBINTL@ - dvbv5_scan_LDFLAGS = $(ARGP_LIBS) -lm - - dvb_format_convert_SOURCES = dvb-format-convert.c --dvb_format_convert_LDADD = ../../lib/libdvbv5/libdvbv5.la -+dvb_format_convert_LDADD = ../../lib/libdvbv5/libdvbv5.la @LIBINTL@ - dvb_format_convert_LDFLAGS = $(ARGP_LIBS) -lm - - EXTRA_DIST = README -diff --git a/utils/keytable/Makefile.am b/utils/keytable/Makefile.am -index 925c8ea..8444ac2 100644 ---- a/utils/keytable/Makefile.am -+++ b/utils/keytable/Makefile.am -@@ -5,6 +5,7 @@ keytablesystem_DATA = $(srcdir)/rc_keymaps/* - udevrules_DATA = 70-infrared.rules - - ir_keytable_SOURCES = keytable.c parse.h -+ir_keytable_LDADD = @LIBINTL@ - ir_keytable_LDFLAGS = $(ARGP_LIBS) - - EXTRA_DIST = 70-infrared.rules rc_keymaps rc_keymaps_userspace gen_keytables.pl ir-keytable.1 rc_maps.cfg --- -2.1.4 - diff --git a/bsp/buildroot/package/libv4l/0003-libv4lsyscall-priv.h-Use-off_t-instead-of-__off_t.patch b/bsp/buildroot/package/libv4l/0003-libv4lsyscall-priv.h-Use-off_t-instead-of-__off_t.patch deleted file mode 100644 index 7868d71e..00000000 --- a/bsp/buildroot/package/libv4l/0003-libv4lsyscall-priv.h-Use-off_t-instead-of-__off_t.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 87369a8d190a182ee087cec5164e4c9586b0d80e Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Wed, 28 Oct 2015 09:27:47 +0100 -Subject: [PATCH] libv4lsyscall-priv.h: Use off_t instead of __off_t - -__off_t is a kernel internal symbol, which happens to be user-visible -with glibc, but not necessarily with other C libraries such as -musl. In v4l-utils code, it's mainly used for the mmap() prototype, -but the mmap() manpage really uses off_t, not __off_t. - -Switching from __off_t to off_t allows the code to build properly with -musl. - -Patch upstream at -http://git.linuxtv.org/v4l-utils.git/commit/?id=a6ff0635f7ed3400eec25039b96002b60a44209b. - -Signed-off-by: Thomas Petazzoni ---- - lib/libv4l1/v4l1compat.c | 3 +-- - lib/libv4l2/v4l2convert.c | 5 ++--- - lib/libv4lconvert/libv4lsyscall-priv.h | 11 +++-------- - 3 files changed, 6 insertions(+), 13 deletions(-) - -diff --git a/lib/libv4l1/v4l1compat.c b/lib/libv4l1/v4l1compat.c -index 97e8c4e..e5c9e56 100644 ---- a/lib/libv4l1/v4l1compat.c -+++ b/lib/libv4l1/v4l1compat.c -@@ -29,7 +29,6 @@ - #include - #include - #include --#include "../libv4lconvert/libv4lsyscall-priv.h" /* for __off_t */ - - #include - #include -@@ -119,7 +118,7 @@ LIBV4L_PUBLIC ssize_t read(int fd, void *buffer, size_t n) - } - - LIBV4L_PUBLIC void *mmap(void *start, size_t length, int prot, int flags, int fd, -- __off_t offset) -+ off_t offset) - { - return v4l1_mmap(start, length, prot, flags, fd, offset); - } -diff --git a/lib/libv4l2/v4l2convert.c b/lib/libv4l2/v4l2convert.c -index a6dc30e..7b7e253 100644 ---- a/lib/libv4l2/v4l2convert.c -+++ b/lib/libv4l2/v4l2convert.c -@@ -39,7 +39,6 @@ - #include - #include - #include --#include "../libv4lconvert/libv4lsyscall-priv.h" - #include - #include - -@@ -151,14 +150,14 @@ LIBV4L_PUBLIC ssize_t read(int fd, void *buffer, size_t n) - } - - LIBV4L_PUBLIC void *mmap(void *start, size_t length, int prot, int flags, int fd, -- __off_t offset) -+ off_t offset) - { - return v4l2_mmap(start, length, prot, flags, fd, offset); - } - - #if defined(linux) && defined(__GLIBC__) - LIBV4L_PUBLIC void *mmap64(void *start, size_t length, int prot, int flags, int fd, -- __off64_t offset) -+ off64_t offset) - { - return v4l2_mmap(start, length, prot, flags, fd, offset); - } -diff --git a/lib/libv4lconvert/libv4lsyscall-priv.h b/lib/libv4lconvert/libv4lsyscall-priv.h -index f548fb2..f87eff4 100644 ---- a/lib/libv4lconvert/libv4lsyscall-priv.h -+++ b/lib/libv4lconvert/libv4lsyscall-priv.h -@@ -59,11 +59,6 @@ - #define _IOC_SIZE(cmd) IOCPARM_LEN(cmd) - #define MAP_ANONYMOUS MAP_ANON - #define MMAP2_PAGE_SHIFT 0 --typedef off_t __off_t; --#endif -- --#if defined(ANDROID) --typedef off_t __off_t; - #endif - - #undef SYS_OPEN -@@ -95,15 +90,15 @@ typedef off_t __off_t; - #if defined(__FreeBSD__) - #define SYS_MMAP(addr, len, prot, flags, fd, off) \ - __syscall(SYS_mmap, (void *)(addr), (size_t)(len), \ -- (int)(prot), (int)(flags), (int)(fd), (__off_t)(off)) -+ (int)(prot), (int)(flags), (int)(fd), (off_t)(off)) - #elif defined(__FreeBSD_kernel__) - #define SYS_MMAP(addr, len, prot, flags, fd, off) \ - syscall(SYS_mmap, (void *)(addr), (size_t)(len), \ -- (int)(prot), (int)(flags), (int)(fd), (__off_t)(off)) -+ (int)(prot), (int)(flags), (int)(fd), (off_t)(off)) - #else - #define SYS_MMAP(addr, len, prot, flags, fd, off) \ - syscall(SYS_mmap2, (void *)(addr), (size_t)(len), \ -- (int)(prot), (int)(flags), (int)(fd), (__off_t)((off) >> MMAP2_PAGE_SHIFT)) -+ (int)(prot), (int)(flags), (int)(fd), (off_t)((off) >> MMAP2_PAGE_SHIFT)) - #endif - - #define SYS_MUNMAP(addr, len) \ --- -2.6.2 - diff --git a/bsp/buildroot/package/libv4l/0004-utils-Properly-use-ENABLE_NLS-for-locale-related-cod.patch b/bsp/buildroot/package/libv4l/0004-utils-Properly-use-ENABLE_NLS-for-locale-related-cod.patch deleted file mode 100644 index 2be74cc1..00000000 --- a/bsp/buildroot/package/libv4l/0004-utils-Properly-use-ENABLE_NLS-for-locale-related-cod.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 12e5dded4747bf3a3f1eb392a17d10e46ecbc90b Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Wed, 28 Oct 2015 09:29:08 +0100 -Subject: [PATCH] utils: Properly use ENABLE_NLS for locale related code - -Various tools in utils/ use ENABLE_NLS to decide whether locale -support is available or not, and only include if ENABLE_NLS -is defined. However, they unconditionally use functions defined in - such as setlocale(), bindtextdomain() or textdomain(), -which causes build failures when the prototypes of such functions are -not available due to not being included. - -In order to fix this, we add ENABLE_NLS conditionals around the calls -to these functions. - -Patch upstream at: -http://git.linuxtv.org/v4l-utils.git/commit/?id=defad307a09c11ba989e6338bb0293c0e1acba87. - -Signed-off-by: Thomas Petazzoni ---- - utils/dvb/dvb-fe-tool.c | 2 ++ - utils/dvb/dvb-format-convert.c | 2 ++ - utils/dvb/dvbv5-scan.c | 2 ++ - utils/dvb/dvbv5-zap.c | 2 ++ - utils/keytable/keytable.c | 2 ++ - 5 files changed, 10 insertions(+) - -diff --git a/utils/dvb/dvb-fe-tool.c b/utils/dvb/dvb-fe-tool.c -index efc2ebf..ba01aa9 100644 ---- a/utils/dvb/dvb-fe-tool.c -+++ b/utils/dvb/dvb-fe-tool.c -@@ -276,9 +276,11 @@ int main(int argc, char *argv[]) - struct dvb_v5_fe_parms *parms; - int fe_flags = O_RDWR; - -+#ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); -+#endif - - argp_parse(&argp, argc, argv, ARGP_NO_HELP | ARGP_NO_EXIT, 0, 0); - -diff --git a/utils/dvb/dvb-format-convert.c b/utils/dvb/dvb-format-convert.c -index e39df03..09451d4 100644 ---- a/utils/dvb/dvb-format-convert.c -+++ b/utils/dvb/dvb-format-convert.c -@@ -132,9 +132,11 @@ int main(int argc, char **argv) - .args_doc = N_(" "), - }; - -+#ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); -+#endif - - memset(&args, 0, sizeof(args)); - argp_parse(&argp, argc, argv, ARGP_NO_HELP | ARGP_NO_EXIT, &idx, &args); -diff --git a/utils/dvb/dvbv5-scan.c b/utils/dvb/dvbv5-scan.c -index be1586d..1bb0ced 100644 ---- a/utils/dvb/dvbv5-scan.c -+++ b/utils/dvb/dvbv5-scan.c -@@ -461,9 +461,11 @@ int main(int argc, char **argv) - .args_doc = N_(""), - }; - -+#ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); -+#endif - - memset(&args, 0, sizeof(args)); - args.sat_number = -1; -diff --git a/utils/dvb/dvbv5-zap.c b/utils/dvb/dvbv5-zap.c -index 2812166..848259b 100644 ---- a/utils/dvb/dvbv5-zap.c -+++ b/utils/dvb/dvbv5-zap.c -@@ -758,9 +758,11 @@ int main(int argc, char **argv) - .args_doc = N_(" [or if in monitor mode]"), - }; - -+#ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); -+#endif - - memset(&args, 0, sizeof(args)); - args.sat_number = -1; -diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c -index 3bf0618..d6d187f 100644 ---- a/utils/keytable/keytable.c -+++ b/utils/keytable/keytable.c -@@ -1467,9 +1467,11 @@ int main(int argc, char *argv[]) - static struct sysfs_names *names; - struct rc_device rc_dev; - -+#ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); -+#endif - - argp_parse(&argp, argc, argv, ARGP_NO_HELP | ARGP_NO_EXIT, 0, 0); - --- -2.6.2 - diff --git a/bsp/buildroot/package/libv4l/0005-libv4lconvert-only-expose-jpeg_mem_-protoypes-when-J.patch b/bsp/buildroot/package/libv4l/0005-libv4lconvert-only-expose-jpeg_mem_-protoypes-when-J.patch deleted file mode 100644 index 1868fd30..00000000 --- a/bsp/buildroot/package/libv4l/0005-libv4lconvert-only-expose-jpeg_mem_-protoypes-when-J.patch +++ /dev/null @@ -1,56 +0,0 @@ -From d468d1bba973999f2f1103ebaf7df5c8440a5499 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Thu, 21 Jan 2016 10:22:16 +0100 -Subject: [PATCH] libv4lconvert: only expose jpeg_mem_*() protoypes when - JPEG_LIB_VERSION < 80 - -The jpeg_memsrcdest.c file implements jpeg_mem_src() and -jpeg_mem_dest() when JPEG_LIB_VERSION < 80 in order to provide those -functions to libv4lconvert when the libjpeg library being used is too -old. - -However, the jpeg_memsrcdest.h file exposes the prototypes of those -functions unconditionally. Until now, the prototype was matching the -one of the functions exposed by libjpeg (when JPEG_LIB_VERSION >= 80), -so there was no problem. - -But since the release of libjpeg 9b (in January 2016), they changed -the second argument of jpeg_mem_src() from "unsigned char *" to "const -unsigned char*". Therefore, there are two prototypes for the -jpeg_mem_src() function: one from libjpeg, one from libv4l, and they -conflict with each other. - -To resolve this situation, this patch modifies jpeg_memsrcdest.h to -only expose the prototypes when libv4l is implementing the functions -(i.e when JPEG_LIB_VERSION < 80). When JPEG_LIB_VERSION >= 80, the -prototypes will come from . - -Patch upstream at: -http://git.linuxtv.org/v4l-utils.git/commit/?id=0b33f4c87cb26644ea662455acbc1649858b151f. - -Signed-off-by: Thomas Petazzoni ---- - lib/libv4lconvert/jpeg_memsrcdest.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/libv4lconvert/jpeg_memsrcdest.h b/lib/libv4lconvert/jpeg_memsrcdest.h -index e971182..28a6477 100644 ---- a/lib/libv4lconvert/jpeg_memsrcdest.h -+++ b/lib/libv4lconvert/jpeg_memsrcdest.h -@@ -1,5 +1,7 @@ - #include - -+#if JPEG_LIB_VERSION < 80 -+ - void - jpeg_mem_src (j_decompress_ptr cinfo, unsigned char * buffer, - unsigned long bufsize); -@@ -7,3 +9,5 @@ jpeg_mem_src (j_decompress_ptr cinfo, unsigned char * buffer, - void - jpeg_mem_dest (j_compress_ptr cinfo, unsigned char ** outbuffer, - unsigned long * outsize); -+ -+#endif --- -2.6.4 - diff --git a/bsp/buildroot/package/libv4l/libv4l.hash b/bsp/buildroot/package/libv4l/libv4l.hash index d79ccbc9..2bf17eef 100644 --- a/bsp/buildroot/package/libv4l/libv4l.hash +++ b/bsp/buildroot/package/libv4l/libv4l.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 2f6219b03f19ea07c100e860238d5cdbfcbcfe440a14477e75137cc073431b33 v4l-utils-1.8.1.tar.bz2 +sha256 6147ccc29fe7dd3c5c3994d613c4f2a099bac8b44694a96e5cf4d7caca8336c0 v4l-utils-1.10.1.tar.bz2 diff --git a/bsp/buildroot/package/libv4l/libv4l.mk b/bsp/buildroot/package/libv4l/libv4l.mk index ceb16667..d5574142 100644 --- a/bsp/buildroot/package/libv4l/libv4l.mk +++ b/bsp/buildroot/package/libv4l/libv4l.mk @@ -4,17 +4,13 @@ # ################################################################################ -LIBV4L_VERSION = 1.8.1 +LIBV4L_VERSION = 1.10.1 LIBV4L_SOURCE = v4l-utils-$(LIBV4L_VERSION).tar.bz2 LIBV4L_SITE = http://linuxtv.org/downloads/v4l-utils LIBV4L_INSTALL_STAGING = YES LIBV4L_DEPENDENCIES = host-pkgconf LIBV4L_CONF_OPTS = --disable-doxygen-doc -# patch touches Makefile.am (and needs host-gettext for autoreconf) -LIBV4L_AUTORECONF= YES -LIBV4L_DEPENDENCIES += host-gettext - # fix uclibc-ng configure/compile LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' @@ -22,6 +18,10 @@ LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' LIBV4L_LICENSE = GPLv2+ (utilities), LGPLv2.1+ (libraries) LIBV4L_LICENSE_FILES = COPYING COPYING.libv4l lib/libv4l1/libv4l1-kernelcode-license.txt +ifeq ($(BR2_PACKAGE_ALSA_LIB),y) +LIBV4L_DEPENDENCIES += alsa-lib +endif + ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) LIBV4L_DEPENDENCIES += argp-standalone LIBV4L_LIBS += -largp @@ -36,6 +36,10 @@ else LIBV4L_CONF_OPTS += --without-jpeg endif +ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) +LIBV4L_DEPENDENCIES += libgl +endif + ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBV4L_CONF_OPTS += --with-libudev LIBV4L_DEPENDENCIES += udev @@ -43,6 +47,10 @@ else LIBV4L_CONF_OPTS += --without-libudev endif +ifeq ($(BR2_PACKAGE_LIBGLU),y) +LIBV4L_DEPENDENCIES += libglu +endif + ifeq ($(BR2_PACKAGE_LIBV4L_UTILS),y) LIBV4L_CONF_OPTS += --enable-v4l-utils # clock_gettime is used, which is provided by librt for glibc < 2.17 @@ -58,7 +66,7 @@ LIBV4L_CONF_ENV += \ ac_cv_prog_MOC=$(HOST_DIR)/usr/bin/moc \ ac_cv_prog_RCC=$(HOST_DIR)/usr/bin/rcc \ ac_cv_prog_UIC=$(HOST_DIR)/usr/bin/uic -else ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y) +else ifeq ($(BR2_PACKAGE_QT_OPENGL_GL_DESKTOP),y) LIBV4L_CONF_OPTS += --enable-qv4l2 LIBV4L_DEPENDENCIES += qt else diff --git a/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.hash b/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.hash index 1b2d7546..a480c2cc 100644 --- a/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.hash +++ b/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/libva/2015-December/003820.html -sha1 7ecc2a10d22129407fa5ce011da7066037e13255 libva-intel-driver-1.6.2.tar.bz2 +# From https://lists.freedesktop.org/archives/libva/2016-June/004035.html +sha1 eb3660197ce4781af4db4d97b0d7965900e7b06e libva-intel-driver-1.7.1.tar.bz2 diff --git a/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.mk b/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.mk index 909d73bc..dadd67be 100644 --- a/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.mk +++ b/bsp/buildroot/package/libva-intel-driver/libva-intel-driver.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBVA_INTEL_DRIVER_VERSION = 1.6.2 +LIBVA_INTEL_DRIVER_VERSION = 1.7.1 LIBVA_INTEL_DRIVER_SOURCE = libva-intel-driver-$(LIBVA_INTEL_DRIVER_VERSION).tar.bz2 LIBVA_INTEL_DRIVER_SITE = http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver LIBVA_INTEL_DRIVER_LICENSE = MIT diff --git a/bsp/buildroot/package/libva/libva.hash b/bsp/buildroot/package/libva/libva.hash index 4d7cdaae..8e8d348a 100644 --- a/bsp/buildroot/package/libva/libva.hash +++ b/bsp/buildroot/package/libva/libva.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/libva/2015-December/003819.html -sha1 8a857db50305e9e3ddb8fe4e342ddd2924ae16f6 libva-1.6.2.tar.bz2 +# From https://lists.freedesktop.org/archives/libva/2016-June/004034.html +sha1 6405ce9adcad2bc31122d766f2a99250657f9f8a libva-1.7.1.tar.bz2 diff --git a/bsp/buildroot/package/libva/libva.mk b/bsp/buildroot/package/libva/libva.mk index 4adfd527..b6a7ca53 100644 --- a/bsp/buildroot/package/libva/libva.mk +++ b/bsp/buildroot/package/libva/libva.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBVA_VERSION = 1.6.2 +LIBVA_VERSION = 1.7.1 LIBVA_SOURCE = libva-$(LIBVA_VERSION).tar.bz2 LIBVA_SITE = http://www.freedesktop.org/software/vaapi/releases/libva LIBVA_LICENSE = MIT diff --git a/bsp/buildroot/package/libvdpau/0001-missing-configh-include.patch b/bsp/buildroot/package/libvdpau/0001-missing-configh-include.patch new file mode 100755 index 00000000..f96c6fa7 --- /dev/null +++ b/bsp/buildroot/package/libvdpau/0001-missing-configh-include.patch @@ -0,0 +1,29 @@ +From: Rico Tzschichholz +Date: Tue, 1 Sep 2015 10:45:11 +0200 +Subject: mesa_dri2: Add missing include of config.h to define _GNU_SOURCE + +Fix build with -Wimplicit-function-declaration while secure_getenv() is +guarded by __USE_GNU. + +Reviewed-by: Aaron Plattner +Tested-by: Stefan Dirsch +(cherry picked from commit 1cda354bdfd0c9ca107293b84b52f4464fdbedcc) +Signed-off-by: Damien Lanson +--- + src/mesa_dri2.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/mesa_dri2.c b/src/mesa_dri2.c +index 51e8794..420ccee 100644 +--- a/src/mesa_dri2.c ++++ b/src/mesa_dri2.c +@@ -33,6 +33,9 @@ + * and José Hiram Soltren (jsoltren@nvidia.com) + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + + #define NEED_REPLIES + #include diff --git a/bsp/buildroot/package/libvdpau/0002-link-with-libx11.patch b/bsp/buildroot/package/libvdpau/0002-link-with-libx11.patch new file mode 100755 index 00000000..cfb39731 --- /dev/null +++ b/bsp/buildroot/package/libvdpau/0002-link-with-libx11.patch @@ -0,0 +1,33 @@ +Subject: Link libvdpao with libX11 since it uses symbols from it +Author: Russ Allbery +Forwarded: no + +libvdpau uses the symbols: + + _XEatData + _XReply + _XFlush + _XReadPad + XFree + +which are provided by libX11, but wasn't linking with it directly, resulting +in warnings during the package build (and possibly errors later with better +linkers). + +[Patch taken from +https://anonscm.debian.org/cgit/pkg-nvidia/libvdpau.git/tree/debian/patches/link-with-libx11.patch.] + +Signed-off-by: Damien Lanson + +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -22,7 +22,8 @@ endif + libvdpau_la_LIBADD = \ + $(DLOPEN_LIBS) \ + $(PTHREAD_LIBS) \ +- $(XEXT_LIBS) ++ $(XEXT_LIBS) \ ++ $(X11_LIBS) + + libvdpau_la_LDFLAGS = -version-info 1:0:0 -no-undefined + diff --git a/bsp/buildroot/package/libvdpau/0003-vdpau-module-searchpath.patch b/bsp/buildroot/package/libvdpau/0003-vdpau-module-searchpath.patch new file mode 100755 index 00000000..bd835153 --- /dev/null +++ b/bsp/buildroot/package/libvdpau/0003-vdpau-module-searchpath.patch @@ -0,0 +1,48 @@ +From: Andreas Beckmann +Subject: search the vdpau module in multiple directories + start searching the vdpau module in ${ORIGIN}/vdpau, then the MODULEDIR and + finally fall back to /usr/lib/vdpau + +[Patch taken from +https://anonscm.debian.org/cgit/pkg-nvidia/libvdpau.git/tree/debian/patches/vdpau-module-searchpath.patch.] + +Signed-off-by: Damien Lanson + +--- a/src/vdpau_wrapper.c ++++ b/src/vdpau_wrapper.c +@@ -103,6 +103,13 @@ static char * _vdp_get_driver_name_from_ + return driver_name; + } + ++static char const * _vdpau_module_search_paths[] = { ++ "${ORIGIN}/vdpau", ++ VDPAU_MODULEDIR, ++ "/usr/lib/vdpau", ++ NULL ++}; ++ + static VdpStatus _vdp_open_driver( + Display * display, + int screen) +@@ -117,6 +127,7 @@ static VdpStatus _vdp_open_driver( + char vdpau_driver_lib[PATH_MAX]; + char const * vdpau_trace; + char const * func_name; ++ char const ** module_path; + + vdpau_driver = secure_getenv("VDPAU_DRIVER"); + if (vdpau_driver) { +@@ -138,9 +146,11 @@ static VdpStatus _vdp_open_driver( + + /* Fallback to VDPAU_MODULEDIR when VDPAU_DRIVER_PATH is not set, + * or if we fail to create the driver path/dlopen the library. */ +- if (!_vdp_driver_dll) { ++ for (module_path = _vdpau_module_search_paths; ++ !_vdp_driver_dll && *module_path; ++ ++module_path) { + if (snprintf(vdpau_driver_lib, sizeof(vdpau_driver_lib), +- DRIVER_LIB_FORMAT, VDPAU_MODULEDIR, vdpau_driver) >= ++ DRIVER_LIB_FORMAT, *module_path, vdpau_driver) >= + sizeof(vdpau_driver_lib)) { + fprintf(stderr, "Failed to construct driver path: path too long\n"); + } diff --git a/bsp/buildroot/package/libvdpau/Config.in b/bsp/buildroot/package/libvdpau/Config.in new file mode 100755 index 00000000..b5430abb --- /dev/null +++ b/bsp/buildroot/package/libvdpau/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_LIBVDPAU + bool "libvdpau" + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + help + VDPAU is the Video Decode and Presentation API for UNIX. + It provides an interface to video decode acceleration and + presentation hardware present in modern GPUs. + + http://freedesktop.org/wiki/Software/VDPAU + +comment "libvdpau needs a toolchain w/ threads, C++" + depends on BR2_PACKAGE_XORG7 + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/libvdpau/libvdpau.hash b/bsp/buildroot/package/libvdpau/libvdpau.hash new file mode 100755 index 00000000..55dc6a7e --- /dev/null +++ b/bsp/buildroot/package/libvdpau/libvdpau.hash @@ -0,0 +1,4 @@ +# From https://lists.freedesktop.org/archives/xorg-announce/2015-August/002630.html +md5 2fa0b05a4f4d06791eec83bc9c854d14 libvdpau-1.1.1.tar.bz2 +sha1 86516e2a962fd34f65d49115d6ddf15fd912f579 libvdpau-1.1.1.tar.bz2 +sha256 857a01932609225b9a3a5bf222b85e39b55c08787d0ad427dbd9ec033d58d736 libvdpau-1.1.1.tar.bz2 diff --git a/bsp/buildroot/package/libvdpau/libvdpau.mk b/bsp/buildroot/package/libvdpau/libvdpau.mk new file mode 100755 index 00000000..f29da1e4 --- /dev/null +++ b/bsp/buildroot/package/libvdpau/libvdpau.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# libvdpau +# +################################################################################ + +LIBVDPAU_VERSION = 1.1.1 +LIBVDPAU_SOURCE = libvdpau-$(LIBVDPAU_VERSION).tar.bz2 +LIBVDPAU_SITE = http://people.freedesktop.org/~aplattner/vdpau +LIBVDPAU_LICENSE = MIT +LIBVDPAU_LICENSE_FILES = COPYING +LIBVDPAU_INSTALL_STAGING = YES + +# autoreconf for patch 0002-link-with-libx11.patch +LIBVDPAU_AUTORECONF = YES + +LIBVDPAU_DEPENDENCIES = host-pkgconf xlib_libX11 xlib_libXext + +LIBVDPAU_CONF_OPTS = --with-module-dir=/usr/lib/vdpau + +ifeq ($(BR2_PACKAGE_XPROTO_DRI2PROTO),y) +LIBVDPAU_DEPENDENCIES += xproto_dri2proto +LIBVDPAU_CONF_OPTS += --enable-dri2 +else +LIBVDPAU_CONF_OPTS += --disable-dri2 +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/libvpx/0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch b/bsp/buildroot/package/libvpx/0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch new file mode 100644 index 00000000..20f08c90 --- /dev/null +++ b/bsp/buildroot/package/libvpx/0001-vpx_mem-vpx_mem.h-Fix-compilation-with-uClibc.patch @@ -0,0 +1,30 @@ +From 90845a3a263e0f37b9c756c0b01377b9d1a225c9 Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Sun, 31 Jul 2016 10:37:05 +0200 +Subject: [PATCH] vpx_mem/vpx_mem.h: do not include + +The header does not exist in most C libraries, and including +it causes build failures. + +Signed-off-by: Bernd Kuhls +--- + vpx_mem/vpx_mem.h | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/vpx_mem/vpx_mem.h b/vpx_mem/vpx_mem.h +index c14f288..82df745 100644 +--- a/vpx_mem/vpx_mem.h ++++ b/vpx_mem/vpx_mem.h +@@ -12,9 +12,6 @@ + #define VPX_MEM_VPX_MEM_H_ + + #include "vpx_config.h" +-#if defined(__uClinux__) +-# include +-#endif + + #include + #include +-- +2.8.1 + diff --git a/bsp/buildroot/package/libvpx/libvpx.hash b/bsp/buildroot/package/libvpx/libvpx.hash index 44cd994e..f0240d69 100644 --- a/bsp/buildroot/package/libvpx/libvpx.hash +++ b/bsp/buildroot/package/libvpx/libvpx.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 f582d9b2d60a592a4a3d8c32965ca2d2167e9ade38c6c30bac8801ff66a118e4 libvpx-1.4.0.tar.bz2 +sha256 d0afbb5eb1ecae68f8d578abace160a97e2e8a230e3028cf4db115d59a695aad libvpx-1.6.0.tar.bz2 diff --git a/bsp/buildroot/package/libvpx/libvpx.mk b/bsp/buildroot/package/libvpx/libvpx.mk index 066b037f..4ad55224 100644 --- a/bsp/buildroot/package/libvpx/libvpx.mk +++ b/bsp/buildroot/package/libvpx/libvpx.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBVPX_VERSION = 1.4.0 +LIBVPX_VERSION = 1.6.0 LIBVPX_SOURCE = libvpx-$(LIBVPX_VERSION).tar.bz2 LIBVPX_SITE = http://storage.googleapis.com/downloads.webmproject.org/releases/webm LIBVPX_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/libwebsock/libwebsock.hash b/bsp/buildroot/package/libwebsock/libwebsock.hash new file mode 100644 index 00000000..b94b7381 --- /dev/null +++ b/bsp/buildroot/package/libwebsock/libwebsock.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 34cf8376446e2371c9af47394043a30dc16af7ed5437d56bc6135c5dfda9ed22 libwebsock-3c1615eeadb0b582b63851073bfe3e5132f31ebc.tar.gz diff --git a/bsp/buildroot/package/libwebsockets/0001-cmake-disable-shared-library-build-when-BUILD_SHARED.patch b/bsp/buildroot/package/libwebsockets/0001-cmake-disable-shared-library-build-when-BUILD_SHARED.patch deleted file mode 100644 index 95d1ad8f..00000000 --- a/bsp/buildroot/package/libwebsockets/0001-cmake-disable-shared-library-build-when-BUILD_SHARED.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 045b035bd9ebbd45f40dda36b143ede869eb5f16 Mon Sep 17 00:00:00 2001 -From: Sagaert Johan -Date: Fri, 31 Oct 2014 12:25:48 +0100 -Subject: [PATCH 2/2] cmake: disable shared library build when - BUILD_SHARED_LIBS is off - -Original patch from Samuel Martin, reworked by Sagaert Johan when -updating libwebsockets. - -Signed-off-by: Samuel Martin -Signed-off-by: Sagaert Johan -[yann.morin.1998@free.fr: further fix after the version bumped] -Signed-off-by: "Yann E. MORIN" ---- - CMakeLists.txt | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7978845..89853ce 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -372,14 +372,19 @@ source_group("Sources" FILES ${SOURCES}) - # - # Create the lib. - # -+set(_libs_websockets websockets) - add_library(websockets STATIC - ${HDR_PRIVATE} - ${HDR_PUBLIC} - ${SOURCES}) -+ -+if(BUILD_SHARED_LIBS) -+list(APPEND _libs_websockets websockets_shared) - add_library(websockets_shared SHARED - ${HDR_PRIVATE} - ${HDR_PUBLIC} - ${SOURCES}) -+endif() - - if (WIN32) - # On Windows libs have the same file ending (.lib) -@@ -400,15 +405,17 @@ endif(WIN32) - - # We want the shared lib to be named "libwebsockets" - # not "libwebsocket_shared". -+if(BUILD_SHARED_LIBS) - set_target_properties(websockets_shared -- PROPERTIES -+ PROPERTIES - OUTPUT_NAME websockets) -+endif() - - # Set the so version of the lib. - # Equivalent to LDFLAGS=-version-info x:x:x - if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) -- foreach(lib websockets websockets_shared) -- set_target_properties(${lib} -+ foreach(lib ${_libs_websockets}) -+ set_target_properties(${lib} - PROPERTIES - SOVERSION ${SOVERSION}) - endforeach() -@@ -460,7 +467,7 @@ if (NOT LWS_WITHOUT_EXTENSIONS) - endif() - - # Make sure ZLib is compiled before the libs. -- foreach (lib websockets websockets_shared) -+ foreach (lib ${_libs_websockets}) - add_dependencies(${lib} ZLIB) - endforeach() - -@@ -524,7 +531,7 @@ if (UNIX) - endif() - - # Setup the linking for all libs. --foreach (lib websockets websockets_shared) -+foreach (lib ${_libs_websockets}) - target_link_libraries(${lib} ${LIB_LIST}) - endforeach() - -@@ -793,7 +800,7 @@ - set(LWS_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") - - # Export targets (This is used for other CMake projects to easily find the libraries and include files). --export(TARGETS websockets websockets_shared -+export(TARGETS ${_libs_websockets} - FILE "${PROJECT_BINARY_DIR}/LibwebsocketsTargets.cmake") - export(PACKAGE libwebsockets) - -@@ -829,7 +835,7 @@ - ${PROJECT_BINARY_DIR}/LibwebsocketsConfigVersion.cmake - @ONLY) - --set_target_properties(websockets websockets_shared -+set_target_properties(${_libs_websockets} - PROPERTIES PUBLIC_HEADER "${HDR_PUBLIC}") - - # -@@ -837,7 +843,7 @@ - # - - # Install libs and headers. --install(TARGETS websockets websockets_shared -+install(TARGETS ${_libs_websockets} - EXPORT LibwebsocketsTargets - LIBRARY DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries - ARCHIVE DESTINATION "${LWS_INSTALL_LIB_DIR}${LIB_SUFFIX}" COMPONENT libraries diff --git a/bsp/buildroot/package/libwebsockets/libwebsockets.hash b/bsp/buildroot/package/libwebsockets/libwebsockets.hash index eadff73c..c931a0db 100644 --- a/bsp/buildroot/package/libwebsockets/libwebsockets.hash +++ b/bsp/buildroot/package/libwebsockets/libwebsockets.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 63e14fbc768a22b01a3ade61a8e6a89ab0eac329b0f9fbb40ce9fb7210fcaa70 libwebsockets-v1.4-chrome43-firefox-36.tar.xz +sha256 e91f59fb6238462b4ffdfef2482239558b8a02198c9c6076eb3f86eb1c4e935d libwebsockets-v1.7.5.tar.gz diff --git a/bsp/buildroot/package/libwebsockets/libwebsockets.mk b/bsp/buildroot/package/libwebsockets/libwebsockets.mk index 2f837487..5bb7ae44 100644 --- a/bsp/buildroot/package/libwebsockets/libwebsockets.mk +++ b/bsp/buildroot/package/libwebsockets/libwebsockets.mk @@ -4,15 +4,23 @@ # ################################################################################ -LIBWEBSOCKETS_VERSION = v1.4-chrome43-firefox-36 -LIBWEBSOCKETS_SOURCE = libwebsockets-$(LIBWEBSOCKETS_VERSION).tar.xz -LIBWEBSOCKETS_SITE = http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot +LIBWEBSOCKETS_VERSION = v1.7.5 +LIBWEBSOCKETS_SITE = $(call github,warmcat,libwebsockets,$(LIBWEBSOCKETS_VERSION)) LIBWEBSOCKETS_LICENSE = LGPLv2.1 with exceptions LIBWEBSOCKETS_LICENSE_FILES = LICENSE LIBWEBSOCKETS_DEPENDENCIES = zlib LIBWEBSOCKETS_INSTALL_STAGING = YES LIBWEBSOCKETS_CONF_OPTS = -DLWS_WITHOUT_TESTAPPS=ON -DLWS_IPV6=ON +# If LWS_MAX_SMP=1, then there is no code related to pthreads compiled +# in the library. If unset, LWS_MAX_SMP defaults to 32 and a small +# amount of pthread mutex code is built into the library. +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) +LIBWEBSOCKETS_CONF_OPTS += -DLWS_MAX_SMP=1 +else +LIBWEBSOCKETS_CONF_OPTS += -DLWS_MAX_SMP= +endif + ifeq ($(BR2_PACKAGE_OPENSSL),y) LIBWEBSOCKETS_DEPENDENCIES += openssl host-openssl LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SSL=ON @@ -20,4 +28,26 @@ else LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SSL=OFF endif +ifeq ($(BR2_PACKAGE_LIBEV),y) +LIBWEBSOCKETS_DEPENDENCIES += libev +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEV=ON +else +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEV=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBUV),y) +LIBWEBSOCKETS_DEPENDENCIES += libuv +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=ON +else +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=OFF +endif + +ifeq ($(BR2_STATIC_LIBS),y) +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_SHARED=OFF +endif + +ifeq ($(BR2_SHARED_LIBS),y) +LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_STATIC=OFF +endif + $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/libxkbcommon/libxkbcommon.hash b/bsp/buildroot/package/libxkbcommon/libxkbcommon.hash index 9cbe4403..693630a7 100644 --- a/bsp/buildroot/package/libxkbcommon/libxkbcommon.hash +++ b/bsp/buildroot/package/libxkbcommon/libxkbcommon.hash @@ -1,3 +1,2 @@ -# From http://lists.freedesktop.org/archives/wayland-devel/2014-October/017836.html -md5 2e1faeafcc609c30af3a561a91e84158 libxkbcommon-0.5.0.tar.xz -sha1 7127993bfb69e13cdff25fb8b3c8f26ce6be5bfa libxkbcommon-0.5.0.tar.xz +# From https://lists.freedesktop.org/archives/wayland-devel/2016-April/027962.html +sha256 5b0887b080b42169096a61106661f8d35bae783f8b6c58f97ebcd3af83ea8760 libxkbcommon-0.6.1.tar.xz diff --git a/bsp/buildroot/package/libxkbcommon/libxkbcommon.mk b/bsp/buildroot/package/libxkbcommon/libxkbcommon.mk index 12d5f161..1f803480 100644 --- a/bsp/buildroot/package/libxkbcommon/libxkbcommon.mk +++ b/bsp/buildroot/package/libxkbcommon/libxkbcommon.mk @@ -4,12 +4,11 @@ # ################################################################################ -LIBXKBCOMMON_VERSION = 0.5.0 +LIBXKBCOMMON_VERSION = 0.6.1 LIBXKBCOMMON_SITE = http://xkbcommon.org/download LIBXKBCOMMON_SOURCE = libxkbcommon-$(LIBXKBCOMMON_VERSION).tar.xz LIBXKBCOMMON_LICENSE = MIT/X11 -LIBXKBCOMMON_LICENSE_FILES = COPYING - +LIBXKBCOMMON_LICENSE_FILES = LICENSE LIBXKBCOMMON_INSTALL_STAGING = YES LIBXKBCOMMON_DEPENDENCIES = host-bison host-flex # uses C99 features diff --git a/bsp/buildroot/package/libxml-parser-perl/libxml-parser-perl.mk b/bsp/buildroot/package/libxml-parser-perl/libxml-parser-perl.mk index 5c2ac546..9e5325c8 100644 --- a/bsp/buildroot/package/libxml-parser-perl/libxml-parser-perl.mk +++ b/bsp/buildroot/package/libxml-parser-perl/libxml-parser-perl.mk @@ -7,7 +7,7 @@ LIBXML_PARSER_PERL_VERSION = 2.41 LIBXML_PARSER_PERL_SOURCE = XML-Parser-$(LIBXML_PARSER_PERL_VERSION).tar.gz LIBXML_PARSER_PERL_SITE = $(BR2_CPAN_MIRROR)/authors/id/T/TO/TODDR -LIBXML_PARSER_PERL_DEPENDENCIES = expat +HOST_LIBXML_PARSER_PERL_DEPENDENCIES = host-expat LIBXML_PARSER_PERL_LICENSE = Artistic or GPLv1+ LIBXML_PARSER_PERL_RUN_PERL = `which perl` diff --git a/bsp/buildroot/package/libxml2/libxml2.hash b/bsp/buildroot/package/libxml2/libxml2.hash index 00fbf437..098121e1 100644 --- a/bsp/buildroot/package/libxml2/libxml2.hash +++ b/bsp/buildroot/package/libxml2/libxml2.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 4de9e31f46b44d34871c22f54bfc54398ef124d6f7cafb1f4a5958fbcd3ba12d libxml2-2.9.3.tar.gz +sha256 ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c libxml2-2.9.4.tar.gz diff --git a/bsp/buildroot/package/libxml2/libxml2.mk b/bsp/buildroot/package/libxml2/libxml2.mk index ee9b2ca4..2a7153ad 100644 --- a/bsp/buildroot/package/libxml2/libxml2.mk +++ b/bsp/buildroot/package/libxml2/libxml2.mk @@ -4,13 +4,18 @@ # ################################################################################ -LIBXML2_VERSION = 2.9.3 +LIBXML2_VERSION = 2.9.4 LIBXML2_SITE = ftp://xmlsoft.org/libxml2 LIBXML2_INSTALL_STAGING = YES LIBXML2_LICENSE = MIT LIBXML2_LICENSE_FILES = COPYING LIBXML2_CONFIG_SCRIPTS = xml2-config +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k_cf),y) +LIBXML2_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot" +endif + LIBXML2_CONF_OPTS = --with-gnu-ld --without-python --without-debug HOST_LIBXML2_DEPENDENCIES = host-pkgconf diff --git a/bsp/buildroot/package/libxmlrpc/0006-narrowing.patch b/bsp/buildroot/package/libxmlrpc/0006-narrowing.patch new file mode 100644 index 00000000..43a5ca5f --- /dev/null +++ b/bsp/buildroot/package/libxmlrpc/0006-narrowing.patch @@ -0,0 +1,20 @@ +Fix build with gcc6 + +Downloaded from +https://build.opensuse.org/package/view_file/devel:libraries:c_c++/xmlrpc-c/narrowing.patch + +Signed-off-by: Bernd Kuhls + +Index: xmlrpc-c-1.33.18/src/cpp/base64.cpp +=================================================================== +--- xmlrpc-c-1.33.18.orig/src/cpp/base64.cpp ++++ xmlrpc-c-1.33.18/src/cpp/base64.cpp +@@ -14,7 +14,7 @@ using namespace xmlrpc_c; + + namespace { + +-char const table_a2b_base64[] = { ++signed char const table_a2b_base64[] = { + -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, + -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, + -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63, diff --git a/bsp/buildroot/package/libxslt/0001-Make-maxvars-option-work.patch b/bsp/buildroot/package/libxslt/0001-Make-maxvars-option-work.patch deleted file mode 100644 index d37cf62c..00000000 --- a/bsp/buildroot/package/libxslt/0001-Make-maxvars-option-work.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5af7ad745323004984287e48b42712e7305de35c Mon Sep 17 00:00:00 2001 -From: Per Hedeland -Date: Fri, 13 Dec 2013 14:43:06 +0100 -Subject: [PATCH] Make --maxvars option work - -From upstream: https://gitorious.org/libxslt/libxslt/commit/5af7ad745323004984287e48b42 - -Signed-off-by: Peter Korsgaard ---- - xsltproc/xsltproc.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c -index b22df37..66d8cbb 100644 ---- a/xsltproc/xsltproc.c -+++ b/xsltproc/xsltproc.c -@@ -803,6 +803,10 @@ main(int argc, char **argv) - (!strcmp(argv[i], "--maxdepth"))) { - i++; - continue; -+ } else if ((!strcmp(argv[i], "-maxvars")) || -+ (!strcmp(argv[i], "--maxvars"))) { -+ i++; -+ continue; - } else if ((!strcmp(argv[i], "-maxparserdepth")) || - (!strcmp(argv[i], "--maxparserdepth"))) { - i++; --- -2.1.0 - diff --git a/bsp/buildroot/package/libxslt/libxslt.hash b/bsp/buildroot/package/libxslt/libxslt.hash index 140db09d..8222bc59 100644 --- a/bsp/buildroot/package/libxslt/libxslt.hash +++ b/bsp/buildroot/package/libxslt/libxslt.hash @@ -1,2 +1,2 @@ -# Locally calculated -sha256 5fc7151a57b89c03d7b825df5a0fae0a8d5f05674c0e7cf2937ecec4d54a028c libxslt-1.1.28.tar.gz +# Locally calculated after checking pgp signature +sha256 b5976e3857837e7617b29f2249ebb5eeac34e249208d31f1fbf7a6ba7a4090ce libxslt-1.1.29.tar.gz diff --git a/bsp/buildroot/package/libxslt/libxslt.mk b/bsp/buildroot/package/libxslt/libxslt.mk index 2e5cc14b..868ba6a1 100644 --- a/bsp/buildroot/package/libxslt/libxslt.mk +++ b/bsp/buildroot/package/libxslt/libxslt.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBXSLT_VERSION = 1.1.28 +LIBXSLT_VERSION = 1.1.29 LIBXSLT_SITE = ftp://xmlsoft.org/libxslt LIBXSLT_INSTALL_STAGING = YES LIBXSLT_LICENSE = MIT @@ -14,7 +14,8 @@ LIBXSLT_CONF_OPTS = \ --with-gnu-ld \ --without-debug \ --without-python \ - --with-libxml-prefix=$(STAGING_DIR)/usr/ + --with-libxml-prefix=$(STAGING_DIR)/usr/ \ + --with-libxml-libs-prefix=$(STAGING_DIR)/usr/lib LIBXSLT_CONFIG_SCRIPTS = xslt-config LIBXSLT_DEPENDENCIES = libxml2 diff --git a/bsp/buildroot/package/lightning/Config.in b/bsp/buildroot/package/lightning/Config.in index 6750114b..d85c964e 100644 --- a/bsp/buildroot/package/lightning/Config.in +++ b/bsp/buildroot/package/lightning/Config.in @@ -20,13 +20,13 @@ config BR2_PACKAGE_LIGHTNING_DISASSEMBLER bool "enable disassembler" select BR2_PACKAGE_BINUTILS select BR2_PACKAGE_ZLIB - depends on !BR2_aarch64 && !BR2_nios2 # binutils + depends on !BR2_nios2 # binutils depends on BR2_USE_WCHAR # binutils help Enable the GNU lightning disassembler. comment "lightning disassembler needs a toolchain w/ wchar" - depends on !BR2_aarch64 && !BR2_nios2 + depends on !BR2_nios2 depends on !BR2_USE_WCHAR endif diff --git a/bsp/buildroot/package/lighttpd/0002-compat-latest-lua.patch b/bsp/buildroot/package/lighttpd/0002-compat-latest-lua.patch deleted file mode 100644 index ddbbfc2d..00000000 --- a/bsp/buildroot/package/lighttpd/0002-compat-latest-lua.patch +++ /dev/null @@ -1,1398 +0,0 @@ -add handling for lua 5.2 and 5.3 - -Fetch from: https://redmine.lighttpd.net/projects/lighttpd/repository/revisions/3070 - -Signed-off-by: Francois Perrad - -Index: lighttpd-1.4.37/src/mod_magnet_cache.c -=================================================================== ---- lighttpd-1.4.37/src/mod_magnet_cache.c (revision 3069) -+++ lighttpd-1.4.37/src/mod_magnet_cache.c (revision 3070) -@@ -68,6 +68,7 @@ - /* oops, the script failed last time */ - - if (lua_gettop(sc->L) == 0) break; -+ force_assert(lua_gettop(sc->L) == 1); - - if (HANDLER_ERROR == stat_cache_get_entry(srv, con, sc->name, &sce)) { - lua_pop(sc->L, 1); /* pop the old function */ -@@ -81,7 +82,6 @@ - } - - force_assert(lua_isfunction(sc->L, -1)); -- lua_pushvalue(sc->L, -1); /* copy the function-reference */ - - return sc->L; - } -@@ -114,7 +114,6 @@ - - if (0 != luaL_loadfile(sc->L, name->ptr)) { - /* oops, an error, return it */ -- - return sc->L; - } - -@@ -122,14 +121,7 @@ - buffer_copy_buffer(sc->etag, sce->etag); - } - -- /** -- * pcall() needs the function on the stack -- * -- * as pcall() will pop the script from the stack when done, we have to -- * duplicate it here -- */ - force_assert(lua_isfunction(sc->L, -1)); -- lua_pushvalue(sc->L, -1); /* copy the function-reference */ - - return sc->L; - } -Index: lighttpd-1.4.37/src/mod_cml_lua.c -=================================================================== ---- lighttpd-1.4.37/src/mod_cml_lua.c (revision 3069) -+++ lighttpd-1.4.37/src/mod_cml_lua.c (revision 3070) -@@ -28,67 +28,35 @@ - #include - #include - --typedef struct { -- stream st; -- int done; --} readme; -- --static const char * load_file(lua_State *L, void *data, size_t *size) { -- readme *rm = data; -- -- UNUSED(L); -- -- if (rm->done) return 0; -- -- *size = rm->st.size; -- rm->done = 1; -- return rm->st.start; --} -- - static int lua_to_c_get_string(lua_State *L, const char *varname, buffer *b) { -- int curelem; -+ int curelem = lua_gettop(L); -+ int result; - -- lua_pushstring(L, varname); -+ lua_getglobal(L, varname); - -- curelem = lua_gettop(L); -- lua_gettable(L, LUA_GLOBALSINDEX); -- -- /* it should be a table */ -- if (!lua_isstring(L, curelem)) { -- lua_settop(L, curelem - 1); -- -- return -1; -+ if (lua_isstring(L, curelem)) { -+ buffer_copy_string(b, lua_tostring(L, curelem)); -+ result = 0; -+ } else { -+ result = -1; - } - -- buffer_copy_string(b, lua_tostring(L, curelem)); -- - lua_pop(L, 1); -- -- force_assert(curelem - 1 == lua_gettop(L)); -- -- return 0; -+ force_assert(curelem == lua_gettop(L)); -+ return result; - } - - static int lua_to_c_is_table(lua_State *L, const char *varname) { -- int curelem; -+ int curelem = lua_gettop(L); -+ int result; - -- lua_pushstring(L, varname); -+ lua_getglobal(L, varname); - -- curelem = lua_gettop(L); -- lua_gettable(L, LUA_GLOBALSINDEX); -+ result = lua_istable(L, curelem) ? 1 : 0; - -- /* it should be a table */ -- if (!lua_istable(L, curelem)) { -- lua_settop(L, curelem - 1); -- -- return 0; -- } -- -- lua_settop(L, curelem - 1); -- -- force_assert(curelem - 1 == lua_gettop(L)); -- -- return 1; -+ lua_pop(L, 1); -+ force_assert(curelem == lua_gettop(L)); -+ return result; - } - - static int c_to_lua_push(lua_State *L, int tbl, const char *key, size_t key_len, const char *val, size_t val_len) { -@@ -99,7 +67,6 @@ - return 0; - } - -- - static int cache_export_get_params(lua_State *L, int tbl, buffer *qrystr) { - size_t is_key = 1; - size_t i, len; -@@ -143,83 +110,12 @@ - - return 0; - } --#if 0 --int cache_export_cookie_params(server *srv, connection *con, plugin_data *p) { -- data_unset *d; - -- UNUSED(srv); -- -- if (NULL != (d = array_get_element(con->request.headers, "Cookie"))) { -- data_string *ds = (data_string *)d; -- size_t key = 0, value = 0; -- size_t is_key = 1, is_sid = 0; -- size_t i; -- -- /* found COOKIE */ -- if (!DATA_IS_STRING(d)) return -1; -- if (ds->value->used == 0) return -1; -- -- if (ds->value->ptr[0] == '\0' || -- ds->value->ptr[0] == '=' || -- ds->value->ptr[0] == ';') return -1; -- -- buffer_reset(p->session_id); -- for (i = 0; i < ds->value->used; i++) { -- switch(ds->value->ptr[i]) { -- case '=': -- if (is_key) { -- if (0 == strncmp(ds->value->ptr + key, "PHPSESSID", i - key)) { -- /* found PHP-session-id-key */ -- is_sid = 1; -- } -- value = i + 1; -- -- is_key = 0; -- } -- -- break; -- case ';': -- if (is_sid) { -- buffer_copy_string_len(p->session_id, ds->value->ptr + value, i - value); -- } -- -- is_sid = 0; -- key = i + 1; -- value = 0; -- is_key = 1; -- break; -- case ' ': -- if (is_key == 1 && key == i) key = i + 1; -- if (is_key == 0 && value == i) value = i + 1; -- break; -- case '\0': -- if (is_sid) { -- buffer_copy_string_len(p->session_id, ds->value->ptr + value, i - value); -- } -- /* fin */ -- break; -- } -- } -- } -- -- return 0; --} --#endif -- - int cache_parse_lua(server *srv, connection *con, plugin_data *p, buffer *fn) { - lua_State *L; -- readme rm; - int ret = -1; - buffer *b; -- int header_tbl = 0; - -- rm.done = 0; -- if (-1 == stream_open(&rm.st, fn)) { -- log_error_write(srv, __FILE__, __LINE__, "sbss", -- "opening lua cml file ", fn, "failed:", strerror(errno)); -- return -1; -- } -- - b = buffer_init(); - /* push the lua file to the interpreter and see what happends */ - L = luaL_newstate(); -@@ -233,73 +129,77 @@ - lua_register(L, "dir_files", f_dir_files); - - #ifdef HAVE_MEMCACHE_H -- lua_pushliteral(L, "memcache_get_long"); - lua_pushlightuserdata(L, p->conf.mc); - lua_pushcclosure(L, f_memcache_get_long, 1); -- lua_settable(L, LUA_GLOBALSINDEX); -+ lua_setglobal(L, "memcache_get_long"); - -- lua_pushliteral(L, "memcache_get_string"); - lua_pushlightuserdata(L, p->conf.mc); - lua_pushcclosure(L, f_memcache_get_string, 1); -- lua_settable(L, LUA_GLOBALSINDEX); -+ lua_setglobal(L, "memcache_get_string"); - -- lua_pushliteral(L, "memcache_exists"); - lua_pushlightuserdata(L, p->conf.mc); - lua_pushcclosure(L, f_memcache_exists, 1); -- lua_settable(L, LUA_GLOBALSINDEX); -+ lua_setglobal(L, "memcache_exists"); - #endif -+ - /* register CGI environment */ -- lua_pushliteral(L, "request"); - lua_newtable(L); -- lua_settable(L, LUA_GLOBALSINDEX); -+ { -+ int header_tbl = lua_gettop(L); - -- lua_pushliteral(L, "request"); -- header_tbl = lua_gettop(L); -- lua_gettable(L, LUA_GLOBALSINDEX); -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("REQUEST_URI"), CONST_BUF_LEN(con->request.orig_uri)); -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("SCRIPT_NAME"), CONST_BUF_LEN(con->uri.path)); -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("SCRIPT_FILENAME"), CONST_BUF_LEN(con->physical.path)); -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("DOCUMENT_ROOT"), CONST_BUF_LEN(con->physical.doc_root)); -+ if (!buffer_string_is_empty(con->request.pathinfo)) { -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("PATH_INFO"), CONST_BUF_LEN(con->request.pathinfo)); -+ } - -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("REQUEST_URI"), CONST_BUF_LEN(con->request.orig_uri)); -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("SCRIPT_NAME"), CONST_BUF_LEN(con->uri.path)); -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("SCRIPT_FILENAME"), CONST_BUF_LEN(con->physical.path)); -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("DOCUMENT_ROOT"), CONST_BUF_LEN(con->physical.doc_root)); -- if (!buffer_string_is_empty(con->request.pathinfo)) { -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("PATH_INFO"), CONST_BUF_LEN(con->request.pathinfo)); -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("CWD"), CONST_BUF_LEN(p->basedir)); -+ c_to_lua_push(L, header_tbl, CONST_STR_LEN("BASEURL"), CONST_BUF_LEN(p->baseurl)); - } -+ lua_setglobal(L, "request"); - -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("CWD"), CONST_BUF_LEN(p->basedir)); -- c_to_lua_push(L, header_tbl, CONST_STR_LEN("BASEURL"), CONST_BUF_LEN(p->baseurl)); -- - /* register GET parameter */ -- lua_pushliteral(L, "get"); - lua_newtable(L); -- lua_settable(L, LUA_GLOBALSINDEX); -+ { -+ int get_tbl = lua_gettop(L); - -- lua_pushliteral(L, "get"); -- header_tbl = lua_gettop(L); -- lua_gettable(L, LUA_GLOBALSINDEX); -+ buffer_copy_buffer(b, con->uri.query); -+ cache_export_get_params(L, get_tbl, b); -+ buffer_reset(b); -+ } -+ lua_setglobal(L, "get"); - -- buffer_copy_buffer(b, con->uri.query); -- cache_export_get_params(L, header_tbl, b); -- buffer_reset(b); -- - /* 2 default constants */ -- lua_pushliteral(L, "CACHE_HIT"); -- lua_pushnumber(L, 0); -- lua_settable(L, LUA_GLOBALSINDEX); -+ lua_pushinteger(L, 0); -+ lua_setglobal(L, "CACHE_HIT"); - -- lua_pushliteral(L, "CACHE_MISS"); -- lua_pushnumber(L, 1); -- lua_settable(L, LUA_GLOBALSINDEX); -+ lua_pushinteger(L, 1); -+ lua_setglobal(L, "CACHE_MISS"); - - /* load lua program */ -- if (lua_load(L, load_file, &rm, fn->ptr) || lua_pcall(L,0,1,0)) { -- log_error_write(srv, __FILE__, __LINE__, "s", -- lua_tostring(L,-1)); -+ ret = luaL_loadfile(L, fn->ptr); -+ if (0 != ret) { -+ log_error_write(srv, __FILE__, __LINE__, "sbsS", -+ "failed loading cml_lua script", -+ fn, -+ ":", -+ lua_tostring(L, -1)); -+ goto error; -+ } - -+ if (lua_pcall(L, 0, 1, 0)) { -+ log_error_write(srv, __FILE__, __LINE__, "sbsS", -+ "failed running cml_lua script", -+ fn, -+ ":", -+ lua_tostring(L, -1)); - goto error; - } - - /* get return value */ -- ret = (int)lua_tonumber(L, -1); -+ ret = (int)lua_tointeger(L, -1); - lua_pop(L, 1); - - /* fetch the data from lua */ -@@ -323,10 +223,8 @@ - goto error; - } - -- lua_pushstring(L, "output_include"); -- -+ lua_getglobal(L, "output_include"); - curelem = lua_gettop(L); -- lua_gettable(L, LUA_GLOBALSINDEX); - - /* HOW-TO build a etag ? - * as we don't just have one file we have to take the stat() -@@ -441,7 +339,6 @@ - error: - lua_close(L); - -- stream_close(&rm.st); - buffer_free(b); - - return ret /* cache-error */; -Index: lighttpd-1.4.37/src/mod_magnet.c -=================================================================== ---- lighttpd-1.4.37/src/mod_magnet.c (revision 3069) -+++ lighttpd-1.4.37/src/mod_magnet.c (revision 3070) -@@ -20,6 +20,9 @@ - #include - #include - -+#define LUA_RIDX_LIGHTTPD_SERVER "lighty.srv" -+#define LUA_RIDX_LIGHTTPD_CONNECTION "lighty.con" -+ - #define MAGNET_CONFIG_RAW_URL "magnet.attract-raw-url-to" - #define MAGNET_CONFIG_PHYSICAL_PATH "magnet.attract-physical-path-to" - #define MAGNET_RESTART_REQUEST 99 -@@ -159,23 +162,57 @@ - } - #undef PATCH - --/* See http://lua-users.org/wiki/GeneralizedPairsAndIpairs for implementation details. */ -+static void magnet_get_global_table(lua_State *L) { /* (-0, +1, e) */ -+#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 502 -+ lua_geti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS); -+#else -+ lua_pushvalue(L, LUA_GLOBALSINDEX); -+#endif -+} - --/* Override the default pairs() function to allow us to use a __pairs metakey */ -+static void magnet_setfenv_mainfn(lua_State *L, int funcIndex) { /* (-1, 0, -) */ -+#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 502 -+ /* set "_ENV" upvalue, which should be the first upvalue of a "main" lua -+ * function if it uses any global names -+ */ -+ -+ const char* first_upvalue_name = lua_getupvalue(L, funcIndex, 1); -+ if (NULL == first_upvalue_name) return; /* doesn't have any upvalues */ -+ lua_pop(L, 1); /* only need the name of the upvalue, not the value */ -+ -+ if (0 != strcmp(first_upvalue_name, "_ENV")) return; -+ -+ if (NULL == lua_setupvalue(L, funcIndex, 1)) { -+ /* pop value if lua_setupvalue didn't set the (not existing) upvalue */ -+ lua_pop(L, 1); -+ } -+#else -+ lua_setfenv(L, funcIndex); -+#endif -+} -+ -+#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502 -+/* lua 5.2 already supports __pairs */ -+ -+/* See http://lua-users.org/wiki/GeneralizedPairsAndIpairs for implementation details. -+ * Override the default pairs() function to allow us to use a __pairs metakey -+ */ - static int magnet_pairs(lua_State *L) { -- luaL_checkany(L, 1); -+ luaL_checkany(L, 1); /* "self" */ - - if (luaL_getmetafield(L, 1, "__pairs")) { -- lua_insert(L, 1); -- lua_call(L, lua_gettop(L) - 1, LUA_MULTRET); -- return lua_gettop(L); -+ /* call __pairs(self) */ -+ lua_pushvalue(L, 1); -+ lua_call(L, 1, 3); - } else { -+ /* call (self) */ - lua_pushvalue(L, lua_upvalueindex(1)); -- lua_insert(L, 1); -- lua_call(L, lua_gettop(L) - 1, LUA_MULTRET); -- return lua_gettop(L); -+ lua_pushvalue(L, 1); -+ lua_call(L, 1, 3); - } -+ return 3; - } -+#endif - - /* Define a function that will iterate over an array* (in upval 1) using current position (upval 2) */ - static int magnet_array_next(lua_State *L) { -@@ -229,40 +266,63 @@ - return 1; - } - --static int magnet_print(lua_State *L) { -- const char *s = luaL_checkstring(L, 1); -+static server* magnet_get_server(lua_State *L) { - server *srv; - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -+ lua_getfield(L, LUA_REGISTRYINDEX, LUA_RIDX_LIGHTTPD_SERVER); - srv = lua_touserdata(L, -1); - lua_pop(L, 1); - -- log_error_write(srv, __FILE__, __LINE__, "ss", -- "(lua-print)", s); -+ return srv; -+} - -+static connection* magnet_get_connection(lua_State *L) { -+ connection *con; -+ -+ lua_getfield(L, LUA_REGISTRYINDEX, LUA_RIDX_LIGHTTPD_CONNECTION); -+ con = lua_touserdata(L, -1); -+ lua_pop(L, 1); -+ -+ return con; -+} -+ -+typedef struct { -+ const char *ptr; -+ size_t len; -+} const_buffer; -+ -+static const_buffer magnet_checkconstbuffer(lua_State *L, int index) { -+ const_buffer cb; -+ cb.ptr = luaL_checklstring(L, index, &cb.len); -+ return cb; -+} -+ -+static buffer* magnet_checkbuffer(lua_State *L, int index) { -+ const_buffer cb = magnet_checkconstbuffer(L, index); -+ buffer *b = buffer_init(); -+ buffer_copy_string_len(b, cb.ptr, cb.len); -+ return b; -+} -+ -+static int magnet_print(lua_State *L) { -+ buffer *b = magnet_checkbuffer(L, 1); -+ -+ log_error_write(magnet_get_server(L), __FILE__, __LINE__, "sB", -+ "(lua-print)", -+ b); -+ -+ buffer_free(b); -+ - return 0; - } - - static int magnet_stat(lua_State *L) { -- const char *s = luaL_checkstring(L, 1); -- server *srv; -- connection *con; -- buffer *sb; -+ buffer *sb = magnet_checkbuffer(L, 1); -+ server *srv = magnet_get_server(L); -+ connection *con = magnet_get_connection(L); - stat_cache_entry *sce = NULL; - handler_t res; - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -- -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- -- sb = buffer_init_string(s); - res = stat_cache_get_entry(srv, con, sb, &sce); - buffer_free(sb); - -@@ -271,7 +331,7 @@ - return 1; - } - -- lua_newtable(L); -+ lua_newtable(L); // return value - - lua_pushboolean(L, S_ISREG(sce->st.st_mode)); - lua_setfield(L, -2, "is_file"); -@@ -315,7 +375,6 @@ - lua_pushinteger(L, sce->st.st_ino); - lua_setfield(L, -2, "st_ino"); - -- - if (!buffer_string_is_empty(sce->etag)) { - /* we have to mutate the etag */ - buffer *b = buffer_init(); -@@ -340,31 +399,24 @@ - - - static int magnet_atpanic(lua_State *L) { -- const char *s = luaL_checkstring(L, 1); -- server *srv; -+ buffer *b = magnet_checkbuffer(L, 1); - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -+ log_error_write(magnet_get_server(L), __FILE__, __LINE__, "sB", -+ "(lua-atpanic)", -+ b); - -- log_error_write(srv, __FILE__, __LINE__, "ss", -- "(lua-atpanic)", s); -+ buffer_free(b); - - longjmp(exceptionjmp, 1); - } - - static int magnet_reqhdr_get(lua_State *L) { -- connection *con; -+ connection *con = magnet_get_connection(L); - data_string *ds; - -+ /* __index: param 1 is the (empty) table the value was not found in */ - const char *key = luaL_checkstring(L, 2); - -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - if (NULL != (ds = (data_string *)array_get_element(con->request.headers, key))) { - if (!buffer_is_empty(ds->value)) { - lua_pushlstring(L, CONST_BUF_LEN(ds->value)); -@@ -378,60 +430,40 @@ - } - - static int magnet_reqhdr_pairs(lua_State *L) { -- connection *con; -+ connection *con = magnet_get_connection(L); - -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - return magnet_array_pairs(L, con->request.headers); - } - - static int magnet_status_get(lua_State *L) { - data_integer *di; -- server *srv; -- size_t key_len = 0; -+ server *srv = magnet_get_server(L); - -- const char *key = luaL_checklstring(L, 2, &key_len); -+ /* __index: param 1 is the (empty) table the value was not found in */ -+ const_buffer key = magnet_checkconstbuffer(L, 2); - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -+ di = status_counter_get_counter(srv, key.ptr, key.len); - -- di = status_counter_get_counter(srv, key, key_len); -+ lua_pushinteger(L, (lua_Integer)di->value); - -- lua_pushnumber(L, (double)di->value); -- - return 1; - } - - static int magnet_status_set(lua_State *L) { -- size_t key_len = 0; -- server *srv; -+ server *srv = magnet_get_server(L); - -- const char *key = luaL_checklstring(L, 2, &key_len); -- int counter = luaL_checkint(L, 3); -+ /* __newindex: param 1 is the (empty) table the value is supposed to be set in */ -+ const_buffer key = magnet_checkconstbuffer(L, 2); -+ int counter = (int) luaL_checkinteger(L, 3); - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -+ status_counter_set(srv, key.ptr, key.len, counter); - -- status_counter_set(srv, key, key_len, counter); -- - return 0; - } - - static int magnet_status_pairs(lua_State *L) { -- server *srv; -+ server *srv = magnet_get_server(L); - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - return magnet_array_pairs(L, srv->status); - } - -@@ -534,22 +566,13 @@ - } - - static int magnet_env_get(lua_State *L) { -- server *srv; -- connection *con; -+ server *srv = magnet_get_server(L); -+ connection *con = magnet_get_connection(L); - -+ /* __index: param 1 is the (empty) table the value was not found in */ - const char *key = luaL_checkstring(L, 2); - buffer *dest = NULL; - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -- -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - dest = magnet_env_get_buffer(srv, con, key); - - if (!buffer_is_empty(dest)) { -@@ -562,25 +585,22 @@ - } - - static int magnet_env_set(lua_State *L) { -- server *srv; -- connection *con; -+ server *srv = magnet_get_server(L); -+ connection *con = magnet_get_connection(L); - -+ /* __newindex: param 1 is the (empty) table the value is supposed to be set in */ - const char *key = luaL_checkstring(L, 2); -- const char *val = luaL_checkstring(L, 3); - buffer *dest = NULL; - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -+ luaL_checkany(L, 3); /* nil or a string */ - -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - if (NULL != (dest = magnet_env_get_buffer(srv, con, key))) { -- buffer_copy_string(dest, val); -+ if (lua_isnil(L, 3)) { -+ buffer_reset(dest); -+ } else { -+ const_buffer val = magnet_checkconstbuffer(L, 3); -+ buffer_copy_string_len(dest, val.ptr, val.len); -+ } - } else { - /* couldn't save */ - -@@ -591,28 +611,24 @@ - } - - static int magnet_env_next(lua_State *L) { -- server *srv; -- connection *con; -- int pos = lua_tointeger(L, lua_upvalueindex(1)); -+ server *srv = magnet_get_server(L); -+ connection *con = magnet_get_connection(L); -+ const int pos = lua_tointeger(L, lua_upvalueindex(1)); - - buffer *dest; - -- lua_pushstring(L, "lighty.srv"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- srv = lua_touserdata(L, -1); -- lua_pop(L, 1); -- -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- -+ /* ignore previous key: use upvalue for current pos */ - lua_settop(L, 0); - - if (NULL == magnet_env[pos].name) return 0; /* end of list */ -+ /* Update our positional upval to reflect our new current position */ -+ lua_pushinteger(L, pos + 1); -+ lua_replace(L, lua_upvalueindex(1)); - -+ /* key to return */ - lua_pushstring(L, magnet_env[pos].name); - -+ /* get value */ - dest = magnet_env_get_buffer_by_id(srv, con, magnet_env[pos].type); - if (!buffer_is_empty(dest)) { - lua_pushlstring(L, CONST_BUF_LEN(dest)); -@@ -620,12 +636,7 @@ - lua_pushnil(L); - } - -- /* Update our positional upval to reflect our new current position */ -- pos++; -- lua_pushinteger(L, pos); -- lua_replace(L, lua_upvalueindex(1)); -- -- /* Returning 2 items on the stack (key, value) */ -+ /* return 2 items on the stack (key, value) */ - return 2; - } - -@@ -636,16 +647,12 @@ - } - - static int magnet_cgi_get(lua_State *L) { -- connection *con; -+ connection *con = magnet_get_connection(L); - data_string *ds; - -+ /* __index: param 1 is the (empty) table the value was not found in */ - const char *key = luaL_checkstring(L, 2); - -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - ds = (data_string *)array_get_element(con->environment, key); - if (NULL != ds && !buffer_is_empty(ds->value)) - lua_pushlstring(L, CONST_BUF_LEN(ds->value)); -@@ -656,47 +663,28 @@ - } - - static int magnet_cgi_set(lua_State *L) { -- connection *con; -+ connection *con = magnet_get_connection(L); - -- const char *key = luaL_checkstring(L, 2); -- const char *val = luaL_checkstring(L, 3); -+ /* __newindex: param 1 is the (empty) table the value is supposed to be set in */ -+ const_buffer key = magnet_checkconstbuffer(L, 2); -+ const_buffer val = magnet_checkconstbuffer(L, 2); - -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -+ array_set_key_value(con->environment, key.ptr, key.len, val.ptr, val.len); - -- array_set_key_value(con->environment, key, strlen(key), val, strlen(val)); -- - return 0; - } - - static int magnet_cgi_pairs(lua_State *L) { -- connection *con; -+ connection *con = magnet_get_connection(L); - -- lua_pushstring(L, "lighty.con"); -- lua_gettable(L, LUA_REGISTRYINDEX); -- con = lua_touserdata(L, -1); -- lua_pop(L, 1); -- - return magnet_array_pairs(L, con->environment); - } - - --static int magnet_copy_response_header(server *srv, connection *con, plugin_data *p, lua_State *L) { -- UNUSED(p); -- /** -- * get the environment of the function -- */ -+static int magnet_copy_response_header(server *srv, connection *con, lua_State *L, int lighty_table_ndx) { -+ force_assert(lua_istable(L, lighty_table_ndx)); - -- lua_getfenv(L, -1); /* -1 is the function */ -- -- /* lighty.header */ -- -- lua_getfield(L, -1, "lighty"); /* lighty.* from the env */ -- force_assert(lua_istable(L, -1)); -- -- lua_getfield(L, -1, "header"); /* lighty.header */ -+ lua_getfield(L, lighty_table_ndx, "header"); /* lighty.header */ - if (lua_istable(L, -1)) { - /* header is found, and is a table */ - -@@ -703,23 +691,17 @@ - lua_pushnil(L); - while (lua_next(L, -2) != 0) { - if (lua_isstring(L, -1) && lua_isstring(L, -2)) { -- const char *key, *val; -- size_t key_len, val_len; -+ const_buffer key = magnet_checkconstbuffer(L, -2); -+ const_buffer val = magnet_checkconstbuffer(L, -1); - -- key = lua_tolstring(L, -2, &key_len); -- val = lua_tolstring(L, -1, &val_len); -- -- response_header_overwrite(srv, con, key, key_len, val, val_len); -+ response_header_overwrite(srv, con, key.ptr, key.len, val.ptr, val.len); - } - - lua_pop(L, 1); - } - } -+ lua_pop(L, 1); /* pop lighty.header */ - -- lua_pop(L, 1); /* pop the header-table */ -- lua_pop(L, 1); /* pop the lighty-env */ -- lua_pop(L, 1); /* pop the function env */ -- - return 0; - } - -@@ -732,22 +714,13 @@ - * - * return 200 - */ --static int magnet_attach_content(server *srv, connection *con, plugin_data *p, lua_State *L) { -- UNUSED(p); -- /** -- * get the environment of the function -- */ -+static int magnet_attach_content(server *srv, connection *con, lua_State *L, int lighty_table_ndx) { -+ force_assert(lua_istable(L, lighty_table_ndx)); - -- force_assert(lua_isfunction(L, -1)); -- lua_getfenv(L, -1); /* -1 is the function */ -- -- lua_getfield(L, -1, "lighty"); /* lighty.* from the env */ -- force_assert(lua_istable(L, -1)); -- -- lua_getfield(L, -1, "content"); /* lighty.content */ -+ lua_getfield(L, lighty_table_ndx, "content"); /* lighty.content */ - if (lua_istable(L, -1)) { - int i; -- /* header is found, and is a table */ -+ /* content is found, and is a table */ - - for (i = 1; ; i++) { - lua_rawgeti(L, -1, i); -@@ -754,10 +727,9 @@ - - /* -1 is the value and should be the value ... aka a table */ - if (lua_isstring(L, -1)) { -- size_t s_len = 0; -- const char *s = lua_tolstring(L, -1, &s_len); -+ const_buffer data = magnet_checkconstbuffer(L, -1); - -- chunkqueue_append_mem(con->write_queue, s, s_len); -+ chunkqueue_append_mem(con->write_queue, data.ptr, data.len); - } else if (lua_istable(L, -1)) { - lua_getfield(L, -1, "filename"); - lua_getfield(L, -2, "length"); -@@ -766,36 +738,24 @@ - if (lua_isstring(L, -3)) { /* filename has to be a string */ - buffer *fn; - stat_cache_entry *sce; -- const char *fn_str; - handler_t res; - -- fn_str = lua_tostring(L, -3); -- fn = buffer_init_string(fn_str); -+ fn = magnet_checkbuffer(L, -3); - - res = stat_cache_get_entry(srv, con, fn, &sce); - - if (HANDLER_GO_ON == res) { -- off_t off = 0; -- off_t len = 0; -+ off_t off = (off_t) luaL_optinteger(L, -1, 0); -+ off_t len = (off_t) luaL_optinteger(L, -2, (lua_Integer) sce->st.st_size); - -- if (lua_isnumber(L, -1)) { -- off = lua_tonumber(L, -1); -- } -- -- if (lua_isnumber(L, -2)) { -- len = lua_tonumber(L, -2); -- } else { -- len = sce->st.st_size; -- } -- - if (off < 0) { - buffer_free(fn); -- return luaL_error(L, "offset for '%s' is negative", fn_str); -+ return luaL_error(L, "offset for '%s' is negative", lua_tostring(L, -3)); - } - - if (len < off) { - buffer_free(fn); -- return luaL_error(L, "offset > length for '%s'", fn_str); -+ return luaL_error(L, "offset > length for '%s'", lua_tostring(L, -3)); - } - - chunkqueue_append_file(con->write_queue, fn, off, len - off); -@@ -803,40 +763,34 @@ - - buffer_free(fn); - } else { -- lua_pop(L, 3 + 2); /* correct the stack */ -- - return luaL_error(L, "content[%d] is a table and requires the field \"filename\"", i); - } - - lua_pop(L, 3); - } else if (lua_isnil(L, -1)) { -- /* oops, end of list */ -+ /* end of list */ - - lua_pop(L, 1); - - break; - } else { -- lua_pop(L, 4); -- - return luaL_error(L, "content[%d] is neither a string nor a table: ", i); - } - -- lua_pop(L, 1); /* pop the content[...] table */ -+ lua_pop(L, 1); /* pop the content[...] entry value */ - } - } else { - return luaL_error(L, "lighty.content has to be a table"); - } -- lua_pop(L, 1); /* pop the header-table */ -- lua_pop(L, 1); /* pop the lighty-table */ -- lua_pop(L, 1); /* php the function env */ -+ lua_pop(L, 1); /* pop lighty.content */ - - return 0; - } - --static int traceback (lua_State *L) { -+static int traceback(lua_State *L) { - if (!lua_isstring(L, 1)) /* 'message' not a string? */ - return 1; /* keep it intact */ -- lua_getfield(L, LUA_GLOBALSINDEX, "debug"); -+ lua_getglobal(L, "debug"); - if (!lua_istable(L, -1)) { - lua_pop(L, 1); - return 1; -@@ -852,6 +806,10 @@ - return 1; - } - -+/* push traceback function before calling lua_pcall after narg arguments -+ * have been pushed (inserts it before the arguments). returns index for -+ * traceback function ("msgh" in lua_pcall) -+ */ - static int push_traceback(lua_State *L, int narg) { - int base = lua_gettop(L) - narg; /* function index */ - lua_pushcfunction(L, traceback); -@@ -861,11 +819,11 @@ - - static handler_t magnet_attract(server *srv, connection *con, plugin_data *p, buffer *name) { - lua_State *L; -- int lua_return_value = -1; -- int errfunc; -+ int lua_return_value; -+ const int func_ndx = 1; -+ const int lighty_table_ndx = 2; -+ - /* get the script-context */ -- -- - L = script_cache_get_script(srv, con, p->cache, name); - - if (lua_isstring(L, -1)) { -@@ -878,7 +836,7 @@ - - lua_pop(L, 1); - -- force_assert(lua_gettop(L) == 0); /* only the function should be on the stack */ -+ force_assert(lua_gettop(L) == 0); /* only the error should have been on the stack */ - - con->http_status = 500; - con->mode = DIRECT; -@@ -886,13 +844,14 @@ - return HANDLER_FINISHED; - } - -- lua_pushstring(L, "lighty.srv"); -+ force_assert(lua_gettop(L) == 1); -+ force_assert(lua_isfunction(L, func_ndx)); -+ - lua_pushlightuserdata(L, srv); -- lua_settable(L, LUA_REGISTRYINDEX); /* registery[] = srv */ -+ lua_setfield(L, LUA_REGISTRYINDEX, LUA_RIDX_LIGHTTPD_SERVER); - -- lua_pushstring(L, "lighty.con"); - lua_pushlightuserdata(L, con); -- lua_settable(L, LUA_REGISTRYINDEX); /* registery[] = con */ -+ lua_setfield(L, LUA_REGISTRYINDEX, LUA_RIDX_LIGHTTPD_CONNECTION); - - lua_atpanic(L, magnet_atpanic); - -@@ -901,7 +860,7 @@ - * - * setmetatable({}, {__index = _G}) - * -- * if a function, symbol is not defined in our env, __index will lookup -+ * if a function symbol is not defined in our env, __index will lookup - * in the global env. - * - * all variables created in the script-env will be thrown -@@ -914,9 +873,13 @@ - lua_setfield(L, -2, "print"); /* -1 is the env we want to set(sp -= 1) */ - - /** -- * lighty.request[] has the HTTP-request headers -- * lighty.content[] is a table of string/file -- * lighty.header[] is a array to set response headers -+ * lighty.request[] (ro) has the HTTP-request headers -+ * lighty.env[] (rw) has various url/physical file paths and -+ * request meta data; might contain nil values -+ * lighty.req_env[] (ro) has the cgi environment -+ * lighty.status[] (ro) has the status counters -+ * lighty.content[] (rw) is a table of string/file -+ * lighty.header[] (rw) is a array to set response headers - */ - - lua_newtable(L); /* lighty.* (sp += 1) */ -@@ -931,7 +894,7 @@ - lua_setfield(L, -2, "request"); /* content = {} (sp -= 1) */ - - lua_newtable(L); /* {} (sp += 1) */ -- lua_newtable(L); /* the meta-table for the request-table (sp += 1) */ -+ lua_newtable(L); /* the meta-table for the env-table (sp += 1) */ - lua_pushcfunction(L, magnet_env_get); /* (sp += 1) */ - lua_setfield(L, -2, "__index"); /* (sp -= 1) */ - lua_pushcfunction(L, magnet_env_set); /* (sp += 1) */ -@@ -938,11 +901,11 @@ - lua_setfield(L, -2, "__newindex"); /* (sp -= 1) */ - lua_pushcfunction(L, magnet_env_pairs); /* (sp += 1) */ - lua_setfield(L, -2, "__pairs"); /* (sp -= 1) */ -- lua_setmetatable(L, -2); /* tie the metatable to request (sp -= 1) */ -+ lua_setmetatable(L, -2); /* tie the metatable to env (sp -= 1) */ - lua_setfield(L, -2, "env"); /* content = {} (sp -= 1) */ - - lua_newtable(L); /* {} (sp += 1) */ -- lua_newtable(L); /* the meta-table for the request-table (sp += 1) */ -+ lua_newtable(L); /* the meta-table for the req_env-table (sp += 1) */ - lua_pushcfunction(L, magnet_cgi_get); /* (sp += 1) */ - lua_setfield(L, -2, "__index"); /* (sp -= 1) */ - lua_pushcfunction(L, magnet_cgi_set); /* (sp += 1) */ -@@ -953,7 +916,7 @@ - lua_setfield(L, -2, "req_env"); /* content = {} (sp -= 1) */ - - lua_newtable(L); /* {} (sp += 1) */ -- lua_newtable(L); /* the meta-table for the request-table (sp += 1) */ -+ lua_newtable(L); /* the meta-table for the status-table (sp += 1) */ - lua_pushcfunction(L, magnet_status_get); /* (sp += 1) */ - lua_setfield(L, -2, "__index"); /* (sp -= 1) */ - lua_pushcfunction(L, magnet_status_set); /* (sp += 1) */ -@@ -960,7 +923,7 @@ - lua_setfield(L, -2, "__newindex"); /* (sp -= 1) */ - lua_pushcfunction(L, magnet_status_pairs); /* (sp += 1) */ - lua_setfield(L, -2, "__pairs"); /* (sp -= 1) */ -- lua_setmetatable(L, -2); /* tie the metatable to request (sp -= 1) */ -+ lua_setmetatable(L, -2); /* tie the metatable to statzs (sp -= 1) */ - lua_setfield(L, -2, "status"); /* content = {} (sp -= 1) */ - - /* add empty 'content' and 'header' tables */ -@@ -976,78 +939,92 @@ - lua_pushcfunction(L, magnet_stat); /* (sp += 1) */ - lua_setfield(L, -2, "stat"); /* -1 is the env we want to set (sp -= 1) */ - -+ /* insert lighty table at index 2 */ -+ lua_pushvalue(L, -1); -+ lua_insert(L, lighty_table_ndx); -+ - lua_setfield(L, -2, "lighty"); /* lighty.* (sp -= 1) */ - -- /* override the default pairs() function to our __pairs capable version */ -+#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502 -+ /* override the default pairs() function to our __pairs capable version; -+ * not needed for lua 5.2+ -+ */ - lua_getglobal(L, "pairs"); /* push original pairs() (sp += 1) */ - lua_pushcclosure(L, magnet_pairs, 1); - lua_setfield(L, -2, "pairs"); /* (sp -= 1) */ -+#endif - - lua_newtable(L); /* the meta-table for the new env (sp += 1) */ -- lua_pushvalue(L, LUA_GLOBALSINDEX); /* (sp += 1) */ -+ magnet_get_global_table(L); /* (sp += 1) */ - lua_setfield(L, -2, "__index"); /* { __index = _G } (sp -= 1) */ - lua_setmetatable(L, -2); /* setmetatable({}, {__index = _G}) (sp -= 1) */ - -+ magnet_setfenv_mainfn(L, 1); /* (sp -= 1) */ - -- lua_setfenv(L, -2); /* on the stack should be a modified env (sp -= 1) */ -- -- errfunc = push_traceback(L, 0); -- if (lua_pcall(L, 0, 1, errfunc)) { -+ /* pcall will destroy the func value, duplicate it */ /* (sp += 1) */ -+ lua_pushvalue(L, func_ndx); -+ { -+ int errfunc = push_traceback(L, 0); -+ int ret = lua_pcall(L, 0, 1, errfunc); - lua_remove(L, errfunc); -- log_error_write(srv, __FILE__, __LINE__, -- "ss", -- "lua_pcall():", -- lua_tostring(L, -1)); -- lua_pop(L, 1); /* remove the error-msg and the function copy from the stack */ - -- force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */ -+ /* reset environment */ -+ magnet_get_global_table(L); /* (sp += 1) */ -+ magnet_setfenv_mainfn(L, 1); /* (sp -= 1) */ - -- con->http_status = 500; -- con->mode = DIRECT; -+ if (0 != ret) { -+ log_error_write(srv, __FILE__, __LINE__, -+ "ss", -+ "lua_pcall():", -+ lua_tostring(L, -1)); -+ lua_pop(L, 2); /* remove the error-msg and the lighty table at index 2 */ - -- return HANDLER_FINISHED; -- } -- lua_remove(L, errfunc); -+ force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */ - -- /* we should have the function-copy and the return value on the stack */ -- force_assert(lua_gettop(L) == 2); -+ con->http_status = 500; -+ con->mode = DIRECT; - -- if (lua_isnumber(L, -1)) { -- /* if the ret-value is a number, take it */ -- lua_return_value = (int)lua_tonumber(L, -1); -+ return HANDLER_FINISHED; -+ } - } -- lua_pop(L, 1); /* pop the ret-value */ - -- magnet_copy_response_header(srv, con, p, L); -+ /* we should have the function, the lighty table and the return value on the stack */ -+ force_assert(lua_gettop(L) == 3); - -- if (lua_return_value > 99) { -- con->http_status = lua_return_value; -- con->file_finished = 1; -+ lua_return_value = (int) luaL_optinteger(L, -1, -1); -+ lua_pop(L, 1); /* pop return value */ - -- /* try { ...*/ -- if (0 == setjmp(exceptionjmp)) { -- magnet_attach_content(srv, con, p, L); -- if (!chunkqueue_is_empty(con->write_queue)) { -- con->mode = p->id; -+ magnet_copy_response_header(srv, con, L, lighty_table_ndx); -+ -+ { -+ handler_t result = HANDLER_GO_ON; -+ -+ if (lua_return_value > 99) { -+ con->http_status = lua_return_value; -+ con->file_finished = 1; -+ -+ /* try { ...*/ -+ if (0 == setjmp(exceptionjmp)) { -+ magnet_attach_content(srv, con, L, lighty_table_ndx); -+ if (!chunkqueue_is_empty(con->write_queue)) { -+ con->mode = p->id; -+ } -+ } else { -+ lua_settop(L, 2); /* remove all but function and lighty table */ -+ /* } catch () { */ -+ con->http_status = 500; -+ con->mode = DIRECT; - } -- } else { -- /* } catch () { */ -- con->http_status = 500; -- con->mode = DIRECT; -+ -+ result = HANDLER_FINISHED; -+ } else if (MAGNET_RESTART_REQUEST == lua_return_value) { -+ result = HANDLER_COMEBACK; - } - -- force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */ -+ lua_pop(L, 1); /* pop the lighty table */ -+ force_assert(lua_gettop(L) == 1); /* only the function should remain on the stack */ - -- /* we are finished */ -- return HANDLER_FINISHED; -- } else if (MAGNET_RESTART_REQUEST == lua_return_value) { -- force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */ -- -- return HANDLER_COMEBACK; -- } else { -- force_assert(lua_gettop(L) == 1); /* only the function should be on the stack */ -- -- return HANDLER_GO_ON; -+ return result; - } - } - -Index: lighttpd-1.4.37/src/mod_cml_funcs.c -=================================================================== ---- lighttpd-1.4.37/src/mod_cml_funcs.c (revision 3069) -+++ lighttpd-1.4.37/src/mod_cml_funcs.c (revision 3070) -@@ -37,6 +37,8 @@ - HASH HA1; - char hex[33]; - int n = lua_gettop(L); -+ size_t s_len; -+ const char *s; - - if (n != 1) { - lua_pushstring(L, "md5: expected one argument"); -@@ -48,8 +50,10 @@ - lua_error(L); - } - -+ s = lua_tolstring(L, 1, &s_len); -+ - li_MD5_Init(&Md5Ctx); -- li_MD5_Update(&Md5Ctx, (unsigned char *)lua_tostring(L, 1), lua_strlen(L, 1)); -+ li_MD5_Update(&Md5Ctx, (unsigned char *) s, (unsigned int) s_len); - li_MD5_Final(HA1, &Md5Ctx); - - li_tohex(hex, (const char*) HA1, 16); -@@ -79,7 +83,7 @@ - return 1; - } - -- lua_pushnumber(L, st.st_mtime); -+ lua_pushinteger(L, st.st_mtime); - - return 1; - } -@@ -121,7 +125,7 @@ - return 1; - } - -- /* push d into registry */ -+ /* push d into userdata */ - lua_pushlightuserdata(L, d); - lua_pushcclosure(L, f_dir_files_iter, 1); - -@@ -147,7 +151,7 @@ - return 1; - } - -- lua_pushnumber(L, S_ISREG(st.st_mode)); -+ lua_pushinteger(L, S_ISREG(st.st_mode)); - - return 1; - } -@@ -171,7 +175,7 @@ - return 1; - } - -- lua_pushnumber(L, S_ISDIR(st.st_mode)); -+ lua_pushinteger(L, S_ISDIR(st.st_mode)); - - return 1; - } -@@ -183,6 +187,8 @@ - char *r; - int n = lua_gettop(L); - struct memcache *mc; -+ size_t s_len; -+ const char *s; - - if (!lua_islightuserdata(L, lua_upvalueindex(1))) { - lua_pushstring(L, "where is my userdata ?"); -@@ -201,9 +207,8 @@ - lua_error(L); - } - -- if (NULL == (r = mc_aget(mc, -- (char*) lua_tostring(L, 1), lua_strlen(L, 1)))) { -- -+ s = lua_tolstring(L, 1, &s_len); -+ if (NULL == (r = mc_aget(mc, (char*) s, s_len))) { - lua_pushboolean(L, 0); - return 1; - } -@@ -217,6 +222,8 @@ - int f_memcache_get_string(lua_State *L) { - char *r; - int n = lua_gettop(L); -+ size_t s_len; -+ const char *s; - - struct memcache *mc; - -@@ -238,8 +245,8 @@ - lua_error(L); - } - -- if (NULL == (r = mc_aget(mc, -- (char*) lua_tostring(L, 1), lua_strlen(L, 1)))) { -+ s = lua_tolstring(L, 1, &s_len); -+ if (NULL == (r = mc_aget(mc, (char*) s, s_len))) { - lua_pushnil(L); - return 1; - } -@@ -254,6 +261,8 @@ - int f_memcache_get_long(lua_State *L) { - char *r; - int n = lua_gettop(L); -+ size_t s_len; -+ const char *s; - - struct memcache *mc; - -@@ -275,13 +284,13 @@ - lua_error(L); - } - -- if (NULL == (r = mc_aget(mc, -- (char*) lua_tostring(L, 1), lua_strlen(L, 1)))) { -+ s = lua_tolstring(L, 1, &s_len); -+ if (NULL == (r = mc_aget(mc, (char*) s, s_len))) { - lua_pushnil(L); - return 1; - } - -- lua_pushnumber(L, strtol(r, NULL, 10)); -+ lua_pushinteger(L, strtol(r, NULL, 10)); - - free(r); - diff --git a/bsp/buildroot/package/lighttpd/lighttpd.hash b/bsp/buildroot/package/lighttpd/lighttpd.hash index 7ae17f23..1ed00957 100644 --- a/bsp/buildroot/package/lighttpd/lighttpd.hash +++ b/bsp/buildroot/package/lighttpd/lighttpd.hash @@ -1,2 +1,2 @@ # From http://www.lighttpd.net/ -sha256 7eb9a1853c3d6dd5851682b0733a729ba4158d6bdff80974d5ef5f1f6887365b lighttpd-1.4.39.tar.xz +sha256 4bcc383ef6d6dc7b284f68882d71a178e2986c83c4e85eeb3c8f3b882e346b6c lighttpd-1.4.41.tar.xz diff --git a/bsp/buildroot/package/lighttpd/lighttpd.mk b/bsp/buildroot/package/lighttpd/lighttpd.mk index 01463737..37ab939d 100644 --- a/bsp/buildroot/package/lighttpd/lighttpd.mk +++ b/bsp/buildroot/package/lighttpd/lighttpd.mk @@ -5,7 +5,7 @@ ################################################################################ LIGHTTPD_VERSION_MAJOR = 1.4 -LIGHTTPD_VERSION = $(LIGHTTPD_VERSION_MAJOR).39 +LIGHTTPD_VERSION = $(LIGHTTPD_VERSION_MAJOR).41 LIGHTTPD_SOURCE = lighttpd-$(LIGHTTPD_VERSION).tar.xz LIGHTTPD_SITE = http://download.lighttpd.net/lighttpd/releases-$(LIGHTTPD_VERSION_MAJOR).x LIGHTTPD_LICENSE = BSD-3c @@ -46,7 +46,13 @@ endif ifeq ($(BR2_PACKAGE_LIGHTTPD_WEBDAV),y) LIGHTTPD_DEPENDENCIES += libxml2 sqlite -LIGHTTPD_CONF_OPTS += --with-webdav-props --with-webdav-locks +LIGHTTPD_CONF_OPTS += --with-webdav-props +ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y) +LIGHTTPD_CONF_OPTS += --with-webdav-locks +LIGHTTPD_DEPENDENCIES += util-linux +else +LIGHTTPD_CONF_OPTS += --without-webdav-locks +endif else LIGHTTPD_CONF_OPTS += --without-webdav-props --without-webdav-locks endif diff --git a/bsp/buildroot/package/linenoise/linenoise.hash b/bsp/buildroot/package/linenoise/linenoise.hash new file mode 100644 index 00000000..7837bc68 --- /dev/null +++ b/bsp/buildroot/package/linenoise/linenoise.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 f5054a4fe120d43d85427cf58af93e56b9bb80389d507a9bec9b75531a340014 linenoise-1.0.tar.gz diff --git a/bsp/buildroot/package/linknx/0001-fix-static-build-with-mysql.patch b/bsp/buildroot/package/linknx/0001-fix-static-build-with-mysql.patch new file mode 100644 index 00000000..c26bef77 --- /dev/null +++ b/bsp/buildroot/package/linknx/0001-fix-static-build-with-mysql.patch @@ -0,0 +1,47 @@ +Fix static build with mysql + +When building static binaries, the order of libraries in the link command line +is significant. Use $LIBS for mysql libraries, so that mysql appear after the +object files that depends on it. This fixes build failures like the following. + +/home/buildroot/build/instance-1/output/host/usr/bin/arm-linux-g++ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -static -I/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/mysql -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -DUNIV_LINUX -DUNIV_LINUX -static -static -rdynamic -L/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -o linknx linknx.o logger.o ruleserver.o objectcontroller.o eibclient.o threads.o timermanager.o persistentstorage.o xmlserver.o smsgateway.o emailgateway.o knxconnection.o services.o suncalc.o luacondition.o ioport.o ../ticpp/libticpp.a -L/home/buildroot/build/instance-1/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib -lpthsem -lm -largp +persistentstorage.o: In function `MysqlPersistentStorage::~MysqlPersistentStorage()': +persistentstorage.cpp:(.text+0x2c): undefined reference to `mysql_close' +persistentstorage.o: In function `MysqlPersistentStorage::MysqlPersistentStorage(ticpp::Element*)': +persistentstorage.cpp:(.text+0x518): undefined reference to `mysql_init' +persistentstorage.cpp:(.text+0x570): undefined reference to `mysql_options' +persistentstorage.cpp:(.text+0x5a8): undefined reference to `mysql_real_connect' +persistentstorage.cpp:(.text+0x5c0): undefined reference to `mysql_options' +persistentstorage.cpp:(.text+0x618): undefined reference to `mysql_error' +persistentstorage.cpp:(.text+0x6c0): undefined reference to `mysql_options' +persistentstorage.o: In function `MysqlPersistentStorage::write(std::string const&, std::string const&)': +persistentstorage.cpp:(.text+0xb70): undefined reference to `mysql_real_query' +persistentstorage.cpp:(.text+0xbcc): undefined reference to `mysql_error' +persistentstorage.o: In function `MysqlPersistentStorage::read(std::string const&, std::string const&)': +persistentstorage.cpp:(.text+0xd14): undefined reference to `mysql_real_query' +persistentstorage.cpp:(.text+0xd38): undefined reference to `mysql_store_result' +persistentstorage.cpp:(.text+0xd40): undefined reference to `mysql_num_rows' +persistentstorage.cpp:(.text+0xd50): undefined reference to `mysql_fetch_row' +persistentstorage.cpp:(.text+0xd68): undefined reference to `mysql_free_result' +persistentstorage.cpp:(.text+0xdc8): undefined reference to `mysql_error' +persistentstorage.o: In function `MysqlPersistentStorage::writelog(std::string const&, std::string const&)': +persistentstorage.cpp:(.text+0xf74): undefined reference to `mysql_real_query' +persistentstorage.cpp:(.text+0xfd0): undefined reference to `mysql_error' +collect2: error: ld returned 1 exit status + +Signed-off-by: Baruch Siach +--- +Patch status: sent to jef2000@users.sourceforge.net + +diff -Nuar linknx-0.0.1.32-orig/acinclude.m4 linknx-0.0.1.32/acinclude.m4 +--- linknx-0.0.1.32-orig/acinclude.m4 2011-01-09 16:47:32.000000000 +0200 ++++ linknx-0.0.1.32/acinclude.m4 2016-03-15 12:41:19.983861719 +0200 +@@ -36,7 +36,7 @@ + CFLAGS="$CFLAGS $ADDFLAGS" + CXXFLAGS="$CXXFLAGS $ADDFLAGS" + +- LDFLAGS="$LDFLAGS "`$MYSQL_CONFIG --libs_r` ++ LIBS="$LIBS "`$MYSQL_CONFIG --libs_r` + + AC_MSG_RESULT($MYSQL_CONFIG) + AC_DEFINE([HAVE_MYSQL], [1], [Build with MySQL support.]) diff --git a/bsp/buildroot/package/linknx/0002-src-suncalc.cpp-fix-build-with-gcc-6.x.patch b/bsp/buildroot/package/linknx/0002-src-suncalc.cpp-fix-build-with-gcc-6.x.patch new file mode 100644 index 00000000..d204a022 --- /dev/null +++ b/bsp/buildroot/package/linknx/0002-src-suncalc.cpp-fix-build-with-gcc-6.x.patch @@ -0,0 +1,42 @@ +From ff52cf04c6fa8b3352544447abf429bfa6000dc8 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 20 Aug 2016 12:13:04 +0200 +Subject: [PATCH] src/suncalc.cpp: fix build with gcc 6.x + +src/suncalc.cpp currently includes , but this causes a build +failure with gcc 6.x, and should be used instead. The build +failure is: + +/home/test/autobuild/run/instance-0/output/host/usr/arc-buildroot-linux-uclibc/include/c++/6.1.1/cmath:101:37: error: '__is_integer' was not declared in this scope + typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value, + ^~~~~~~~~~~~ + +Signed-off-by: Thomas Petazzoni +--- + src/suncalc.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/suncalc.cpp b/src/suncalc.cpp +index ea2366a..b553f96 100644 +--- a/src/suncalc.cpp ++++ b/src/suncalc.cpp +@@ -22,6 +22,8 @@ + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + ++#include ++ + #include "suncalc.h" + #include "services.h" + +@@ -44,7 +46,6 @@ Released to the public domain by Paul Schlyter, December 1992 + + + #include +-#include + #include + #include + #include +-- +2.7.4 + diff --git a/bsp/buildroot/package/linknx/Config.in b/bsp/buildroot/package/linknx/Config.in index 36838fed..e8583899 100644 --- a/bsp/buildroot/package/linknx/Config.in +++ b/bsp/buildroot/package/linknx/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_LINKNX bool "linknx" select BR2_PACKAGE_LIBPTHSEM + select BR2_PACKAGE_LIBCURL # for autoreconf select BR2_PACKAGE_ARGP_STANDALONE \ if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL depends on BR2_INSTALL_LIBSTDCPP @@ -10,6 +11,7 @@ config BR2_PACKAGE_LINKNX to EIB/KNX installation. http://linknx.sourceforge.net/ + https://github.com/linknx/linknx comment "linknx needs a toolchain w/ C++" depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/linknx/linknx.mk b/bsp/buildroot/package/linknx/linknx.mk index 7ecd947a..5dc8bb2d 100644 --- a/bsp/buildroot/package/linknx/linknx.mk +++ b/bsp/buildroot/package/linknx/linknx.mk @@ -8,14 +8,24 @@ LINKNX_VERSION = 0.0.1.32 LINKNX_SITE = http://downloads.sourceforge.net/project/linknx/linknx/linknx-$(LINKNX_VERSION) LINKNX_LICENSE = GPLv2+ LINKNX_INSTALL_STAGING = YES +# Patching acinclude.m4 +LINKNX_AUTORECONF = YES LINKNX_CONF_OPTS = \ --without-lua \ --without-log4cpp \ --without-pth-test \ --with-pth=$(STAGING_DIR)/usr \ - --disable-smtp + --disable-smtp \ + --with-libcurl=$(STAGING_DIR)/usr/bin/curl-config -LINKNX_DEPENDENCIES = libpthsem $(if $(BR2_PACKAGE_ARGP_STANDALONE),argp-standalone) +LINKNX_DEPENDENCIES = libpthsem libcurl \ + $(if $(BR2_PACKAGE_ARGP_STANDALONE),argp-standalone) + +# This is needed to make autoreconf happy +define LINKNX_CREATE_MISSING_FILES + touch $(@D)/NEWS $(@D)/AUTHORS $(@D)/README +endef +LINKNX_POST_EXTRACT_HOOKS += LINKNX_CREATE_MISSING_FILES ifeq ($(BR2_PACKAGE_MYSQL),y) LINKNX_CONF_OPTS += --with-mysql=$(STAGING_DIR)/usr/bin/mysql_config @@ -24,11 +34,4 @@ else LINKNX_CONF_OPTS += --without-mysql endif -ifeq ($(BR2_PACKAGE_LIBCURL),y) -LINKNX_CONF_OPTS += --with-libcurl=$(STAGING_DIR)/usr/bin/curl-config -LINKNX_DEPENDENCIES += libcurl -else -LINKNX_CONF_OPTS += --without-libcurl -endif - $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/links/links.mk b/bsp/buildroot/package/links/links.mk index 62f91a32..ab2b5835 100644 --- a/bsp/buildroot/package/links/links.mk +++ b/bsp/buildroot/package/links/links.mk @@ -22,6 +22,9 @@ LINKS_CONF_OPTS += --without-x endif ifeq ($(BR2_PACKAGE_DIRECTFB),y) LINKS_CONF_ENV = ac_cv_path_DIRECTFB_CONFIG=$(STAGING_DIR)/usr/bin/directfb-config +ifeq ($(BR2_STATIC_LIBS),y) +LINKS_CONF_ENV += LIBS=-lstdc++ +endif LINKS_CONF_OPTS += --with-directfb LINKS_DEPENDENCIES += directfb else diff --git a/bsp/buildroot/package/linphone/Config.in b/bsp/buildroot/package/linphone/Config.in index 6d6ffaec..2622aa4f 100644 --- a/bsp/buildroot/package/linphone/Config.in +++ b/bsp/buildroot/package/linphone/Config.in @@ -2,10 +2,8 @@ config BR2_PACKAGE_LINPHONE bool "linphone" select BR2_PACKAGE_LIBEXOSIP2 select BR2_PACKAGE_SPEEX - select BR2_PACKAGE_ORTP - select BR2_PACKAGE_MEDIASTREAMER - depends on BR2_INSTALL_LIBSTDCPP # mediastreamer - depends on BR2_TOOLCHAIN_HAS_THREADS # ortp + depends on BR2_INSTALL_LIBSTDCPP # mediastreamer (bundled) + depends on BR2_TOOLCHAIN_HAS_THREADS # ortp (bundled) depends on BR2_USE_MMU # libeXosip2 help Linphone is an internet phone or Voice Over IP phone (VoIP). diff --git a/bsp/buildroot/package/linphone/linphone.hash b/bsp/buildroot/package/linphone/linphone.hash index 9ed9d37f..2e202cf1 100644 --- a/bsp/buildroot/package/linphone/linphone.hash +++ b/bsp/buildroot/package/linphone/linphone.hash @@ -1,2 +1,6 @@ # Locally calculated after checking pgp signature sha256 05ba81223e9378c3bce8d33080213b9925af49bd9623cd9004eb3dd22ca9d2a0 linphone-3.6.1.tar.gz +sha256 bc4ef670c0ecc1bb60bcb79374309b555c11d154bacfa363d809a26a58780933 libav9.patch +sha256 a50a8ac2caedb389c224f81393901a029fec055ec2ec83aa18d677e1bfe7fc73 libav10.patch +sha256 e384775c12ea93d3bc35dccfe4ea875c38b74be8af63fcb82e6b7f06e93d1593 libav11.patch +sha256 3367a26f65f49f4101787b1821402127d29cde9b02d3873112a5001a549cc7d9 ffmpeg_2.9.patch diff --git a/bsp/buildroot/package/linphone/linphone.mk b/bsp/buildroot/package/linphone/linphone.mk index e0d4fa33..df804907 100644 --- a/bsp/buildroot/package/linphone/linphone.mk +++ b/bsp/buildroot/package/linphone/linphone.mk @@ -8,15 +8,18 @@ LINPHONE_VERSION_MAJOR = 3.6 LINPHONE_VERSION = $(LINPHONE_VERSION_MAJOR).1 LINPHONE_SITE = http://download-mirror.savannah.gnu.org/releases/linphone/$(LINPHONE_VERSION_MAJOR).x/sources LINPHONE_CONF_OPTS = \ - --enable-external-ortp \ - --enable-external-mediastreamer \ - --disable-strict + --disable-strict --disable-video # configure is out of sync causing deplibs linking issues LINPHONE_AUTORECONF = YES LINPHONE_INSTALL_STAGING = YES -LINPHONE_DEPENDENCIES = host-pkgconf ortp mediastreamer libeXosip2 speex +LINPHONE_DEPENDENCIES = host-pkgconf libeXosip2 speex LINPHONE_LICENSE = GPLv2+ LINPHONE_LICENSE_FILES = COPYING +LINPHONE_PATCH = \ + https://sources.debian.net/data/main/l/linphone/3.6.1-2.5/debian/patches/libav9.patch \ + https://sources.debian.net/data/main/l/linphone/3.6.1-2.5/debian/patches/libav10.patch \ + https://sources.debian.net/data/main/l/linphone/3.6.1-2.5/debian/patches/libav11.patch \ + https://sources.debian.net/data/main/l/linphone/3.6.1-2.5/debian/patches/ffmpeg_2.9.patch ifeq ($(BR2_arc),y) # toolchain __arc__ define conflicts with libosip2 source @@ -30,4 +33,21 @@ else LINPHONE_CONF_OPTS += --disable-gtk_ui endif +# needed for bundled mediastreamer2 +LINPHONE_DEPENDENCIES += host-intltool host-gettext + +ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER)$(BR2_PACKAGE_ALSA_LIB_PCM),yy) +LINPHONE_CONF_OPTS += --enable-alsa +LINPHONE_DEPENDENCIES += alsa-lib +else +LINPHONE_CONF_OPTS += --disable-alsa +endif + +ifeq ($(BR2_PACKAGE_LIBV4L),y) +LINPHONE_CONF_OPTS += --enable-libv4l1 --enable-libv4l2 +LINPHONE_DEPENDENCIES += libv4l +else +LINPHONE_CONF_OPTS += --disable-libv4l1 --disable-libv4l2 +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/linux-backports/linux-backports.hash b/bsp/buildroot/package/linux-backports/linux-backports.hash index 0d410678..38f39b98 100644 --- a/bsp/buildroot/package/linux-backports/linux-backports.hash +++ b/bsp/buildroot/package/linux-backports/linux-backports.hash @@ -1,2 +1,2 @@ -# From: https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.1.1/sha256sums.asc -sha256 7fca160665b801796ce50def18f2fd6def1c4452290e93ec5332444fb2021bd6 backports-4.1.1-1.tar.xz +# From: https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.4.2/sha256sums.asc +sha256 a979e194c2ed9fdfca092a448e626d85c5af0e4de5ad993c0967afd15af01285 backports-4.4.2-1.tar.xz diff --git a/bsp/buildroot/package/linux-backports/linux-backports.mk b/bsp/buildroot/package/linux-backports/linux-backports.mk index 44ac7e7b..58cd50f2 100644 --- a/bsp/buildroot/package/linux-backports/linux-backports.mk +++ b/bsp/buildroot/package/linux-backports/linux-backports.mk @@ -4,7 +4,7 @@ # ################################################################################ -LINUX_BACKPORTS_VERSION_MAJOR = 4.1.1 +LINUX_BACKPORTS_VERSION_MAJOR = 4.4.2 LINUX_BACKPORTS_VERSION = $(LINUX_BACKPORTS_VERSION_MAJOR)-1 LINUX_BACKPORTS_SOURCE = backports-$(LINUX_BACKPORTS_VERSION).tar.xz LINUX_BACKPORTS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/projects/backports/stable/v$(LINUX_BACKPORTS_VERSION_MAJOR) diff --git a/bsp/buildroot/package/linux-firmware/Config.in b/bsp/buildroot/package/linux-firmware/Config.in index d8389864..f56f31df 100644 --- a/bsp/buildroot/package/linux-firmware/Config.in +++ b/bsp/buildroot/package/linux-firmware/Config.in @@ -70,11 +70,16 @@ config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160 bool "Intel iwlwifi 3160" - select BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_NEED_REV help Firmware files for the Intel Wifi 3160 devices supported by the iwlwifi kernel driver. +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168 + bool "Intel iwlwifi 3168" + help + Firmware files for the Intel Wifi 3168 devices supported by + the iwlwifi kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000 bool "Intel iwlwifi 5000" help @@ -87,57 +92,44 @@ config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A Firmware files for the Intel Wifi 6000G2A devices supported by the iwlwifi kernel driver. +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B + bool "Intel iwlwifi 6000G2B" + help + Firmware files for the Intel Wifi 6000G2B devices supported by + the iwlwifi kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260 bool "Intel iwlwifi 7260" - select BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_NEED_REV help Firmware files for the Intel Wifi 7260 devices supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265 bool "Intel iwlwifi 7265" - select BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_NEED_REV help Firmware files for the Intel Wifi 7265 devices supported by the iwlwifi kernel driver. -config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_NEED_REV - bool - -if BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_NEED_REV - -choice - bool "iwlwifi 3160/726x revision to use" +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D + bool "Intel iwlwifi 7265D" + # needed for old kernel versions, where the non-D and D + # firmwares were the same + select BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265 help - Use revision 7 for kernel 3.10 to 3.12. - Use revision 8 for kernel 3.13 to 3.15. - Use revision 9 for kernel 3.16 onward. + Firmware files for the Intel Wifi 7265D devices supported by + the iwlwifi kernel driver. -config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV_7 - prompt "revision 7" - depends on !BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265 +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C + bool "Intel iwlwifi 8000C" help - Use revision 7 for kernel 3.10 to 3.12. + Firmware files for the Intel Wifi 8000C devices supported by + the iwlwifi kernel driver. -config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV_8 - prompt "revision 8" +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265 + bool "Intel iwlwifi 8265" help - Use revision 8 for kernel 3.13 to 3.15. - -config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV_9 - prompt "revision 9" - help - Use revision 9 for kernel 3.16 onward. - -endchoice - -config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV - int - default 7 if BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV_7 - default 8 if BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV_8 - default 9 if BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV_9 - -endif # iwlwifi 3160/7260 + Firmware files for the Intel Wifi 8265 devices supported by + the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8 bool "Libertas SD 8686 v8" @@ -189,6 +181,11 @@ config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897 help Firmware files for the Marvell Wifi-Ex 8897 module on PCI-E. +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U + bool "MediaTek MT7601U" + help + MediaTek MT7601U + config BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61 bool "Ralink rt2501/rt61" help diff --git a/bsp/buildroot/package/linux-firmware/linux-firmware.mk b/bsp/buildroot/package/linux-firmware/linux-firmware.mk index 083a381e..14018487 100644 --- a/bsp/buildroot/package/linux-firmware/linux-firmware.mk +++ b/bsp/buildroot/package/linux-firmware/linux-firmware.mk @@ -4,7 +4,7 @@ # ################################################################################ -LINUX_FIRMWARE_VERSION = bbe4917c054eb0a73e250c6363341e3bf6725839 +LINUX_FIRMWARE_VERSION = b0668886def608d352cd0263a7ef04e64e25574a LINUX_FIRMWARE_SITE = http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git LINUX_FIRMWARE_SITE_METHOD = git @@ -87,7 +87,7 @@ endif # ar7010 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010),y) -LINUX_FIRMWARE_FILES += ar7010.fw ar7010_1_1.fw htc_7010.fw +LINUX_FIRMWARE_FILES += ar7010.fw ar7010_1_1.fw htc_7010.fw ath9k_htc/htc_7010-1.4.0.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif @@ -99,7 +99,7 @@ endif # ar9271 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271),y) -LINUX_FIRMWARE_FILES += ar9271.fw htc_9271.fw +LINUX_FIRMWARE_FILES += ar9271.fw htc_9271.fw ath9k_htc/htc_9271-1.4.0.fw LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif @@ -165,6 +165,12 @@ LINUX_FIRMWARE_FILES += mrvl/pcie8897_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif +# MT7601 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U),y) +LINUX_FIRMWARE_FILES += mt7601u.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware +endif + # wl127x ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X),y) # wl1271-nvs.bin is a symlink to wl127x-nvs.bin @@ -223,7 +229,12 @@ LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y) -LINUX_FIRMWARE_FILES += iwlwifi-3160-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV).ucode +LINUX_FIRMWARE_FILES += iwlwifi-3160-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168),y) +LINUX_FIRMWARE_FILES += iwlwifi-3168-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif @@ -241,13 +252,33 @@ LINUX_FIRMWARE_FILES += iwlwifi-6000g2a-6.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B),y) +LINUX_FIRMWARE_FILES += iwlwifi-6000g2b-6.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260),y) -LINUX_FIRMWARE_FILES += iwlwifi-7260-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV).ucode +LINUX_FIRMWARE_FILES += iwlwifi-7260-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265),y) -LINUX_FIRMWARE_FILES += iwlwifi-7265-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV).ucode +LINUX_FIRMWARE_FILES += iwlwifi-7265-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D),y) +LINUX_FIRMWARE_FILES += iwlwifi-7265D-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C),y) +LINUX_FIRMWARE_FILES += iwlwifi-8000C-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265),y) +LINUX_FIRMWARE_FILES += iwlwifi-8265-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif @@ -350,7 +381,8 @@ endif ifneq ($(LINUX_FIRMWARE_FILES),) define LINUX_FIRMWARE_INSTALL_FILES - $(TAR) c -C $(@D) $(sort $(LINUX_FIRMWARE_FILES)) | \ + cd $(@D) ; \ + $(TAR) c $(sort $(LINUX_FIRMWARE_FILES)) | \ $(TAR) x -C $(TARGET_DIR)/lib/firmware endef endif diff --git a/bsp/buildroot/package/linux-headers/Config.in.host b/bsp/buildroot/package/linux-headers/Config.in.host index d6cb2383..f3a99e53 100644 --- a/bsp/buildroot/package/linux-headers/Config.in.host +++ b/bsp/buildroot/package/linux-headers/Config.in.host @@ -6,14 +6,24 @@ comment "Kernel Header Options" choice prompt "Kernel Headers" default BR2_KERNEL_HEADERS_AS_KERNEL if BR2_LINUX_KERNEL - default BR2_KERNEL_HEADERS_4_4 + default BR2_KERNEL_HEADERS_4_7 help - Select the version of kernel header files you wish to use. - You must select the correct set of header files to match - the kernel you intend to use on your target system. + Select the kernel version to get headers from. + + The kernel headers must be at least as old as the oldest kernel + you intend to run on your target. + + If you use Buildroot to build a kernel, then you can use + the sources from that kernel as source for the headers. + + If you choose a custom version of the kernel headers, or choose + to use the same sources as the kernel, you'll have to select + (below) the series of that kernel, so that Buildroot can show + or hide packages that have strong requirements on the kernel + headers. config BR2_KERNEL_HEADERS_AS_KERNEL - bool "Same as kernel" + bool "Same as kernel being built" depends on BR2_LINUX_KERNEL config BR2_KERNEL_HEADERS_3_2 @@ -41,12 +51,6 @@ choice depends on !BR2_nios2 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 - config BR2_KERNEL_HEADERS_3_17 - bool "Linux 3.17.x kernel headers" - depends on BR2_DEPRECATED_SINCE_2015_05 - depends on !BR2_nios2 - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 - config BR2_KERNEL_HEADERS_3_18 bool "Linux 3.18.x kernel headers" depends on !BR2_nios2 @@ -73,12 +77,25 @@ choice config BR2_KERNEL_HEADERS_4_3 bool "Linux 4.3.x kernel headers" + depends on BR2_DEPRECATED_SINCE_2016_05 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 config BR2_KERNEL_HEADERS_4_4 bool "Linux 4.4.x kernel headers" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 + config BR2_KERNEL_HEADERS_4_5 + bool "Linux 4.5.x kernel headers" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 + + config BR2_KERNEL_HEADERS_4_6 + bool "Linux 4.6.x kernel headers" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 + + config BR2_KERNEL_HEADERS_4_7 + bool "Linux 4.7.x kernel headers" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 + config BR2_KERNEL_HEADERS_VERSION bool "Manually specified Linux version" endchoice @@ -93,13 +110,24 @@ config BR2_DEFAULT_KERNEL_VERSION choice bool "Custom kernel headers series" depends on BR2_KERNEL_HEADERS_VERSION || BR2_KERNEL_HEADERS_AS_KERNEL - default BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD help - Set to the kernel headers series you manually set above. + Specify the kernel headers series you manually selected, above. This is used to hide/show some packages that have strict requirements on the version of kernel headers. +config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_7 + bool "4.7.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 + +config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6 + bool "4.6.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 + +config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5 + bool "4.5.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 + config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_4 bool "4.4.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 @@ -207,17 +235,19 @@ endchoice config BR2_DEFAULT_KERNEL_HEADERS string - default "3.2.78" if BR2_KERNEL_HEADERS_3_2 - default "3.4.110" if BR2_KERNEL_HEADERS_3_4 - default "3.10.98" if BR2_KERNEL_HEADERS_3_10 - default "3.12.55" if BR2_KERNEL_HEADERS_3_12 - default "3.14.62" if BR2_KERNEL_HEADERS_3_14 - default "3.17.8" if BR2_KERNEL_HEADERS_3_17 - default "3.18.27" if BR2_KERNEL_HEADERS_3_18 + default "3.2.81" if BR2_KERNEL_HEADERS_3_2 + default "3.4.112" if BR2_KERNEL_HEADERS_3_4 + default "3.10.103" if BR2_KERNEL_HEADERS_3_10 + default "3.12.62" if BR2_KERNEL_HEADERS_3_12 + default "3.14.77" if BR2_KERNEL_HEADERS_3_14 + default "3.18.40" if BR2_KERNEL_HEADERS_3_18 default "3.19.8" if BR2_KERNEL_HEADERS_3_19 default "4.0.9" if BR2_KERNEL_HEADERS_4_0 - default "4.1.18" if BR2_KERNEL_HEADERS_4_1 + default "4.1.31" if BR2_KERNEL_HEADERS_4_1 default "4.2.8" if BR2_KERNEL_HEADERS_4_2 default "4.3.6" if BR2_KERNEL_HEADERS_4_3 - default "4.4.3" if BR2_KERNEL_HEADERS_4_4 + default "4.4.19" if BR2_KERNEL_HEADERS_4_4 + default "4.5.7" if BR2_KERNEL_HEADERS_4_5 + default "4.6.7" if BR2_KERNEL_HEADERS_4_6 + default "4.7.2" if BR2_KERNEL_HEADERS_4_7 default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION diff --git a/bsp/buildroot/package/linux-pam/0001-configure.patch b/bsp/buildroot/package/linux-pam/0001-configure.patch deleted file mode 100644 index d39261f7..00000000 --- a/bsp/buildroot/package/linux-pam/0001-configure.patch +++ /dev/null @@ -1,19 +0,0 @@ -Add check for ruserok - -ruserok is not available/functional in uclibc, provide conditions for compilation -where needed. - -Signed-off-by: Dmitry Golubovsky - -diff -urN a/configure.in b/configure.in ---- a/configure.in 2012-08-17 03:48:24.000000000 -0500 -+++ b/configure.in 2013-07-17 09:49:23.760254684 -0500 -@@ -526,7 +526,7 @@ - AC_CHECK_FUNCS(strcspn strdup strspn strstr strtol uname) - AC_CHECK_FUNCS(getutent_r getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r) - AC_CHECK_FUNCS(getgrouplist getline getdelim) --AC_CHECK_FUNCS(inet_ntop inet_pton innetgr ruserok_af) -+AC_CHECK_FUNCS(inet_ntop inet_pton innetgr ruserok_af ruserok) - - AC_CHECK_FUNCS(unshare, [UNSHARE=yes], [UNSHARE=no]) - AM_CONDITIONAL([HAVE_UNSHARE], [test "$UNSHARE" = yes]) diff --git a/bsp/buildroot/package/linux-pam/0002-doc-makefile-am.patch b/bsp/buildroot/package/linux-pam/0001-doc-makefile-am.patch similarity index 91% rename from bsp/buildroot/package/linux-pam/0002-doc-makefile-am.patch rename to bsp/buildroot/package/linux-pam/0001-doc-makefile-am.patch index 8fa2dda2..ac3ff2b2 100644 --- a/bsp/buildroot/package/linux-pam/0002-doc-makefile-am.patch +++ b/bsp/buildroot/package/linux-pam/0001-doc-makefile-am.patch @@ -3,6 +3,9 @@ Disable generation of documentation Generation of documentation is not necessary in Buildroot, disable it completely. Signed-off-by: Dmitry Golubovsky +Signed-off-by: Brendan Heading + +Upstream-status: inappropriate diff -urN a/doc/Makefile.am b/doc/Makefile.am --- a/doc/Makefile.am 2012-08-15 06:08:43.000000000 -0500 diff --git a/bsp/buildroot/package/linux-pam/0002-Conditionally-compile-per-ruserok-availability.patch b/bsp/buildroot/package/linux-pam/0002-Conditionally-compile-per-ruserok-availability.patch new file mode 100644 index 00000000..cec642d8 --- /dev/null +++ b/bsp/buildroot/package/linux-pam/0002-Conditionally-compile-per-ruserok-availability.patch @@ -0,0 +1,49 @@ +ruserok is not available/functional in uclibc, provide conditions +for compilation where needed. + +Patch originally by Dmitry Golubovsky - +porting to linux-pam 1.2.1. + +Signed-off-by: Brendan Heading + +Upstream-status: pending + +--- + configure.ac | 2 +- + modules/pam_rhosts/pam_rhosts.c | 6 +++++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 08e4530..fd2fd23 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -542,7 +542,7 @@ AC_CHECK_FUNCS(fseeko getdomainname gethostname gettimeofday lckpwdf mkdir selec + AC_CHECK_FUNCS(strcspn strdup strspn strstr strtol uname) + AC_CHECK_FUNCS(getutent_r getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r) + AC_CHECK_FUNCS(getgrouplist getline getdelim) +-AC_CHECK_FUNCS(inet_ntop inet_pton innetgr ruserok_af) ++AC_CHECK_FUNCS(inet_ntop inet_pton innetgr ruserok_af ruserok) + + AC_CHECK_FUNCS(unshare, [UNSHARE=yes], [UNSHARE=no]) + AM_CONDITIONAL([HAVE_UNSHARE], [test "$UNSHARE" = yes]) +diff --git a/modules/pam_rhosts/pam_rhosts.c b/modules/pam_rhosts/pam_rhosts.c +index bc9e76f..909db29 100644 +--- a/modules/pam_rhosts/pam_rhosts.c ++++ b/modules/pam_rhosts/pam_rhosts.c +@@ -114,8 +114,12 @@ int pam_sm_authenticate (pam_handle_t *pamh, int flags, int argc, + #ifdef HAVE_RUSEROK_AF + retval = ruserok_af (rhost, as_root, ruser, luser, PF_UNSPEC); + #else ++ #ifdef HAVE_RUSEROK + retval = ruserok (rhost, as_root, ruser, luser); +-#endif ++ #else ++ retval = -1; ++ #endif /* HAVE_RUSEROK */ ++#endif /*HAVE_RUSEROK_AF */ + if (retval != 0) { + if (!opt_silent || opt_debug) + pam_syslog(pamh, LOG_WARNING, "denied access to %s@%s as %s", +-- +2.4.3 + diff --git a/bsp/buildroot/package/linux-pam/0003-Conditionally-compile-per-innetgr-availability.patch b/bsp/buildroot/package/linux-pam/0003-Conditionally-compile-per-innetgr-availability.patch new file mode 100644 index 00000000..4b516fa9 --- /dev/null +++ b/bsp/buildroot/package/linux-pam/0003-Conditionally-compile-per-innetgr-availability.patch @@ -0,0 +1,84 @@ +innetgr is not available/functional in uclibc, provide conditions for +compilation. + +Patch originally by Dmitry Golubovsky - porting +to linux-pam 1.2.1. + +Signed-off-by: Brendan Heading + +Upstream-status: pending + +--- + modules/pam_group/pam_group.c | 8 +++++++- + modules/pam_succeed_if/pam_succeed_if.c | 4 ++++ + modules/pam_time/pam_time.c | 8 +++++++- + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/modules/pam_group/pam_group.c b/modules/pam_group/pam_group.c +index be5f20f..0982de8 100644 +--- a/modules/pam_group/pam_group.c ++++ b/modules/pam_group/pam_group.c +@@ -655,8 +655,14 @@ static int check_account(pam_handle_t *pamh, const char *service, + continue; + } + /* If buffer starts with @, we are using netgroups */ +- if (buffer[0] == '@') ++ if (buffer[0] == '@') { ++#ifdef HAVE_INNETGR + good &= innetgr (&buffer[1], NULL, user, NULL); ++#else ++ good = 0; ++ pam_syslog (pamh, LOG_ERR, "pam_group does not have netgroup support"); ++#endif /* HAVE_INNETGR */ ++ } + /* otherwise, if the buffer starts with %, it's a UNIX group */ + else if (buffer[0] == '%') + good &= pam_modutil_user_in_group_nam_nam(pamh, user, &buffer[1]); +diff --git a/modules/pam_succeed_if/pam_succeed_if.c b/modules/pam_succeed_if/pam_succeed_if.c +index aa828fc..c09d669 100644 +--- a/modules/pam_succeed_if/pam_succeed_if.c ++++ b/modules/pam_succeed_if/pam_succeed_if.c +@@ -233,16 +233,20 @@ evaluate_notingroup(pam_handle_t *pamh, const char *user, const char *group) + static int + evaluate_innetgr(const char *host, const char *user, const char *group) + { ++#ifdef HAVE_INNETGR + if (innetgr(group, host, user, NULL) == 1) + return PAM_SUCCESS; ++#endif /* HAVE_INNETGR */ + return PAM_AUTH_ERR; + } + /* Return PAM_SUCCESS if the (host,user) is NOT in the netgroup. */ + static int + evaluate_notinnetgr(const char *host, const char *user, const char *group) + { ++#ifdef HAVE_INNETGR + if (innetgr(group, host, user, NULL) == 0) + return PAM_SUCCESS; ++#endif /* HAVE_INNETGR */ + return PAM_AUTH_ERR; + } + +diff --git a/modules/pam_time/pam_time.c b/modules/pam_time/pam_time.c +index c94737c..4898fd2 100644 +--- a/modules/pam_time/pam_time.c ++++ b/modules/pam_time/pam_time.c +@@ -554,8 +554,14 @@ check_account(pam_handle_t *pamh, const char *service, + continue; + } + /* If buffer starts with @, we are using netgroups */ +- if (buffer[0] == '@') ++ if (buffer[0] == '@') { ++#ifdef HAVE_INNETGR + good &= innetgr (&buffer[1], NULL, user, NULL); ++#else ++ good = 0; ++ pam_syslog (pamh, LOG_ERR, "pam_time does not have netgroup support"); ++#endif /* HAVE_INNETGR */ ++ } + else + good &= logic_field(pamh, user, buffer, count, is_same); + D(("with user: %s", good ? "passes":"fails" )); +-- +2.4.3 + diff --git a/bsp/buildroot/package/linux-pam/0003-group.patch b/bsp/buildroot/package/linux-pam/0003-group.patch deleted file mode 100644 index a94cf9e3..00000000 --- a/bsp/buildroot/package/linux-pam/0003-group.patch +++ /dev/null @@ -1,26 +0,0 @@ -Conditionally compile per innetgr availability - -innetgr is not available/functional in uclibc, provide conditions for compilation. - -Signed-off-by: Dmitry Golubovsky - -Index: linux-pam-1.1.4/modules/pam_group/pam_group.c -============================================================================ ---- linux-pam-1.1.4/modules/pam_group/pam_group.c 2011-06-21 05:04:56.000000000 -0400 -+++ linux-pam-1.1.4/modules/pam_group/pam_group.c 2012-08-09 21:35:06.000000000 -0400 -@@ -655,8 +655,14 @@ - continue; - } - /* If buffer starts with @, we are using netgroups */ -- if (buffer[0] == '@') -+ if (buffer[0] == '@') { -+#ifdef HAVE_INNETGR - good &= innetgr (&buffer[1], NULL, user, NULL); -+#else -+ good = 0; -+ pam_syslog (pamh, LOG_ERR, "pam_group does not have netgroup support"); -+#endif /* HAVE_INNETGR */ -+ } - /* otherwise, if the buffer starts with %, it's a UNIX group */ - else if (buffer[0] == '%') - good &= pam_modutil_user_in_group_nam_nam(pamh, user, &buffer[1]); diff --git a/bsp/buildroot/package/linux-pam/0004-mkdir.patch b/bsp/buildroot/package/linux-pam/0004-mkdir.patch deleted file mode 100644 index 00056daf..00000000 --- a/bsp/buildroot/package/linux-pam/0004-mkdir.patch +++ /dev/null @@ -1,17 +0,0 @@ -$(mkdir_p) is obsolete for newer automake, use $(MKDIR_P) instead. -Upstream should really gettextize with a newer version before packing up. - -Signed-off-by: Gustavo Zacarias - -diff -Nura Linux-PAM-1.1.7.orig/po/Makefile.in.in Linux-PAM-1.1.7/po/Makefile.in.in ---- Linux-PAM-1.1.7.orig/po/Makefile.in.in 2013-09-11 20:45:16.610770002 -0300 -+++ Linux-PAM-1.1.7/po/Makefile.in.in 2013-09-11 20:45:28.030145316 -0300 -@@ -31,7 +31,7 @@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - mkinstalldirs = $(SHELL) @install_sh@ -d --mkdir_p = @mkdir_p@ -+mkdir_p = @MKDIR_P@ - - GMSGFMT_ = @GMSGFMT@ - GMSGFMT_no = @GMSGFMT@ diff --git a/bsp/buildroot/package/linux-pam/0005-succeed.patch b/bsp/buildroot/package/linux-pam/0005-succeed.patch deleted file mode 100644 index 8a675efa..00000000 --- a/bsp/buildroot/package/linux-pam/0005-succeed.patch +++ /dev/null @@ -1,31 +0,0 @@ -Conditionally compile per innetgr availability - -innetgr is not available/functional in uclibc, provide conditions for compilation. - -Signed-off-by: Dmitry Golubovsky - -Index: linux-pam-1.1.4/modules/pam_succeed_if/pam_succeed_if.c -============================================================================ ---- linux-pam-1.1.4/modules/pam_succeed_if/pam_succeed_if.c 2011-06-21 05:04:56.000000000 -0400 -+++ linux-pam-1.1.4/modules/pam_succeed_if/pam_succeed_if.c 2012-08-09 21:05:02.000000000 -0400 -@@ -233,16 +233,20 @@ - static int - evaluate_innetgr(const char *host, const char *user, const char *group) - { -+#ifdef HAVE_INNETGR - if (innetgr(group, host, user, NULL) == 1) - return PAM_SUCCESS; -+#endif /* HAVE_INNETGR */ - return PAM_AUTH_ERR; - } - /* Return PAM_SUCCESS if the (host,user) is NOT in the netgroup. */ - static int - evaluate_notinnetgr(const char *host, const char *user, const char *group) - { -+#ifdef HAVE_INNETGR - if (innetgr(group, host, user, NULL) == 0) - return PAM_SUCCESS; -+#endif /* HAVE_INNETGR */ - return PAM_AUTH_ERR; - } - diff --git a/bsp/buildroot/package/linux-pam/0006-time.patch b/bsp/buildroot/package/linux-pam/0006-time.patch deleted file mode 100644 index 58d7c9f0..00000000 --- a/bsp/buildroot/package/linux-pam/0006-time.patch +++ /dev/null @@ -1,26 +0,0 @@ -Conditionally compile per innetgr availability - -innetgr is not available/functional in uclibc, provide conditions for compilation. - -Signed-off-by: Dmitry Golubovsky - -Index: linux-pam-1.1.4/modules/pam_time/pam_time.c -============================================================================ ---- linux-pam-1.1.4/modules/pam_time/pam_time.c 2011-06-21 05:04:56.000000000 -0400 -+++ linux-pam-1.1.4/modules/pam_time/pam_time.c 2012-08-09 21:02:29.000000000 -0400 -@@ -554,8 +554,14 @@ - continue; - } - /* If buffer starts with @, we are using netgroups */ -- if (buffer[0] == '@') -+ if (buffer[0] == '@') { -+#ifdef HAVE_INNETGR - good &= innetgr (&buffer[1], NULL, user, NULL); -+#else -+ good = 0; -+ pam_syslog (pamh, LOG_ERR, "pam_time does not have netgroup support"); -+#endif /* HAVE_INNETGR */ -+ } - else - good &= logic_field(pamh, user, buffer, count, is_same); - D(("with user: %s", good ? "passes":"fails" )); diff --git a/bsp/buildroot/package/linux-pam/0007-rhosts.patch b/bsp/buildroot/package/linux-pam/0007-rhosts.patch deleted file mode 100644 index 58f9adbb..00000000 --- a/bsp/buildroot/package/linux-pam/0007-rhosts.patch +++ /dev/null @@ -1,24 +0,0 @@ -Conditionally compile per ruserok availability - -ruserok is not available/functional in uclibc, provide conditions for compilation. - -Signed-off-by: Dmitry Golubovsky - -Index: linux-pam-1.1.4/modules/pam_rhosts/pam_rhosts.c -============================================================================ ---- linux-pam-1.1.4/modules/pam_rhosts/pam_rhosts.c 2011-06-21 05:04:56.000000000 -0400 -+++ linux-pam-1.1.4/modules/pam_rhosts/pam_rhosts.c 2012-08-09 21:19:34.000000000 -0400 -@@ -114,8 +114,12 @@ - #ifdef HAVE_RUSEROK_AF - retval = ruserok_af (rhost, as_root, ruser, luser, PF_UNSPEC); - #else -+ #ifdef HAVE_RUSEROK - retval = ruserok (rhost, as_root, ruser, luser); --#endif -+ #else -+ retval = -1; -+ #endif /* HAVE_RUSEROK */ -+#endif /*HAVE_RUSEROK_AF */ - if (retval != 0) { - if (!opt_silent || opt_debug) - pam_syslog(pamh, LOG_WARNING, "denied access to %s@%s as %s", diff --git a/bsp/buildroot/package/linux-pam/0008-fix-CVE-2014-2583.patch b/bsp/buildroot/package/linux-pam/0008-fix-CVE-2014-2583.patch deleted file mode 100644 index a8b5f7bb..00000000 --- a/bsp/buildroot/package/linux-pam/0008-fix-CVE-2014-2583.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 9dcead87e6d7f66d34e7a56d11a30daca367dffb Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Wed, 26 Mar 2014 22:17:23 +0000 -Subject: pam_timestamp: fix potential directory traversal issue (ticket #27) - -pam_timestamp uses values of PAM_RUSER and PAM_TTY as components of -the timestamp pathname it creates, so extra care should be taken to -avoid potential directory traversal issues. - -* modules/pam_timestamp/pam_timestamp.c (check_tty): Treat -"." and ".." tty values as invalid. -(get_ruser): Treat "." and ".." ruser values, as well as any ruser -value containing '/', as invalid. - -Fixes CVE-2014-2583. - -Reported-by: Sebastian Krahmer -Signed-off-by: Gustavo Zacarias - -diff --git a/modules/pam_timestamp/pam_timestamp.c b/modules/pam_timestamp/pam_timestamp.c -index 5193733..b3f08b1 100644 ---- a/modules/pam_timestamp/pam_timestamp.c -+++ b/modules/pam_timestamp/pam_timestamp.c -@@ -158,7 +158,7 @@ check_tty(const char *tty) - tty = strrchr(tty, '/') + 1; - } - /* Make sure the tty wasn't actually a directory (no basename). */ -- if (strlen(tty) == 0) { -+ if (!strlen(tty) || !strcmp(tty, ".") || !strcmp(tty, "..")) { - return NULL; - } - return tty; -@@ -243,6 +243,17 @@ get_ruser(pam_handle_t *pamh, char *ruserbuf, size_t ruserbuflen) - if (pwd != NULL) { - ruser = pwd->pw_name; - } -+ } else { -+ /* -+ * This ruser is used by format_timestamp_name as a component -+ * of constructed timestamp pathname, so ".", "..", and '/' -+ * are disallowed to avoid potential path traversal issues. -+ */ -+ if (!strcmp(ruser, ".") || -+ !strcmp(ruser, "..") || -+ strchr(ruser, '/')) { -+ ruser = NULL; -+ } - } - if (ruser == NULL || strlen(ruser) >= ruserbuflen) { - *ruserbuf = '\0'; --- -cgit v0.10.2 - diff --git a/bsp/buildroot/package/linux-pam/0009-fix-CVE-2013-7041.patch b/bsp/buildroot/package/linux-pam/0009-fix-CVE-2013-7041.patch deleted file mode 100644 index ed588073..00000000 --- a/bsp/buildroot/package/linux-pam/0009-fix-CVE-2013-7041.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 57a1e2b274d0a6376d92ada9926e5c5741e7da20 Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -Date: Fri, 24 Jan 2014 22:18:32 +0000 -Subject: pam_userdb: fix password hash comparison - -Starting with commit Linux-PAM-0-77-28-g0b3e583 that introduced hashed -passwords support in pam_userdb, hashes are compared case-insensitively. -This bug leads to accepting hashes for completely different passwords in -addition to those that should be accepted. - -Additionally, commit Linux-PAM-1_1_6-13-ge2a8187 that added support for -modern password hashes with different lengths and settings, did not -update the hash comparison accordingly, which leads to accepting -computed hashes longer than stored hashes when the latter is a prefix -of the former. - -* modules/pam_userdb/pam_userdb.c (user_lookup): Reject the computed -hash whose length differs from the stored hash length. -Compare computed and stored hashes case-sensitively. -Fixes CVE-2013-7041. - -Bug-Debian: http://bugs.debian.org/731368 -Signed-off-by: Gustavo Zacarias - -diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c -index de8b5b1..ff040e6 100644 ---- a/modules/pam_userdb/pam_userdb.c -+++ b/modules/pam_userdb/pam_userdb.c -@@ -222,12 +222,15 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, - } else { - cryptpw = crypt (pass, data.dptr); - -- if (cryptpw) { -- compare = strncasecmp (data.dptr, cryptpw, data.dsize); -+ if (cryptpw && strlen(cryptpw) == (size_t)data.dsize) { -+ compare = memcmp(data.dptr, cryptpw, data.dsize); - } else { - compare = -2; - if (ctrl & PAM_DEBUG_ARG) { -- pam_syslog(pamh, LOG_INFO, "crypt() returned NULL"); -+ if (cryptpw) -+ pam_syslog(pamh, LOG_INFO, "lengths of computed and stored hashes differ"); -+ else -+ pam_syslog(pamh, LOG_INFO, "crypt() returned NULL"); - } - }; - --- -cgit v0.10.2 - diff --git a/bsp/buildroot/package/linux-pam/Config.in b/bsp/buildroot/package/linux-pam/Config.in index f5088b96..7044073d 100644 --- a/bsp/buildroot/package/linux-pam/Config.in +++ b/bsp/buildroot/package/linux-pam/Config.in @@ -11,11 +11,12 @@ config BR2_PACKAGE_LINUX_PAM # for details. depends on !BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + depends on BR2_USE_MMU # fork() help A Security Framework that Provides Authentication for Applications http://linux-pam.org -comment "linux-pam needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library" +comment "linux-pam needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/linux-pam/linux-pam.hash b/bsp/buildroot/package/linux-pam/linux-pam.hash index 3f420c2b..a6a26d19 100644 --- a/bsp/buildroot/package/linux-pam/linux-pam.hash +++ b/bsp/buildroot/package/linux-pam/linux-pam.hash @@ -1,2 +1,2 @@ # Locally computed hashes, not provided by upstream -sha256 c4b1f23a236d169e2496fea20721578d864ba00f7242d2b41d81050ac87a1e55 Linux-PAM-1.1.8.tar.bz2 +sha256 342b1211c0d3b203a7df2540a5b03a428a087bd8a48c17e49ae268f992b334d9 Linux-PAM-1.2.1.tar.bz2 diff --git a/bsp/buildroot/package/linux-pam/linux-pam.mk b/bsp/buildroot/package/linux-pam/linux-pam.mk index 26b627e7..2b94412f 100644 --- a/bsp/buildroot/package/linux-pam/linux-pam.mk +++ b/bsp/buildroot/package/linux-pam/linux-pam.mk @@ -4,7 +4,7 @@ # ################################################################################ -LINUX_PAM_VERSION = 1.1.8 +LINUX_PAM_VERSION = 1.2.1 LINUX_PAM_SOURCE = Linux-PAM-$(LINUX_PAM_VERSION).tar.bz2 LINUX_PAM_SITE = http://linux-pam.org/library LINUX_PAM_INSTALL_STAGING = YES @@ -26,8 +26,24 @@ LINUX_PAM_DEPENDENCIES += gettext LINUX_PAM_MAKE_OPTS += LIBS=-lintl endif -# Install default pam config (deny everything) +ifeq ($(BR2_PACKAGE_LIBSELINUX),y) +LINUX_PAM_CONF_OPTS += --enable-selinux +LINUX_PAM_DEPENDENCIES += libselinux +else +LINUX_PAM_CONF_OPTS += --disable-selinux +endif + +ifeq ($(BR2_PACKAGE_AUDIT),y) +LINUX_PAM_CONF_OPTS += --enable-audit +LINUX_PAM_DEPENDENCIES += audit +else +LINUX_PAM_CONF_OPTS += --disable-audit +endif + +# Install default pam config (deny everything except login) define LINUX_PAM_INSTALL_CONFIG + $(INSTALL) -m 0644 -D package/linux-pam/login.pam \ + $(TARGET_DIR)/etc/pam.d/login $(INSTALL) -m 0644 -D package/linux-pam/other.pam \ $(TARGET_DIR)/etc/pam.d/other endef diff --git a/bsp/buildroot/package/util-linux/login.pam b/bsp/buildroot/package/linux-pam/login.pam similarity index 100% rename from bsp/buildroot/package/util-linux/login.pam rename to bsp/buildroot/package/linux-pam/login.pam diff --git a/bsp/buildroot/package/linux-zigbee/0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch b/bsp/buildroot/package/linux-zigbee/0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch new file mode 100644 index 00000000..0ce4381c --- /dev/null +++ b/bsp/buildroot/package/linux-zigbee/0002-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch @@ -0,0 +1,43 @@ +From 8cc60d618f81f2eeaa926cd60ed9b55ee6cda6ea Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 8 Aug 2016 15:42:46 +0200 +Subject: [PATCH] addrdb/coord-config-parse.y: add missing include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The %union definition uses the time_t structure. In order to use this +structure, the header has to be included. Otherwise, the build +breaks with some C libraries, such as musl: + +In file included from coord-config-lex.l:23:0: +coord-config-parse.y:107:2: error: unknown type name ‘time_t’ + time_t timestamp; + ^ + +This patch includes using the '%code requires' directive of +Yacc. + +Signed-off-by: Thomas Petazzoni +--- + addrdb/coord-config-parse.y | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/addrdb/coord-config-parse.y b/addrdb/coord-config-parse.y +index 2e10a88..85ee058 100644 +--- a/addrdb/coord-config-parse.y ++++ b/addrdb/coord-config-parse.y +@@ -102,6 +102,10 @@ + + %} + ++%code requires { ++#include ++} ++ + %union { + unsigned long number; + time_t timestamp; +-- +2.7.4 + diff --git a/bsp/buildroot/package/liquid-dsp/0001-configure.ac-use-AC_CONFIG_MACRO_DIR.patch b/bsp/buildroot/package/liquid-dsp/0001-configure.ac-use-AC_CONFIG_MACRO_DIR.patch deleted file mode 100644 index c51f5878..00000000 --- a/bsp/buildroot/package/liquid-dsp/0001-configure.ac-use-AC_CONFIG_MACRO_DIR.patch +++ /dev/null @@ -1,45 +0,0 @@ -From c9d239490d47d5dd3d7d7b8b7d9007171c5f60ce Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sun, 11 Oct 2015 15:27:09 +0200 -Subject: [PATCH] configure.ac: use AC_CONFIG_MACRO_DIR - -Instead of having to explicitly pass -I./scripts when running aclocal, -use the AC_CONFIG_MACRO_DIR() macro in configure.ac. This allows to -use "autoreconf" normally, without any hacks. - -Submitted upstream at https://github.com/jgaeddert/liquid-dsp/pull/15. - -Signed-off-by: Thomas Petazzoni ---- - bootstrap.sh | 2 +- - configure.ac | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/bootstrap.sh b/bootstrap.sh -index 640e01d..eb4894e 100755 ---- a/bootstrap.sh -+++ b/bootstrap.sh -@@ -27,7 +27,7 @@ - # - - rm -f config.cache aclocal.m4 --aclocal -I./scripts -+aclocal - autoconf - autoheader - #automake --foreign --add-missing -diff --git a/configure.ac b/configure.ac -index a9ad1d7..3b1ba68 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -25,6 +25,7 @@ - - AC_INIT([liquid-dsp],[1.2.0],[support@liquidsdr.org]) - AC_CONFIG_SRCDIR([src/libliquid.c]) -+AC_CONFIG_MACRO_DIR([scripts]) - - # permit auxiliary scripts directory (e.g. config.sub, config.guess, install-sh) - AC_CONFIG_AUX_DIR(scripts/) --- -2.6.1 - diff --git a/bsp/buildroot/package/liquid-dsp/Config.in b/bsp/buildroot/package/liquid-dsp/Config.in index ad887cb5..dca39153 100644 --- a/bsp/buildroot/package/liquid-dsp/Config.in +++ b/bsp/buildroot/package/liquid-dsp/Config.in @@ -1,13 +1,10 @@ -comment "liquid-dsp requires a (e)glibc/musl toolchain w/ dynamic library" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC +comment "liquid-dsp requires a glibc or musl toolchain w/ dynamic library" depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || BR2_STATIC_LIBS config BR2_PACKAGE_LIQUID_DSP bool "liquid-dsp" depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL depends on !BR2_STATIC_LIBS - # These result in internal compiler error - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC help Liquid-DSP is a free and open-source signal processing library for software-defined radios written in C. Its diff --git a/bsp/buildroot/package/liquid-dsp/liquid-dsp.hash b/bsp/buildroot/package/liquid-dsp/liquid-dsp.hash index 5c1c0a8c..e32d8290 100644 --- a/bsp/buildroot/package/liquid-dsp/liquid-dsp.hash +++ b/bsp/buildroot/package/liquid-dsp/liquid-dsp.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 4b6dcb0846ed884c55984494adef721f910ac6f895174b31ec52138263842637 liquid-dsp-df5a459fa05dba4199c1299555891104cc1fdca7.tar.gz +sha256 d0f050b9d5137c43ba45a35b6c82bc8222eba86f772f4e2e46c91427647bb847 liquid-dsp-1191179b786703b3af20abf7e1404d91099b335d.tar.gz diff --git a/bsp/buildroot/package/liquid-dsp/liquid-dsp.mk b/bsp/buildroot/package/liquid-dsp/liquid-dsp.mk index e7bb6863..b5fb44cf 100644 --- a/bsp/buildroot/package/liquid-dsp/liquid-dsp.mk +++ b/bsp/buildroot/package/liquid-dsp/liquid-dsp.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIQUID_DSP_VERSION = df5a459fa05dba4199c1299555891104cc1fdca7 +LIQUID_DSP_VERSION = 1191179b786703b3af20abf7e1404d91099b335d LIQUID_DSP_SITE = $(call github,jgaeddert,liquid-dsp,$(LIQUID_DSP_VERSION)) LIQUID_DSP_LICENSE = MIT LIQUID_DSP_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/lirc-tools/0001-lib-use-proper-linking-method-to-avoid-parallel-buil.patch b/bsp/buildroot/package/lirc-tools/0001-lib-use-proper-linking-method-to-avoid-parallel-buil.patch new file mode 100644 index 00000000..58631285 --- /dev/null +++ b/bsp/buildroot/package/lirc-tools/0001-lib-use-proper-linking-method-to-avoid-parallel-buil.patch @@ -0,0 +1,46 @@ +From f2fc8c48e5e55a91b309225f377b6cb3783fc6f6 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 25 May 2016 15:21:57 +0200 +Subject: [PATCH] lib: use proper linking method to avoid parallel build issue + +Using _LDFLAGS = -l is correct when is an +external library. However, when it is built by the same package, and +especially in the same directory, this is wrong and can cause parallel +build issues. In lib/Makefile.am, there was: + +libirrecord_la_LDFLAGS = -llirc + +But the liblirc library is built in the same directory. Or, due to the +using of _LDFLAGS, make is not aware of the build dependency +between libirrecord and liblirc. + +To solve this, _LIBADD should be used instead, as follows: + +libirrecord_la_LIBADD = liblirc.la + +This fixes parallel build issues seen by automated build tests +conducted by the Buildroot project, such as: + + http://autobuild.buildroot.org/results/eb4/eb47d57de8182d25b1dacbf0ac3726ed20063d04/build-end.log + +Signed-off-by: Thomas Petazzoni +--- + lib/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/Makefile.am b/lib/Makefile.am +index ce5c94c..8780f88 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -29,7 +29,7 @@ liblirc_la_SOURCES = config_file.c \ + transmit.c \ + util.c + +-libirrecord_la_LDFLAGS = -llirc ++libirrecord_la_LIBADD = liblirc.la + libirrecord_la_SOURCES = irrecord.c + + liblirc_client_la_LDFLAGS = -version-info 4:0:4 +-- +2.7.4 + diff --git a/bsp/buildroot/package/lirc-tools/0001-tools-Make-make_rel_symlink.py-use-python3.patch b/bsp/buildroot/package/lirc-tools/0001-tools-Make-make_rel_symlink.py-use-python3.patch deleted file mode 100644 index 3b5db2d6..00000000 --- a/bsp/buildroot/package/lirc-tools/0001-tools-Make-make_rel_symlink.py-use-python3.patch +++ /dev/null @@ -1,46 +0,0 @@ -From ae2e8cc85b6b4d2202e42d704dde8757ffd31da6 Mon Sep 17 00:00:00 2001 -From: Alec Leamas -Date: Thu, 11 Dec 2014 04:44:49 +0100 -Subject: [PATCH] tools: Make make_rel_symlink.py use python3. - -Upstream patch: -http://sourceforge.net/p/lirc/git/ci/ae2e8cc85b6b4d2202e42d704dde8757ffd31da6/ - -Signed-off-by: Baruch Siach ---- - tools/make_rel_symlink.py | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/tools/make_rel_symlink.py b/tools/make_rel_symlink.py -index 5c893056f379..896637ff93e0 100755 ---- a/tools/make_rel_symlink.py -+++ b/tools/make_rel_symlink.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - - import os - import os.path -@@ -32,16 +32,16 @@ if sys.argv[1] == "-p": - sys.argv = sys.argv[ 1:] - - if len( sys.argv ) != 3: -- print USAGE -+ print(USAGE) - sys.exit( 1 ) - - if os.path.isdir( sys.argv[2] ): -- print "Removing link target dir:" + sys.argv[2] -+ print("Removing link target dir:" + sys.argv[2]) - shutil.rmtree( sys.argv[2]) - - link_path = relative_ln_s( sys.argv[1], sys.argv[2] ) - if just_print: -- print link_path -+ print(link_path) - else: - os.chdir( os.path.dirname( sys.argv[2])) - target = os.path.basename( sys.argv[2]) --- -2.1.4 - diff --git a/bsp/buildroot/package/lirc-tools/0003-Don-t-build-commandir-unless-we-have-usb.h-191.patch b/bsp/buildroot/package/lirc-tools/0003-Don-t-build-commandir-unless-we-have-usb.h-191.patch new file mode 100644 index 00000000..a3f2f3ba --- /dev/null +++ b/bsp/buildroot/package/lirc-tools/0003-Don-t-build-commandir-unless-we-have-usb.h-191.patch @@ -0,0 +1,54 @@ +From f346045e0f63289909322a3264e69b967a911636 Mon Sep 17 00:00:00 2001 +From: Alec Leamas +Date: Tue, 24 May 2016 19:56:09 +0200 +Subject: [PATCH] Don't build commandir unless we have usb.h (#191). + +Signed-off-by: Bernd Kuhls +(backported from git master: + https://sourceforge.net/p/lirc/git/ci/f346045e0f63289909322a3264e69b967a911636/tree/plugins/Makefile.am?diff=4b26eb383291576b3f56820c6cec5f6a75814807) +--- + plugins/Makefile.am | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/plugins/Makefile.am b/plugins/Makefile.am +index 3bd89ed..2116658 100644 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -14,6 +14,7 @@ EXTRA_DIST = pluginlist.am make-pluginlist.sh + plugin_LTLIBRARIES = + + if BUILD_USB ++ + plugin_LTLIBRARIES += atilibusb.la + atilibusb_la_SOURCES = atilibusb.c + atilibusb_la_LDFLAGS = $(AM_LDFLAGS) @usb_libs@ +@@ -33,6 +34,14 @@ plugin_LTLIBRARIES += srm7500libusb.la + srm7500libusb_la_SOURCES = srm7500libusb.c + srm7500libusb_la_LDFLAGS = $(AM_LDFLAGS) @usb_libs@ + srm7500libusb_la_CFLAGS = $(AM_CFLAGS) $(LIBUSB_CFLAGS) ++ ++if !BSD ++plugin_LTLIBRARIES += commandir.la ++commandir_la_SOURCES = commandir.c ++commandir_la_LDFLAGS = $(AM_LDFLAGS) @usb_libs@ ++commandir_la_CFLAGS = $(AM_CFLAGS) $(LIBUSB_CFLAGS) ++endif ++ + endif + + if BUILD_FTDI +@@ -99,11 +108,6 @@ if !BSD + plugin_LTLIBRARIES += default.la + default_la_SOURCES = default.c + +-plugin_LTLIBRARIES += commandir.la +-commandir_la_SOURCES = commandir.c +-commandir_la_LDFLAGS = $(AM_LDFLAGS) @usb_libs@ +-commandir_la_CFLAGS = $(AM_CFLAGS) $(LIBUSB_CFLAGS) +- + plugin_LTLIBRARIES += hiddev.la + hiddev_la_SOURCES = hiddev.c + +-- +2.8.1 + diff --git a/bsp/buildroot/package/lirc-tools/0003-Fix-loglevel-redefinition-in-static-library-builds.patch b/bsp/buildroot/package/lirc-tools/0003-Fix-loglevel-redefinition-in-static-library-builds.patch deleted file mode 100644 index 1e8717c5..00000000 --- a/bsp/buildroot/package/lirc-tools/0003-Fix-loglevel-redefinition-in-static-library-builds.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 2a789161ef17ac1cedd9a4eb11423f6c1020d8d9 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sun, 17 May 2015 16:08:15 +0200 -Subject: [PATCH] Fix loglevel redefinition in static library builds - -Signed-off-by: Thomas Petazzoni ---- - daemons/lircmd.c | 1 - - tools/irrecord.c | 5 ++--- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/daemons/lircmd.c b/daemons/lircmd.c -index 023777c..e69078c 100644 ---- a/daemons/lircmd.c -+++ b/daemons/lircmd.c -@@ -67,7 +67,6 @@ typedef uint64_t __u64; - - static int uinputfd = -1; - static int useuinput = 0; --loglevel_t loglevel = 0; - - - static const struct option lircmd_options[] = { -diff --git a/tools/irrecord.c b/tools/irrecord.c -index f52328c..772b090 100644 ---- a/tools/irrecord.c -+++ b/tools/irrecord.c -@@ -113,9 +113,6 @@ lirc_t aeps = 100; - - #define SAMPLES 80 - --// Actual loglevel as per -D option, see lirc_log.h. --loglevel_t loglevel = LIRC_WARNING; -- - int daemonized = 0; - - struct ir_remote *emulation_data; -@@ -407,6 +404,8 @@ int main(int argc, char **argv) - char commandline[128]; - char path[128]; - int get_pre = 0, get_post = 0, test = 0, invert = 0, trail = 0; -+ // Actual loglevel as per -D option, see lirc_log.h. -+ loglevel_t loglevel = LIRC_WARNING; - - get_commandline(argc, argv, commandline, sizeof(commandline)); - force = 0; --- -2.1.0 - diff --git a/bsp/buildroot/package/lirc-tools/0004-configure-check-for-clock_gettime-in-librt.patch b/bsp/buildroot/package/lirc-tools/0004-configure-check-for-clock_gettime-in-librt.patch new file mode 100644 index 00000000..710dfd3b --- /dev/null +++ b/bsp/buildroot/package/lirc-tools/0004-configure-check-for-clock_gettime-in-librt.patch @@ -0,0 +1,54 @@ +From e654ae139cec42a6f1b5684261787d0c241cfd3b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Fri, 19 Aug 2016 15:25:48 +0200 +Subject: [PATCH] configure: check for clock_gettime in librt + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 3 +++ + daemons/Makefile.am | 2 +- + plugins/Makefile.am | 1 + + 3 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 73340c7..466e638 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -67,6 +67,9 @@ AC_CHECK_FUNCS(gethostname gettimeofday mkfifo select socket strdup \ + AC_SEARCH_LIBS([dlopen], [dl dld], [], [ + AC_MSG_ERROR([unable to find the dlopen() function]) + ]) ++# glibc < 2.17 needs librt for clock_gettime() ++AC_CHECK_LIB(rt, clock_gettime, LIBCLOCK_GETTIME="-lrt") ++AC_SUBST(LIBCLOCK_GETTIME) + AC_CHECK_FUNCS(daemon) + if test "$ac_cv_func_daemon" != yes; then + daemon="" +diff --git a/daemons/Makefile.am b/daemons/Makefile.am +index 5625627..85a28f3 100644 +--- a/daemons/Makefile.am ++++ b/daemons/Makefile.am +@@ -21,7 +21,7 @@ sbin_PROGRAMS += lircd-uinput + endif + + lircd_SOURCES = lircd.cpp +-lircd_LDADD = ../lib/liblirc.la ++lircd_LDADD = ../lib/liblirc.la @LIBCLOCK_GETTIME@ + + lircd_uinput_SOURCES = lircd-uinput.cpp + lircd_uinput_LDADD = ../lib/liblirc.la +diff --git a/plugins/Makefile.am b/plugins/Makefile.am +index ddff01d..45c012a 100644 +--- a/plugins/Makefile.am ++++ b/plugins/Makefile.am +@@ -127,6 +127,7 @@ zotac_la_SOURCES = zotac.c + + plugin_LTLIBRARIES += mplay.la + mplay_la_SOURCES = mplay.c ++mplay_la_LIBADD = @LIBCLOCK_GETTIME@ + endif + + $(srcdir)/pluginlist.am: +-- +2.7.4 + diff --git a/bsp/buildroot/package/lirc-tools/Config.in b/bsp/buildroot/package/lirc-tools/Config.in index 3bee0949..60476b79 100644 --- a/bsp/buildroot/package/lirc-tools/Config.in +++ b/bsp/buildroot/package/lirc-tools/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_LIRC_TOOLS bool "lirc-tools" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_TOOLCHAIN_USES_MUSL # GLOB_BRACE # dlopen() depends on !BR2_STATIC_LIBS @@ -18,7 +19,7 @@ config BR2_PACKAGE_LIRC_TOOLS http://www.lirc.org/ -comment "lirc-tools needs a uClibc or (e)glibc toolchain w/ threads, dynamic library" +comment "lirc-tools needs a uClibc or glibc toolchain w/ threads, dynamic library, C++" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ - || BR2_TOOLCHAIN_USES_MUSL + || !BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/lirc-tools/lirc-tools.hash b/bsp/buildroot/package/lirc-tools/lirc-tools.hash index 39867673..afbca6e1 100644 --- a/bsp/buildroot/package/lirc-tools/lirc-tools.hash +++ b/bsp/buildroot/package/lirc-tools/lirc-tools.hash @@ -1,2 +1,3 @@ -#hash from http://sourceforge.net/projects/lirc/files/LIRC/0.9.2/ -sha1 585daed1eaa169b9683a507e26b1331a947a4dcd lirc-0.9.2.tar.bz2 +# hash from http://sourceforge.net/projects/lirc/files/LIRC/0.9.4/ +sha1 79d2300b4864ed85d6468d554ac777f39b6740ac lirc-0.9.4.tar.bz2 +md5 da6aca942154256bff696d1ffa3ef646 lirc-0.9.4.tar.bz2 diff --git a/bsp/buildroot/package/lirc-tools/lirc-tools.mk b/bsp/buildroot/package/lirc-tools/lirc-tools.mk index fbd8aaf9..547df46e 100644 --- a/bsp/buildroot/package/lirc-tools/lirc-tools.mk +++ b/bsp/buildroot/package/lirc-tools/lirc-tools.mk @@ -4,15 +4,37 @@ # ################################################################################ -LIRC_TOOLS_VERSION = 0.9.2 +LIRC_TOOLS_VERSION = 0.9.4 LIRC_TOOLS_SOURCE = lirc-$(LIRC_TOOLS_VERSION).tar.bz2 LIRC_TOOLS_SITE = http://downloads.sourceforge.net/project/lirc/LIRC/$(LIRC_TOOLS_VERSION) LIRC_TOOLS_LICENSE = GPLv2+ LIRC_TOOLS_LICENSE_FILES = COPYING -LIRC_TOOLS_DEPENDENCIES = host-pkgconf +LIRC_TOOLS_DEPENDENCIES = host-libxslt host-pkgconf host-python3 +LIRC_TOOLS_INSTALL_STAGING = YES +# 0001-lib-use-proper-linking-method-to-avoid-parallel-buil.patch +# 0003-Don-t-build-commandir-unless-we-have-usb.h-191.patch +# 0004-configure-check-for-clock_gettime-in-librt.patch +LIRC_TOOLS_AUTORECONF = YES +LIRC_TOOLS_CONF_ENV = XSLTPROC=yes LIRC_TOOLS_CONF_OPTS = --without-x +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) +LIRC_TOOLS_DEPENDENCIES += udev +endif + +ifeq ($(BR2_PACKAGE_ALSA_LIB),y) +LIRC_TOOLS_DEPENDENCIES += alsa-lib +endif + +ifeq ($(BR2_PACKAGE_LIBUSB_COMPAT),y) +LIRC_TOOLS_DEPENDENCIES += libusb-compat +endif + +ifeq ($(BR2_PACKAGE_PORTAUDIO),y) +LIRC_TOOLS_DEPENDENCIES += portaudio +endif + define LIRC_TOOLS_INSTALL_INIT_SYSV $(INSTALL) -D -m 0755 package/lirc-tools/S25lircd \ $(TARGET_DIR)/etc/init.d/S25lircd diff --git a/bsp/buildroot/package/live555/live555.hash b/bsp/buildroot/package/live555/live555.hash index 813a5b4e..16f70774 100644 --- a/bsp/buildroot/package/live555/live555.hash +++ b/bsp/buildroot/package/live555/live555.hash @@ -1,4 +1,4 @@ # From http://live555.com/liveMedia/public/live555-latest-md5.txt -md5 6275484ab763673ad3144648bf1015cb live.2016.01.29.tar.gz +md5 df4ad1d60c2f5ae8155fb077bb011ab3 live.2016.03.16.tar.gz # Locally generated -sha256 44243a962adae64703c00264dd2333cfee15d7edbd79de4e5b47fd486df9ecd1 live.2016.01.29.tar.gz +sha256 6f98a96d4cf6e986c7711f0a2431c02cb807a8107d6715eb491a6ed9d0446cf6 live.2016.03.16.tar.gz diff --git a/bsp/buildroot/package/live555/live555.mk b/bsp/buildroot/package/live555/live555.mk index d40cbaa4..3ccba63d 100644 --- a/bsp/buildroot/package/live555/live555.mk +++ b/bsp/buildroot/package/live555/live555.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIVE555_VERSION = 2016.01.29 +LIVE555_VERSION = 2016.03.16 LIVE555_SOURCE = live.$(LIVE555_VERSION).tar.gz LIVE555_SITE = http://www.live555.com/liveMedia/public LIVE555_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/ljsyscall/ljsyscall.hash b/bsp/buildroot/package/ljsyscall/ljsyscall.hash new file mode 100644 index 00000000..2d67907a --- /dev/null +++ b/bsp/buildroot/package/ljsyscall/ljsyscall.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 9b5ba2b5798c5bc33aa2158f3b44f730de12497c195764aa1bc3d3f1244df198 ljsyscall-v0.10.tar.gz diff --git a/bsp/buildroot/package/lksctp-tools/Config.in b/bsp/buildroot/package/lksctp-tools/Config.in new file mode 100644 index 00000000..9c95ef5e --- /dev/null +++ b/bsp/buildroot/package/lksctp-tools/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_LKSCTP_TOOLS + bool "lksctp-tools" + depends on BR2_USE_MMU # fork() + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_STATIC_LIBS # dlopen() + help + The lksctp-tools project provides a Linux user space library + for SCTP (libsctp) including C language header files + (netinet/sctp.h) for accessing SCTP specific application + programming interfaces not provided by the standard sockets, + and also some helper utilities around SCTP. + + http://lksctp.sourceforge.net/ + +comment "lksctp-tools needs a toolchain w/ threads, dynamic library" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/lksctp-tools/lksctp-tools.hash b/bsp/buildroot/package/lksctp-tools/lksctp-tools.hash new file mode 100644 index 00000000..0ecc8ff0 --- /dev/null +++ b/bsp/buildroot/package/lksctp-tools/lksctp-tools.hash @@ -0,0 +1,3 @@ +# From https://sourceforge.net/projects/lksctp/files/lksctp-tools/ +md5 68e9b8fa4d4e331029b247b72d46d7a5 lksctp-tools-1.0.17.tar.gz +sha1 941b0b5c39e364a971f514bba66120435660e518 lksctp-tools-1.0.17.tar.gz diff --git a/bsp/buildroot/package/lksctp-tools/lksctp-tools.mk b/bsp/buildroot/package/lksctp-tools/lksctp-tools.mk new file mode 100644 index 00000000..a36d6ca9 --- /dev/null +++ b/bsp/buildroot/package/lksctp-tools/lksctp-tools.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# lksctp-tools +# +################################################################################ + +LKSCTP_TOOLS_VERSION = 1.0.17 +LKSCTP_TOOLS_SITE = http://downloads.sourceforge.net/project/lksctp/lksctp-tools +LKSCTP_TOOLS_INSTALL_STAGING = YES +# configure not shipped +LKSCTP_TOOLS_AUTORECONF = YES +LKSCTP_TOOLS_LICENSE = LGPLv2.1 (library), GPLv2+ (programs) +LKSCTP_TOOLS_LICENSE_FILES = COPYING.lib COPYING +LKSCTP_TOOLS_CONF_OPTS = --disable-tests + +# Cleanup installed target source code +define LKSCTP_TOOLS_CLEANUP_TARGET + rm -rf $(TARGET_DIR)/usr/share/lksctp-tools +endef +LKSCTP_TOOLS_POST_INSTALL_TARGET_HOOKS += LKSCTP_TOOLS_CLEANUP_TARGET + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/lldpd/0001-build-make-generation-of-atom-glue-compatible-with-o.patch b/bsp/buildroot/package/lldpd/0001-build-make-generation-of-atom-glue-compatible-with-o.patch new file mode 100644 index 00000000..d5675d39 --- /dev/null +++ b/bsp/buildroot/package/lldpd/0001-build-make-generation-of-atom-glue-compatible-with-o.patch @@ -0,0 +1,43 @@ +From 106aa50d4e5b336f7dd2d5cf4d882e692d205e91 Mon Sep 17 00:00:00 2001 +From: Vincent Bernat +Date: Sat, 18 Jun 2016 22:18:41 +0200 +Subject: [PATCH] build: make generation of atom-glue compatible with older gcc + versions + +With old versions, cpp doesn't accept several files as input. See #186. + +Signed-off-by: Vivien Didelot +--- + src/lib/Makefile.am | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am +index 250e32a..2a5cdb3 100644 +--- a/src/lib/Makefile.am ++++ b/src/lib/Makefile.am +@@ -20,8 +20,9 @@ nodist_liblldpctl_la_SOURCES = atom-glue.c + liblldpctl_la_LIBADD = $(top_builddir)/src/libcommon-daemon-lib.la libfixedpoint.la + + atom-glue.c: $(ATOM_FILES) Makefile +- $(AM_V_GEN)($(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ATOM_FILES:%=$(srcdir)/%) | \ ++ $(AM_V_GEN)(for f in $(ATOM_FILES:%=$(srcdir)/%); do \ ++ $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $$f; done | \ + $(SED) -n 's+^void init_atom_builder_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \ + sort | \ + $(AWK) '{ atoms[$$2] = 1 } \ +@@ -30,8 +31,9 @@ atom-glue.c: $(ATOM_FILES) Makefile + print " static int init = 0; if (init) return; init++;"; \ + for (atom in atoms) { print " init_atom_builder_"atom"();" } \ + print "}"; }' && \ ++ for f in $(ATOM_FILES:%=$(srcdir)/%); do \ + $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ATOM_FILES:%=$(srcdir)/%) | \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $$f; done | \ + $(SED) -n 's+^void init_atom_map_\([^(]*\)().*, \([0-9]*\)).*+\2 \1+p' | \ + sort -n | \ + $(AWK) '{ atoms[$$2] = 1 } \ +-- +2.9.0 + diff --git a/bsp/buildroot/package/lldpd/0002-configure-do-not-check-for-libbsd.patch b/bsp/buildroot/package/lldpd/0002-configure-do-not-check-for-libbsd.patch new file mode 100644 index 00000000..4d632745 --- /dev/null +++ b/bsp/buildroot/package/lldpd/0002-configure-do-not-check-for-libbsd.patch @@ -0,0 +1,61 @@ +From 0801a066cd4a24a858ddfa7c62c7802e0f5533a8 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Sun, 14 Aug 2016 12:15:17 +0200 +Subject: [PATCH] configure: do not check for libbsd + +libbsd causes build issues because its libbsd-overlay.pc file is borked: +it contains -isystem in CFLAGS, which is not munged by pkgconf, so we +end up using the headers of the build machine, causing all sorts of +hard-to-debug trouble at build time. + +lldpd uses libbsd-overlay for a few helper functions, but has fallbacks +in case it is not available. The only feature that is lost when not using +it is that the neighbour name is no longer displayed in /proc/self/cmdline. +As the author of lldpd said on IRC: "people should survive! ;-)" + +So we just remove the detection of libbsd altogether. + +Fixes: + http://autobuild.buildroot.org/results/6b7/6b70fa379e834ec71cc260ba6af771b531ca3511/ + http://autobuild.buildroot.org/results/769/769074c4bb67336ae6679f2c1cd2a8220d2bec24/ + http://autobuild.buildroot.org/results/c8a/c8a6001f437701ecc75f6c9252935645bda8a8c8/ + [...] + +Signed-off-by: "Yann E. MORIN" +--- + configure.ac | 19 ------------------- + 1 file changed, 19 deletions(-) + +diff --git a/configure.ac b/configure.ac +index dd723b0..45498ce 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -165,25 +165,6 @@ AC_FUNC_MALLOC + AC_FUNC_REALLOC + AC_FUNC_FORK + +-# Some functions can be in libbsd +-PKG_CHECK_MODULES([libbsd], [libbsd-overlay], [ +- _save_CFLAGS="$CFLAGS" +- _save_LIBS="$LIBS" +- CFLAGS="$CFLAGS $libbsd_CFLAGS" +- LIBS="$LIBS $libbsd_LIBS" +- AC_MSG_CHECKING([if libbsd can be linked correctly]) +- AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { return 0; }]])], +- [ +- AC_MSG_RESULT(yes) +- LLDP_CFLAGS="$LLDP_CFLAGS $libbsd_CFLAGS" +- LLDP_LDFLAGS="$LLDP_LDFLAGS $libbsd_LIBS" +- ],[ +- AC_MSG_RESULT(no) +- CFLAGS="$_save_CFLAGS" +- LIBS="$_save_LIBS" +- ]) +-], [:]) +- + # setproctitle may have an _init function + AC_REPLACE_FUNCS([setproctitle]) + AC_CHECK_FUNCS([setproctitle_init]) +-- +2.7.4 + diff --git a/bsp/buildroot/package/lldpd/S60lldpd b/bsp/buildroot/package/lldpd/S60lldpd new file mode 100644 index 00000000..3dfa6c1a --- /dev/null +++ b/bsp/buildroot/package/lldpd/S60lldpd @@ -0,0 +1,25 @@ +#!/bin/sh +# +# Controls lldpd. +# + +case $1 in + start) + printf "Starting lldpd: " + start-stop-daemon -S -q -p /var/run/lldpd.pid --exec /usr/sbin/lldpd + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + stop) + printf "Stopping lldpd: " + start-stop-daemon -K -q -p /var/run/lldpd.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac diff --git a/bsp/buildroot/package/lldpd/lldpd.hash b/bsp/buildroot/package/lldpd/lldpd.hash index a6d905bd..fc3d21f4 100644 --- a/bsp/buildroot/package/lldpd/lldpd.hash +++ b/bsp/buildroot/package/lldpd/lldpd.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 aac11cb1fdc037709517372c70c9bf89c752ab8e5eaab9ce140b84ed5a0507c8 lldpd-0.7.19.tar.gz +sha256 eb1f5beff2ff5c13c5e0342b5b9da815ed4a63866262445e1168a79ee65c9079 lldpd-0.9.4.tar.gz diff --git a/bsp/buildroot/package/lldpd/lldpd.mk b/bsp/buildroot/package/lldpd/lldpd.mk index 416967b2..349c556c 100644 --- a/bsp/buildroot/package/lldpd/lldpd.mk +++ b/bsp/buildroot/package/lldpd/lldpd.mk @@ -4,11 +4,21 @@ # ################################################################################ -LLDPD_VERSION = 0.7.19 +LLDPD_VERSION = 0.9.4 LLDPD_SITE = http://media.luffy.cx/files/lldpd LLDPD_DEPENDENCIES = host-pkgconf libevent LLDPD_LICENSE = ISC LLDPD_LICENSE_FILES = README.md +# 0002-configure-do-not-check-for-libbsd.patch +LLDPD_AUTORECONF = YES + +ifeq ($(BR2_PACKAGE_CHECK),y) +LLDPD_DEPENDENCIES += check +endif + +ifeq ($(BR2_PACKAGE_VALGRIND),y) +LLDPD_DEPENDENCIES += valgrind +endif # Detection of c99 support in configure fails without WCHAR. To enable # automatic detection of c99 support by configure, we need to enable @@ -35,4 +45,9 @@ LLDPD_CONF_OPTS = \ $(if $(BR2_PACKAGE_LLDPD_DOT3),--enable-dot3,--disable-dot3) \ $(if $(BR2_PACKAGE_LLDPD_CUSTOM_TLV),--enable-custom,--disable-custom) +define LLDPD_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/lldpd/S60lldpd \ + $(TARGET_DIR)/etc/init.d/S60lldpd +endef + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/log4cpp/0001-Fix-musl-compile.patch b/bsp/buildroot/package/log4cpp/0001-Fix-musl-compile.patch new file mode 100644 index 00000000..f1a13a07 --- /dev/null +++ b/bsp/buildroot/package/log4cpp/0001-Fix-musl-compile.patch @@ -0,0 +1,34 @@ +From 17562259fb6684f351a70b98b4f3b438927ba1aa Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Mon, 11 Jul 2016 22:58:31 +0200 +Subject: [PATCH] Fix musl compile. + +Include proper config.h (via log4cpp/Portability.hh) to fix the +evaluate of LOG4CPP_HAVE_STDINT_H in the file tests/Clock.hh + +Fixes: + + Clock.hh:17:13: error: 'int64_t' does not name a type + typedef int64_t usec_t; + +Signed-off-by: Peter Seiderer +--- + log4cpp/tests/Clock.hh | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/log4cpp/tests/Clock.hh b/log4cpp/tests/Clock.hh +index 4bf0ca4..45c6467 100644 +--- a/log4cpp/tests/Clock.hh ++++ b/log4cpp/tests/Clock.hh +@@ -6,6 +6,8 @@ + #ifndef __CLOCK_H + #define __CLOCK_H + ++#include ++ + #ifdef LOG4CPP_HAVE_STDINT_H + #include + #endif // LOG4CPP_HAVE_STDINT_H +-- +2.8.1 + diff --git a/bsp/buildroot/package/log4cpp/Config.in b/bsp/buildroot/package/log4cpp/Config.in new file mode 100755 index 00000000..090bf565 --- /dev/null +++ b/bsp/buildroot/package/log4cpp/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_LOG4CPP + bool "log4cpp" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + help + Log4cpp is library of C++ classes for flexible logging to + files, syslog, IDSA and other destinations. It is modeled + after the Log4j Java library, staying as close to their API + as is reasonable. + + http://log4cpp.sourceforge.net/ + +comment "log4cpp needs a toolchain w/ C++, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/log4cpp/log4cpp.hash b/bsp/buildroot/package/log4cpp/log4cpp.hash new file mode 100755 index 00000000..6467aabf --- /dev/null +++ b/bsp/buildroot/package/log4cpp/log4cpp.hash @@ -0,0 +1,3 @@ +# From http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.x%20%28new%29/log4cpp-1.1/ +md5 1e173df8ee97205f412ff84aa93b8fbe log4cpp-1.1.1.tar.gz +sha1 23aa5bd7d6f79992c92bad3e1c6d64a34f8fcf68 log4cpp-1.1.1.tar.gz diff --git a/bsp/buildroot/package/log4cpp/log4cpp.mk b/bsp/buildroot/package/log4cpp/log4cpp.mk new file mode 100755 index 00000000..1630b90a --- /dev/null +++ b/bsp/buildroot/package/log4cpp/log4cpp.mk @@ -0,0 +1,33 @@ +################################################################################ +# +# log4cpp +# +################################################################################ + +LOG4CPP_VERSION_MAJOR = 1.1 +LOG4CPP_VERSION = $(LOG4CPP_VERSION_MAJOR).1 +LOG4CPP_SOURCE = log4cpp-$(LOG4CPP_VERSION).tar.gz +LOG4CPP_SITE = http://downloads.sourceforge.net/project/log4cpp/log4cpp-1.1.x%20%28new%29/log4cpp-$(LOG4CPP_VERSION_MAJOR) +LOG4CPP_SUBDIR = log4cpp +# The "or later" is indicated in the HTML documentation +LOG4CPP_LICENSE = LGPLv2.1+ +LOG4CPP_LICENSE_FILES = log4cpp/COPYING +LOG4CPP_INSTALL_STAGING = YES +LOG4CPP_CONF_OPTS = --enable-doxygen=no --enable-dot=no + +# The default _CONFIG_SCRIPTS handling does not apply +define LOG4CPP_STAGING_CONFIG_SCRIPT_FIXUP + $(SED) 's,prefix="/usr",prefix="$(STAGING_DIR)/usr",' \ + -e 's,exec_prefix="/usr",prefix="$(STAGING_DIR)/usr",' \ + $(STAGING_DIR)/usr/bin/log4cpp-config +endef + +LOG4CPP_POST_INSTALL_STAGING_HOOKS += LOG4CPP_STAGING_CONFIG_SCRIPT_FIXUP + +define LOG4CPP_TARGET_CONFIG_SCRIPT_REMOVE + $(RM) $(TARGET_DIR)/usr/bin/log4cpp-config +endef + +LOG4CPP_POST_INSTALL_TARGET_HOOKS += LOG4CPP_TARGET_CONFIG_SCRIPT_REMOVE + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/logrotate/0002-Use-autoconf-checks-for-strndup-and-asprintf.patch b/bsp/buildroot/package/logrotate/0002-Use-autoconf-checks-for-strndup-and-asprintf.patch new file mode 100644 index 00000000..ed320982 --- /dev/null +++ b/bsp/buildroot/package/logrotate/0002-Use-autoconf-checks-for-strndup-and-asprintf.patch @@ -0,0 +1,61 @@ +From 24fd7f81f9966071717f6a0effe8190310f1b393 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Fri, 19 Aug 2016 22:39:17 +0200 +Subject: [PATCH] Use autoconf checks for strndup and asprintf + +The current code in config.c can provide its own implementation of +asprintf() and strndup() if not provided by the system. However, in +order to decide if they should be provided, the check done is: + + #if !defined(name_of_function) + +which only works if the function is actually defined as a macro, which +is not necessarily the case. + +Therefore, we replace this logic by a proper AC_CHECK_FUNCS() check in +the configure script. + +Signed-off-by: Thomas Petazzoni +--- + config.c | 4 ++-- + configure.ac | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/config.c b/config.c +index dbbf563..2209afd 100644 +--- a/config.c ++++ b/config.c +@@ -45,7 +45,7 @@ + #include "asprintf.c" + #endif + +-#if !defined(asprintf) && !defined(_FORTIFY_SOURCE) ++#if !defined(HAVE_ASPRINTF) && !defined(_FORTIFY_SOURCE) + #include + + int asprintf(char **string_ptr, const char *format, ...) +@@ -78,7 +78,7 @@ int asprintf(char **string_ptr, const char *format, ...) + + #endif + +-#if !defined(strndup) ++#if !defined(HAVE_STRNDUP) + char *strndup(const char *s, size_t n) + { + size_t nAvail; +diff --git a/configure.ac b/configure.ac +index e655b85..73b98da 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -13,6 +13,8 @@ AC_STRUCT_ST_BLOCKS + AC_CHECK_LIB([popt],[poptParseArgvString],, + AC_MSG_ERROR([libpopt required but not found])) + ++AC_CHECK_FUNCS([strndup asprintf]) ++ + AC_ARG_WITH([selinux], + [AS_HELP_STRING([--with-selinux], + [support handling SELinux contexts (yes,no,check) @<:@default=check@:>@])], +-- +2.7.4 + diff --git a/bsp/buildroot/package/logrotate/logrotate.hash b/bsp/buildroot/package/logrotate/logrotate.hash index ef537a95..8dee7156 100644 --- a/bsp/buildroot/package/logrotate/logrotate.hash +++ b/bsp/buildroot/package/logrotate/logrotate.hash @@ -1,2 +1,3 @@ # Locally calculated -sha256 700ed7ce9072a1cca324779a74797dfaefdae37ac50a817134b947c4ded1dfa7 logrotate-3.8.9.tar.gz +sha256 2de00c65e23fa9d7909cae6594e550b9abe9a7eb1553669ddeaca92d30f97009 logrotate-3.9.2.tar.gz +sha256 e0d360908ac506e02f08fa1ad70e17d6985045d8640f383fef8f322886d6e1e1 6a36c105587b07ad14fc937f3ee6e2eb402621a2.patch diff --git a/bsp/buildroot/package/logrotate/logrotate.mk b/bsp/buildroot/package/logrotate/logrotate.mk index 4a700402..38f183c3 100644 --- a/bsp/buildroot/package/logrotate/logrotate.mk +++ b/bsp/buildroot/package/logrotate/logrotate.mk @@ -4,8 +4,8 @@ # ################################################################################ -LOGROTATE_VERSION = 3.8.9 -LOGROTATE_SITE = https://www.fedorahosted.org/releases/l/o/logrotate +LOGROTATE_VERSION = 3.9.2 +LOGROTATE_SITE = $(call github,logrotate,logrotate,$(LOGROTATE_VERSION)) LOGROTATE_LICENSE = GPLv2+ LOGROTATE_LICENSE_FILES = COPYING LOGROTATE_DEPENDENCIES = popt host-pkgconf @@ -13,6 +13,7 @@ LOGROTATE_DEPENDENCIES = popt host-pkgconf LOGROTATE_AUTORECONF = YES LOGROTATE_CONF_ENV = LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs popt`" LOGROTATE_CONF_OPTS = --without-selinux +LOGROTATE_PATCH = https://github.com/logrotate/logrotate/commit/6a36c105587b07ad14fc937f3ee6e2eb402621a2.patch ifeq ($(BR2_PACKAGE_ACL),y) LOGROTATE_DEPENDENCIES += acl diff --git a/bsp/buildroot/package/lpc3250loader/lpc3250loader.hash b/bsp/buildroot/package/lpc3250loader/lpc3250loader.hash new file mode 100644 index 00000000..4f9dbc4e --- /dev/null +++ b/bsp/buildroot/package/lpc3250loader/lpc3250loader.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 267de7541c92e5b007b93c660a41188976d531a3757f4ffd9b7142d3994da7d1 lpc3250loader-1.0.tar.gz diff --git a/bsp/buildroot/package/lshw/0001-Makefile-allow-to-pass-additional-LIBS.patch b/bsp/buildroot/package/lshw/0001-Makefile-allow-to-pass-additional-LIBS.patch new file mode 100644 index 00000000..77201243 --- /dev/null +++ b/bsp/buildroot/package/lshw/0001-Makefile-allow-to-pass-additional-LIBS.patch @@ -0,0 +1,44 @@ +From 5af98ca8135ac411364b16720d795224a9b4a178 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Sat, 30 Jul 2016 15:15:14 +0200 +Subject: [PATCH] Makefile: allow to pass additional LIBS + +We need to be able to pass extra LIBS when our toolchain lacks NLS +support, this way we can build libintl and link to it. A good example +is uClibc with locale support disabled. + +Signed-off-by: Gustavo Zacarias +--- + src/Makefile | 2 +- + src/gui/Makefile | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index b50586b..acbdbfa 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -30,7 +30,7 @@ ifneq ($(shell $(LD) --help 2| grep -- --as-needed), ) + LDFLAGS+= -Wl,--as-needed + endif + LDSTATIC=-static +-LIBS=-llshw -lresolv ++LIBS+=-llshw -lresolv + ifeq ($(SQLITE), 1) + LIBS+= $(shell pkg-config --libs sqlite3) + endif +diff --git a/src/gui/Makefile b/src/gui/Makefile +index 332ce57..7f72e3f 100644 +--- a/src/gui/Makefile ++++ b/src/gui/Makefile +@@ -11,7 +11,7 @@ INCLUDES=-I../core $(GTKINCLUDES) + CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS) + CFLAGS=$(CXXFLAGS) $(DEFINES) + GTKLIBS=$(shell pkg-config gtk+-2.0 gmodule-2.0 --libs) +-LIBS=-L../core -llshw -lresolv $(GTKLIBS) ++LIBS+=-L../core -llshw -lresolv $(GTKLIBS) + LDFLAGS= + ifneq ($(shell $(LD) --help 2| grep -- --as-needed), ) + LDFLAGS+= -Wl,--as-needed +-- +2.7.4 + diff --git a/bsp/buildroot/package/lshw/0001-add-LIBS.patch b/bsp/buildroot/package/lshw/0001-add-LIBS.patch deleted file mode 100644 index 70b2a5b6..00000000 --- a/bsp/buildroot/package/lshw/0001-add-LIBS.patch +++ /dev/null @@ -1,30 +0,0 @@ -We need to be able to pass extra LIBS when our toolchain lacks NLS support, -this way we can build libintl and link to it. -A good example is uClibc with locale support disabled. - -Signed-off-by: Gustavo Zacarias - -diff -Nura lshw-B.02.16.orig/src/gui/Makefile lshw-B.02.16/src/gui/Makefile ---- lshw-B.02.16.orig/src/gui/Makefile 2012-05-28 12:32:49.303885759 -0300 -+++ lshw-B.02.16/src/gui/Makefile 2012-05-28 12:33:33.850206001 -0300 -@@ -11,7 +11,7 @@ - CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS) - CFLAGS=$(CXXFLAGS) $(DEFINES) - GTKLIBS=$(shell pkg-config gtk+-2.0 gmodule-2.0 --libs) --LIBS=-L../core -llshw -lresolv -lsqlite3 $(GTKLIBS) -+LIBS+=-L../core -llshw -lresolv -lsqlite3 $(GTKLIBS) - LDFLAGS= - ifneq ($(shell $(LD) --help 2| grep -- --as-needed), ) - LDFLAGS+= -Wl,--as-needed -diff -Nura lshw-B.02.16.orig/src/Makefile lshw-B.02.16/src/Makefile ---- lshw-B.02.16.orig/src/Makefile 2012-05-28 12:32:49.292885680 -0300 -+++ lshw-B.02.16/src/Makefile 2012-05-28 12:33:24.530139060 -0300 -@@ -30,7 +30,7 @@ - LDFLAGS+= -Wl,--as-needed - endif - LDSTATIC=-static --LIBS=-llshw -lresolv -+LIBS+=-llshw -lresolv - ifeq ($(SQLITE), 1) - LIBS+= $(shell pkg-config --libs sqlite3) - endif diff --git a/bsp/buildroot/package/lshw/0002-Fix-musl-build-basename-is-in-libgen.h.patch b/bsp/buildroot/package/lshw/0002-Fix-musl-build-basename-is-in-libgen.h.patch new file mode 100644 index 00000000..d80c62a1 --- /dev/null +++ b/bsp/buildroot/package/lshw/0002-Fix-musl-build-basename-is-in-libgen.h.patch @@ -0,0 +1,78 @@ +From 016bdb133a44bdf42c268ff72ee7aa04af19cfd3 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" +Date: Sat, 27 Aug 2016 01:11:56 +0200 +Subject: [PATCH] Fix musl build: basename() is in libgen.h. + +Also, its argument is not const, so add const_cast. This is risky +because in fact basename() will modify the argument if it ends with / +but that's not the case here. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + src/core/dasd.cc | 1 + + src/core/sysfs.cc | 9 +++++---- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/core/dasd.cc b/src/core/dasd.cc +index 626b8a8..6276101 100644 +--- a/src/core/dasd.cc ++++ b/src/core/dasd.cc +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + using namespace std; + +diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc +index acc9d00..bdd69e3 100644 +--- a/src/core/sysfs.cc ++++ b/src/core/sysfs.cc +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + __ID("@(#) $Id$"); + +@@ -99,7 +100,7 @@ static string sysfs_getbustype(const string & path) + { + devname = + string(fs.path + "/bus/") + string(namelist[i]->d_name) + +- "/devices/" + basename(path.c_str()); ++ "/devices/" + basename(const_cast(path.c_str())); + + if (samefile(devname, path)) + return string(namelist[i]->d_name); +@@ -139,7 +140,7 @@ static string sysfstobusinfo(const string & path) + + if (bustype == "virtio") + { +- string name = basename(path.c_str()); ++ string name = basename(const_cast(path.c_str())); + if (name.compare(0, 6, "virtio") == 0) + return "virtio@" + name.substr(6); + else +@@ -207,7 +208,7 @@ string entry::driver() const + string driverlink = This->devpath + "/driver"; + if (!exists(driverlink)) + return ""; +- return basename(readlink(driverlink).c_str()); ++ return basename(const_cast(readlink(driverlink).c_str())); + } + + +@@ -288,7 +289,7 @@ string entry::name_in_class(const string & classname) const + + string entry::name() const + { +- return basename(This->devpath.c_str()); ++ return basename(const_cast(This->devpath.c_str())); + } + + +-- +2.9.3 + diff --git a/bsp/buildroot/package/lshw/0003-Fix-use-of-LONG_BIT.patch b/bsp/buildroot/package/lshw/0003-Fix-use-of-LONG_BIT.patch new file mode 100644 index 00000000..7d8d7394 --- /dev/null +++ b/bsp/buildroot/package/lshw/0003-Fix-use-of-LONG_BIT.patch @@ -0,0 +1,36 @@ +From 50284ac4400ac3d7562f4765726492caee8ff547 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" +Date: Sat, 27 Aug 2016 01:15:13 +0200 +Subject: [PATCH] Fix use of LONG_BIT + +LONG_BIT is not a sysconf value, it is either 32 or 64. Using it as +a sysconf value will give weird results. + +Originally it was sysconf(_SC_LONG_BIT) (before it was "fixed" by the +gentoo guys). But this is useless: it will always return a value +equal to LONG_BIT: it's either compiled 32-bit or 64-bit so a runtime +lookup doesn't make sense. For this reason, musl has removed the +definition of _SC_LONG_BIT. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + src/core/abi.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/core/abi.cc b/src/core/abi.cc +index 76e5082..a13daaa 100644 +--- a/src/core/abi.cc ++++ b/src/core/abi.cc +@@ -19,8 +19,7 @@ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $"); + + bool scan_abi(hwNode & system) + { +- // are we compiled as 32- or 64-bit process ? +- system.setWidth(sysconf(LONG_BIT)); ++ system.setWidth(LONG_BIT); + + pushd(PROC_SYS); + +-- +2.9.3 + diff --git a/bsp/buildroot/package/lshw/lshw.hash b/bsp/buildroot/package/lshw/lshw.hash index 8dfc7d3e..0694229c 100644 --- a/bsp/buildroot/package/lshw/lshw.hash +++ b/bsp/buildroot/package/lshw/lshw.hash @@ -1,5 +1,2 @@ # Locally calculated -sha256 eb9cc053fa0f1e78685cb695596e73931bfb55d2377e3bc3b8b94aff4c5a489c lshw-B.02.17.tar.gz -sha256 2e5a3d63da8475db17fd90969bcb1930cf19d2b8da7be41edeea5c2a53878382 no-private-uint.patch -sha256 c8365f7ac8fc7a751c78d89ab446111bb1a235bc977a1b21e1b826c2e62361d1 basename-limits-long-bits.patch -sha256 9eba284061574e02a6b162ab20dff07c48693e00f781220ee974ba5c90d1cca9 988f5449791ebf869ab9fa7520463dab4eae3404.patch +sha256 ae22ef11c934364be4fd2a0a1a7aadf4495a0251ec6979da280d342a89ca3c2f lshw-B.02.18.tar.gz diff --git a/bsp/buildroot/package/lshw/lshw.mk b/bsp/buildroot/package/lshw/lshw.mk index e8e67e2c..9227584b 100644 --- a/bsp/buildroot/package/lshw/lshw.mk +++ b/bsp/buildroot/package/lshw/lshw.mk @@ -4,12 +4,8 @@ # ################################################################################ -LSHW_VERSION = B.02.17 +LSHW_VERSION = B.02.18 LSHW_SITE = http://ezix.org/software/files -LSHW_PATCH = \ - http://git.alpinelinux.org/cgit/aports/plain/testing/lshw/basename-limits-long-bits.patch \ - http://git.alpinelinux.org/cgit/aports/plain/testing/lshw/no-private-uint.patch \ - https://github.com/lyonel/lshw/commit/988f5449791ebf869ab9fa7520463dab4eae3404.patch LSHW_LICENSE = GPLv2 LSHW_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/lsof/Config.in b/bsp/buildroot/package/lsof/Config.in index 7b7e47d6..c27cc816 100644 --- a/bsp/buildroot/package/lsof/Config.in +++ b/bsp/buildroot/package/lsof/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_LSOF bool "lsof" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help lsof (LiSt Open Files) The lsof tool lists information about files opened by diff --git a/bsp/buildroot/package/ltp-testsuite/0001-fix-build-on-uClibc-exp10.patch b/bsp/buildroot/package/ltp-testsuite/0001-fix-build-on-uClibc-exp10.patch deleted file mode 100644 index 7a02d952..00000000 --- a/bsp/buildroot/package/ltp-testsuite/0001-fix-build-on-uClibc-exp10.patch +++ /dev/null @@ -1,22 +0,0 @@ -Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch - -exp10 extension is not part of uClibc, so compute it. - - -Signed-off-by: Samuel Martin - -diff -purN ltp-testsuite-20101031.orig/testcases/realtime/lib/libstats.c ltp-testsuite-20101031/testcases/realtime/lib/libstats.c ---- ltp-testsuite-20101031.orig/testcases/realtime/lib/libstats.c 2012-10-22 23:19:02.306646174 +0200 -+++ ltp-testsuite-20101031/testcases/realtime/lib/libstats.c 2012-10-22 23:25:41.554847766 +0200 -@@ -46,6 +46,11 @@ - #include - #include - -+#ifdef __UCLIBC__ -+/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */ -+#define exp10(x) (exp((x) * log(10))) -+#endif /* __UCLIBC__ */ -+ - int save_stats = 0; - - /* static helper functions */ diff --git a/bsp/buildroot/package/ltp-testsuite/0001-fix-uClibc-build.patch b/bsp/buildroot/package/ltp-testsuite/0001-fix-uClibc-build.patch new file mode 100644 index 00000000..231bc833 --- /dev/null +++ b/bsp/buildroot/package/ltp-testsuite/0001-fix-uClibc-build.patch @@ -0,0 +1,51 @@ +O_DIRECTORY is only available if _GNU_SOURCE is defined + +https://github.com/linux-test-project/ltp/pull/58 + +Signed-off-by: Waldemar Brodkorb + +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify01.c ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify01.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify01.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify01.c 2016-03-05 00:55:02.977264913 +0100 +@@ -25,6 +25,7 @@ + * DESCRIPTION + * Check that fanotify work for a file + */ ++#define _GNU_SOURCE + #include "config.h" + + #include +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify02.c ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify02.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify02.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify02.c 2016-03-05 00:54:44.600558612 +0100 +@@ -25,6 +25,7 @@ + * DESCRIPTION + * Check that fanotify work for children of a directory + */ ++#define _GNU_SOURCE + #include "config.h" + + #include +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify03.c ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify03.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify03.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify03.c 2016-03-05 00:55:13.917685403 +0100 +@@ -25,6 +25,7 @@ + * DESCRIPTION + * Check that fanotify permission events work + */ ++#define _GNU_SOURCE + #include "config.h" + + #include +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify04.c ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify04.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/fanotify/fanotify04.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/fanotify/fanotify04.c 2016-03-05 00:55:24.530093286 +0100 +@@ -25,6 +25,8 @@ + * DESCRIPTION + * Check various fanotify special flags + */ ++ ++#define _GNU_SOURCE + #include "config.h" + + #include diff --git a/bsp/buildroot/package/ltp-testsuite/0003-disable-profil-on-uClibc.patch b/bsp/buildroot/package/ltp-testsuite/0003-disable-profil-on-uClibc.patch new file mode 100644 index 00000000..d33b6771 --- /dev/null +++ b/bsp/buildroot/package/ltp-testsuite/0003-disable-profil-on-uClibc.patch @@ -0,0 +1,27 @@ +uClibc-ng has no profil() support + +Signed-off-by: Waldemar Brodkorb + +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/profil/profil01.c ltp-full-20160126/testcases/kernel/syscalls/profil/profil01.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/profil/profil01.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/profil/profil01.c 2016-03-05 01:00:07.328962536 +0100 +@@ -37,6 +37,9 @@ + #define PROFIL_BUFLEN (32*1024) + + char *TCID = "profil01"; ++ ++#if !defined(__UCLIBC__) ++ + int TST_TOTAL = 1; + + static volatile sig_atomic_t profil_done; +@@ -124,3 +127,9 @@ + + tst_exit(); + } ++#else /* systems that dont support profil */ ++int main(void) ++{ ++ tst_brkm(TCONF, NULL, "system doesn't have profil support"); ++} ++#endif diff --git a/bsp/buildroot/package/ltp-testsuite/0004-disable-ustat-on-uClibc.patch b/bsp/buildroot/package/ltp-testsuite/0004-disable-ustat-on-uClibc.patch new file mode 100644 index 00000000..7a1f0171 --- /dev/null +++ b/bsp/buildroot/package/ltp-testsuite/0004-disable-ustat-on-uClibc.patch @@ -0,0 +1,70 @@ +uClibc-ng need __UCLIBC_SV4_DEPRECATED__ enabled for ustat + +Signed-off-by: Waldemar Brodkorb + +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/ustat/ustat01.c ltp-full-20160126/testcases/kernel/syscalls/ustat/ustat01.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/ustat/ustat01.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/ustat/ustat01.c 2016-03-05 01:15:39.492789841 +0100 +@@ -20,7 +20,9 @@ + */ + + #include ++#if !defined(__UCLIBC__) || defined(__UCLIBC_SV4_DEPRECATED__) + #include ++#endif + #include + #include + #include +@@ -30,6 +32,9 @@ + static void setup(void); + + char *TCID = "ustat01"; ++ ++#if !defined(__UCLIBC__) || defined(__UCLIBC_SV4_DEPRECATED__) ++ + int TST_TOTAL = 1; + + static dev_t dev_num; +@@ -79,3 +84,10 @@ + + dev_num = buf.st_dev; + } ++#else /* systems that dont support ustat */ ++int main(void) ++{ ++ tst_brkm(TCONF, NULL, "system doesn't have ustat support"); ++} ++#endif ++ +diff -Nur ltp-full-20160126.orig/testcases/kernel/syscalls/ustat/ustat02.c ltp-full-20160126/testcases/kernel/syscalls/ustat/ustat02.c +--- ltp-full-20160126.orig/testcases/kernel/syscalls/ustat/ustat02.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/kernel/syscalls/ustat/ustat02.c 2016-03-05 01:15:55.677411889 +0100 +@@ -21,7 +21,9 @@ + */ + + #include ++#if !defined(__UCLIBC__) || defined(__UCLIBC_SV4_DEPRECATED__) + #include ++#endif + #include + #include + #include +@@ -32,6 +34,8 @@ + + char *TCID = "ustat02"; + ++#if !defined(__UCLIBC__) || defined(__UCLIBC_SV4_DEPRECATED__) ++ + static dev_t invalid_dev = -1; + static dev_t root_dev; + struct ustat ubuf; +@@ -101,3 +105,9 @@ + + root_dev = buf.st_dev; + } ++#else /* systems that dont support ustat */ ++int main(void) ++{ ++ tst_brkm(TCONF, NULL, "system doesn't have ustat support"); ++} ++#endif diff --git a/bsp/buildroot/package/ltp-testsuite/0005-rpc-fix-uClibc.patch b/bsp/buildroot/package/ltp-testsuite/0005-rpc-fix-uClibc.patch new file mode 100644 index 00000000..1d9152b0 --- /dev/null +++ b/bsp/buildroot/package/ltp-testsuite/0005-rpc-fix-uClibc.patch @@ -0,0 +1,125 @@ +rusers.h is unused and not available for uClibc-ng / libtirpc + +Signed-off-by: Waldemar Brodkorb + +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_auth_destroy/rpc_auth_destroy.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_auth_destroy/rpc_auth_destroy.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_auth_destroy/rpc_auth_destroy.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_auth_destroy/rpc_auth_destroy.c 2016-03-05 02:16:56.274105305 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authnone_create/rpc_authnone_create.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authnone_create/rpc_authnone_create.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authnone_create/rpc_authnone_create.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authnone_create/rpc_authnone_create.c 2016-03-05 02:16:32.641196984 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create/rpc_authunix_create.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create/rpc_authunix_create.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create/rpc_authunix_create.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create/rpc_authunix_create.c 2016-03-05 02:21:09.831850681 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create_default/rpc_authunix_create_default.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create_default/rpc_authunix_create_default.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create_default/rpc_authunix_create_default.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create_default/rpc_authunix_create_default.c 2016-03-05 02:18:57.370759601 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create.c 2016-03-05 02:23:32.113319210 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_limits.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_limits.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_limits.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_limits.c 2016-03-05 02:23:39.221592413 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_stress.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_stress.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_stress.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/rpc_clnttcp_create_stress.c 2016-03-05 02:23:48.565951560 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate.c 2016-03-05 02:23:56.706264429 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate_limits.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate_limits.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate_limits.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/rpc_clntudp_bufcreate_limits.c 2016-03-05 02:24:03.818537786 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create.c 2016-03-05 02:24:10.518795308 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff -Nur ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create_stress.c ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create_stress.c +--- ltp-full-20160126.orig/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create_stress.c 2016-01-26 13:35:25.000000000 +0100 ++++ ltp-full-20160126/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/rpc_clntudp_create_stress.c 2016-03-05 02:24:20.095163371 +0100 +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + #include + #include + #include diff --git a/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.hash b/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.hash index d60b8a44..f3c1be5d 100644 --- a/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.hash +++ b/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.hash @@ -1,4 +1,4 @@ -# From: https://github.com/linux-test-project/ltp/releases/download/20150903/ltp-full-20150903.tar.xz.md5 -md5 4ee849923b69f79b5208e71f3ed20484 ltp-full-20150903.tar.xz -# From: https://github.com/linux-test-project/ltp/releases/download/20150903/ltp-full-20150903.tar.xz.sha1 -sha1 d39bb3a41bfd1fd584703cf066fb2e935af0c00a ltp-full-20150903.tar.xz +# From: https://github.com/linux-test-project/ltp/releases/download/20160126/ltp-full-20160126.tar.xz.md5 +md5 fc3b7411cdf17b2608e26c05d36fc26a ltp-full-20160126.tar.xz +# From: https://github.com/linux-test-project/ltp/releases/download/20160126/ltp-full-20160126.tar.xz.sha1 +sha1 a39c9b05edb942cde23a1f7fa08289a5e427fa04 ltp-full-20160126.tar.xz diff --git a/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.mk b/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.mk index e081cfa7..cf48072f 100644 --- a/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.mk +++ b/bsp/buildroot/package/ltp-testsuite/ltp-testsuite.mk @@ -4,14 +4,22 @@ # ################################################################################ -LTP_TESTSUITE_VERSION = 20150903 +LTP_TESTSUITE_VERSION = 20160126 LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION) LTP_TESTSUITE_LICENSE = GPLv2, GPLv2+ LTP_TESTSUITE_LICENSE_FILES = COPYING LTP_TESTSUITE_CONF_OPTS += \ - --with-power-management-testsuite \ - --with-realtime-testsuite + --with-power-management-testsuite \ + --with-realtime-testsuite + +ifeq ($(BR2_LINUX_KERNEL),y) +LTP_TESTSUITE_DEPENDENCIES += linux +LTP_TESTSUITE_MAKE_ENV += $(LINUX_MAKE_FLAGS) +LTP_TESTSUITE_CONF_OPTS += --with-linux-dir=$(LINUX_DIR) +else +LTP_TESTSUITE_CONF_OPTS += --without-modules +endif # Needs libcap with file attrs which needs attr, so both required ifeq ($(BR2_PACKAGE_LIBCAP)$(BR2_PACKAGE_ATTR),yy) @@ -38,4 +46,15 @@ LTP_TESTSUITE_CONF_ENV += \ LIBS="$(LTP_TESTSUITE_LIBS)" \ SYSROOT="$(STAGING_DIR)" +# Requires uClibc fts and bessel support, normally not enabled +ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) +define LTP_TESTSUITE_REMOVE_UNSUPPORTED + rm -rf $(@D)/testcases/kernel/controllers/cpuset/ + rm -rf $(@D)/testcases/misc/math/float/bessel/ + rm -f $(@D)/testcases/misc/math/float/float_bessel.c +endef +LTP_TESTSUITE_POST_PATCH_HOOKS += LTP_TESTSUITE_REMOVE_UNSUPPORTED +endif + + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/ltrace/Config.in b/bsp/buildroot/package/ltrace/Config.in index ff4d7bd3..7af6be21 100644 --- a/bsp/buildroot/package/ltrace/Config.in +++ b/bsp/buildroot/package/ltrace/Config.in @@ -18,6 +18,6 @@ config BR2_PACKAGE_LTRACE http://ltrace.org -comment "ltrace needs a uclibc or (e)glibc toolchain w/ wchar, dynamic library" +comment "ltrace needs a uClibc or glibc toolchain w/ wchar, dynamic library" depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) diff --git a/bsp/buildroot/package/ltris/ltris.mk b/bsp/buildroot/package/ltris/ltris.mk index e77f2ac9..bbd270ea 100644 --- a/bsp/buildroot/package/ltris/ltris.mk +++ b/bsp/buildroot/package/ltris/ltris.mk @@ -12,18 +12,22 @@ LTRIS_LICENSE_FILES = COPYING LTRIS_DEPENDENCIES = sdl LTRIS_CONF_ENV = \ - SDL_CONFIG="$(STAGING_DIR)/usr/bin/sdl-config" + SDL_CONFIG="$(STAGING_DIR)/usr/bin/sdl-config" \ + LIBS="$(LTRIS_LIBS)" ifeq ($(BR2_PACKAGE_LTRIS_AUDIO),y) -LTRIS_DEPENDENCIES += sdl_mixer -LTRIS_CONF_OPTS += --enable-audio=yes +LTRIS_DEPENDENCIES += sdl_mixer host-pkgconf +LTRIS_CONF_OPTS += --enable-sound +# configure script does NOT use pkg-config to figure out how to link +# with sdl_mixer, breaking static linking as sdl_mixer can use libmad +LTRIS_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs SDL_mixer` else -LTRIS_CONF_OPTS += --disable-audio +LTRIS_CONF_OPTS += --disable-sound endif ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y) LTRIS_DEPENDENCIES += gettext -LTRIS_CONF_ENV += LIBS=-lintl +LTRIS_LIBS += -lintl endif $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/lttng-babeltrace/0002-configure-fix-uuid-support-detection-on-static-build.patch b/bsp/buildroot/package/lttng-babeltrace/0002-configure-fix-uuid-support-detection-on-static-build.patch new file mode 100644 index 00000000..849c0a3d --- /dev/null +++ b/bsp/buildroot/package/lttng-babeltrace/0002-configure-fix-uuid-support-detection-on-static-build.patch @@ -0,0 +1,63 @@ +From 670d0961a823df0db28f39a354430f3dc2519418 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Sat, 28 May 2016 12:53:33 +0200 +Subject: [PATCH] configure: fix uuid support detection on static build + +This change adds uuid support detection using pkg-config, before falling +back on default AC_CHECK_LIB calls. + +Using flags from pkg-config is useful for static build, because they +also include dependency flags; whereas + +AC_CHECK_LIB function achieves its test by trying to link against the +requested library, without taking care of its dependency +requirements/flags. Therefore, in case of static build, it can fail on +the uuid detection like [1], because the uuid's dependency flags +(regarding gettext) are missing. +Instead, using pkg-config to do the check will take care of getting and +setting all required flags. + +This change adds uuid detection using pkg-config helper before falling +back on the standard AC_CHECK_LIB detection for platforms missing +pkg-config. + +This issue [1] has been triggered on Buildroot farms. + +[1] http://autobuild.buildroot.net/results/43b/43b98ddf9eb44152ed9ac4a98d887af14831d8da/build-end.log + +Signed-off-by: Samuel Martin +--- + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 632fe39..b344fa8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -65,6 +65,15 @@ esac + AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"]) + + # Check for libuuid ++PKG_CHECK_MODULES([UUID], [uuid], ++[ ++ LIBS="${UUID_LIBS} ${LIBS}" ++ CFLAGS="${CFLAGS} ${UUID_CFLAGS}" ++ AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.]) ++ have_libuuid=yes ++], ++[ ++# try detecting libuuid without pkg-config + AC_CHECK_LIB([uuid], [uuid_generate], + [ + AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.]) +@@ -83,6 +92,7 @@ AC_CHECK_LIB([uuid], [uuid_generate], + AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.]) + fi + ]) ++]) + ] + ) + AM_CONDITIONAL([BABELTRACE_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"]) +-- +2.8.3 + diff --git a/bsp/buildroot/package/lttng-babeltrace/lttng-babeltrace.mk b/bsp/buildroot/package/lttng-babeltrace/lttng-babeltrace.mk index 5de77fb1..b2e03a99 100644 --- a/bsp/buildroot/package/lttng-babeltrace/lttng-babeltrace.mk +++ b/bsp/buildroot/package/lttng-babeltrace/lttng-babeltrace.mk @@ -10,7 +10,12 @@ LTTNG_BABELTRACE_SOURCE = babeltrace-$(LTTNG_BABELTRACE_VERSION).tar.bz2 LTTNG_BABELTRACE_LICENSE = MIT, LGPLv2.1 (include/babeltrace/list.h), GPLv2 (test code) LTTNG_BABELTRACE_LICENSE_FILES = mit-license.txt gpl-2.0.txt LICENSE -LTTNG_BABELTRACE_DEPENDENCIES = popt util-linux libglib2 +LTTNG_BABELTRACE_DEPENDENCIES = popt util-linux libglib2 host-pkgconf +HOST_LTTNG_BABELTRACE_DEPENDENCIES = \ + host-popt host-util-linux host-libglib2 host-pkgconf + +# for 0002-configure-fix-uuid-support-detection-on-static-build.patch +LTTNG_BABELTRACE_AUTORECONF = YES $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/lttng-libust/lttng-libust.hash b/bsp/buildroot/package/lttng-libust/lttng-libust.hash index 57c7e003..1494acf6 100644 --- a/bsp/buildroot/package/lttng-libust/lttng-libust.hash +++ b/bsp/buildroot/package/lttng-libust/lttng-libust.hash @@ -1,2 +1,6 @@ # http://www.lttng.org/files/lttng-ust/lttng-ust-2.7.1.tar.bz2.sha1 sha1 597ebecb885debb58c263de57f30b1096d4eefc6 lttng-ust-2.7.1.tar.bz2 + +# Locally computed +sha1 2e79c98e458b2e052930fb81441e6ca8377a2ed7 787364e8bac9a146f9d65c763633c2b75eb76463.patch +sha1 cf77ec415111f77573be7917d9b62d8e49dc6304 30307a67b48641875b122d8f832bbfb454e95d92.patch diff --git a/bsp/buildroot/package/lttng-libust/lttng-libust.mk b/bsp/buildroot/package/lttng-libust/lttng-libust.mk index 4a65057c..61ffed42 100644 --- a/bsp/buildroot/package/lttng-libust/lttng-libust.mk +++ b/bsp/buildroot/package/lttng-libust/lttng-libust.mk @@ -10,6 +10,10 @@ LTTNG_LIBUST_SOURCE = lttng-ust-$(LTTNG_LIBUST_VERSION).tar.bz2 LTTNG_LIBUST_LICENSE = LGPLv2.1, MIT (system headers), GPLv2 (liblttng-ust-ctl/ustctl.c used by lttng-sessiond) LTTNG_LIBUST_LICENSE_FILES = COPYING +LTTNG_LIBUST_PATCH = \ + https://github.com/lttng/lttng-ust/commit/787364e8bac9a146f9d65c763633c2b75eb76463.patch \ + https://github.com/lttng/lttng-ust/commit/30307a67b48641875b122d8f832bbfb454e95d92.patch + LTTNG_LIBUST_INSTALL_STAGING = YES LTTNG_LIBUST_DEPENDENCIES = liburcu util-linux diff --git a/bsp/buildroot/package/lttng-tools/0001-Fix-build-failure-when-__GLIBC_PREREQ-is-missing.patch b/bsp/buildroot/package/lttng-tools/0001-Fix-build-failure-when-__GLIBC_PREREQ-is-missing.patch new file mode 100644 index 00000000..2c01dea6 --- /dev/null +++ b/bsp/buildroot/package/lttng-tools/0001-Fix-build-failure-when-__GLIBC_PREREQ-is-missing.patch @@ -0,0 +1,55 @@ +From: Baruch Siach +Date: Tue, 8 Mar 2016 14:25:34 +0200 +Subject: [PATCH] Fix: build failure when __GLIBC_PREREQ is missing + +The musl C library does not provide the __GLIBC_PREREQ macro. Instead of +relying on glibc version test, check directly for the availability of +epoll_create1(). + +Signed-off-by: Baruch Siach +--- +Patch status: sent upstream rebased on master branch +(http://lists.lttng.org/pipermail/lttng-dev/2016-March/025593.html) + + configure.ac | 2 +- + src/common/compat/poll.h | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 66d83b60b017..4fc1160c9a08 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -70,7 +70,7 @@ AC_CHECK_FUNCS([ \ + gethostbyname gethostname getpagesize localtime_r memchr memset \ + mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \ + strncasecmp strndup strpbrk strrchr strstr strtol strtoul \ +- strtoull \ ++ strtoull epoll_create1 \ + ]) + + # Babeltrace viewer check +diff --git a/src/common/compat/poll.h b/src/common/compat/poll.h +index 699901848dc1..84f25d5c85aa 100644 +--- a/src/common/compat/poll.h ++++ b/src/common/compat/poll.h +@@ -73,7 +73,7 @@ enum { + LPOLLNVAL = EPOLLHUP, + LPOLLRDHUP = EPOLLRDHUP, + /* Close on exec feature of epoll */ +-#if __GLIBC_PREREQ(2, 9) ++#if defined(HAVE_EPOLL_CREATE1) && defined(EPOLL_CLOEXEC) + LTTNG_CLOEXEC = EPOLL_CLOEXEC, + #else + /* +@@ -127,7 +127,7 @@ extern int compat_epoll_create(struct lttng_poll_event *events, + #define lttng_poll_create(events, size, flags) \ + compat_epoll_create(events, size, flags) + +-#if __GLIBC_PREREQ(2, 9) ++#if defined(HAVE_EPOLL_CREATE1) && defined(EPOLL_CLOEXEC) + static inline int compat_glibc_epoll_create(int size __attribute__((unused)), + int flags) + { +-- +2.7.0 + diff --git a/bsp/buildroot/package/lttng-tools/0002-Fix-add-missing-sys-types.h-header.patch b/bsp/buildroot/package/lttng-tools/0002-Fix-add-missing-sys-types.h-header.patch new file mode 100644 index 00000000..5ce2da52 --- /dev/null +++ b/bsp/buildroot/package/lttng-tools/0002-Fix-add-missing-sys-types.h-header.patch @@ -0,0 +1,29 @@ +From: Baruch Siach +Date: Tue, 8 Mar 2016 14:40:49 +0200 +Subject: [PATCH] Fix: add missing sys/types.h header + +The musl C library requires inclusion of sys/types.h for mode_t. + +Signed-off-by: Baruch Siach +--- +Patch status: sent upstream +(http://lists.lttng.org/pipermail/lttng-dev/2016-March/025594.html) + + src/common/runas.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/common/runas.h b/src/common/runas.h +index 2c5565af3646..ac1143eecf84 100644 +--- a/src/common/runas.h ++++ b/src/common/runas.h +@@ -19,6 +19,7 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + ++#include + #include + #include + +-- +2.7.0 + diff --git a/bsp/buildroot/package/lttng-tools/lttng-tools.mk b/bsp/buildroot/package/lttng-tools/lttng-tools.mk index c33d6c24..e5b12079 100644 --- a/bsp/buildroot/package/lttng-tools/lttng-tools.mk +++ b/bsp/buildroot/package/lttng-tools/lttng-tools.mk @@ -10,6 +10,8 @@ LTTNG_TOOLS_SOURCE = lttng-tools-$(LTTNG_TOOLS_VERSION).tar.bz2 LTTNG_TOOLS_LICENSE = GPLv2+, LGPLv2.1+ (include/lttng/*, src/lib/lttng-ctl/*) LTTNG_TOOLS_LICENSE_FILES = gpl-2.0.txt lgpl-2.1.txt LICENSE LTTNG_TOOLS_CONF_OPTS += --with-xml-prefix=$(STAGING_DIR)/usr +# Patching configure.ac +LTTNG_TOOLS_AUTORECONF = YES # The host-lttng-babeltrace technically isn't a required build # dependency. However, having the babeltrace utilities built for the diff --git a/bsp/buildroot/package/lua-ev/lua-ev.hash b/bsp/buildroot/package/lua-ev/lua-ev.hash new file mode 100644 index 00000000..522e7e7e --- /dev/null +++ b/bsp/buildroot/package/lua-ev/lua-ev.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 f7f5df5ecfe4bd54797261d1b1bd3f770d39128b7aba72deef6d1d8d8e2b53fe lua-ev-v1.4.tar.gz diff --git a/bsp/buildroot/package/lua-messagepack/lua-messagepack.hash b/bsp/buildroot/package/lua-messagepack/lua-messagepack.hash index e4a442d7..b46b686f 100644 --- a/bsp/buildroot/package/lua-messagepack/lua-messagepack.hash +++ b/bsp/buildroot/package/lua-messagepack/lua-messagepack.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 7b173f90a7d1c473aa176de8358060e5e7d312c97c5add327007bf04709e0300 lua-messagepack-0.3.3-1.src.rock -sha256 bd7d6e02d40b53ed143a8c7222c6ae0cbb7c7fd4fafda9c5f5326423d06ea25d lua-messagepack-lua53-0.3.3-1.src.rock +sha256 be6827c93383c8d7214c9ac9b7a62ab04186db4c6c2a3a7b36036157784f58b8 lua-messagepack-0.3.4-1.src.rock +sha256 5ab74601696973a66802de1fec614859db0d93d5fa960fac0f70cb04a490e5e5 lua-messagepack-lua53-0.3.4-1.src.rock diff --git a/bsp/buildroot/package/lua-messagepack/lua-messagepack.mk b/bsp/buildroot/package/lua-messagepack/lua-messagepack.mk index d7494733..18a4e4ab 100644 --- a/bsp/buildroot/package/lua-messagepack/lua-messagepack.mk +++ b/bsp/buildroot/package/lua-messagepack/lua-messagepack.mk @@ -4,7 +4,7 @@ # ################################################################################ -LUA_MESSAGEPACK_VERSION_UPSTREAM = 0.3.3 +LUA_MESSAGEPACK_VERSION_UPSTREAM = 0.3.4 ifeq ($(BR2_PACKAGE_LUA_5_3),y) LUA_MESSAGEPACK_VERSION = lua53-$(LUA_MESSAGEPACK_VERSION_UPSTREAM)-1 else diff --git a/bsp/buildroot/package/lua-msgpack-native/lua-msgpack-native.hash b/bsp/buildroot/package/lua-msgpack-native/lua-msgpack-native.hash new file mode 100644 index 00000000..cfc59831 --- /dev/null +++ b/bsp/buildroot/package/lua-msgpack-native/lua-msgpack-native.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 025cf91d509fa3985869d18ef9b8eaeb875ff3c9fcf6467beeed6eab3bb35c93 lua-msgpack-native-41a91b994c70389dc9daa1a15678741d8ec41749.tar.gz diff --git a/bsp/buildroot/package/lua/5.3.2/0001-root-path.patch b/bsp/buildroot/package/lua/5.3.3/0001-root-path.patch similarity index 100% rename from bsp/buildroot/package/lua/5.3.2/0001-root-path.patch rename to bsp/buildroot/package/lua/5.3.3/0001-root-path.patch diff --git a/bsp/buildroot/package/lua/5.3.2/0002-shared-libs-for-lua.patch b/bsp/buildroot/package/lua/5.3.3/0002-shared-libs-for-lua.patch similarity index 100% rename from bsp/buildroot/package/lua/5.3.2/0002-shared-libs-for-lua.patch rename to bsp/buildroot/package/lua/5.3.3/0002-shared-libs-for-lua.patch diff --git a/bsp/buildroot/package/lua/5.3.2/0004-lua-pc.patch b/bsp/buildroot/package/lua/5.3.3/0004-lua-pc.patch similarity index 97% rename from bsp/buildroot/package/lua/5.3.2/0004-lua-pc.patch rename to bsp/buildroot/package/lua/5.3.3/0004-lua-pc.patch index 811d9313..edf7ec33 100644 --- a/bsp/buildroot/package/lua/5.3.2/0004-lua-pc.patch +++ b/bsp/buildroot/package/lua/5.3.3/0004-lua-pc.patch @@ -14,7 +14,7 @@ Index: b/etc/lua.pc +# grep '^V=' ../Makefile +V= 5.3 +# grep '^R=' ../Makefile -+R= 5.3.2 ++R= 5.3.3 + +# grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/' +prefix= /usr @@ -33,7 +33,7 @@ Index: b/etc/lua.pc +Name: Lua +Description: An Extensible Extension Language +Version: ${R} -+Requires: ++Requires: +Libs: -L${libdir} -llua -lm +Cflags: -I${includedir} + diff --git a/bsp/buildroot/package/lua/5.3.2/0011-linenoise.patch b/bsp/buildroot/package/lua/5.3.3/0011-linenoise.patch similarity index 100% rename from bsp/buildroot/package/lua/5.3.2/0011-linenoise.patch rename to bsp/buildroot/package/lua/5.3.3/0011-linenoise.patch diff --git a/bsp/buildroot/package/lua/5.3.3/0012-fix-loop-parser.patch b/bsp/buildroot/package/lua/5.3.3/0012-fix-loop-parser.patch new file mode 100644 index 00000000..7b321e5d --- /dev/null +++ b/bsp/buildroot/package/lua/5.3.3/0012-fix-loop-parser.patch @@ -0,0 +1,31 @@ +Expression list with four or more expressions in a 'for' loop can crash the interpreter. + +Fetch from: https://www.lua.org/bugs.html#5.3.3-1 + +Signed-off-by: Francois Perrad + +--- a/src/lparser.c ++++ b/src/lparser.c +@@ -323,6 +323,8 @@ + luaK_nil(fs, reg, extra); + } + } ++ if (nexps > nvars) ++ ls->fs->freereg -= nexps - nvars; /* remove extra values */ + } + + +@@ -1160,11 +1162,8 @@ + int nexps; + checknext(ls, '='); + nexps = explist(ls, &e); +- if (nexps != nvars) { ++ if (nexps != nvars) + adjust_assign(ls, nvars, nexps, &e); +- if (nexps > nvars) +- ls->fs->freereg -= nexps - nvars; /* remove extra values */ +- } + else { + luaK_setoneret(ls->fs, &e); /* close last expression */ + luaK_storevar(ls->fs, &lh->v, &e); +-- diff --git a/bsp/buildroot/package/lua/lua.hash b/bsp/buildroot/package/lua/lua.hash index 8f0242e0..04459e9e 100644 --- a/bsp/buildroot/package/lua/lua.hash +++ b/bsp/buildroot/package/lua/lua.hash @@ -1,6 +1,6 @@ # Hashes from: http://www.lua.org/ftp/ -md5 33278c2ab5ee3c1a875be8d55c1ca2a1 lua-5.3.2.tar.gz -sha1 7a47adef554fdca7d0c5536148de34579134a973 lua-5.3.2.tar.gz +md5 703f75caa4fdf4a911c1a72e67a27498 lua-5.3.3.tar.gz +sha1 a0341bc3d1415b814cc738b2ec01ae56045d64ef lua-5.3.3.tar.gz md5 913fdb32207046b273fdb17aad70be13 lua-5.2.4.tar.gz sha1 ef15259421197e3d85b7d6e4871b8c26fd82c1cf lua-5.2.4.tar.gz diff --git a/bsp/buildroot/package/lua/lua.mk b/bsp/buildroot/package/lua/lua.mk index 37992f26..be332843 100644 --- a/bsp/buildroot/package/lua/lua.mk +++ b/bsp/buildroot/package/lua/lua.mk @@ -5,7 +5,7 @@ ################################################################################ ifeq ($(BR2_PACKAGE_LUA_5_3),y) -LUA_VERSION = 5.3.2 +LUA_VERSION = 5.3.3 else ifeq ($(BR2_PACKAGE_LUA_5_2),y) LUA_VERSION = 5.2.4 @@ -62,9 +62,6 @@ endef LUA_POST_PATCH_HOOKS += LUA_32BITS_LUACONF endif -# We never want to have host-readline and host-ncurses as dependencies -# of host-lua. -HOST_LUA_DEPENDENCIES = HOST_LUA_CFLAGS = -Wall -fPIC -DLUA_USE_DLOPEN -DLUA_USE_POSIX HOST_LUA_MYLIBS = -ldl diff --git a/bsp/buildroot/package/luaexpatutils/luaexpatutils.hash b/bsp/buildroot/package/luaexpatutils/luaexpatutils.hash new file mode 100644 index 00000000..fe32eea1 --- /dev/null +++ b/bsp/buildroot/package/luaexpatutils/luaexpatutils.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 9b50bef94a6ddb6e6d4fffd5392f5c53d15e1a048966b559c4f8eda5e84d4517 luaexpatutils-88c228365b084224c911d34aff06002634b38b50.tar.gz diff --git a/bsp/buildroot/package/luajit/Config.in b/bsp/buildroot/package/luajit/Config.in index 8ce528b2..f9285e8a 100644 --- a/bsp/buildroot/package/luajit/Config.in +++ b/bsp/buildroot/package/luajit/Config.in @@ -3,7 +3,8 @@ config BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS default y if BR2_i386 || \ (BR2_x86_64 && BR2_HOSTARCH='x86_64') || \ BR2_powerpc || BR2_arm || BR2_armeb || \ - ((BR2_mips || BR2_mipsel) && !BR2_MIPS_SOFT_FLOAT) + ((BR2_mips || BR2_mipsel) && !BR2_MIPS_SOFT_FLOAT && \ + !BR2_mips_32r6 && !BR2_mips_64r6) config BR2_PACKAGE_LUAJIT bool "luajit" diff --git a/bsp/buildroot/package/luajit/luajit.mk b/bsp/buildroot/package/luajit/luajit.mk index d45598e1..81a26603 100644 --- a/bsp/buildroot/package/luajit/luajit.mk +++ b/bsp/buildroot/package/luajit/luajit.mk @@ -64,12 +64,15 @@ define LUAJIT_INSTALL_SYMLINK endef LUAJIT_POST_INSTALL_TARGET_HOOKS += LUAJIT_INSTALL_SYMLINK +# host-efl package needs host-luajit to be linked dynamically. define HOST_LUAJIT_BUILD_CMDS - $(MAKE) PREFIX="/usr" BUILDMODE=static -C $(@D) amalg + $(MAKE) PREFIX="$(HOST_DIR)/usr" BUILDMODE=dynamic \ + TARGET_LDFLAGS="$(HOST_LDFLAGS)" \ + -C $(@D) amalg endef define HOST_LUAJIT_INSTALL_CMDS - $(MAKE) PREFIX="/usr" DESTDIR="$(HOST_DIR)" -C $(@D) install + $(MAKE) PREFIX="$(HOST_DIR)/usr" LDCONFIG=true -C $(@D) install endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/luaposix/0001-sched-workaround-glibc-_POSIX_PRIORITY_SCHEDULING-bu.patch b/bsp/buildroot/package/luaposix/0001-sched-workaround-glibc-_POSIX_PRIORITY_SCHEDULING-bu.patch deleted file mode 100644 index 3853e9fb..00000000 --- a/bsp/buildroot/package/luaposix/0001-sched-workaround-glibc-_POSIX_PRIORITY_SCHEDULING-bu.patch +++ /dev/null @@ -1,59 +0,0 @@ -From de2a9b45e7b4a89affa3ac6d0a010cc627ab4a87 Mon Sep 17 00:00:00 2001 -From: "Gary V. Vaughan" -Date: Mon, 6 Apr 2015 18:39:46 -0700 -Subject: [PATCH 1/1] sched: workaround glibc _POSIX_PRIORITY_SCHEDULING bug. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Close #223. -* configure.ac (AC_CHECK_HEADERS): Add sched.h. -* ext/posix/sched.c: Remove unistd.h; Predicate use of priority -scheduling APIs on presence of sched.h instead of -_POSIX_PRIORITY_SCHEDULING macro erroneously defined by glibc on -Linux. -Reported by ncopa@github.com. - -Backported from: 11cc8a2973569ec7fb1e7c2466dca0282944b124 - -Signed-off-by: Gary V. Vaughan -[Backport] -Signed-off-by: Jörg Krause ---- - configure.ac | 2 +- - ext/posix/sched.c | 5 +++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index aa18318..89a2feb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -114,7 +114,7 @@ gl_INIT - - ## Check for header files - AC_HEADER_STDC --AC_CHECK_HEADERS([crypt.h strings.h sys/statvfs.h]) -+AC_CHECK_HEADERS([crypt.h sched.h strings.h sys/statvfs.h]) - AC_CHECK_HEADERS([net/if.h linux/netlink.h], [], [], [ - #include - ]) -diff --git a/ext/posix/sched.c b/ext/posix/sched.c -index 13b196b..f338d73 100644 ---- a/ext/posix/sched.c -+++ b/ext/posix/sched.c -@@ -21,9 +21,10 @@ - - #include - --#include /* for _POSIX_PRIORITY_SCHEDULING */ -+/* cannot use unistd.h for _POSIX_PRIORITY_SCHEDULING, because on Linux -+ glibc it is defined even though the APIs are not implemented :-( */ - --#ifdef _POSIX_PRIORITY_SCHEDULING -+#ifdef HAVE_SCHED_H - #include - #endif - --- -2.5.2 - diff --git a/bsp/buildroot/package/luaposix/Config.in b/bsp/buildroot/package/luaposix/Config.in index 8b24574b..9707cdee 100644 --- a/bsp/buildroot/package/luaposix/Config.in +++ b/bsp/buildroot/package/luaposix/Config.in @@ -1,15 +1,13 @@ config BR2_PACKAGE_LUAPOSIX bool "luaposix" depends on BR2_PACKAGE_HAS_LUAINTERPRETER - select BR2_PACKAGE_NCURSES select BR2_PACKAGE_LUABITOP if BR2_PACKAGE_LUA_5_1 # LuaBitOp is already included in LuaJIT help - luaposix is a POSIX binding, including curses, for Lua 5.1, - 5.2 and 5.3; like most libraries it simply binds to C APIs on - the underlying system, so it won't work on non-POSIX - systems. However, it does try to detect the level of POSIX - conformance of the underlying system and bind only available - APIs. + This is a POSIX binding for LuaJIT, Lua 5.1, 5.2 and 5.3; + like most libraries it simply binds to C APIs on the + underlying system, so it won't work on non-POSIX systems. + However, it does try to detect the level of POSIX conformance + of the underlying system and bind only available APIs. https://github.com/luaposix/luaposix diff --git a/bsp/buildroot/package/luaposix/luaposix.hash b/bsp/buildroot/package/luaposix/luaposix.hash new file mode 100644 index 00000000..e2216be7 --- /dev/null +++ b/bsp/buildroot/package/luaposix/luaposix.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 e66262f5b7fe1c32c65f17a5ef5ffb31c4d1877019b4870a5d373e2ab6526a21 luaposix-33.4.0.tar.gz diff --git a/bsp/buildroot/package/luaposix/luaposix.mk b/bsp/buildroot/package/luaposix/luaposix.mk index 24b567f7..ea3af16f 100644 --- a/bsp/buildroot/package/luaposix/luaposix.mk +++ b/bsp/buildroot/package/luaposix/luaposix.mk @@ -4,13 +4,11 @@ # ################################################################################ -LUAPOSIX_VERSION = 33.3.1 +LUAPOSIX_VERSION = 33.4.0 LUAPOSIX_SITE = $(call github,luaposix,luaposix,release-v$(LUAPOSIX_VERSION)) LUAPOSIX_LICENSE = MIT LUAPOSIX_LICENSE_FILES = COPYING -LUAPOSIX_DEPENDENCIES = luainterpreter host-lua ncurses -# 0001-sched-workaround-glibc-_POSIX_PRIORITY_SCHEDULING-bu.patch -LUAPOSIX_AUTORECONF = YES +LUAPOSIX_DEPENDENCIES = luainterpreter host-lua LUAPOSIX_CONF_OPTS = --libdir="/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" --datarootdir="/usr/share/lua/$(LUAINTERPRETER_ABIVER)" $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/luarocks/luarocks.mk b/bsp/buildroot/package/luarocks/luarocks.mk index 656b832b..eddd4354 100644 --- a/bsp/buildroot/package/luarocks/luarocks.mk +++ b/bsp/buildroot/package/luarocks/luarocks.mk @@ -60,5 +60,4 @@ define LUAROCKS_FINALIZE_TARGET rm -rf $(TARGET_DIR)/usr/lib/luarocks endef -TARGET_FINALIZE_HOOKS += LUAROCKS_FINALIZE_TARGET - +LUAROCKS_TARGET_FINALIZE_HOOKS += LUAROCKS_FINALIZE_TARGET diff --git a/bsp/buildroot/package/luv/luv.hash b/bsp/buildroot/package/luv/luv.hash index 20aaffe5..140fe963 100644 --- a/bsp/buildroot/package/luv/luv.hash +++ b/bsp/buildroot/package/luv/luv.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 d5b21def19a5c411adaac3e817e2c7d3825d1062d8d0024b6ebd7a1f0a0a58d0 luv-1.8.0-0.tar.gz +sha256 2eab80360f8ab6793612bb59d067a56664ac9a5a14988e0a09a53d0bff20c131 luv-1.9.1-0.tar.gz diff --git a/bsp/buildroot/package/luv/luv.mk b/bsp/buildroot/package/luv/luv.mk index c5648c56..43cecf57 100644 --- a/bsp/buildroot/package/luv/luv.mk +++ b/bsp/buildroot/package/luv/luv.mk @@ -4,7 +4,7 @@ # ################################################################################ -LUV_VERSION = 1.8.0-0 +LUV_VERSION = 1.9.1-0 LUV_SITE = https://github.com/luvit/luv/releases/download/$(LUV_VERSION) LUV_LICENSE = Apache-2.0 LUV_LICENSE_FILES = LICENSE.txt diff --git a/bsp/buildroot/package/luvi/luvi.hash b/bsp/buildroot/package/luvi/luvi.hash index 325c84f5..99fd69e7 100644 --- a/bsp/buildroot/package/luvi/luvi.hash +++ b/bsp/buildroot/package/luvi/luvi.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 883fca4d50c18dc5b248144a00526b718e7c4c91841123b4a0732fef2b8791f4 luvi-src-v2.5.1.tar.gz +sha256 b36a3b96ec5852398338bc38567c5bb589783487c65130e1d702ff98fac3a6b7 luvi-src-v2.7.5.tar.gz diff --git a/bsp/buildroot/package/luvi/luvi.mk b/bsp/buildroot/package/luvi/luvi.mk index d83933e9..ade63f5f 100644 --- a/bsp/buildroot/package/luvi/luvi.mk +++ b/bsp/buildroot/package/luvi/luvi.mk @@ -4,7 +4,7 @@ # ################################################################################ -LUVI_VERSION = v2.5.1 +LUVI_VERSION = v2.7.5 LUVI_SOURCE = luvi-src-$(LUVI_VERSION).tar.gz LUVI_SITE = https://github.com/luvit/luvi/releases/download/$(LUVI_VERSION) LUVI_LICENSE = Apache-2.0 diff --git a/bsp/buildroot/package/lvm2/lvm2.hash b/bsp/buildroot/package/lvm2/lvm2.hash index 17434ff9..65945a1f 100644 --- a/bsp/buildroot/package/lvm2/lvm2.hash +++ b/bsp/buildroot/package/lvm2/lvm2.hash @@ -1,2 +1,2 @@ # From ftp://sources.redhat.com/pub/lvm2/releases/sha512.sum -sha512 d827cbd5dde6079f9fedb6bd64025d33a93a00cd1af6d57873be78df07069c5b9921077d6be98a6445829cfea28ba7a5520db0be58d6e7a7824f1a722d739fb6 LVM2.2.02.138.tgz +sha512 9544bb7706488ac128d477af7294bcfd7b7e47cb0b1d604ea52c4545d6c3a5a71311945994dd1114cb1ce086d2006a35ef1d8b0fdd3082dfe5cc468cb0168057 LVM2.2.02.162.tgz diff --git a/bsp/buildroot/package/lvm2/lvm2.mk b/bsp/buildroot/package/lvm2/lvm2.mk index 0d0dc2c8..8a51120e 100644 --- a/bsp/buildroot/package/lvm2/lvm2.mk +++ b/bsp/buildroot/package/lvm2/lvm2.mk @@ -4,7 +4,7 @@ # ################################################################################ -LVM2_VERSION = 2.02.138 +LVM2_VERSION = 2.02.162 LVM2_SOURCE = LVM2.$(LVM2_VERSION).tgz LVM2_SITE = ftp://sources.redhat.com/pub/lvm2/releases LVM2_INSTALL_STAGING = YES @@ -43,7 +43,7 @@ else LVM2_CONF_OPTS += --disable-applib endif -ifeq ($(BR2_arc),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) LVM2_CONF_ENV += ac_cv_flag_HAVE_PIE=no endif diff --git a/bsp/buildroot/package/lxc/0002-Fix-redefinition-of-struct-in6_addr.patch b/bsp/buildroot/package/lxc/0002-Fix-redefinition-of-struct-in6_addr.patch new file mode 100644 index 00000000..b48ece38 --- /dev/null +++ b/bsp/buildroot/package/lxc/0002-Fix-redefinition-of-struct-in6_addr.patch @@ -0,0 +1,43 @@ +From 245bba9aadf8e7aea487b6fbd851f86c75524552 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Thu, 19 May 2016 21:51:27 +0200 +Subject: [PATCH] Fix redefinition of struct in6_addr +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +struct in6_addr is both defined in the C library header +and the Linux kernel header . + +lxc_user_nic.c includes both and . The +later one includes . + +This breaks build with the musl libc: + error: redefinition of ‘struct in6_addr’ + +As lxc_user_nic.c does not use any references from it +is safe to remove this header. + +Upstream status: Pending +https://github.com/lxc/lxc/pull/1029 + +Signed-off-by: Jörg Krause +--- + src/lxc/lxc_user_nic.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/lxc/lxc_user_nic.c b/src/lxc/lxc_user_nic.c +index 87780ca..0cb38ba 100644 +--- a/src/lxc/lxc_user_nic.c ++++ b/src/lxc/lxc_user_nic.c +@@ -41,7 +41,6 @@ + #include + #include + #include +-#include + #include + #include + #include +-- +2.8.2 + diff --git a/bsp/buildroot/package/lxc/Config.in b/bsp/buildroot/package/lxc/Config.in index a5df3e32..6a39d2eb 100644 --- a/bsp/buildroot/package/lxc/Config.in +++ b/bsp/buildroot/package/lxc/Config.in @@ -5,9 +5,7 @@ config BR2_PACKAGE_LXC depends on BR2_USE_MMU # fork() # build system forcefully builds a shared library depends on !BR2_STATIC_LIBS - # the toolchain doesn't support setns syscall - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # setns() system call help Linux Containers (LXC), provides the ability to group and isolate of a set of processes in a jail by virtualizing and accounting the @@ -17,7 +15,6 @@ config BR2_PACKAGE_LXC comment "lxc needs a toolchain w/ threads, headers >= 3.0, dynamic library" depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \ || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/lz4/lz4.hash b/bsp/buildroot/package/lz4/lz4.hash new file mode 100644 index 00000000..12812846 --- /dev/null +++ b/bsp/buildroot/package/lz4/lz4.hash @@ -0,0 +1,2 @@ +# sha256 locally computed +sha256 9d4d00614d6b9dec3114b33d1224b6262b99ace24434c53487a0c8fd0b18cfed lz4-r131.tar.gz diff --git a/bsp/buildroot/package/lz4/lz4.mk b/bsp/buildroot/package/lz4/lz4.mk index 38e10d8d..a5a41d35 100644 --- a/bsp/buildroot/package/lz4/lz4.mk +++ b/bsp/buildroot/package/lz4/lz4.mk @@ -4,15 +4,15 @@ # ################################################################################ -LZ4_VERSION = r123 +LZ4_VERSION = r131 LZ4_SITE = $(call github,Cyan4973,lz4,$(LZ4_VERSION)) LZ4_INSTALL_STAGING = YES -LZ4_LICENSE = BSD-2c -LZ4_LICENSE_FILES = LICENSE +LZ4_LICENSE = BSD-2c (library), GPLv2+ (programs) +LZ4_LICENSE_FILES = lib/LICENSE programs/COPYING ifeq ($(BR2_STATIC_LIBS),y) define LZ4_DISABLE_SHARED - $(SED) '/SHARED/d' $(@D)/Makefile + $(SED) '/SHARED/d' $(@D)/lib/Makefile endef LZ4_POST_PATCH_HOOKS += LZ4_DISABLE_SHARED endif @@ -22,19 +22,22 @@ define HOST_LZ4_BUILD_CMDS endef define HOST_LZ4_INSTALL_CMDS - $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) install DESTDIR=$(HOST_DIR) + $(MAKE) $(HOST_CONFIGURE_OPTS) PREFIX=$(HOST_DIR)/usr \ + install -C $(@D) endef define LZ4_BUILD_CMDS - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) liblz4 + $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)/lib endef define LZ4_INSTALL_STAGING_CMDS - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) install DESTDIR=$(STAGING_DIR) + $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(STAGING_DIR) \ + PREFIX=/usr install -C $(@D) endef define LZ4_INSTALL_TARGET_CMDS - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) install DESTDIR=$(TARGET_DIR) + $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) \ + PREFIX=/usr install -C $(@D)/lib endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/lzlib/Config.in b/bsp/buildroot/package/lzlib/Config.in index c1230191..32328c5e 100644 --- a/bsp/buildroot/package/lzlib/Config.in +++ b/bsp/buildroot/package/lzlib/Config.in @@ -1,10 +1,10 @@ config BR2_PACKAGE_LZLIB bool "lzlib" select BR2_PACKAGE_ZLIB - depends on BR2_PACKAGE_HAS_LUAINTERPRETER + depends on BR2_PACKAGE_LUA help This package provides a library to access zlib library functions and also to read/write gzip files using an interface similar to the base io package. - http://luaforge.net/projects/lzlib/ + https://github.com/LuaDist/lzlib diff --git a/bsp/buildroot/package/lzlib/lzlib.hash b/bsp/buildroot/package/lzlib/lzlib.hash index d823e8b2..f983862e 100644 --- a/bsp/buildroot/package/lzlib/lzlib.hash +++ b/bsp/buildroot/package/lzlib/lzlib.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 c10055bde2c0a0ed14f22c1ee0701910b0b9885245baf7911201ab4dfd3b828c lzlib-0.4.work3-1.src.rock +sha256 cbb0cac5825e940b4ea2f31a336d2aaf6db39847d456920afd8e443804420dbb lzlib-0.4.3.tar.gz diff --git a/bsp/buildroot/package/lzlib/lzlib.mk b/bsp/buildroot/package/lzlib/lzlib.mk index ec37842e..91f380af 100644 --- a/bsp/buildroot/package/lzlib/lzlib.mk +++ b/bsp/buildroot/package/lzlib/lzlib.mk @@ -4,9 +4,11 @@ # ################################################################################ -LZLIB_VERSION = 0.4.work3-1 -LZLIB_SUBDIR = lzlib-0.4-work3 +LZLIB_VERSION = 0.4.3 +LZLIB_SITE = $(call github,LuaDist,lzlib,$(LZLIB_VERSION)) LZLIB_DEPENDENCIES = zlib LZLIB_LICENSE = MIT +LZLIB_CONF_OPTS = -DINSTALL_CMOD="/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" \ + -DINSTALL_LMOD="/usr/share/lua/$(LUAINTERPRETER_ABIVER)" -$(eval $(luarocks-package)) +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/lzop/0001-build-with-gcc6.patch b/bsp/buildroot/package/lzop/0001-build-with-gcc6.patch new file mode 100644 index 00000000..774ee54a --- /dev/null +++ b/bsp/buildroot/package/lzop/0001-build-with-gcc6.patch @@ -0,0 +1,37 @@ +From: Jaap Crezee +Date: Sat, 25 june 2016 13:13:00 +0200 +Subject: [PATCH 1/1] fix compilation host-lzop with gcc-6 + +This patch allows host-lzop to be compiled with host systems containing gcc-6 + +Upstream patch found here: +https://build.opensuse.org/package/view_file/Archiving/lzop/lzop-1.03-gcc6.patch?expand=1 + +Signed-off-by: Jaap Crezee + +--- a/src/miniacc.h.orig 2016-02-10 16:09:23.247315866 +0100 ++++ b/src/miniacc.h 2016-02-10 16:12:14.973297054 +0100 +@@ -4469,12 +4469,12 @@ + #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150) + #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC) + #else +- ACCCHK_ASSERT((1 << (8*SIZEOF_INT-1)) < 0) ++ ACCCHK_ASSERT((int)(1u << (8*SIZEOF_INT-1)) < 0) + #endif + ACCCHK_ASSERT((1u << (8*SIZEOF_INT-1)) > 0) + #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC) + #else +- ACCCHK_ASSERT((1l << (8*SIZEOF_LONG-1)) < 0) ++ ACCCHK_ASSERT((long)(1ul << (8*SIZEOF_LONG-1)) < 0) + #endif + ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0) + #if defined(acc_int16e_t) +@@ -4703,7 +4703,7 @@ + #elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC) + #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC) + #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1) +- ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0) ++ ACCCHK_ASSERT( (int)((unsigned int)((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0) + #endif + #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560)) + # pragma option pop diff --git a/bsp/buildroot/package/lzop/lzop.mk b/bsp/buildroot/package/lzop/lzop.mk index 1b6a7e17..43c16284 100644 --- a/bsp/buildroot/package/lzop/lzop.mk +++ b/bsp/buildroot/package/lzop/lzop.mk @@ -9,6 +9,7 @@ LZOP_SITE = http://www.lzop.org/download LZOP_LICENSE = GPLv2+ LZOP_LICENSE_FILES = COPYING LZOP_DEPENDENCIES = lzo +HOST_LZOP_DEPENDENCIES = host-lzo $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/macchanger/0001-Fix-missing-include-for-caddr_t.patch b/bsp/buildroot/package/macchanger/0001-Fix-missing-include-for-caddr_t.patch new file mode 100644 index 00000000..cf5ade8c --- /dev/null +++ b/bsp/buildroot/package/macchanger/0001-Fix-missing-include-for-caddr_t.patch @@ -0,0 +1,35 @@ +From 4eeb901b7aadb167e44f476fd665f7fedf491e51 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Fri, 6 May 2016 09:28:36 +0200 +Subject: [PATCH] Fix missing include for caddr_t +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +caddr_t is defined in . This header file must be included to fix +build with the musl C library: + +netinfo.c: In function 'mc_net_info_get_permanent_mac': +netinfo.c:116:28: error: 'caddr_t' undeclared (first use in this function) + req.ifr_data = (caddr_t)epa; + +Signed-off-by: Jörg Krause +--- + src/netinfo.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/netinfo.c b/src/netinfo.c +index 3525123..1aa3293 100644 +--- a/src/netinfo.c ++++ b/src/netinfo.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + #include + #include +-- +2.8.2 + diff --git a/bsp/buildroot/package/macchanger/macchanger.hash b/bsp/buildroot/package/macchanger/macchanger.hash index d0b6f356..ce3a7f56 100644 --- a/bsp/buildroot/package/macchanger/macchanger.hash +++ b/bsp/buildroot/package/macchanger/macchanger.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 31534f138f1d21fa247be74ba6bef3fbfa47bbcd5033e99bd10c432fe58e51f7 macchanger-1.6.0.tar.gz +sha256 dae2717c270fd5f62d790dbf80c19793c651b1b26b62c101b82d5fdf25a845bf macchanger-1.7.0.tar.gz diff --git a/bsp/buildroot/package/macchanger/macchanger.mk b/bsp/buildroot/package/macchanger/macchanger.mk index a7ea943a..2e716d98 100644 --- a/bsp/buildroot/package/macchanger/macchanger.mk +++ b/bsp/buildroot/package/macchanger/macchanger.mk @@ -4,9 +4,9 @@ # ################################################################################ -MACCHANGER_VERSION = 1.6.0 -MACCHANGER_SITE = $(BR2_GNU_MIRROR)/macchanger +MACCHANGER_VERSION = 1.7.0 +MACCHANGER_SITE = https://github.com/alobbs/macchanger/releases/download/$(MACCHANGER_VERSION) MACCHANGER_LICENSE = GPLv2+ -MACCHANGER_LICENSE_FILES = src/main.c +MACCHANGER_LICENSE_FILES = COPYING $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/make/make.hash b/bsp/buildroot/package/make/make.hash index db95c601..ea2e8605 100644 --- a/bsp/buildroot/package/make/make.hash +++ b/bsp/buildroot/package/make/make.hash @@ -1,2 +1,4 @@ +# From http://lists.gnu.org/archive/html/info-gnu/2016-06/msg00005.html +md5 15b012617e7c44c0ed482721629577ac make-4.2.1.tar.bz2 # Locally calculated after checking signature -sha256 0bc7613389650ee6a24554b52572a272f7356164fd2c4132b0bcf13123e4fca5 make-4.1.tar.bz2 +sha256 d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589 make-4.2.1.tar.bz2 diff --git a/bsp/buildroot/package/make/make.mk b/bsp/buildroot/package/make/make.mk index 20702dc2..c51ce3b7 100644 --- a/bsp/buildroot/package/make/make.mk +++ b/bsp/buildroot/package/make/make.mk @@ -4,7 +4,7 @@ # ################################################################################ -MAKE_VERSION = 4.1 +MAKE_VERSION = 4.2.1 MAKE_SOURCE = make-$(MAKE_VERSION).tar.bz2 MAKE_SITE = $(BR2_GNU_MIRROR)/make MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) diff --git a/bsp/buildroot/package/makedevs/makedevs.c b/bsp/buildroot/package/makedevs/makedevs.c index e5ef1641..cacb144e 100644 --- a/bsp/buildroot/package/makedevs/makedevs.c +++ b/bsp/buildroot/package/makedevs/makedevs.c @@ -35,6 +35,9 @@ #include /* major() and minor() */ #endif #include +#ifdef EXTENDED_ATTRIBUTES +#include +#endif /* EXTENDED_ATTRIBUTES */ const char *bb_applet_name; uid_t recursive_uid; @@ -349,6 +352,49 @@ char *concat_path_file(const char *path, const char *filename) return outbuf; } +#ifdef EXTENDED_ATTRIBUTES +int bb_set_xattr(const char *fpath, const char *xattr) +{ + cap_t cap, cap_file, cap_new; + char *cap_file_text, *cap_new_text; + ssize_t length; + + cap = cap_from_text(xattr); + if (cap == NULL) + bb_perror_msg_and_die("cap_from_text failed for %s", xattr); + + cap_file = cap_get_file(fpath); + if (cap_file == NULL) { + /* if no capability was set before, we initialize cap_file */ + if (errno != ENODATA) + bb_perror_msg_and_die("cap_get_file failed on %s", fpath); + + cap_file = cap_init(); + if (!cap_file) + bb_perror_msg_and_die("cap_init failed"); + } + + if ((cap_file_text = cap_to_text(cap_file, &length)) == NULL) + bb_perror_msg_and_die("cap_to_name failed on %s", fpath); + + bb_xasprintf(&cap_new_text, "%s %s", cap_file_text, xattr); + + if ((cap_new = cap_from_text(cap_new_text)) == NULL) + bb_perror_msg_and_die("cap_from_text failed on %s", cap_new_text); + + if (cap_set_file(fpath, cap_new) == -1) + bb_perror_msg_and_die("cap_set_file failed for %s (xattr = %s)", fpath, xattr); + + cap_free(cap); + cap_free(cap_file); + cap_free(cap_file_text); + cap_free(cap_new); + cap_free(cap_new_text); + + return 0; +} +#endif /* EXTENDED_ATTRIBUTES */ + void bb_show_usage(void) { fprintf(stderr, "%s: [-d device_table] rootdir\n\n", bb_applet_name); @@ -413,6 +459,7 @@ int main(int argc, char **argv) int opt; FILE *table = stdin; char *rootdir = NULL; + char *full_name = NULL; char *line = NULL; int linenum = 0; int ret = EXIT_SUCCESS; @@ -454,15 +501,30 @@ int main(int argc, char **argv) unsigned int count = 0; unsigned int increment = 0; unsigned int start = 0; + char xattr[255]; char name[4096]; char user[41]; char group[41]; - char *full_name; uid_t uid; gid_t gid; linenum++; + if (1 == sscanf(line, "|xattr %254s", xattr)) { +#ifdef EXTENDED_ATTRIBUTES + if (!full_name) + bb_error_msg_and_die("line %d should be after a file\n", linenum); + + if (bb_set_xattr(full_name, xattr) < 0) + bb_error_msg_and_die("can't set cap %s on file %s\n", xattr, full_name); +#else + bb_error_msg_and_die("line %d not supported: '%s'\nDid you forget to enable " + "BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES?\n", + linenum, line); +#endif /* EXTENDED_ATTRIBUTES */ + continue; + } + if ((2 > sscanf(line, "%4095s %c %o %40s %40s %u %u %u %u %u", name, &type, &mode, user, group, &major, &minor, &start, &increment, &count)) || @@ -487,6 +549,13 @@ int main(int argc, char **argv) } else { uid = getuid(); } + + /* + * free previous full name + * we don't de-allocate full_name at the end of the parsing, + * because we may need it if the next line is an xattr. + */ + free(full_name); full_name = concat_path_file(rootdir, name); if (type == 'd') { @@ -585,7 +654,6 @@ int main(int argc, char **argv) } loop: free(line); - free(full_name); } fclose(table); diff --git a/bsp/buildroot/package/makedevs/makedevs.mk b/bsp/buildroot/package/makedevs/makedevs.mk index fa8e753c..95933c4f 100644 --- a/bsp/buildroot/package/makedevs/makedevs.mk +++ b/bsp/buildroot/package/makedevs/makedevs.mk @@ -4,13 +4,17 @@ # ################################################################################ -# source included in buildroot -MAKEDEVS_SOURCE = -HOST_MAKEDEVS_SOURCE = - -MAKEDEVS_VERSION = buildroot-$(BR2_VERSION) MAKEDEVS_LICENSE = GPLv2 +HOST_MAKEDEVS_CFLAGS = $(HOST_CFLAGS) +HOST_MAKEDEVS_LDFLAGS = $(HOST_LDFLAGS) + +ifeq ($(BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES),y) +HOST_MAKEDEVS_DEPENDENCIES += host-libcap +HOST_MAKEDEVS_CFLAGS += -DEXTENDED_ATTRIBUTES +HOST_MAKEDEVS_LDFLAGS += -lcap +endif + define MAKEDEVS_BUILD_CMDS $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \ package/makedevs/makedevs.c -o $(@D)/makedevs @@ -21,8 +25,8 @@ define MAKEDEVS_INSTALL_TARGET_CMDS endef define HOST_MAKEDEVS_BUILD_CMDS - $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ - package/makedevs/makedevs.c -o $(@D)/makedevs + $(HOSTCC) $(HOST_MAKEDEVS_CFLAGS) package/makedevs/makedevs.c \ + -o $(@D)/makedevs $(HOST_MAKEDEVS_LDFLAGS) endef define HOST_MAKEDEVS_INSTALL_CMDS diff --git a/bsp/buildroot/package/mali-t76x/Config.in b/bsp/buildroot/package/mali-t76x/Config.in new file mode 100644 index 00000000..26a7f6c0 --- /dev/null +++ b/bsp/buildroot/package/mali-t76x/Config.in @@ -0,0 +1,28 @@ +config BR2_PACKAGE_MALI_T76X + bool "mali-t76x" + select BR2_PACKAGE_MESA3D_HEADERS + select BR2_PACKAGE_HAS_LIBEGL + select BR2_PACKAGE_HAS_LIBGLES + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_ARM_EABIHF + depends on BR2_arm + help + Install the binary user-space components for the ARM Mali Midgard + T76X GPU. This package requires a kernel with the ARM Mali Midgard + GPU Kernel Drivers enabled. + + Source: http://malideveloper.arm.com/resources/drivers/ + +if BR2_PACKAGE_MALI_T76X + +config BR2_PACKAGE_PROVIDES_LIBEGL + default "mali-t76x" + +config BR2_PACKAGE_PROVIDES_LIBGLES + default "mali-t76x" + +endif + +comment "mali-t76x needs a glibc toolchain with armhf enabled" + depends on BR2_arm + depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_ARM_EABIHF diff --git a/bsp/buildroot/package/mali-t76x/egl.pc b/bsp/buildroot/package/mali-t76x/egl.pc new file mode 100644 index 00000000..614b700d --- /dev/null +++ b/bsp/buildroot/package/mali-t76x/egl.pc @@ -0,0 +1,11 @@ +prefix=/usr/ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: egl +Description: ARM Mali implementation of EGL +Version: 1.5 +Requires: +Libs: -L${libdir} -lEGL -lGLESv2 +Cflags: -I${includedir} -DMESA_EGL_NO_X11_HEADERS diff --git a/bsp/buildroot/package/mali-t76x/glesv2.pc b/bsp/buildroot/package/mali-t76x/glesv2.pc new file mode 100644 index 00000000..5997eac6 --- /dev/null +++ b/bsp/buildroot/package/mali-t76x/glesv2.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv2 +Description: ARM Mali implementation of OpenGL ESv2 +Version: 2.0 +Requires: +Libs: -L${libdir} -lGLESv2 -lGLESv1_CM +Cflags: -I${includedir} -DMESA_EGL_NO_X11_HEADERS diff --git a/bsp/buildroot/package/mali-t76x/mali-t76x.hash b/bsp/buildroot/package/mali-t76x/mali-t76x.hash new file mode 100644 index 00000000..a754b980 --- /dev/null +++ b/bsp/buildroot/package/mali-t76x/mali-t76x.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 5a0b00438edc8066b374481d3332a43c07ec2bd3bc73265983a968970f754902 mali-t76x_r5p0-06rel0_linux_1+fbdev.tar.gz diff --git a/bsp/buildroot/package/mali-t76x/mali-t76x.mk b/bsp/buildroot/package/mali-t76x/mali-t76x.mk new file mode 100644 index 00000000..387685c0 --- /dev/null +++ b/bsp/buildroot/package/mali-t76x/mali-t76x.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# mali-t76x +# +################################################################################ + +MALI_T76X_VERSION = r5p0-06rel0 +MALI_T76X_SOURCE = mali-t76x_$(MALI_T76X_VERSION)_linux_1+fbdev.tar.gz +MALI_T76X_SITE = http://malideveloper.arm.com/downloads/drivers/binary/$(MALI_T76X_VERSION) +MALI_T76X_DEPENDENCIES = mesa3d-headers +MALI_T76X_INSTALL_STAGING = YES +MALI_T76X_PROVIDES = libegl libgles + +define MALI_T76X_INSTALL_STAGING_CMDS + $(INSTALL) -m 755 $(@D)/*.so $(STAGING_DIR)/usr/lib/ + + $(INSTALL) -D -m 0644 package/mali-t76x/egl.pc \ + $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc + $(INSTALL) -D -m 0644 package/mali-t76x/glesv2.pc \ + $(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc +endef + +define MALI_T76X_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 $(@D)/*.so $(TARGET_DIR)/usr/lib/ +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/mbedtls/mbedtls.mk b/bsp/buildroot/package/mbedtls/mbedtls.mk index fe166e21..994a3f40 100644 --- a/bsp/buildroot/package/mbedtls/mbedtls.mk +++ b/bsp/buildroot/package/mbedtls/mbedtls.mk @@ -23,6 +23,9 @@ define MBEDTLS_ENABLE_THREADING $(@D)/include/mbedtls/config.h endef MBEDTLS_POST_PATCH_HOOKS += MBEDTLS_ENABLE_THREADING +ifeq ($(BR2_STATIC_LIBS),y) +MBEDTLS_CONF_OPTS += -DLINK_WITH_PTHREAD=ON +endif endif ifeq ($(BR2_STATIC_LIBS),y) diff --git a/bsp/buildroot/package/mc/mc.hash b/bsp/buildroot/package/mc/mc.hash index 810d1446..0d22d80c 100644 --- a/bsp/buildroot/package/mc/mc.hash +++ b/bsp/buildroot/package/mc/mc.hash @@ -1,2 +1,2 @@ -# Hash from http://ftp.midnight-commander.org/mc-4.8.15.sha256: -sha256 cf4e8f5dfe419830d56ca7e5f2495898e37ebcd05da1e47ff7041446c87fba16 mc-4.8.15.tar.xz +# Hash from http://ftp.midnight-commander.org/mc-4.8.17.sha256: +sha256 0447bdddc0baa81866e66f50f9a545d29d6eebb68b0ab46c98d8fddd2bf4e44d mc-4.8.17.tar.xz diff --git a/bsp/buildroot/package/mc/mc.mk b/bsp/buildroot/package/mc/mc.mk index eb4b104e..808f81c3 100644 --- a/bsp/buildroot/package/mc/mc.mk +++ b/bsp/buildroot/package/mc/mc.mk @@ -4,7 +4,7 @@ # ################################################################################ -MC_VERSION = 4.8.15 +MC_VERSION = 4.8.17 MC_SOURCE = mc-$(MC_VERSION).tar.xz MC_SITE = http://ftp.midnight-commander.org MC_LICENSE = GPLv3+ diff --git a/bsp/buildroot/package/mediastreamer/0001-misc-fixes.patch b/bsp/buildroot/package/mediastreamer/0001-misc-fixes.patch deleted file mode 100644 index 84c99483..00000000 --- a/bsp/buildroot/package/mediastreamer/0001-misc-fixes.patch +++ /dev/null @@ -1,156 +0,0 @@ -Fix linphone compile with newer ffmpeg versions, downloaded from -https://github.com/dankamongmen/mediastreamer2/commit/4f438eb8e132a3119284be771e0daad143597ebd - -Fixes -http://autobuild.buildroot.net/results/b72/b72b1f6287986af3d686cc3c8b9c1b3fd9419d29/ - -Signed-off-by: Bernd Kuhls - - -From 4f438eb8e132a3119284be771e0daad143597ebd Mon Sep 17 00:00:00 2001 -From: nick black -Date: Mon, 28 Jan 2013 23:54:17 -0500 -Subject: [PATCH] adapt to new libav API - ---- - src/utils/ffmpeg-priv.h | 1 + - src/videofilters/h264dec.c | 6 +++--- - src/videofilters/jpegwriter.c | 6 +++--- - src/videofilters/nowebcam.c | 6 +++--- - src/videofilters/videodec.c | 8 ++++---- - src/videofilters/videoenc.c | 6 +++--- - 6 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/src/utils/ffmpeg-priv.h b/src/utils/ffmpeg-priv.h -index 0eab098..a405c05 100644 ---- a/src/utils/ffmpeg-priv.h -+++ b/src/utils/ffmpeg-priv.h -@@ -35,6 +35,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - /* new layout */ - # include - # include -+# include - #else - /* old layout */ - # include -diff --git a/src/videofilters/h264dec.c b/src/videofilters/h264dec.c -index 5229b5e..7059634 100644 ---- a/src/videofilters/h264dec.c -+++ b/src/videofilters/h264dec.c -@@ -58,10 +58,10 @@ static void dec_open(DecData *d){ - int error; - codec=avcodec_find_decoder(CODEC_ID_H264); - if (codec==NULL) ms_fatal("Could not find H264 decoder in ffmpeg."); -- avcodec_get_context_defaults(&d->av_context); -- error=avcodec_open(&d->av_context,codec); -+ avcodec_get_context_defaults3(&d->av_context, codec); -+ error=avcodec_open2(&d->av_context,codec, NULL); - if (error!=0){ -- ms_fatal("avcodec_open() failed."); -+ ms_fatal("avcodec_open2() failed."); - } - } - -diff --git a/src/videofilters/jpegwriter.c b/src/videofilters/jpegwriter.c -index cca79c5..daf3cdb 100644 ---- a/src/videofilters/jpegwriter.c -+++ b/src/videofilters/jpegwriter.c -@@ -90,7 +90,7 @@ static void jpg_process(MSFilter *f){ - mblk_t *jpegm; - struct SwsContext *sws_ctx; - -- AVCodecContext *avctx=avcodec_alloc_context(); -+ AVCodecContext *avctx=avcodec_alloc_context3(NULL); - - avctx->width=yuvbuf.w; - avctx->height=yuvbuf.h; -@@ -98,9 +98,9 @@ static void jpg_process(MSFilter *f){ - avctx->time_base.den =1; - avctx->pix_fmt=PIX_FMT_YUVJ420P; - -- error=avcodec_open(avctx,s->codec); -+ error=avcodec_open2(avctx,s->codec,NULL); - if (error!=0) { -- ms_error("avcodec_open() failed: %i",error); -+ ms_error("avcodec_open2() failed: %i",error); - cleanup(s,NULL); - av_free(avctx); - return; -diff --git a/src/videofilters/nowebcam.c b/src/videofilters/nowebcam.c -index f1c10de..b45f89f 100644 ---- a/src/videofilters/nowebcam.c -+++ b/src/videofilters/nowebcam.c -@@ -68,9 +68,9 @@ static mblk_t *jpeg2yuv(uint8_t *jpgbuf, int bufsize, MSVideoSize *reqsize){ - return NULL; - } - -- avcodec_get_context_defaults(&av_context); -- if (avcodec_open(&av_context,codec)<0){ -- ms_error("jpeg2yuv: avcodec_open failed"); -+ avcodec_get_context_defaults3(&av_context,NULL); -+ if (avcodec_open2(&av_context,codec,NULL)<0){ -+ ms_error("jpeg2yuv: avcodec_open2 failed"); - return NULL; - } - av_init_packet(&pkt); -diff --git a/src/videofilters/videodec.c b/src/videofilters/videodec.c -index 9807214..2f1b452 100644 ---- a/src/videofilters/videodec.c -+++ b/src/videofilters/videodec.c -@@ -53,7 +53,7 @@ static void dec_init(MSFilter *f, enum CodecID cid){ - DecState *s=(DecState *)ms_new0(DecState,1); - ms_ffmpeg_check_init(); - -- avcodec_get_context_defaults(&s->av_context); -+ avcodec_get_context_defaults3(&s->av_context,NULL); - s->av_codec=NULL; - s->codec=cid; - s->input=NULL; -@@ -135,7 +135,7 @@ static void dec_preprocess(MSFilter *f){ - if (s->av_context.codec==NULL){ - /* we must know picture size before initializing snow decoder*/ - if (s->codec!=CODEC_ID_SNOW){ -- error=avcodec_open(&s->av_context, s->av_codec); -+ error=avcodec_open2(&s->av_context, s->av_codec, NULL); - if (error!=0) ms_error("avcodec_open() failed: %i",error); - if (s->codec==CODEC_ID_MPEG4 && s->dci_size>0){ - s->av_context.extradata=s->dci; -@@ -225,8 +225,8 @@ static mblk_t * parse_snow_header(DecState *s,mblk_t *inm){ - int error; - s->av_context.width=h>>16; - s->av_context.height=h&0xffff; -- error=avcodec_open(&s->av_context, s->av_codec); -- if (error!=0) ms_error("avcodec_open() failed for snow: %i",error); -+ error=avcodec_open2(&s->av_context, s->av_codec, NULL); -+ if (error!=0) ms_error("avcodec_open2() failed for snow: %i",error); - else { - s->snow_initialized=TRUE; - ms_message("Snow decoder initialized,size=%ix%i", -diff --git a/src/videofilters/videoenc.c b/src/videofilters/videoenc.c -index da35592..4101772 100644 ---- a/src/videofilters/videoenc.c -+++ b/src/videofilters/videoenc.c -@@ -242,7 +242,7 @@ static void prepare(EncState *s){ - AVCodecContext *c=&s->av_context; - const int max_br_vbv=128000; - -- avcodec_get_context_defaults(c); -+ avcodec_get_context_defaults3(c,NULL); - if (s->codec==CODEC_ID_MJPEG) - { - ms_message("Codec bitrate set to %i",c->bit_rate); -@@ -348,9 +348,9 @@ static void enc_preprocess(MSFilter *f){ - ms_error("could not find encoder for codec id %i",s->codec); - return; - } -- error=avcodec_open(&s->av_context, s->av_codec); -+ error=avcodec_open2(&s->av_context, s->av_codec, NULL); - if (error!=0) { -- ms_error("avcodec_open() failed: %i",error); -+ ms_error("avcodec_open2() failed: %i",error); - return; - } - video_starter_init(&s->starter); --- -2.0.3 - diff --git a/bsp/buildroot/package/mediastreamer/mediastreamer.hash b/bsp/buildroot/package/mediastreamer/mediastreamer.hash index 44849ac0..21964a86 100644 --- a/bsp/buildroot/package/mediastreamer/mediastreamer.hash +++ b/bsp/buildroot/package/mediastreamer/mediastreamer.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 c245b9444c2abb4c84433606e01f0b3ce29ce78de0afe1e191f4f3c62656acd5 mediastreamer-2.9.0.tar.gz +# Locally calculated +sha256 0dbf8d4f721a04db9ec0982e98a4e852ad2d3acbcbd25edd96a66164a980f2e7 mediastreamer-2.12.1.tar.gz diff --git a/bsp/buildroot/package/mediastreamer/mediastreamer.mk b/bsp/buildroot/package/mediastreamer/mediastreamer.mk index 81f5b502..a12bfb4b 100644 --- a/bsp/buildroot/package/mediastreamer/mediastreamer.mk +++ b/bsp/buildroot/package/mediastreamer/mediastreamer.mk @@ -4,7 +4,7 @@ # ################################################################################ -MEDIASTREAMER_VERSION = 2.9.0 +MEDIASTREAMER_VERSION = 2.12.1 MEDIASTREAMER_SITE = http://download.savannah.nongnu.org/releases/linphone/mediastreamer MEDIASTREAMER_INSTALL_STAGING = YES MEDIASTREAMER_DEPENDENCIES = host-intltool host-pkgconf ortp host-gettext diff --git a/bsp/buildroot/package/memcached/memcached.hash b/bsp/buildroot/package/memcached/memcached.hash index ed330cff..ab57b511 100644 --- a/bsp/buildroot/package/memcached/memcached.hash +++ b/bsp/buildroot/package/memcached/memcached.hash @@ -1,4 +1,4 @@ -# From http://www.memcached.org/files/memcached-1.4.25.tar.gz.sha1 -sha1 7fd0ba9283c61204f196638ecf2e9295688b2314 memcached-1.4.25.tar.gz +# From http://www.memcached.org/files/memcached-1.4.29.tar.gz.sha1 +sha1 8994b4d0dbcc8d536f3d6cd4763489a3c51ca44b memcached-1.4.29.tar.gz # Calculated based on the hash above -sha256 f058437b3c224d321919a9a6bb4e3eedb2312ed718c0caf087ff2f04ab795dda memcached-1.4.25.tar.gz +sha256 c61a3a7f9c82e574559797bbf4bb01ad8b79e436ca80b8e46f5b51ae39b03d0b memcached-1.4.29.tar.gz diff --git a/bsp/buildroot/package/memcached/memcached.mk b/bsp/buildroot/package/memcached/memcached.mk index b0753e4a..42742ff9 100644 --- a/bsp/buildroot/package/memcached/memcached.mk +++ b/bsp/buildroot/package/memcached/memcached.mk @@ -4,7 +4,7 @@ # ################################################################################ -MEMCACHED_VERSION = 1.4.25 +MEMCACHED_VERSION = 1.4.29 MEMCACHED_SITE = http://www.memcached.org/files MEMCACHED_DEPENDENCIES = libevent MEMCACHED_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' diff --git a/bsp/buildroot/package/menu-cache/menu-cache.hash b/bsp/buildroot/package/menu-cache/menu-cache.hash index 3b9e5c42..1b30fcc1 100644 --- a/bsp/buildroot/package/menu-cache/menu-cache.hash +++ b/bsp/buildroot/package/menu-cache/menu-cache.hash @@ -1,2 +1,3 @@ -# From http://blog.lxde.org/?p=1299 -sha1 e7b3854109f9826472cf9795e924acebe5e27861 menu-cache-1.0.0.tar.xz +# From https://sourceforge.net/projects/lxde/files/menu-cache/1.0/ +md5 a856ba860b16fdc8c69ee784bc4ade36 menu-cache-1.0.1.tar.xz +sha1 58862c665f2ae56870a9937cdcd643674b2ac8ba menu-cache-1.0.1.tar.xz diff --git a/bsp/buildroot/package/menu-cache/menu-cache.mk b/bsp/buildroot/package/menu-cache/menu-cache.mk index 9d438643..16878258 100644 --- a/bsp/buildroot/package/menu-cache/menu-cache.mk +++ b/bsp/buildroot/package/menu-cache/menu-cache.mk @@ -5,7 +5,7 @@ ################################################################################ MENU_CACHE_VERSION_MAJOR = 1.0 -MENU_CACHE_VERSION = $(MENU_CACHE_VERSION_MAJOR).0 +MENU_CACHE_VERSION = $(MENU_CACHE_VERSION_MAJOR).1 MENU_CACHE_SOURCE = menu-cache-$(MENU_CACHE_VERSION).tar.xz MENU_CACHE_SITE = http://sourceforge.net/projects/lxde/files/menu-cache/$(MENU_CACHE_VERSION_MAJOR) MENU_CACHE_DEPENDENCIES = libfm-extra libglib2 diff --git a/bsp/buildroot/package/mesa3d-headers/mesa3d-headers.mk b/bsp/buildroot/package/mesa3d-headers/mesa3d-headers.mk index 2c32b163..c3b57e4e 100644 --- a/bsp/buildroot/package/mesa3d-headers/mesa3d-headers.mk +++ b/bsp/buildroot/package/mesa3d-headers/mesa3d-headers.mk @@ -12,7 +12,7 @@ endif # Not possible to directly refer to mesa3d variables, because of # first/second expansion trickery... -MESA3D_HEADERS_VERSION = 11.1.1 +MESA3D_HEADERS_VERSION = 12.0.1 MESA3D_HEADERS_SOURCE = mesa-$(MESA3D_HEADERS_VERSION).tar.xz MESA3D_HEADERS_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_HEADERS_VERSION) MESA3D_HEADERS_LICENSE = MIT, SGI, Khronos diff --git a/bsp/buildroot/package/mesa3d/0002-Fix-runtime-error-with-uClibc.patch b/bsp/buildroot/package/mesa3d/0002-Fix-runtime-error-with-uClibc.patch index c85f88ab..59627bef 100644 --- a/bsp/buildroot/package/mesa3d/0002-Fix-runtime-error-with-uClibc.patch +++ b/bsp/buildroot/package/mesa3d/0002-Fix-runtime-error-with-uClibc.patch @@ -25,8 +25,8 @@ patch: http://lists.busybox.net/pipermail/buildroot/2015-March/123410.html Signed-off-by: Bernd Kuhls --- diff -uNr mesa-10.5.3.org/src/glsl/nir/nir_constant_expressions.c mesa-10.5.3/src/glsl/nir/nir_constant_expressions.c ---- mesa-10.5.3.org/src/glsl/nir/nir_constant_expressions.c 2015-04-12 23:31:29.000000000 +0200 -+++ mesa-10.5.3/src/glsl/nir/nir_constant_expressions.c 2015-04-13 19:59:37.819786541 +0200 +--- mesa-10.5.3.org/src/compiler/nir/nir_constant_expressions.c 2015-04-12 23:31:29.000000000 +0200 ++++ mesa-10.5.3/src/compiler/nir/nir_constant_expressions.c 2015-04-13 19:59:37.819786541 +0200 @@ -48,6 +48,18 @@ } #endif diff --git a/bsp/buildroot/package/mesa3d/Config.in b/bsp/buildroot/package/mesa3d/Config.in index 8c72a3d4..45ca69c4 100644 --- a/bsp/buildroot/package/mesa3d/Config.in +++ b/bsp/buildroot/package/mesa3d/Config.in @@ -2,9 +2,8 @@ menuconfig BR2_PACKAGE_MESA3D bool "mesa3d" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_SYNC_1 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL - # Triggers the _gp link issue in nios2 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_EXPAT select BR2_PACKAGE_XPROTO_DRI2PROTO if BR2_PACKAGE_XORG7 @@ -29,13 +28,14 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER config BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_MESA3D_DRIVER - select BR2_PACKAGE_HAS_LIBGL + select BR2_PACKAGE_HAS_LIBGL if BR2_PACKAGE_XORG7 select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_XPROTO_DRI3PROTO select BR2_PACKAGE_XPROTO_PRESENTPROTO if BR2_PACKAGE_XPROTO_DRI3PROTO bool config BR2_PACKAGE_PROVIDES_LIBGL - default "mesa3d" if BR2_PACKAGE_MESA3D_DRI_DRIVER + default "mesa3d" if BR2_PACKAGE_MESA3D_DRI_DRIVER && \ + BR2_PACKAGE_XORG7 config BR2_PACKAGE_MESA3D_DRIVER bool @@ -79,6 +79,16 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST This is a software opengl implementation using the Gallium3D infrastructure. +config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 + bool "Gallium vc4 driver" + depends on BR2_arm + select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER + select BR2_PACKAGE_LIBDRM_VC4 + select BR2_PACKAGE_MESA3D_NEEDS_XA + help + Driver for Broadcom VC4 (rpi2/3) GPUs. + It requires a vanilla 4.5+ kernel with drm vc4 (open) support. + config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL bool "Gallium virgl driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER @@ -87,11 +97,6 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL virgl is the 3D acceleration backend for the virtio-gpu shipping with qemu. -comment "DRI drivers need X.Org" - depends on !BR2_PACKAGE_XORG7 - -if BR2_PACKAGE_XORG7 - comment "DRI drivers" config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST @@ -131,8 +136,6 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON help Legacy Radeon driver for R100 series GPUs. -endif # BR2_PACKAGE_XORG7 - comment "Off-screen Rendering" config BR2_PACKAGE_MESA3D_OSMESA @@ -169,6 +172,6 @@ config BR2_PACKAGE_PROVIDES_LIBGLES endif # BR2_PACKAGE_MESA3D comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_SYNC_1 diff --git a/bsp/buildroot/package/mesa3d/mesa3d.hash b/bsp/buildroot/package/mesa3d/mesa3d.hash index 2ad543c3..fa01128c 100644 --- a/bsp/buildroot/package/mesa3d/mesa3d.hash +++ b/bsp/buildroot/package/mesa3d/mesa3d.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/mesa-announce/2016-January/000196.html -sha256 64db074fc514136b5fb3890111f0d50604db52f0b1e94ba3fcb0fe8668a7fd20 mesa-11.1.1.tar.xz +# From https://lists.freedesktop.org/archives/mesa-announce/2016-July/000227.html +sha256 bab24fb79f78c876073527f515ed871fc9c81d816f66c8a0b051d8d653896389 mesa-12.0.1.tar.xz diff --git a/bsp/buildroot/package/mesa3d/mesa3d.mk b/bsp/buildroot/package/mesa3d/mesa3d.mk index 7ed6af03..19dec49f 100644 --- a/bsp/buildroot/package/mesa3d/mesa3d.mk +++ b/bsp/buildroot/package/mesa3d/mesa3d.mk @@ -5,7 +5,7 @@ ################################################################################ # When updating the version, please also update mesa3d-headers -MESA3D_VERSION = 11.1.1 +MESA3D_VERSION = 12.0.1 MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION) MESA3D_LICENSE = MIT, SGI, Khronos @@ -17,18 +17,31 @@ MESA3D_INSTALL_STAGING = YES MESA3D_PROVIDES = MESA3D_DEPENDENCIES = \ + host-bison \ + host-flex \ expat \ libdrm +# The Sourcery MIPS toolchain has a special (non-upstream) feature to +# have "compact exception handling", which unfortunately breaks with +# mesa3d, so we disable it here by passing -mno-compact-eh. +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS),y) +MESA3D_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mno-compact-eh" +MESA3D_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -mno-compact-eh" +endif + ifeq ($(BR2_PACKAGE_OPENSSL),y) MESA3D_DEPENDENCIES += openssl MESA3D_CONF_OPTS += --with-sha1=libcrypto else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) MESA3D_DEPENDENCIES += libgcrypt MESA3D_CONF_OPTS += --with-sha1=libgcrypt +else ifeq ($(BR2_PACKAGE_LIBSHA1),y) +MESA3D_DEPENDENCIES += libsha1 +MESA3D_CONF_OPTS += --with-sha1=libsha1 endif -ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y) +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) MESA3D_DEPENDENCIES += udev MESA3D_CONF_OPTS += --disable-sysfs else @@ -65,6 +78,7 @@ MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU) += nouveau MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) += r600 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA) += svga MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST) += swrast +MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4) += vc4 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL) += virgl # DRI Drivers MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST) += swrast @@ -82,16 +96,9 @@ MESA3D_CONF_OPTS += \ --with-gallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) endif -define MESA3D_REMOVE_OPENGL_PC - rm -f $(STAGING_DIR)/usr/lib/pkgconfig/dri.pc - rm -f $(STAGING_DIR)/usr/lib/pkgconfig/gl.pc - rm -rf $(STAGING_DIR)/usr/include/GL/ -endef - ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) MESA3D_CONF_OPTS += \ --without-dri-drivers --disable-dri3 -MESA3D_POST_INSTALL_STAGING_HOOKS += MESA3D_REMOVE_OPENGL_PC else ifeq ($(BR2_PACKAGE_XPROTO_DRI3PROTO),y) MESA3D_DEPENDENCIES += xlib_libxshmfence xproto_dri3proto xproto_presentproto @@ -102,7 +109,10 @@ endif ifeq ($(BR2_PACKAGE_XLIB_LIBXXF86VM),y) MESA3D_DEPENDENCIES += xlib_libXxf86vm endif +# libGL is only provided for a full xorg stack +ifeq ($(BR2_PACKAGE_XORG7),y) MESA3D_PROVIDES += libgl +endif MESA3D_CONF_OPTS += \ --enable-shared-glapi \ --enable-driglx-direct \ @@ -119,8 +129,6 @@ endif # Always enable OpenGL: # - it is needed for GLES (mesa3d's ./configure is a bit weird) -# - but if no DRI driver is enabled, then libgl is not built, -# remove dri.pc and gl.pc in this case (MESA3D_REMOVE_OPENGL_PC) MESA3D_CONF_OPTS += --enable-opengl --enable-dri # libva and mesa3d have a circular dependency @@ -131,6 +139,8 @@ ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) MESA3D_PROVIDES += libegl ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) MESA3D_EGL_PLATFORMS = drm +else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4),y) +MESA3D_EGL_PLATFORMS = drm else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL),y) MESA3D_EGL_PLATFORMS = drm endif diff --git a/bsp/buildroot/package/midori/0001-disable-libnotify.patch b/bsp/buildroot/package/midori/0001-disable-libnotify.patch deleted file mode 100644 index 830ecff5..00000000 --- a/bsp/buildroot/package/midori/0001-disable-libnotify.patch +++ /dev/null @@ -1,43 +0,0 @@ -Disable libnotify support, we've got no package and it's not very useful -in embedded targets anyway. -The webmedia extension requires libnotify as well. - -Signed-off-by: Gustavo Zacarias - -diff -Nura midori-0.5.9.orig/CMakeLists.txt midori-0.5.9/CMakeLists.txt ---- midori-0.5.9.orig/CMakeLists.txt 2015-03-30 15:57:29.554632932 -0300 -+++ midori-0.5.9/CMakeLists.txt 2015-03-30 15:57:35.299830192 -0300 -@@ -143,16 +143,7 @@ - endif () - endif () - --if (WIN32) -- add_definitions("-DLIBNOTIFY_VERSION=\"No\"") --else () -- pkg_check_modules(NOTIFY REQUIRED libnotify) -- add_definitions("-DLIBNOTIFY_VERSION=\"${NOTIFY_VERSION}\"") -- add_definitions("-DHAVE_LIBNOTIFY") -- set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${NOTIFY_INCLUDE_DIRS}") -- set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${NOTIFY_LIBRARIES}") -- set(PKGS ${PKGS} libnotify) --endif () -+add_definitions("-DLIBNOTIFY_VERSION=\"No\"") - - option(USE_GTK3 "Use GTK+3" OFF) - option(HALF_BRO_INCOM_WEBKIT2 "Serve as a guniea pig" OFF) -diff -Nura midori-0.5.9.orig/extensions/CMakeLists.txt midori-0.5.9/extensions/CMakeLists.txt ---- midori-0.5.9.orig/extensions/CMakeLists.txt 2015-03-30 15:57:29.544632589 -0300 -+++ midori-0.5.9/extensions/CMakeLists.txt 2015-03-30 15:57:51.777395949 -0300 -@@ -24,11 +24,7 @@ - ) - endif () - --# FIXME: re-enable webmedia extension --# once we have working notifications on win --if (WIN32) -- list(REMOVE_ITEM EXTENSIONS "webmedia-now-playing.vala") --endif() -+list(REMOVE_ITEM EXTENSIONS "webmedia-now-playing.vala") - - foreach(UNIT_SRC ${EXTENSIONS}) - string(FIND ${UNIT_SRC} ".c" UNIT_EXTENSION) diff --git a/bsp/buildroot/package/midori/0001-fix-bug-1492932.patch b/bsp/buildroot/package/midori/0001-fix-bug-1492932.patch new file mode 100644 index 00000000..27ad283a --- /dev/null +++ b/bsp/buildroot/package/midori/0001-fix-bug-1492932.patch @@ -0,0 +1,44 @@ +Fix for https://bugs.launchpad.net/midori/+bug/1492932 +Patch status: upstream + +Signed-off-by: Gustavo Zacarias + +--- a/midori/midori-browser.c 2015-07-11 16:03:43 +0000 ++++ b/midori/midori-browser.c 2015-09-25 21:30:31 +0000 +@@ -5953,11 +5953,6 @@ + G_CALLBACK (midori_browser_destroy_cb), NULL); + gtk_window_set_role (GTK_WINDOW (browser), "browser"); + gtk_window_set_icon_name (GTK_WINDOW (browser), MIDORI_STOCK_WEB_BROWSER); +- #if GTK_CHECK_VERSION (3, 4, 0) +- #ifndef HAVE_GRANITE +- gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (browser), TRUE); +- #endif +- #endif + vbox = gtk_vbox_new (FALSE, 0); + /* gtk_container_add (GTK_CONTAINER (browser), vbox); + gtk_widget_show (vbox); */ + +--- a/midori/midori-view.c 2015-07-06 21:26:46 +0000 ++++ b/midori/midori-view.c 2015-09-25 21:30:31 +0000 +@@ -3495,9 +3495,6 @@ + } + else + gtk_window_set_icon_name (GTK_WINDOW (window), icon_name); +- #if GTK_CHECK_VERSION (3, 4, 0) +- gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), TRUE); +- #endif + gtk_widget_set_size_request (GTK_WIDGET (inspector_view), 700, 100); + #if GTK_CHECK_VERSION (3, 0, 0) + scrolled = gtk_scrolled_window_new (NULL, NULL); + +--- a/midori/midori-window.vala 2015-08-16 00:14:26 +0000 ++++ b/midori/midori-window.vala 2015-09-25 21:30:31 +0000 +@@ -28,7 +28,6 @@ + toolbar.show_arrow = true; + #if HAVE_GTK3 + toolbar.get_style_context ().add_class ("primary-toolbar"); +- hide_titlebar_when_maximized = true; + #endif + toolbar.popup_context_menu.connect ((x, y, button) => { + return button == 3 && context_menu (toolbar); }); + diff --git a/bsp/buildroot/package/midori/0002-gcr-for-x11-only.patch b/bsp/buildroot/package/midori/0002-gcr-for-x11-only.patch new file mode 100644 index 00000000..85e76976 --- /dev/null +++ b/bsp/buildroot/package/midori/0002-gcr-for-x11-only.patch @@ -0,0 +1,32 @@ +GCR support only works/is useful with X11 support. + +Reported upstream: https://bugs.launchpad.net/midori/+bug/1515985 + +Signed-off-by: Gustavo Zacarias + +diff -Nura midori-0.5.11.orig/CMakeLists.txt midori-0.5.11/CMakeLists.txt +--- midori-0.5.11.orig/CMakeLists.txt 2015-11-12 13:41:02.045898814 -0300 ++++ midori-0.5.11/CMakeLists.txt 2015-11-12 14:00:09.765545018 -0300 +@@ -175,18 +175,14 @@ + set(PKGS ${PKGS} zeitgeist-2.0) + endif() + +-if (WIN32) +- add_definitions("-DGCR_VERSION=\"No\"") +-else () +- if (USE_GTK3) +- pkg_check_modules(GCR REQUIRED gcr-3>=2.32) +- else () +- pkg_check_modules(GCR REQUIRED gcr-base-3>=2.32) +- endif () ++if (USE_GTK3 AND X11) ++ pkg_check_modules(GCR REQUIRED gcr-3>=2.32) + add_definitions("-DGCR_VERSION=\"${GCR_VERSION}\"") + add_definitions("-DHAVE_GCR") + set(OPTS_INCLUDE_DIRS ${OPTS_INCLUDE_DIRS} ${GCR_INCLUDE_DIRS}) + set(OPTS_LIBRARIES ${OPTS_LIBRARIES} ${GCR_LIBRARIES}) ++else () ++ add_definitions("-DGCR_VERSION=\"No\"") + endif () + + if (HALF_BRO_INCOM_WEBKIT2) diff --git a/bsp/buildroot/package/midori/0002-new-vala.patch b/bsp/buildroot/package/midori/0002-new-vala.patch deleted file mode 100644 index 600ff495..00000000 --- a/bsp/buildroot/package/midori/0002-new-vala.patch +++ /dev/null @@ -1,26 +0,0 @@ -Fix build with newer (0.28+) vala versions, from: -http://www.linuxquestions.org/questions/slackware-14/midori-compile-fail-ambiguous-reference-between-glib-and-gtk-4175542325/ - -Signed-off-by: Gustavo Zacarias - -diff -Nura midori-0.5.9.orig/extensions/history-list.vala midori-0.5.9/extensions/history-list.vala ---- midori-0.5.9.orig/extensions/history-list.vala 2015-07-03 21:05:01.183360199 -0300 -+++ midori-0.5.9/extensions/history-list.vala 2015-07-03 21:05:48.959900926 -0300 -@@ -319,7 +319,7 @@ - } - - private void create_widgets () { -- ListStore model; -+ Gtk.ListStore model; - TreeIter iter; - TreeIter? active_iter = null; - -@@ -331,7 +331,7 @@ - - var tab_closing_behavior = this.hl_manager.get_integer ("TabClosingBehavior"); - -- model = new ListStore (2, typeof (string), typeof (int)); -+ model = new Gtk.ListStore (2, typeof (string), typeof (int)); - - model.append (out iter); - model.set (iter, TabClosingBehaviorModel.TEXT, _("Do nothing"), diff --git a/bsp/buildroot/package/midori/Config.in b/bsp/buildroot/package/midori/Config.in index 11a28062..0d7672c1 100644 --- a/bsp/buildroot/package/midori/Config.in +++ b/bsp/buildroot/package/midori/Config.in @@ -1,37 +1,27 @@ -comment "midori needs libgtk2 and a toolchain w/ C++, wchar, NPTL, gcc >= 4.8" - depends on BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ - !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_LIBGTK2 \ - || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 +comment "midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9" + depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_LIBGTK3 \ + || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_USES_GLIBC config BR2_PACKAGE_MIDORI bool "midori" + # GCR can only be used with the X11 backend + select BR2_PACKAGE_GCR if BR2_PACKAGE_LIBGTK3_X11 + select BR2_PACKAGE_GRANITE select BR2_PACKAGE_LIBSOUP select BR2_PACKAGE_LIBSOUP_GNOME select BR2_PACKAGE_LIBXML2 select BR2_PACKAGE_SQLITE - select BR2_PACKAGE_WEBKITGTK24 + select BR2_PACKAGE_WEBKITGTK select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE - depends on (BR2_PACKAGE_LIBGTK2 && BR2_PACKAGE_XORG7) - depends on BR2_INSTALL_LIBSTDCPP # webkitgtk24 - depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # webkitgtk24 - depends on BR2_USE_WCHAR # webkitgtk24 - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # webkitgtk24 - depends on BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, gcr, gnupg2 + depends on BR2_PACKAGE_LIBGTK3 + depends on BR2_INSTALL_LIBSTDCPP # webkitgtk + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # webkitgtk + depends on BR2_TOOLCHAIN_USES_GLIBC # webkitgtk + depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS help Midori is a lightweight web browser based on WebKit http://www.midori-browser.org/ - -if BR2_PACKAGE_MIDORI - -config BR2_PACKAGE_MIDORI_HTTPS - bool "HTTPS support" - select BR2_PACKAGE_CA_CERTIFICATES # runtime - select BR2_PACKAGE_GLIB_NETWORKING - select BR2_PACKAGE_GNUTLS # for glib-networking - help - Enable HTTPS protocol support - -endif diff --git a/bsp/buildroot/package/midori/midori.hash b/bsp/buildroot/package/midori/midori.hash index 7aae4c17..f548c427 100644 --- a/bsp/buildroot/package/midori/midori.hash +++ b/bsp/buildroot/package/midori/midori.hash @@ -1,2 +1,2 @@ # From download link @ http://midori-browser.org/download/source/ -sha1 475614dcc89a214a3c2fdc2aaefc817a5fa0ca03 midori_0.5.9_all_.tar.bz2 +sha1 64c86935028feb5f89d799c2acacaad67764da6f midori_0.5.11_all_.tar.bz2 diff --git a/bsp/buildroot/package/midori/midori.mk b/bsp/buildroot/package/midori/midori.mk index 197f51ab..5aa83c6f 100644 --- a/bsp/buildroot/package/midori/midori.mk +++ b/bsp/buildroot/package/midori/midori.mk @@ -4,9 +4,9 @@ # ################################################################################ -MIDORI_VERSION = 0.5.9 +MIDORI_VERSION = 0.5.11 MIDORI_SOURCE = midori_$(MIDORI_VERSION)_all_.tar.bz2 -MIDORI_SITE = https://launchpad.net/midori/trunk/$(MIDORI_VERSION)/+download +MIDORI_SITE = http://midori-browser.org/downloads MIDORI_LICENSE = LGPLv2.1+ MIDORI_LICENSE_FILES = COPYING MIDORI_DEPENDENCIES = \ @@ -15,34 +15,20 @@ MIDORI_DEPENDENCIES = \ host-pkgconf \ host-vala \ host-python \ + $(if $(BR2_PACKAGE_LIBGTK3_X11),gcr) \ + granite \ + libgtk3 \ libsoup \ libxml2 \ sqlite \ - webkitgtk24 \ + webkitgtk \ $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) MIDORI_CONF_OPTS = \ + -DHALF_BRO_INCOM_WEBKIT2=ON \ + -DUSE_GRANITE=ON \ + -DUSE_GTK3=ON \ -DUSE_ZEITGEIST=OFF -# Requires uClibc backtrace support, normally not enabled -ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) -define MIDORI_REMOVE_DEVPET - rm -f $(@D)/extensions/devpet.vala -endef -MIDORI_POST_PATCH_HOOKS += MIDORI_REMOVE_DEVPET -endif - -ifeq ($(BR2_PACKAGE_MIDORI_HTTPS),y) -MIDORI_DEPENDENCIES += glib-networking -endif - -ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) -MIDORI_CONF_OPTS += -DUSE_GTK3=ON -DHALF_BRO_INCOM_WEBKIT2=ON -MIDORI_DEPENDENCIES += libgtk3 -else -MIDORI_CONF_OPTS += -DUSE_GTK3=OFF -MIDORI_DEPENDENCIES += libgtk2 -endif - $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/minidlna/Config.in b/bsp/buildroot/package/minidlna/Config.in index 6925e012..c900143f 100644 --- a/bsp/buildroot/package/minidlna/Config.in +++ b/bsp/buildroot/package/minidlna/Config.in @@ -1,8 +1,10 @@ config BR2_PACKAGE_MINIDLNA bool "minidlna" + depends on !BR2_STATIC_LIBS depends on BR2_USE_WCHAR # flac depends on BR2_USE_MMU # fork depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FLAC select BR2_PACKAGE_LIBVORBIS # selects libogg @@ -12,14 +14,14 @@ config BR2_PACKAGE_MINIDLNA select BR2_PACKAGE_JPEG select BR2_PACKAGE_SQLITE select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE - depends on !BR2_nios2 # ffmpeg help MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients. http://minidlna.sourceforge.net/ -comment "minidlna needs a toolchain w/ threads, wchar" +comment "minidlna needs a toolchain w/ dynamic library, threads, wchar" depends on BR2_USE_MMU - depends on !BR2_nios2 - depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ + BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/minidlna/minidlna.mk b/bsp/buildroot/package/minidlna/minidlna.mk index 729680ca..0e765e80 100644 --- a/bsp/buildroot/package/minidlna/minidlna.mk +++ b/bsp/buildroot/package/minidlna/minidlna.mk @@ -14,17 +14,8 @@ MINIDLNA_DEPENDENCIES = \ ffmpeg flac libvorbis libogg libid3tag libexif jpeg sqlite \ host-xutil_makedepend -ifeq ($(BR2_STATIC_LIBS),y) -# the configure script / Makefile forgets to link with some of the dependent -# libraries breaking static linking, so help it along -MINIDLNA_PKGCONFIG_DEPS = libavcodec libexif vorbis sqlite3 -MINIDLNA_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs $(MINIDLNA_PKGCONFIG_DEPS)` -MINIDLNA_STATIC_LIBS += $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl) -MINIDLNA_CONF_ENV += LIBS="$(MINIDLNA_STATIC_LIBS)" -else MINIDLNA_CONF_OPTS = \ --disable-static -endif define MINIDLNA_INSTALL_CONF $(INSTALL) -D -m 644 $(@D)/minidlna.conf $(TARGET_DIR)/etc/minidlna.conf diff --git a/bsp/buildroot/package/minissdpd/Config.in b/bsp/buildroot/package/minissdpd/Config.in new file mode 100644 index 00000000..226cff0a --- /dev/null +++ b/bsp/buildroot/package/minissdpd/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_MINISSDPD + bool "minissdpd" + depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_LIBNFNETLINK + help + SSDP managing daemon. Designed to work with miniupnpc, + miniupnpd, minidlna, etc. + + http://miniupnp.free.fr/ diff --git a/bsp/buildroot/package/minissdpd/S50minissdpd b/bsp/buildroot/package/minissdpd/S50minissdpd new file mode 100644 index 00000000..6235e06b --- /dev/null +++ b/bsp/buildroot/package/minissdpd/S50minissdpd @@ -0,0 +1,47 @@ +#!/bin/sh + +NAME=minissdpd +PIDFILE=/var/run/$NAME.pid +DAEMON=/usr/sbin/$NAME +CFGFILE=/etc/default/$NAME + +IFACE=eth0 + +# Read configuration variable file if it is present +if [ -f $CFGFILE ]; then + . $CFGFILE +fi + +DAEMON_ARGS="-i $IFACE" + +start() { + printf "Starting $NAME: " + start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping $NAME: " + start-stop-daemon -K -q -p $PIDFILE + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/minissdpd/minissdpd.hash b/bsp/buildroot/package/minissdpd/minissdpd.hash new file mode 100644 index 00000000..8d670f3e --- /dev/null +++ b/bsp/buildroot/package/minissdpd/minissdpd.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 dfd637b185731e1acb412a86faa9718eb93c04ca08280541a6d22d14d1fb890f minissdpd-1.5.tar.gz diff --git a/bsp/buildroot/package/minissdpd/minissdpd.mk b/bsp/buildroot/package/minissdpd/minissdpd.mk new file mode 100644 index 00000000..5c8bd371 --- /dev/null +++ b/bsp/buildroot/package/minissdpd/minissdpd.mk @@ -0,0 +1,40 @@ +################################################################################ +# +# minissdpd +# +################################################################################ + +MINISSDPD_VERSION = 1.5 +MINISSDPD_SITE = http://miniupnp.free.fr/files +MINISSDPD_LICENSE = BSD-3c +MINISSDPD_LICENSE_FILES = LICENSE +MINISSDPD_DEPENDENCIES = libnfnetlink + +define MINISSDPD_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \ + -C $(@D) +endef + +define MINISSDPD_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + PREFIX=$(TARGET_DIR) install +endef + +# Use dedicated init scripts for systemV and systemd instead of using +# minissdpd.init.d.script as it is not compatible with buildroot init system +define MINISSDPD_INSTALL_INIT_SYSV + $(RM) $(TARGET_DIR)/etc/init.d/minissdpd + $(INSTALL) -D -m 0755 package/minissdpd/S50minissdpd \ + $(TARGET_DIR)/etc/init.d/S50minissdpd +endef + +define MINISSDPD_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/minissdpd/minissdpd.service \ + $(TARGET_DIR)/usr/lib/systemd/system/minissdpd.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../../usr/lib/systemd/system/minissdpd.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/minissdpd.service +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/minissdpd/minissdpd.service b/bsp/buildroot/package/minissdpd/minissdpd.service new file mode 100644 index 00000000..59ed9c86 --- /dev/null +++ b/bsp/buildroot/package/minissdpd/minissdpd.service @@ -0,0 +1,12 @@ +[Unit] +Description=SSDP managing daemon +After=network.target + +[Service] +Environment="IFACE=eth0" +EnvironmentFile=/etc/default/minissdpd +ExecStart=/usr/sbin/minissdpd -i $IFACE +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/bsp/buildroot/package/minizip/minizip.hash b/bsp/buildroot/package/minizip/minizip.hash index a303b2c7..994ed60a 100644 --- a/bsp/buildroot/package/minizip/minizip.hash +++ b/bsp/buildroot/package/minizip/minizip.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 b39158bdf3d8bf81d3a7412dc761851fda398bc93d8989d5e940ed4ae5bbb52c minizip-977afb22966e6ab0ee401293a8e85fe808133f9a.tar.gz +sha256 ac361f40531d9fb7222d4befd10d160c647d5e85138f6bc9eda080ed8f937fb8 minizip-5f56dd81d94bd7028f7dc05d7d14112697c30241.tar.gz diff --git a/bsp/buildroot/package/minizip/minizip.mk b/bsp/buildroot/package/minizip/minizip.mk index 5b877861..3d612886 100644 --- a/bsp/buildroot/package/minizip/minizip.mk +++ b/bsp/buildroot/package/minizip/minizip.mk @@ -4,7 +4,7 @@ # ################################################################################ -MINIZIP_VERSION = 977afb22966e6ab0ee401293a8e85fe808133f9a +MINIZIP_VERSION = 5f56dd81d94bd7028f7dc05d7d14112697c30241 MINIZIP_SITE = $(call github,nmoinvaz,minizip,$(MINIZIP_VERSION)) MINIZIP_DEPENDENCIES = zlib MINIZIP_AUTORECONF = YES diff --git a/bsp/buildroot/package/miraclecast/miraclecast.hash b/bsp/buildroot/package/miraclecast/miraclecast.hash index 2a92cbf0..97c68d01 100644 --- a/bsp/buildroot/package/miraclecast/miraclecast.hash +++ b/bsp/buildroot/package/miraclecast/miraclecast.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 deef87155ed07bcf737260c29599e886bd248b573e72ba167369df93acb1fa61 miraclecast-8b61f733da124ccbfd1b85e188581fad1c41c1e1.tar.gz +sha256 e11440f782519663db367285dd54b53eb5feb78682dac42bd90230222de9f0fd miraclecast-c94be167c85c6ec8badd7ac79e3dea2e0b73225c.tar.gz diff --git a/bsp/buildroot/package/miraclecast/miraclecast.mk b/bsp/buildroot/package/miraclecast/miraclecast.mk index 598dbd5e..17e73f1e 100644 --- a/bsp/buildroot/package/miraclecast/miraclecast.mk +++ b/bsp/buildroot/package/miraclecast/miraclecast.mk @@ -4,7 +4,7 @@ # ################################################################################ -MIRACLECAST_VERSION = 8b61f733da124ccbfd1b85e188581fad1c41c1e1 +MIRACLECAST_VERSION = c94be167c85c6ec8badd7ac79e3dea2e0b73225c MIRACLECAST_SITE = $(call github,albfan,miraclecast,$(MIRACLECAST_VERSION)) MIRACLECAST_LICENSE = LGPLv2.1+, GPLv2 (gdhcp) MIRACLECAST_LICENSE_FILES = COPYING LICENSE_gdhcp LICENSE_htable LICENSE_lgpl diff --git a/bsp/buildroot/package/mjpg-streamer/mjpg-streamer.mk b/bsp/buildroot/package/mjpg-streamer/mjpg-streamer.mk index e54c6006..a710af6f 100644 --- a/bsp/buildroot/package/mjpg-streamer/mjpg-streamer.mk +++ b/bsp/buildroot/package/mjpg-streamer/mjpg-streamer.mk @@ -14,8 +14,13 @@ MJPG_STREAMER_LICENSE = GPLv2+ MJPG_STREAMER_LICENSE_FILES = LICENSE MJPG_STREAMER_DEPENDENCIES = jpeg +ifeq ($(BR2_PACKAGE_LIBV4L),y) +MJPG_STREAMER_DEPENDENCIES += libv4l +MJPG_STREAMER_USE_LIBV4L += USE_LIBV4L2=true +endif + define MJPG_STREAMER_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" -C $(@D) + $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" -C $(@D) $(MJPG_STREAMER_USE_LIBV4L) endef define MJPG_STREAMER_INSTALL_TARGET_CMDS diff --git a/bsp/buildroot/package/mke2img/mke2img.mk b/bsp/buildroot/package/mke2img/mke2img.mk index 04aaa8f1..9de387a3 100644 --- a/bsp/buildroot/package/mke2img/mke2img.mk +++ b/bsp/buildroot/package/mke2img/mke2img.mk @@ -4,7 +4,6 @@ # ################################################################################ -HOST_MKE2IMG_SOURCE = HOST_MKE2IMG_DEPENDENCIES = host-genext2fs host-e2fsprogs define HOST_MKE2IMG_INSTALL_CMDS diff --git a/bsp/buildroot/package/mkpasswd/mkpasswd.mk b/bsp/buildroot/package/mkpasswd/mkpasswd.mk index 0447ecc9..07935a41 100644 --- a/bsp/buildroot/package/mkpasswd/mkpasswd.mk +++ b/bsp/buildroot/package/mkpasswd/mkpasswd.mk @@ -7,11 +7,8 @@ # source included in buildroot, taken from # https://github.com/rfc1036/whois/blob/master/ # at revision 5a0f08500fa51608b6d3b73ee338be38c692eadb -HOST_MKPASSWD_SOURCE = HOST_MKPASSWD_LICENSE = GPLv2+ -HOST_MKPASSWD_VERSION = buildroot-$(BR2_VERSION) - define HOST_MKPASSWD_BUILD_CMDS $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ package/mkpasswd/mkpasswd.c package/mkpasswd/utils.c \ diff --git a/bsp/buildroot/package/mkpimage/mkpimage.c b/bsp/buildroot/package/mkpimage/mkpimage.c new file mode 100644 index 00000000..1a7a66d9 --- /dev/null +++ b/bsp/buildroot/package/mkpimage/mkpimage.c @@ -0,0 +1,287 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define VALIDATION_WORD 0x31305341 + +#define MAX_IMAGE_SIZE (60 * 1024 - 4) + +static int add_barebox_header; + +struct socfpga_header { + uint8_t validation_word[4]; + uint8_t version; + uint8_t flags; + uint8_t program_length[2]; + uint8_t spare[2]; + uint8_t checksum[2]; +}; + +static uint32_t bb_header[] = { + 0xea00007e, /* b 0x200 */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0xeafffffe, /* 1: b 1b */ + 0x65726162, /* 'bare' */ + 0x00786f62, /* 'box\0' */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* padding */ + 0x00000000, /* socfpga header */ + 0x00000000, /* socfpga header */ + 0x00000000, /* socfpga header */ + 0xea00006b, /* entry. b 0x200 */ +}; + +static int read_full(int fd, void *buf, size_t size) +{ + size_t insize = size; + int now; + int total = 0; + + while (size) { + now = read(fd, buf, size); + if (now == 0) + return total; + if (now < 0) + return now; + total += now; + size -= now; + buf += now; + } + + return insize; +} + +static int write_full(int fd, void *buf, size_t size) +{ + size_t insize = size; + int now; + + while (size) { + now = write(fd, buf, size); + if (now <= 0) + return now; + size -= now; + buf += now; + } + + return insize; +} + +static uint32_t crc_table[256] = { + 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, + 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, + 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, 0x4c11db70, 0x48d0c6c7, + 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75, + 0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, + 0x709f7b7a, 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, + 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, 0xbaea46ef, + 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d, + 0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb, + 0xceb42022, 0xca753d95, 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, + 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, + 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072, + 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x018aeb13, 0x054bf6a4, + 0x0808d07d, 0x0cc9cdca, 0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde, + 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, + 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, + 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc, + 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6, + 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a, 0xe0b41de7, 0xe4750050, + 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, + 0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, + 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637, + 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, 0x4f040d56, 0x4bc510e1, + 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53, + 0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, + 0x3f9b762c, 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, + 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, 0xf5ee4bb9, + 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b, + 0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, + 0xcda1f604, 0xc960ebb3, 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, + 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, + 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3, + 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2, + 0x470cdd2b, 0x43cdc09c, 0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8, + 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, + 0x18197087, 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, + 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a, + 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0, + 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c, 0xe3a1cbc1, 0xe760d676, + 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, + 0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, + 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668, + 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 +}; + +uint32_t crc32(uint32_t crc, void *_buf, int length) +{ + uint8_t *buf = _buf; + + while (length--) + crc = crc << 8 ^ crc_table[(crc >> 24 ^ *(buf++)) & 0xff]; + + return crc; +} + +static int add_socfpga_header(void *buf, int size) +{ + struct socfpga_header *header = buf + 0x40; + uint8_t *buf_header = buf + 0x40; + uint32_t *crc; + unsigned checksum; + int length = size >> 2; + int i; + + if (size & 0x3) { + fprintf(stderr, "%s: size must be multiple of 4\n", __func__); + return -EINVAL; + } + + header->validation_word[0] = VALIDATION_WORD & 0xff; + header->validation_word[1] = (VALIDATION_WORD >> 8) & 0xff; + header->validation_word[2] = (VALIDATION_WORD >> 16) & 0xff; + header->validation_word[3] = (VALIDATION_WORD >> 24) & 0xff; + header->version = 0; + header->flags = 0; + header->program_length[0] = length & 0xff; + header->program_length[1] = (length >> 8) & 0xff; + header->spare[0] = 0; + header->spare[1] = 0; + + checksum = 0; + for (i = 0; i < sizeof(*header) - 2; i++) + checksum += buf_header[i]; + + header->checksum[0] = checksum & 0xff;; + header->checksum[1] = (checksum >> 8) & 0xff;; + + crc = buf + size - sizeof(uint32_t); + + *crc = crc32(0xffffffff, buf, size - sizeof(uint32_t)); + *crc ^= 0xffffffff; + + return 0; +} + +static void usage(const char *prgname) +{ + fprintf(stderr, "usage: %s [OPTIONS] \n", prgname); +} + +int main(int argc, char *argv[]) +{ + int opt, ret; + const char *outfile = NULL, *infile; + struct stat s; + void *buf; + int fd; + int min_image_size = 80; + int max_image_size = MAX_IMAGE_SIZE; + int addsize = 0, pad; + + while ((opt = getopt(argc, argv, "o:hb")) != -1) { + switch (opt) { + case 'b': + add_barebox_header = 1; + min_image_size = 0; + max_image_size = MAX_IMAGE_SIZE - 512; + addsize = 512; + break; + case 'h': + usage(argv[0]); + exit(0); + case 'o': + outfile = optarg; + break; + default: + exit(1); + } + } + + if (optind == argc) { + usage(argv[0]); + exit(1); + } + + infile = argv[optind]; + + ret = stat(infile, &s); + if (ret) { + perror("stat"); + exit(1); + } + + if (s.st_size < min_image_size) { + fprintf(stderr, "input image too small. Minimum is 80 bytes\n"); + exit(1); + } + + if (s.st_size > max_image_size) { + fprintf(stderr, "input image too big. Maximum is %d bytes, got %ld bytes\n", + max_image_size, s.st_size); + exit(1); + } + + fd = open(infile, O_RDONLY); + if (fd < 0) { + perror("open infile"); + exit(1); + } + + pad = s.st_size & 0x3; + if (pad) + pad = 4 - pad; + + buf = calloc(s.st_size + 4 + addsize + pad, 1); + if (!buf) { + perror("malloc"); + exit(1); + } + + ret = read_full(fd, buf + addsize, s.st_size); + if (ret < 0) { + perror("read infile"); + exit(1); + } + + close(fd); + + if (add_barebox_header) { + memcpy(buf, bb_header, sizeof(bb_header)); + } + + ret = add_socfpga_header(buf, s.st_size + 4 + addsize + pad); + if (ret) + exit(1); + + fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + perror("open outfile"); + exit(1); + } + + ret = write_full(fd, buf, s.st_size + 4 + addsize + pad); + if (ret < 0) { + perror("write outfile"); + exit(1); + } + + exit(0); +} diff --git a/bsp/buildroot/package/mkpimage/mkpimage.mk b/bsp/buildroot/package/mkpimage/mkpimage.mk new file mode 100644 index 00000000..c30a6809 --- /dev/null +++ b/bsp/buildroot/package/mkpimage/mkpimage.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# mkpimage +# +################################################################################ + +# source included in the package +# came from barebox's repository: +# http://git.pengutronix.de/?p=barebox.git;a=blob;f=scripts/socfpga_mkimage.c;h=1a7a66d98841e9f52c3ea49c651286aa1412c9a5;hb=HEAD +HOST_MKPIMAGE_LICENSE = GPLv2 + +define HOST_MKPIMAGE_BUILD_CMDS + $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \ + package/mkpimage/mkpimage.c -o $(@D)/mkpimage +endef + +define HOST_MKPIMAGE_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/mkpimage $(HOST_DIR)/usr/bin/mkpimage +endef + +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/moarvm/Config.in b/bsp/buildroot/package/moarvm/Config.in index 6bc3090d..3e0a1045 100644 --- a/bsp/buildroot/package/moarvm/Config.in +++ b/bsp/buildroot/package/moarvm/Config.in @@ -4,9 +4,10 @@ config BR2_PACKAGE_MOARVM depends on !BR2_STATIC_LIBS # libuv depends on BR2_USE_MMU # libuv depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS # libatomic_ops - # needs AO_fetch_compare_and_swap, not implemented for sparcv9 - depends on !BR2_sparc64 + # needs AO_fetch_compare_and_swap, not implemented for sparcv8/sparcv9 + depends on !BR2_sparc64 && !BR2_sparc select BR2_PACKAGE_LIBUV + select BR2_PACKAGE_LIBTOMMATH select BR2_PACKAGE_LIBATOMIC_OPS help Short for "Metamodel On A Runtime", MoarVM is a virtual machine @@ -18,5 +19,5 @@ comment "moarvm needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on BR2_USE_MMU depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS - depends on !BR2_sparc64 + depends on !BR2_sparc64 && !BR2_sparc diff --git a/bsp/buildroot/package/moarvm/moarvm.hash b/bsp/buildroot/package/moarvm/moarvm.hash index 47061775..f045f4fa 100644 --- a/bsp/buildroot/package/moarvm/moarvm.hash +++ b/bsp/buildroot/package/moarvm/moarvm.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 d409b684c7c92b144b31cf7f0408f30ccbb033ce646f57d7fbaeb9683773e37b MoarVM-2016.01.tar.gz +sha256 6fe9000daada59535747f2557cc73573241ba8a6044271caf1647aa37be33c6d MoarVM-2016.04.tar.gz diff --git a/bsp/buildroot/package/moarvm/moarvm.mk b/bsp/buildroot/package/moarvm/moarvm.mk index 7456902f..ee58f766 100644 --- a/bsp/buildroot/package/moarvm/moarvm.mk +++ b/bsp/buildroot/package/moarvm/moarvm.mk @@ -4,13 +4,13 @@ # ################################################################################ -MOARVM_VERSION = 2016.01 +MOARVM_VERSION = 2016.04 MOARVM_SITE = http://moarvm.com/releases MOARVM_SOURCE = MoarVM-$(MOARVM_VERSION).tar.gz MOARVM_LICENSE = Artistic-2.0 MOARVM_LICENSE_FILES = Artistic2.txt MOARVM_INSTALL_STAGING = YES -MOARVM_DEPENDENCIES = host-luajit libuv libatomic_ops +MOARVM_DEPENDENCIES = host-luajit libuv libtommath libatomic_ops MOARVM_CONF_OPTS = \ --build=$(GNU_HOST_NAME) \ @@ -21,6 +21,7 @@ MOARVM_CONF_OPTS = \ --prefix="/usr" \ --lua=$(HOST_DIR)/usr/bin/luajit \ --has-libuv \ + --has-libtommath \ --has-libatomic ifeq ($(BR2_ENDIAN),"BIG") diff --git a/bsp/buildroot/package/modem-manager/modem-manager.hash b/bsp/buildroot/package/modem-manager/modem-manager.hash index 585f92ab..9e834889 100644 --- a/bsp/buildroot/package/modem-manager/modem-manager.hash +++ b/bsp/buildroot/package/modem-manager/modem-manager.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 7ef5035375a953b285a742591df0a65fd442f4641ce4d8f4392a41d6d6bc70b3 ModemManager-1.4.12.tar.xz +sha256 a94f4657a8fa6835e2734fcc6edf20aa8c8d452f62299d7748541021c3eb2445 ModemManager-1.6.0.tar.xz diff --git a/bsp/buildroot/package/modem-manager/modem-manager.mk b/bsp/buildroot/package/modem-manager/modem-manager.mk index 451752c4..252292a1 100644 --- a/bsp/buildroot/package/modem-manager/modem-manager.mk +++ b/bsp/buildroot/package/modem-manager/modem-manager.mk @@ -4,7 +4,7 @@ # ################################################################################ -MODEM_MANAGER_VERSION = 1.4.12 +MODEM_MANAGER_VERSION = 1.6.0 MODEM_MANAGER_SOURCE = ModemManager-$(MODEM_MANAGER_VERSION).tar.xz MODEM_MANAGER_SITE = http://www.freedesktop.org/software/ModemManager MODEM_MANAGER_LICENSE = GPLv2+ (programs, plugins), LGPLv2+ (libmm-glib) diff --git a/bsp/buildroot/package/mongodb/Config.in b/bsp/buildroot/package/mongodb/Config.in index 2f6876a1..a78bb27e 100644 --- a/bsp/buildroot/package/mongodb/Config.in +++ b/bsp/buildroot/package/mongodb/Config.in @@ -22,7 +22,7 @@ config BR2_PACKAGE_MONGODB https://www.mongodb.org/ -comment "mongodb needs a (e)glibc toolchain w/ wchar, threads, C++, gcc >= 4.8" +comment "mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_GLIBC || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 diff --git a/bsp/buildroot/package/mongodb/mongodb.hash b/bsp/buildroot/package/mongodb/mongodb.hash index 0bdd66db..b01ad53a 100644 --- a/bsp/buildroot/package/mongodb/mongodb.hash +++ b/bsp/buildroot/package/mongodb/mongodb.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 316496375f41f322839529d36e75e3275fdec468f7656fdbeb53ec8dc1ca5275 mongodb-r3.2.0.tar.gz +sha256 4764945631bca4ac5c2b239e04e91db00e39716915204349170c37cb7897c564 mongodb-r3.3.4.tar.gz diff --git a/bsp/buildroot/package/mongodb/mongodb.mk b/bsp/buildroot/package/mongodb/mongodb.mk index 1027c83f..f5b2c01d 100644 --- a/bsp/buildroot/package/mongodb/mongodb.mk +++ b/bsp/buildroot/package/mongodb/mongodb.mk @@ -4,7 +4,7 @@ # ################################################################################ -MONGODB_VERSION_BASE = 3.2.0 +MONGODB_VERSION_BASE = 3.3.4 MONGODB_VERSION = r$(MONGODB_VERSION_BASE) MONGODB_SITE = $(call github,mongodb,mongo,$(MONGODB_VERSION)) diff --git a/bsp/buildroot/package/mongrel2/Config.in b/bsp/buildroot/package/mongrel2/Config.in index 49dd6fd9..bc9b79bd 100644 --- a/bsp/buildroot/package/mongrel2/Config.in +++ b/bsp/buildroot/package/mongrel2/Config.in @@ -5,7 +5,7 @@ config BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS bool default y if BR2_TOOLCHAIN_USES_GLIBC default y if BR2_TOOLCHAIN_USES_UCLIBC && \ - (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_x86_64) + (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_sparc || BR2_x86_64) comment "mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || \ diff --git a/bsp/buildroot/package/monit/monit.hash b/bsp/buildroot/package/monit/monit.hash index 37244907..04f87901 100644 --- a/bsp/buildroot/package/monit/monit.hash +++ b/bsp/buildroot/package/monit/monit.hash @@ -1,2 +1,2 @@ -# From https://mmonit.com/monit/dist/monit-5.12.2.tar.gz.sha256: -sha256 8ab0296d1aa2351b1573481592d7b5e06de1edd49dff1b5552839605a450914c monit-5.12.2.tar.gz +# From https://mmonit.com/monit/dist/monit-5.17.tar.gz.sha256: +sha256 2fbcdea79ae39228791a0aaa685ebbf650f2b58d086eaf77a33226e972cb216e monit-5.17.tar.gz diff --git a/bsp/buildroot/package/monit/monit.mk b/bsp/buildroot/package/monit/monit.mk index 9f0a29a6..1d5904b6 100644 --- a/bsp/buildroot/package/monit/monit.mk +++ b/bsp/buildroot/package/monit/monit.mk @@ -4,7 +4,7 @@ # ################################################################################ -MONIT_VERSION = 5.12.2 +MONIT_VERSION = 5.17 MONIT_SITE = http://mmonit.com/monit/dist MONIT_LICENSE = AGPLv3 with OpenSSL exception MONIT_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/mono/0005-eglib-checking-for-locale_charset-function.patch b/bsp/buildroot/package/mono/0005-eglib-checking-for-locale_charset-function.patch deleted file mode 100644 index 52d56384..00000000 --- a/bsp/buildroot/package/mono/0005-eglib-checking-for-locale_charset-function.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 026a8c44d332b3595814ce0aceba255467cd7b6d Mon Sep 17 00:00:00 2001 -From: Angelo Compagnucci -Date: Sat, 5 Sep 2015 08:57:21 +0200 -Subject: [PATCH] eglib: checking for locale_charset function - -This patch checks if locale_charset function is availabe in -libiconv or libcharset and changes the linking options accordingly. - -Signed-off-by: Angelo Compagnucci ---- - eglib/configure.ac | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/eglib/configure.ac b/eglib/configure.ac -index 9d094ea..5ea220e 100644 ---- a/eglib/configure.ac -+++ b/eglib/configure.ac -@@ -182,6 +182,7 @@ fi - AC_SUBST(G_HAVE_ISO_VARARGS) - - AC_CHECK_HEADERS(getopt.h sys/select.h sys/time.h sys/wait.h pwd.h langinfo.h iconv.h localcharset.h sys/types.h sys/resource.h) -+AC_CHECK_LIB([iconv], [locale_charset],[],[AC_CHECK_LIB([charset], [locale_charset],[LIBS+="-liconv -lcharset"])]) - AC_CHECK_HEADER(alloca.h, [HAVE_ALLOCA_H=1], [HAVE_ALLOCA_H=0]) - AC_SUBST(HAVE_ALLOCA_H) - --- -1.9.1 - diff --git a/bsp/buildroot/package/mono/0007-config.in-fixing-wrong-MonoPosixHelper-location.patch b/bsp/buildroot/package/mono/0007-config.in-fixing-wrong-MonoPosixHelper-location.patch deleted file mode 100644 index 6ebb802a..00000000 --- a/bsp/buildroot/package/mono/0007-config.in-fixing-wrong-MonoPosixHelper-location.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 76aa4fb62a433e61dc35eefcc3077f0463182d2f Mon Sep 17 00:00:00 2001 -From: Angelo Compagnucci -Date: Tue, 23 Feb 2016 22:43:39 +0100 -Subject: [PATCH] config.in: fixing wrong MonoPosixHelper location - -This patch remove a wrong prefix for libMonoPosixHelper - -Signed-off-by: Angelo Compagnucci ---- - data/config.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/config.in b/data/config.in -index b760176..41495b9 100644 ---- a/data/config.in -+++ b/data/config.in -@@ -10,7 +10,7 @@ - - - -- -+ - - - --- -1.9.1 - diff --git a/bsp/buildroot/package/mono/0009-fix-musl-incorrect-sigcontext-include.patch b/bsp/buildroot/package/mono/0009-fix-musl-incorrect-sigcontext-include.patch new file mode 100644 index 00000000..3d932b6d --- /dev/null +++ b/bsp/buildroot/package/mono/0009-fix-musl-incorrect-sigcontext-include.patch @@ -0,0 +1,44 @@ +From 63f0b0246b8125ae48b15bd182bb5831be02e6c9 Mon Sep 17 00:00:00 2001 +From: Angelo Compagnucci +Date: Mon, 27 Jun 2016 21:32:11 +0200 +Subject: [PATCH] fix musl incorrect sigcontext include + +On musl __GLIBC__ is not defined, so the conditional logic will +not produce correct result. Add a specific case to handle when +__GLIBC__ is not defined. + +Signed-off-by: Angelo Compagnucci +--- + libgc/os_dep.c | 2 +- + mono/mini/exceptions-arm.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgc/os_dep.c b/libgc/os_dep.c +index 8c8e098..34859c1 100644 +--- a/libgc/os_dep.c ++++ b/libgc/os_dep.c +@@ -32,7 +32,7 @@ + /* prototypes, so we have to include the top-level sigcontext.h to */ + /* make sure the former gets defined to be the latter if appropriate. */ + # include +-# if 2 <= __GLIBC__ ++# if 2 <= __GLIBC__ || !defined(__GLIBC__) + # if 2 == __GLIBC__ && 0 == __GLIBC_MINOR__ + /* glibc 2.1 no longer has sigcontext.h. But signal.h */ + /* has the right declaration for glibc 2.1. */ +diff --git a/mono/mini/exceptions-arm.c b/mono/mini/exceptions-arm.c +index b036aa7..a3e2164 100644 +--- a/mono/mini/exceptions-arm.c ++++ b/mono/mini/exceptions-arm.c +@@ -14,7 +14,7 @@ + #include + + #ifndef MONO_CROSS_COMPILE +-#ifdef HAVE_ASM_SIGCONTEXT_H ++#if defined(HAVE_ASM_SIGCONTEXT_H) && defined(__GLIBC__) + #include + #endif /* def HAVE_ASM_SIGCONTEXT_H */ + #endif +-- +1.9.1 + diff --git a/bsp/buildroot/package/mono/Config.in b/bsp/buildroot/package/mono/Config.in index cf18a033..d45ad376 100644 --- a/bsp/buildroot/package/mono/Config.in +++ b/bsp/buildroot/package/mono/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_MONO_ARCH_SUPPORTS bool default y if (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || \ - BR2_mipsel || BR2_powerpc || BR2_sparc || BR2_x86_64) + BR2_mipsel || BR2_powerpc || BR2_x86_64) config BR2_PACKAGE_MONO bool "mono" diff --git a/bsp/buildroot/package/mono/mono.hash b/bsp/buildroot/package/mono/mono.hash index 001f6be7..c275e15b 100644 --- a/bsp/buildroot/package/mono/mono.hash +++ b/bsp/buildroot/package/mono/mono.hash @@ -1,2 +1,2 @@ # sha256 locally computed -sha256 b7b461fe04375f621d88166ba8c6f1cb33c439fd3e17136460f7d087a51ed792 mono-4.2.1.102.tar.bz2 +sha256 900c2cc25ee55adeec04e1ae889316efc127c82cc0c392f928421f19f8f5b633 mono-4.4.2.11.tar.bz2 diff --git a/bsp/buildroot/package/mono/mono.mk b/bsp/buildroot/package/mono/mono.mk index 8f999833..3d0b9bc7 100644 --- a/bsp/buildroot/package/mono/mono.mk +++ b/bsp/buildroot/package/mono/mono.mk @@ -4,7 +4,7 @@ # ################################################################################ -MONO_VERSION = 4.2.1.102 +MONO_VERSION = 4.4.2.11 MONO_SITE = http://download.mono-project.com/sources/mono MONO_SOURCE = mono-$(MONO_VERSION).tar.bz2 MONO_LICENSE = GPLv2 or MIT (compiler, tools), LGPLv2 (runtime libs), MIT (class libs) or commercial diff --git a/bsp/buildroot/package/monolite/monolite.hash b/bsp/buildroot/package/monolite/monolite.hash index fa098e26..44ec39a2 100644 --- a/bsp/buildroot/package/monolite/monolite.hash +++ b/bsp/buildroot/package/monolite/monolite.hash @@ -1,2 +1,2 @@ # sha256 locally computed -sha256 0cf7aeafb22daeb7ed3398057f0ac88015440901f480ef84cba2431a753f8c1e monolite-138-latest.tar.gz +sha256 885270da1b64670bffec9c8df1272ab88ff0b96186d2ebb61bdfa47a5586f987 monolite-140-latest.tar.gz diff --git a/bsp/buildroot/package/monolite/monolite.mk b/bsp/buildroot/package/monolite/monolite.mk index 3c53bff5..91c01d79 100644 --- a/bsp/buildroot/package/monolite/monolite.mk +++ b/bsp/buildroot/package/monolite/monolite.mk @@ -4,8 +4,8 @@ # ################################################################################ -MONOLITE_VERSION = 138 -MONOLITE_SITE = http://storage.bos.xamarin.com/mono-dist-master/latest +MONOLITE_VERSION = 140 +MONOLITE_SITE = http://download.mono-project.com/monolite/ MONOLITE_SOURCE = monolite-$(MONOLITE_VERSION)-latest.tar.gz MONOLITE_LICENSE = LGPLv2 or commercial diff --git a/bsp/buildroot/package/mosh/Config.in b/bsp/buildroot/package/mosh/Config.in index 26f72339..b4189ee1 100644 --- a/bsp/buildroot/package/mosh/Config.in +++ b/bsp/buildroot/package/mosh/Config.in @@ -1,6 +1,6 @@ -comment "mosh needs a toolchain w/ C++, threads, dynamic library" +comment "mosh needs a toolchain w/ C++, threads, dynamic library, wchar" depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \ - || BR2_STATIC_LIBS + || BR2_STATIC_LIBS || !BR2_USE_WCHAR depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS config BR2_PACKAGE_MOSH @@ -9,6 +9,7 @@ config BR2_PACKAGE_MOSH depends on BR2_INSTALL_LIBSTDCPP # protobuf depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf depends on !BR2_STATIC_LIBS # protobuf + depends on BR2_USE_WCHAR select BR2_PACKAGE_PROTOBUF select BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL diff --git a/bsp/buildroot/package/mosquitto/Config.in b/bsp/buildroot/package/mosquitto/Config.in index ab598d07..50937d05 100644 --- a/bsp/buildroot/package/mosquitto/Config.in +++ b/bsp/buildroot/package/mosquitto/Config.in @@ -2,8 +2,6 @@ config BR2_PACKAGE_MOSQUITTO bool "mosquitto" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # builds .so - # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and @@ -18,4 +16,3 @@ config BR2_PACKAGE_MOSQUITTO comment "mosquitto needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/mosquitto/mosquitto.hash b/bsp/buildroot/package/mosquitto/mosquitto.hash index 861136b6..68dac00f 100644 --- a/bsp/buildroot/package/mosquitto/mosquitto.hash +++ b/bsp/buildroot/package/mosquitto/mosquitto.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 d96eb5610e57cc3e273f4527d3f54358ab7711459941a9e64bc4d0a85c2acfda mosquitto-1.4.8.tar.gz +# From https://www.eclipse.org/downloads/download.php?file=/mosquitto/source/mosquitto-1.4.9.tar.gz +sha512 5994159d9a8da248a877f3032f36ca9a865d9b4efaafac329620864049992a77d414e02252cbbfef89ea2c37dc761b1885a89e19fc8e82b2a42d38f31e761d4d mosquitto-1.4.9.tar.gz diff --git a/bsp/buildroot/package/mosquitto/mosquitto.mk b/bsp/buildroot/package/mosquitto/mosquitto.mk index dfef6e50..f2ede6c9 100644 --- a/bsp/buildroot/package/mosquitto/mosquitto.mk +++ b/bsp/buildroot/package/mosquitto/mosquitto.mk @@ -4,7 +4,7 @@ # ################################################################################ -MOSQUITTO_VERSION = 1.4.8 +MOSQUITTO_VERSION = 1.4.9 MOSQUITTO_SITE = http://mosquitto.org/files/source MOSQUITTO_LICENSE = EPLv1.0 or EDLv1.0 MOSQUITTO_LICENSE_FILES = LICENSE.txt epl-v10 edl-v10 diff --git a/bsp/buildroot/package/mpc/mpc.mk b/bsp/buildroot/package/mpc/mpc.mk index bc265995..579e2ccc 100644 --- a/bsp/buildroot/package/mpc/mpc.mk +++ b/bsp/buildroot/package/mpc/mpc.mk @@ -10,6 +10,7 @@ MPC_LICENSE = LGPLv3+ MPC_LICENSE_FILES = COPYING.LESSER MPC_INSTALL_STAGING = YES MPC_DEPENDENCIES = gmp mpfr +HOST_MPC_DEPENDENCIES = host-gmp host-mpfr $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/mpd/0005-configure.ac-check-if-libatomic-is-needed.patch b/bsp/buildroot/package/mpd/0001-configure.ac-check-if-libatomic-is-needed.patch similarity index 100% rename from bsp/buildroot/package/mpd/0005-configure.ac-check-if-libatomic-is-needed.patch rename to bsp/buildroot/package/mpd/0001-configure.ac-check-if-libatomic-is-needed.patch diff --git a/bsp/buildroot/package/mpd/0001-notify-Don-t-use-constexpr-on-Haiku.patch b/bsp/buildroot/package/mpd/0001-notify-Don-t-use-constexpr-on-Haiku.patch deleted file mode 100644 index 2685578e..00000000 --- a/bsp/buildroot/package/mpd/0001-notify-Don-t-use-constexpr-on-Haiku.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f7d5081b727f69ae3a894a4a3310670a5d9ab077 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= -Date: Thu, 17 Sep 2015 22:18:10 +0200 -Subject: [PATCH] notify: Don't use constexpr on Haiku - -[Thomas: taken from upstream commit bf73d0f9051fd5740c22bf6e5114ceb4535d548f.] -Signed-off-by: Thomas Petazzoni ---- - src/notify.hxx | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/notify.hxx b/src/notify.hxx -index 3e62a01..1ee413f 100644 ---- a/src/notify.hxx -+++ b/src/notify.hxx -@@ -28,7 +28,8 @@ struct notify { - Cond cond; - bool pending; - --#if !defined(WIN32) && !defined(__NetBSD__) && !defined(__BIONIC__) -+#if !defined(WIN32) && !defined(__NetBSD__) && !defined(__BIONIC__) && \ -+ !defined(__HAIKU__) - constexpr - #endif - notify():pending(false) {} --- -2.6.4 - diff --git a/bsp/buildroot/package/mpd/0002-notify-use-constexpr-only-with-glibc.patch b/bsp/buildroot/package/mpd/0002-notify-use-constexpr-only-with-glibc.patch deleted file mode 100644 index e50f5985..00000000 --- a/bsp/buildroot/package/mpd/0002-notify-use-constexpr-only-with-glibc.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 09830d448d6299a47fbccf39af6f325be5f2b514 Mon Sep 17 00:00:00 2001 -From: Max Kellermann -Date: Thu, 17 Sep 2015 22:56:35 +0200 -Subject: [PATCH] notify: use "constexpr" only with glibc - -The Mutex and Cond constructors are only "constexpr" with glibc, and -this is what this #ifdef is about. - -[Thomas: taken from upstream commit 459a812a54509ebfd634a3df2998395c9cb5b98f.] -Signed-off-by: Thomas Petazzoni ---- - src/notify.hxx | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/notify.hxx b/src/notify.hxx -index 1ee413f..c96390b 100644 ---- a/src/notify.hxx -+++ b/src/notify.hxx -@@ -28,8 +28,7 @@ struct notify { - Cond cond; - bool pending; - --#if !defined(WIN32) && !defined(__NetBSD__) && !defined(__BIONIC__) && \ -- !defined(__HAIKU__) -+#ifdef __GLIBC__ - constexpr - #endif - notify():pending(false) {} --- -2.6.4 - diff --git a/bsp/buildroot/package/mpd/0004-thread-Name-include-stdio.h-for-prctl-as-well.patch b/bsp/buildroot/package/mpd/0002-thread-Name-include-stdio.h-for-prctl-as-well.patch similarity index 100% rename from bsp/buildroot/package/mpd/0004-thread-Name-include-stdio.h-for-prctl-as-well.patch rename to bsp/buildroot/package/mpd/0002-thread-Name-include-stdio.h-for-prctl-as-well.patch diff --git a/bsp/buildroot/package/mpd/0003-thread-Posix-Mutex-Cond-use-constexpr-only-with-glib.patch b/bsp/buildroot/package/mpd/0003-thread-Posix-Mutex-Cond-use-constexpr-only-with-glib.patch deleted file mode 100644 index 26fd7f62..00000000 --- a/bsp/buildroot/package/mpd/0003-thread-Posix-Mutex-Cond-use-constexpr-only-with-glib.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 42a5f0c4435757505bd515b68c2a27e8f7565f34 Mon Sep 17 00:00:00 2001 -From: Max Kellermann -Date: Tue, 25 Aug 2015 12:46:12 +0200 -Subject: [PATCH] thread/Posix{Mutex,Cond}: use "constexpr" only with glibc - -Apparently all other C libraries are not compatible with "constexpr". -Those which are not will get a performance penalty, but at least they -work at all. - -[Thomas: taken from upstream commit 75dff6445063d9b49cca126fd661c9abbd680977.] -Signed-off-by: Thomas Petazzoni ---- - src/thread/PosixCond.hxx | 16 ++++++++-------- - src/thread/PosixMutex.hxx | 16 ++++++++-------- - 2 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/src/thread/PosixCond.hxx b/src/thread/PosixCond.hxx -index b3fe204..73dbe02 100644 ---- a/src/thread/PosixCond.hxx -+++ b/src/thread/PosixCond.hxx -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2009-2013 Max Kellermann -+ * Copyright (C) 2009-2015 Max Kellermann - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions -@@ -41,9 +41,13 @@ class PosixCond { - pthread_cond_t cond; - - public: --#if defined(__NetBSD__) || defined(__BIONIC__) -- /* NetBSD's PTHREAD_COND_INITIALIZER is not compatible with -- "constexpr" */ -+#ifdef __GLIBC__ -+ /* optimized constexpr constructor for pthread implementations -+ that support it */ -+ constexpr PosixCond():cond(PTHREAD_COND_INITIALIZER) {} -+#else -+ /* slow fallback for pthread implementations that are not -+ compatible with "constexpr" */ - PosixCond() { - pthread_cond_init(&cond, nullptr); - } -@@ -51,10 +55,6 @@ public: - ~PosixCond() { - pthread_cond_destroy(&cond); - } --#else -- /* optimized constexpr constructor for sane POSIX -- implementations */ -- constexpr PosixCond():cond(PTHREAD_COND_INITIALIZER) {} - #endif - - PosixCond(const PosixCond &other) = delete; -diff --git a/src/thread/PosixMutex.hxx b/src/thread/PosixMutex.hxx -index 5805158..e0fd614 100644 ---- a/src/thread/PosixMutex.hxx -+++ b/src/thread/PosixMutex.hxx -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2009-2013 Max Kellermann -+ * Copyright (C) 2009-2015 Max Kellermann - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions -@@ -41,9 +41,13 @@ class PosixMutex { - pthread_mutex_t mutex; - - public: --#if defined(__NetBSD__) || defined(__BIONIC__) -- /* NetBSD's PTHREAD_MUTEX_INITIALIZER is not compatible with -- "constexpr" */ -+#ifdef __GLIBC__ -+ /* optimized constexpr constructor for pthread implementations -+ that support it */ -+ constexpr PosixMutex():mutex(PTHREAD_MUTEX_INITIALIZER) {} -+#else -+ /* slow fallback for pthread implementations that are not -+ compatible with "constexpr" */ - PosixMutex() { - pthread_mutex_init(&mutex, nullptr); - } -@@ -51,10 +55,6 @@ public: - ~PosixMutex() { - pthread_mutex_destroy(&mutex); - } --#else -- /* optimized constexpr constructor for sane POSIX -- implementations */ -- constexpr PosixMutex():mutex(PTHREAD_MUTEX_INITIALIZER) {} - #endif - - PosixMutex(const PosixMutex &other) = delete; --- -2.6.4 - diff --git a/bsp/buildroot/package/mpd/Config.in b/bsp/buildroot/package/mpd/Config.in index 3ac806f7..82bbd8d2 100644 --- a/bsp/buildroot/package/mpd/Config.in +++ b/bsp/buildroot/package/mpd/Config.in @@ -5,7 +5,6 @@ menuconfig BR2_PACKAGE_MPD depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_ATOMIC select BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBGLIB2 @@ -77,8 +76,8 @@ config BR2_PACKAGE_MPD_FAAD2 config BR2_PACKAGE_MPD_FFMPEG bool "ffmpeg" + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_FFMPEG - depends on !BR2_nios2 # ffmpeg help Enable ffmpeg input support. Select this if you want to play back files supported by @@ -190,7 +189,7 @@ config BR2_PACKAGE_MPD_LIBNFS comment "nfs support needs a toolchain w/ threads support" depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC) -comment "samba support needs an (e)glibc toolchain w/ dynamic library, RPC" +comment "samba support needs a glibc toolchain w/ dynamic library, RPC" depends on !BR2_nios2 depends on !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_NATIVE_RPC @@ -263,6 +262,12 @@ comment "pulseaudio support needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS +config BR2_PACKAGE_MPD_SHOUTCAST + bool "shoutcast" + select BR2_PACKAGE_LIBSHOUT + help + Enable shoutcast streaming output support. + comment "Miscellaneous plugins" config BR2_PACKAGE_MPD_AVAHI_SUPPORT @@ -312,7 +317,6 @@ endif comment "mpd needs a toolchain w/ C++, threads, wchar, gcc >= 4.6" depends on BR2_USE_MMU - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 diff --git a/bsp/buildroot/package/mpd/mpd.hash b/bsp/buildroot/package/mpd/mpd.hash index bc4792ad..2395cb7b 100644 --- a/bsp/buildroot/package/mpd/mpd.hash +++ b/bsp/buildroot/package/mpd/mpd.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 7b6fe6c7ce72f5f80a276d680072b524ecb395e546e252b8f3a0756377e1e875 mpd-0.19.12.tar.xz +sha256 487ec8ad2b1c1c193c2a7c8975a8b8fe2e4f0335bcc2e9356b2b34a0179fb2f7 mpd-0.19.17.tar.xz diff --git a/bsp/buildroot/package/mpd/mpd.mk b/bsp/buildroot/package/mpd/mpd.mk index d5d77a63..845b749d 100644 --- a/bsp/buildroot/package/mpd/mpd.mk +++ b/bsp/buildroot/package/mpd/mpd.mk @@ -5,7 +5,7 @@ ################################################################################ MPD_VERSION_MAJOR = 0.19 -MPD_VERSION = $(MPD_VERSION_MAJOR).12 +MPD_VERSION = $(MPD_VERSION_MAJOR).17 MPD_SOURCE = mpd-$(MPD_VERSION).tar.xz MPD_SITE = http://www.musicpd.org/download/mpd/$(MPD_VERSION_MAJOR) MPD_DEPENDENCIES = host-pkgconf boost libglib2 @@ -195,6 +195,13 @@ else MPD_CONF_OPTS += --disable-pulse endif +ifeq ($(BR2_PACKAGE_MPD_SHOUTCAST),y) +MPD_DEPENDENCIES += libshout +MPD_CONF_OPTS += --enable-shout +else +MPD_CONF_OPTS += --disable-shout +endif + ifeq ($(BR2_PACKAGE_MPD_SOUNDCLOUD),y) MPD_DEPENDENCIES += yajl MPD_CONF_OPTS += --enable-soundcloud diff --git a/bsp/buildroot/package/mpfr/mpfr.hash b/bsp/buildroot/package/mpfr/mpfr.hash index 8b6dc86b..a8b642be 100644 --- a/bsp/buildroot/package/mpfr/mpfr.hash +++ b/bsp/buildroot/package/mpfr/mpfr.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 6835a08bd992c8257641791e9a6a2b35b02336c8de26d0a8577953747e514a16 mpfr-3.1.3.tar.xz +sha256 761413b16d749c53e2bfd2b1dfaa3b027b0e793e404b90b5fbaeef60af6517f5 mpfr-3.1.4.tar.xz diff --git a/bsp/buildroot/package/mpfr/mpfr.mk b/bsp/buildroot/package/mpfr/mpfr.mk index ec16d1c8..cc1034c1 100644 --- a/bsp/buildroot/package/mpfr/mpfr.mk +++ b/bsp/buildroot/package/mpfr/mpfr.mk @@ -4,13 +4,14 @@ # ################################################################################ -MPFR_VERSION = 3.1.3 +MPFR_VERSION = 3.1.4 MPFR_SITE = http://www.mpfr.org/mpfr-$(MPFR_VERSION) MPFR_SOURCE = mpfr-$(MPFR_VERSION).tar.xz MPFR_LICENSE = LGPLv3+ MPFR_LICENSE_FILES = COPYING.LESSER MPFR_INSTALL_STAGING = YES MPFR_DEPENDENCIES = gmp +HOST_MPFR_DEPENDENCIES = host-gmp MPFR_MAKE_OPTS = RANLIB=$(TARGET_RANLIB) $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/mpg123/mpg123.hash b/bsp/buildroot/package/mpg123/mpg123.hash index ae261d00..bf1e8c79 100644 --- a/bsp/buildroot/package/mpg123/mpg123.hash +++ b/bsp/buildroot/package/mpg123/mpg123.hash @@ -1,3 +1,2 @@ -# From http://sourceforge.net/projects/mpg123/files/mpg123/1.22.4/ -md5 2dfafae3bbc532b4c8b04a77c6a6de89 mpg123-1.22.4.tar.bz2 -sha1 6ca59baceeebe361cc508214ba725a56d4fea743 mpg123-1.22.4.tar.bz2 +# Locally calculated after checking pgp signature +sha256 4073d9c60a43872f6f5a3a322f5ea21ab7f0869d2ed25e79c3eb8521fa3c32d4 mpg123-1.23.6.tar.bz2 diff --git a/bsp/buildroot/package/mpg123/mpg123.mk b/bsp/buildroot/package/mpg123/mpg123.mk index f6bb2971..2e7bdc52 100644 --- a/bsp/buildroot/package/mpg123/mpg123.mk +++ b/bsp/buildroot/package/mpg123/mpg123.mk @@ -4,7 +4,7 @@ # ################################################################################ -MPG123_VERSION = 1.22.4 +MPG123_VERSION = 1.23.6 MPG123_SOURCE = mpg123-$(MPG123_VERSION).tar.bz2 MPG123_SITE = http://downloads.sourceforge.net/project/mpg123/mpg123/$(MPG123_VERSION) MPG123_CONF_OPTS = --disable-lfs-alias diff --git a/bsp/buildroot/package/mplayer/0003-configure-armv8.patch b/bsp/buildroot/package/mplayer/0003-configure-armv8.patch new file mode 100644 index 00000000..98686433 --- /dev/null +++ b/bsp/buildroot/package/mplayer/0003-configure-armv8.patch @@ -0,0 +1,43 @@ +Fix aarch64 compile by adding HAVE_ARMV8 define + +Fixes build errors seen on the buildroot autobuilders: +http://autobuild.buildroot.net/results/5f8/5f85c32eb89aac48ae8da892d9800bd13274cd3e/build-end.log + +libavutil/aarch64/cpu.c: In function 'ff_get_cpu_flags_aarch64': +libavutil/aarch64/cpu.c:25:32: error: 'HAVE_ARMV8' undeclared (first use in this function) + return AV_CPU_FLAG_ARMV8 * HAVE_ARMV8 | + +Signed-off-by: Bernd Kuhls +(patch sent upstream: + http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2016-May/073496.html) + +Index: configure +=================================================================== +--- a/configure (revision 37871) ++++ b/configure (working copy) +@@ -1445,6 +1445,8 @@ + --disable-armv6) _armv6=no ;; + --enable-armv6t2) _armv6t2=yes ;; + --disable-armv6t2) _armv6t2=no ;; ++ --enable-armv8) _armv8=yes ;; ++ --disable-armv8) _armv8=no ;; + --enable-armvfp) _armvfp=yes ;; + --disable-armvfp) _armvfp=no ;; + --enable-vfpv3) vfpv3=yes ;; +@@ -3261,7 +3263,7 @@ + echores "$_iwmmxt" + fi + +-cpuexts_all='ALTIVEC XOP AVX AVX2 FMA3 FMA4 MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 FAST_CMOV I686 FAST_CLZ ARMV5TE ARMV6 ARMV6T2 VFP VFPV3 SETEND NEON IWMMXT MMI VIS MVI' ++cpuexts_all='ALTIVEC XOP AVX AVX2 FMA3 FMA4 MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 FAST_CMOV I686 FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMV8 VFP VFPV3 SETEND NEON IWMMXT MMI VIS MVI' + test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts" + test "$_mmx" = yes && cpuexts="MMX $cpuexts" + test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts" +@@ -3285,6 +3287,7 @@ + test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts" + test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts" + test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts" ++test "$_armv8" = yes && cpuexts="ARMV8 $cpuexts" + test "$_armvfp" = yes && cpuexts="VFP $cpuexts" + test "$vfpv3" = yes && cpuexts="VFPV3 $cpuexts" + test "$setend" = yes && cpuexts="SETEND $cpuexts" diff --git a/bsp/buildroot/package/mplayer/0004-configure-zlib.patch b/bsp/buildroot/package/mplayer/0004-configure-zlib.patch new file mode 100644 index 00000000..7c1b2c8e --- /dev/null +++ b/bsp/buildroot/package/mplayer/0004-configure-zlib.patch @@ -0,0 +1,30 @@ +configure: Fix compilation when zlib is missing. + +Downloaded from upstream commit: + +$ LC_ALL=C svn log -r 37816 +------------------------------------------------------------------------ +r37816 | reimar | 2016-02-28 14:39:42 +0100 (Sun, 28 Feb 2016) | 3 lines + +configure: Fix compilation when zlib is missing. + +APNG and a few other decoders also cannot be enabled without it. +------------------------------------------------------------------------ + +Signed-off-by: Bernd Kuhls + +Index: configure +=================================================================== +--- a/configure (revision 37795) ++++ b/configure (revision 37816) +@@ -6464,8 +6464,8 @@ + mplayer_encoders="$mplayer_encoders PNG_ENCODER" + else + def_zlib='#define CONFIG_ZLIB 0' +- libavdecoders=$(filter_out_component decoder 'FLASHSV FLASHSV2 PNG ZMBV ZLIB DXA EXR G2M TSCC ZEROCODEC') +- libavencoders=$(filter_out_component encoder 'FLASHSV FLASHSV2 PNG ZMBV ZLIB') ++ libavdecoders=$(filter_out_component decoder 'APNG FLASHSV FLASHSV2 PNG ZMBV ZLIB DXA EXR G2M RSCC SCREENPRESSO TDSC TSCC ZEROCODEC') ++ libavencoders=$(filter_out_component encoder 'APNG FLASHSV FLASHSV2 PNG ZMBV ZLIB') + fi + echores "$_zlib" + diff --git a/bsp/buildroot/package/mplayer/0005-tremor-ogg.patch b/bsp/buildroot/package/mplayer/0005-tremor-ogg.patch new file mode 100644 index 00000000..b4d65052 --- /dev/null +++ b/bsp/buildroot/package/mplayer/0005-tremor-ogg.patch @@ -0,0 +1,29 @@ +Fix static linking with tremor & libogg + +The order of the libraries needs to be changed to fix a bug during +static linking caught by buildroot autobuilders: + +http://autobuild.buildroot.net/results/bc9/bc98fa585399b53ea181dbaf392b93424145911d/ + +/home/test/autobuild/instance-3/output/host/usr/powerpc-buildroot-linux-uclibc/sysroot/usr/lib/libvorbisidec.a(synthesis.o): In function `_vorbis_synthesis1': +synthesis.c:(.text+0x90): undefined reference to `oggpack_readinit' +synthesis.c:(.text+0x9c): undefined reference to `oggpack_read' +[...] + +Signed-off-by: Bernd Kuhls +(patch sent upstream: + http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2016-July/073501.html) + +Index: configure +=================================================================== +--- a/configure (revision 37873) ++++ b/configure (working copy) +@@ -6629,7 +6629,7 @@ + def_tremor='#define CONFIG_TREMOR 1' + codecmodules="tremor $codecmodules" + res_comment="integer libvorbis" +- extra_ldflags="$extra_ldflags -logg -lvorbisidec" ++ extra_ldflags="$extra_ldflags -lvorbisidec -logg" + elif test "$_libvorbis" = yes ; then + _vorbis=yes + def_vorbis='#define CONFIG_OGGVORBIS 1' diff --git a/bsp/buildroot/package/mplayer/Config.in b/bsp/buildroot/package/mplayer/Config.in index 686b3b01..76bb6f07 100644 --- a/bsp/buildroot/package/mplayer/Config.in +++ b/bsp/buildroot/package/mplayer/Config.in @@ -3,13 +3,14 @@ config BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS default y # Those architectures are not supported by MPlayer depends on !(BR2_bfin || BR2_sh2a || BR2_sh4a || BR2_sh4aeb \ - || BR2_microblaze || BR2_nios2) + || BR2_m68k || BR2_microblaze || BR2_nios2) # Broken support for +Date: Wed, 20 Apr 2016 09:39:30 -0300 +Subject: [PATCH] wscript: don't check for fork() on POSIX checks + +It's not being used, and in fact prevents mpv from being built in nommu +architectures (cortex M, blackfin, ...) + +Signed-off-by: Gustavo Zacarias +--- +Status: pull request https://github.com/mpv-player/mpv/pull/3068 + + wscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index a4ffce6..40328e4 100644 +--- a/wscript ++++ b/wscript +@@ -127,7 +127,7 @@ main_dependencies = [ + 'desc': 'POSIX environment', + # This should be good enough. + 'func': check_statement(['poll.h', 'unistd.h', 'sys/mman.h'], +- 'struct pollfd pfd; poll(&pfd, 1, 0); fork(); int f[2]; pipe(f); munmap(f,0)'), ++ 'struct pollfd pfd; poll(&pfd, 1, 0); int f[2]; pipe(f); munmap(f,0)'), + }, { + 'name': 'posix-or-mingw', + 'desc': 'development environment', +-- +2.7.3 + diff --git a/bsp/buildroot/package/mpv/0002-wscript-improve-stdatomic-check.patch b/bsp/buildroot/package/mpv/0002-wscript-improve-stdatomic-check.patch new file mode 100644 index 00000000..c2a307e9 --- /dev/null +++ b/bsp/buildroot/package/mpv/0002-wscript-improve-stdatomic-check.patch @@ -0,0 +1,47 @@ +From 5a635a0066b10d2ba25e0ce78cc57b2be619371c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 8 Aug 2016 23:34:32 +0200 +Subject: [PATCH] wscript: improve stdatomic check + +The current stdatomic check verifies the availability of the function by +calling atomic_load(). It also uses this test to check if linking +against libatomic is needed or not. + +Unfortunately, on specific architectures (namely SPARC), using +atomic_load() does *not* require linking against libatomic, while other +atomic operations do. Due to this, mpv's wscript concludes that +stdatomic is available, and that linking against libatomic is not +needed, causing the following link failure: + +[190/190] Linking build/mpv +audio/out/ao.c.13.o: In function `ao_query_and_reset_events': +/home/peko/autobuild/instance-0/output/build/mpv-0.18.1/build/../audio/out/ao.c:399: undefined reference to `__atomic_fetch_and_4' + +In order to fix this, the stdatomic check is adjusted to call +atomic_fetch_add() instead, which does require libatomic. Thanks to +this, the wscript realizes that linking against libatomic is needed, and +the build works fine. + +Signed-off-by: Thomas Petazzoni +--- +Submitted upstream: https://github.com/mpv-player/mpv/pull/3403 + + wscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index a18df6f..4c49caf 100644 +--- a/wscript ++++ b/wscript +@@ -154,7 +154,7 @@ main_dependencies = [ + 'func': check_libs(['atomic'], + check_statement('stdatomic.h', + 'atomic_int_least64_t test = ATOMIC_VAR_INIT(123);' +- 'int test2 = atomic_load(&test)')) ++ 'atomic_fetch_add(&test, 1)')) + }, { + 'name': 'atomic-builtins', + 'desc': 'compiler support for __atomic built-ins', +-- +2.7.4 + diff --git a/bsp/buildroot/package/mpv/Config.in b/bsp/buildroot/package/mpv/Config.in new file mode 100644 index 00000000..25288a43 --- /dev/null +++ b/bsp/buildroot/package/mpv/Config.in @@ -0,0 +1,21 @@ +config BR2_PACKAGE_MPV + bool "mpv" + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + select BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FFMPEG_SWSCALE + select BR2_PACKAGE_ZLIB + # Select xkbcommon for wayland to avoid being mysterious + select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND + help + mpv is a fork of mplayer2 and MPlayer. It shares some features + with the former projects while introducing many more. + + https://mpv.io/ + +comment "mpv needs a toolchain w/ threads, gcc >= 4.5" + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 diff --git a/bsp/buildroot/package/mpv/mpv.hash b/bsp/buildroot/package/mpv/mpv.hash new file mode 100644 index 00000000..8a2f44b8 --- /dev/null +++ b/bsp/buildroot/package/mpv/mpv.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 e413d57fec4ad43b9f9b848f38d13fb921313fc9a4a64bf1e906c8d0f7a46329 v0.18.1.tar.gz +sha256 01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b waf-1.8.12 diff --git a/bsp/buildroot/package/mpv/mpv.mk b/bsp/buildroot/package/mpv/mpv.mk new file mode 100644 index 00000000..d2ed3f2a --- /dev/null +++ b/bsp/buildroot/package/mpv/mpv.mk @@ -0,0 +1,262 @@ +################################################################################ +# +# mpv +# +################################################################################ + +MPV_VERSION = 0.18.1 +MPV_WAF_VERSION = 1.8.12 +MPV_SITE = https://github.com/mpv-player/mpv/archive +MPV_SOURCE = v$(MPV_VERSION).tar.gz +MPV_EXTRA_DOWNLOADS = https://waf.io/waf-$(MPV_WAF_VERSION) +MPV_DEPENDENCIES = \ + host-pkgconf ffmpeg zlib \ + $(if $(BR2_PACKAGE_LIBICONV),libiconv) +MPV_LICENSE = GPLv2+ +MPV_LICENSE_FILES = LICENSE + +# Some of these options need testing and/or tweaks +MPV_CONF_OPTS = \ + --prefix=/usr \ + --disable-android \ + --disable-caca \ + --disable-cdda \ + --disable-cocoa \ + --disable-coreaudio \ + --disable-libguess \ + --disable-libv4l2 \ + --disable-opensles \ + --disable-rpi \ + --disable-rsound \ + --disable-rubberband \ + --disable-uchardet \ + --disable-vapoursynth \ + --disable-vapoursynth-lazy \ + --disable-vdpau + +# ALSA support requires pcm+mixer +ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER)$(BR2_PACKAGE_ALSA_LIB_PCM),yy) +MPV_CONF_OPTS += --enable-alsa +MPV_DEPENDENCIES += alsa-lib +else +MPV_CONF_OPTS += --disable-alsa +endif + +# GBM support is provided by mesa3d when EGL=y +ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) +MPV_CONF_OPTS += --enable-gbm +MPV_DEPENDENIES += mesa3d +else +MPV_CONF_OPTS += --disable-gbm +endif + +# jack support +# It also requires 64-bit sync intrinsics +ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_JACK2),yy) +MPV_CONF_OPTS += --enable-jack +MPV_DEPENDENCIES += jack2 +else +MPV_CONF_OPTS += --disable-jack +endif + +# jpeg support +ifeq ($(BR2_PACKAGE_JPEG),y) +MPV_CONF_OPTS += --enable-jpeg +MPV_DEPENDENCIES += jpeg +else +MPV_CONF_OPTS += --disable-jpeg +endif + +# lcms2 support +ifeq ($(BR2_PACKAGE_LCMS2),y) +MPV_CONF_OPTS += --enable-lcms2 +MPV_DEPENDENCIES += lcms2 +else +MPV_CONF_OPTS += --disable-lcms2 +endif + +# libarchive support +ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) +MPV_CONF_OPTS += --enable-libarchive +MPV_DEPENDENCIES += libarchive +else +MPV_CONF_OPTS += --disable-libarchive +endif + +# libass subtitle support +ifeq ($(BR2_PACKAGE_LIBASS),y) +MPV_CONF_OPTS += --enable-libass +MPV_DEPENDENCIES += libass +else +MPV_CONF_OPTS += --disable-libass +endif + +# bluray support +ifeq ($(BR2_PACKAGE_LIBBLURAY),y) +MPV_CONF_OPTS += --enable-libbluray +MPV_DEPENDENCIES += libbluray +else +MPV_CONF_OPTS += --disable-libbluray +endif + +# libdvdnav +ifeq ($(BR2_PACKAGE_LIBDVDNAV),y) +MPV_CONF_OPTS += --enable-dvdnav +MPV_DEPENDENCIES += libdvdnav +else +MPV_CONF_OPTS += --disable-dvdnav +endif + +# libdvdread +ifeq ($(BR2_PACKAGE_LIBDVDREAD),y) +MPV_CONF_OPTS += --enable-dvdread +MPV_DEPENDENCIES += libdvdread +else +MPV_CONF_OPTS += --disable-dvdread +endif + +# libdrm +ifeq ($(BR2_PACKAGE_LIBDRM),y) +MPV_CONF_OPTS += --enable-drm +MPV_DEPENDENCIES += libdrm +else +MPV_CONF_OPTS += --disable-drm +endif + +# libenca support +ifeq ($(BR2_PACKAGE_LIBENCA),y) +MPV_CONF_OPTS += --enable-enca +MPV_DEPENDENCIES += libenca +else +MPV_CONF_OPTS += --disable-enca +endif + +# LUA support, only for lua51/lua52/luajit +# This enables the controller (OSD) together with libass +ifeq ($(BR2_PACKAGE_LUA_5_1)$(BR2_PACKAGE_LUA_5_2)$(BR2_PACKAGE_LUAJIT),y) +MPV_CONF_OPTS += --enable-lua +MPV_DEPENDENCIES += luainterpreter +else +MPV_CONF_OPTS += --disable-lua +endif + +# OpenGL support +ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) +MPV_CONF_OPTS += --enable-gl --enable-standard-gl +MPV_DEPENDENCIES += libgl +else +MPV_CONF_OPTS += --disable-gl --disable-standard-gl +endif + +# pulseaudio support +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) +MPV_CONF_OPTS += --enable-pulse +MPV_DEPENDENCIES += pulseaudio +else +MPV_CONF_OPTS += --disable-pulse +endif + +# samba support +ifeq ($(BR2_PACKAGE_SAMBA4),y) +MPV_CONF_OPTS += --enable-libsmbclient +MPV_DEPENDENCIES += samba4 +else +MPV_CONF_OPTS += --disable-libsmbclient +endif + +# SDL support +# Both can't be used at the same time, prefer newer API +# It also requires 64-bit sync intrinsics +ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_SDL2),yy) +MPV_CONF_OPTS += --enable-sdl2 --disable-sdl1 +MPV_DEPENDENCIES += sdl2 +else ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_8)$(BR2_PACKAGE_SDL),yy) +MPV_CONF_OPTS += --enable-sdl1 --disable-sdl2 +MPV_DEPENDENCIES += sdl +else +MPV_CONF_OPTS += --disable-sdl1 --disable-sdl2 +endif + +# va-api support +# This requires one or more of the egl-drm, wayland, x11 backends +# For now we support wayland and x11 +ifeq ($(BR2_PACKAGE_LIBVA),y) +ifneq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_XLIB_LIBX11),) +MPV_CONF_OPTS += --enable-vaapi +MPV_DEPENDENCIES += libva +else +MPV_CONF_OPTS += --disable-vaapi +endif +else +MPV_CONF_OPTS += --disable-vaapi +endif + +# wayland support +ifeq ($(BR2_PACKAGE_WAYLAND),y) +MPV_CONF_OPTS += --enable-wayland +MPV_DEPENDENCIES += libxkbcommon wayland +else +MPV_CONF_OPTS += --disable-wayland +endif + +# Base X11 support +ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) +MPV_CONF_OPTS += --enable-x11 --disable-xss +MPV_DEPENDENCIES += xlib_libX11 +# xext +ifeq ($(BR2_PACKAGE_XLIB_LIBXEXT),y) +MPV_CONF_OPTS += --enable-xext +MPV_DEPENDENCIES += xlib_libXext +else +MPV_CONF_OPTS += --disable-xext +endif +# xinerama +ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y) +MPV_CONF_OPTS += --enable-xinerama +MPV_DEPENDENCIES += xlib_libXinerama +else +MPV_CONF_OPTS += --disable-xinerama +endif +# xrandr +ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y) +MPV_CONF_OPTS += --enable-xrandr +MPV_DEPENDENCIES += xlib_libXrandr +else +MPV_CONF_OPTS += --disable-xrandr +endif +# XVideo +ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y) +MPV_CONF_OPTS += --enable-xv +MPV_DEPENDENCIES += xlib_libXv +else +MPV_CONF_OPTS += --disable-xv +endif +else +MPV_CONF_OPTS += --disable-x11 +endif + +define MPV_COPY_WAF + $(INSTALL) -m 0755 $(DL_DIR)/waf-$(MPV_WAF_VERSION) $(@D)/waf +endef +MPV_POST_EXTRACT_HOOKS += MPV_COPY_WAF + +define MPV_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + ./waf configure $(MPV_CONF_OPTS) +endef + +define MPV_BUILD_CMDS + cd $(@D); \ + $(TARGET_MAKE_ENV) \ + ./waf build +endef + +define MPV_INSTALL_TARGET_CMDS + cd $(@D); \ + $(TARGET_MAKE_ENV) \ + DESTDIR=$(TARGET_DIR) \ + ./waf install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/mraa/mraa.hash b/bsp/buildroot/package/mraa/mraa.hash new file mode 100644 index 00000000..cbd70a46 --- /dev/null +++ b/bsp/buildroot/package/mraa/mraa.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 e4501e6936afb426c75b7d406c1a7a27b514297f640e887de4d88a2d9687f37b mraa-v0.9.1.tar.gz diff --git a/bsp/buildroot/package/mrouted/mrouted.hash b/bsp/buildroot/package/mrouted/mrouted.hash new file mode 100644 index 00000000..d5069e5f --- /dev/null +++ b/bsp/buildroot/package/mrouted/mrouted.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 181908f7025c5a2dee2e50d86888780469eaa9e1bd42d3eca9dfed8274aecd3d mrouted-3.9.7.tar.gz diff --git a/bsp/buildroot/package/msmtp/msmtp.hash b/bsp/buildroot/package/msmtp/msmtp.hash index fb03e05a..d0de8e04 100644 --- a/bsp/buildroot/package/msmtp/msmtp.hash +++ b/bsp/buildroot/package/msmtp/msmtp.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/msmtp/files/msmtp/1.6.2/ -md5 3baca93c7e5f1aa9d36a2e5b38739ab9 msmtp-1.6.2.tar.xz -sha1 2d2272d04851b9bc806a77f47344e61840185329 msmtp-1.6.2.tar.xz +# From http://sourceforge.net/projects/msmtp/files/msmtp/1.6.5/ +md5 50a8c9bb72f8222779db6b4aae2965e0 msmtp-1.6.5.tar.xz +sha1 27d1fc609cd453a7e4c55c4ec55d455949bc53f1 msmtp-1.6.5.tar.xz diff --git a/bsp/buildroot/package/msmtp/msmtp.mk b/bsp/buildroot/package/msmtp/msmtp.mk index 7c8261e7..7ede66c0 100644 --- a/bsp/buildroot/package/msmtp/msmtp.mk +++ b/bsp/buildroot/package/msmtp/msmtp.mk @@ -4,7 +4,7 @@ # ################################################################################ -MSMTP_VERSION = 1.6.2 +MSMTP_VERSION = 1.6.5 MSMTP_SITE = http://downloads.sourceforge.net/project/msmtp/msmtp/$(MSMTP_VERSION) MSMTP_SOURCE = msmtp-$(MSMTP_VERSION).tar.xz MSMTP_DEPENDENCIES = host-pkgconf diff --git a/bsp/buildroot/package/msr-tools/Config.in b/bsp/buildroot/package/msr-tools/Config.in new file mode 100644 index 00000000..dde19f78 --- /dev/null +++ b/bsp/buildroot/package/msr-tools/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_MSR_TOOLS + bool "msr-tools" + depends on BR2_i386 || BR2_x86_64 + help + The MSR Tools project provides utilities to access x86 + processor MSRs and CPU ID directly. + + Those tools access the hardware through the + /dev/cpu//msr and /dev/cpu//cpuid devices. This + necessitates msr and cpuid support in the kernel, which + means you need a kernel compiled with configuration options + CONFIG_X86_CPUID and CONFIG_X86_MSR enabled. + + https://01.org/msr-tools diff --git a/bsp/buildroot/package/msr-tools/msr-tools.hash b/bsp/buildroot/package/msr-tools/msr-tools.hash new file mode 100644 index 00000000..18146df5 --- /dev/null +++ b/bsp/buildroot/package/msr-tools/msr-tools.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 9b87245ee091a798184e447066e9e0d7709b7c81f5e6ad55f2b958c1aa50c4a3 msr-tools-1.3.tar.gz diff --git a/bsp/buildroot/package/msr-tools/msr-tools.mk b/bsp/buildroot/package/msr-tools/msr-tools.mk new file mode 100644 index 00000000..4f84a288 --- /dev/null +++ b/bsp/buildroot/package/msr-tools/msr-tools.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# msr-tools +# +################################################################################ + +MSR_TOOLS_VERSION = 1.3 +MSR_TOOLS_SITE = $(call github,01org,msr-tools,msr-tools-$(MSR_TOOLS_VERSION)) +MSR_TOOLS_LICENSE = GPLv2 +MSR_TOOLS_LICENSE_FILES = cpuid.c + +define MSR_TOOLS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) +endef + +define MSR_TOOLS_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) install \ + sbindir="$(TARGET_DIR)/usr/sbin" +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/mtd/0001-mtd-utils-ubinize-Always-return-error-code-at-least-.patch b/bsp/buildroot/package/mtd/0001-mtd-utils-ubinize-Always-return-error-code-at-least-.patch new file mode 100644 index 00000000..077ca0c6 --- /dev/null +++ b/bsp/buildroot/package/mtd/0001-mtd-utils-ubinize-Always-return-error-code-at-least-.patch @@ -0,0 +1,64 @@ +From 5f50207231414bfdbac8f0f974a2824f24177d6e Mon Sep 17 00:00:00 2001 +From: Enrico Jorns +Date: Fri, 11 Sep 2015 15:28:13 +0200 +Subject: [PATCH] mtd-utils: ubinize: Always return error code (at least -1) in + case of an error + +ubinize should not fail silenty, this can be very annoying when using +it from other tools that rely on the exit code for determining the +success of their operation. + +Signed-off-by: Enrico Jorns +Signed-off-by: Brian Norris +Signed-off-by: Luca Ceresoli +--- + ubi-utils/ubinize.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/ubi-utils/ubinize.c b/ubi-utils/ubinize.c +index 34f465a..60bbd9a 100644 +--- a/ubi-utils/ubinize.c ++++ b/ubi-utils/ubinize.c +@@ -519,6 +519,7 @@ int main(int argc, char * const argv[]) + */ + seek = ui.peb_size * 2; + if (lseek(args.out_fd, seek, SEEK_SET) != seek) { ++ err = -1; + sys_errmsg("cannot seek file \"%s\"", args.f_out); + goto out_free; + } +@@ -530,6 +531,7 @@ int main(int argc, char * const argv[]) + int fd, j; + + if (!sname) { ++ err = -1; + errmsg("ini-file parsing error (iniparser_getsecname)"); + goto out_free; + } +@@ -550,6 +552,7 @@ int main(int argc, char * const argv[]) + */ + for (j = 0; j < i; j++) { + if (vi[i].id == vi[j].id) { ++ err = -1; + errmsg("volume IDs must be unique, but ID %d " + "in section \"%s\" is not", + vi[i].id, sname); +@@ -557,6 +560,7 @@ int main(int argc, char * const argv[]) + } + + if (!strcmp(vi[i].name, vi[j].name)) { ++ err = -1; + errmsg("volume name must be unique, but name " + "\"%s\" in section \"%s\" is not", + vi[i].name, sname); +@@ -580,6 +584,7 @@ int main(int argc, char * const argv[]) + if (img) { + fd = open(img, O_RDONLY); + if (fd == -1) { ++ err = fd; + sys_errmsg("cannot open \"%s\"", img); + goto out_free; + } +-- +1.9.1 + diff --git a/bsp/buildroot/package/mtd/0002-integck-only-use-execinfo.h-when-INTEGCK_DEBUG-is-en.patch b/bsp/buildroot/package/mtd/0002-integck-only-use-execinfo.h-when-INTEGCK_DEBUG-is-en.patch new file mode 100644 index 00000000..0f74a7b5 --- /dev/null +++ b/bsp/buildroot/package/mtd/0002-integck-only-use-execinfo.h-when-INTEGCK_DEBUG-is-en.patch @@ -0,0 +1,62 @@ +From 30f0cd91b21dbc5d593d61ae44875ad0cb53cb4d Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 16 Jul 2016 11:27:06 +0200 +Subject: [PATCH] integck: only use execinfo.h when INTEGCK_DEBUG is enabled + +Guard the usage of execinfo.h by INTEGCK_DEBUG so that by defaut, +integck builds properly on systems without (uClibc and +musl based systems). As stated in the code, the backtrace() +functionality of will anyway only work properly when +INTEGCK_DEBUG is defined (it makes all functions non-static, which is +needed for backtrace to provide some useful information). + +Signed-off-by: Thomas Petazzoni +--- + tests/fs-tests/integrity/integck.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c +index 8badd1f..6ef817e 100644 +--- a/tests/fs-tests/integrity/integck.c ++++ b/tests/fs-tests/integrity/integck.c +@@ -31,7 +31,9 @@ + #include + #include + #include ++#ifdef INTEGCK_DEBUG + #include ++#endif + #include + #include + #include +@@ -248,14 +250,18 @@ static char *random_name_buf; + static void check_failed(const char *cond, const char *func, const char *file, + int line) + { +- int error = errno, count; ++ int error = errno; ++#ifdef INTEGCK_DEBUG ++ int count; + void *addresses[128]; ++#endif + + fflush(stdout); + fflush(stderr); + errmsg("condition '%s' failed in %s() at %s:%d", + cond, func, file, line); + normsg("error %d (%s)", error, strerror(error)); ++#ifdef INTEGCK_DEBUG + /* + * Note, to make this work well you need: + * 1. Make all functions non-static - add "#define static' +@@ -264,6 +270,7 @@ static void check_failed(const char *cond, const char *func, const char *file, + */ + count = backtrace(addresses, 128); + backtrace_symbols_fd(addresses, count, fileno(stdout)); ++#endif + exit(EXIT_FAILURE); + } + +-- +2.7.4 + diff --git a/bsp/buildroot/package/mtd/0003-fs-tests-integrity-don-t-include-header-bits-stdio_l.patch b/bsp/buildroot/package/mtd/0003-fs-tests-integrity-don-t-include-header-bits-stdio_l.patch new file mode 100644 index 00000000..5c0a552d --- /dev/null +++ b/bsp/buildroot/package/mtd/0003-fs-tests-integrity-don-t-include-header-bits-stdio_l.patch @@ -0,0 +1,45 @@ +From 600ab10e3b452cdffc6c82770b0bb2ff5c23ad70 Mon Sep 17 00:00:00 2001 +From: Rahul Bedarkar +Date: Fri, 12 Aug 2016 22:59:35 +0530 +Subject: [PATCH 1/1] fs-tests: integrity: don't include header + + +With musl C library, we get following build error + +integck.c:37:28: fatal error: bits/stdio_lim.h: No such file or directory + #include + ^ +compilation terminated. +make[2]: *** [integck] Error 1 + +Header is not available in musl C library. However + has all definition that supposed to be +providing. Moreover shouldn't be included directly +instead we should be using . + +Since we already include and in case of uClibc or glibc + gets included internally, we can safely remove it. + +This build issue is found by Buildroot autobuilder +http://autobuild.buildroot.net/results/175/1754861457af520480cc34d7d2d0edff2868ff66/ + +Signed-off-by: Rahul Bedarkar +--- + tests/fs-tests/integrity/integck.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c +index 6ef817e..0bb9711 100644 +--- a/tests/fs-tests/integrity/integck.c ++++ b/tests/fs-tests/integrity/integck.c +@@ -34,7 +34,6 @@ + #ifdef INTEGCK_DEBUG + #include + #endif +-#include + #include + #include + #include +-- +2.6.2 + diff --git a/bsp/buildroot/package/mtd/Config.in b/bsp/buildroot/package/mtd/Config.in index 6e4346f2..8be5eff5 100644 --- a/bsp/buildroot/package/mtd/Config.in +++ b/bsp/buildroot/package/mtd/Config.in @@ -159,4 +159,10 @@ config BR2_PACKAGE_MTD_UBIBLOCK bool "ubiblock" default y +config BR2_PACKAGE_MTD_INTEGCK + bool "integck" + depends on BR2_USE_MMU # fork() + help + Install the integck test program. + endif diff --git a/bsp/buildroot/package/mtd/mtd.mk b/bsp/buildroot/package/mtd/mtd.mk index adbf28d8..acf24d5a 100644 --- a/bsp/buildroot/package/mtd/mtd.mk +++ b/bsp/buildroot/package/mtd/mtd.mk @@ -97,22 +97,37 @@ MTD_TARGETS_UBI_$(BR2_PACKAGE_MTD_UBIBLOCK) += ubiblock MTD_TARGETS_y += $(addprefix ubi-utils/,$(MTD_TARGETS_UBI_y)) MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSUBIFS) += mkfs.ubifs/mkfs.ubifs +ifeq ($(BR2_PACKAGE_MTD_INTEGCK),y) +define MTD_BUILD_INTEGCK + $(TARGET_CONFIGURE_OPTS) $(MAKE1) CROSS=$(TARGET_CROSS) \ + BUILDDIR=$(@D) $(MTD_MAKE_OPTS) -C $(@D)/tests/fs-tests all +endef +define MTD_INSTALL_INTEGCK + $(INSTALL) -D -m 755 $(@D)/tests/fs-tests/integrity/integck $(TARGET_DIR)/usr/sbin/integck +endef +endif + define MTD_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE1) CROSS=$(TARGET_CROSS) \ BUILDDIR=$(@D) $(MTD_MAKE_OPTS) -C $(@D) \ $(addprefix $(@D)/,$(MTD_TARGETS_y)) \ $(addprefix $(@D)/,$(MTD_STAGING_y)) + $(MTD_BUILD_INTEGCK) endef define MTD_INSTALL_STAGING_CMDS $(INSTALL) -D -m 0755 $(@D)/lib/libmtd.a $(STAGING_DIR)/usr/lib/libmtd.a $(INSTALL) -D -m 0755 $(@D)/ubi-utils/libubi.a $(STAGING_DIR)/usr/lib/libubi.a + $(INSTALL) -D -m 0644 $(@D)/include/libmtd.h $(STAGING_DIR)/usr/include/mtd/libmtd.h + $(INSTALL) -D -m 0644 $(@D)/ubi-utils/include/libubi.h $(STAGING_DIR)/usr/include/mtd/libubi.h + $(INSTALL) -D -m 0644 $(@D)/include/mtd/ubi-media.h $(STAGING_DIR)/usr/include/mtd/ubi-media.h endef define MTD_INSTALL_TARGET_CMDS for f in $(MTD_TARGETS_y) ; do \ $(INSTALL) -D -m 0755 $(@D)/$$f $(TARGET_DIR)/usr/sbin/$${f##*/} ; \ done + $(MTD_INSTALL_INTEGCK) endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/mtdev2tuio/mtdev2tuio.hash b/bsp/buildroot/package/mtdev2tuio/mtdev2tuio.hash new file mode 100644 index 00000000..b0d159ca --- /dev/null +++ b/bsp/buildroot/package/mtdev2tuio/mtdev2tuio.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 4a6aa319c44478dceaf01a24603690767e56c029a1f0380da0f31eac5a02e10f mtdev2tuio-e1e7378d86abe751158e743586133022f32fa4d1.tar.gz diff --git a/bsp/buildroot/package/mtools/mtools.mk b/bsp/buildroot/package/mtools/mtools.mk index d331af25..adba1fc4 100644 --- a/bsp/buildroot/package/mtools/mtools.mk +++ b/bsp/buildroot/package/mtools/mtools.mk @@ -9,18 +9,22 @@ MTOOLS_SOURCE = mtools-$(MTOOLS_VERSION).tar.bz2 MTOOLS_SITE = $(BR2_GNU_MIRROR)/mtools MTOOLS_LICENSE = GPLv3+ MTOOLS_LICENSE_FILES = COPYING -MTOOLS_CONF_ENV = ac_cv_func_setpgrp_void=yes MTOOLS_CONF_OPTS = --without-x +# info documentation not needed +MTOOLS_CONF_ENV = \ + ac_cv_func_setpgrp_void=yes \ + ac_cv_path_INSTALL_INFO= + +HOST_MTOOLS_CONF_ENV = \ + ac_cv_path_INSTALL_INFO= # link with iconv if enabled ifeq ($(BR2_PACKAGE_LIBICONV),y) MTOOLS_DEPENDENCIES += libiconv MTOOLS_CONF_ENV += LIBS=-liconv -# We have no host dependencies -HOST_MTOOLS_DEPENDENCIES = endif -# Package does not build in parallel due to improper make rules +# Package does not build in parallel due to improper make rules MTOOLS_MAKE = $(MAKE1) $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/mtr/Config.in b/bsp/buildroot/package/mtr/Config.in index 5e2d5b23..ec83e25c 100644 --- a/bsp/buildroot/package/mtr/Config.in +++ b/bsp/buildroot/package/mtr/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_MTR bool "mtr" + depends on BR2_USE_MMU # fork() help mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool. diff --git a/bsp/buildroot/package/mtr/mtr.hash b/bsp/buildroot/package/mtr/mtr.hash new file mode 100644 index 00000000..f3df81f4 --- /dev/null +++ b/bsp/buildroot/package/mtr/mtr.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 12a6a94c0ec04d508de27eda5f5ba91f50d4b5fe74a98aca0973e2c16a42555a mtr-66de3ecbab28b054b868a73fbb57f30549d770ac.tar.gz diff --git a/bsp/buildroot/package/mtr/mtr.mk b/bsp/buildroot/package/mtr/mtr.mk index 3f73a5f5..5ee61249 100644 --- a/bsp/buildroot/package/mtr/mtr.mk +++ b/bsp/buildroot/package/mtr/mtr.mk @@ -4,7 +4,7 @@ # ################################################################################ -MTR_VERSION = v0.86 +MTR_VERSION = 66de3ecbab28b054b868a73fbb57f30549d770ac MTR_SITE = $(call github,traviscross,mtr,$(MTR_VERSION)) MTR_AUTORECONF = YES MTR_CONF_OPTS = --without-gtk @@ -12,14 +12,4 @@ MTR_DEPENDENCIES = host-pkgconf $(if $(BR2_PACKAGE_NCURSES),ncurses) MTR_LICENSE = GPLv2 MTR_LICENSE_FILES = COPYING -# uClibc has res_ninit but not res_nmkquery -ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) -define MTR_DISABLE_RES_NINIT - $(SED) 's/#ifdef res_ninit/#if 0/' \ - $(@D)/dns.c -endef -endif - -MTR_POST_PATCH_HOOKS += MTR_DISABLE_RES_NINIT - $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/multicat/0001-Fix-missing-pthread.patch b/bsp/buildroot/package/multicat/0001-Fix-missing-pthread.patch new file mode 100644 index 00000000..1ad2c987 --- /dev/null +++ b/bsp/buildroot/package/multicat/0001-Fix-missing-pthread.patch @@ -0,0 +1,20 @@ +Makefile: link with pthread + +Otherwise building multicat in a static context fails: + aggregartp.c:381: undefined reference to `pthread_self' + +Signed-off-by: Jörg Krause +Sent upstream: https://mailman.videolan.org/pipermail/multicat-devel/2016-March/000125.html + +diff -purN multicat-2.1.orig/Makefile multicat-2.1/Makefile +--- multicat-2.1.orig/Makefile 2015-10-05 18:36:29.000000000 +0200 ++++ multicat-2.1/Makefile 2016-03-19 21:47:59.467745127 +0100 +@@ -4,7 +4,7 @@ VERSION = 2.1 + CFLAGS += -Wall -Wformat-security -O3 -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -D_ISOC99_SOURCE -D_BSD_SOURCE + CFLAGS += -g + # Comment out the following line for Mac OS X build +-LDLIBS += -lrt ++LDLIBS += -lrt -pthread + + OBJ_MULTICAT = multicat.o util.o + OBJ_INGESTS = ingests.o util.o diff --git a/bsp/buildroot/package/multicat/0002-Fix-musl-build.patch b/bsp/buildroot/package/multicat/0002-Fix-musl-build.patch new file mode 100644 index 00000000..07e15a35 --- /dev/null +++ b/bsp/buildroot/package/multicat/0002-Fix-musl-build.patch @@ -0,0 +1,47 @@ +Fix musl build + +Defining _GNU_SOURCE is required to get proper member names in `struct udphdr` +when building against musl. Build error: + + util.c: In function 'RawFillHeaders': + util.c:481:9: error: 'struct udphdr' has no member named 'source' + udph->source = htons(portsrc); + ^ + util.c:482:9: error: 'struct udphdr' has no member named 'dest' + udph->dest = htons(portdst); + ^ + util.c:483:9: error: 'struct udphdr' has no member named 'len' + udph->len = htons(sizeof(struct udphdr) + len); + ^ + util.c:484:9: error: 'struct udphdr' has no member named 'check' + udph->check = 0; + +Including in needed for mode_t, otherwise musl build fails: + util.h:91:1: error: unknown type name 'mode_t' + +Signed-off-by: Jörg Krause +Sent upstream: https://mailman.videolan.org/pipermail/multicat-devel/2016-March/000126.html + +diff -purN multicat-2.1.orig/util.c multicat-2.1/util.c +--- multicat-2.1.orig/util.c 2015-07-17 18:03:17.000000000 +0200 ++++ multicat-2.1/util.c 2016-03-19 22:21:01.110178772 +0100 +@@ -21,6 +21,8 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + ++#define _GNU_SOURCE ++ + #include + #include + #include +diff -purN multicat-2.1.orig/util.h multicat-2.1/util.h +--- multicat-2.1.orig/util.h 2015-07-15 22:47:39.000000000 +0200 ++++ multicat-2.1/util.h 2016-03-19 22:21:58.649834990 +0100 +@@ -21,6 +21,7 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + ++#include + #include + #include + diff --git a/bsp/buildroot/package/multicat/0003-Fix-have-clock-nanosleep-with-uclibc.patch b/bsp/buildroot/package/multicat/0003-Fix-have-clock-nanosleep-with-uclibc.patch new file mode 100644 index 00000000..108fb0b8 --- /dev/null +++ b/bsp/buildroot/package/multicat/0003-Fix-have-clock-nanosleep-with-uclibc.patch @@ -0,0 +1,24 @@ +uClibc may be configured without support for clock_nanosleep(). The function is +only available with uClibc if the C library is build with NPTL support (sets +__UCLIBC_HAS_THREADS_NATIVE__) and __UCLIBC_HAS_ADVANCED_REALTIME__ set. + +Upstream status: Pending +https://mailman.videolan.org/pipermail/multicat-devel/2016-March/000129.html + +Signed-off-by: Jörg Krause + +diff -purN multicat-2.1.orig/util.h multicat-2.1/util.h +--- multicat-2.1.orig/util.h 2015-07-15 22:47:39.000000000 +0200 ++++ multicat-2.1/util.h 2016-03-20 18:13:51.899780405 +0100 +@@ -26,7 +26,10 @@ + + #ifdef __APPLE__ + #define POLLRDHUP 0 +-#else ++/* uClibc may not have clock_nanosleep() available */ ++#elif !defined (__UCLIBC__) || \ ++ defined (__UCLIBC__) && defined (__UCLIBC_HAS_THREADS_NATIVE__) \ ++ && defined (__UCLIBC_HAS_ADVANCED_REALTIME__) + #define HAVE_CLOCK_NANOSLEEP + #endif + diff --git a/bsp/buildroot/package/multicat/Config.in b/bsp/buildroot/package/multicat/Config.in new file mode 100644 index 00000000..13593581 --- /dev/null +++ b/bsp/buildroot/package/multicat/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_MULTICAT + bool "multicat" + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_BITSTREAM + help + Simple and efficient multicast and transport stream manipulation. + + http://www.videolan.org/projects/multicat.html + +comment "multicat needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/multicat/multicat.hash b/bsp/buildroot/package/multicat/multicat.hash new file mode 100644 index 00000000..38cf9d7d --- /dev/null +++ b/bsp/buildroot/package/multicat/multicat.hash @@ -0,0 +1,4 @@ +# from https://get.videolan.org/multicat/2.1/multicat-2.1.tar.bz2.md5 +md5 2e3ecd8dee64f5bd32a61733d4cc2226 multicat-2.1.tar.bz2 +# locally calculated +sha256 5eabe8d9a3dde452b2d348683cc7da213680551a9d4059c356f7319c6aa9b3d1 multicat-2.1.tar.bz2 diff --git a/bsp/buildroot/package/multicat/multicat.mk b/bsp/buildroot/package/multicat/multicat.mk new file mode 100644 index 00000000..cc6eb78d --- /dev/null +++ b/bsp/buildroot/package/multicat/multicat.mk @@ -0,0 +1,25 @@ +################################################################################ +# +# multicat +# +################################################################################ + +MULTICAT_VERSION = 2.1 +MULTICAT_SOURCE = multicat-$(MULTICAT_VERSION).tar.bz2 +MULTICAT_SITE = https://get.videolan.org/multicat/$(MULTICAT_VERSION) +MULTICAT_LICENSE = GPLv2+ +MULTICAT_LICENSE_FILES = COPYING + +MULTICAT_DEPENDENCIES = bitstream + +MULTICAT_MAKE_ENV = $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) + +define MULTICAT_BUILD_CMDS + $(MULTICAT_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define MULTICAT_INSTALL_TARGET_CMDS + $(MULTICAT_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/musl-compat-headers/Config.in b/bsp/buildroot/package/musl-compat-headers/Config.in new file mode 100644 index 00000000..c672f9ca --- /dev/null +++ b/bsp/buildroot/package/musl-compat-headers/Config.in @@ -0,0 +1,2 @@ +config BR2_PACKAGE_MUSL_COMPAT_HEADERS + bool diff --git a/bsp/buildroot/package/musl-compat-headers/cdefs.h b/bsp/buildroot/package/musl-compat-headers/cdefs.h new file mode 100644 index 00000000..6fe7aa43 --- /dev/null +++ b/bsp/buildroot/package/musl-compat-headers/cdefs.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2016 Yann E. MORIN + * + * This file is in the Public Domain. + * + * For jurisdictions in which the Public Domain does not exist + * or it is not otherwise applicable, this file is licensed CC0 + * (Creative Commons Zero). + */ + +/* This file contains definitions for non-standard macros defined by + * glibc, but quite commonly used in packages. + * + * Because they are non-standard, musl does not define those macros. + * It does not provide cdefs.h either. + * + * This file is a compatibility header written from scratch, to be + * installed when the C library is musl. + * + * Not all macros from the glibc's cdefs.h are available, only the + * most commonly used ones. + * + * Please refer to the glibc documentation and source code for + * explanations about those macros. + */ + +#ifndef BUILDROOT_SYS_CDEFS_H +#define BUILDROOT_SYS_CDEFS_H + +/* Function prototypes. */ +#undef __P +#define __P(arg) arg + +/* C declarations in C++ mode. */ +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS +# define __END_DECLS +#endif + +/* Don't throw exceptions in C functions. */ +#ifndef __cplusplus +# define __THROW __attribute__ ((__nothrow__)) +# define __NTH(f) __attribute__ ((__nothrow__)) f +#else +# define __THROW +# define __NTH(f) f +#endif + +#endif /* ifndef BUILDROOT_SYS_CDEFS_H */ diff --git a/bsp/buildroot/package/netbsd-queue/netbsd-queue.hash b/bsp/buildroot/package/musl-compat-headers/musl-compat-headers.hash similarity index 100% rename from bsp/buildroot/package/netbsd-queue/netbsd-queue.hash rename to bsp/buildroot/package/musl-compat-headers/musl-compat-headers.hash diff --git a/bsp/buildroot/package/musl-compat-headers/musl-compat-headers.mk b/bsp/buildroot/package/musl-compat-headers/musl-compat-headers.mk new file mode 100644 index 00000000..25e032c7 --- /dev/null +++ b/bsp/buildroot/package/musl-compat-headers/musl-compat-headers.mk @@ -0,0 +1,34 @@ +################################################################################ +# +# musl-compat-headers +# +################################################################################ + +# No main site, just using extra downloads +MUSL_COMPAT_HEADERS_QUEUE_H = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/queue.h?rev=1.70 + +MUSL_COMPAT_HEADERS_EXTRA_DOWNLOADS = $(MUSL_COMPAT_HEADERS_QUEUE_H) + +MUSL_COMPAT_HEADERS_LICENSE = BSD-3c, Public Domain or CC0 +MUSL_COMPAT_HEADERS_LICENSE_FILES = queue.h cdefs.h + +MUSL_COMPAT_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO + +# Only installs headers +MUSL_COMPAT_HEADERS_INSTALL_TARGET = NO +MUSL_COMPAT_HEADERS_INSTALL_STAGING = YES + +# Copying both headers so legal-info finds them (they are _LICENSE_FILES) +define MUSL_COMPAT_HEADERS_EXTRACT_CMDS + $(INSTALL) -m 0644 -D $(DL_DIR)/$(notdir $(MUSL_COMPAT_HEADERS_QUEUE_H)) $(@D)/queue.h + $(INSTALL) -m 0644 -D $(MUSL_COMPAT_HEADERS_PKGDIR)/cdefs.h $(@D)/cdefs.h +endef + +define MUSL_COMPAT_HEADERS_INSTALL_STAGING_CMDS + $(INSTALL) -D -m 0644 $(@D)/queue.h \ + $(STAGING_DIR)/usr/include/sys/queue.h + $(INSTALL) -D -m 0644 $(@D)/cdefs.h \ + $(STAGING_DIR)/usr/include/sys/cdefs.h +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/musl/0001-fix-regression-in-tcsetattr-on-all-mips-archs.patch b/bsp/buildroot/package/musl/0001-fix-regression-in-tcsetattr-on-all-mips-archs.patch new file mode 100644 index 00000000..73ccae44 --- /dev/null +++ b/bsp/buildroot/package/musl/0001-fix-regression-in-tcsetattr-on-all-mips-archs.patch @@ -0,0 +1,67 @@ +From cff5747c74c41b22f1ce1340978b1c226a8cdf32 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Wed, 13 Jul 2016 15:04:30 -0400 +Subject: [PATCH] fix regression in tcsetattr on all mips archs + +revert commit 8c316e9e49d37ad92c2e7493e16166a2afca419f. it was wrong +and does not match how the kernel API works. + +Signed-off-by: Rich Felker +Signed-off-by: Waldemar Brodkorb +--- + arch/mips/bits/termios.h | 6 +++--- + arch/mips64/bits/termios.h | 6 +++--- + arch/mipsn32/bits/termios.h | 6 +++--- + 3 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/arch/mips/bits/termios.h b/arch/mips/bits/termios.h +index f559f76..6a1205d 100644 +--- a/arch/mips/bits/termios.h ++++ b/arch/mips/bits/termios.h +@@ -141,9 +141,9 @@ struct termios { + #define TCOFLUSH 1 + #define TCIOFLUSH 2 + +-#define TCSANOW 0x540e +-#define TCSADRAIN 0x540f +-#define TCSAFLUSH 0x5410 ++#define TCSANOW 0 ++#define TCSADRAIN 1 ++#define TCSAFLUSH 2 + + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + #define EXTA 0000016 +diff --git a/arch/mips64/bits/termios.h b/arch/mips64/bits/termios.h +index f559f76..6a1205d 100644 +--- a/arch/mips64/bits/termios.h ++++ b/arch/mips64/bits/termios.h +@@ -141,9 +141,9 @@ struct termios { + #define TCOFLUSH 1 + #define TCIOFLUSH 2 + +-#define TCSANOW 0x540e +-#define TCSADRAIN 0x540f +-#define TCSAFLUSH 0x5410 ++#define TCSANOW 0 ++#define TCSADRAIN 1 ++#define TCSAFLUSH 2 + + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + #define EXTA 0000016 +diff --git a/arch/mipsn32/bits/termios.h b/arch/mipsn32/bits/termios.h +index f559f76..6a1205d 100644 +--- a/arch/mipsn32/bits/termios.h ++++ b/arch/mipsn32/bits/termios.h +@@ -141,9 +141,9 @@ struct termios { + #define TCOFLUSH 1 + #define TCIOFLUSH 2 + +-#define TCSANOW 0x540e +-#define TCSADRAIN 0x540f +-#define TCSAFLUSH 0x5410 ++#define TCSANOW 0 ++#define TCSADRAIN 1 ++#define TCSAFLUSH 2 + + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + #define EXTA 0000016 diff --git a/bsp/buildroot/package/musl/Config.in b/bsp/buildroot/package/musl/Config.in index f1a31507..18ae69d2 100644 --- a/bsp/buildroot/package/musl/Config.in +++ b/bsp/buildroot/package/musl/Config.in @@ -3,4 +3,6 @@ config BR2_PACKAGE_MUSL depends on BR2_TOOLCHAIN_USES_MUSL default y select BR2_PACKAGE_LINUX_HEADERS - select BR2_PACKAGE_NETBSD_QUEUE + select BR2_TOOLCHAIN_HAS_SSP + # Compatibility headers: cdefs.h, queue.h + select BR2_PACKAGE_MUSL_COMPAT_HEADERS diff --git a/bsp/buildroot/package/musl/musl.hash b/bsp/buildroot/package/musl/musl.hash index b1365994..8ef4defa 100644 --- a/bsp/buildroot/package/musl/musl.hash +++ b/bsp/buildroot/package/musl/musl.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 720b83c7e276b4b679c0bffe9509340d5f81fd601508e607e708177df0d31c0e musl-1.1.12.tar.gz +sha256 97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa musl-1.1.15.tar.gz diff --git a/bsp/buildroot/package/musl/musl.mk b/bsp/buildroot/package/musl/musl.mk index 2cc6699a..ea1ce6d9 100644 --- a/bsp/buildroot/package/musl/musl.mk +++ b/bsp/buildroot/package/musl/musl.mk @@ -4,7 +4,7 @@ # ################################################################################ -MUSL_VERSION = 1.1.12 +MUSL_VERSION = 1.1.15 MUSL_SITE = http://www.musl-libc.org/releases MUSL_LICENSE = MIT MUSL_LICENSE_FILES = COPYRIGHT @@ -13,16 +13,24 @@ MUSL_LICENSE_FILES = COPYRIGHT # cross-compiler and the kernel headers MUSL_DEPENDENCIES = host-gcc-initial linux-headers -# musl does not provide a sys/queue.h implementation, so add the -# netbsd-queue package that will install a sys/queue.h file in the -# staging directory based on the NetBSD implementation. -MUSL_DEPENDENCIES += netbsd-queue +# musl does not provide an implementation for sys/queue.h or sys/cdefs.h. +# So, add the musl-compat-headers package that will install those files, +# into the staging directory: +# sys/queue.h: header from NetBSD +# sys/cdefs.h: minimalist header bundled in Buildroot +MUSL_DEPENDENCIES += musl-compat-headers # musl is part of the toolchain so disable the toolchain dependency MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO MUSL_INSTALL_STAGING = YES +# Thumb build is broken, build in ARM mode, since all architectures +# that support Thumb1 also support ARM. +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) +MUSL_EXTRA_CFLAGS += -marm +endif + define MUSL_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ diff --git a/bsp/buildroot/package/mutt/mutt.hash b/bsp/buildroot/package/mutt/mutt.hash index befed137..baee6206 100644 --- a/bsp/buildroot/package/mutt/mutt.hash +++ b/bsp/buildroot/package/mutt/mutt.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 a292ca765ed7b19db4ac495938a3ef808a16193b7d623d65562bb8feb2b42200 mutt-1.5.24.tar.gz +sha256 98b26cecc6b1713082fc880344fa345c20bd7ded6459abe18c84429c7cf8ed20 mutt-1.6.1.tar.gz diff --git a/bsp/buildroot/package/mutt/mutt.mk b/bsp/buildroot/package/mutt/mutt.mk index 14c5be95..e6ea6e40 100644 --- a/bsp/buildroot/package/mutt/mutt.mk +++ b/bsp/buildroot/package/mutt/mutt.mk @@ -4,7 +4,7 @@ # ################################################################################ -MUTT_VERSION = 1.5.24 +MUTT_VERSION = 1.6.1 MUTT_SITE = https://bitbucket.org/mutt/mutt/downloads MUTT_LICENSE = GPLv2+ MUTT_LICENSE_FILES = GPL diff --git a/bsp/buildroot/package/mxsldr/Config.in.host b/bsp/buildroot/package/mxsldr/Config.in.host new file mode 100644 index 00000000..a427e71c --- /dev/null +++ b/bsp/buildroot/package/mxsldr/Config.in.host @@ -0,0 +1,9 @@ +config BR2_PACKAGE_HOST_MXSLDR + bool "host mxsldr" + depends on BR2_arm || BR2_armeb + help + This package contains tools to download and execute code on + Freescale i.MX23 and i.MX28 SoC's through the Serial + Download Protocol. + + git://git.denx.de/mxsldr.git diff --git a/bsp/buildroot/package/mxsldr/mxsldr.mk b/bsp/buildroot/package/mxsldr/mxsldr.mk new file mode 100644 index 00000000..fa7ca844 --- /dev/null +++ b/bsp/buildroot/package/mxsldr/mxsldr.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# mxsldr +# +################################################################################ + +MXSLDR_VERSION = 2793a657ab7a22487d21c1b020957806f8ae8383 +MXSLDR_SITE = git://git.denx.de/mxsldr.git +MXSLDR_LICENSE = GPLv2+ +MXSLDR_LICENSE_FILES = COPYING +HOST_MXSLDR_DEPENDENCIES = host-libusb host-pkgconf + +define HOST_MXSLDR_BUILD_CMDS + $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) +endef + +define HOST_MXSLDR_INSTALL_CMDS + $(INSTALL) -m 0755 -D $(@D)/mxsldr $(HOST_DIR)/usr/bin/mxsldr +endef + +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/nano/nano.hash b/bsp/buildroot/package/nano/nano.hash index 8b458470..40a69426 100644 --- a/bsp/buildroot/package/nano/nano.hash +++ b/bsp/buildroot/package/nano/nano.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 e06fca01bf183f4d531aa65a28dffc0e2d10185239909eb3de797023f3453bde nano-2.5.1.tar.gz +sha256 22f79cc635458e0c0d110d211576f1edc03b112a62d73b914826a46547a6ac27 nano-2.6.2.tar.xz diff --git a/bsp/buildroot/package/nano/nano.mk b/bsp/buildroot/package/nano/nano.mk index 0fa90093..7800b583 100644 --- a/bsp/buildroot/package/nano/nano.mk +++ b/bsp/buildroot/package/nano/nano.mk @@ -4,8 +4,10 @@ # ################################################################################ -NANO_VERSION = 2.5.1 -NANO_SITE = $(BR2_GNU_MIRROR)/nano +NANO_VERSION_MAJOR = 2.6 +NANO_VERSION = $(NANO_VERSION_MAJOR).2 +NANO_SITE = https://www.nano-editor.org/dist/v$(NANO_VERSION_MAJOR) +NANO_SOURCE = nano-$(NANO_VERSION).tar.xz NANO_LICENSE = GPLv3+ NANO_LICENSE_FILES = COPYING NANO_CONF_OPTS = \ diff --git a/bsp/buildroot/package/nasm/nasm.hash b/bsp/buildroot/package/nasm/nasm.hash index c693f522..5d7c36de 100644 --- a/bsp/buildroot/package/nasm/nasm.hash +++ b/bsp/buildroot/package/nasm/nasm.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 c99467c7072211c550d147640d8a1a0aa4d636d4d8cf849f3bf4317d900a1f7f nasm-2.11.08.tar.xz +sha256 4c866b60c0b1c4ebc715205d007b4640ff4e36af637c9a7deb87b2900e544321 nasm-2.12.02.tar.xz diff --git a/bsp/buildroot/package/nasm/nasm.mk b/bsp/buildroot/package/nasm/nasm.mk index c70557fe..f5d9ea0b 100644 --- a/bsp/buildroot/package/nasm/nasm.mk +++ b/bsp/buildroot/package/nasm/nasm.mk @@ -4,7 +4,7 @@ # ################################################################################ -NASM_VERSION = 2.11.08 +NASM_VERSION = 2.12.02 NASM_SOURCE = nasm-$(NASM_VERSION).tar.xz NASM_SITE = http://www.nasm.us/pub/nasm/releasebuilds/$(NASM_VERSION) NASM_LICENSE = BSD-2c diff --git a/bsp/buildroot/package/ncdu/Config.in b/bsp/buildroot/package/ncdu/Config.in index dac74441..0e440344 100644 --- a/bsp/buildroot/package/ncdu/Config.in +++ b/bsp/buildroot/package/ncdu/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_NCDU bool "ncdu" + depends on BR2_USE_MMU # system() select BR2_PACKAGE_NCURSES help ncdu is a disk usage analyzer with an ncurses interface diff --git a/bsp/buildroot/package/ncdu/ncdu.hash b/bsp/buildroot/package/ncdu/ncdu.hash index 7985c995..4bdda402 100644 --- a/bsp/buildroot/package/ncdu/ncdu.hash +++ b/bsp/buildroot/package/ncdu/ncdu.hash @@ -1,3 +1,3 @@ -# From http://dev.yorhel.nl/download/ncdu-1.9.tar.gz.{md5,sha1} -md5 93258079db897d28bb8890e2db89b1fb ncdu-1.9.tar.gz -sha1 27cb5464b192db8ffdf0a894fe51d29985348eb0 ncdu-1.9.tar.gz +# From http://dev.yorhel.nl/download/ncdu-1.11.tar.gz.{md5,sha1} +md5 9e44240a5356b029f05f0e70a63c4d12 ncdu-1.11.tar.gz +sha1 8f22d713e6d2b28e1f501eee2bd1e03b55550c8d ncdu-1.11.tar.gz diff --git a/bsp/buildroot/package/ncdu/ncdu.mk b/bsp/buildroot/package/ncdu/ncdu.mk index 03519707..bccbb8d9 100644 --- a/bsp/buildroot/package/ncdu/ncdu.mk +++ b/bsp/buildroot/package/ncdu/ncdu.mk @@ -4,7 +4,7 @@ # ################################################################################ -NCDU_VERSION = 1.9 +NCDU_VERSION = 1.11 NCDU_SITE = http://dev.yorhel.nl/download NCDU_DEPENDENCIES = ncurses diff --git a/bsp/buildroot/package/ncftp/Config.in b/bsp/buildroot/package/ncftp/Config.in index 57586e7b..135ab535 100644 --- a/bsp/buildroot/package/ncftp/Config.in +++ b/bsp/buildroot/package/ncftp/Config.in @@ -10,28 +10,24 @@ config BR2_PACKAGE_NCFTP if BR2_PACKAGE_NCFTP -menu "ncFTP tools selection" - config BR2_PACKAGE_NCFTP_GET - bool "NcFTPGet - command-line utility program" + bool "ncftpget" default y config BR2_PACKAGE_NCFTP_PUT - bool "NcFTPPut - command-line utility program" + bool "ncftpput" default y config BR2_PACKAGE_NCFTP_LS - bool "NcFTPLs - command-line utility program" + bool "ncftpls" default y config BR2_PACKAGE_NCFTP_BATCH - bool "NcFTPBatch & NcFTPSpooler - background FTP program for individual users" + bool "ncftpbatch/ncftpspooler" default y config BR2_PACKAGE_NCFTP_BOOKMARKS - bool "NcFTPBookmarks - ncurses based Bookmark Editor" + bool "ncftpbookmarks" select BR2_PACKAGE_NCURSES -endmenu - endif diff --git a/bsp/buildroot/package/ncurses/0003-recognise-uclinux.patch b/bsp/buildroot/package/ncurses/0003-recognise-uclinux.patch new file mode 100644 index 00000000..e86546cc --- /dev/null +++ b/bsp/buildroot/package/ncurses/0003-recognise-uclinux.patch @@ -0,0 +1,30 @@ +aclocal: fix detection for uclinux hosts + +uclinux is just a linux like the others... + +Signed-off-by: "Yann E. MORIN" + +diff -durN ncurses-5.9.orig/aclocal.m4 ncurses-5.9/aclocal.m4 +--- ncurses-5.9.orig/aclocal.m4 2011-04-01 01:35:38.000000000 +0200 ++++ ncurses-5.9/aclocal.m4 2016-08-21 15:24:47.003620029 +0200 +@@ -6531,7 +6531,7 @@ + irix[[56]].*) #(vi + cf_xopen_source="-D_SGI_SOURCE" + ;; +-linux*|gnu*|mint*|k*bsd*-gnu) #(vi ++linux*|uclinux*|gnu*|mint*|k*bsd*-gnu) #(vi + CF_GNU_SOURCE + ;; + mirbsd*) #(vi +diff -durN ncurses-5.9.orig/configure ncurses-5.9/configure +--- ncurses-5.9.orig/configure 2016-08-21 15:21:50.789285661 +0200 ++++ ncurses-5.9/configure 2016-08-21 15:24:35.187463625 +0200 +@@ -6984,7 +6984,7 @@ + irix[56].*) #(vi + cf_xopen_source="-D_SGI_SOURCE" + ;; +-linux*|gnu*|mint*|k*bsd*-gnu) #(vi ++linux*|uclinux*|gnu*|mint*|k*bsd*-gnu) #(vi + + echo "$as_me:6996: checking if we must define _GNU_SOURCE" >&5 + echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6 diff --git a/bsp/buildroot/package/ncurses/ncurses.mk b/bsp/buildroot/package/ncurses/ncurses.mk index 8368c690..27648249 100644 --- a/bsp/buildroot/package/ncurses/ncurses.mk +++ b/bsp/buildroot/package/ncurses/ncurses.mk @@ -8,7 +8,6 @@ NCURSES_VERSION = 5.9 NCURSES_SITE = $(BR2_GNU_MIRROR)/ncurses NCURSES_INSTALL_STAGING = YES NCURSES_DEPENDENCIES = host-ncurses -HOST_NCURSES_DEPENDENCIES = NCURSES_PROGS = clear infocmp tabs tic toe tput tset NCURSES_LICENSE = MIT with advertising clause NCURSES_LICENSE_FILES = README @@ -56,33 +55,46 @@ NCURSES_LIBS-$(BR2_PACKAGE_NCURSES_TARGET_MENU) += menu NCURSES_LIBS-$(BR2_PACKAGE_NCURSES_TARGET_PANEL) += panel NCURSES_LIBS-$(BR2_PACKAGE_NCURSES_TARGET_FORM) += form +NCURSES_TERMINFO_FILES = \ + a/ansi \ + l/linux \ + p/putty \ + p/putty-vt100 \ + s/screen \ + v/vt100 \ + v/vt100-putty \ + v/vt102 \ + v/vt200 \ + v/vt220 \ + x/xterm \ + x/xterm-color \ + x/xterm-xfree86 \ + ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) NCURSES_CONF_OPTS += --enable-widec NCURSES_LIB_SUFFIX = w define NCURSES_LINK_LIBS_STATIC - for lib in $(NCURSES_LIBS-y:%=lib%); do \ - ln -sf $${lib}$(NCURSES_LIB_SUFFIX).a \ - $(1)/usr/lib/$${lib}.a; \ - done + $(foreach lib,$(NCURSES_LIBS-y:%=lib%), \ + ln -sf $(lib)$(NCURSES_LIB_SUFFIX).a $(1)/usr/lib/$(lib).a + ) ln -sf libncurses$(NCURSES_LIB_SUFFIX).a \ $(1)/usr/lib/libcurses.a endef define NCURSES_LINK_LIBS_SHARED - for lib in $(NCURSES_LIBS-y:%=lib%); do \ - ln -sf $${lib}$(NCURSES_LIB_SUFFIX).so \ - $(1)/usr/lib/$${lib}.so; \ - done + $(foreach lib,$(NCURSES_LIBS-y:%=lib%), \ + ln -sf $(lib)$(NCURSES_LIB_SUFFIX).so $(1)/usr/lib/$(lib).so + ) ln -sf libncurses$(NCURSES_LIB_SUFFIX).so \ $(1)/usr/lib/libcurses.so endef define NCURSES_LINK_PC - for pc in $(NCURSES_LIBS-y); do \ - ln -sf $${pc}$(NCURSES_LIB_SUFFIX).pc \ - $(1)/usr/lib/pkgconfig/$${pc}.pc; \ - done + $(foreach pc,$(NCURSES_LIBS-y), \ + ln -sf $(pc)$(NCURSES_LIB_SUFFIX).pc \ + $(1)/usr/lib/pkgconfig/$(pc).pc + ) endef NCURSES_LINK_TARGET_LIBS = \ @@ -96,10 +108,10 @@ NCURSES_LINK_STAGING_PC = $(call NCURSES_LINK_PC,$(STAGING_DIR)) NCURSES_CONF_OPTS += --enable-ext-colors NCURSES_ABI_VERSION = 6 -define NCURSES_INSTALL_TARGET_256_COLORS_TERMINFO - cp -dpf $(STAGING_DIR)/usr/share/terminfo/x/xterm+256color $(TARGET_DIR)/usr/share/terminfo/x - cp -dpf $(STAGING_DIR)/usr/share/terminfo/x/xterm-256color $(TARGET_DIR)/usr/share/terminfo/x -endef +NCURSES_TERMINFO_FILES += \ + p/putty-256color \ + x/xterm+256color \ + x/xterm-256color NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_LINK_STAGING_LIBS NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_LINK_STAGING_PC @@ -122,19 +134,19 @@ endef ifneq ($(BR2_STATIC_LIBS),y) define NCURSES_INSTALL_TARGET_LIBS - for lib in $(NCURSES_LIBS-y:%=lib%); do \ - cp -dpf $(NCURSES_DIR)/lib/$${lib}$(NCURSES_LIB_SUFFIX).so* \ - $(TARGET_DIR)/usr/lib/; \ - done + $(foreach lib,$(NCURSES_LIBS-y:%=lib%), \ + cp -dpf $(NCURSES_DIR)/lib/$(lib)$(NCURSES_LIB_SUFFIX).so* \ + $(TARGET_DIR)/usr/lib/ + ) endef endif ifeq ($(BR2_PACKAGE_NCURSES_TARGET_PROGS),y) define NCURSES_INSTALL_TARGET_PROGS - for x in $(NCURSES_PROGS); do \ - $(INSTALL) -m 0755 $(NCURSES_DIR)/progs/$$x \ - $(TARGET_DIR)/usr/bin/$$x; \ - done + $(foreach prog,$(NCURSES_PROGS), \ + $(INSTALL) -m 0755 $(NCURSES_DIR)/progs/$(prog) \ + $(TARGET_DIR)/usr/bin/$(prog) + ) ln -sf tset $(TARGET_DIR)/usr/bin/reset endef endif @@ -145,22 +157,10 @@ define NCURSES_INSTALL_TARGET_CMDS $(NCURSES_LINK_TARGET_LIBS) $(NCURSES_INSTALL_TARGET_PROGS) ln -snf /usr/share/terminfo $(TARGET_DIR)/usr/lib/terminfo - mkdir -p $(TARGET_DIR)/usr/share/terminfo/x - cp -dpf $(STAGING_DIR)/usr/share/terminfo/x/xterm $(TARGET_DIR)/usr/share/terminfo/x - cp -dpf $(STAGING_DIR)/usr/share/terminfo/x/xterm-color $(TARGET_DIR)/usr/share/terminfo/x - cp -dpf $(STAGING_DIR)/usr/share/terminfo/x/xterm-xfree86 $(TARGET_DIR)/usr/share/terminfo/x - $(NCURSES_INSTALL_TARGET_256_COLORS_TERMINFO) - mkdir -p $(TARGET_DIR)/usr/share/terminfo/v - cp -dpf $(STAGING_DIR)/usr/share/terminfo/v/vt100 $(TARGET_DIR)/usr/share/terminfo/v - cp -dpf $(STAGING_DIR)/usr/share/terminfo/v/vt102 $(TARGET_DIR)/usr/share/terminfo/v - cp -dpf $(STAGING_DIR)/usr/share/terminfo/v/vt200 $(TARGET_DIR)/usr/share/terminfo/v - cp -dpf $(STAGING_DIR)/usr/share/terminfo/v/vt220 $(TARGET_DIR)/usr/share/terminfo/v - mkdir -p $(TARGET_DIR)/usr/share/terminfo/a - cp -dpf $(STAGING_DIR)/usr/share/terminfo/a/ansi $(TARGET_DIR)/usr/share/terminfo/a - mkdir -p $(TARGET_DIR)/usr/share/terminfo/l - cp -dpf $(STAGING_DIR)/usr/share/terminfo/l/linux $(TARGET_DIR)/usr/share/terminfo/l - mkdir -p $(TARGET_DIR)/usr/share/terminfo/s - cp -dpf $(STAGING_DIR)/usr/share/terminfo/s/screen $(TARGET_DIR)/usr/share/terminfo/s + $(foreach terminfo,$(NCURSES_TERMINFO_FILES),\ + $(INSTALL) -D -m 0644 $(STAGING_DIR)/usr/share/terminfo/$(terminfo) \ + $(TARGET_DIR)/usr/share/terminfo/$(terminfo) + ) endef # NCURSES_INSTALL_TARGET_CMDS # diff --git a/bsp/buildroot/package/ne10/ne10.hash b/bsp/buildroot/package/ne10/ne10.hash new file mode 100644 index 00000000..db5b6f12 --- /dev/null +++ b/bsp/buildroot/package/ne10/ne10.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 450dac5bb3a2351019ae23792e97c3bf965d16a21c0598b73cea9fbc3b3a56af ne10-v1.2.0.tar.gz diff --git a/bsp/buildroot/package/neardal/neardal.hash b/bsp/buildroot/package/neardal/neardal.hash new file mode 100644 index 00000000..c767a745 --- /dev/null +++ b/bsp/buildroot/package/neardal/neardal.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 9955753759a2604fa47562a4bbccd3b787d625e70311bb6662936d89d26715b7 neardal-33b54a55032b047fd885a5eb3592c169c0056c49.tar.gz diff --git a/bsp/buildroot/package/neon/neon.mk b/bsp/buildroot/package/neon/neon.mk index 0cff1a26..13d80844 100644 --- a/bsp/buildroot/package/neon/neon.mk +++ b/bsp/buildroot/package/neon/neon.mk @@ -28,7 +28,7 @@ NEON_CONF_OPTS += --without-ssl endif ifeq ($(BR2_PACKAGE_NEON_EXPAT),y) -NEON_CONF_OPTS += --with-expat=$(STAGING_DIR)/usr/lib/libexpat.la +NEON_CONF_OPTS += --with-expat=yes NEON_DEPENDENCIES += expat else NEON_CONF_OPTS += --with-expat=no diff --git a/bsp/buildroot/package/net-tools/0001-Makefile-fix-static-linking-issue-with-lintl.patch b/bsp/buildroot/package/net-tools/0001-Makefile-fix-static-linking-issue-with-lintl.patch new file mode 100644 index 00000000..a2d674e8 --- /dev/null +++ b/bsp/buildroot/package/net-tools/0001-Makefile-fix-static-linking-issue-with-lintl.patch @@ -0,0 +1,79 @@ +From a2076079a409141704701ec17a205d89e5b24052 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sat, 28 May 2016 20:45:02 +0200 +Subject: [PATCH] Makefile: fix static linking issue with lintl + +When net-tools are build with uClibc-ng and statically linked, +some tools like hostname and route needs to link with -lintl. + +Adding -lintl in LDFLAGS place the library before object files: +arm-linux-gcc -O2 -g -Wall -fno-strict-aliasing -static -lintl -Llib -o hostname hostname.o + +Add $(LIBS) after object files in the Makefile to place -lintl correctly. + +Fixes: +http://autobuild.buildroot.net/results/134/1345b6d366125320b89512e7ce7f142f1a03acf8 + +Ref: +http://lists.busybox.net/pipermail/buildroot/2016-May/162216.html + +Signed-off-by: Romain Naour +--- + Makefile | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index 171123d..a2baf79 100644 +--- a/Makefile ++++ b/Makefile +@@ -158,37 +158,37 @@ subdirs: libdir + @for i in $(SUBDIRS:$(NET_LIB_PATH)/=); do $(MAKE) -C $$i || exit $$? ; done + + ifconfig: $(NET_LIB) ifconfig.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ifconfig.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ifconfig.o $(LIBS) $(NLIB) + + nameif: $(NET_LIB) nameif.o + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ nameif.o $(NLIB) + + hostname: hostname.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ hostname.o $(DNLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ hostname.o $(LIBS) $(DNLIB) + + route: $(NET_LIB) route.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ route.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ route.o $(LIBS) $(NLIB) + + arp: $(NET_LIB) arp.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ arp.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ arp.o $(LIBS) $(NLIB) + + rarp: $(NET_LIB) rarp.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rarp.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rarp.o $(LIBS) $(NLIB) + + slattach: $(NET_LIB) slattach.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ slattach.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ slattach.o $(LIBS) $(NLIB) + + plipconfig: $(NET_LIB) plipconfig.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ plipconfig.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ plipconfig.o $(LIBS) $(NLIB) + + netstat: $(NET_LIB) netstat.o statistics.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ netstat.o statistics.o $(NLIB) $(SELIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ netstat.o statistics.o $(LIBS) $(NLIB) $(SELIB) + + iptunnel: $(NET_LIB) iptunnel.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ iptunnel.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ iptunnel.o $(LIBS) $(NLIB) + + ipmaddr: $(NET_LIB) ipmaddr.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ipmaddr.o $(NLIB) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ipmaddr.o $(LIBS) $(NLIB) + + mii-tool: $(NET_LIB) mii-tool.o + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mii-tool.o $(NLIB) +-- +2.5.5 + diff --git a/bsp/buildroot/package/net-tools/Config.in b/bsp/buildroot/package/net-tools/Config.in index f98dca05..3980b7ed 100644 --- a/bsp/buildroot/package/net-tools/Config.in +++ b/bsp/buildroot/package/net-tools/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_NET_TOOLS bool "net-tools" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help A collection of programs that form the base set of the NET-3 diff --git a/bsp/buildroot/package/net-tools/net-tools.mk b/bsp/buildroot/package/net-tools/net-tools.mk index 184c50e9..f0c61d5c 100644 --- a/bsp/buildroot/package/net-tools/net-tools.mk +++ b/bsp/buildroot/package/net-tools/net-tools.mk @@ -7,8 +7,6 @@ NET_TOOLS_VERSION = 3f170bff115303e92319791cbd56371e33dcbf6d NET_TOOLS_SITE = git://git.code.sf.net/p/net-tools/code NET_TOOLS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) -NET_TOOLS_LDFLAGS = $(TARGET_LDFLAGS) \ - $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl) NET_TOOLS_LICENSE = GPLv2+ NET_TOOLS_LICENSE_FILES = COPYING @@ -36,8 +34,9 @@ endef NET_TOOLS_POST_CONFIGURE_HOOKS += NET_TOOLS_ENABLE_I18N NET_TOOLS_ENABLE_IPV6 define NET_TOOLS_BUILD_CMDS - $(TARGET_MAKE_ENV) AR="$(TARGET_AR)" CC="$(TARGET_CC)" \ - LDFLAGS="$(NET_TOOLS_LDFLAGS)" $(MAKE) -C $(@D) + $(TARGET_CONFIGURE_OPTS) \ + LIBS="$(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),-lintl)" \ + $(MAKE) -C $(@D) endef # install renames conflicting binaries, update does not diff --git a/bsp/buildroot/package/netatalk/Config.in b/bsp/buildroot/package/netatalk/Config.in index ec6ec2c1..ce173183 100644 --- a/bsp/buildroot/package/netatalk/Config.in +++ b/bsp/buildroot/package/netatalk/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_NETATALK bool "netatalk" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/netbsd-queue/Config.in b/bsp/buildroot/package/netbsd-queue/Config.in deleted file mode 100644 index 7837f4cd..00000000 --- a/bsp/buildroot/package/netbsd-queue/Config.in +++ /dev/null @@ -1,2 +0,0 @@ -config BR2_PACKAGE_NETBSD_QUEUE - bool diff --git a/bsp/buildroot/package/netbsd-queue/netbsd-queue.mk b/bsp/buildroot/package/netbsd-queue/netbsd-queue.mk deleted file mode 100644 index 5fd926bb..00000000 --- a/bsp/buildroot/package/netbsd-queue/netbsd-queue.mk +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# -# netbsd-queue -# -################################################################################ - -NETBSD_QUEUE_VERSION = 1.70 -NETBSD_QUEUE_SITE = http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys -NETBSD_QUEUE_SOURCE = queue.h?rev=$(NETBSD_QUEUE_VERSION) -NETBSD_QUEUE_LICENSE = BSD-3c - -NETBSD_QUEUE_ADD_TOOLCHAIN_DEPENDENCY = NO -NETBSD_QUEUE_INSTALL_STAGING = YES - -define NETBSD_QUEUE_EXTRACT_CMDS - cp $(DL_DIR)/$(NETBSD_QUEUE_SOURCE) $(@D)/queue.h -endef - -define NETBSD_QUEUE_INSTALL_STAGING_CMDS - $(INSTALL) -D -m 0644 $(@D)/queue.h \ - $(STAGING_DIR)/usr/include/sys/queue.h -endef - -$(eval $(generic-package)) diff --git a/bsp/buildroot/package/netcat-openbsd/Config.in b/bsp/buildroot/package/netcat-openbsd/Config.in index 346561a8..0df997cb 100644 --- a/bsp/buildroot/package/netcat-openbsd/Config.in +++ b/bsp/buildroot/package/netcat-openbsd/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_NETCAT_OPENBSD depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help A simple Unix utility which reads and writes data across network connections using TCP or UDP protocol. It is designed to be a @@ -18,7 +19,7 @@ config BR2_PACKAGE_NETCAT_OPENBSD https://packages.debian.org/sid/netcat-openbsd -comment "netcat-openbsd needs an (e)glibc toolchain w/ threads" +comment "netcat-openbsd needs a glibc toolchain w/ threads" depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC -~ + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/netcat/Config.in b/bsp/buildroot/package/netcat/Config.in index 88273ffd..924069ee 100644 --- a/bsp/buildroot/package/netcat/Config.in +++ b/bsp/buildroot/package/netcat/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_NETCAT bool "netcat" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Netcat is a featured networking utility which reads and writes data across network connections, using the TCP/IP protocol. diff --git a/bsp/buildroot/package/netplug/0002-add-missing-time-include.patch b/bsp/buildroot/package/netplug/0002-add-missing-time-include.patch new file mode 100644 index 00000000..f204c924 --- /dev/null +++ b/bsp/buildroot/package/netplug/0002-add-missing-time-include.patch @@ -0,0 +1,20 @@ +Add missing include + +netplug.h uses time_t, so it must include . This fixes a build +issue with the musl C library. + +Signed-off-by: Thomas Petazzoni + +Index: b/netplug.h +=================================================================== +--- a/netplug.h ++++ b/netplug.h +@@ -20,7 +20,7 @@ + #ifndef __netplug_h + #define __netplug_h + +- ++#include + #include + #include + #include diff --git a/bsp/buildroot/package/netplug/0003-remove-assert-fail.patch b/bsp/buildroot/package/netplug/0003-remove-assert-fail.patch new file mode 100644 index 00000000..635c462a --- /dev/null +++ b/bsp/buildroot/package/netplug/0003-remove-assert-fail.patch @@ -0,0 +1,51 @@ +Remove __assert_fail() + +The netplug code uses the assert() macro in various places. In glibc +internally, assert() uses a function called __assert_fail() to print a +message and abort. Relying on internal glibc details, netplug +re-defines __assert_fail() in the hope that it will get called instead +of glibc internal version. + +This attempt: + + * Doesn't work with uClibc, which doesn't use any __assert_fail() + function at all. It doesn't fail to build, but it is entirely + useless. + + * Fails to build with musl, which also defines __assert_fail(), but + with a different prototype. + +We simply remove the __assert_fail() implementation, so that the C +library implementation of assert() just does its normal work. The only +functionality lost is that the message is displayed on the standard +output rather than in netplug's logs (and this was only working with +glibc anyway). + +Signed-off-by: Thomas Petazzoni + +Index: b/lib.c +=================================================================== +--- a/lib.c ++++ b/lib.c +@@ -199,21 +199,6 @@ + return x; + } + +- +-void +-__assert_fail(const char *assertion, const char *file, +- unsigned int line, const char *function) +-{ +- do_log(LOG_CRIT, "%s:%u: %s%sAssertion `%s' failed", +- file, line, +- function ? function : "", +- function ? ": " : "", +- assertion); +- +- abort(); +-} +- +- + /* + * Local variables: + * c-file-style: "stroustrup" diff --git a/bsp/buildroot/package/netsniff-ng/Config.in b/bsp/buildroot/package/netsniff-ng/Config.in index 5d2f5dfe..e52bb25f 100644 --- a/bsp/buildroot/package/netsniff-ng/Config.in +++ b/bsp/buildroot/package/netsniff-ng/Config.in @@ -17,7 +17,7 @@ config BR2_PACKAGE_NETSNIFF_NG networking toolkit. If you will, the Swiss army knife for network packets. -comment "netsniff-ng needs an (e)glibc toolchain w/ threads, headers >= 3.0" +comment "netsniff-ng needs a glibc toolchain w/ threads, headers >= 3.0" depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 diff --git a/bsp/buildroot/package/netsniff-ng/netsniff-ng.hash b/bsp/buildroot/package/netsniff-ng/netsniff-ng.hash index b4b05005..52124977 100644 --- a/bsp/buildroot/package/netsniff-ng/netsniff-ng.hash +++ b/bsp/buildroot/package/netsniff-ng/netsniff-ng.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 a76911f5a8ef0b92c42da568ceebc9e6559c02760f498785e22c8426b623d43f netsniff-ng-v0.6.0.tar.gz +sha256 902661bcdbc129c6a6c1f69a72f921fffc9e765d005568dc153f09ca0097c180 netsniff-ng-v0.6.1.tar.gz diff --git a/bsp/buildroot/package/netsniff-ng/netsniff-ng.mk b/bsp/buildroot/package/netsniff-ng/netsniff-ng.mk index eecceea6..ad97a887 100644 --- a/bsp/buildroot/package/netsniff-ng/netsniff-ng.mk +++ b/bsp/buildroot/package/netsniff-ng/netsniff-ng.mk @@ -4,7 +4,7 @@ # ################################################################################ -NETSNIFF_NG_VERSION = v0.6.0 +NETSNIFF_NG_VERSION = v0.6.1 NETSNIFF_NG_SITE = $(call github,netsniff-ng,netsniff-ng,$(NETSNIFF_NG_VERSION)) NETSNIFF_NG_LICENSE = GPLv2 NETSNIFF_NG_LICENSE_FILES = README COPYING diff --git a/bsp/buildroot/package/netsnmp/S59snmpd b/bsp/buildroot/package/netsnmp/S59snmpd index 4eea5122..4ff844ee 100755 --- a/bsp/buildroot/package/netsnmp/S59snmpd +++ b/bsp/buildroot/package/netsnmp/S59snmpd @@ -1,4 +1,4 @@ -#! /bin/sh -e +#! /bin/sh ### BEGIN INIT INFO # Provides: snmpd snmptrapd # Required-Start: $network $local_fs @@ -11,7 +11,6 @@ # # Author: Jochen Friedrich # -set -e export PATH=/sbin:/usr/sbin:/bin:/usr/bin @@ -38,56 +37,71 @@ if [ "$SNMPDCOMPAT" = "yes" ]; then ln -sf /var/agentx/master /var/run/agentx fi +start() { + if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then + printf "Starting SNMP daemon: " + start-stop-daemon -q -S -x /usr/sbin/snmpd -- $SNMPDOPTS + [ $? = 0 ] && echo "OK" || echo "FAIL" + fi + + if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then + printf "Starting SNMP trap daemon: " + start-stop-daemon -q -S -x /usr/sbin/snmptrapd -- $TRAPDOPTS + [ $? = 0 ] && echo "OK" || echo "FAIL" + fi +} + +stop() { + if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then + printf "Stopping SNMP daemon: " + start-stop-daemon -q -K $ssd_oknodo -x /usr/sbin/snmpd + [ $? = 0 ] && echo "OK" || echo "FAIL" + fi + + if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then + printf "Stopping SNMP trap daemon: " + start-stop-daemon -q -K $ssd_oknodo -x /usr/sbin/snmptrapd + [ $? = 0 ] && echo "OK" || echo "FAIL" + fi +} + +reload() { + if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then + printf "Reloading SNMP daemon: " + start-stop-daemon -q -K -s 1 -p /var/run/snmpd.pid -x /usr/sbin/snmpd + [ $? = 0 ] && echo "OK" || echo "FAIL" + fi + + if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then + printf "Reloading SNMP trap daemon: " + start-stop-daemon -q -K -s 1 -p /var/run/snmptrapd.pid -x /usr/sbin/snmptrapd + [ $? = 0 ] && echo "OK" || echo "FAIL" + fi +} + case "$1" in - start) - printf "Starting network management services:" - if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then - start-stop-daemon -q -S -x /usr/sbin/snmpd -- $SNMPDOPTS - printf " snmpd" - fi - if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then - start-stop-daemon -q -S -x /usr/sbin/snmptrapd -- $TRAPDOPTS - printf " snmptrapd" - fi - echo "." - ;; - stop) - printf "Stopping network management services:" - start-stop-daemon -q -K $ssd_oknodo -x /usr/sbin/snmpd - printf " snmpd" - start-stop-daemon -q -K $ssd_oknodo -x /usr/sbin/snmptrapd - printf " snmptrapd" - echo "." - ;; - restart) - printf "Restarting network management services:" - start-stop-daemon -q -K $ssd_oknodo -x /usr/sbin/snmpd - start-stop-daemon -q -K $ssd_oknodo -x /usr/sbin/snmptrapd - # Allow the daemons time to exit completely. - sleep 2 - if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then - start-stop-daemon -q -S -x /usr/sbin/snmpd -- $SNMPDOPTS - printf " snmpd" - fi - if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then - # Allow snmpd time to start up. - sleep 1 - start-stop-daemon -q -S -x /usr/sbin/snmptrapd -- $TRAPDOPTS - printf " snmptrapd" - fi - echo "." - ;; - reload|force-reload) - printf "Reloading network management services:" - if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then - start-stop-daemon -q -K -s 1 -p /var/run/snmpd.pid -x /usr/sbin/snmpd - printf " snmpd" - fi - echo "." - ;; - *) - echo "Usage: /etc/init.d/snmpd {start|stop|restart|reload|force-reload}" - exit 1 + start) + start + ;; + + stop) + stop + ;; + + restart) + stop + # Allow the daemons time to exit completely. + sleep 2 + start + ;; + + reload|force-reload) + reload + ;; + + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" + exit 1 esac exit 0 diff --git a/bsp/buildroot/package/netsnmp/netsnmp.mk b/bsp/buildroot/package/netsnmp/netsnmp.mk index 0eb3b267..48273b51 100644 --- a/bsp/buildroot/package/netsnmp/netsnmp.mk +++ b/bsp/buildroot/package/netsnmp/netsnmp.mk @@ -67,6 +67,11 @@ ifeq ($(BR2_PACKAGE_PCIUTILS),y) NETSNMP_DEPENDENCIES += pciutils endif +# For ucd-snmp/lmsensorsMib +ifeq ($(BR2_PACKAGE_LM_SENSORS),y) +NETSNMP_DEPENDENCIES += lm-sensors +endif + ifneq ($(BR2_PACKAGE_NETSNMP_ENABLE_MIBS),y) NETSNMP_CONF_OPTS += --disable-mib-loading NETSNMP_CONF_OPTS += --disable-mibs diff --git a/bsp/buildroot/package/nettle/0002-fix-CVE-2016-6489.patch b/bsp/buildroot/package/nettle/0002-fix-CVE-2016-6489.patch new file mode 100644 index 00000000..8c99ff72 --- /dev/null +++ b/bsp/buildroot/package/nettle/0002-fix-CVE-2016-6489.patch @@ -0,0 +1,181 @@ +From 6450224f3e3c78fdfa37eadbe6ada8301279f6c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Niels=20M=C3=B6ller?= +Date: Mon, 20 Jun 2016 20:04:56 +0200 +Subject: Use mpz_powm_sec. +Subject: Check for invalid keys, with even p, in dsa_sign. +Subject: Reject invalid keys, with even moduli, in rsa_compute_root_tr. +Subject: Reject invalid RSA keys with even modulo. + +Patch status: upstream + +Signed-off-by: Gustavo Zacarias + +diff --git a/bignum.h b/bignum.h +index 24158e0..0d30534 100644 +--- a/bignum.h ++++ b/bignum.h +@@ -53,6 +53,8 @@ + # define mpz_combit mpz_combit + # define mpz_import mpz_import + # define mpz_export mpz_export ++/* Side-channel silent powm not available in mini-gmp. */ ++# define mpz_powm_sec mpz_powm + #else + # include + #endif +diff --git a/configure.ac b/configure.ac +index e1ee64c..1e88477 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -236,9 +236,9 @@ fi + # Checks for libraries + if test "x$enable_public_key" = "xyes" ; then + if test "x$enable_mini_gmp" = "xno" ; then +- AC_CHECK_LIB(gmp, __gmpz_getlimbn,, ++ AC_CHECK_LIB(gmp, __gmpz_powm_sec,, + [AC_MSG_WARN( +- [GNU MP not found, or not 3.1 or up, see http://gmplib.org/. ++ [GNU MP not found, or too old. GMP-5.0 or later is needed, see http://gmplib.org/. + Support for public key algorithms will be unavailable.])] + enable_public_key=no) + +diff --git a/dsa-sign.c b/dsa-sign.c +index 62c7d4a..b713743 100644 +--- a/dsa-sign.c ++++ b/dsa-sign.c +@@ -56,6 +56,11 @@ dsa_sign(const struct dsa_params *params, + mpz_t tmp; + int res; + ++ /* Check that p is odd, so that invalid keys don't result in a crash ++ inside mpz_powm_sec. */ ++ if (mpz_even_p (params->p)) ++ return 0; ++ + /* Select k, 0q); + mpz_sub_ui(tmp, tmp, 1); +@@ -65,7 +70,7 @@ dsa_sign(const struct dsa_params *params, + mpz_add_ui(k, k, 1); + + /* Compute r = (g^k (mod p)) (mod q) */ +- mpz_powm(tmp, params->g, k, params->p); ++ mpz_powm_sec(tmp, params->g, k, params->p); + mpz_fdiv_r(signature->r, tmp, params->q); + + /* Compute hash */ +diff --git a/rsa-blind.c b/rsa-blind.c +index 7662f50..16b03d7 100644 +--- a/rsa-blind.c ++++ b/rsa-blind.c +@@ -61,7 +61,7 @@ _rsa_blind (const struct rsa_public_key *pub, + while (!mpz_invert (ri, r, pub->n)); + + /* c = c*(r^e) mod n */ +- mpz_powm(r, r, pub->e, pub->n); ++ mpz_powm_sec(r, r, pub->e, pub->n); + mpz_mul(c, c, r); + mpz_fdiv_r(c, c, pub->n); + +diff --git a/rsa-sign-tr.c b/rsa-sign-tr.c +index 3d80ed4..8542cae 100644 +--- a/rsa-sign-tr.c ++++ b/rsa-sign-tr.c +@@ -60,7 +60,7 @@ rsa_blind (const struct rsa_public_key *pub, + while (!mpz_invert (ri, r, pub->n)); + + /* c = c*(r^e) mod n */ +- mpz_powm(r, r, pub->e, pub->n); ++ mpz_powm_sec(r, r, pub->e, pub->n); + mpz_mul(c, m, r); + mpz_fdiv_r(c, c, pub->n); + +@@ -88,6 +88,14 @@ rsa_compute_root_tr(const struct rsa_public_key *pub, + int res; + mpz_t t, mb, xb, ri; + ++ /* mpz_powm_sec handles only odd moduli. If p, q or n is even, the ++ key is invalid and rejected by rsa_private_key_prepare. However, ++ some applications, notably gnutls, don't use this function, and ++ we don't want an invalid key to lead to a crash down inside ++ mpz_powm_sec. So do an additional check here. */ ++ if (mpz_even_p (pub->n) || mpz_even_p (key->p) || mpz_even_p (key->q)) ++ return 0; ++ + mpz_init (mb); + mpz_init (xb); + mpz_init (ri); +@@ -97,7 +105,7 @@ rsa_compute_root_tr(const struct rsa_public_key *pub, + + rsa_compute_root (key, xb, mb); + +- mpz_powm(t, xb, pub->e, pub->n); ++ mpz_powm_sec(t, xb, pub->e, pub->n); + res = (mpz_cmp(mb, t) == 0); + + if (res) +diff --git a/rsa-sign.c b/rsa-sign.c +index eba7388..4832352 100644 +--- a/rsa-sign.c ++++ b/rsa-sign.c +@@ -96,11 +96,11 @@ rsa_compute_root(const struct rsa_private_key *key, + + /* Compute xq = m^d % q = (m%q)^b % q */ + mpz_fdiv_r(xq, m, key->q); +- mpz_powm(xq, xq, key->b, key->q); ++ mpz_powm_sec(xq, xq, key->b, key->q); + + /* Compute xp = m^d % p = (m%p)^a % p */ + mpz_fdiv_r(xp, m, key->p); +- mpz_powm(xp, xp, key->a, key->p); ++ mpz_powm_sec(xp, xp, key->a, key->p); + + /* Set xp' = (xp - xq) c % p. */ + mpz_sub(xp, xp, xq); +diff --git a/rsa.c b/rsa.c +index 19d93de..f594140 100644 +--- a/rsa.c ++++ b/rsa.c +@@ -58,13 +58,18 @@ rsa_public_key_clear(struct rsa_public_key *key) + } + + /* Computes the size, in octets, of a the modulo. Returns 0 if the +- * modulo is too small to be useful. */ +- ++ * modulo is too small to be useful, or otherwise appears invalid. */ + size_t + _rsa_check_size(mpz_t n) + { + /* Round upwards */ +- size_t size = (mpz_sizeinbase(n, 2) + 7) / 8; ++ size_t size; ++ ++ /* Even moduli are invalid, and not supported by mpz_powm_sec. */ ++ if (mpz_even_p (n)) ++ return 0; ++ ++ size = (mpz_sizeinbase(n, 2) + 7) / 8; + + if (size < RSA_MINIMUM_N_OCTETS) + return 0; +diff --git a/testsuite/rsa-test.c b/testsuite/rsa-test.c +index e9b1c03..a429664 100644 +--- a/testsuite/rsa-test.c ++++ b/testsuite/rsa-test.c +@@ -57,6 +57,13 @@ test_main(void) + + test_rsa_sha512(&pub, &key, expected); + ++ /* Test detection of invalid keys with even modulo */ ++ mpz_clrbit (pub.n, 0); ++ ASSERT (!rsa_public_key_prepare (&pub)); ++ ++ mpz_clrbit (key.p, 0); ++ ASSERT (!rsa_private_key_prepare (&key)); ++ + /* 777-bit key, generated by + * + * lsh-keygen -a rsa -l 777 -f advanced-hex +-- +2.7.3 + diff --git a/bsp/buildroot/package/nettle/nettle.mk b/bsp/buildroot/package/nettle/nettle.mk index c133839e..0fbe57b8 100644 --- a/bsp/buildroot/package/nettle/nettle.mk +++ b/bsp/buildroot/package/nettle/nettle.mk @@ -13,9 +13,11 @@ NETTLE_LICENSE_FILES = COPYING.LESSERv3 COPYINGv2 # don't include openssl support for (unused) examples as it has problems # with static linking NETTLE_CONF_OPTS = --disable-openssl +# For 0002-fix-CVE-2016-6489.patch +NETTLE_AUTORECONF = YES # ARM assembly requires v6+ ISA -ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV5),y) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV7M),y) NETTLE_CONF_OPTS += --disable-assembler endif diff --git a/bsp/buildroot/package/network-manager/0002-accept-auto-mode-interfaces.patch b/bsp/buildroot/package/network-manager/0002-accept-auto-mode-interfaces.patch new file mode 100644 index 00000000..d7ef3488 --- /dev/null +++ b/bsp/buildroot/package/network-manager/0002-accept-auto-mode-interfaces.patch @@ -0,0 +1,26 @@ +From 0f6febc6fbeafde62e6e0a8c12f57204d94166fb Mon Sep 17 00:00:00 2001 +From: Francesco Giudici +Date: Fri, 11 Mar 2016 09:55:39 +0100 +Subject: wifi: hack for wext devices reporting IW_MODE_AUTO configuration + mode. + +Backport from upstream commit +https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=0f6febc6fbeafde62e6e0a8c12f57204d94166f. + +Signed-off-by: Ilya A. Volynets-Evenbakh + +diff --git a/src/platform/wifi/wifi-utils-wext.c b/src/platform/wifi/wifi-utils-wext.c +index 26f4ce4..af285b4 100644 +--- a/src/platform/wifi/wifi-utils-wext.c ++++ b/src/platform/wifi/wifi-utils-wext.c +@@ -118,6 +118,7 @@ wifi_wext_get_mode (WifiData *data) + case IW_MODE_MASTER: + return NM_802_11_MODE_AP; + case IW_MODE_INFRA: ++ case IW_MODE_AUTO: /* hack for WEXT devices reporting IW_MODE_AUTO */ + return NM_802_11_MODE_INFRA; + default: + break; +-- +cgit v0.10.2 + diff --git a/bsp/buildroot/package/network-manager/Config.in b/bsp/buildroot/package/network-manager/Config.in index 8b4607c7..c9dabfdd 100644 --- a/bsp/buildroot/package/network-manager/Config.in +++ b/bsp/buildroot/package/network-manager/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_NETWORK_MANAGER bool "networkmanager" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on BR2_USE_MMU # dbus depends on BR2_PACKAGE_HAS_UDEV # Tested with 3.2, but may even work with earlier versions @@ -46,12 +47,17 @@ config BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER config BR2_PACKAGE_NETWORK_MANAGER_PPPD bool "pppd support" + depends on !BR2_TOOLCHAIN_USES_MUSL # pppd select BR2_PACKAGE_PPPD help This option enables support for PPPD daemon + +comment "pppd support needs a glibc or uClibc toolchain" + depends on BR2_TOOLCHAIN_USES_MUSL + endif -comment "NetworkManager needs udev /dev management and a (e)glibc toolchain w/ headers >= 3.7" +comment "NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 3.7" depends on BR2_USE_MMU depends on !BR2_PACKAGE_HAS_UDEV || \ !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 || \ diff --git a/bsp/buildroot/package/network-manager/network-manager.hash b/bsp/buildroot/package/network-manager/network-manager.hash index c259b5a0..ab601bc1 100644 --- a/bsp/buildroot/package/network-manager/network-manager.hash +++ b/bsp/buildroot/package/network-manager/network-manager.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/1.0/NetworkManager-1.0.10.sha256sum -sha256 1bcfce8441dfd9f432a100d06b54f3831a2275cccc3b74b1b4c09a011e179fbc NetworkManager-1.0.10.tar.xz +# From http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/1.0/NetworkManager-1.0.12.sha256sum +sha256 3a470f8c60109b1acb5784ddc2423501706b5fe34c793a6faee87e591eb04a9e NetworkManager-1.0.12.tar.xz diff --git a/bsp/buildroot/package/network-manager/network-manager.mk b/bsp/buildroot/package/network-manager/network-manager.mk index b49f3b84..12b8f3c5 100644 --- a/bsp/buildroot/package/network-manager/network-manager.mk +++ b/bsp/buildroot/package/network-manager/network-manager.mk @@ -5,7 +5,7 @@ ################################################################################ NETWORK_MANAGER_VERSION_MAJOR = 1.0 -NETWORK_MANAGER_VERSION = $(NETWORK_MANAGER_VERSION_MAJOR).10 +NETWORK_MANAGER_VERSION = $(NETWORK_MANAGER_VERSION_MAJOR).12 NETWORK_MANAGER_SOURCE = NetworkManager-$(NETWORK_MANAGER_VERSION).tar.xz NETWORK_MANAGER_SITE = http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/$(NETWORK_MANAGER_VERSION_MAJOR) NETWORK_MANAGER_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/nfs-utils/Config.in b/bsp/buildroot/package/nfs-utils/Config.in index 12730927..bfaddd15 100644 --- a/bsp/buildroot/package/nfs-utils/Config.in +++ b/bsp/buildroot/package/nfs-utils/Config.in @@ -15,8 +15,6 @@ config BR2_PACKAGE_NFS_UTILS if BR2_PACKAGE_NFS_UTILS -menu "NFS utilities selection" - config BR2_PACKAGE_NFS_UTILS_RPCDEBUG bool "rpcdebug" help @@ -32,6 +30,4 @@ config BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD help NFS remote quota server -endmenu - endif diff --git a/bsp/buildroot/package/nfs-utils/S60nfs b/bsp/buildroot/package/nfs-utils/S60nfs index 5639b8f7..893b1e49 100755 --- a/bsp/buildroot/package/nfs-utils/S60nfs +++ b/bsp/buildroot/package/nfs-utils/S60nfs @@ -17,7 +17,7 @@ CFG_FILE=/etc/default/nfsd NR_THREADS=2 if [ -f "${CFG_FILE}" ]; then - . "${CFG_FILE}" + . "${CFG_FILE}" fi @@ -25,64 +25,64 @@ start() { # Start daemons. printf "Starting NFS statd: " rpc.statd + [ $? = 0 ] && echo "OK" || echo "FAIL" touch /var/lock/subsys/nfslock - echo "done" printf "Starting NFS services: " /usr/sbin/exportfs -r - echo "done" + [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Starting NFS daemon: " rpc.nfsd ${NR_THREADS} - echo "done" + [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Starting NFS mountd: " rpc.mountd - echo "done" + [ $? = 0 ] && echo "OK" || echo "FAIL" touch /var/lock/subsys/nfs } stop() { # Stop daemons. printf "Shutting down NFS mountd: " - killall -q rpc.mountd - echo "done" + killall -q rpc.mountd 2>/dev/null + [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Shutting down NFS daemon: " - kill -9 `pidof nfsd` 2>/dev/null - echo "done" + killall -q nfsd 2>/dev/null + [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Shutting down NFS services: " /usr/sbin/exportfs -au - rm -f /var/lock/subsys/nfs - killall -q rpc.statd - echo "done" + [ $? = 0 ] && echo "OK" || echo "FAIL" printf "Stopping NFS statd: " - killall -q rpc.statd - echo "done" + killall -q rpc.statd 2>/dev/null + [ $? = 0 ] && echo "OK" || echo "FAIL" + rm -f /var/lock/subsys/nfs + rm -f /var/run/rpc.statd.pid rm -f /var/lock/subsys/nfslock } # See how we were called. case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - stop - start - ;; - reload) - /usr/sbin/exportfs -r - touch /var/lock/subsys/nfs - ;; - *) - echo "Usage: nfs {start|stop|reload}" - exit 1 + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + /usr/sbin/exportfs -r + touch /var/lock/subsys/nfs + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 esac exit 0 diff --git a/bsp/buildroot/package/nftables/Config.in b/bsp/buildroot/package/nftables/Config.in index 9b20b905..d0a1b892 100644 --- a/bsp/buildroot/package/nftables/Config.in +++ b/bsp/buildroot/package/nftables/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_NFTABLES bool "nftables" depends on BR2_USE_WCHAR - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 select BR2_PACKAGE_GMP select BR2_PACKAGE_LIBMNL select BR2_PACKAGE_LIBNFTNL @@ -15,5 +15,5 @@ config BR2_PACKAGE_NFTABLES http://www.netfilter.org/projects/nftables/index.html -comment "nftables needs a toolchain w/ wchar, headers >= 3.4" - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 +comment "nftables needs a toolchain w/ wchar, headers >= 3.12" + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 diff --git a/bsp/buildroot/package/nftables/nftables.hash b/bsp/buildroot/package/nftables/nftables.hash index 04ecf7d7..987aae3f 100644 --- a/bsp/buildroot/package/nftables/nftables.hash +++ b/bsp/buildroot/package/nftables/nftables.hash @@ -1,2 +1,2 @@ -# From http://www.netfilter.org/projects/nftables/downloads.html#nftables-0.5 -sha1 34cfe1daa33d7fd7087dd63199f64854dfb54064 nftables-0.5.tar.bz2 +# From http://www.netfilter.org/projects/nftables/downloads.html#nftables-0.6 +sha1 c0f90a208e0ab5d43d3e638350a4fe58e6f4366f nftables-0.6.tar.bz2 diff --git a/bsp/buildroot/package/nftables/nftables.mk b/bsp/buildroot/package/nftables/nftables.mk index ccdbcd4b..10a1b427 100644 --- a/bsp/buildroot/package/nftables/nftables.mk +++ b/bsp/buildroot/package/nftables/nftables.mk @@ -4,7 +4,7 @@ # ################################################################################ -NFTABLES_VERSION = 0.5 +NFTABLES_VERSION = 0.6 NFTABLES_SOURCE = nftables-$(NFTABLES_VERSION).tar.bz2 NFTABLES_SITE = http://www.netfilter.org/projects/nftables/files NFTABLES_DEPENDENCIES = gmp libmnl libnftnl host-bison host-flex \ diff --git a/bsp/buildroot/package/nginx-naxsi/Config.in b/bsp/buildroot/package/nginx-naxsi/Config.in new file mode 100644 index 00000000..2f7c2da2 --- /dev/null +++ b/bsp/buildroot/package/nginx-naxsi/Config.in @@ -0,0 +1,26 @@ +config BR2_PACKAGE_NGINX_NAXSI + bool "nginx-naxsi" + help + NAXSI means Nginx Anti XSS & SQL Injection. + + Technically, it is a third party nginx module, available as + a package for many UNIX-like platforms. This module, by + default, reads a small subset of simple (and readable) rules + containing 99% of known patterns involved in website + vulnerabilities. For example, <, | or drop are not supposed + to be part of a URI. + + Being very simple, those patterns may match legitimate + queries, it is the Naxsi's administrator duty to add + specific rules that will whitelist legitimate + behaviours. The administrator can either add whitelists + manually by analyzing nginx's error log, or (recommended) + start the project with an intensive auto-learning phase that + will automatically generate whitelisting rules regarding a + website's behaviour. + + In short, Naxsi behaves like a DROP-by-default firewall, the + only task is to add required ACCEPT rules for the target + website to work properly. + + https://github.com/nbs-system/naxsi diff --git a/bsp/buildroot/package/nginx-naxsi/nginx-naxsi.hash b/bsp/buildroot/package/nginx-naxsi/nginx-naxsi.hash new file mode 100644 index 00000000..238993eb --- /dev/null +++ b/bsp/buildroot/package/nginx-naxsi/nginx-naxsi.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 9cc2c09405bc71f78ef26a8b6d70afcea3fccbe8125df70cb0cfc480133daba5 nginx-naxsi-0.54.tar.gz diff --git a/bsp/buildroot/package/nginx-naxsi/nginx-naxsi.mk b/bsp/buildroot/package/nginx-naxsi/nginx-naxsi.mk new file mode 100644 index 00000000..0e1f7144 --- /dev/null +++ b/bsp/buildroot/package/nginx-naxsi/nginx-naxsi.mk @@ -0,0 +1,12 @@ +################################################################################ +# +# nginx-naxsi +# +################################################################################ + +NGINX_NAXSI_VERSION = 0.54 +NGINX_NAXSI_SITE = $(call github,nbs-system,naxsi,$(NGINX_NAXSI_VERSION)) +NGINX_NAXSI_LICENSE = GPLv2+ with OpenSSL exception +NGINX_NAXSI_LICENSE_FILES = naxsi_src/naxsi_json.c + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/nginx-upload/Config.in b/bsp/buildroot/package/nginx-upload/Config.in new file mode 100644 index 00000000..6bc1c3db --- /dev/null +++ b/bsp/buildroot/package/nginx-upload/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_NGINX_UPLOAD + bool "nginx-upload" + depends on BR2_PACKAGE_NGINX_HTTP + select BR2_PACKAGE_OPENSSL + help + A module for nginx web server for handling file uploads + using multipart/form-data encoding (RFC 1867). + + https://github.com/vkholodkov/nginx-upload-module diff --git a/bsp/buildroot/package/nginx-upload/nginx-upload.hash b/bsp/buildroot/package/nginx-upload/nginx-upload.hash new file mode 100644 index 00000000..4fc43473 --- /dev/null +++ b/bsp/buildroot/package/nginx-upload/nginx-upload.hash @@ -0,0 +1,2 @@ +#Locally Computed: +sha256 8cd1d9d968ffba807de2e546ea9cad5e1ae294ec60b4927b2d60a98bdb4a1144 nginx-upload-aba1e3f34c754551f4f49e572bc86863d535609d.tar.gz diff --git a/bsp/buildroot/package/nginx-upload/nginx-upload.mk b/bsp/buildroot/package/nginx-upload/nginx-upload.mk new file mode 100644 index 00000000..6f94d358 --- /dev/null +++ b/bsp/buildroot/package/nginx-upload/nginx-upload.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# nginx-upload +# +################################################################################ + +NGINX_UPLOAD_VERSION = aba1e3f34c754551f4f49e572bc86863d535609d +NGINX_UPLOAD_SITE = $(call github,vkholodkov,nginx-upload-module,$(NGINX_UPLOAD_VERSION)) +NGINX_UPLOAD_LICENSE = BSD-3c +NGINX_UPLOAD_LICENSE_FILES = LICENCE +NGINX_UPLOAD_DEPENDENCIES = openssl + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch b/bsp/buildroot/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch index 496459ea..603f7292 100644 --- a/bsp/buildroot/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch +++ b/bsp/buildroot/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch @@ -1,7 +1,7 @@ From fe05ccf80afe5de33d4f9c5e5545390c450bcd2d Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Thu, 24 Apr 2014 23:27:32 +0200 -Subject: [PATCH 1/5] auto/type/sizeof: rework autotest to be cross-compilation +Subject: [PATCH] auto/type/sizeof: rework autotest to be cross-compilation friendly Rework the sizeof test to do the checks at compile time instead of at @@ -13,6 +13,8 @@ Signed-off-by: Samuel Martin Refresh for 1.8.0. Signed-off-by: Danomi Manchego +[martin@barkynet.com: Updated for 1.10.0] +Signed-off-by: Martin Bark --- auto/types/sizeof | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) @@ -30,7 +32,7 @@ index a5f66bb..c6f31ec 100644 #include #include -@@ -25,29 +25,43 @@ $NGX_INCLUDE_UNISTD_H +@@ -25,22 +25,40 @@ $NGX_INCLUDE_UNISTD_H $NGX_INCLUDE_INTTYPES_H $NGX_INCLUDE_AUTO_CONFIG_H @@ -80,13 +82,6 @@ index a5f66bb..c6f31ec 100644 echo " $ngx_size bytes" fi -- --rm -rf $NGX_AUTOTEST* -- -- - case $ngx_size in - 4) - ngx_max_value=2147483647 -- 1.9.1 diff --git a/bsp/buildroot/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch b/bsp/buildroot/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch index 7eb4a5da..13bef5ff 100644 --- a/bsp/buildroot/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch +++ b/bsp/buildroot/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch @@ -1,7 +1,7 @@ From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 4 May 2014 00:40:49 +0200 -Subject: [PATCH 2/5] auto/feature: add mechanism allowing to force feature run +Subject: [PATCH] auto/feature: add mechanism allowing to force feature run test result Whenever a feature needs to run a test, the ngx_feature_run_force_result diff --git a/bsp/buildroot/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch b/bsp/buildroot/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch index 8320c0f6..ed67a679 100644 --- a/bsp/buildroot/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch +++ b/bsp/buildroot/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch @@ -1,7 +1,7 @@ From 71939b727a8fa9f722934700948a5b68960f6183 Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Thu, 29 May 2014 18:52:10 +0200 -Subject: [PATCH 3/5] auto/*: set ngx_feature_run_force_result for each feature +Subject: [PATCH] auto/*: set ngx_feature_run_force_result for each feature requiring run test Each feature requiring a run test has a matching preset variable (called diff --git a/bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch b/bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch deleted file mode 100644 index a125a786..00000000 --- a/bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5d281572d0afbf69d934737e1ee4c553670a46cc Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Thu, 29 May 2014 19:22:27 +0200 -Subject: [PATCH 4/5] auto/lib/libxslt/conf: allow to override ngx_feature_path - and ngx_feature_libs - -Because libxml2 headers are not in /usr/include by default, hardcoding the -include directory to /usr/include/libxml2 does not play well when -cross-compiling, or if libxml2 has been installed somewhere else. - -This patch allows to define/override the libxslt include directory, and -the libxslt libs flags. - -Being able to override the include location is especially useful when -cross-compiling to prevent gcc from complaining about unsafe include -location for cross-compilation (-Wpoision-system-directories). - -So far, this warning is only triggered by libxslt. - -Signed-off-by: Samuel Martin ---- - auto/lib/libxslt/conf | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf -index bc19d83..386f1a0 100644 ---- a/auto/lib/libxslt/conf -+++ b/auto/lib/libxslt/conf -@@ -12,8 +12,8 @@ - #include - #include - #include " -- ngx_feature_path="/usr/include/libxml2" -- ngx_feature_libs="-lxml2 -lxslt" -+ ngx_feature_path="${ngx_feature_path_libxslt:=/usr/include/libxml2}" -+ ngx_feature_libs="${ngx_feature_libs_libxslt:=-lxml2 -lxslt}" - ngx_feature_test="xmlParserCtxtPtr ctxt = NULL; - xsltStylesheetPtr sheet = NULL; - xmlDocPtr doc; --- -1.9.2 - diff --git a/bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch b/bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch new file mode 100644 index 00000000..b315909c --- /dev/null +++ b/bsp/buildroot/package/nginx/0004-auto-lib-libxslt-conf-use-pkg-config.patch @@ -0,0 +1,31 @@ +From 211b9f19a3a62826fadef55d2f89d6f66fbf4aa6 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Thu, 29 May 2014 19:22:27 +0200 +Subject: [PATCH] auto/lib/libxslt/conf: use pkg-config + +Change to using pkg-config to find the path to libxslt and its +dependencies. + +Signed-off-by: Martin Bark +--- + auto/lib/libxslt/conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf +index 3a0f37b..3c2a60e 100644 +--- a/auto/lib/libxslt/conf ++++ b/auto/lib/libxslt/conf +@@ -12,8 +12,8 @@ + #include + #include + #include " +- ngx_feature_path="/usr/include/libxml2" +- ngx_feature_libs="-lxml2 -lxslt" ++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I libxslt|sed 's/-I//g')" ++ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs libxslt)" + ngx_feature_test="xmlParserCtxtPtr ctxt = NULL; + xsltStylesheetPtr sheet = NULL; + xmlDocPtr doc; +-- +2.8.2 + diff --git a/bsp/buildroot/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch b/bsp/buildroot/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch index 6249add2..2242d133 100644 --- a/bsp/buildroot/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch +++ b/bsp/buildroot/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch @@ -1,7 +1,7 @@ From 08617a8d29ee22831175697555558fec8f52772c Mon Sep 17 00:00:00 2001 From: Samuel Martin Date: Sun, 1 Jun 2014 16:05:04 +0200 -Subject: [PATCH 5/5] auto/unix: make sys_nerr guessing cross-friendly +Subject: [PATCH] auto/unix: make sys_nerr guessing cross-friendly This patch replaces the default sys_nerr runtest with a test done at buildtime. diff --git a/bsp/buildroot/package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch b/bsp/buildroot/package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch new file mode 100644 index 00000000..b826a3c8 --- /dev/null +++ b/bsp/buildroot/package/nginx/0006-auto-lib-openssl-conf-use-pkg-config.patch @@ -0,0 +1,31 @@ +From 756556d127da291cad8a2c007a89124a692aef7f Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Fri, 6 May 2016 14:48:31 +0100 +Subject: [PATCH] auto/lib/openssl/conf: use pkg-config + +Change to using pkg-config to find the path to openssl and its +dependencies. + +Signed-off-by: Martin Bark +--- + auto/lib/openssl/conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf +index 39d9602..995c6f3 100644 +--- a/auto/lib/openssl/conf ++++ b/auto/lib/openssl/conf +@@ -50,8 +50,8 @@ else + ngx_feature_name="NGX_OPENSSL" + ngx_feature_run=no + ngx_feature_incs="#include " +- ngx_feature_path= +- ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL" ++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl|sed 's/-I//g')" ++ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl)" + ngx_feature_test="SSL_CTX_set_options(NULL, 0)" + . auto/feature + +-- +2.8.2 + diff --git a/bsp/buildroot/package/nginx/0007-auto-lib-libgd-conf-use-pkg-config.patch b/bsp/buildroot/package/nginx/0007-auto-lib-libgd-conf-use-pkg-config.patch new file mode 100644 index 00000000..34e7981c --- /dev/null +++ b/bsp/buildroot/package/nginx/0007-auto-lib-libgd-conf-use-pkg-config.patch @@ -0,0 +1,31 @@ +From fd9885fe5fef5826034547ca6be7299863f99769 Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Fri, 6 May 2016 14:48:49 +0100 +Subject: [PATCH] auto/lib/libgd/conf: use pkg-config + +Change to using pkg-config to find the path to libgd and its +dependencies. + +Signed-off-by: Martin Bark +--- + auto/lib/libgd/conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/auto/lib/libgd/conf b/auto/lib/libgd/conf +index 6e4e91c..1c536a2 100644 +--- a/auto/lib/libgd/conf ++++ b/auto/lib/libgd/conf +@@ -7,8 +7,8 @@ + ngx_feature_name= + ngx_feature_run=no + ngx_feature_incs="#include " +- ngx_feature_path= +- ngx_feature_libs="-lgd" ++ ngx_feature_path="$(${GDLIB_CONFIG:=gdlib-config} --includedir)" ++ ngx_feature_libs="$(${GDLIB_CONFIG:=gdlib-config} --libs)" + ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);" + . auto/feature + +-- +2.8.2 + diff --git a/bsp/buildroot/package/nginx/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch b/bsp/buildroot/package/nginx/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch new file mode 100644 index 00000000..c10fcd11 --- /dev/null +++ b/bsp/buildroot/package/nginx/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch @@ -0,0 +1,33 @@ +From 8dc9dffc1f99ac951865f3135dfb5061a08d1f85 Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Fri, 6 May 2016 16:29:17 +0100 +Subject: [PATCH] src/os/unix/ngx_linux_config.h: only include dlfcn.h if + available + +Signed-off-by: Martin Bark +--- + src/os/unix/ngx_linux_config.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h +index 2f6129d..4244086 100644 +--- a/src/os/unix/ngx_linux_config.h ++++ b/src/os/unix/ngx_linux_config.h +@@ -55,10 +55,12 @@ + #include + #include /* uname() */ + +-#include ++#include + + +-#include ++#if (NGX_HAVE_DLOPEN) ++#include ++#endif + + + #if (NGX_HAVE_POSIX_SEM) +-- +2.8.2 + diff --git a/bsp/buildroot/package/nginx/Config.in b/bsp/buildroot/package/nginx/Config.in index be445f4f..e6f2d96d 100644 --- a/bsp/buildroot/package/nginx/Config.in +++ b/bsp/buildroot/package/nginx/Config.in @@ -1,6 +1,7 @@ menuconfig BR2_PACKAGE_NGINX bool "nginx" depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_LIBATOMIC_OPS if BR2_sparc_v8 || BR2_sparc_leon3 help nginx is an HTTP and reverse proxy server, as well as a mail proxy server. @@ -18,6 +19,13 @@ config BR2_PACKAGE_NGINX_FILE_AIO depends on !BR2_aarch64 depends on !BR2_arc +config BR2_PACKAGE_NGINX_THREADS + bool "thread pool support" + depends on BR2_TOOLCHAIN_HAS_THREADS + +comment "thread pool support needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS + config BR2_PACKAGE_NGINX_HTTP bool "http server" default y @@ -36,8 +44,8 @@ config BR2_PACKAGE_NGINX_HTTP_SSL_MODULE help Enable ngx_http_ssl_module -config BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE - bool "ngx_http_spdy_module" +config BR2_PACKAGE_NGINX_HTTP_V2_MODULE + bool "ngx_http_v2_module" select BR2_PACKAGE_ZLIB help Enable ngx_http_spdy_module @@ -304,6 +312,57 @@ config BR2_PACKAGE_NGINX_MAIL_SMTP_MODULE endif #BR2_PACKAGE_NGINX_MAIL +config BR2_PACKAGE_NGINX_STREAM + bool "stream proxy modules" + +if BR2_PACKAGE_NGINX_STREAM + +config BR2_PACKAGE_NGINX_STREAM_SSL_MODULE + bool "ngx_stream_ssl_module" + select BR2_PACKAGE_OPENSSL + help + Enable ngx_stream_ssl_module + +config BR2_PACKAGE_NGINX_STREAM_LIMIT_CONN_MODULE + bool "ngx_stream_limit_conn_module" + default y + help + Enable ngx_stream_limit_conn_module + +config BR2_PACKAGE_NGINX_STREAM_ACCESS_MODULE + bool "ngx_stream_access_module" + default y + help + Enable ngx_stream_access_module + +config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_HASH_MODULE + bool "ngx_stream_upstream_hash_module" + default y + help + Enable ngx_stream_upstream_hash_module + +config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_LEAST_CONN_MODULE + bool "ngx_stream_upstream_least_conn_module" + default y + help + Enable ngx_stream_upstream_least_conn_module + +config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_ZONE_MODULE + bool "ngx_stream_upstream_zone_module" + default y + help + Enable ngx_stream_upstream_zone_module + +endif #BR2_PACKAGE_NGINX_STREAM + +config BR2_PACKAGE_NGINX_DEBUG + bool "debug logging" + help + Enable debug logging. The debug level should be set with + the error_log directive. For example + + error_log /var/log/nginx/error.log debug; + comment "misc. modules" config BR2_PACKAGE_NGINX_SELECT_MODULE diff --git a/bsp/buildroot/package/nginx/nginx.hash b/bsp/buildroot/package/nginx/nginx.hash index fe4d6b2f..c4b0f892 100644 --- a/bsp/buildroot/package/nginx/nginx.hash +++ b/bsp/buildroot/package/nginx/nginx.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 8f4b3c630966c044ec72715754334d1fdf741caa1d5795fb4646c27d09f797b7 nginx-1.8.1.tar.gz +sha256 1fd35846566485e03c0e318989561c135c598323ff349c503a6c14826487a801 nginx-1.10.1.tar.gz diff --git a/bsp/buildroot/package/nginx/nginx.mk b/bsp/buildroot/package/nginx/nginx.mk index 7348e485..d57f3d00 100644 --- a/bsp/buildroot/package/nginx/nginx.mk +++ b/bsp/buildroot/package/nginx/nginx.mk @@ -4,16 +4,16 @@ # ################################################################################ -NGINX_VERSION = 1.8.1 +NGINX_VERSION = 1.10.1 NGINX_SITE = http://nginx.org/download NGINX_LICENSE = BSD-2c NGINX_LICENSE_FILES = LICENSE +NGINX_DEPENDENCIES = host-pkgconf NGINX_CONF_OPTS = \ --crossbuild=Linux::$(BR2_ARCH) \ --with-cc="$(TARGET_CC)" \ --with-cpp="$(TARGET_CC)" \ - --with-cc-opt="$(TARGET_CFLAGS)" \ --with-ld-opt="$(TARGET_LDFLAGS)" \ --with-ipv6 @@ -35,7 +35,6 @@ NGINX_CONF_ENV += \ ngx_force_c99_have_variadic_macros=yes \ ngx_force_gcc_have_variadic_macros=yes \ ngx_force_gcc_have_atomic=yes \ - ngx_force_have_libatomic=no \ ngx_force_have_epoll=yes \ ngx_force_have_sendfile=yes \ ngx_force_have_sendfile64=yes \ @@ -64,7 +63,19 @@ NGINX_CONF_OPTS += \ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi NGINX_CONF_OPTS += \ - $(if $(BR2_PACKAGE_NGINX_FILE_AIO),--with-file-aio) + $(if $(BR2_PACKAGE_NGINX_FILE_AIO),--with-file-aio) \ + $(if $(BR2_PACKAGE_NGINX_THREADS),--with-threads) + +ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y) +NGINX_DEPENDENCIES += libatomic_ops +NGINX_CONF_OPTS += --with-libatomic +NGINX_CONF_ENV += ngx_force_have_libatomic=yes +ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) +NGINX_CFLAGS += "-DAO_NO_SPARC_V9" +endif +else +NGINX_CONF_ENV += ngx_force_have_libatomic=no +endif ifeq ($(BR2_PACKAGE_PCRE),y) NGINX_DEPENDENCIES += pcre @@ -104,9 +115,9 @@ else NGINX_CONF_OPTS += --without-http-cache endif -ifeq ($(BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE),y) +ifeq ($(BR2_PACKAGE_NGINX_HTTP_V2_MODULE),y) NGINX_DEPENDENCIES += zlib -NGINX_CONF_OPTS += --with-http_spdy_module +NGINX_CONF_OPTS += --with-http_v2_module endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_SSL_MODULE),y) @@ -117,8 +128,6 @@ endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_XSLT_MODULE),y) NGINX_DEPENDENCIES += libxml2 libxslt NGINX_CONF_OPTS += --with-http_xslt_module -NGINX_CONF_ENV += \ - ngx_feature_path_libxslt=$(STAGING_DIR)/usr/include/libxml2 endif ifeq ($(BR2_PACKAGE_NGINX_HTTP_IMAGE_FILTER_MODULE),y) @@ -147,6 +156,11 @@ else NGINX_CONF_OPTS += --without-http_gzip_module endif +ifeq ($(BR2_PACKAGE_NGINX_NAXSI),y) +NGINX_DEPENDENCIES += nginx-naxsi +NGINX_CONF_OPTS += --add-module=$(NGINX_NAXSI_DIR)/naxsi_src +endif + ifeq ($(BR2_PACKAGE_NGINX_HTTP_REWRITE_MODULE),y) NGINX_DEPENDENCIES += pcre else @@ -193,6 +207,7 @@ endif # BR2_PACKAGE_NGINX_HTTP # mail modules ifeq ($(BR2_PACKAGE_NGINX_MAIL),y) +NGINX_CONF_OPTS += --with-mail ifeq ($(BR2_PACKAGE_NGINX_MAIL_SSL_MODULE),y) NGINX_DEPENDENCIES += openssl @@ -206,6 +221,33 @@ NGINX_CONF_OPTS += \ endif # BR2_PACKAGE_NGINX_MAIL +# stream modules +ifeq ($(BR2_PACKAGE_NGINX_STREAM),y) +NGINX_CONF_OPTS += --with-stream + +ifeq ($(BR2_PACKAGE_NGINX_STREAM_SSL_MODULE),y) +NGINX_DEPENDENCIES += openssl +NGINX_CONF_OPTS += --with-stream_ssl_module +endif + +NGINX_CONF_OPTS += \ + $(if $(BR2_PACKAGE_NGINX_STREAM_LIMIT_CONN_MODULE),,--without-stream_limit_conn_module) \ + $(if $(BR2_PACKAGE_NGINX_STREAM_ACCESS_MODULE),,--without-stream_access_module) \ + $(if $(BR2_PACKAGE_NGINX_STREAM_UPSTREAM_HASH_MODULE),,--without-stream_upstream_hash_module) \ + $(if $(BR2_PACKAGE_NGINX_STREAM_UPSTREAM_LEAST_CONN_MODULE),,--without-stream_upstream_least_conn_module) \ + $(if $(BR2_PACKAGE_NGINX_STREAM_UPSTREAM_ZONE_MODULE),,--without-stream_upstream_zone_module) + +endif # BR2_PACKAGE_NGINX_STREAM + +# external modules +ifeq ($(BR2_PACKAGE_NGINX_UPLOAD),y) +NGINX_CONF_OPTS += $(addprefix --add-module=,$(NGINX_UPLOAD_DIR)) +NGINX_DEPENDENCIES += nginx-upload +endif + +# Debug logging +NGINX_CONF_OPTS += $(if $(BR2_PACKAGE_NGINX_DEBUG),--with-debug) + define NGINX_DISABLE_WERROR $(SED) 's/-Werror//g' -i $(@D)/auto/cc/* endef @@ -213,7 +255,11 @@ endef NGINX_PRE_CONFIGURE_HOOKS += NGINX_DISABLE_WERROR define NGINX_CONFIGURE_CMDS - cd $(@D) ; $(NGINX_CONF_ENV) ./configure $(NGINX_CONF_OPTS) + cd $(@D) ; $(NGINX_CONF_ENV) \ + PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ + GDLIB_CONFIG=$(STAGING_DIR)/usr/bin/gdlib-config \ + ./configure $(NGINX_CONF_OPTS) \ + --with-cc-opt="$(TARGET_CFLAGS) $(NGINX_CFLAGS)" endef define NGINX_BUILD_CMDS diff --git a/bsp/buildroot/package/nginx/nginx.service b/bsp/buildroot/package/nginx/nginx.service index 619755fe..320df9a8 100644 --- a/bsp/buildroot/package/nginx/nginx.service +++ b/bsp/buildroot/package/nginx/nginx.service @@ -5,7 +5,8 @@ After=syslog.target network.target [Service] Type=forking PIDFile=/var/run/nginx.pid -ExecStartPre=/usr/bin/mkdir -p /var/log/nginx /var/tmp/nginx; /usr/sbin/nginx -t -q -g 'pid /var/run/nginx.pid; daemon on; master_process on;' +ExecStartPre=/usr/bin/mkdir -p /var/log/nginx /var/tmp/nginx +ExecStartPre=/usr/sbin/nginx -t -q -g 'pid /var/run/nginx.pid; daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'pid /var/run/nginx.pid; daemon on; master_process on;' ExecReload=/usr/sbin/nginx -g 'pid /var/run/nginx.pid; daemon on; master_process on;' -s reload ExecStop=/usr/sbin/nginx -g 'pid /var/run/nginx.pid;' -s quit diff --git a/bsp/buildroot/package/ninja/ninja.hash b/bsp/buildroot/package/ninja/ninja.hash new file mode 100644 index 00000000..47ec8229 --- /dev/null +++ b/bsp/buildroot/package/ninja/ninja.hash @@ -0,0 +1,2 @@ +# Locally generated +sha256 51581de53cf4705b89eb6b14a85baa73288ad08bff256e7d30d529155813be19 ninja-v1.7.1.tar.gz diff --git a/bsp/buildroot/package/ninja/ninja.mk b/bsp/buildroot/package/ninja/ninja.mk new file mode 100644 index 00000000..3cfe4faf --- /dev/null +++ b/bsp/buildroot/package/ninja/ninja.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# ninja +# +################################################################################ + +NINJA_VERSION = v1.7.1 +NINJA_SITE = $(call github,ninja-build,ninja,$(NINJA_VERSION)) +NINJA_LICENSE = Apache-2.0 +NINJA_LICENSE_FILES = COPYING + +HOST_NINJA_DEPENDENCIES = $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python) + +define HOST_NINJA_BUILD_CMDS + (cd $(@D); ./configure.py --bootstrap) +endef + +define HOST_NINJA_INSTALL_CMDS + $(INSTALL) -m 0755 -D $(@D)/ninja $(HOST_DIR)/usr/bin/ninja +endef + +$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/nload/Config.in b/bsp/buildroot/package/nload/Config.in new file mode 100644 index 00000000..68ddbe6c --- /dev/null +++ b/bsp/buildroot/package/nload/Config.in @@ -0,0 +1,16 @@ +comment "nload needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP + +config BR2_PACKAGE_NLOAD + bool "nload" + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_NCURSES_TARGET_FORM + help + nload is a console application which monitors network traffic + and bandwidth usage in real time. It visualizes the in- and + outgoing traffic using two graphs and provides additional info + like total amount of transfered data and min/max network + usage. + + http://www.roland-riegel.de/nload/ diff --git a/bsp/buildroot/package/nload/nload.hash b/bsp/buildroot/package/nload/nload.hash new file mode 100644 index 00000000..4a8a09d3 --- /dev/null +++ b/bsp/buildroot/package/nload/nload.hash @@ -0,0 +1,3 @@ +# From https://sourceforge.net/projects/nload/files/nload/0.7.4/ +md5 3c733c528f244ca5a4f76bf185729c39 nload-0.7.4.tar.gz +sha1 bb0a168c93c588ad4fd5e3a653b3620b79ada1e8 nload-0.7.4.tar.gz diff --git a/bsp/buildroot/package/nload/nload.mk b/bsp/buildroot/package/nload/nload.mk new file mode 100644 index 00000000..1ead61ca --- /dev/null +++ b/bsp/buildroot/package/nload/nload.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# nload +# +################################################################################ + +NLOAD_VERSION = 0.7.4 +NLOAD_SITE = http://www.roland-riegel.de/nload +NLOAD_DEPENDENCIES = ncurses +NLOAD_LICENSE = GPLv2+ +NLOAD_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/nmap/nmap.hash b/bsp/buildroot/package/nmap/nmap.hash index 3e5a369c..448a19b3 100644 --- a/bsp/buildroot/package/nmap/nmap.hash +++ b/bsp/buildroot/package/nmap/nmap.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 cf1fcd2643ba2ef52f47acb3c18e52fa12a4ae4b722804da0e54560704627705 nmap-7.01.tar.bz2 +# From https://nmap.org/dist/sigs/nmap-7.12.tar.bz2.digest.txt +sha256 63df082a87c95a189865d37304357405160fc6333addcf5b84204c95e0539b04 nmap-7.12.tar.bz2 diff --git a/bsp/buildroot/package/nmap/nmap.mk b/bsp/buildroot/package/nmap/nmap.mk index 184555b0..46c62327 100644 --- a/bsp/buildroot/package/nmap/nmap.mk +++ b/bsp/buildroot/package/nmap/nmap.mk @@ -4,7 +4,7 @@ # ################################################################################ -NMAP_VERSION = 7.01 +NMAP_VERSION = 7.12 NMAP_SITE = http://nmap.org/dist NMAP_SOURCE = nmap-$(NMAP_VERSION).tar.bz2 NMAP_DEPENDENCIES = libpcap pcre diff --git a/bsp/buildroot/package/nodejs/0.10.42/0003-use-python-variable.patch b/bsp/buildroot/package/nodejs/0.10.42/0003-use-python-variable.patch deleted file mode 100644 index f231f4c2..00000000 --- a/bsp/buildroot/package/nodejs/0.10.42/0003-use-python-variable.patch +++ /dev/null @@ -1,43 +0,0 @@ -Use a python variable instead of hardcoding Python - -The nodejs build system uses python in a number of locations. However, -there are some locations where it hardcodes 'python' as the Python -interpreter. However, this causes problems when we need to use python2 -instead of just python. - -This patch fixes that by using the python variable already in place in -the nodejs build system. - -Signed-off-by: Thomas Petazzoni - -Index: b/deps/v8/tools/gyp/v8.gyp -=================================================================== ---- a/deps/v8/tools/gyp/v8.gyp -+++ b/deps/v8/tools/gyp/v8.gyp -@@ -792,7 +792,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/js2c.py', - '<@(_outputs)', - 'CORE', -@@ -810,7 +810,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/js2c.py', - '<@(_outputs)', - 'EXPERIMENTAL', -@@ -840,7 +840,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/gen-postmortem-metadata.py', - '<@(_outputs)', - '<@(heapobject_files)' diff --git a/bsp/buildroot/package/nodejs/0.10.42/0001-remove-python-bz2-dependency.patch b/bsp/buildroot/package/nodejs/0.10.45/0001-remove-python-bz2-dependency.patch similarity index 100% rename from bsp/buildroot/package/nodejs/0.10.42/0001-remove-python-bz2-dependency.patch rename to bsp/buildroot/package/nodejs/0.10.45/0001-remove-python-bz2-dependency.patch diff --git a/bsp/buildroot/package/nodejs/0.10.42/0002-gyp-force-link-command-to-use-CXX.patch b/bsp/buildroot/package/nodejs/0.10.45/0002-gyp-force-link-command-to-use-CXX.patch similarity index 100% rename from bsp/buildroot/package/nodejs/0.10.42/0002-gyp-force-link-command-to-use-CXX.patch rename to bsp/buildroot/package/nodejs/0.10.45/0002-gyp-force-link-command-to-use-CXX.patch diff --git a/bsp/buildroot/package/nodejs/0.10.42/0004-fix-musl-USE-MISC-build-issue.patch b/bsp/buildroot/package/nodejs/0.10.45/0003-fix-musl-USE-MISC-build-issue.patch similarity index 100% rename from bsp/buildroot/package/nodejs/0.10.42/0004-fix-musl-USE-MISC-build-issue.patch rename to bsp/buildroot/package/nodejs/0.10.45/0003-fix-musl-USE-MISC-build-issue.patch diff --git a/bsp/buildroot/package/nodejs/0.10.42/0005-Fix-support-for-uClibc-ng.patch b/bsp/buildroot/package/nodejs/0.10.45/0004-Fix-support-for-uClibc-ng.patch similarity index 100% rename from bsp/buildroot/package/nodejs/0.10.42/0005-Fix-support-for-uClibc-ng.patch rename to bsp/buildroot/package/nodejs/0.10.45/0004-Fix-support-for-uClibc-ng.patch diff --git a/bsp/buildroot/package/nodejs/5.5.0/0001-Remove-dependency-on-Python-bz2-module.patch b/bsp/buildroot/package/nodejs/5.5.0/0001-Remove-dependency-on-Python-bz2-module.patch deleted file mode 100644 index 65bceef9..00000000 --- a/bsp/buildroot/package/nodejs/5.5.0/0001-Remove-dependency-on-Python-bz2-module.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001 -From: Martin Bark -Date: Tue, 30 Jun 2015 09:43:11 +0100 -Subject: [PATCH 1/4] Remove dependency on Python bz2 module - -Do not import the bz2 module, it is not used. - -Signed-off-by: Thomas Petazzoni -[Martin: adapt to 0.12.5] -Signed-off-by: Martin Bark -[yann.morin.1998@free.fr: adapt to 4.1.2] -Signed-off-by: "Yann E. MORIN" ---- - deps/v8/tools/js2c.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py -index 77485f6..371caf5 100755 ---- a/deps/v8/tools/js2c.py -+++ b/deps/v8/tools/js2c.py -@@ -34,7 +34,6 @@ - import os, re, sys, string - import optparse - import jsmin --import bz2 - import textwrap - - --- -2.1.4 - diff --git a/bsp/buildroot/package/nodejs/5.5.0/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch b/bsp/buildroot/package/nodejs/5.5.0/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch deleted file mode 100644 index 4d8d7155..00000000 --- a/bsp/buildroot/package/nodejs/5.5.0/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 4a48c65921b0f05b621aef5b902b6aa54811ad7a Mon Sep 17 00:00:00 2001 -From: Martin Bark -Date: Tue, 30 Jun 2015 09:44:33 +0100 -Subject: [PATCH 3/4] Use a python variable instead of hardcoding Python - -The nodejs build system uses python in a number of locations. However, -there are some locations where it hardcodes 'python' as the Python -interpreter. However, this causes problems when we need to use python2 -instead of just python. - -This patch fixes that by using the python variable already in place in -the nodejs build system. - -Signed-off-by: Thomas Petazzoni -[Martin: adapt to 0.12.5] -Signed-off-by: Martin Bark -[yann.morin.1998@free.fr: adapt to 4.1.2] -Signed-off-by: "Yann E. MORIN" -[Martin: adapt to 5.5.0] -Signed-off-by: Martin Bark ---- - deps/v8/tools/gyp/v8.gyp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp -index 1e5705d..e2e5dfe 100644 ---- a/deps/v8/tools/gyp/v8.gyp -+++ b/deps/v8/tools/gyp/v8.gyp -@@ -1723,14 +1723,14 @@ - '<(PRODUCT_DIR)/natives_blob_host.bin', - ], - 'action': [ -- 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' -+ '<(python)', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' - ], - }, { - 'outputs': [ - '<(PRODUCT_DIR)/natives_blob.bin', - ], - 'action': [ -- 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' -+ '<(python)', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' - ], - }], - ], -@@ -1739,7 +1739,7 @@ - '<(PRODUCT_DIR)/natives_blob.bin', - ], - 'action': [ -- 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' -+ '<(python)', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' - ], - }], - ], -@@ -1847,7 +1847,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', - 'CORE', -@@ -1873,7 +1873,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', - 'EXPERIMENTAL', -@@ -1898,7 +1898,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/code-stub-libraries.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/code-stub-libraries.cc', - 'CODE_STUB', -@@ -1923,7 +1923,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', - 'EXTRAS', -@@ -1960,7 +1960,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', - ], - 'action': [ -- 'python', -+ '<(python)', - '../../tools/gen-postmortem-metadata.py', - '<@(_outputs)', - '<@(heapobject_files)' -diff --git a/deps/v8/build/toolchain.gypi b/deps/v8/build/toolchain.gypi -index c703155..06c0b2b 100644 ---- a/deps/v8/build/toolchain.gypi -+++ b/deps/v8/build/toolchain.gypi -@@ -38,7 +38,7 @@ - 'ubsan%': 0, - 'ubsan_vptr%': 0, - 'v8_target_arch%': '<(target_arch)', -- 'v8_host_byteorder%': ' -Date: Tue, 8 Dec 2015 11:41:08 +0000 -Subject: [PATCH] Fix va_list not declared -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When compiling with uClibc-ng the following error is seen. - -In file included from ../deps/v8/src/log-utils.cc:5:0: -../deps/v8/src/log-utils.h:64:39: error: ‘va_list’ has not been declared - void AppendVA(const char* format, va_list args); - -This patch fixes the issue by adding the missing #include . Note -that this fix has already be included upstream, see -https://github.com/nodejs/node/blob/8a43a3d/deps/v8/src/log-utils.h - -Signed-off-by: Martin Bark ---- - deps/v8/src/log-utils.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/deps/v8/src/log-utils.h b/deps/v8/src/log-utils.h -index 87dab52..6714307 100644 ---- a/deps/v8/src/log-utils.h -+++ b/deps/v8/src/log-utils.h -@@ -5,6 +5,8 @@ - #ifndef V8_LOG_UTILS_H_ - #define V8_LOG_UTILS_H_ - -+#include -+ - #include "src/allocation.h" - #include "src/base/platform/mutex.h" - #include "src/flags.h" --- -2.5.0 - diff --git a/bsp/buildroot/package/nodejs/5.5.0/0005-Fix-support-for-uClibc-ng.patch b/bsp/buildroot/package/nodejs/5.5.0/0005-Fix-support-for-uClibc-ng.patch deleted file mode 100644 index 59b9d504..00000000 --- a/bsp/buildroot/package/nodejs/5.5.0/0005-Fix-support-for-uClibc-ng.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1cc08f6ceacbb0e5ba1f4638ca3a97ac002d7792 Mon Sep 17 00:00:00 2001 -From: "Bark, Martin" -Date: Mon, 14 Dec 2015 13:26:10 +0000 -Subject: [PATCH 2/2] Fix support for uClibc-ng - -uClibc-ng is currently at v1.0.9. The patch corrects the uClibc -version test so that HAVE_IFADDRS_H is defined for uClibc versions -after v0.9.32. - -Submitted upstream to libuv and accepted, see -https://github.com/libuv/libuv/pull/653 and -https://github.com/libuv/libuv/commit/c861972 - -Signed-off-by: Bark, Martin ---- - deps/uv/src/unix/linux-core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c -index e6e6828..6cbbb71 100644 ---- a/deps/uv/src/unix/linux-core.c -+++ b/deps/uv/src/unix/linux-core.c -@@ -39,7 +39,7 @@ - #define HAVE_IFADDRS_H 1 - - #ifdef __UCLIBC__ --# if __UCLIBC_MAJOR__ < 0 || __UCLIBC_MINOR__ < 9 || __UCLIBC_SUBLEVEL__ < 32 -+# if __UCLIBC_MAJOR__ < 0 && __UCLIBC_MINOR__ < 9 && __UCLIBC_SUBLEVEL__ < 32 - # undef HAVE_IFADDRS_H - # endif - #endif --- -2.6.2 diff --git a/bsp/buildroot/package/nodejs/5.5.0/0002-gyp-force-link-command-to-use-CXX.patch b/bsp/buildroot/package/nodejs/6.2.1/0001-gyp-force-link-command-to-use-CXX.patch similarity index 100% rename from bsp/buildroot/package/nodejs/5.5.0/0002-gyp-force-link-command-to-use-CXX.patch rename to bsp/buildroot/package/nodejs/6.2.1/0001-gyp-force-link-command-to-use-CXX.patch diff --git a/bsp/buildroot/package/nodejs/Config.in b/bsp/buildroot/package/nodejs/Config.in index 7324f6d7..da9ca7fa 100644 --- a/bsp/buildroot/package/nodejs/Config.in +++ b/bsp/buildroot/package/nodejs/Config.in @@ -43,10 +43,8 @@ config BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS config BR2_PACKAGE_NODEJS_VERSION_STRING string - default "5.5.0" if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS - default "0.10.42" - -menu "Module Selection" + default "6.2.1" if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS + default "0.10.45" config BR2_PACKAGE_NODEJS_NPM bool "NPM for the target" @@ -102,6 +100,4 @@ config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS 'libcurl' here, to ensure that buildroot builds the libcurl package, and does so before building your node modules. -endmenu - endif diff --git a/bsp/buildroot/package/nodejs/nodejs.hash b/bsp/buildroot/package/nodejs/nodejs.hash index a3faa5a4..9fce2f5c 100644 --- a/bsp/buildroot/package/nodejs/nodejs.hash +++ b/bsp/buildroot/package/nodejs/nodejs.hash @@ -1,5 +1,5 @@ -# From upstream URL: http://nodejs.org/dist/v0.10.42/SHASUMS256.txt -sha256 9b4cc1b5bc397d80dfe217625b04bb6212a3b5a8b1e0eb36000a30d7ae567b8a node-v0.10.42.tar.xz +# From upstream URL: http://nodejs.org/dist/v0.10.45/SHASUMS256.txt +sha256 a71070ea7aece9c94450b45102f2d1be42f0add168dd9c9701e9032d363bd4fa node-v0.10.45.tar.xz -# From upstream URL: http://nodejs.org/dist/v5.5.0/SHASUMS256.txt -sha256 9c46b4dc9548e43826f71f6571f56e39783c456b9516045b496ea73321731e22 node-v5.5.0.tar.xz +# From upstream URL: http://nodejs.org/dist/v6.2.1/SHASUMS256.txt +sha256 dbaeb8fb68a599e5164b17c74f66d24f424ee4ab3a25d8de8a3c6808e5b42bfb node-v6.2.1.tar.xz diff --git a/bsp/buildroot/package/nodejs/nodejs.mk b/bsp/buildroot/package/nodejs/nodejs.mk index 63ae4631..d6f115a5 100644 --- a/bsp/buildroot/package/nodejs/nodejs.mk +++ b/bsp/buildroot/package/nodejs/nodejs.mk @@ -13,19 +13,49 @@ HOST_NODEJS_DEPENDENCIES = host-python host-zlib NODEJS_LICENSE = MIT (core code); MIT, Apache and BSD family licenses (Bundled components) NODEJS_LICENSE_FILES = LICENSE +NODEJS_CONF_OPTS = \ + --without-snapshot \ + --shared-zlib \ + --without-dtrace \ + --without-etw \ + --dest-os=linux + ifeq ($(BR2_PACKAGE_OPENSSL),y) NODEJS_DEPENDENCIES += openssl +NODEJS_CONF_OPTS += --shared-openssl +else +NODEJS_CONF_OPTS += --without-ssl +endif + +# 0.10.x does not have icu support +ifeq ($(findstring 0.10.,$(NODEJS_VERSION)),) +ifeq ($(BR2_PACKAGE_ICU),y) +NODEJS_DEPENDENCIES += icu +NODEJS_CONF_OPTS += --with-intl=system-icu +else +NODEJS_CONF_OPTS += --with-intl=none +endif +endif + +ifneq ($(BR2_PACKAGE_NODEJS_NPM),y) +NODEJS_CONF_OPTS += --without-npm endif # nodejs build system is based on python, but only support python-2.6 or # python-2.7. So, we have to enforce PYTHON interpreter to be python2. define HOST_NODEJS_CONFIGURE_CMDS + # The build system directly calls python. Work around this by forcing python2 + # into PATH. See https://github.com/nodejs/node/issues/2735 + mkdir -p $(@D)/bin + ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python + # Build with the static, built-in OpenSSL which is supplied as part of # the nodejs source distribution. This is needed on the host because # NPM is non-functional without it, and host-openssl isn't part of # buildroot. (cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ + PATH=$(@D)/bin:$(BR_PATH) \ PYTHON=$(HOST_DIR)/usr/bin/python2 \ $(HOST_DIR)/usr/bin/python2 ./configure \ --prefix=$(HOST_DIR)/usr \ @@ -39,13 +69,15 @@ endef define HOST_NODEJS_BUILD_CMDS $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 \ $(MAKE) -C $(@D) \ - $(HOST_CONFIGURE_OPTS) + $(HOST_CONFIGURE_OPTS) \ + PATH=$(@D)/bin:$(BR_PATH) endef define HOST_NODEJS_INSTALL_CMDS $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 \ $(MAKE) -C $(@D) install \ - $(HOST_CONFIGURE_OPTS) + $(HOST_CONFIGURE_OPTS) \ + PATH=$(@D)/bin:$(BR_PATH) endef ifeq ($(BR2_i386),y) @@ -75,23 +107,21 @@ endif endif define NODEJS_CONFIGURE_CMDS + mkdir -p $(@D)/bin + ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python + (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ + PATH=$(@D)/bin:$(BR_PATH) \ LD="$(TARGET_CXX)" \ PYTHON=$(HOST_DIR)/usr/bin/python2 \ $(HOST_DIR)/usr/bin/python2 ./configure \ --prefix=/usr \ - --without-snapshot \ - --shared-zlib \ - $(if $(BR2_PACKAGE_OPENSSL),--shared-openssl,--without-ssl) \ - $(if $(BR2_PACKAGE_NODEJS_NPM),,--without-npm) \ - --without-dtrace \ - --without-etw \ --dest-cpu=$(NODEJS_CPU) \ $(if $(NODEJS_ARM_FP),--with-arm-float-abi=$(NODEJS_ARM_FP)) \ $(if $(NODEJS_MIPS_ARCH_VARIANT),--with-mips-arch-variant=$(NODEJS_MIPS_ARCH_VARIANT)) \ $(if $(NODEJS_MIPS_FPU_MODE),--with-mips-fpu-mode=$(NODEJS_MIPS_FPU_MODE)) \ - --dest-os=linux \ + $(NODEJS_CONF_OPTS) \ ) endef @@ -99,6 +129,7 @@ define NODEJS_BUILD_CMDS $(TARGET_MAKE_ENV) PYTHON=$(HOST_DIR)/usr/bin/python2 \ $(MAKE) -C $(@D) \ $(TARGET_CONFIGURE_OPTS) \ + PATH=$(@D)/bin:$(BR_PATH) \ LD="$(TARGET_CXX)" endef @@ -138,6 +169,7 @@ define NODEJS_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) install \ DESTDIR=$(TARGET_DIR) \ $(TARGET_CONFIGURE_OPTS) \ + PATH=$(@D)/bin:$(BR_PATH) \ LD="$(TARGET_CXX)" $(NODEJS_INSTALL_MODULES) endef diff --git a/bsp/buildroot/package/nodm/Config.in b/bsp/buildroot/package/nodm/Config.in new file mode 100644 index 00000000..97ce8c39 --- /dev/null +++ b/bsp/buildroot/package/nodm/Config.in @@ -0,0 +1,26 @@ +config BR2_PACKAGE_NODM + bool "nodm" + depends on BR2_PACKAGE_XORG7 + depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # linux-pam + depends on !BR2_STATIC_LIBS # linux-pam + depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + depends on !BR2_TOOLCHAIN_USES_UCLIBC # needs wordexp.h + depends on BR2_USE_MMU # linux-pam + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_LINUX_PAM + help + nodm is a minimal display manager that simply logs in + as a given user and starts an X session, without asking + for username or password. + + For those cases where automatic login is needed (and + does not imply a security issue), nodm is simple to setup, + lightweight, and it should do exactly the right thing. + + https://github.com/spanezz/nodm/ + +comment "nodm needs a glibc toolchain w/ wchar, locale, dynamic library" + depends on BR2_PACKAGE_XORG7 + depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ + || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL \ + || BR2_TOOLCHAIN_USES_UCLIBC diff --git a/bsp/buildroot/package/nodm/S90nodm b/bsp/buildroot/package/nodm/S90nodm new file mode 100755 index 00000000..a966e839 --- /dev/null +++ b/bsp/buildroot/package/nodm/S90nodm @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Starts nodm +# + +NODM_FIRST_VT=7 +NODM_XSESSION=/etc/X11/Xsession +NODM_OPTIONS= +NODM_X_OPTIONS="-nolisten tcp" +NODM_USER=root +NODM_MIN_SESSION_TIME=60 +NODM_X_TIMEOUT=300 + +[ -r /etc/default/nodm ] && . /etc/default/nodm + +export NODM_XSESSION NODM_X_OPTIONS NODM_USER NODM_MIN_SESSION_TIME NODM_FIRST_VT NODM_X_TIMEOUT + +start() { + printf "Starting nodm: " + start-stop-daemon -S -q -p /var/run/nodm.pid --exec /usr/sbin/nodm -b -m -S -- ${NODM_OPTIONS} + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping nodm: " + start-stop-daemon -K -q -p /var/run/nodm.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + sleep 1 + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/nodm/nodm.hash b/bsp/buildroot/package/nodm/nodm.hash new file mode 100644 index 00000000..e11e8756 --- /dev/null +++ b/bsp/buildroot/package/nodm/nodm.hash @@ -0,0 +1,2 @@ +# locally calculated +sha256 840939d27d3d9b02ad09e1cffce24729bcdeee6cea6b3f0037d8ae76b49feecd nodm-0.12-1.tar.gz diff --git a/bsp/buildroot/package/nodm/nodm.mk b/bsp/buildroot/package/nodm/nodm.mk new file mode 100644 index 00000000..da6bc850 --- /dev/null +++ b/bsp/buildroot/package/nodm/nodm.mk @@ -0,0 +1,34 @@ +################################################################################ +# +# nodm +# +################################################################################ + +NODM_VERSION = 0.12-1 +NODM_SITE = $(call github,spanezz,nodm,debian/$(NODM_VERSION)) +NODM_LICENSE = GPLv2+ +NODM_LICENSE_FILES = COPYING +NODM_AUTORECONF = YES + +NODM_DEPENDENCIES = xlib_libX11 linux-pam + +# help2man doesn't work when cross compiling +define NODM_DISABLE_HELP2MAN + $(SED) 's/help2man/true/' $(@D)/Makefile.am +endef + +NODM_POST_PATCH_HOOKS += NODM_DISABLE_HELP2MAN + +define NODM_INSTALL_PAM + $(INSTALL) -D -m 0644 package/nodm/nodm.pam \ + $(TARGET_DIR)/etc/pam.d/nodm +endef + +NODM_POST_INSTALL_TARGET_HOOKS += NODM_INSTALL_PAM + +define NODM_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/nodm/S90nodm \ + $(TARGET_DIR)/etc/init.d/S90nodm +endef + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/nodm/nodm.pam b/bsp/buildroot/package/nodm/nodm.pam new file mode 100644 index 00000000..f2cf4321 --- /dev/null +++ b/bsp/buildroot/package/nodm/nodm.pam @@ -0,0 +1,14 @@ +# Log service and allow promiscuously +# +auth required pam_warn.so +auth required pam_unix.so + +account required pam_warn.so +account required pam_permit.so + +password required pam_warn.so +password required pam_permit.so + +session required pam_warn.so +session required pam_permit.so +session required pam_env.so diff --git a/bsp/buildroot/package/norm/0001-fix-bigendian-build.patch b/bsp/buildroot/package/norm/0001-fix-bigendian-build.patch new file mode 100644 index 00000000..cf999c27 --- /dev/null +++ b/bsp/buildroot/package/norm/0001-fix-bigendian-build.patch @@ -0,0 +1,17 @@ +Fix big-endian build breakage in protolib. +Patch status: submitted to author via email. + +Signed-off-by: Gustavo Zacarias + +diff -Nura norm-1.5r6.orig/protolib/include/protoSpace.h norm-1.5r6/protolib/include/protoSpace.h +--- norm-1.5r6.orig/protolib/include/protoSpace.h 2016-03-08 19:48:21.326357963 -0300 ++++ norm-1.5r6/protolib/include/protoSpace.h 2016-03-08 19:48:46.647234075 -0300 +@@ -89,7 +89,7 @@ + } + #else + ProtoTree::Endian GetEndian() const +- return ProtoTree::ENDIAN_BIG; ++ {return ProtoTree::ENDIAN_BIG;} + void SetNode(Node* theNode) + {memcpy(key+sizeof(double), &theNode, sizeof(Node*));} + Node* GetNode() const diff --git a/bsp/buildroot/package/norm/0002-protolib-drop-linux-version-check.patch b/bsp/buildroot/package/norm/0002-protolib-drop-linux-version-check.patch new file mode 100644 index 00000000..7852a30a --- /dev/null +++ b/bsp/buildroot/package/norm/0002-protolib-drop-linux-version-check.patch @@ -0,0 +1,38 @@ +The char * to unsigned char * change happened for the libnetfilter_queue +1.0.0 release, not the linux headers. +So drop the linux headers version check since it causes more harm than +good by trying the old API when the toolchain uses old linux headers +with a new-enough libnetfilter_queue. + +Signed-off-by: Gustavo Zacarias + +diff -Nura norm-1.5r6.orig/protolib/src/linux/linuxDetour.cpp norm-1.5r6/protolib/src/linux/linuxDetour.cpp +--- norm-1.5r6.orig/protolib/src/linux/linuxDetour.cpp 2016-03-31 10:17:20.674745597 -0300 ++++ norm-1.5r6/protolib/src/linux/linuxDetour.cpp 2016-03-31 10:36:58.923084395 -0300 +@@ -16,8 +16,6 @@ + #include // for ETH_P_IP + #include // for ARPHRD_ETHER + +-#include // for LINUX_VERSION_CODE +- + /** NOTES: + * + * 1) This newer implementation of LinuxDetour uses netfilter_queue +@@ -591,17 +589,7 @@ + + // Finally record packet length and cache pointer to IP packet data + +- // A change to the nfq_get_payload() prototype seemed to kick in around Linux header files +- // version 3.6? (This will probably need to be fine tuned for the right version threshold.) +- +-#define LINUX_VERSION_MAJOR (LINUX_VERSION_CODE/65536) +-#define LINUX_VERSION_MINOR ((LINUX_VERSION_CODE - (LINUX_VERSION_MAJOR*65536)) / 256) +- +-#if ((LINUX_VERSION_MAJOR > 3) || ((LINUX_VERSION_MAJOR == 3) && (LINUX_VERSION_MINOR > 5))) + linuxDetour->nfq_pkt_len = nfq_get_payload(nfqData, (unsigned char**)(&linuxDetour->nfq_pkt_data)); +-#else +- linuxDetour->nfq_pkt_len = nfq_get_payload(nfqData, &linuxDetour->nfq_pkt_data); +-#endif // + return 0; + } // end LinuxDetour::NfqCallback() + diff --git a/bsp/buildroot/package/norm/0003-remove-kernel-headers-include-musl-fix.patch b/bsp/buildroot/package/norm/0003-remove-kernel-headers-include-musl-fix.patch new file mode 100644 index 00000000..7581c10b --- /dev/null +++ b/bsp/buildroot/package/norm/0003-remove-kernel-headers-include-musl-fix.patch @@ -0,0 +1,55 @@ +Remove kernel header includes causing issues with musl + +Include the kernel headers from netfilter causes a conflict with the + way of defining the IPPROTO_* constants, resulting in +the following build failure: + +In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/netdb.h:9:0, + from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoAddress.h:13, + from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoDetour.h:5, + from ../protolib/src/linux/linuxDetour.cpp:3: +/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected identifier before numeric constant + IPPROTO_IP = 0, /* Dummy protocol for TCP */ + ^ +/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected '}' before numeric constant +/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected unqualified-id before numeric constant +In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter.h:7:0, + from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter_ipv4.h:8, + from ../protolib/src/linux/linuxDetour.cpp:10: +/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:79:1: error: expected declaration before '}' token + }; + ^ + +Since from musl's developers perspective including kernel headers is +seen as being unsafe, we simply duplicate the necessary netfilter +definitions (there are just a few) instead of including some kernel +headers. + +Signed-off-by: Thomas Petazzoni + +Index: b/protolib/src/linux/linuxDetour.cpp +=================================================================== +--- a/protolib/src/linux/linuxDetour.cpp ++++ b/protolib/src/linux/linuxDetour.cpp +@@ -7,15 +7,18 @@ + #include // for atoi(), getenv() + #include + #include // for close() +-#include // for NF_IP_LOCAL_OUT, etc +-#include // for NF_IP6_LOCAL_OUT, etc +-#include // for NF_ACCEPT, etc + #include + + #include // for fcntl(), etc + #include // for ETH_P_IP + #include // for ARPHRD_ETHER + ++/* From netfilter kernel headers */ ++#define NF_IP_LOCAL_OUT 3 ++ ++#define NF_DROP 0 ++#define NF_ACCEPT 1 ++ + /** NOTES: + * + * 1) This newer implementation of LinuxDetour uses netfilter_queue diff --git a/bsp/buildroot/package/norm/Config.in b/bsp/buildroot/package/norm/Config.in new file mode 100644 index 00000000..49446334 --- /dev/null +++ b/bsp/buildroot/package/norm/Config.in @@ -0,0 +1,15 @@ +comment "norm needs a toolchain w/ C++, threads, dynamic library" + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_NORM + bool "norm" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_STATIC_LIBS + help + The NORM protocol is designed to provide end-to-end reliable + transport of bulk data objects or streams over generic IP + multicast routing and forwarding services. + + http://www.nrl.navy.mil/itd/ncs/products/norm diff --git a/bsp/buildroot/package/norm/norm.hash b/bsp/buildroot/package/norm/norm.hash new file mode 100644 index 00000000..4693eed6 --- /dev/null +++ b/bsp/buildroot/package/norm/norm.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 20ea2e8dd5d5e1ff1ff91dc7dab6db53a77d7b7183d8cf2425c215fd294f22a7 src-norm-1.5r6.tgz diff --git a/bsp/buildroot/package/norm/norm.mk b/bsp/buildroot/package/norm/norm.mk new file mode 100644 index 00000000..e1b3a5fc --- /dev/null +++ b/bsp/buildroot/package/norm/norm.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# norm +# +################################################################################ + +NORM_VERSION = 1.5r6 +NORM_SITE = http://downloads.pf.itd.nrl.navy.mil/norm/archive +NORM_SOURCE = src-norm-$(NORM_VERSION).tgz +NORM_INSTALL_STAGING = YES +NORM_LICENSE = NRL License +NORM_LICENSE_FILES = LICENSE.TXT + +ifeq ($(BR2_PACKAGE_LIBNETFILTER_QUEUE),y) +NORM_DEPENDENCIES += libnetfilter_queue +endif + +define NORM_CONFIGURE_CMDS + cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + ./waf configure --prefix=/usr +endef + +define NORM_BUILD_CMDS + cd $(@D); \ + $(TARGET_MAKE_ENV) \ + ./waf build +endef + +# install target doesn't install headers unfortunately... +define NORM_INSTALL_STAGING_CMDS + cd $(@D); \ + $(TARGET_MAKE_ENV) \ + DESTDIR=$(STAGING_DIR) \ + ./waf install + cp -f $(@D)/include/norm* $(STAGING_DIR)/usr/include +endef + +define NORM_INSTALL_TARGET_CMDS + cd $(@D); \ + $(TARGET_MAKE_ENV) \ + DESTDIR=$(TARGET_DIR) \ + ./waf install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/nss-mdns/Config.in b/bsp/buildroot/package/nss-mdns/Config.in index 0192cc28..ad69e2aa 100644 --- a/bsp/buildroot/package/nss-mdns/Config.in +++ b/bsp/buildroot/package/nss-mdns/Config.in @@ -14,6 +14,6 @@ config BR2_PACKAGE_NSS_MDNS http://0pointer.de/lennart/projects/nss-mdns/ -comment "nss-mdns needs an (e)glibc toolchain" +comment "nss-mdns needs a glibc toolchain" depends on BR2_USE_MMU && BR2_PACKAGE_AVAHI_DAEMON depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/nss-pam-ldapd/Config.in b/bsp/buildroot/package/nss-pam-ldapd/Config.in index da6d331b..233f2136 100644 --- a/bsp/buildroot/package/nss-pam-ldapd/Config.in +++ b/bsp/buildroot/package/nss-pam-ldapd/Config.in @@ -21,5 +21,5 @@ config BR2_PACKAGE_NSS_PAM_LDAPD_UTILITIES endif -comment "nss-pam-ldapd needs an (e)glibc toolchain" +comment "nss-pam-ldapd needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/ntfs-3g/0001-libfuse-util-include-paths.h-when-needed.patch b/bsp/buildroot/package/ntfs-3g/0001-libfuse-util-include-paths.h-when-needed.patch new file mode 100644 index 00000000..1765f68c --- /dev/null +++ b/bsp/buildroot/package/ntfs-3g/0001-libfuse-util-include-paths.h-when-needed.patch @@ -0,0 +1,43 @@ +From da021ed297ff7a69f3b7532ef68a9b6877a55265 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 20 Aug 2016 11:05:27 +0200 +Subject: [PATCH] libfuse-util: include when needed + +Both fusermount.c and mount_util.c use _PATH_MOUNTED, so they should +include , which provides this definition. + +This fixes the build with the musl C library. + +Signed-off-by: Thomas Petazzoni +--- + libfuse-lite/fusermount.c | 1 + + libfuse-lite/mount_util.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/libfuse-lite/fusermount.c b/libfuse-lite/fusermount.c +index 4e724db..680fee1 100644 +--- a/libfuse-lite/fusermount.c ++++ b/libfuse-lite/fusermount.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + + #ifdef __SOLARIS__ + #include +diff --git a/libfuse-lite/mount_util.c b/libfuse-lite/mount_util.c +index 8ea5e08..8b31722 100644 +--- a/libfuse-lite/mount_util.c ++++ b/libfuse-lite/mount_util.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #ifdef __SOLARIS__ +-- +2.7.4 + diff --git a/bsp/buildroot/package/ntfs-3g/Config.in b/bsp/buildroot/package/ntfs-3g/Config.in index d6d1481a..b9f7eafc 100644 --- a/bsp/buildroot/package/ntfs-3g/Config.in +++ b/bsp/buildroot/package/ntfs-3g/Config.in @@ -18,6 +18,7 @@ if BR2_PACKAGE_NTFS_3G config BR2_PACKAGE_NTFS_3G_ENCRYPTED bool "encrypted volumes" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_LIBGCRYPT help diff --git a/bsp/buildroot/package/ntfs-3g/ntfs-3g.hash b/bsp/buildroot/package/ntfs-3g/ntfs-3g.hash index 1c3445b8..4875cc47 100644 --- a/bsp/buildroot/package/ntfs-3g/ntfs-3g.hash +++ b/bsp/buildroot/package/ntfs-3g/ntfs-3g.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 97f996015d8316d4a272bd2629978e5e97072dd3cc148ce39802f8037c6538f2 ntfs-3g_ntfsprogs-2015.3.14.tgz +sha256 d7b72c05e4b3493e6095be789a760c9f5f2b141812d5b885f3190c98802f1ea0 ntfs-3g_ntfsprogs-2016.2.22.tgz diff --git a/bsp/buildroot/package/ntfs-3g/ntfs-3g.mk b/bsp/buildroot/package/ntfs-3g/ntfs-3g.mk index e5eafb36..b59e335b 100644 --- a/bsp/buildroot/package/ntfs-3g/ntfs-3g.mk +++ b/bsp/buildroot/package/ntfs-3g/ntfs-3g.mk @@ -4,7 +4,7 @@ # ################################################################################ -NTFS_3G_VERSION = 2015.3.14 +NTFS_3G_VERSION = 2016.2.22 NTFS_3G_SOURCE = ntfs-3g_ntfsprogs-$(NTFS_3G_VERSION).tgz NTFS_3G_SITE = http://tuxera.com/opensource NTFS_3G_CONF_OPTS = --disable-ldconfig diff --git a/bsp/buildroot/package/ntp/Config.in b/bsp/buildroot/package/ntp/Config.in index 1763225f..8ce9a5b0 100644 --- a/bsp/buildroot/package/ntp/Config.in +++ b/bsp/buildroot/package/ntp/Config.in @@ -19,6 +19,12 @@ config BR2_PACKAGE_NTP_NTP_KEYGEN help Create a NTP host key +config BR2_PACKAGE_NTP_NTP_SHM_CLK + bool "SHM clock support" + help + Compile ntp with support for a SHM clock attached through + shared memory. + config BR2_PACKAGE_NTP_NTP_WAIT bool "ntp-wait" depends on BR2_PACKAGE_PERL diff --git a/bsp/buildroot/package/ntp/ntp.hash b/bsp/buildroot/package/ntp/ntp.hash index 0c2c29d5..2a1155bc 100644 --- a/bsp/buildroot/package/ntp/ntp.hash +++ b/bsp/buildroot/package/ntp/ntp.hash @@ -1,4 +1,4 @@ -# From http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p6.tar.gz.md5 -md5 60049f51e9c8305afe30eb22b711c5c6 ntp-4.2.8p6.tar.gz +# From http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p8.tar.gz.md5 +md5 4a8636260435b230636f053ffd070e34 ntp-4.2.8p8.tar.gz # Calculated based on the hash above -sha256 583d0e1c573ace30a9c6afbea0fc52cae9c8c916dbc15c026e485a0dda4ba048 ntp-4.2.8p6.tar.gz +sha256 2ab3d0b5f0456e6311dda1cc27ab75da108762773a19e46abd938bd9407b97ee ntp-4.2.8p8.tar.gz diff --git a/bsp/buildroot/package/ntp/ntp.mk b/bsp/buildroot/package/ntp/ntp.mk index 2b99ef2d..0b6304b1 100644 --- a/bsp/buildroot/package/ntp/ntp.mk +++ b/bsp/buildroot/package/ntp/ntp.mk @@ -5,7 +5,7 @@ ################################################################################ NTP_VERSION_MAJOR = 4.2 -NTP_VERSION = $(NTP_VERSION_MAJOR).8p6 +NTP_VERSION = $(NTP_VERSION_MAJOR).8p8 NTP_SITE = http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-$(NTP_VERSION_MAJOR) NTP_DEPENDENCIES = host-pkgconf libevent $(if $(BR2_PACKAGE_BUSYBOX),busybox) NTP_LICENSE = ntp license @@ -15,6 +15,7 @@ NTP_CONF_OPTS = \ --with-shared \ --program-transform-name=s,,, \ --disable-tickadj \ + --disable-debugging \ --with-yielding-select=yes \ --disable-local-libevent # 0002-ntp-syscalls-fallback.patch @@ -42,6 +43,12 @@ else NTP_CONF_OPTS += --disable-ATOM endif +ifeq ($(BR2_PACKAGE_NTP_NTP_SHM_CLK),y) +NTP_CONF_OPTS += --enable-SHM +else +NTP_CONF_OPTS += --disable-SHM +endif + NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTP_KEYGEN) += util/ntp-keygen NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTP_WAIT) += scripts/ntp-wait/ntp-wait NTP_INSTALL_FILES_$(BR2_PACKAGE_NTP_NTPDATE) += ntpdate/ntpdate diff --git a/bsp/buildroot/package/nvidia-driver/Config.in b/bsp/buildroot/package/nvidia-driver/Config.in index 30763c5a..04499f63 100644 --- a/bsp/buildroot/package/nvidia-driver/Config.in +++ b/bsp/buildroot/package/nvidia-driver/Config.in @@ -1,4 +1,4 @@ -comment "nvidia-driver needs an (e)glibc toolchain" +comment "nvidia-driver needs a glibc toolchain" depends on BR2_i386 || BR2_x86_64 depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/nvidia-driver/nvidia-driver.mk b/bsp/buildroot/package/nvidia-driver/nvidia-driver.mk index 7eef73b0..7e670206 100644 --- a/bsp/buildroot/package/nvidia-driver/nvidia-driver.mk +++ b/bsp/buildroot/package/nvidia-driver/nvidia-driver.mk @@ -144,7 +144,7 @@ endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE == y # no-version symlink, so we can link to them at build time. define NVIDIA_DRIVER_INSTALL_LIBS for libpath in $(addsuffix .so.$(NVIDIA_DRIVER_VERSION),$(NVIDIA_DRIVER_LIBS)) \ - $(NVIDIA_DRIVER_LIBS_NO_VERSION); \ + $(NVIDIA_DRIVER_LIBS_NO_VERSION); \ do \ libname="$${libpath##*/}"; \ $(INSTALL) -D -m 0644 $(@D)/$${libpath} $(1)/usr/lib/$${libname}; \ diff --git a/bsp/buildroot/package/nvidia-tegra23/Config.in b/bsp/buildroot/package/nvidia-tegra23/Config.in index eb33581d..9c9fd198 100644 --- a/bsp/buildroot/package/nvidia-tegra23/Config.in +++ b/bsp/buildroot/package/nvidia-tegra23/Config.in @@ -32,7 +32,7 @@ source "package/nvidia-tegra23/nvidia-tegra23-binaries/Config.in" source "package/nvidia-tegra23/nvidia-tegra23-codecs/Config.in" endif -comment "nvidia-tegra23 needs Xorg <= 1.14 and a (e)glibc toolchain w/ EABIhf" +comment "nvidia-tegra23 needs Xorg <= 1.14 and a glibc toolchain w/ EABIhf" depends on BR2_cortex_a9 depends on !BR2_ARM_EABIHF || !BR2_TOOLCHAIN_USES_GLIBC \ || !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_14 diff --git a/bsp/buildroot/package/nvme/Config.in b/bsp/buildroot/package/nvme/Config.in new file mode 100644 index 00000000..dd8655fa --- /dev/null +++ b/bsp/buildroot/package/nvme/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_NVME + bool "nvme" + help + NVME utility, a utility for interacting with standard NVM + Express (optimized PCI Express SSD interface) devices. + + https://github.com/linux-nvme/nvme-cli diff --git a/bsp/buildroot/package/nvme/nvme.hash b/bsp/buildroot/package/nvme/nvme.hash new file mode 100644 index 00000000..b2990419 --- /dev/null +++ b/bsp/buildroot/package/nvme/nvme.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 c631e90dd4d411cdb618b26bc36b06706e6f1f2d3db38874bcfe48f4bc15aac4 nvme-v0.3.tar.gz diff --git a/bsp/buildroot/package/nvme/nvme.mk b/bsp/buildroot/package/nvme/nvme.mk new file mode 100755 index 00000000..b745025f --- /dev/null +++ b/bsp/buildroot/package/nvme/nvme.mk @@ -0,0 +1,32 @@ +################################################################################ +# +# nvme +# +################################################################################ + +NVME_VERSION = v0.3 +NVME_SITE = $(call github,linux-nvme,nvme-cli,$(NVME_VERSION)) +NVME_LICENSE = GPLv2+ +NVME_LICENSE_FILES = LICENSE + +# Yes LIBUDEV=0 means udev support enabled, LIBUDEV=1 means udev +# support disabled. +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) +NVME_DEPENDENCIES += udev +NVME_MAKE_OPTS += LIBUDEV=0 +else +NVME_MAKE_OPTS += LIBUDEV=1 +endif + +# LIBUDEV=1 means that libudev is _disabled_ +define NVME_BUILD_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) \ + $(NVME_MAKE_OPTS) -C $(@D) +endef + +define NVME_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) \ + PREFIX=/usr install-bin +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/odhcp6c/odhcp6c.hash b/bsp/buildroot/package/odhcp6c/odhcp6c.hash index 00a09602..688d77dc 100644 --- a/bsp/buildroot/package/odhcp6c/odhcp6c.hash +++ b/bsp/buildroot/package/odhcp6c/odhcp6c.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 b5f920ed300309d65e431a360cae5f3c2010eca09a4231c9ef907c730d3c0d09 odhcp6c-dc186d6d2b0dd4ad23ca5fc69c00e81f796ff6d9.tar.gz +sha256 d84a713010865215301b4186c7b5368c9f006e6d3b9b52b99bd25e2d9e7a1dfc odhcp6c-7533a6243dc3ac5a747cf6ccbc4d0539dafd3e07.tar.gz diff --git a/bsp/buildroot/package/odhcp6c/odhcp6c.mk b/bsp/buildroot/package/odhcp6c/odhcp6c.mk index c841cd31..0ec9657a 100644 --- a/bsp/buildroot/package/odhcp6c/odhcp6c.mk +++ b/bsp/buildroot/package/odhcp6c/odhcp6c.mk @@ -4,7 +4,7 @@ # ################################################################################ -ODHCP6C_VERSION = dc186d6d2b0dd4ad23ca5fc69c00e81f796ff6d9 +ODHCP6C_VERSION = 7533a6243dc3ac5a747cf6ccbc4d0539dafd3e07 ODHCP6C_SITE = $(call github,sbyx,odhcp6c,$(ODHCP6C_VERSION)) ODHCP6C_LICENSE = GPLv2 ODHCP6C_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/odroid-mali/Config.in b/bsp/buildroot/package/odroid-mali/Config.in new file mode 100644 index 00000000..2cd8e0d3 --- /dev/null +++ b/bsp/buildroot/package/odroid-mali/Config.in @@ -0,0 +1,25 @@ +config BR2_PACKAGE_ODROID_MALI + bool "odroid-mali" + select BR2_PACKAGE_HAS_LIBEGL + select BR2_PACKAGE_HAS_LIBGLES + select BR2_PACKAGE_ODROID_SCRIPTS # runtime + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_aarch64 || BR2_ARM_EABIHF + help + Install the ARM Mali drivers for odroidc2 based systems. + + https://github.com/mdrjr/c2_mali + +if BR2_PACKAGE_ODROID_MALI + +config BR2_PACKAGE_PROVIDES_LIBEGL + default "odroid-mali" + +config BR2_PACKAGE_PROVIDES_LIBGLES + default "odroid-mali" + +endif + +comment "odroid-mali needs a glibc toolchain" + depends on BR2_aarch64 || BR2_ARM_EABIHF + depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/odroid-mali/odroid-mali.hash b/bsp/buildroot/package/odroid-mali/odroid-mali.hash new file mode 100644 index 00000000..4d248242 --- /dev/null +++ b/bsp/buildroot/package/odroid-mali/odroid-mali.hash @@ -0,0 +1,2 @@ +# Locally computed hash +sha256 29d98ed4b8694b860d9289787c416faa847b0de26d36580a53add1752b4c2e9a odroid-mali-46fe49f37e3506c6205ad8c50980eca9bfff11e3.tar.gz diff --git a/bsp/buildroot/package/odroid-mali/odroid-mali.mk b/bsp/buildroot/package/odroid-mali/odroid-mali.mk new file mode 100644 index 00000000..7b8e5110 --- /dev/null +++ b/bsp/buildroot/package/odroid-mali/odroid-mali.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# odroid-mali +# +################################################################################ + +ODROID_MALI_VERSION = 46fe49f37e3506c6205ad8c50980eca9bfff11e3 +ODROID_MALI_SITE = $(call github,mdrjr,c2_mali,$(ODROID_MALI_VERSION)) +ODROID_MALI_LICENSE = Hardkernel EULA +ODROID_MALI_LICENSE_FILES = README.md + +ODROID_MALI_INSTALL_STAGING = YES +ODROID_MALI_PROVIDES = libegl libgles + +ifeq ($(BR2_aarch64),y) +ODROID_MALI_INSTALL_ARCH = mali_libs +else +ODROID_MALI_INSTALL_ARCH = 32bit_libs +endif + +define ODROID_MALI_INSTALL_LIBS + cp -dpfr $(@D)/fbdev/$(ODROID_MALI_INSTALL_ARCH)/lib* $(1)/usr/lib/ +endef + +define ODROID_MALI_INSTALL_STAGING_CMDS + $(call ODROID_MALI_INSTALL_LIBS,$(STAGING_DIR)) + mkdir -p $(STAGING_DIR)/usr/lib/pkgconfig + cp -dpfr $(@D)/pkgconfig/*.pc $(STAGING_DIR)/usr/lib/pkgconfig/ + cp -dpfr $(@D)/fbdev/mali_headers/* $(STAGING_DIR)/usr/include +endef + +define ODROID_MALI_INSTALL_TARGET_CMDS + $(call ODROID_MALI_INSTALL_LIBS,$(TARGET_DIR)) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/odroid-scripts/Config.in b/bsp/buildroot/package/odroid-scripts/Config.in new file mode 100644 index 00000000..c4e09cad --- /dev/null +++ b/bsp/buildroot/package/odroid-scripts/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_ODROID_SCRIPTS + bool "odroid-scripts" + depends on BR2_aarch64 || BR2_arm + select BR2_PACKAGE_FBSET # runtime + select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # needed for fbset + help + Install the scripts for the odroidc2 based systems. + + https://github.com/mdrjr/c2_bootini diff --git a/bsp/buildroot/package/odroid-scripts/S50odroidc2_fb b/bsp/buildroot/package/odroid-scripts/S50odroidc2_fb new file mode 100644 index 00000000..2aae59db --- /dev/null +++ b/bsp/buildroot/package/odroid-scripts/S50odroidc2_fb @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Set up frame buffer +# + +case "$1" in + start) + echo "Setting up display..." + /usr/sbin/odroidc2_init_fb.sh + ;; + stop) + ;; + restart|reload) + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/odroid-scripts/odroid-scripts.hash b/bsp/buildroot/package/odroid-scripts/odroid-scripts.hash new file mode 100644 index 00000000..8fd4b2c6 --- /dev/null +++ b/bsp/buildroot/package/odroid-scripts/odroid-scripts.hash @@ -0,0 +1,2 @@ +# Locally computed hash +sha256 779e8beccf8c66d51e495a4cc0e6eccf72c295499a1ecdc0740aa4459de786a0 odroid-scripts-a252de04562dcf8d8a4918a544b45a9e3d46d2fb.tar.gz diff --git a/bsp/buildroot/package/odroid-scripts/odroid-scripts.mk b/bsp/buildroot/package/odroid-scripts/odroid-scripts.mk new file mode 100644 index 00000000..858ec37f --- /dev/null +++ b/bsp/buildroot/package/odroid-scripts/odroid-scripts.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# odroid-scripts +# +################################################################################ + +ODROID_SCRIPTS_VERSION = a252de04562dcf8d8a4918a544b45a9e3d46d2fb +ODROID_SCRIPTS_SITE = $(call github,mdrjr,c2_bootini,$(ODROID_SCRIPTS_VERSION)) +ODROID_SCRIPTS_LICENSE = unclear + +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) +define ODROID_SCRIPTS_INSTALL_UDEV_RULES + $(INSTALL) -D -m 0644 $(@D)/10-odroid.rules \ + $(TARGET_DIR)/etc/udev/rules.d/10-odroid.rules +endef +endif + +define ODROID_SCRIPTS_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/c2_init.sh $(TARGET_DIR)/usr/sbin/odroidc2_init_fb.sh + $(ODROID_SCRIPTS_INSTALL_UDEV_RULES) +endef + +define ODROID_SCRIPTS_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 0644 $(@D)/amlogic.service \ + $(TARGET_DIR)/usr/lib/systemd/system/odroidc2_fb.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -fs ../../../../usr/lib/systemd/system/odroidc2_fb.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/odroidc2_fb.service +endef + +define ODROID_SCRIPTS_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/odroid-scripts/S50odroidc2_fb \ + $(TARGET_DIR)/etc/init.d/S50odroidc2_fb +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/ofono/Config.in b/bsp/buildroot/package/ofono/Config.in index 2e3ca223..70daef7a 100644 --- a/bsp/buildroot/package/ofono/Config.in +++ b/bsp/buildroot/package/ofono/Config.in @@ -3,7 +3,6 @@ config BR2_PACKAGE_OFONO depends on BR2_USE_WCHAR # gettext, libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus, libglib2 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libcap-ng depends on !BR2_STATIC_LIBS # dlopen() depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_LIBCAP_NG @@ -21,4 +20,3 @@ comment "ofono needs a toolchain w/ dynamic library, wchar, threads" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII diff --git a/bsp/buildroot/package/ola/Config.in b/bsp/buildroot/package/ola/Config.in index 55cea65d..7b56f5ca 100644 --- a/bsp/buildroot/package/ola/Config.in +++ b/bsp/buildroot/package/ola/Config.in @@ -3,7 +3,7 @@ comment "ola needs a toolchain w/ C++, threads, wchar, dynamic library" || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS -config BR2_PACKAGE_OLA +menuconfig BR2_PACKAGE_OLA bool "ola (open lighting architecture)" select BR2_PACKAGE_PROTOBUF select BR2_PACKAGE_UTIL_LINUX_LIBUUID @@ -22,10 +22,11 @@ config BR2_PACKAGE_OLA if BR2_PACKAGE_OLA -menu "bindings and interface" +comment "bindings and interface" config BR2_PACKAGE_OLA_WEB bool "http interface" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, libmicrohttpd select BR2_PACKAGE_LIBMICROHTTPD help Build OLA with browser interface. @@ -42,9 +43,7 @@ config BR2_PACKAGE_OLA_SLP help Build OLA with slp tools. -endmenu - -menu "tests and examples" +comment "tests and examples" config BR2_PACKAGE_OLA_EXAMPLES bool "examples" @@ -58,9 +57,7 @@ config BR2_PACKAGE_OLA_RDM_TESTS help Build OLA RDM tests. -endmenu - -menu "plugin selections" +comment "plugin selections" config BR2_PACKAGE_OLA_PLUGIN_E131 bool "acn E131" @@ -130,6 +127,4 @@ config BR2_PACKAGE_OLA_PLUGIN_USBPRO help Build UsbPro plugin for OLA. -endmenu - endif diff --git a/bsp/buildroot/package/omap-u-boot-utils/omap-u-boot-utils.hash b/bsp/buildroot/package/omap-u-boot-utils/omap-u-boot-utils.hash new file mode 100644 index 00000000..020c4405 --- /dev/null +++ b/bsp/buildroot/package/omap-u-boot-utils/omap-u-boot-utils.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 f9c2553efeff1289b2b964a266a0b4a03a377f84a14d0599a779f6e3d7b75d5f omap-u-boot-utils-3f07426cddc0be9e24702e7aacc7574ddd7fba28.tar.gz diff --git a/bsp/buildroot/package/omniorb/0001-fix-unistd-sys-time-includes.patch b/bsp/buildroot/package/omniorb/0001-fix-unistd-sys-time-includes.patch new file mode 100644 index 00000000..29d917b0 --- /dev/null +++ b/bsp/buildroot/package/omniorb/0001-fix-unistd-sys-time-includes.patch @@ -0,0 +1,61 @@ +omniorb/thread: use proper autoconf macros for header inclusion + +src/lib/omnithread/posix.cc uses sleep() and usleep(), defined in + on numerous platforms, and struct timeval/gettimeofday(), +defined in on various platforms. + +Since those header files are not available on all platforms, posix.cc +currently uses the following condition: + +#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(__SCO_VERSION__) || defined(__aix__) || defined (__cygwin__) || defined(__darwin__) || defined(__macos__) + +Unfortunately, this falls short on Linux systems based on the musl C +library. Indeed, the musl C library does not define the __GLIBC__ +symbol, but does have the sleep()/usleep() definitions in , +and the struct timeval/gettimeofday() definitions in , +like any Linux system. Also, the musl C library does not define any +constant like __MUSL__ to distinguish it. + +Due to this, on musl based systems, and are +not included, causing a build failure: + +posix.cc:864:22: error: '::sleep' has not been declared + while ((secs = ::sleep(secs))) ; + ^ +posix.cc:866:43: error: 'usleep' was not declared in this scope + usleep(secs * 1000000 + (nanosecs / 1000)); + ^ +posix.cc: In static member function 'static void omni_thread::get_time(long unsigned int*, long unsigned int*, long unsigned int, long unsigned int)': +posix.cc:904:20: error: aggregate 'omni_thread::get_time(long unsigned int*, long unsigned int*, long unsigned int, long unsigned int)::timeval tv' has incomplete type and cannot be defined + struct timeval tv; + ^ +posix.cc:905:24: error: 'gettimeofday' was not declared in this scope + gettimeofday(&tv, 0); + +It turns out that the configure.ac already checks for the availability +of and . So all what this patch does is use the +C defines generated by the configure script to decide whether + and can be included or not. + +Signed-off-by: Thomas Petazzoni + +Index: b/src/lib/omnithread/posix.cc +=================================================================== +--- a/src/lib/omnithread/posix.cc ++++ b/src/lib/omnithread/posix.cc +@@ -78,10 +78,14 @@ + #include + #include + #include ++#include + +-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(__SCO_VERSION__) || defined(__aix__) || defined (__cygwin__) || defined(__darwin__) || defined(__macos__) + // typedef of struct timeval and gettimeofday(); ++#if defined(HAVE_SYS_TIME_H) + #include ++#endif ++ ++#if defined(HAVE_UNISTD_H) + #include + #endif + diff --git a/bsp/buildroot/package/omniorb/0001-uclinux-is-also-linux.patch b/bsp/buildroot/package/omniorb/0001-uclinux-is-also-linux.patch deleted file mode 100644 index e0033072..00000000 --- a/bsp/buildroot/package/omniorb/0001-uclinux-is-also-linux.patch +++ /dev/null @@ -1,19 +0,0 @@ -uclinux is also linux - -Patch status: sent upstream -(http://www.omniorb-support.com/pipermail/omniorb-list/2014-November/031628.html) - -Signed-off-by: Baruch Siach ---- - -diff -Nuar omniORB-4.1.6-orig/configure.ac omniORB-4.1.6/configure.ac ---- omniORB-4.1.6-orig/configure.ac 2011-06-25 00:37:28.000000000 +0300 -+++ omniORB-4.1.6/configure.ac 2014-11-20 07:05:25.072634260 +0200 -@@ -183,6 +183,7 @@ - - case "$host" in - *-*-linux-*) plat_name="Linux"; plat_def="__linux__"; os_v="2";; -+ *-*-uclinux-*) plat_name="Linux"; plat_def="__linux__"; os_v="2";; - *-*-cygwin*) plat_name="Cygwin"; plat_def="__cygwin__"; os_v="1";; - *-*-solaris*) plat_name="SunOS"; plat_def="__sunos__"; os_v="5";; - *-*-osf3*) plat_name="OSF1"; plat_def="__osf1__"; os_v="3";; diff --git a/bsp/buildroot/package/omniorb/omniorb.hash b/bsp/buildroot/package/omniorb/omniorb.hash index d087d958..3d98b466 100644 --- a/bsp/buildroot/package/omniorb/omniorb.hash +++ b/bsp/buildroot/package/omniorb/omniorb.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/omniorb/files/omniORB/omniORB-4.2.0/ -sha1 cc52c636f4f329e0481d6bb97b1f0a4bfb21fb3d omniORB-4.2.0.tar.bz2 -md5 f1e104d0a2df92829c1b37a853f4805d omniORB-4.2.0.tar.bz2 +# From http://sourceforge.net/projects/omniorb/files/omniORB/omniORB-4.2.1/ +sha1 cf0f3ca7caab901c9485ca8afd85087c080c9684 omniORB-4.2.1.tar.bz2 +md5 dbe349d2bd929d349083b303bb4317e5 omniORB-4.2.1.tar.bz2 diff --git a/bsp/buildroot/package/omniorb/omniorb.mk b/bsp/buildroot/package/omniorb/omniorb.mk index d278adcc..98bae20a 100644 --- a/bsp/buildroot/package/omniorb/omniorb.mk +++ b/bsp/buildroot/package/omniorb/omniorb.mk @@ -4,7 +4,7 @@ # ################################################################################ -OMNIORB_VERSION = 4.2.0 +OMNIORB_VERSION = 4.2.1 OMNIORB_SITE = http://downloads.sourceforge.net/project/omniorb/omniORB/omniORB-$(OMNIORB_VERSION) OMNIORB_SOURCE = omniORB-$(OMNIORB_VERSION).tar.bz2 OMNIORB_INSTALL_STAGING = YES @@ -13,9 +13,6 @@ OMNIORB_LICENSE_FILES = COPYING COPYING.LIB OMNIORB_DEPENDENCIES = host-omniorb HOST_OMNIORB_DEPENDENCIES = host-python -# 0001-uclinux-is-also-linux.patch touches configure.ac -OMNIORB_AUTORECONF = YES - # omniorb is not python3 friendly, so force the python interpreter OMNIORB_CONF_OPTS = ac_cv_path_PYTHON=$(HOST_DIR)/usr/bin/python2 HOST_OMNIORB_CONF_OPTS = ac_cv_path_PYTHON=$(HOST_DIR)/usr/bin/python2 diff --git a/bsp/buildroot/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch b/bsp/buildroot/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch new file mode 100644 index 00000000..2dc61669 --- /dev/null +++ b/bsp/buildroot/package/omxplayer/0001-Makefiles-clean-up-the-cruft.patch @@ -0,0 +1,67 @@ +From 563dafc1129848419482b540d149d0b8687cac1e Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Sun, 10 Apr 2016 16:22:53 +0200 +Subject: [PATCH] Makefiles: clean up the cruft + +Most of the variables that Makefile.include tries (but fails) to set, +are already available from Buildroot's variables: + - AR, AS, CC, CXX, OBJDUMP... + - CFLAGS, CXXFLAGS, CPPFLAGS... + +This leaves us with a few select variables that define include and +library paths local to the omxplayer package, plus a few optimisations. + +Finally, also remove hard-coded, absolute paths pointing to the host +system (won't work for cross-compilation, so our paranoid wrapper would +catch those paths). + +Signed-off-by: "Yann E. MORIN" +--- + Makefile | 2 +- + Makefile.include | 20 ++------------------ + 2 files changed, 3 insertions(+), 19 deletions(-) + +diff --git a/Makefile b/Makefile +index bcfadfb..3dc1a03 100644 +--- a/Makefile ++++ b/Makefile +@@ -4,7 +4,7 @@ CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX + + LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz + +-INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include ++INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ + + DIST ?= omxplayer-dist + +diff --git a/Makefile.include b/Makefile.include +index 58e9560..79ca277 100644 +--- a/Makefile.include ++++ b/Makefile.include +@@ -20,21 +20,5 @@ endif + + JOBS=7 + +-CFLAGS := -isystem$(PREFIX)/include +-CXXFLAGS := $(CFLAGS) +-CPPFLAGS := $(CFLAGS) +-LDFLAGS := -L$(BUILDROOT)/lib +-LD := $(TOOLCHAIN)/bin/$(HOST)-ld --sysroot=$(SYSROOT) +-CC := $(TOOLCHAIN)/bin/$(HOST)-gcc --sysroot=$(SYSROOT) +-CXX := $(TOOLCHAIN)/bin/$(HOST)-g++ --sysroot=$(SYSROOT) +-OBJDUMP := $(TOOLCHAIN)/bin/$(HOST)-objdump +-RANLIB := $(TOOLCHAIN)/bin/$(HOST)-ranlib +-STRIP := $(TOOLCHAIN)/bin/$(HOST)-strip +-AR := $(TOOLCHAIN)/bin/$(HOST)-ar +-CXXCP := $(CXX) -E +-PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH) +- +-CFLAGS += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog +-LDFLAGS += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/ -Lpcre/build +-#INCLUDES += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2 +-INCLUDES += -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -Ipcre/build -Iboost-trunk -Ifreetype2/include ++CFLAGS += -fomit-frame-pointer -Wno-psabi -mno-apcs-stack-check \ ++ -mstructure-size-boundary=32 -mno-sched-prolog +-- +1.9.1 + diff --git a/bsp/buildroot/package/omxplayer/Config.in b/bsp/buildroot/package/omxplayer/Config.in new file mode 100644 index 00000000..b417aa3b --- /dev/null +++ b/bsp/buildroot/package/omxplayer/Config.in @@ -0,0 +1,33 @@ +config BR2_PACKAGE_OMXPLAYER + bool "omxplayer" + depends on BR2_arm + depends on BR2_USE_MMU # dbus + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS # ffmpeg + depends on BR2_INSTALL_LIBSTDCPP # boost + depends on BR2_TOOLCHAIN_HAS_THREADS # boost, libusb + depends on BR2_USE_WCHAR # boost + depends on BR2_PACKAGE_RPI_USERLAND + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_DBUS + select BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FFMPEG_AVRESAMPLE + select BR2_PACKAGE_FFMPEG_SWSCALE + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_LIBIDN + select BR2_PACKAGE_LIBUSB + select BR2_PACKAGE_PCRE + select BR2_PACKAGE_ZLIB + help + OMXPlayer is a commandline OMX player for the Raspberry Pi. It was + developed as a testbed for the XBMC Raspberry PI implementation + and is quite handy to use standalone. + + https://github.com/popcornmix/omxplayer + +comment "omxplayer needs rpi-userland and a toolchain w/ C++, threads, wchar, dynamic library" + depends on BR2_arm + depends on BR2_USE_MMU + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + depends on !BR2_PACKAGE_RPI_USERLAND + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ + || !BR2_USE_WCHAR || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/omxplayer/omxplayer.hash b/bsp/buildroot/package/omxplayer/omxplayer.hash new file mode 100644 index 00000000..4ee215b7 --- /dev/null +++ b/bsp/buildroot/package/omxplayer/omxplayer.hash @@ -0,0 +1,3 @@ +# Locally computed +sha1 23eb444757e445c127a7114ae233569cac64f984 omxplayer-6c90c7503ba4658221774759edf7f2ae816711de.tar.gz +sha256 93ebfd654314231749936e4fc09f5ec4a361806cdb640d7579a5106921e00299 omxplayer-6c90c7503ba4658221774759edf7f2ae816711de.tar.gz diff --git a/bsp/buildroot/package/omxplayer/omxplayer.mk b/bsp/buildroot/package/omxplayer/omxplayer.mk new file mode 100644 index 00000000..da4614bf --- /dev/null +++ b/bsp/buildroot/package/omxplayer/omxplayer.mk @@ -0,0 +1,46 @@ +################################################################################ +# +# omxplayer +# +################################################################################ + +OMXPLAYER_VERSION = 6c90c7503ba4658221774759edf7f2ae816711de +OMXPLAYER_SITE = $(call github,popcornmix,omxplayer,$(OMXPLAYER_VERSION)) +OMXPLAYER_LICENSE = GPLv2+ +OMXPLAYER_LICENSE_FILES = COPYING + +OMXPLAYER_DEPENDENCIES = \ + host-pkgconf boost dbus ffmpeg freetype libidn libusb pcre \ + rpi-userland zlib + +OMXPLAYER_EXTRA_CFLAGS = \ + -DTARGET_LINUX -DTARGET_POSIX \ + `$(PKG_CONFIG_HOST_BINARY) --cflags bcm_host` \ + `$(PKG_CONFIG_HOST_BINARY) --cflags freetype2` \ + `$(PKG_CONFIG_HOST_BINARY) --cflags dbus-1` + +# OMXplayer has support for building in Buildroot, but that +# procedure is, well, tainted. Fix this by forcing the real, +# correct values. +OMXPLAYER_MAKE_ENV = \ + USE_BUILDROOT=1 \ + BUILDROOT=$(TOP_DIR) \ + SDKSTAGE=$(STAGING_DIR) \ + TARGETFS=$(TARGET_DIR) \ + TOOLCHAIN=$(HOST_DIR)/usr \ + HOST=$(GNU_TARGET_NAME) \ + SYSROOT=$(STAGING_DIR) \ + JOBS=$(PARALLEL_JOBS) \ + $(TARGET_CONFIGURE_OPTS) \ + STRIP=true \ + CFLAGS="$(TARGET_CFLAGS) $(OMXPLAYER_EXTRA_CFLAGS)" + +define OMXPLAYER_BUILD_CMDS + $(OMXPLAYER_MAKE_ENV) $(MAKE) -C $(@D) omxplayer.bin +endef + +define OMXPLAYER_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 -D $(@D)/omxplayer.bin $(TARGET_DIR)/usr/bin/omxplayer +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/on2-8170-libs/Config.in b/bsp/buildroot/package/on2-8170-libs/Config.in index 36f0b5c2..40cad3d0 100644 --- a/bsp/buildroot/package/on2-8170-libs/Config.in +++ b/bsp/buildroot/package/on2-8170-libs/Config.in @@ -10,6 +10,6 @@ config BR2_PACKAGE_ON2_8170_LIBS http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9M10Gstreamer -comment "on2-8170-libs needs an (e)glibc toolchain and a Linux kernel to be built" +comment "on2-8170-libs needs a glibc toolchain and a Linux kernel to be built" depends on BR2_arm926t depends on !BR2_LINUX_KERNEL || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/on2-8170-libs/on2-8170-libs.hash b/bsp/buildroot/package/on2-8170-libs/on2-8170-libs.hash new file mode 100644 index 00000000..c8b76e57 --- /dev/null +++ b/bsp/buildroot/package/on2-8170-libs/on2-8170-libs.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 db7390a13e7c0426894a6f966ecde1f89e6566416088c50729750e800306a2de on2-8170-libs-1.0.tar.gz diff --git a/bsp/buildroot/package/on2-8170-modules/on2-8170-modules.hash b/bsp/buildroot/package/on2-8170-modules/on2-8170-modules.hash new file mode 100644 index 00000000..cfb1272d --- /dev/null +++ b/bsp/buildroot/package/on2-8170-modules/on2-8170-modules.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 d04d3acb8755281f6721d2a2efe04014060f83f38972208f356a486d52ca8bfc on2-8170-modules-73b08061d30789178e692bc332b73d1d9922bf39.tar.gz diff --git a/bsp/buildroot/package/open-plc-utils/open-plc-utils.hash b/bsp/buildroot/package/open-plc-utils/open-plc-utils.hash new file mode 100644 index 00000000..a76630df --- /dev/null +++ b/bsp/buildroot/package/open-plc-utils/open-plc-utils.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 00cd7f71e03849b1d6a96ec040351b819481e2f420cfb246f0b0f02cde73e098 open-plc-utils-1be781d1ea81827e5f6c1a35961c65dd4d15472c.tar.gz diff --git a/bsp/buildroot/package/open-plc-utils/open-plc-utils.mk b/bsp/buildroot/package/open-plc-utils/open-plc-utils.mk index a6743724..67c8d7dc 100644 --- a/bsp/buildroot/package/open-plc-utils/open-plc-utils.mk +++ b/bsp/buildroot/package/open-plc-utils/open-plc-utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPEN_PLC_UTILS_VERSION = 05ef40c0a2949cfaf1c3230e10679fbcf912d174 +OPEN_PLC_UTILS_VERSION = 1be781d1ea81827e5f6c1a35961c65dd4d15472c OPEN_PLC_UTILS_SITE = $(call github,qca,open-plc-utils,$(OPEN_PLC_UTILS_VERSION)) OPEN_PLC_UTILS_LICENSE = BSD-3c OPEN_PLC_UTILS_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/open2300/open2300.mk b/bsp/buildroot/package/open2300/open2300.mk index 73db2a00..323f566c 100644 --- a/bsp/buildroot/package/open2300/open2300.mk +++ b/bsp/buildroot/package/open2300/open2300.mk @@ -21,6 +21,10 @@ OPEN2300_DEPENDENCIES += mysql OPEN2300_BINS += mysql2300 mysqlhistlog2300 OPEN2300_CFLAGS += -I$(STAGING_DIR)/usr/include/mysql OPEN2300_LDFLAGS += -L$(STAGING_DIR)/usr/lib/mysql -lmysqlclient +ifeq ($(BR2_STATIC_LIBS),y) +# mysql needs -lz, so we need to specify it for static builds +OPEN2300_LDFLAGS += -lz +endif endif define OPEN2300_BUILD_CMDS diff --git a/bsp/buildroot/package/openblas/0001-Complete-support-for-MIPS-n32-ABI.patch b/bsp/buildroot/package/openblas/0001-Complete-support-for-MIPS-n32-ABI.patch new file mode 100644 index 00000000..6e6c5a68 --- /dev/null +++ b/bsp/buildroot/package/openblas/0001-Complete-support-for-MIPS-n32-ABI.patch @@ -0,0 +1,116 @@ +From 7f28cd1f88145a701e5dbbf50558bb65fce79f61 Mon Sep 17 00:00:00 2001 +From: Vicente Olivert Riera +Date: Thu, 14 Jul 2016 17:20:51 +0100 +Subject: [PATCH] Complete support for MIPS n32 ABI + +Pull request: https://github.com/xianyi/OpenBLAS/pull/926 + +Signed-off-by: Vicente Olivert Riera +--- + Makefile.system | 27 +++++++++------------------ + c_check | 9 +++++++-- + f_check | 7 ++++++- + 3 files changed, 22 insertions(+), 21 deletions(-) + +diff --git a/Makefile.system b/Makefile.system +index 24a7a64..bbcdb82 100644 +--- a/Makefile.system ++++ b/Makefile.system +@@ -502,13 +502,16 @@ endif + + ifdef NO_BINARY_MODE + +-ifeq ($(ARCH), $(filter $(ARCH),mips64 mips)) ++ifeq ($(ARCH), $(filter $(ARCH),mips64)) + ifdef BINARY64 + CCOMMON_OPT += -mabi=64 + else +-CCOMMON_OPT += -mabi=32 ++CCOMMON_OPT += -mabi=n32 + endif + BINARY_DEFINED = 1 ++else ifeq ($(ARCH), $(filter $(ARCH),mips)) ++CCOMMON_OPT += -mabi=32 ++BINARY_DEFINED = 1 + endif + + ifeq ($(CORE), LOONGSON3A) +@@ -599,12 +602,14 @@ ifneq ($(NO_LAPACK), 1) + EXTRALIB += -lgfortran + endif + ifdef NO_BINARY_MODE +-ifeq ($(ARCH), $(filter $(ARCH),mips64 mips)) ++ifeq ($(ARCH), $(filter $(ARCH),mips64)) + ifdef BINARY64 + FCOMMON_OPT += -mabi=64 + else +-FCOMMON_OPT += -mabi=32 ++FCOMMON_OPT += -mabi=n32 + endif ++else ifeq ($(ARCH), $(filter $(ARCH),mips)) ++FCOMMON_OPT += -mabi=32 + endif + else + ifdef BINARY64 +@@ -688,20 +693,6 @@ endif + endif + endif + +-ifeq ($(filter $(ARCH),mips64 mips)) +-ifndef BINARY64 +-FCOMMON_OPT += -m32 +-else +-FCOMMON_OPT += -m64 +-endif +-else +-ifdef BINARY64 +-FCOMMON_OPT += -mabi=64 +-else +-FCOMMON_OPT += -mabi=32 +-endif +-endif +- + ifeq ($(USE_OPENMP), 1) + FCOMMON_OPT += -mp + endif +diff --git a/c_check b/c_check +index 50ff360..9f457df 100644 +--- a/c_check ++++ b/c_check +@@ -79,8 +79,13 @@ if ($os eq "AIX") { + $defined = 1; + } + +-if (($architecture eq "mips") || ($architecture eq "mips64")) { +- $compiler_name .= " -mabi=32" if ($binary eq "32"); ++if ($architecture eq "mips") { ++ $compiler_name .= " -mabi=32"; ++ $defined = 1; ++} ++ ++if ($architecture eq "mips64") { ++ $compiler_name .= " -mabi=n32" if ($binary eq "32"); + $compiler_name .= " -mabi=64" if ($binary eq "64"); + $defined = 1; + } +diff --git a/f_check b/f_check +index 4c03ac7..3520e8b 100644 +--- a/f_check ++++ b/f_check +@@ -223,7 +223,12 @@ if (!$?) { + } + #For gfortran MIPS + if ($?) { +- $link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; ++ $mips_data = `$compiler_bin -E -dM - < /dev/null`; ++ if ($mips_data =~ /_MIPS_ISA_MIPS64/) { ++ $link = `$compiler $openmp -mabi=n32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; ++ } else { ++ $link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; ++ } + } + $binary = "" if ($?); + } +-- +2.7.3 + diff --git a/bsp/buildroot/package/openblas/0002-Makefile.arm-remove-march-flags.patch b/bsp/buildroot/package/openblas/0002-Makefile.arm-remove-march-flags.patch new file mode 100644 index 00000000..39058f7d --- /dev/null +++ b/bsp/buildroot/package/openblas/0002-Makefile.arm-remove-march-flags.patch @@ -0,0 +1,73 @@ +From 71b9e9b7f080c464777d07bd1a917a1c449d2ef8 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 7 Aug 2016 23:20:00 +0200 +Subject: [PATCH] Makefile.arm: remove -march flags + +The provided -march flags, especially for ARMv5 and ARMv6 may not +necessarily match the needed ones: for ARMv5, it might be armv5, +armv5te, armv5t, etc. If the wrong one is used, the incorrect toolchain +sysroot can be used in a multilib toolchain. + +Therefore, let the user building OpenBLAS pass the appropriate -march +flag. + +The other flags, such as -mfpu=vfp or -mfloat-abi=hard are kept, as they +are actually required for the build to proceed (OpenBLAS uses VFP +instructions, and assume an EABIhf ABI). + +Signed-off-by: Thomas Petazzoni +--- + Makefile.arm | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/Makefile.arm b/Makefile.arm +index 62bf275..c0d6ab8 100644 +--- a/Makefile.arm ++++ b/Makefile.arm +@@ -1,31 +1,31 @@ + # ifeq logical or + ifeq ($(CORE), $(filter $(CORE),CORTEXA9 CORTEXA15)) + ifeq ($(OSNAME), Android) +-CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a +-FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a ++CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard ++FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard + else +-CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a +-FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a ++CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard ++FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard + endif + endif + + ifeq ($(CORE), ARMV7) + ifeq ($(OSNAME), Android) +-CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a -Wl,--no-warn-mismatch +-FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -march=armv7-a -Wl,--no-warn-mismatch ++CCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -Wl,--no-warn-mismatch ++FCOMMON_OPT += -marm -mfpu=neon -mfloat-abi=hard -Wl,--no-warn-mismatch + else +-CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a +-FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a ++CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard ++FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard + endif + endif + + ifeq ($(CORE), ARMV6) +-CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 +-FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 ++CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard ++FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard + endif + + + ifeq ($(CORE), ARMV5) +-CCOMMON_OPT += -marm -march=armv5 +-FCOMMON_OPT += -marm -march=armv5 ++CCOMMON_OPT += -marm ++FCOMMON_OPT += -marm + endif +-- +2.7.4 + diff --git a/bsp/buildroot/package/openblas/Config.in b/bsp/buildroot/package/openblas/Config.in new file mode 100644 index 00000000..0609a91e --- /dev/null +++ b/bsp/buildroot/package/openblas/Config.in @@ -0,0 +1,75 @@ +config BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET + string + default "P2" if BR2_x86_pentium2 + default "KATMAI" if BR2_x86_pentium3 + default "NORTHWOOD" if BR2_x86_pentium4 + default "PRESCOTT" if BR2_x86_prescott + default "BANIAS" if BR2_x86_pentium_m + default "CORE2" if BR2_x86_core2 + default "NEHALEM" if BR2_x86_corei7 + default "SANDYBRIDGE" if BR2_x86_corei7_avx + default "HASWELL" if BR2_x86_core_avx2 + default "ATOM" if BR2_x86_atom + default "ATHLON" if BR2_x86_athlon || BR2_x86_athlon_4 + default "OPTERON" if BR2_x86_opteron + default "OPTERON_SSE3" if BR2_x86_opteron_sse3 + default "BARCELONA" if BR2_x86_barcelona + default "STEAMROLLER" if BR2_x86_steamroller + default "VIAC3" if BR2_x86_c3 || BR2_x86_c32 + default "SSE_GENERIC" if BR2_X86_CPU_HAS_SSE + default "POWER4" if BR2_powerpc_power4 + default "POWER5" if BR2_powerpc_power5 + default "POWER6" if BR2_powerpc_power6 + default "POWER7" if BR2_powerpc_power7 + default "POWER8" if BR2_powerpc_power8 + default "PPCG4" if BR2_powerpc_7400 || BR2_powerpc_7450 + default "PPC970" if BR2_powerpc_970 + default "PPC440" if BR2_powerpc_440 + default "PPC440FP2" if BR2_powerpc_440fp + # P5600 is built with MSA support which is only available in Codescape toolchains + default "P5600" if BR2_mips_32r2 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS + default "SICORTEX" if BR2_mips_64 + # I6400 is built with MSA support which is only available in Codescape toolchains + default "I6400" if BR2_mips_64r6 && BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS + default "SPARC" if BR2_sparc + # Cortex-A15 always have a VFPv4 + default "CORTEXA15" if (BR2_cortex_a15 && BR2_ARM_EABIHF) + # Cortex-A9 have an optional VFPv3, so we need to make sure it + # is available + default "CORTEXA9" if (BR2_cortex_a9 && BR2_ARM_EABIHF && \ + BR2_ARM_CPU_HAS_VFPV3) + default "ARMV5" if BR2_ARM_CPU_ARMV5 + # On ARMv6, OpenBLAS assumes that a VFP is available, and + # EABIhf is used + default "ARMV6" if (BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && \ + BR2_ARM_CPU_HAS_VFPV2) + # On ARMv7, OpenBLAS assumes that a full VFPv3+ is available + # (and not the more limited D16 variant), and that EABIhf is + # used. + default "ARMV7" if (BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && \ + BR2_ARM_CPU_HAS_VFPV3) + default "ARMV8" if BR2_aarch64 || BR2_aarch64_be + help + OpenBLAS target CPU. See TargetList.txt in the source tree for + the possible target strings. A possible value is set + automatically based on your Target Architecture Variant. + +config BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS + bool + default y if BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET != "" + +config BR2_PACKAGE_OPENBLAS + bool "openblas" + depends on BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS + help + An optimized BLAS library based on GotoBLAS2 1.13 BSD version. + + https://www.openblas.net/ + +if BR2_PACKAGE_OPENBLAS + +config BR2_PACKAGE_OPENBLAS_TARGET + string "OpenBLAS target CPU" + default BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET + +endif diff --git a/bsp/buildroot/package/openblas/openblas.hash b/bsp/buildroot/package/openblas/openblas.hash new file mode 100644 index 00000000..b402cac5 --- /dev/null +++ b/bsp/buildroot/package/openblas/openblas.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2ad0270a39dbaf891b439baacf198ea4ab149cd6ed39a5f50c494723f1936be5 openblas-f04af36ad0e85b64f12a7c38095383192cc52345.tar.gz diff --git a/bsp/buildroot/package/openblas/openblas.mk b/bsp/buildroot/package/openblas/openblas.mk new file mode 100644 index 00000000..9583e0ea --- /dev/null +++ b/bsp/buildroot/package/openblas/openblas.mk @@ -0,0 +1,69 @@ +################################################################################ +# +# openblas +# +################################################################################ + +OPENBLAS_VERSION = f04af36ad0e85b64f12a7c38095383192cc52345 +OPENBLAS_SITE = $(call github,xianyi,OpenBLAS,$(OPENBLAS_VERSION)) +OPENBLAS_LICENSE = BSD-3c +OPENBLAS_LICENSE_FILES = LICENSE +OPENBLAS_INSTALL_STAGING = YES + +# Initialise OpenBLAS make options to $(TARGET_CONFIGURE_OPTS) +OPENBLAS_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) + +# Enable cross-compiling +OPENBLAS_MAKE_OPTS += CROSS=1 + +# Set OpenBLAS target +OPENBLAS_MAKE_OPTS += TARGET=$(BR2_PACKAGE_OPENBLAS_TARGET) + +# When Fortran is not available, only build the C version of BLAS +ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),) +OPENBLAS_MAKE_OPTS += ONLY_CBLAS=1 +endif + +# Enable/Disable multi-threading (not for static-only since it uses dlfcn.h) +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS):$(BR2_STATIC_LIBS),y:) +OPENBLAS_MAKE_OPTS += USE_THREAD=1 +else +OPENBLAS_MAKE_OPTS += USE_THREAD=0 +endif + +# Static-only/Shared-only toggle +ifeq ($(BR2_STATIC_LIBS),y) +OPENBLAS_MAKE_OPTS += NO_SHARED=1 +else ifeq ($(BR2_SHARED_LIBS),y) +OPENBLAS_MAKE_OPTS += NO_STATIC=1 +endif + +# binutils version <= 2.23.2 has a bug +# (https://sourceware.org/bugzilla/show_bug.cgi?id=14887) where +# whitespaces in ARM register specifications such as [ r1, #12 ] or [ +# r2 ] cause the assembler to reject the code. Since there are +# numerous instances of such cases in the code, we use sed rather than +# a patch. We simply replace [ foobar ] by [foobar] to work around the +# problem. +define OPENBLAS_FIXUP_ARM_ASSEMBLY + $(SED) 's%\[\s*%\[%;s%\s*\]%\]%' $(@D)/kernel/arm/*.S +endef + +OPENBLAS_POST_PATCH_HOOKS += OPENBLAS_FIXUP_ARM_ASSEMBLY + +define OPENBLAS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(OPENBLAS_MAKE_OPTS) \ + -C $(@D) +endef + +define OPENBLAS_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(OPENBLAS_MAKE_OPTS) \ + -C $(@D) install PREFIX=$(STAGING_DIR)/usr +endef + +define OPENBLAS_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(OPENBLAS_MAKE_OPTS) \ + -C $(@D) install PREFIX=$(TARGET_DIR)/usr +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/opencv/0001-atomic.patch b/bsp/buildroot/package/opencv/0001-atomic.patch new file mode 100644 index 00000000..bbe8d433 --- /dev/null +++ b/bsp/buildroot/package/opencv/0001-atomic.patch @@ -0,0 +1,229 @@ +Bug#714923: opencv FTBFS on sparc64 +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714923 + +opencv uses functions from , but it wrongly assumes +this functions apply to an int type. While it is true for some +architectures, some architectures are using a long type there. The +correct type to use is _Atomic_word. + +Signed-off-by: Waldemar Brodkorb + +diff -Nur opencv-2.4.12.3.orig/modules/core/include/opencv2/core/core.hpp opencv-2.4.12.3/modules/core/include/opencv2/core/core.hpp +--- opencv-2.4.12.3.orig/modules/core/include/opencv2/core/core.hpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/include/opencv2/core/core.hpp 2016-04-03 00:10:50.455774144 +0200 +@@ -1290,7 +1290,7 @@ + operator const _Tp*() const; + + _Tp* obj; //< the object pointer. +- int* refcount; //< the associated reference counter ++ _Atomic_word* refcount; //< the associated reference counter + }; + + template +@@ -1490,9 +1490,9 @@ + public: + MatAllocator() {} + virtual ~MatAllocator() {} +- virtual void allocate(int dims, const int* sizes, int type, int*& refcount, ++ virtual void allocate(int dims, const int* sizes, int type, _Atomic_word*& refcount, + uchar*& datastart, uchar*& data, size_t* step) = 0; +- virtual void deallocate(int* refcount, uchar* datastart, uchar* data) = 0; ++ virtual void deallocate(_Atomic_word* refcount, uchar* datastart, uchar* data) = 0; + }; + + /*! +@@ -1985,7 +1985,7 @@ + + //! pointer to the reference counter; + // when matrix points to user-allocated data, the pointer is NULL +- int* refcount; ++ _Atomic_word* refcount; + + //! helper fields used in locateROI and adjustROI + uchar* datastart; +@@ -3408,7 +3408,7 @@ + { + Hdr(int _dims, const int* _sizes, int _type); + void clear(); +- int refcount; ++ _Atomic_word refcount; + int dims; + int valueOffset; + size_t nodeSize; +diff -Nur opencv-2.4.12.3.orig/modules/core/include/opencv2/core/gpumat.hpp opencv-2.4.12.3/modules/core/include/opencv2/core/gpumat.hpp +--- opencv-2.4.12.3.orig/modules/core/include/opencv2/core/gpumat.hpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/include/opencv2/core/gpumat.hpp 2016-04-02 23:08:58.116874218 +0200 +@@ -301,7 +301,7 @@ + + //! pointer to the reference counter; + // when GpuMatrix points to user-allocated data, the pointer is NULL +- int* refcount; ++ _Atomic_word* refcount; + + //! helper fields used in locateROI and adjustROI + uchar* datastart; +diff -Nur opencv-2.4.12.3.orig/modules/core/include/opencv2/core/operations.hpp opencv-2.4.12.3/modules/core/include/opencv2/core/operations.hpp +--- opencv-2.4.12.3.orig/modules/core/include/opencv2/core/operations.hpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/include/opencv2/core/operations.hpp 2016-04-02 23:12:59.148385306 +0200 +@@ -2589,7 +2589,7 @@ + { + if(obj) + { +- refcount = (int*)fastMalloc(sizeof(*refcount)); ++ refcount = (_Atomic_word*)fastMalloc(sizeof(*refcount)); + *refcount = 1; + } + else +@@ -2628,7 +2628,7 @@ + { + if (this != &_ptr) + { +- int* _refcount = _ptr.refcount; ++ _Atomic_word* _refcount = _ptr.refcount; + if( _refcount ) + CV_XADD(_refcount, 1); + release(); +diff -Nur opencv-2.4.12.3.orig/modules/core/src/gpumat.cpp opencv-2.4.12.3/modules/core/src/gpumat.cpp +--- opencv-2.4.12.3.orig/modules/core/src/gpumat.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/src/gpumat.cpp 2016-04-02 23:14:38.894804300 +0200 +@@ -716,7 +716,7 @@ + datastart = data = static_cast(devPtr); + dataend = data + nettosize; + +- refcount = static_cast(fastMalloc(sizeof(*refcount))); ++ refcount = static_cast<_Atomic_word*>(fastMalloc(sizeof(*refcount))); + *refcount = 1; + } + } +diff -Nur opencv-2.4.12.3.orig/modules/core/src/matrix.cpp opencv-2.4.12.3/modules/core/src/matrix.cpp +--- opencv-2.4.12.3.orig/modules/core/src/matrix.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/src/matrix.cpp 2016-04-02 23:59:53.405491031 +0200 +@@ -213,7 +213,7 @@ + { + size_t totalsize = alignSize(step.p[0]*size.p[0], (int)sizeof(*refcount)); + data = datastart = (uchar*)fastMalloc(totalsize + (int)sizeof(*refcount)); +- refcount = (int*)(data + totalsize); ++ refcount = (_Atomic_word*)(data + totalsize); + *refcount = 1; + } + else +@@ -228,7 +228,7 @@ + allocator = 0; + size_t totalSize = alignSize(step.p[0]*size.p[0], (int)sizeof(*refcount)); + data = datastart = (uchar*)fastMalloc(totalSize + (int)sizeof(*refcount)); +- refcount = (int*)(data + totalSize); ++ refcount = (_Atomic_word*)(data + totalSize); + *refcount = 1; + } + #else +diff -Nur opencv-2.4.12.3.orig/modules/core/src/system.cpp opencv-2.4.12.3/modules/core/src/system.cpp +--- opencv-2.4.12.3.orig/modules/core/src/system.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/src/system.cpp 2016-04-02 23:33:19.298905578 +0200 +@@ -892,7 +892,7 @@ + void unlock() { LeaveCriticalSection(&cs); } + + CRITICAL_SECTION cs; +- int refcount; ++ _Atomic_word refcount; + }; + + #ifndef __GNUC__ +@@ -920,7 +920,7 @@ + void unlock() { OSSpinLockUnlock(&sl); } + + OSSpinLock sl; +- int refcount; ++ _Atomic_word refcount; + }; + + #elif defined __linux__ && !defined ANDROID && !defined __LINUXTHREADS_OLD__ +@@ -935,7 +935,7 @@ + void unlock() { pthread_spin_unlock(&sl); } + + pthread_spinlock_t sl; +- int refcount; ++ _Atomic_word refcount; + }; + + #else +@@ -950,7 +950,7 @@ + void unlock() { pthread_mutex_unlock(&sl); } + + pthread_mutex_t sl; +- int refcount; ++ _Atomic_word refcount; + }; + + #endif +diff -Nur opencv-2.4.12.3.orig/modules/gpu/include/opencv2/gpu/gpu.hpp opencv-2.4.12.3/modules/gpu/include/opencv2/gpu/gpu.hpp +--- opencv-2.4.12.3.orig/modules/gpu/include/opencv2/gpu/gpu.hpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/gpu/include/opencv2/gpu/gpu.hpp 2016-04-02 23:16:19.737293785 +0200 +@@ -125,7 +125,7 @@ + size_t step; + + uchar* data; +- int* refcount; ++ _Atomic_word* refcount; + + uchar* datastart; + uchar* dataend; +diff -Nur opencv-2.4.12.3.orig/modules/ocl/include/opencv2/ocl/ocl.hpp opencv-2.4.12.3/modules/ocl/include/opencv2/ocl/ocl.hpp +--- opencv-2.4.12.3.orig/modules/ocl/include/opencv2/ocl/ocl.hpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/ocl/include/opencv2/ocl/ocl.hpp 2016-04-02 23:18:55.715331443 +0200 +@@ -404,7 +404,7 @@ + + //! pointer to the reference counter; + // when oclMatrix points to user-allocated data, the pointer is NULL +- int *refcount; ++ _Atomic_word *refcount; + + //! helper fields used in locateROI and adjustROI + //datastart and dataend are not used in current version +diff -Nur opencv-2.4.12.3.orig/modules/ocl/src/matrix_operations.cpp opencv-2.4.12.3/modules/ocl/src/matrix_operations.cpp +--- opencv-2.4.12.3.orig/modules/ocl/src/matrix_operations.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/ocl/src/matrix_operations.cpp 2016-04-02 23:19:23.633128033 +0200 +@@ -591,7 +591,7 @@ + datastart = data = (uchar *)dev_ptr; + dataend = data + nettosize; + +- refcount = (int *)fastMalloc(sizeof(*refcount)); ++ refcount = (_Atomic_word *)fastMalloc(sizeof(*refcount)); + *refcount = 1; + } + } +diff -Nur opencv-2.4.12.3.orig/modules/python/src2/cv2.cpp opencv-2.4.12.3/modules/python/src2/cv2.cpp +--- opencv-2.4.12.3.orig/modules/python/src2/cv2.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/python/src2/cv2.cpp 2016-04-02 23:18:34.897991791 +0200 +@@ -157,12 +157,12 @@ + static size_t REFCOUNT_OFFSET = (size_t)&(((PyObject*)0)->ob_refcnt) + + (0x12345678 != *(const size_t*)"\x78\x56\x34\x12\0\0\0\0\0")*sizeof(int); + +-static inline PyObject* pyObjectFromRefcount(const int* refcount) ++static inline PyObject* pyObjectFromRefcount(const _Atomic_word* refcount) + { + return (PyObject*)((size_t)refcount - REFCOUNT_OFFSET); + } + +-static inline int* refcountFromPyObject(const PyObject* obj) ++static inline _Atomic_word* refcountFromPyObject(const PyObject* obj) + { + return (int*)((size_t)obj + REFCOUNT_OFFSET); + } +@@ -173,7 +173,7 @@ + NumpyAllocator() {} + ~NumpyAllocator() {} + +- void allocate(int dims, const int* sizes, int type, int*& refcount, ++ void allocate(int dims, const int* sizes, int type, _Atomic_word*& refcount, + uchar*& datastart, uchar*& data, size_t* step) + { + PyEnsureGIL gil; +@@ -206,7 +206,7 @@ + datastart = data = (uchar*)PyArray_DATA((PyArrayObject*) o); + } + +- void deallocate(int* refcount, uchar*, uchar*) ++ void deallocate(_Atomic_word* refcount, uchar*, uchar*) + { + PyEnsureGIL gil; + if( !refcount ) diff --git a/bsp/buildroot/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch b/bsp/buildroot/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch deleted file mode 100644 index 9e8c2e98..00000000 --- a/bsp/buildroot/package/opencv/0001-core-fix-x86-PIC-code-compilation.patch +++ /dev/null @@ -1,49 +0,0 @@ -From ea50be0529c248961e1b66293f8a9e4b807294a6 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sun, 12 Oct 2014 10:17:23 +0200 -Subject: [PATCH] core: fix x86 PIC code compilation - -This bug was triggered by Buildroot autobuilders [1,2], causing this -kind of failures [3,4]: - - [ 14%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o - /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp: In function '(static initializers for /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp)': - /home/test/autobuild/instance-0/output/build/opencv-2.4.10/modules/core/src/system.cpp:280:10: error: inconsistent operand constraints in an 'asm' - make[3]: *** [modules/core/CMakeFiles/opencv_core.dir/src/system.cpp.o] Error 1 - -[1] http://buildroot.org/ -[2] http://autobuild.buildroot.org/ -[3] http://autobuild.buildroot.org/?reason=opencv-2.4.10 -[4] http://autobuild.buildroot.org/results/483/4838285b25d6293a5cf0bb9eadd5040a7c75d766/build-end.log - -Signed-off-by: Samuel Martin ---- - modules/core/src/system.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp -index 5a970d5..e9ffdc7 100644 ---- a/modules/core/src/system.cpp -+++ b/modules/core/src/system.cpp -@@ -267,14 +267,17 @@ struct HWFeatures - : "cc" - ); - #else -+ // We need to preserve ebx since we are compiling PIC code. -+ // This means we cannot use "=b" for the 2nd output register. - asm volatile - ( - "pushl %%ebx\n\t" - "movl $7,%%eax\n\t" - "movl $0,%%ecx\n\t" - "cpuid\n\t" -+ "movl %%ebx,%1\n\t" - "popl %%ebx\n\t" -- : "=a"(cpuid_data[0]), "=b"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3]) -+ : "=a"(cpuid_data[0]), "=r"(cpuid_data[1]), "=c"(cpuid_data[2]), "=d"(cpuid_data[3]) - : - : "cc" - ); --- -2.1.2 - diff --git a/bsp/buildroot/package/opencv/0002-avoid-sysctl_h.patch b/bsp/buildroot/package/opencv/0002-avoid-sysctl_h.patch new file mode 100644 index 00000000..60322054 --- /dev/null +++ b/bsp/buildroot/package/opencv/0002-avoid-sysctl_h.patch @@ -0,0 +1,31 @@ +From upstream master branch: +https://github.com/Itseez/opencv/blob/master/modules/core/src/ + +Do not include sysctl.h targeting Linux systems. + +Signed-off-by: Waldemar Brodkorb + +diff -Nur opencv-2.4.12.3.orig/modules/core/src/parallel.cpp opencv-2.4.12.3/modules/core/src/parallel.cpp +--- opencv-2.4.12.3.orig/modules/core/src/parallel.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/src/parallel.cpp 2016-04-05 12:59:37.750143762 +0200 +@@ -56,7 +56,7 @@ + #include + #if defined ANDROID + #include +- #else ++ #elif defined __APPLE__ + #include + #endif + #endif +diff -Nur opencv-2.4.12.3.orig/modules/core/src/system.cpp opencv-2.4.12.3/modules/core/src/system.cpp +--- opencv-2.4.12.3.orig/modules/core/src/system.cpp 2015-10-26 08:56:34.000000000 +0100 ++++ opencv-2.4.12.3/modules/core/src/system.cpp 2016-04-05 13:05:22.468323717 +0200 +@@ -163,7 +163,7 @@ + #include + #if defined ANDROID + #include +-#else ++#elif defined __APPLE__ + #include + #endif + #endif diff --git a/bsp/buildroot/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch b/bsp/buildroot/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch deleted file mode 100644 index d71235d4..00000000 --- a/bsp/buildroot/package/opencv/0002-superres-Fix-return-type-value-VideoFrameSource_GPU.patch +++ /dev/null @@ -1,40 +0,0 @@ -superres: Fix return value VideoFrameSource_GPU - -Signed-off-by: Vicente Olivert Riera - -From 2e393ab83362743ba1825ad4b31d4a2925c606b4 Mon Sep 17 00:00:00 2001 -From: Vicente Olivert Riera -Date: Mon, 27 Oct 2014 13:39:35 +0000 -Subject: [PATCH] superres: Fix return value VideoFrameSource_GPU - -superres module fails to compile with the following error messages: - -[100%] Building CXX object modules/superres/CMakeFiles/opencv_superres.dir/src/super_resolution.cpp.o -/opencv-2.4.10/modules/superres/src/frame_source.cpp: In function 'cv::Ptr cv::superres::createFrameSource_Video_GPU(const string&)': -/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: expected type-specifier before 'VideoFrameSource' -/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: could not convert '(int*)operator new(4ul)' from 'int*' to 'cv::Ptr' -/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:16: error: expected ';' before 'VideoFrameSource' -/opencv-2.4.10/modules/superres/src/frame_source.cpp:263:41: error: 'VideoFrameSource' was not declared in this scope -/opencv-2.4.10/modules/superres/src/frame_source.cpp:264:1: error: control reaches end of non-void function [-Werror=return-type] -cc1plus: some warnings being treated as errors -make[3]: *** [modules/superres/CMakeFiles/opencv_superres.dir/src/frame_source.cpp.o] Error 1 -make[3]: *** Waiting for unfinished jobs.... - -This is caused because the return value of the createFrameSource_Video_GPU function should be a VideoFrameSource_GPU object. ---- - modules/superres/src/frame_source.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules/superres/src/frame_source.cpp b/modules/superres/src/frame_source.cpp -index 5f59a98..c5b2e76 100644 ---- a/modules/superres/src/frame_source.cpp -+++ b/modules/superres/src/frame_source.cpp -@@ -260,7 +260,7 @@ namespace - - Ptr cv::superres::createFrameSource_Video_GPU(const string& fileName) - { -- return new VideoFrameSource(fileName); -+ return new VideoFrameSource_GPU(fileName); - } - - #endif // HAVE_OPENCV_GPU diff --git a/bsp/buildroot/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch b/bsp/buildroot/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch deleted file mode 100644 index 768f08d7..00000000 --- a/bsp/buildroot/package/opencv/0003-cmake-OpenCVGenPkgconfig.cmake-rework-opencv.pc-gene.patch +++ /dev/null @@ -1,156 +0,0 @@ -From eceada586bbf18fc267e437522ec4f1f23ddc656 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Fri, 3 Oct 2014 00:32:40 +0200 -Subject: [PATCH] cmake/OpenCVGenPkgconfig.cmake: rework opencv.pc generation - -Using absolute path to locate the components in the "Libs:" field of the -*.pc can badly break cross-compilation, especially when building -statically linked objects. - -Indeed, pkg-config automatically replaces the '-I...' and '-L...' paths -when the PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_LIBDIR environment -variables are set [1]. This feature is very helpful and common in -cross-compilation framework like Buildroot [2,3]. - -When there are absolute paths in the *.pc files, pkg-config won't be -able to do the path substitions for these paths when the afromentioned -environment variables are set. -In such case, since the prefix is the target one, not the sysroot one, -these libraries' abolute paths will point to: -- in the best case: a non-existing file (i.e. these files do not exists - on the host system; -- at worst: the host system's libraries. This will make the linking - failed because these host system's libraries will most likely not be - build for the target architecture [4]. - -So, this patch replace the components' absolute paths by the form: - -L -l - -This way, the linker will be able to resolve each dependency path, -whatever the kind of objects/build (shared object or static build) it -is dealing with. - -Note that for static link, the library order does matter [5]. The order -of the opencv components has been carefully chosen to comply with this -requirement. - -Fixes #3931 - -[1] http://linux.die.net/man/1/pkg-config -[2] http://buildroot.org/ -[3] http://git.buildroot.net/buildroot/tree/package/pkgconf/pkg-config.in -[4] http://autobuild.buildroot.net/results/e8a/e8a859276db34aff87ef181b0cce98916b0afc90/build-end.log -[5] http://stackoverflow.com/questions/45135/linker-order-gcc - -Signed-off-by: Samuel Martin - ---- -Note: this patch properly applies on top of the master branch, though it - has been written on top of the 2.4 branch. ---- - cmake/OpenCVGenPkgconfig.cmake | 64 +++++++++++++++++++++++++++--------------- - 1 file changed, 42 insertions(+), 22 deletions(-) - -diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake -index fa57db9..183c56d 100644 ---- a/cmake/OpenCVGenPkgconfig.cmake -+++ b/cmake/OpenCVGenPkgconfig.cmake -@@ -8,10 +8,6 @@ - # - # ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install" - # ------------------------------------------------------------------------------------------- --set(prefix "${CMAKE_INSTALL_PREFIX}") --set(exec_prefix "\${prefix}") --set(libdir "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS --set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}") - - if(CMAKE_BUILD_TYPE MATCHES "Release") - set(ocv_optkind OPT) -@@ -35,42 +31,66 @@ ocv_list_reverse(OpenCV_LIB_COMPONENTS) - ocv_list_reverse(OpenCV_EXTRA_COMPONENTS) - - #build the list of components --set(OpenCV_LIB_COMPONENTS_ "") --foreach(CVLib ${OpenCV_LIB_COMPONENTS}) -- get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE}) -- get_filename_component(libname "${libpath}" NAME) - -- if(INSTALL_TO_MANGLED_PATHS) -- set(libname "${libname}.${OPENCV_VERSION}") -- endif() -+# Note: -+# when linking against static libraries, if libfoo depends on libbar, then -+# libfoo must come first in the linker flags. -+ -+# world is a special target whose library should come first, especially for -+# static link. -+if(OpenCV_LIB_COMPONENTS MATCHES "opencv_world") -+ list(REMOVE_ITEM OpenCV_LIB_COMPONENTS "opencv_world") -+ list(INSERT OpenCV_LIB_COMPONENTS 0 "opencv_world") -+endif() -+ -+set(OpenCV_LIB_COMPONENTS_) -+foreach(CVLib ${OpenCV_LIB_COMPONENTS}) - -- #need better solution.... -- if(libpath MATCHES "3rdparty") -- set(installDir "share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}") -+ get_target_property(libloc ${CVLib} LOCATION_${CMAKE_BUILD_TYPE}) -+ if(libloc MATCHES "3rdparty") -+ set(libpath "\${exec_prefix}/share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}") - else() -- set(installDir "${OPENCV_LIB_INSTALL_PATH}") -+ set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}") - endif() -+ list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}") -+ -+ get_filename_component(libname ${CVLib} NAME_WE) -+ string(REGEX REPLACE "^lib" "" libname "${libname}") -+ list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}") - -- set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}") - endforeach() - - # add extra dependencies required for OpenCV --set(OpenCV_LIB_COMPONENTS ${OpenCV_LIB_COMPONENTS_}) - if(OpenCV_EXTRA_COMPONENTS) - foreach(extra_component ${OpenCV_EXTRA_COMPONENTS}) - -- if(extra_component MATCHES "^-[lL]" OR extra_component MATCHES "[\\/]") -- set(maybe_l_prefix "") -+ if(extra_component MATCHES "^-[lL]") -+ set(libprefix "") -+ set(libname "${extra_component}") -+ elseif(extra_component MATCHES "[\\/]") -+ get_filename_component(libdir "${extra_component}" PATH) -+ list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libdir}") -+ get_filename_component(libname "${extra_component}" NAME_WE) -+ string(REGEX REPLACE "^lib" "" libname "${libname}") -+ set(libprefix "-l") - else() -- set(maybe_l_prefix "-l") -+ set(libprefix "-l") -+ set(libname "${extra_component}") - endif() -- -- set(OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS} ${maybe_l_prefix}${extra_component}") -+ list(APPEND OpenCV_LIB_COMPONENTS_ "${libprefix}${libname}") - - endforeach() - endif() - -+list(REMOVE_DUPLICATES OpenCV_LIB_COMPONENTS_) -+string(REPLACE ";" " " OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS_}") -+ - #generate the .pc file -+set(prefix "${CMAKE_INSTALL_PREFIX}") -+set(exec_prefix "\${prefix}") -+set(libdir "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}") -+set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}") -+ - if(INSTALL_TO_MANGLED_PATHS) - set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc") - else() --- -2.4.1 - diff --git a/bsp/buildroot/package/opencv/Config.in b/bsp/buildroot/package/opencv/Config.in index 8bc6c347..c046baaa 100644 --- a/bsp/buildroot/package/opencv/Config.in +++ b/bsp/buildroot/package/opencv/Config.in @@ -17,70 +17,105 @@ comment "OpenCV modules" config BR2_PACKAGE_OPENCV_LIB_CALIB3D bool "calib3d" default y + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_calib3d module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_CONTRIB bool "contrib" default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_ML + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_contrib module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_FEATURES2D bool "features2d" default y + select BR2_PACKAGE_OPENCV_LIB_FLANN + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_features2d module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_FLANN bool "flann" default y + # opencv_core dependency is already enabled help Include opencv_flann module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_GPU bool "gpu" + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # opencv libphoto + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_LEGACY + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT + select BR2_PACKAGE_OPENCV_LIB_PHOTO + select BR2_PACKAGE_OPENCV_LIB_VIDEO + depends on !BR2_STATIC_LIBS help Include opencv_gpu module into the OpenCV build. +comment "gpu module needs a toolchain w/ dynamic libraries" + depends on BR2_STATIC_LIBS + config BR2_PACKAGE_OPENCV_LIB_HIGHGUI bool "highgui" default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_highgui module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_IMGPROC bool "imgproc" default y + # opencv_core dependency is already enabled help Include opencv_imgproc module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_LEGACY bool "legacy" default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_ML + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_legacy module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_ML bool "ml (machine learning)" default y + # opencv_core dependency is already enabled help Include opencv_ml module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_NONFREE bool "nonfree" + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_nonfree module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_OBJDETECT bool "objdetect" default y + # opencv_core dependency is already enabled + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_objdetect module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_PHOTO bool "photo" default y + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Binutils 2.25 nios2 issue + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_photo module into the OpenCV build. @@ -89,50 +124,77 @@ comment "opencv_python module requires numpy which is not yet available." config BR2_PACKAGE_OPENCV_LIB_STITCHING bool "stitching" default y + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_OBJDETECT help Include opencv_stitching module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_SUPERRES bool "superres" default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_superres "super resolution" - module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_TS bool "ts (touchscreen)" - select BR2_PACKAGE_OPENCV_LIB_HIGHGUI default y + # opencv_core dependency is already enabled + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_ts module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_VIDEO bool "video" default y + select BR2_PACKAGE_OPENCV_LIB_IMGPROC help Include opencv_video module into the OpenCV build. config BR2_PACKAGE_OPENCV_LIB_VIDEOSTAB bool "videostab" default y + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # opencv libphoto + select BR2_PACKAGE_OPENCV_LIB_CALIB3D + select BR2_PACKAGE_OPENCV_LIB_FEATURES2D + select BR2_PACKAGE_OPENCV_LIB_HIGHGUI + select BR2_PACKAGE_OPENCV_LIB_IMGPROC + select BR2_PACKAGE_OPENCV_LIB_PHOTO + select BR2_PACKAGE_OPENCV_LIB_VIDEO help Include opencv_videostab module into the OpenCV build. +if !BR2_STATIC_LIBS + comment "Test sets" + config BR2_PACKAGE_OPENCV_BUILD_TESTS bool "build tests" config BR2_PACKAGE_OPENCV_BUILD_PERF_TESTS bool "build performance tests" +endif + +comment "Tests sets need a toolchain w/ dynamic libraries" + depends on BR2_STATIC_LIBS + comment "3rd party support" config BR2_PACKAGE_OPENCV_WITH_FFMPEG bool "ffmpeg support" + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_SWSCALE - depends on !BR2_nios2 # ffmpeg help Use ffmpeg from the target system. @@ -210,6 +272,7 @@ config BR2_PACKAGE_OPENCV_WITH_QT depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # qt depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_QT select BR2_PACKAGE_QT_STL select BR2_PACKAGE_QT_GUI_MODULE @@ -217,6 +280,9 @@ config BR2_PACKAGE_OPENCV_WITH_QT help Use Qt with QtTest module and STL support +comment "qt backend support needs a toolchain not affected by Binutils bug 19405" + depends on BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 + config BR2_PACKAGE_OPENCV_WITH_TIFF bool "tiff support" select BR2_PACKAGE_TIFF diff --git a/bsp/buildroot/package/opencv/opencv.hash b/bsp/buildroot/package/opencv/opencv.hash new file mode 100644 index 00000000..9686cb28 --- /dev/null +++ b/bsp/buildroot/package/opencv/opencv.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 94ebcca61c30034d5fb16feab8ec12c8a868f5162d20a9f0396f0f5f6d8bbbff opencv-2.4.13.tar.gz diff --git a/bsp/buildroot/package/opencv/opencv.mk b/bsp/buildroot/package/opencv/opencv.mk index 21c0268a..947589b8 100644 --- a/bsp/buildroot/package/opencv/opencv.mk +++ b/bsp/buildroot/package/opencv/opencv.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPENCV_VERSION = 2.4.10 +OPENCV_VERSION = 2.4.13 OPENCV_SITE = $(call github,itseez,opencv,$(OPENCV_VERSION)) OPENCV_INSTALL_STAGING = YES OPENCV_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/opencv3/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch b/bsp/buildroot/package/opencv3/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch deleted file mode 100644 index 2be8f33d..00000000 --- a/bsp/buildroot/package/opencv3/0001-Fixed-compilation-of-pthread-based-parallel_for-with-gcc-4.4.3.patch +++ /dev/null @@ -1,62 +0,0 @@ -Backport from https://github.com/Itseez/opencv/commit/1f983ec39c97298b0c8ce409a1cc229ecf14e55c - -From 1f983ec39c97298b0c8ce409a1cc229ecf14e55c Mon Sep 17 00:00:00 2001 -From: Maksim Shabunin -Date: Tue, 9 Jun 2015 13:59:48 +0300 -Subject: [PATCH] Fixed compilation of pthread-based parallel_for with gcc - 4.4.3 - -Signed-off-by: Samuel Martin ---- - modules/core/src/parallel.cpp | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp -index b1e7567..0b593ee 100644 ---- a/modules/core/src/parallel.cpp -+++ b/modules/core/src/parallel.cpp -@@ -132,8 +132,14 @@ - namespace cv - { - ParallelLoopBody::~ParallelLoopBody() {} -+#if defined HAVE_PTHREADS && HAVE_PTHREADS -+ void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes); -+ size_t parallel_pthreads_get_threads_num(); -+ void parallel_pthreads_set_threads_num(int num); -+#endif - } - -+ - namespace - { - #ifdef CV_PARALLEL_FRAMEWORK -@@ -301,7 +307,7 @@ void cv::parallel_for_(const cv::Range& range, const cv::ParallelLoopBody& body, - } - - #elif defined HAVE_PTHREADS -- void parallel_for_pthreads(const Range& range, const ParallelLoopBody& body, double nstripes); -+ - parallel_for_pthreads(range, body, nstripes); - - #else -@@ -361,8 +367,6 @@ int cv::getNumThreads(void) - - #elif defined HAVE_PTHREADS - -- size_t parallel_pthreads_get_threads_num(); -- - return parallel_pthreads_get_threads_num(); - - #else -@@ -424,8 +428,6 @@ void cv::setNumThreads( int threads ) - - #elif defined HAVE_PTHREADS - -- void parallel_pthreads_set_threads_num(int num); -- - parallel_pthreads_set_threads_num(threads); - - #endif --- -2.4.4 - diff --git a/bsp/buildroot/package/opencv3/0002-fix-support-for-pthreads-parallel_for.patch b/bsp/buildroot/package/opencv3/0002-fix-support-for-pthreads-parallel_for.patch deleted file mode 100644 index 6eeb270e..00000000 --- a/bsp/buildroot/package/opencv3/0002-fix-support-for-pthreads-parallel_for.patch +++ /dev/null @@ -1,212 +0,0 @@ -Backport from https://github.com/Itseez/opencv/commit/a482dcce464acbd5368fb93c6c3d52ba8401776a - -From a482dcce464acbd5368fb93c6c3d52ba8401776a Mon Sep 17 00:00:00 2001 -From: Alexander Alekhin -Date: Thu, 11 Jun 2015 16:53:07 +0300 -Subject: [PATCH] fix support for pthreads parallel_for - -Signed-off-by: Samuel Martin ---- - CMakeLists.txt | 29 ++++++++++++++++++++++------- - cmake/OpenCVFindLibsPerf.cmake | 14 +++++++++----- - cmake/templates/cvconfig.h.in | 6 ++++++ - modules/core/src/parallel.cpp | 13 ++++++++----- - modules/core/src/parallel_pthreads.cpp | 2 +- - modules/core/src/precomp.hpp | 6 ------ - 6 files changed, 46 insertions(+), 24 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d9a17b3..27d8470 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -188,7 +188,7 @@ OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF - OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) ) - OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF) - OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) ) --OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" OFF IF (NOT WIN32) ) -+OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32) ) - OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) ) - OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) ) - OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) ) -@@ -1026,6 +1026,27 @@ if(DEFINED WITH_GPHOTO2) - endif(DEFINED WITH_GPHOTO2) - - -+# Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp -+ocv_clear_vars(CV_PARALLEL_FRAMEWORK) -+if(HAVE_TBB) -+ set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})") -+elseif(HAVE_CSTRIPES) -+ set(CV_PARALLEL_FRAMEWORK "C=") -+elseif(HAVE_OPENMP) -+ set(CV_PARALLEL_FRAMEWORK "OpenMP") -+elseif(HAVE_GCD) -+ set(CV_PARALLEL_FRAMEWORK "GCD") -+elseif(WINRT OR HAVE_CONCURRENCY) -+ set(CV_PARALLEL_FRAMEWORK "Concurrency") -+elseif(HAVE_PTHREADS_PF) -+ set(CV_PARALLEL_FRAMEWORK "pthreads") -+else() -+ set(CV_PARALLEL_FRAMEWORK "none") -+endif() -+status("") -+status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO) -+ -+ - # ========================== Other third-party libraries ========================== - status("") - status(" Other third-party libraries:") -@@ -1045,12 +1066,6 @@ status(" Use IPP Async:" HAVE_IPP_A THEN "YES" ELSE NO) - endif(DEFINED WITH_IPP_A) - - status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO) --status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO) --status(" Use OpenMP:" HAVE_OPENMP THEN YES ELSE NO) --status(" Use GCD" HAVE_GCD THEN YES ELSE NO) --status(" Use Concurrency" HAVE_CONCURRENCY THEN YES ELSE NO) --status(" Use C=:" HAVE_CSTRIPES THEN YES ELSE NO) --status(" Use pthreads for parallel for:" HAVE_PTHREADS_PF THEN YES ELSE NO) - status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO) - status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO) - -diff --git a/cmake/OpenCVFindLibsPerf.cmake b/cmake/OpenCVFindLibsPerf.cmake -index bda5d79..d1bc541 100644 ---- a/cmake/OpenCVFindLibsPerf.cmake -+++ b/cmake/OpenCVFindLibsPerf.cmake -@@ -120,12 +120,16 @@ if(WITH_OPENMP) - set(HAVE_OPENMP "${OPENMP_FOUND}") - endif() - --if(UNIX OR ANDROID) --if(NOT APPLE AND NOT HAVE_TBB AND NOT HAVE_OPENMP) -- set(HAVE_PTHREADS_PF 1) --else() -- set(HAVE_PTHREADS_PF 0) -+if(NOT MSVC AND NOT DEFINED HAVE_PTHREADS) -+ set(_fname "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/pthread_test.cpp") -+ file(WRITE "${_fname}" "#include \nint main() { (void)pthread_self(); return 0; }\n") -+ try_compile(HAVE_PTHREADS "${CMAKE_BINARY_DIR}" "${_fname}") -+ file(REMOVE "${_fname}") - endif() -+ -+ocv_clear_vars(HAVE_PTHREADS_PF) -+if(WITH_PTHREADS_PF) -+ set(HAVE_PTHREADS_PF ${HAVE_PTHREADS}) - else() - set(HAVE_PTHREADS_PF 0) - endif() -diff --git a/cmake/templates/cvconfig.h.in b/cmake/templates/cvconfig.h.in -index 4a1d1c6..3330774 100644 ---- a/cmake/templates/cvconfig.h.in -+++ b/cmake/templates/cvconfig.h.in -@@ -139,6 +139,12 @@ - /* PNG codec */ - #cmakedefine HAVE_PNG - -+/* Posix threads (pthreads) */ -+#cmakedefine HAVE_PTHREADS -+ -+/* parallel_for with pthreads */ -+#cmakedefine HAVE_PTHREADS_PF -+ - /* Qt support */ - #cmakedefine HAVE_QT - -diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp -index 0b593ee..caa8129 100644 ---- a/modules/core/src/parallel.cpp -+++ b/modules/core/src/parallel.cpp -@@ -80,6 +80,7 @@ - 4. HAVE_GCD - system wide, used automatically (APPLE only) - 5. WINRT - system wide, used automatically (Windows RT only) - 6. HAVE_CONCURRENCY - part of runtime, used automatically (Windows only - MSVS 10, MSVS 11) -+ 7. HAVE_PTHREADS_PF - pthreads if available - */ - - #if defined HAVE_TBB -@@ -125,14 +126,14 @@ - # define CV_PARALLEL_FRAMEWORK "winrt-concurrency" - #elif defined HAVE_CONCURRENCY - # define CV_PARALLEL_FRAMEWORK "ms-concurrency" --#elif defined HAVE_PTHREADS -+#elif defined HAVE_PTHREADS_PF - # define CV_PARALLEL_FRAMEWORK "pthreads" - #endif - - namespace cv - { - ParallelLoopBody::~ParallelLoopBody() {} --#if defined HAVE_PTHREADS && HAVE_PTHREADS -+#ifdef HAVE_PTHREADS_PF - void parallel_for_pthreads(const cv::Range& range, const cv::ParallelLoopBody& body, double nstripes); - size_t parallel_pthreads_get_threads_num(); - void parallel_pthreads_set_threads_num(int num); -@@ -306,7 +307,7 @@ void cv::parallel_for_(const cv::Range& range, const cv::ParallelLoopBody& body, - Concurrency::CurrentScheduler::Detach(); - } - --#elif defined HAVE_PTHREADS -+#elif defined HAVE_PTHREADS_PF - - parallel_for_pthreads(range, body, nstripes); - -@@ -365,7 +366,7 @@ int cv::getNumThreads(void) - ? Concurrency::CurrentScheduler::Get()->GetNumberOfVirtualProcessors() - : pplScheduler->GetNumberOfVirtualProcessors()); - --#elif defined HAVE_PTHREADS -+#elif defined HAVE_PTHREADS_PF - - return parallel_pthreads_get_threads_num(); - -@@ -426,7 +427,7 @@ void cv::setNumThreads( int threads ) - Concurrency::MaxConcurrency, threads-1)); - } - --#elif defined HAVE_PTHREADS -+#elif defined HAVE_PTHREADS_PF - - parallel_pthreads_set_threads_num(threads); - -@@ -452,6 +453,8 @@ int cv::getThreadNum(void) - return 0; - #elif defined HAVE_CONCURRENCY - return std::max(0, (int)Concurrency::Context::VirtualProcessorId()); // zero for master thread, unique number for others but not necessary 1,2,3,... -+#elif defined HAVE_PTHREADS_PF -+ return (int)(size_t)(void*)pthread_self(); // no zero-based indexing - #else - return 0; - #endif -diff --git a/modules/core/src/parallel_pthreads.cpp b/modules/core/src/parallel_pthreads.cpp -index 8c34959..091ea2d 100644 ---- a/modules/core/src/parallel_pthreads.cpp -+++ b/modules/core/src/parallel_pthreads.cpp -@@ -42,7 +42,7 @@ - - #include "precomp.hpp" - --#if defined HAVE_PTHREADS && HAVE_PTHREADS -+#ifdef HAVE_PTHREADS_PF - - #include - #include -diff --git a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp -index d463126..88b60e4 100644 ---- a/modules/core/src/precomp.hpp -+++ b/modules/core/src/precomp.hpp -@@ -292,12 +292,6 @@ TLSData& getCoreTlsData(); - #define CL_RUNTIME_EXPORT - #endif - --#ifndef HAVE_PTHREADS --#if !(defined WIN32 || defined _WIN32 || defined WINCE || defined HAVE_WINRT) --#define HAVE_PTHREADS 1 --#endif --#endif -- - extern bool __termination; // skip some cleanups, because process is terminating - // (for example, if ExitProcess() was already called) - --- -2.4.4 - diff --git a/bsp/buildroot/package/opencv3/Config.in b/bsp/buildroot/package/opencv3/Config.in index 3a185d68..2f4aa7ac 100644 --- a/bsp/buildroot/package/opencv3/Config.in +++ b/bsp/buildroot/package/opencv3/Config.in @@ -84,15 +84,16 @@ comment "gtk3 support needs libgtk3" config BR2_PACKAGE_OPENCV3_WITH_QT bool "qt4" depends on BR2_PACKAGE_QT + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_QT_STL select BR2_PACKAGE_QT_GUI_MODULE select BR2_PACKAGE_QT_TEST help Use Qt4 with QtTest and QtGui modules and STL support, as GUI toolkit. -comment "qt4 support needs qt" +comment "qt4 support needs qt and a toolchain not affected by Binutils bug 19405" depends on BR2_USE_MMU # qt - depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5 + depends on (!BR2_PACKAGE_QT && !BR2_PACKAGE_QT5) || BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 config BR2_PACKAGE_OPENCV3_WITH_QT5 bool "qt5" @@ -241,10 +242,11 @@ comment "3rd party support" config BR2_PACKAGE_OPENCV3_WITH_FFMPEG bool "ffmpeg support" + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_BZIP2 select BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FFMPEG_AVRESAMPLE select BR2_PACKAGE_FFMPEG_SWSCALE - depends on !BR2_nios2 # ffmpeg help Use ffmpeg from the target system. diff --git a/bsp/buildroot/package/opencv3/opencv3.hash b/bsp/buildroot/package/opencv3/opencv3.hash new file mode 100644 index 00000000..20859ea2 --- /dev/null +++ b/bsp/buildroot/package/opencv3/opencv3.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 f00b3c4f42acda07d89031a2ebb5ebe390764a133502c03a511f67b78bbd4fbf opencv3-3.1.0.tar.gz diff --git a/bsp/buildroot/package/opencv3/opencv3.mk b/bsp/buildroot/package/opencv3/opencv3.mk index 3ce78b5c..91cdfe64 100644 --- a/bsp/buildroot/package/opencv3/opencv3.mk +++ b/bsp/buildroot/package/opencv3/opencv3.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPENCV3_VERSION = 3.0.0 +OPENCV3_VERSION = 3.1.0 OPENCV3_SITE = $(call github,itseez,opencv,$(OPENCV3_VERSION)) OPENCV3_INSTALL_STAGING = YES OPENCV3_LICENSE = BSD-3c @@ -15,7 +15,8 @@ OPENCV3_CONF_OPTS += \ -DBUILD_DOCS=OFF \ -DBUILD_PERF_TESTS=$(if $(BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS),ON,OFF) \ -DBUILD_TESTS=$(if $(BR2_PACKAGE_OPENCV3_BUILD_TESTS),ON,OFF) \ - -DBUILD_WITH_DEBUG_INFO=OFF + -DBUILD_WITH_DEBUG_INFO=OFF \ + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF ifeq ($(BR2_PACKAGE_OPENCV3_BUILD_TESTS)$(BR2_PACKAGE_OPENCV3_BUILD_PERF_TESTS),) OPENCV3_CONF_OPTS += -DINSTALL_TEST=OFF @@ -70,7 +71,6 @@ OPENCV3_CONF_OPTS += \ -DBUILD_opencv_core=ON \ -DBUILD_opencv_features2d=$(if $(BR2_PACKAGE_OPENCV3_LIB_FEATURES2D),ON,OFF) \ -DBUILD_opencv_flann=$(if $(BR2_PACKAGE_OPENCV3_LIB_FLANN),ON,OFF) \ - -DBUILD_opencv_hal=ON \ -DBUILD_opencv_highgui=$(if $(BR2_PACKAGE_OPENCV3_LIB_HIGHGUI),ON,OFF) \ -DBUILD_opencv_imgcodecs=$(if $(BR2_PACKAGE_OPENCV3_LIB_IMGCODECS),ON,OFF) \ -DBUILD_opencv_imgproc=$(if $(BR2_PACKAGE_OPENCV3_LIB_IMGPROC),ON,OFF) \ @@ -201,14 +201,15 @@ OPENCV3_CONF_OPTS += \ -DWITH_EIGEN=OFF \ -DWITH_GDAL=OFF \ -DWITH_GPHOTO2=OFF \ + -DWITH_MATLAB=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENCL_SVM=OFF \ -DWITH_OPENEXR=OFF \ - -DWITH_OPENGL=OFF \ - -DWITH_OPENMP=OFF \ -DWITH_OPENNI2=OFF \ -DWITH_OPENNI=OFF \ -DWITH_UNICAP=OFF \ + -DWITH_VA=OFF \ + -DWITH_VA_INTEL=OFF \ -DWITH_VTK=OFF \ -DWITH_WEBP=OFF \ -DWITH_XINE=OFF diff --git a/bsp/buildroot/package/openipmi/Config.in b/bsp/buildroot/package/openipmi/Config.in index da886578..d8c94b30 100644 --- a/bsp/buildroot/package/openipmi/Config.in +++ b/bsp/buildroot/package/openipmi/Config.in @@ -2,7 +2,7 @@ config BR2_PACKAGE_OPENIPMI bool "openipmi" depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen() - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_PACKAGE_POPT select BR2_PACKAGE_NCURSES help @@ -13,6 +13,6 @@ config BR2_PACKAGE_OPENIPMI http://openipmi.sourceforge.net -comment "openipmi needs a toolchain w/ dynamic library, threads" +comment "openipmi needs a toolchain w/ dynamic library, NPTL" depends on BR2_USE_MMU - depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL diff --git a/bsp/buildroot/package/openjpeg/openjpeg.hash b/bsp/buildroot/package/openjpeg/openjpeg.hash index a8695c10..35d4fbd5 100644 --- a/bsp/buildroot/package/openjpeg/openjpeg.hash +++ b/bsp/buildroot/package/openjpeg/openjpeg.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 15df7b194a5d8dba0052cd21c17a4dc761149a770a907d73fffb972078c28a87 openjpeg-1.5.2.tar.gz +sha256 4afc996cd5e0d16360d71c58216950bcb4ce29a3272360eb29cadb1c8bce4efc openjpeg-2.1.tar.gz diff --git a/bsp/buildroot/package/openjpeg/openjpeg.mk b/bsp/buildroot/package/openjpeg/openjpeg.mk index c613ba81..bf125261 100644 --- a/bsp/buildroot/package/openjpeg/openjpeg.mk +++ b/bsp/buildroot/package/openjpeg/openjpeg.mk @@ -4,35 +4,15 @@ # ################################################################################ -OPENJPEG_VERSION = 1.5.2 -OPENJPEG_SITE = http://downloads.sourceforge.net/project/openjpeg.mirror/$(OPENJPEG_VERSION) +OPENJPEG_VERSION = 2.1 +OPENJPEG_SITE = $(call github,uclouvain,openjpeg,version.$(OPENJPEG_VERSION)) OPENJPEG_LICENSE = BSD-2c OPENJPEG_LICENSE_FILES = LICENSE -# tarball does not contain the generated files -OPENJPEG_AUTORECONF = YES OPENJPEG_INSTALL_STAGING = YES -OPENJPEG_DEPENDENCIES = host-pkgconf -OPENJPEG_CONF_OPTS = --disable-lcms1 -ifeq ($(BR2_PACKAGE_LIBPNG),y) -OPENJPEG_DEPENDENCIES += libpng -OPENJPEG_CONF_OPTS += --enable-png -else -OPENJPEG_CONF_OPTS += --disable-png -endif +OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_ZLIB),zlib) +OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBPNG),libpng) +OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_TIFF),tiff) +OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_LCMS2),lcms2) -ifeq ($(BR2_PACKAGE_TIFF),y) -OPENJPEG_DEPENDENCIES += tiff -OPENJPEG_CONF_OPTS += --enable-tiff -else -OPENJPEG_CONF_OPTS += --disable-tiff -endif - -ifeq ($(BR2_PACKAGE_LCMS2),y) -OPENJPEG_DEPENDENCIES += lcms2 -OPENJPEG_CONF_OPTS += --enable-lcms2 -else -OPENJPEG_CONF_OPTS += --disable-lcms2 -endif - -$(eval $(autotools-package)) +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/openldap/openldap.hash b/bsp/buildroot/package/openldap/openldap.hash index 83e790f7..785c4897 100644 --- a/bsp/buildroot/package/openldap/openldap.hash +++ b/bsp/buildroot/package/openldap/openldap.hash @@ -1,4 +1,4 @@ -# From http://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.43.md5 -md5 49ca65e27891fcf977d78c10f073c705 openldap-2.4.43.tgz -# From http://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.43.sha1 -sha1 3b52924df2f45e81f25ecbe37551bc837d090cfa openldap-2.4.43.tgz +# From http://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.44.md5 +md5 693ac26de86231f8dcae2b4e9d768e51 openldap-2.4.44.tgz +# From http://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.44.sha1 +sha1 016a738d050a68d388602a74b5e991035cdba149 openldap-2.4.44.tgz diff --git a/bsp/buildroot/package/openldap/openldap.mk b/bsp/buildroot/package/openldap/openldap.mk index 17bf991e..2f738e51 100644 --- a/bsp/buildroot/package/openldap/openldap.mk +++ b/bsp/buildroot/package/openldap/openldap.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPENLDAP_VERSION = 2.4.43 +OPENLDAP_VERSION = 2.4.44 OPENLDAP_SOURCE = openldap-$(OPENLDAP_VERSION).tgz OPENLDAP_SITE = http://www.openldap.org/software/download/OpenLDAP/openldap-release OPENLDAP_LICENSE = OpenLDAP Public License diff --git a/bsp/buildroot/package/openmpi/Config.in b/bsp/buildroot/package/openmpi/Config.in new file mode 100644 index 00000000..4413c55f --- /dev/null +++ b/bsp/buildroot/package/openmpi/Config.in @@ -0,0 +1,20 @@ +comment "openmpi needs a toolchain w/ dynamic library, NPTL, wchar, C++" + depends on BR2_USE_MMU + depends on !BR2_sparc + depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ + || !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP + +config BR2_PACKAGE_OPENMPI + bool "openmpi" + depends on BR2_USE_MMU # fork() + depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on BR2_INSTALL_LIBSTDCPP + depends on !BR2_STATIC_LIBS # dlfcn.h + # from the configure script: "Sparc v8 target is not supported + # in this release of Open MPI" + depends on !BR2_sparc + help + A High Performance Message Passing Library. + + https://www.open-mpi.org/ diff --git a/bsp/buildroot/package/openmpi/openmpi-mips32-fortran.cache b/bsp/buildroot/package/openmpi/openmpi-mips32-fortran.cache new file mode 100644 index 00000000..473f73a2 --- /dev/null +++ b/bsp/buildroot/package/openmpi/openmpi-mips32-fortran.cache @@ -0,0 +1,51 @@ +ompi_cv_fortran_sizeof_CHARACTER=1 +ompi_cv_fortran_sizeof_LOGICAL=4 +ompi_cv_fortran_sizeof_LOGICALp1=1 +ompi_cv_fortran_sizeof_LOGICALp2=2 +ompi_cv_fortran_sizeof_LOGICALp4=4 +ompi_cv_fortran_sizeof_LOGICALp8=8 +ompi_cv_fortran_sizeof_INTEGER=4 +ompi_cv_fortran_sizeof_INTEGERp1=1 +ompi_cv_fortran_sizeof_INTEGERp2=2 +ompi_cv_fortran_sizeof_INTEGERp4=4 +ompi_cv_fortran_sizeof_INTEGERp8=8 +ompi_cv_fortran_sizeof_REAL=4 +ompi_cv_fortran_sizeof_REALp4=4 +ompi_cv_fortran_sizeof_REALp8=8 +ompi_cv_fortran_sizeof_DOUBLE_PRECISION=8 +ompi_cv_fortran_sizeof_COMPLEX=8 +ompi_cv_fortran_sizeof_COMPLEXp8=8 +ompi_cv_fortran_sizeof_COMPLEXp16=16 +ompi_cv_fortran_sizeof_DOUBLE_COMPLEX=16 +ompi_cv_fortran_alignment_CHARACTER=1 +ompi_cv_fortran_alignment_LOGICAL=4 +ompi_cv_fortran_alignment_LOGICALp1=1 +ompi_cv_fortran_alignment_LOGICALp2=2 +ompi_cv_fortran_alignment_LOGICALp4=4 +ompi_cv_fortran_alignment_LOGICALp8=8 +ompi_cv_fortran_alignment_INTEGER=4 +ompi_cv_fortran_alignment_INTEGERp1=1 +ompi_cv_fortran_alignment_INTEGERp2=2 +ompi_cv_fortran_alignment_INTEGERp4=4 +ompi_cv_fortran_alignment_INTEGERp8=8 +ompi_cv_fortran_alignment_REAL=4 +ompi_cv_fortran_alignment_REALp4=4 +ompi_cv_fortran_alignment_REALp8=8 +ompi_cv_fortran_alignment_DOUBLE_PRECISION=8 +ompi_cv_fortran_alignment_COMPLEX=4 +ompi_cv_fortran_alignment_COMPLEXp8=4 +ompi_cv_fortran_alignment_COMPLEXp16=8 +ompi_cv_fortran_alignment_DOUBLE_COMPLEX=8 +ompi_cv_fortran_kind_value_C_SIGNED_CHAR=1 +ompi_cv_fortran_kind_value_C_SHORT=2 +ompi_cv_fortran_kind_value_C_INT=4 +ompi_cv_fortran_kind_value_C_INT16_T=2 +ompi_cv_fortran_kind_value_C_INT32_T=4 +ompi_cv_fortran_kind_value_C_INT64_T=8 +ompi_cv_fortran_kind_value_C_LONG_LONG=8 +ompi_cv_fortran_kind_value_C_FLOAT=4 +ompi_cv_fortran_kind_value_C_FLOAT_COMPLEX=4 +ompi_cv_fortran_kind_value_C_DOUBLE=8 +ompi_cv_fortran_kind_value_C_DOUBLE_COMPLEX=8 +ompi_cv_fortran_true_value=1 +ompi_cv_fortran_sizeof_type_test_mpi_handle_=4 diff --git a/bsp/buildroot/package/openmpi/openmpi-mips64-fortran.cache b/bsp/buildroot/package/openmpi/openmpi-mips64-fortran.cache new file mode 100644 index 00000000..7f020997 --- /dev/null +++ b/bsp/buildroot/package/openmpi/openmpi-mips64-fortran.cache @@ -0,0 +1,60 @@ +ompi_cv_fortran_sizeof_CHARACTER=1 +ompi_cv_fortran_sizeof_LOGICAL=4 +ompi_cv_fortran_sizeof_LOGICALp1=1 +ompi_cv_fortran_sizeof_LOGICALp2=2 +ompi_cv_fortran_sizeof_LOGICALp4=4 +ompi_cv_fortran_sizeof_LOGICALp8=8 +ompi_cv_fortran_sizeof_INTEGER=4 +ompi_cv_fortran_sizeof_INTEGERp1=1 +ompi_cv_fortran_sizeof_INTEGERp2=2 +ompi_cv_fortran_sizeof_INTEGERp4=4 +ompi_cv_fortran_sizeof_INTEGERp8=8 +ompi_cv_fortran_sizeof_INTEGERp16=16 +ompi_cv_fortran_sizeof_REAL=4 +ompi_cv_fortran_sizeof_REALp4=4 +ompi_cv_fortran_sizeof_REALp8=8 +ompi_cv_fortran_sizeof_REALp16=16 +ompi_cv_fortran_sizeof_DOUBLE_PRECISION=8 +ompi_cv_fortran_sizeof_COMPLEX=8 +ompi_cv_fortran_sizeof_COMPLEXp8=8 +ompi_cv_fortran_sizeof_COMPLEXp16=16 +ompi_cv_fortran_sizeof_COMPLEXp32=32 +ompi_cv_fortran_sizeof_DOUBLE_COMPLEX=16 +ompi_cv_fortran_alignment_CHARACTER=1 +ompi_cv_fortran_alignment_LOGICAL=4 +ompi_cv_fortran_alignment_LOGICALp1=1 +ompi_cv_fortran_alignment_LOGICALp2=2 +ompi_cv_fortran_alignment_LOGICALp4=4 +ompi_cv_fortran_alignment_LOGICALp8=8 +ompi_cv_fortran_alignment_INTEGER=4 +ompi_cv_fortran_alignment_INTEGERp1=1 +ompi_cv_fortran_alignment_INTEGERp2=2 +ompi_cv_fortran_alignment_INTEGERp4=4 +ompi_cv_fortran_alignment_INTEGERp8=8 +ompi_cv_fortran_alignment_REAL=4 +ompi_cv_fortran_alignment_REALp4=4 +ompi_cv_fortran_alignment_REALp8=8 +ompi_cv_fortran_alignment_REALp16=16 +ompi_cv_fortran_alignment_DOUBLE_PRECISION=8 +ompi_cv_fortran_alignment_COMPLEX=4 +ompi_cv_fortran_alignment_COMPLEXp8=4 +ompi_cv_fortran_alignment_COMPLEXp16=8 +ompi_cv_fortran_alignment_COMPLEXp32=16 +ompi_cv_fortran_alignment_DOUBLE_COMPLEX=8 +ompi_cv_fortran_kind_value_C_SIGNED_CHAR=1 +ompi_cv_fortran_kind_value_C_SHORT=2 +ompi_cv_fortran_kind_value_C_INT=4 +ompi_cv_fortran_kind_value_C_INT16_T=2 +ompi_cv_fortran_kind_value_C_INT32_T=4 +ompi_cv_fortran_kind_value_C_INT64_T=8 +ompi_cv_fortran_kind_value_C_LONG_LONG=8 +ompi_cv_fortran_kind_value_C_LONG_DOUBLE=16 +ompi_cv_fortran_kind_value_C_LONG_DOUBLE_COMPLEX=16 +ompi_cv_fortran_kind_value_C_FLOAT=4 +ompi_cv_fortran_kind_value_C_FLOAT_COMPLEX=4 +ompi_cv_fortran_kind_value_C_DOUBLE=8 +ompi_cv_fortran_kind_value_C_DOUBLE_COMPLEX=8 +ompi_cv_fortran_kind_value_0=0 +ompi_cv_real16_c_equiv=yes +ompi_cv_fortran_true_value=1 +ompi_cv_fortran_sizeof_type_test_mpi_handle_=4 diff --git a/bsp/buildroot/package/openmpi/openmpi.hash b/bsp/buildroot/package/openmpi/openmpi.hash new file mode 100644 index 00000000..92152a24 --- /dev/null +++ b/bsp/buildroot/package/openmpi/openmpi.hash @@ -0,0 +1,3 @@ +# From: https://www.open-mpi.org/software/ompi/v1.10/ +md5 b2f43d9635d2d52826e5ef9feb97fd4c openmpi-1.10.2.tar.bz2 +sha1 03934fc0a2dd0d0d2d0459d714a976eabca938fb openmpi-1.10.2.tar.bz2 diff --git a/bsp/buildroot/package/openmpi/openmpi.mk b/bsp/buildroot/package/openmpi/openmpi.mk new file mode 100644 index 00000000..c5b8a01b --- /dev/null +++ b/bsp/buildroot/package/openmpi/openmpi.mk @@ -0,0 +1,41 @@ +################################################################################ +# +# openmpi +# +################################################################################ + +OPENMPI_VERSION_MAJOR = 1.10 +OPENMPI_VERSION = $(OPENMPI_VERSION_MAJOR).2 +OPENMPI_SITE = https://www.open-mpi.org/software/ompi/v$(OPENMPI_VERSION_MAJOR)/downloads +OPENMPI_SOURCE = openmpi-$(OPENMPI_VERSION).tar.bz2 +OPENMPI_LICENSE = BSD-3c +OPENMPI_LICENSE_FILES = LICENSE +OPENMPI_INSTALL_STAGING = YES +OPENMPI_CONF_OPTS = --disable-vt + +# Enabling Fortran support requires pre-seeding the configure script +# with various values that cannot be guessed, so we provide cache +# files for various architectures. + +ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y) +ifeq ($(BR2_mips)$(BR2_mipsel),y) +OPENMPI_FORTRAN_CONF_CACHE = package/openmpi/openmpi-mips32-fortran.cache +else ifeq ($(BR2_mips64)$(BR2_mips64el),y) +OPENMPI_FORTRAN_CONF_CACHE = package/openmpi/openmpi-mips64-fortran.cache +endif +endif + +ifneq ($(OPENMPI_FORTRAN_CONF_CACHE),) +define OPENMPI_COPY_FORTRAN_CACHE + cp $(OPENMPI_FORTRAN_CONF_CACHE) $(@D)/openmpi-config.cache +endef + +OPENMPI_POST_PATCH_HOOKS += OPENMPI_COPY_FORTRAN_CACHE +OPENMPI_CONF_OPTS += \ + --enable-mpi-fortran=yes \ + --cache-file=$(@D)/openmpi-config.cache +else +OPENMPI_CONF_OPTS += --enable-mpi-fortran=no +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/openntpd/openntpd.hash b/bsp/buildroot/package/openntpd/openntpd.hash index e066904c..7f5d3e3f 100644 --- a/bsp/buildroot/package/openntpd/openntpd.hash +++ b/bsp/buildroot/package/openntpd/openntpd.hash @@ -1,2 +1,2 @@ -# From ftp://ftp.openbsd.org/pub/OpenBSD/OpenNTPD/SHA256 -sha256 a993d95976e375acc0ab1a677fd268f55024477835633c8ae404895046bccb23 openntpd-5.7p4.tar.gz +# From http://www.openntpd.org/txt/release-6.0p1.txt +sha256 b1ab80094788912adb12b33cb1f251cc58db39294c1b5c6376972f5f7ba577e8 openntpd-6.0p1.tar.gz diff --git a/bsp/buildroot/package/openntpd/openntpd.mk b/bsp/buildroot/package/openntpd/openntpd.mk index 40bb1bf7..9c98064c 100644 --- a/bsp/buildroot/package/openntpd/openntpd.mk +++ b/bsp/buildroot/package/openntpd/openntpd.mk @@ -4,10 +4,12 @@ # ################################################################################ -OPENNTPD_VERSION = 5.7p4 +OPENNTPD_VERSION = 6.0p1 OPENNTPD_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenNTPD OPENNTPD_LICENSE = MIT-like, BSD-2c, BSD-3c OPENNTPD_LICENSE_FILES = COPYING +# Ships a beta libtool version hence our patch doesn't apply. +OPENNTPD_AUTORECONF = YES # openntpd uses pthread functions for arc4random emulation but forgets # to use -pthread diff --git a/bsp/buildroot/package/openpgm/0003-Rework-headers-includes-to-fix-build-with-musl-libc.patch b/bsp/buildroot/package/openpgm/0003-Rework-headers-includes-to-fix-build-with-musl-libc.patch new file mode 100644 index 00000000..4d700fb4 --- /dev/null +++ b/bsp/buildroot/package/openpgm/0003-Rework-headers-includes-to-fix-build-with-musl-libc.patch @@ -0,0 +1,55 @@ +From 01128a2d8ad3288e8b96a908888049f186d156ee Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Sat, 21 May 2016 19:44:48 +0200 +Subject: [PATCH 1/1] Rework headers includes to fix build with musl libc + +Downloaded patch from +http://git.alpinelinux.org/cgit/aports/plain/main/openpgm/openpgm-fix-includes.patch +and adjusted paths by prefixing with "openpgm/pgm/" + +A build log with the compile error can be found here: +http://autobuild.buildroot.net/results/854/854554827ead82f29b293ddceced6eb7fbfeec27/build-end.log + +Signed-off-by: Bernd Kuhls +(Patch sent upstream: https://github.com/steve-o/openpgm/pull/44) +--- + openpgm/pgm/include/impl/security.h | 3 ++- + openpgm/pgm/include/pgm/types.h | 1 + + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/openpgm/pgm/include/impl/security.h b/openpgm/pgm/include/impl/security.h +index c2b3e3d..896316f 100644 +--- a/openpgm/pgm/include/impl/security.h ++++ b/openpgm/pgm/include/impl/security.h +@@ -33,7 +33,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -41,6 +40,8 @@ + PGM_BEGIN_DECLS + + #ifdef HAVE_FTIME ++#include ++ + static inline + errno_t + # if !defined( _WIN32 ) +diff --git a/openpgm/pgm/include/pgm/types.h b/openpgm/pgm/include/pgm/types.h +index 4e41261..58731a3 100644 +--- a/openpgm/pgm/include/pgm/types.h ++++ b/openpgm/pgm/include/pgm/types.h +@@ -27,6 +27,7 @@ + + #ifndef _MSC_VER + # include ++# include + #endif + #include + +-- +2.8.1 + diff --git a/bsp/buildroot/package/openpgm/Config.in b/bsp/buildroot/package/openpgm/Config.in index 94816d80..e37edfe9 100644 --- a/bsp/buildroot/package/openpgm/Config.in +++ b/bsp/buildroot/package/openpgm/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_OPENPGM bool "openpgm" - # This toolchain lack required compiler intrinsics - depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + depends on BR2_TOOLCHAIN_HAS_SYNC_2 + depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_WCHAR help @@ -15,4 +15,6 @@ config BR2_PACKAGE_OPENPGM https://github.com/steve-o/openpgm/ comment "openpgm needs a toolchain w/ wchar, threads" + depends on BR2_TOOLCHAIN_HAS_SYNC_2 + depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) diff --git a/bsp/buildroot/package/openpowerlink/0001-install-the-stack-libraries-to-lib-subdirectory.patch b/bsp/buildroot/package/openpowerlink/0001-install-the-stack-libraries-to-lib-subdirectory.patch index e46cbf74..3c99409a 100644 --- a/bsp/buildroot/package/openpowerlink/0001-install-the-stack-libraries-to-lib-subdirectory.patch +++ b/bsp/buildroot/package/openpowerlink/0001-install-the-stack-libraries-to-lib-subdirectory.patch @@ -1,6 +1,6 @@ -From ebc5aeff65aeda610d9e23ecf4b26b79f9305a0e Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Fri, 1 May 2015 12:19:34 +0200 +From ded9f83ef3bcb4c688da80354c179543e4862e52 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Wed, 25 May 2016 15:57:10 +0200 Subject: [PATCH] install the stack libraries to "lib" subdirectory Using '.' to install the stack libraries is not correct since @@ -36,7 +36,7 @@ refactoring is needed to fix this properly. [1] http://sourceforge.net/p/openpowerlink/discussion/newbie/thread/3f13af65/#8f80/a50a/4649/f07c -Signed-off-by: Romain Naour +Signed-off-by: Romain Naour --- stack/proj/linux/liboplkcn/CMakeLists.txt | 2 +- stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt | 2 +- @@ -44,35 +44,36 @@ Signed-off-by: Romain Naour stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmn/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt | 2 +- + stack/proj/linux/liboplkmnapp-kernelpcie/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt | 2 +- stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt | 2 +- - 8 files changed, 8 insertions(+), 8 deletions(-) + 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/stack/proj/linux/liboplkcn/CMakeLists.txt b/stack/proj/linux/liboplkcn/CMakeLists.txt -index b7c73e6..23e3112 100644 +index c700d9d..b891553 100644 --- a/stack/proj/linux/liboplkcn/CMakeLists.txt +++ b/stack/proj/linux/liboplkcn/CMakeLists.txt -@@ -88,4 +88,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) +@@ -94,4 +94,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") -INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) +INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) diff --git a/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt b/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt -index 6c3bec6..a6f9271 100644 +index 03752df..7b1050c 100644 --- a/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt -@@ -81,4 +81,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) +@@ -87,4 +87,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") -INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) +INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) diff --git a/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt b/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt -index fdf6fd4..6df8bb7 100644 +index bcc4273..8ca5b7e 100644 --- a/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt -@@ -81,4 +81,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) +@@ -87,4 +87,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") @@ -89,30 +90,40 @@ index 440f02c..6ffcbe9 100644 -INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) +INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) diff --git a/stack/proj/linux/liboplkmn/CMakeLists.txt b/stack/proj/linux/liboplkmn/CMakeLists.txt -index 8f97144..e29f795 100644 +index a8850b8..d762d4c 100644 --- a/stack/proj/linux/liboplkmn/CMakeLists.txt +++ b/stack/proj/linux/liboplkmn/CMakeLists.txt -@@ -92,4 +92,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) +@@ -93,4 +93,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") -INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) +INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) diff --git a/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt b/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt -index df74265..2ba1cd1 100644 +index f2606a3..f71b182 100644 --- a/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt -@@ -85,4 +85,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) +@@ -86,4 +86,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) + TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) + SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) + SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") +-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) ++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +diff --git a/stack/proj/linux/liboplkmnapp-kernelpcie/CMakeLists.txt b/stack/proj/linux/liboplkmnapp-kernelpcie/CMakeLists.txt +index 9362ad8..1d5fb6d 100644 +--- a/stack/proj/linux/liboplkmnapp-kernelpcie/CMakeLists.txt ++++ b/stack/proj/linux/liboplkmnapp-kernelpcie/CMakeLists.txt +@@ -88,4 +88,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") -INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) +INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) diff --git a/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt b/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt -index 98835c7..12b3dc6 100644 +index 6741eef..042cbcf 100644 --- a/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt +++ b/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt -@@ -85,4 +85,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) +@@ -86,4 +86,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES}) TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL}) SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d") @@ -129,5 +140,5 @@ index b4dd41b..cf875ca 100644 -INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .) +INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) -- -2.4.3 +2.5.5 diff --git a/bsp/buildroot/package/openpowerlink/0002-cmake-install-oplk-headers-files.patch b/bsp/buildroot/package/openpowerlink/0002-cmake-install-oplk-headers-files.patch index 7553c30e..4cfbb511 100644 --- a/bsp/buildroot/package/openpowerlink/0002-cmake-install-oplk-headers-files.patch +++ b/bsp/buildroot/package/openpowerlink/0002-cmake-install-oplk-headers-files.patch @@ -1,6 +1,6 @@ -From c904fb6ce3c29e77d51d8bcbbbdd48b8d22c754b Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Mon, 4 May 2015 11:47:05 +0200 +From 535f50e30afaa4fc6389273d1a5b6c20cb7cf5a4 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Wed, 25 May 2016 15:57:29 +0200 Subject: [PATCH] cmake: install oplk headers files In order to be able to link a third party application @@ -9,16 +9,16 @@ oplk headers files related to openpowerlink stack. Install all headers file from STACK_INCLUDE_DIR/oplk. -Signed-off-by: Romain Naour +Signed-off-by: Romain Naour --- stack/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/stack/CMakeLists.txt b/stack/CMakeLists.txt -index 9ff13f4..f4614cd 100644 +index c6cde8c..2652858 100644 --- a/stack/CMakeLists.txt +++ b/stack/CMakeLists.txt -@@ -103,3 +103,8 @@ ELSEIF((CMAKE_SYSTEM_NAME STREQUAL "Generic") AND (CMAKE_SYSTEM_PROCESSOR STREQU +@@ -104,3 +104,8 @@ ELSEIF((CMAKE_SYSTEM_NAME STREQUAL "Generic") AND (CMAKE_SYSTEM_PROCESSOR STREQU ELSE() MESSAGE(FATAL_ERROR "Unknown Platform and processor combination ${CMAKE_SYSTEM_NAME} and ${CMAKE_SYSTEM_PROCESSOR}!!") ENDIF() @@ -28,5 +28,5 @@ index 9ff13f4..f4614cd 100644 +################################################################################ +INSTALL(DIRECTORY ${STACK_INCLUDE_DIR}/oplk DESTINATION "include") -- -2.4.3 +2.5.5 diff --git a/bsp/buildroot/package/openpowerlink/0005-Add-top-level-CMakeLists.txt.patch b/bsp/buildroot/package/openpowerlink/0003-Add-top-level-CMakeLists.txt.patch similarity index 76% rename from bsp/buildroot/package/openpowerlink/0005-Add-top-level-CMakeLists.txt.patch rename to bsp/buildroot/package/openpowerlink/0003-Add-top-level-CMakeLists.txt.patch index f7e3c167..267c807b 100644 --- a/bsp/buildroot/package/openpowerlink/0005-Add-top-level-CMakeLists.txt.patch +++ b/bsp/buildroot/package/openpowerlink/0003-Add-top-level-CMakeLists.txt.patch @@ -1,6 +1,6 @@ -From 5cf3f37e12d0bb4649e3cda29a43d748708aa554 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Wed, 12 Aug 2015 11:24:24 +0200 +From 1b92df6f8283e15b6877f7cd70063648727fc88b Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Wed, 25 May 2016 15:59:20 +0200 Subject: [PATCH] Add top level CMakeLists.txt This CMakeLists.txt can be used to build openpowerlink @@ -11,23 +11,35 @@ level build (ie CFG_OPLK_LIB is ON). For a top level build, CMake will automatically add a build dependency on oplk libraries for building demos applications. -This patch has been submitted upstream: +Also replace OPLKLIB_DEBUG by OPLKLIB in OPLK_LINK_LIBRARIES macro +if CMAKE_BUILD_TYPE is "Debug", otherwise TARGET_LINK_LIBRARIES can't +find the openpowerlink library. +This issue may be related to: +https://github.com/OpenAutomationTechnologies/openPOWERLINK_V2/issues/109 + +Fixes: +http://autobuild.buildroot.net/results/da4/da445b65cb136d71577f04e3a17fdb2ef6302a9b + +This patch has not been accepted by upstream: https://github.com/openPOWERLINK/openPOWERLINK_V2/pull/57 -Signed-off-by: Romain Naour +Add PCIe support (v2.3.2) + +Signed-off-by: Romain Naour --- - CMakeLists.txt | 36 +++++++++++++++ + CMakeLists.txt | 42 +++++++++++++++++ apps/common/cmake/findoplklib.cmake | 68 +++++++++++++++------------- + apps/common/cmake/linkoplklib.cmake | 2 +- drivers/linux/drv_daemon_pcap/CMakeLists.txt | 12 +++-- - 3 files changed, 82 insertions(+), 34 deletions(-) + 4 files changed, 89 insertions(+), 35 deletions(-) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 -index 0000000..96e3d0f +index 0000000..28d4e7a --- /dev/null +++ b/CMakeLists.txt -@@ -0,0 +1,36 @@ +@@ -0,0 +1,42 @@ + +CMAKE_MINIMUM_REQUIRED (VERSION 2.8.7) + @@ -37,12 +49,18 @@ index 0000000..96e3d0f + ADD_SUBDIRECTORY("stack") +ENDIF (CFG_OPLK_LIB) + -+#### Linux kernel module #### ++#### Linux kernel Ethernet module #### + +IF (CFG_KERNEL_DRIVERS) + ADD_SUBDIRECTORY("drivers/linux/drv_kernelmod_edrv") +ENDIF (CFG_KERNEL_DRIVERS) + ++#### Linux kernel PCIe module #### ++ ++IF (CFG_KERNEL_PCIE_DRIVERS) ++ ADD_SUBDIRECTORY("drivers/linux/drv_kernelmod_pcie") ++ENDIF (CFG_KERNEL_PCIE_DRIVERS) ++ +#### Pcap userspace driver #### + +IF (CFG_PCAP_DAEMON) @@ -65,10 +83,10 @@ index 0000000..96e3d0f + ADD_SUBDIRECTORY("apps/demo_mn_qt") +ENDIF (CFG_DEMO_MN_QT) diff --git a/apps/common/cmake/findoplklib.cmake b/apps/common/cmake/findoplklib.cmake -index 1bf570e..79ea35b 100644 +index aa427a6..e6a802e 100644 --- a/apps/common/cmake/findoplklib.cmake +++ b/apps/common/cmake/findoplklib.cmake -@@ -81,36 +81,42 @@ MACRO(FIND_OPLK_LIBRARY OPLK_NODE_TYPE) +@@ -89,36 +89,42 @@ MACRO(FIND_OPLK_LIBRARY OPLK_NODE_TYPE) # Set oplk library directory SET(OPLKLIB_DIR ${OPLK_BASE_DIR}/stack/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR}) @@ -142,6 +160,19 @@ index 1bf570e..79ea35b 100644 + ENDIF(CFG_OPLK_LIB) ENDMACRO(FIND_OPLK_LIBRARY) +diff --git a/apps/common/cmake/linkoplklib.cmake b/apps/common/cmake/linkoplklib.cmake +index 49aab66..d9fd418 100644 +--- a/apps/common/cmake/linkoplklib.cmake ++++ b/apps/common/cmake/linkoplklib.cmake +@@ -33,7 +33,7 @@ MACRO(OPLK_LINK_LIBRARIES EXECUTABLE_NAME) + TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} optimized ${OPLKLIB} debug ${OPLKLIB_DEBUG}) + ELSE() + IF(${CMAKE_BUILD_TYPE} STREQUAL "Debug") +- TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} debug ${OPLKLIB_DEBUG}) ++ TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} debug ${OPLKLIB}) + ELSE () + TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} optimized ${OPLKLIB}) + ENDIF() diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt index 2702abd..81bb598 100644 --- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt @@ -166,5 +197,5 @@ index 2702abd..81bb598 100644 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c99 -pthread -fno-strict-aliasing") -- -2.4.3 +2.5.5 diff --git a/bsp/buildroot/package/openpowerlink/0003-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch b/bsp/buildroot/package/openpowerlink/0003-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch deleted file mode 100644 index 668c907b..00000000 --- a/bsp/buildroot/package/openpowerlink/0003-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch +++ /dev/null @@ -1,154 +0,0 @@ -From c354e8d9599aa02566c8acc341f3a2c73281483b Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Wed, 17 Sep 2014 13:27:44 +0200 -Subject: [PATCH] cmake: use CMAKE_CURRENT_SOURCE_DIR instead of - CMAKE_SOURCE_DIR - -The aim of this patch is to be able to call each subproject's CMakeLists.txt -from a top-level CMakeLists.txt. - -This will help to build automatically the epl libraries, epl driver, unittests -and demos. - -This patch has been submitted upstream: -https://github.com/openPOWERLINK/openPOWERLINK_V2/pull/57 - -Signed-off-by: Romain Naour ---- - drivers/linux/drv_daemon_pcap/CMakeLists.txt | 6 +++--- - drivers/linux/drv_kernelmod_edrv/CMakeLists.txt | 8 ++++---- - hardware/CMakeLists.txt | 4 ++-- - hardware/drivers/hostinterface/CMakeLists.txt | 2 +- - hardware/drivers/openmac/CMakeLists.txt | 4 ++-- - unittests/CMakeLists.txt | 4 ++-- - 6 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt -index 4c3f933..9041e4d 100644 ---- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt -+++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt -@@ -57,8 +57,8 @@ MESSAGE(STATUS "Configuring ${EXE_NAME}") - ############################################################################### - # Set global directories - ############################################################################### --SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/../../..) --SET(DRV_SOURCE_DIR ${CMAKE_SOURCE_DIR}) -+SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..) -+SET(DRV_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - SET(CONTRIB_SOURCE_DIR ${OPLK_BASE_DIR}/contrib) - SET(OPLK_INCLUDE_DIR ${OPLK_BASE_DIR}/stack/include) - SET(TOOLS_DIR ${OPLK_BASE_DIR}/tools) -@@ -66,7 +66,7 @@ SET(TOOLS_DIR ${OPLK_BASE_DIR}/tools) - ############################################################################### - # Include CMake Modules - ############################################################################### --SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../../cmake ${CMAKE_MODULE_PATH}) -+SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake ${CMAKE_MODULE_PATH}) - - # include standard cmake modules - INCLUDE(CMakeDependentOption) -diff --git a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt -index 2ad1a0d..af85f86 100644 ---- a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt -+++ b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt -@@ -75,7 +75,7 @@ SET_PROPERTY(CACHE CFG_POWERLINK_EDRV PROPERTY STRINGS 8139 82573 8255x i210 811 - ################################################################################ - # Set global directories - ################################################################################ --SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/../../..) -+SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..) - SET(CONTRIB_SOURCE_DIR ${OPLK_BASE_DIR}/contrib) - SET(STACK_SOURCE_DIR ${OPLK_BASE_DIR}/stack/src) - SET(COMMON_SOURCE_DIR ${OPLK_BASE_DIR}/stack/src/common) -@@ -152,10 +152,10 @@ IF(CFG_OPLK_MN) - ENDIF() - SET(MODULE_DEFS "${MODULE_DEFS} -DCONFIG_MN") - SET(MODULE_NAME "${MODULE_NAME}mn") -- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/proj/mn) -+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/proj/mn) - ELSE() - SET(MODULE_NAME "${MODULE_NAME}cn") -- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/proj/cn) -+ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/proj/cn) - ENDIF() - - ############################################################################### -@@ -189,7 +189,7 @@ ENDFOREACH() - # - SET(MODULE_SOURCE_FILES - ${MODULE_SOURCE_FILES} -- ${CMAKE_SOURCE_DIR}/main.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/main.c - ${CONTRIB_SOURCE_DIR}/trace/trace-printk.c - ${EDRV_SOURCE_DIR}/edrvcyclic.c - ${KERNEL_SOURCE_DIR}/ctrl/ctrlk.c -diff --git a/hardware/CMakeLists.txt b/hardware/CMakeLists.txt -index 218c4eb..3ba85ca 100644 ---- a/hardware/CMakeLists.txt -+++ b/hardware/CMakeLists.txt -@@ -40,7 +40,7 @@ INCLUDE(reduceboardname) - - ################################################################################ - # Set paths --SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/..) -+SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..) - SET(OMETHLIB_BASE_DIR ${PROJECT_SOURCE_DIR}/drivers/openmac) - SET(OMETHLIB_BUILD_DIR ${PROJECT_BINARY_DIR}/drivers/openmac) - SET(HOSTIF_BASE_DIR ${PROJECT_SOURCE_DIR}/drivers/hostinterface) -@@ -56,7 +56,7 @@ STRING(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSTEM_PROCESSOR_DIR) - - IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - SET(CMAKE_INSTALL_PREFIX -- ${CMAKE_SOURCE_DIR}/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR} CACHE PATH "openPOWERLINK hardware install prefix" FORCE -+ ${CMAKE_CURRENT_SOURCE_DIR}/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR} CACHE PATH "openPOWERLINK hardware install prefix" FORCE - ) - ENDIF() - -diff --git a/hardware/drivers/hostinterface/CMakeLists.txt b/hardware/drivers/hostinterface/CMakeLists.txt -index 1a9d2aa..9c56c16 100644 ---- a/hardware/drivers/hostinterface/CMakeLists.txt -+++ b/hardware/drivers/hostinterface/CMakeLists.txt -@@ -71,7 +71,7 @@ ELSE() - SET( HOSTIF_LIB_NAME "${HOSTIF_NAME}") - ENDIF() - --SET(BOARDS_COMMON_DIR ${CMAKE_SOURCE_DIR}/boards/${BOARD_NAME}/common) -+SET(BOARDS_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_NAME}/common) - SET(EXAMPLE_BINARY_DIR ${CMAKE_BINARY_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME}) - - ######################################################################## -diff --git a/hardware/drivers/openmac/CMakeLists.txt b/hardware/drivers/openmac/CMakeLists.txt -index 560c0d9..d532996 100644 ---- a/hardware/drivers/openmac/CMakeLists.txt -+++ b/hardware/drivers/openmac/CMakeLists.txt -@@ -55,8 +55,8 @@ ELSE() - SET(OMETH_LIB_NAME "${OMETH_NAME}") - ENDIF() - --SET(BOARD_EXAMPLE_DIR ${CMAKE_SOURCE_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME}) --SET(BOARDS_COMMON_DIR ${CMAKE_SOURCE_DIR}/boards/${BOARD_NAME}/common) -+SET(BOARD_EXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME}) -+SET(BOARDS_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_NAME}/common) - SET(EXAMPLE_BINARY_DIR ${CMAKE_BINARY_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME}) - - ######################################################################## -diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt -index 533d4e7..4460c2e 100644 ---- a/unittests/CMakeLists.txt -+++ b/unittests/CMakeLists.txt -@@ -55,10 +55,10 @@ ENDMACRO(ADD_UNIT_TEST) - - ################################################################################ - # Set general directories --SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/..) -+SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..) - SET(OPLK_SOURCE_DIR ${OPLK_BASE_DIR}/stack/src) - SET(OPLK_INCLUDE_DIR ${OPLK_BASE_DIR}/stack/include) --SET(TEST_COMMON_SOURCE_DIR ${CMAKE_SOURCE_DIR}/common) -+SET(TEST_COMMON_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common) - - # We need a oplkcfg.h file for compiling the sources - # We are using the project for the complete MN library --- -2.4.3 - diff --git a/bsp/buildroot/package/openpowerlink/0004-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch b/bsp/buildroot/package/openpowerlink/0004-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch deleted file mode 100644 index 3957cd1e..00000000 --- a/bsp/buildroot/package/openpowerlink/0004-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 7aace6a9d28b02c4325610255dc8afe198f02c4d Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Wed, 12 Aug 2015 10:54:32 +0200 -Subject: [PATCH] Use PROJECT_NAME instead of CMAKE_PROJECT_NAME - -In order to support a top level CMakeLists.txt, use the current project -name instead of the top level one. - -This patch has been submitted upstream: -https://github.com/openPOWERLINK/openPOWERLINK_V2/pull/57 - -Signed-off-by: Romain Naour ---- - apps/demo_cn_console/CMakeLists.txt | 2 +- - apps/demo_cn_console/linux.cmake | 2 +- - apps/demo_mn_console/CMakeLists.txt | 4 ++-- - apps/demo_mn_console/linux.cmake | 2 +- - apps/demo_mn_qt/CMakeLists.txt | 4 ++-- - apps/demo_mn_qt/linux.cmake | 2 +- - drivers/linux/drv_daemon_pcap/CMakeLists.txt | 2 +- - drivers/linux/drv_kernelmod_edrv/CMakeLists.txt | 10 +++++----- - 8 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/apps/demo_cn_console/CMakeLists.txt b/apps/demo_cn_console/CMakeLists.txt -index cd3b418..c5a47a8 100644 ---- a/apps/demo_cn_console/CMakeLists.txt -+++ b/apps/demo_cn_console/CMakeLists.txt -@@ -112,6 +112,6 @@ TARGET_LINK_LIBRARIES(demo_cn_console ${ARCH_LIBRARIES}) - ################################################################################ - # Installation rules - --INSTALL(TARGETS demo_cn_console RUNTIME DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(TARGETS demo_cn_console RUNTIME DESTINATION ${PROJECT_NAME}) - - -diff --git a/apps/demo_cn_console/linux.cmake b/apps/demo_cn_console/linux.cmake -index 409bf11..76e381d 100644 ---- a/apps/demo_cn_console/linux.cmake -+++ b/apps/demo_cn_console/linux.cmake -@@ -53,5 +53,5 @@ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt) - ################################################################################ - # Set architecture specific installation files - --INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${PROJECT_NAME}) - -diff --git a/apps/demo_mn_console/CMakeLists.txt b/apps/demo_mn_console/CMakeLists.txt -index 0c54a98..d8df68e 100644 ---- a/apps/demo_mn_console/CMakeLists.txt -+++ b/apps/demo_mn_console/CMakeLists.txt -@@ -120,6 +120,6 @@ TARGET_LINK_LIBRARIES(demo_mn_console ${ARCH_LIBRARIES}) - ################################################################################ - # Installation rules - --INSTALL(TARGETS demo_mn_console RUNTIME DESTINATION ${CMAKE_PROJECT_NAME}) --INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(TARGETS demo_mn_console RUNTIME DESTINATION ${PROJECT_NAME}) -+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${PROJECT_NAME}) - -diff --git a/apps/demo_mn_console/linux.cmake b/apps/demo_mn_console/linux.cmake -index a9e9072..a994928 100644 ---- a/apps/demo_mn_console/linux.cmake -+++ b/apps/demo_mn_console/linux.cmake -@@ -53,5 +53,5 @@ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt) - ################################################################################ - # Set architecture specific installation files - --INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${PROJECT_NAME}) - -diff --git a/apps/demo_mn_qt/CMakeLists.txt b/apps/demo_mn_qt/CMakeLists.txt -index ff3a9aa..282a9d8 100644 ---- a/apps/demo_mn_qt/CMakeLists.txt -+++ b/apps/demo_mn_qt/CMakeLists.txt -@@ -161,5 +161,5 @@ TARGET_LINK_LIBRARIES(demo_mn_qt ${ARCH_LIBRARIES} ${QT_LIBRARIES}) - ################################################################################ - # Installation rules - --INSTALL(TARGETS demo_mn_qt RUNTIME DESTINATION ${CMAKE_PROJECT_NAME}) --INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(TARGETS demo_mn_qt RUNTIME DESTINATION ${PROJECT_NAME}) -+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${PROJECT_NAME}) -diff --git a/apps/demo_mn_qt/linux.cmake b/apps/demo_mn_qt/linux.cmake -index 6f19ff2..6ed75ee 100644 ---- a/apps/demo_mn_qt/linux.cmake -+++ b/apps/demo_mn_qt/linux.cmake -@@ -45,5 +45,5 @@ SET(ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt) - ################################################################################ - # Set architecture specific installation files - --INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${PROJECT_NAME}) - -diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt -index 9041e4d..2702abd 100644 ---- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt -+++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt -@@ -136,5 +136,5 @@ SET_PROPERTY(TARGET ${EXE_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEB - TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPLKLIB} ${ARCH_LIBRARIES}) - - # add installation rules --INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION ${PROJECT_NAME}) - -diff --git a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt -index af85f86..59400c0 100644 ---- a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt -+++ b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt -@@ -301,8 +301,8 @@ ADD_CUSTOM_TARGET( - ################################################################################ - # add installation rules - --INSTALL(FILES ${MODULE_OUTPUT_DIR}/${MODULE_NAME}.ko DESTINATION ${CMAKE_PROJECT_NAME}) --INSTALL(FILES ${TOOLS_DIR}/linux/50-openPOWERLINK.rules DESTINATION ${CMAKE_PROJECT_NAME}) --INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkload DESTINATION ${CMAKE_PROJECT_NAME}) --INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkunload DESTINATION ${CMAKE_PROJECT_NAME}) --INSTALL(PROGRAMS ${TOOLS_DIR}/linux/devices.txt DESTINATION ${CMAKE_PROJECT_NAME}) -+INSTALL(FILES ${MODULE_OUTPUT_DIR}/${MODULE_NAME}.ko DESTINATION ${PROJECT_NAME}) -+INSTALL(FILES ${TOOLS_DIR}/linux/50-openPOWERLINK.rules DESTINATION ${PROJECT_NAME}) -+INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkload DESTINATION ${PROJECT_NAME}) -+INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkunload DESTINATION ${PROJECT_NAME}) -+INSTALL(PROGRAMS ${TOOLS_DIR}/linux/devices.txt DESTINATION ${PROJECT_NAME}) --- -2.4.3 - diff --git a/bsp/buildroot/package/openpowerlink/Config.in b/bsp/buildroot/package/openpowerlink/Config.in index e6b41c32..0b68ca83 100644 --- a/bsp/buildroot/package/openpowerlink/Config.in +++ b/bsp/buildroot/package/openpowerlink/Config.in @@ -68,6 +68,18 @@ config BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB build and install a Linux kernel module openPOWERLINK driver. +config BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_PCIE_STACK_LIB + bool "kernel-space PCIe driver" + depends on BR2_LINUX_KERNEL + depends on BR2_PACKAGE_OPENPOWERLINK_MN # MN support only + help + Compile openPOWERLINK application library which contains the + interface to a Linux kernel PCIe interface driver. The kernel + part of the openPOWERLINK stack is located on an external PCIe + device. The status/control and data exchange between the + application and kernel stack is handled by the PCIe interface + driver. + comment "openpowerlink kernel stack needs a Linux kernel to be built" depends on !BR2_LINUX_KERNEL @@ -97,6 +109,10 @@ endchoice endif # BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_PCIE_DRIVER + depends on BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_PCIE_STACK_LIB + bool "PCIe Powerlink Driver" + menu "demos" config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE diff --git a/bsp/buildroot/package/openpowerlink/openpowerlink.hash b/bsp/buildroot/package/openpowerlink/openpowerlink.hash index 6b28be81..a6026cb3 100644 --- a/bsp/buildroot/package/openpowerlink/openpowerlink.hash +++ b/bsp/buildroot/package/openpowerlink/openpowerlink.hash @@ -1,5 +1,5 @@ -# From http://sourceforge.net/projects/openpowerlink/files/openPOWERLINK/V2.2.2/ -md5 d7f2b08d332b36fed5427ebc5ec118f2 openPOWERLINK_V2.2.2.tar.gz -sha1 f565c6a8e10ba320325d120f6030158f4c4278f8 openPOWERLINK_V2.2.2.tar.gz +# From http://sourceforge.net/projects/openpowerlink/files/openPOWERLINK/V2.4.1/ +md5 13389a419f3727b9c5f07b1b412eff30 openPOWERLINK_V2.4.1.tar.gz +sha1 eb3883f1771d665d1f948fc35e57bb97dd5c7ca5 openPOWERLINK_V2.4.1.tar.gz # sha256 locally computed -sha256 4de00eaf8af1ff3877bfa2e878a59989873406845fc8031bd6fc58cb1f7cf7e7 openPOWERLINK_V2.2.2.tar.gz +sha256 f627fb8efcb5d9b1b9d8e7701ad611d44d05ad046b1b62ea0f71bd8244d5bf49 openPOWERLINK_V2.4.1.tar.gz diff --git a/bsp/buildroot/package/openpowerlink/openpowerlink.mk b/bsp/buildroot/package/openpowerlink/openpowerlink.mk index d9ceca4d..5b1b1750 100644 --- a/bsp/buildroot/package/openpowerlink/openpowerlink.mk +++ b/bsp/buildroot/package/openpowerlink/openpowerlink.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPENPOWERLINK_VERSION = V2.2.2 +OPENPOWERLINK_VERSION = V2.4.1 OPENPOWERLINK_SITE = http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/$(OPENPOWERLINK_VERSION) OPENPOWERLINK_SOURCE = openPOWERLINK_$(OPENPOWERLINK_VERSION).tar.gz OPENPOWERLINK_LICENSE = BSD-2c, GPLv2 @@ -30,6 +30,7 @@ OPENPOWERLINK_CONF_OPTS += \ -DCFG_COMPILE_LIB_MN=$(OPENPOWERLINK_MN_ONOFF) \ -DCFG_COMPILE_LIB_MNAPP_USERINTF=OFF \ -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=OFF \ + -DCFG_COMPILE_LIB_MNAPP_PCIEINTF=OFF \ -DCFG_COMPILE_LIB_MNDRV_PCAP=OFF \ -DCFG_COMPILE_LIB_CN=$(OPENPOWERLINK_CN_ONOFF) \ -DCFG_COMPILE_LIB_CNAPP_USERINTF=OFF \ @@ -41,6 +42,7 @@ OPENPOWERLINK_CONF_OPTS += \ -DCFG_COMPILE_LIB_MN=OFF \ -DCFG_COMPILE_LIB_MNAPP_USERINTF=$(OPENPOWERLINK_MN_ONOFF) \ -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=OFF \ + -DCFG_COMPILE_LIB_MNAPP_PCIEINTF=OFF \ -DCFG_COMPILE_LIB_MNDRV_PCAP=$(OPENPOWERLINK_MN_ONOFF) \ -DCFG_COMPILE_LIB_CN=OFF \ -DCFG_COMPILE_LIB_CNAPP_USERINTF=$(OPENPOWERLINK_CN_ONOFF) \ @@ -51,11 +53,23 @@ OPENPOWERLINK_CONF_OPTS += \ -DCFG_COMPILE_LIB_MN=OFF \ -DCFG_COMPILE_LIB_MNAPP_USERINTF=OFF \ -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=$(OPENPOWERLINK_MN_ONOFF) \ + -DCFG_COMPILE_LIB_MNAPP_PCIEINTF=OFF \ -DCFG_COMPILE_LIB_MNDRV_PCAP=OFF \ -DCFG_COMPILE_LIB_CN=OFF \ -DCFG_COMPILE_LIB_CNAPP_USERINTF=OFF \ -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=$(OPENPOWERLINK_CN_ONOFF) \ -DCFG_COMPILE_LIB_CNDRV_PCAP=OFF +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_PCIE_STACK_LIB),y) +OPENPOWERLINK_CONF_OPTS += \ + -DCFG_COMPILE_LIB_MN=OFF \ + -DCFG_COMPILE_LIB_MNAPP_USERINTF=OFF \ + -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=OFF \ + -DCFG_COMPILE_LIB_MNAPP_PCIEINTF=$(OPENPOWERLINK_MN_ONOFF) \ + -DCFG_COMPILE_LIB_MNDRV_PCAP=OFF \ + -DCFG_COMPILE_LIB_CN=OFF \ + -DCFG_COMPILE_LIB_CNAPP_USERINTF=OFF \ + -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=OFF \ + -DCFG_COMPILE_LIB_CNDRV_PCAP=OFF endif OPENPOWERLINK_CONF_OPTS += \ @@ -63,17 +77,19 @@ OPENPOWERLINK_CONF_OPTS += \ #### OPLK KERNEL DRIVERS #### -ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y) +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB)$(BR2_PACKAGE_OPENPOWERLINK_KERNEL_PCIE_DRIVER),y) OPENPOWERLINK_DEPENDENCIES += linux OPENPOWERLINK_CONF_OPTS += \ - -DCFG_KERNEL_DRIVERS=ON \ -DCFG_KERNEL_DIR="$(LINUX_DIR)" \ -DCMAKE_SYSTEM_VERSION="$(LINUX_VERSION)" \ -DCFG_OPLK_MN="$(OPENPOWERLINK_MN_ONOFF)" \ -DMAKE_KERNEL_ARCH="$(KERNEL_ARCH)" \ -DMAKE_KERNEL_CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" +endif +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y) +OPENPOWERLINK_CONF_OPTS += -DCFG_KERNEL_DRIVERS=ON ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_82573),y) OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=82573 else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_8255x),y) @@ -85,6 +101,14 @@ OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=8111 else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVER_RTL8139),y) OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=8139 endif +else +OPENPOWERLINK_CONF_OPTS += -DCFG_KERNEL_DRIVERS=OFF +endif + +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_PCIE_DRIVER),y) +OPENPOWERLINK_CONF_OPTS += -DCFG_KERNEL_PCIE_DRIVERS=ON +else +OPENPOWERLINK_CONF_OPTS += -DCFG_KERNEL_PCIE_DRIVERS=OFF endif #### OPLK PCAP DAEMON #### @@ -107,6 +131,9 @@ OPENPOWERLINK_CONF_OPTS += \ else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y) OPENPOWERLINK_CONF_OPTS += \ -DCFG_BUILD_KERNEL_STACK="Linux Kernel Module" +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_PCIE_STACK_LIB),y) +OPENPOWERLINK_CONF_OPTS += \ + -DCFG_BUILD_KERNEL_STACK="Kernel stack on PCIe card" endif ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y) diff --git a/bsp/buildroot/package/openssh/openssh.hash b/bsp/buildroot/package/openssh/openssh.hash index b93b4a9c..9a5ffd60 100644 --- a/bsp/buildroot/package/openssh/openssh.hash +++ b/bsp/buildroot/package/openssh/openssh.hash @@ -1,3 +1,3 @@ # Locally calculated after checking pgp signature -# Also from http://www.openssh.com/txt/release-7.1p2 -sha256 dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd openssh-7.1p2.tar.gz +# Also from http://www.openssh.com/txt/release-7.3 +sha256 3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc openssh-7.3p1.tar.gz diff --git a/bsp/buildroot/package/openssh/openssh.mk b/bsp/buildroot/package/openssh/openssh.mk index 4e97849e..ce855136 100644 --- a/bsp/buildroot/package/openssh/openssh.mk +++ b/bsp/buildroot/package/openssh/openssh.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPENSSH_VERSION = 7.1p2 +OPENSSH_VERSION = 7.3p1 OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable OPENSSH_LICENSE = BSD-3c BSD-2c Public Domain OPENSSH_LICENSE_FILES = LICENCE @@ -22,12 +22,7 @@ define OPENSSH_USERS sshd -1 sshd -1 * - - - SSH drop priv user endef -# uClibc toolchain for ARC doesn't support PIE at the moment -ifeq ($(BR2_arc),y) -OPENSSH_CONF_OPTS += --without-pie -endif -# PIE and static does not work on Linux -ifeq ($(BR2_STATIC_LIBS),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) OPENSSH_CONF_OPTS += --without-pie endif diff --git a/bsp/buildroot/package/openssl/openssl.hash b/bsp/buildroot/package/openssl/openssl.hash index e3ea2aed..edbce8e2 100644 --- a/bsp/buildroot/package/openssl/openssl.hash +++ b/bsp/buildroot/package/openssl/openssl.hash @@ -1,5 +1,5 @@ -# From https://www.openssl.org/source/openssl-1.0.2g.tar.gz.sha256 -sha256 b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33 openssl-1.0.2g.tar.gz +# From https://www.openssl.org/source/openssl-1.0.2h.tar.gz.sha256 +sha256 1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919 openssl-1.0.2h.tar.gz # Locally computed sha256 eddd8a5123748052c598214487ac178e4bfa4e31ba2ec520c70d59c8c5bfa2e9 openssl-1.0.2a-parallel-install-dirs.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d sha256 147c3eeaad614c044749ea527cb433eae5e2d5cad34a78c6ba61cd967bfbe01f openssl-1.0.2a-parallel-obj-headers.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d diff --git a/bsp/buildroot/package/openssl/openssl.mk b/bsp/buildroot/package/openssl/openssl.mk index 30dfe31d..b926fe30 100644 --- a/bsp/buildroot/package/openssl/openssl.mk +++ b/bsp/buildroot/package/openssl/openssl.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPENSSL_VERSION = 1.0.2g +OPENSSL_VERSION = 1.0.2h OPENSSL_SITE = http://www.openssl.org/source OPENSSL_LICENSE = OpenSSL or SSLeay OPENSSL_LICENSE_FILES = LICENSE @@ -19,6 +19,11 @@ OPENSSL_PATCH = \ https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d \ https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2a-parallel-symlinking.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k_cf),y) +OPENSSL_CFLAGS += -mxgot +endif + ifeq ($(BR2_USE_MMU),) OPENSSL_CFLAGS += -DHAVE_FORK=0 endif @@ -34,9 +39,13 @@ OPENSSL_DEPENDENCIES += ocf-linux endif # Some architectures are optimized in OpenSSL -ifeq ($(ARCH),arm) +# Doesn't work for thumb-only (Cortex-M?) +ifeq ($(BR2_ARM_CPU_HAS_ARM),y) OPENSSL_TARGET_ARCH = armv4 endif +ifeq ($(ARCH),aarch64) +OPENSSL_TARGET_ARCH = aarch64 +endif ifeq ($(ARCH),powerpc) # 4xx cores seem to have trouble with openssl's ASM optimizations ifeq ($(BR2_powerpc_401)$(BR2_powerpc_403)$(BR2_powerpc_405)$(BR2_powerpc_405fp)$(BR2_powerpc_440)$(BR2_powerpc_440fp),) @@ -53,11 +62,6 @@ ifeq ($(ARCH),x86_64) OPENSSL_TARGET_ARCH = x86_64 endif -# Workaround for bug #3445 -ifeq ($(BR2_x86_i386),y) -OPENSSL_TARGET_ARCH = generic32 386 -endif - define HOST_OPENSSL_CONFIGURE_CMDS (cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ diff --git a/bsp/buildroot/package/openswan/Config.in b/bsp/buildroot/package/openswan/Config.in index 0370143e..ba5d53df 100644 --- a/bsp/buildroot/package/openswan/Config.in +++ b/bsp/buildroot/package/openswan/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_OPENSWAN bool "openswan" depends on BR2_USE_MMU # iproute2 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # iproute2 + depends on !BR2_TOOLCHAIN_USES_MUSL # GLOB_BRACE select BR2_PACKAGE_GMP select BR2_PACKAGE_IPROUTE2 help @@ -9,6 +10,7 @@ config BR2_PACKAGE_OPENSWAN http://www.openswan.org -comment "openswan needs a toolchain w/ headers >= 3.0" +comment "openswan needs a uClibc or glibc toolchain toolchain w/ headers >= 3.0" depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || \ + BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/openswan/openswan.mk b/bsp/buildroot/package/openswan/openswan.mk index 54bd4b3e..5c8e143b 100644 --- a/bsp/buildroot/package/openswan/openswan.mk +++ b/bsp/buildroot/package/openswan/openswan.mk @@ -11,8 +11,8 @@ OPENSWAN_LICENSE_FILES = COPYING LICENSE OPENSWAN_DEPENDENCIES = host-bison host-flex gmp iproute2 OPENSWAN_MAKE_OPTS = ARCH=$(BR2_ARCH) CC="$(TARGET_CC)" \ - USERCOMPILE="$(TARGET_CFLAGS) $(if $(BR2_STATIC_LIBS),,-fPIE)" \ - USERLINK="$(TARGET_LDFLAGS) $(if $(BR2_STATIC_LIBS),,-fPIE)" \ + USERCOMPILE="$(TARGET_CFLAGS) $(if $(BR2_TOOLCHAIN_SUPPORTS_PIE),-fPIE)" \ + USERLINK="$(TARGET_LDFLAGS) $(if $(BR2_TOOLCHAIN_SUPPORTS_PIE),-fPIE)" \ INC_USRLOCAL=/usr USE_KLIPS=false USE_MAST=false USE_NM=false ifeq ($(BR2_PACKAGE_LIBCURL),y) diff --git a/bsp/buildroot/package/opentyrian-data/opentyrian-data.hash b/bsp/buildroot/package/opentyrian-data/opentyrian-data.hash new file mode 100644 index 00000000..9a7079c4 --- /dev/null +++ b/bsp/buildroot/package/opentyrian-data/opentyrian-data.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 7790d09a2a3addcd33c66ef063d5900eb81cc9c342f4807eb8356364dd1d9277 tyrian21.zip diff --git a/bsp/buildroot/package/openvmtools/Config.in b/bsp/buildroot/package/openvmtools/Config.in index 64bf65c5..79c503cf 100644 --- a/bsp/buildroot/package/openvmtools/Config.in +++ b/bsp/buildroot/package/openvmtools/Config.in @@ -41,12 +41,12 @@ config BR2_PACKAGE_OPENVMTOOLS_PAM help Support for PAM in openvmtools -comment "PAM support needs an (e)glibc toolchain w/ dynamic library" +comment "PAM support needs a glibc toolchain w/ dynamic library" depends on BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL endif -comment "openvmtools needs an (e)glibc or musl toolchain w/ wchar, threads, RPC, locale" +comment "openvmtools needs a glibc or musl toolchain w/ wchar, threads, RPC, locale" depends on BR2_i386 || BR2_x86_64 depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ diff --git a/bsp/buildroot/package/openvmtools/openvmtools.hash b/bsp/buildroot/package/openvmtools/openvmtools.hash new file mode 100644 index 00000000..ae283778 --- /dev/null +++ b/bsp/buildroot/package/openvmtools/openvmtools.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 6b415f6093a15ffce10d3c4b69aa7ff106bdc0efd88e18a70a59d6941d4d2379 openvmtools-stable-9.10.2.tar.gz diff --git a/bsp/buildroot/package/openvpn/Config.in b/bsp/buildroot/package/openvpn/Config.in index 2e371255..8ba4ea19 100644 --- a/bsp/buildroot/package/openvpn/Config.in +++ b/bsp/buildroot/package/openvpn/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_OPENVPN bool "openvpn" depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_OPENSSL help OpenVPN is a full-featured SSL VPN solution which can accomodate a wide range of configurations, including road @@ -33,24 +34,4 @@ config BR2_PACKAGE_OPENVPN_PWSAVE Allow --askpass and --auth-user-pass passwords to be read from a file. -choice - prompt "Crypto backend" - default BR2_PACKAGE_OPENVPN_CRYPTO_OPENSSL - help - Select the cryptographic library to use. - - config BR2_PACKAGE_OPENVPN_CRYPTO_OPENSSL - bool "OpenSSL" - select BR2_PACKAGE_OPENSSL - help - Enable TLS-based key exchange and OpenSSL crypto support. - - config BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL - bool "PolarSSL" - select BR2_PACKAGE_POLARSSL - help - Enable TLS-based key exchange and PolarSSL crypto support. - -endchoice - endif diff --git a/bsp/buildroot/package/openvpn/openvpn.hash b/bsp/buildroot/package/openvpn/openvpn.hash index 4ab916ea..179198e5 100644 --- a/bsp/buildroot/package/openvpn/openvpn.hash +++ b/bsp/buildroot/package/openvpn/openvpn.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 52f16bef3a02369682f1464fbd2821070c98d0bd993f4c46c764e87375abdcc1 openvpn-2.3.9.tar.xz +sha256 0f5f1ca1dc5743fa166d93dd4ec952f014b5f33bafd88f0ea34b455cae1434a7 openvpn-2.3.11.tar.xz diff --git a/bsp/buildroot/package/openvpn/openvpn.mk b/bsp/buildroot/package/openvpn/openvpn.mk index 8f02792c..f3985cd2 100644 --- a/bsp/buildroot/package/openvpn/openvpn.mk +++ b/bsp/buildroot/package/openvpn/openvpn.mk @@ -4,15 +4,16 @@ # ################################################################################ -OPENVPN_VERSION = 2.3.9 +OPENVPN_VERSION = 2.3.11 OPENVPN_SOURCE = openvpn-$(OPENVPN_VERSION).tar.xz OPENVPN_SITE = http://swupdate.openvpn.net/community/releases -OPENVPN_DEPENDENCIES = host-pkgconf +OPENVPN_DEPENDENCIES = host-pkgconf openssl OPENVPN_LICENSE = GPLv2 OPENVPN_LICENSE_FILES = COPYRIGHT.GPL OPENVPN_CONF_OPTS = \ --disable-plugin-auth-pam \ --enable-iproute2 \ + --with-crypto-library=openssl \ $(if $(BR2_STATIC_LIBS),--disable-plugins) OPENVPN_CONF_ENV = IFCONFIG=/sbin/ifconfig \ NETSTAT=/bin/netstat \ @@ -47,16 +48,6 @@ else OPENVPN_CONF_OPTS += --disable-password-save endif -ifeq ($(BR2_PACKAGE_OPENVPN_CRYPTO_OPENSSL),y) -OPENVPN_CONF_OPTS += --with-crypto-library=openssl -OPENVPN_DEPENDENCIES += openssl -endif - -ifeq ($(BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL),y) -OPENVPN_CONF_OPTS += --with-crypto-library=polarssl -OPENVPN_DEPENDENCIES += polarssl -endif - define OPENVPN_INSTALL_TARGET_CMDS $(INSTALL) -m 755 $(@D)/src/openvpn/openvpn \ $(TARGET_DIR)/usr/sbin/openvpn diff --git a/bsp/buildroot/package/openzwave/0001-Fix-warning-on-wcsdup-implicit-declaration.patch b/bsp/buildroot/package/openzwave/0001-Fix-warning-on-wcsdup-implicit-declaration.patch new file mode 100644 index 00000000..1fe30e41 --- /dev/null +++ b/bsp/buildroot/package/openzwave/0001-Fix-warning-on-wcsdup-implicit-declaration.patch @@ -0,0 +1,29 @@ +From 0878d933223158343af3fe13e03bcd128e8b4cbc Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Fri, 22 Apr 2016 17:06:27 +0200 +Subject: [PATCH 1/1] Fix warning on wcsdup implicit declaration + +Define __GNU_SOURCE in cpp/hidapi/linux/hid.c (like already done in +cpp/hidapi/libusb/hid.c) to fix implicit declaration of wcsdup function + +Signed-off-by: Fabrice Fontaine +--- + cpp/hidapi/linux/hid.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cpp/hidapi/linux/hid.c b/cpp/hidapi/linux/hid.c +index dbf9b9b..c3eb22b 100644 +--- a/cpp/hidapi/linux/hid.c ++++ b/cpp/hidapi/linux/hid.c +@@ -21,6 +21,8 @@ + http://github.com/signal11/hidapi . + ********************************************************/ + ++#define _GNU_SOURCE /* needed for wcsdup() before glibc 2.10 */ ++ + /* C */ + #include + #include +-- +1.9.1 + diff --git a/bsp/buildroot/package/openzwave/0002-Ensure-correct-git-repository-path.patch b/bsp/buildroot/package/openzwave/0002-Ensure-correct-git-repository-path.patch new file mode 100644 index 00000000..6c40ec9d --- /dev/null +++ b/bsp/buildroot/package/openzwave/0002-Ensure-correct-git-repository-path.patch @@ -0,0 +1,29 @@ +From 89cdc83307f61422db21cc7965ea294862c128bf Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Mon, 30 May 2016 10:37:42 +0200 +Subject: [PATCH 2/2] Ensure correct git repository path + +Add "--git-dir ./.git" to ensure the correct git repository path is used (this +fix a bug when trying to add openzwave to buildroot build system) + +Signed-off-by: Fabrice Fontaine +--- + cpp/build/support.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cpp/build/support.mk b/cpp/build/support.mk +index 3f74c7e..f529b25 100644 +--- a/cpp/build/support.mk ++++ b/cpp/build/support.mk +@@ -29,7 +29,7 @@ GIT := $(shell which git) + ifeq ($(GIT),) + VERSION_REV ?= 0 + else +-GITVERSION := $(shell $(GIT) describe --long --tags --dirty 2>/dev/null | sed s/^v//) ++GITVERSION := $(shell $(GIT) --git-dir ./.git describe --long --tags --dirty 2>/dev/null | sed s/^v//) + ifeq ($(GITVERSION),) + GITVERSION := $(VERSION_MAJ).$(VERSION_MIN).-1 + VERSION_REV := 0 +-- +2.7.4 + diff --git a/bsp/buildroot/package/openzwave/Config.in b/bsp/buildroot/package/openzwave/Config.in new file mode 100644 index 00000000..190b88b6 --- /dev/null +++ b/bsp/buildroot/package/openzwave/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_OPENZWAVE + bool "openzwave" + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_HAS_UDEV + depends on BR2_USE_WCHAR + help + Free software library that interfaces with selected Z-Wave PC + controllers, allowing anyone to create applications that manipulate + and respond to devices on a Z-Wave network, without requiring + in-depth knowledge of the Z-Wave protocol + + http://www.openzwave.net + +comment "openzwave needs udev and a toolchain w/ C++, threads, wchar" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_PACKAGE_HAS_UDEV || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/openzwave/openzwave.hash b/bsp/buildroot/package/openzwave/openzwave.hash new file mode 100644 index 00000000..bab940ef --- /dev/null +++ b/bsp/buildroot/package/openzwave/openzwave.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 ca122365f6237dc245be0129eb460e78126976b9c7bd06487795d3acfc9f2a5f openzwave-v1.4.tar.gz diff --git a/bsp/buildroot/package/openzwave/openzwave.mk b/bsp/buildroot/package/openzwave/openzwave.mk new file mode 100644 index 00000000..c8892a90 --- /dev/null +++ b/bsp/buildroot/package/openzwave/openzwave.mk @@ -0,0 +1,51 @@ +################################################################################ +# +# openzwave +# +################################################################################ + +OPENZWAVE_VERSION = v1.4 +OPENZWAVE_SITE = $(call github,OpenZWave,open-zwave,$(OPENZWAVE_VERSION)) +OPENZWAVE_LICENSE = LGPLv3+, GPLv3 (examples), Apache-2.0 (sh2ju.sh) +OPENZWAVE_LICENSE_FILES = license/license.txt license/lgpl.txt \ + license/gpl.txt license/Apache-License-2.0.txt + +OPENZWAVE_DEPENDENCIES = host-pkgconf udev +OPENZWAVE_INSTALL_STAGING = YES + +# Set instlibdir to install libopenzwave.so* in the correct directory +# otherwise openzwave will check that /lib64 exists (on the host) to +# know if the library should be installed in $(PREFIX)/lib or $(PREFIX)/lib64. +# Set pkgconfigdir to /lib/pkgconfig to install libopenzwave.pc in the +# correct directory otherwise openzwave will call +# "pkg-config --variable pc_path pkg-config" which returns an incorrect value. +# Set sysconfdir to /etc/openzwave to install openzwave configuration files in +# the correct directory otherwise openzwave will install configuration files in +# $(PREFIX)/etc/openzwave. +# Disable doxygen documentation. +OPENZWAVE_MAKE_OPTS = \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + PREFIX=/usr \ + instlibdir=/usr/lib \ + pkgconfigdir=/usr/lib/pkgconfig \ + sysconfdir=/etc/openzwave \ + DOXYGEN= + +define OPENZWAVE_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(OPENZWAVE_MAKE_OPTS) -C $(@D) +endef + +define OPENZWAVE_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(OPENZWAVE_MAKE_OPTS) -C $(@D) \ + DESTDIR=$(STAGING_DIR) install +endef + +# Delete unneeded ozw_config binary from target directory as this is an utility +# application used to get the openzwave build configuration. +define OPENZWAVE_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(OPENZWAVE_MAKE_OPTS) -C $(@D) \ + DESTDIR=$(TARGET_DIR) install + rm -f $(TARGET_DIR)/usr/bin/ozw_config +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/opkg/Config.in b/bsp/buildroot/package/opkg/Config.in index 495ce91f..5a4bbc26 100644 --- a/bsp/buildroot/package/opkg/Config.in +++ b/bsp/buildroot/package/opkg/Config.in @@ -22,6 +22,7 @@ if BR2_PACKAGE_OPKG config BR2_PACKAGE_OPKG_GPG_SIGN bool "gnupg support" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgpg-error select BR2_PACKAGE_LIBGPGME select BR2_PACKAGE_LIBGPG_ERROR help diff --git a/bsp/buildroot/package/opkg/opkg.mk b/bsp/buildroot/package/opkg/opkg.mk index 6e4d4ff3..bf19a60f 100644 --- a/bsp/buildroot/package/opkg/opkg.mk +++ b/bsp/buildroot/package/opkg/opkg.mk @@ -8,7 +8,7 @@ OPKG_VERSION = v0.3.1 OPKG_SITE = http://git.yoctoproject.org/git/opkg OPKG_SITE_METHOD = git # Uses PKG_CHECK_MODULES() in configure.ac -OPKG_DEPENDENCIES = host-pkgconf +OPKG_DEPENDENCIES = host-pkgconf libarchive OPKG_LICENSE = GPLv2+ OPKG_LICENSE_FILES = COPYING OPKG_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/oprofile/Config.in b/bsp/buildroot/package/oprofile/Config.in index 9cf56938..c75ccd90 100644 --- a/bsp/buildroot/package/oprofile/Config.in +++ b/bsp/buildroot/package/oprofile/Config.in @@ -1,3 +1,13 @@ +# memory barrier function implemented only for some architectures +config BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS + bool + default y + depends on BR2_arceb || BR2_arcle || BR2_arm || BR2_armeb || \ + BR2_aarch64 || BR2_aarch64_be || BR2_i386 || BR2_mips || \ + BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_powerpc || \ + BR2_powerpc64 || BR2_powerpc64le || BR2_sh || \ + BR2_sparc || BR2_sparc64 || BR2_x86_64 + config BR2_PACKAGE_OPROFILE bool "oprofile" depends on BR2_USE_MMU # fork() @@ -5,9 +15,8 @@ config BR2_PACKAGE_OPROFILE select BR2_PACKAGE_BINUTILS select BR2_PACKAGE_LIBPFM4 if BR2_powerpc depends on BR2_INSTALL_LIBSTDCPP - depends on !BR2_aarch64 && !BR2_nios2 # binutils depends on BR2_USE_WCHAR # binutils - depends on !BR2_xtensa + depends on BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS # libpfm4 is needed on PowerPC, and requires thread support depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_powerpc help @@ -28,7 +37,7 @@ config BR2_PACKAGE_OPROFILE comment "oprofile needs a toolchain w/ C++, wchar" depends on BR2_USE_MMU - depends on !BR2_aarch64 && !BR2_nios2 && !BR2_xtensa + depends on BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR comment "oprofile needs a toolchain w/ NPTL on PPC" diff --git a/bsp/buildroot/package/opus/opus.mk b/bsp/buildroot/package/opus/opus.mk index eb082e38..71fdcb3f 100644 --- a/bsp/buildroot/package/opus/opus.mk +++ b/bsp/buildroot/package/opus/opus.mk @@ -9,10 +9,15 @@ OPUS_SITE = http://downloads.xiph.org/releases/opus OPUS_LICENSE = BSD-3c OPUS_LICENSE_FILES = COPYING OPUS_INSTALL_STAGING = YES -OPUS_AUTORECONF = YES ifeq ($(BR2_PACKAGE_OPUS_FIXED_POINT),y) OPUS_CONF_OPTS += --enable-fixed-point endif +# When we're on ARM, but we don't have ARM instructions (only +# Thumb-2), disable the usage of assembly as it is not Thumb-ready. +ifeq ($(BR2_arm)$(BR2_armeb):$(BR2_ARM_CPU_HAS_ARM),y:) +OPUS_CONF_OPTS += --disable-asm +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/opusfile/opusfile.hash b/bsp/buildroot/package/opusfile/opusfile.hash index 2da4bab5..541a21fe 100644 --- a/bsp/buildroot/package/opusfile/opusfile.hash +++ b/bsp/buildroot/package/opusfile/opusfile.hash @@ -1,2 +1,2 @@ # From http://downloads.xiph.org/releases/opus/SHA256SUMS.txt -sha256 9e2bed13bc729058591a0f1cab2505e8cfd8e7ac460bf10a78bcc3b125e7c301 opusfile-0.7.tar.gz +sha256 2c231ed3cfaa1b3173f52d740e5bbd77d51b9dfecb87014b404917fba4b855a4 opusfile-0.8.tar.gz diff --git a/bsp/buildroot/package/opusfile/opusfile.mk b/bsp/buildroot/package/opusfile/opusfile.mk index c8108d33..4c3fb355 100644 --- a/bsp/buildroot/package/opusfile/opusfile.mk +++ b/bsp/buildroot/package/opusfile/opusfile.mk @@ -4,7 +4,7 @@ # ################################################################################ -OPUSFILE_VERSION = 0.7 +OPUSFILE_VERSION = 0.8 OPUSFILE_SITE = http://downloads.xiph.org/releases/opus OPUSFILE_DEPENDENCIES = host-pkgconf libogg opus OPUSFILE_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/orc/orc.hash b/bsp/buildroot/package/orc/orc.hash index 100f1941..178d3741 100644 --- a/bsp/buildroot/package/orc/orc.hash +++ b/bsp/buildroot/package/orc/orc.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/gstreamer-devel/2015-June/053346.html -sha256 338cd493b5247300149821c6312bdf7422a3593ae98691fc75d7e4fe727bd39b orc-0.4.24.tar.xz +# From https://lists.freedesktop.org/archives/gstreamer-devel/2016-March/057056.html +sha256 c1b1d54a58f26d483f0b3881538984789fe5d5460ab8fab74a1cacbd3d1c53d1 orc-0.4.25.tar.xz diff --git a/bsp/buildroot/package/orc/orc.mk b/bsp/buildroot/package/orc/orc.mk index 5d84bd03..5a49cbae 100644 --- a/bsp/buildroot/package/orc/orc.mk +++ b/bsp/buildroot/package/orc/orc.mk @@ -4,7 +4,7 @@ # ################################################################################ -ORC_VERSION = 0.4.24 +ORC_VERSION = 0.4.25 ORC_SOURCE = orc-$(ORC_VERSION).tar.xz ORC_SITE = http://gstreamer.freedesktop.org/data/src/orc ORC_LICENSE = BSD-2c, BSD-3c diff --git a/bsp/buildroot/package/ortp/ortp.hash b/bsp/buildroot/package/ortp/ortp.hash index 728a0d1f..8b099a70 100644 --- a/bsp/buildroot/package/ortp/ortp.hash +++ b/bsp/buildroot/package/ortp/ortp.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 6e37e29b3c3559bac1f2ae0c977f6ceb4d4ce8dc713b691dea8bae57bda92d0b ortp-0.22.0.tar.gz +# Locally calculated +sha256 0deb826b79b1fd329f7638821d5439dc343bc55bb122daa6c90d19116cfe8d9a ortp-0.25.0.tar.gz diff --git a/bsp/buildroot/package/ortp/ortp.mk b/bsp/buildroot/package/ortp/ortp.mk index 89bfc06a..ca4a90d6 100644 --- a/bsp/buildroot/package/ortp/ortp.mk +++ b/bsp/buildroot/package/ortp/ortp.mk @@ -4,12 +4,10 @@ # ################################################################################ -ORTP_VERSION = 0.22.0 +ORTP_VERSION = 0.25.0 ORTP_SITE = http://download.savannah.nongnu.org/releases/linphone/ortp/sources -# ortp is not happy with the libsrtp implementation packaged in -# Buildroot -ORTP_CONF_OPTS = --disable-strict --with-srtp=none +ORTP_CONF_OPTS = --disable-strict ORTP_INSTALL_STAGING = YES ORTP_LICENSE = LGPLv2.1+ ORTP_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/owfs/0001-configure.ac-check-for-localtime_r.patch b/bsp/buildroot/package/owfs/0001-configure.ac-check-for-localtime_r.patch new file mode 100644 index 00000000..c4c38445 --- /dev/null +++ b/bsp/buildroot/package/owfs/0001-configure.ac-check-for-localtime_r.patch @@ -0,0 +1,33 @@ +From 75e92438bcdb78a90912366b07bf503646806686 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" +Date: Sun, 21 Feb 2016 17:02:06 +0100 +Subject: [PATCH] configure.ac: check for localtime_r + +HAVE_LOCALTIME_R is used in owftp.c, so it should be checked for. + +Without this, static build fails because localtime_r is defined twice. + +Upstream-Status: Submitted +https://sourceforge.net/p/owfs/mailman/message/34873667/ + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c22dde9..12fdd18 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1529,7 +1529,7 @@ AC_FUNC_SELECT_ARGTYPES + AC_FUNC_STRFTIME + AC_FUNC_STRTOD + AC_TYPE_SIGNAL +-AC_CHECK_FUNCS([accept daemon getaddrinfo freeaddrinfo gethostbyname2_r gethostbyaddr_r gethostbyname_r getservbyname_r getopt getopt_long gettimeofday inet_ntop inet_pton memchr memset select socket strcasecmp strchr strdup strncasecmp strtol strtoul twalk tsearch tfind tdelete tdestroy vasprintf strsep vsprintf vsnprintf writev getline]) ++AC_CHECK_FUNCS([accept daemon getaddrinfo freeaddrinfo gethostbyname2_r gethostbyaddr_r gethostbyname_r getservbyname_r getopt getopt_long gettimeofday inet_ntop inet_pton memchr memset select socket strcasecmp strchr strdup strncasecmp strtol strtoul twalk tsearch tfind tdelete tdestroy vasprintf strsep vsprintf vsnprintf writev getline localtime_r]) + + if test "${ENABLE_ZERO}" = "true" ; then + AC_SEARCH_LIBS(dlopen, dl, AC_DEFINE(HAVE_DLOPEN, 1, [Define if you have dlopen])) +-- +2.7.0 + diff --git a/bsp/buildroot/package/owfs/0002-compat.h-only-include-compat_netdb.h-if-needed.patch b/bsp/buildroot/package/owfs/0002-compat.h-only-include-compat_netdb.h-if-needed.patch new file mode 100644 index 00000000..7ae79325 --- /dev/null +++ b/bsp/buildroot/package/owfs/0002-compat.h-only-include-compat_netdb.h-if-needed.patch @@ -0,0 +1,58 @@ +From d24e63eea4f4d234f313145e40668a5e2f64e49c Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" +Date: Wed, 9 Mar 2016 23:20:11 +0100 +Subject: [PATCH] compat.h: only include compat_netdb.h if needed + +compat_netdb.h is added for only one reason: to provide the definitions +for getaddrinfo, in case it is not provided by the system. +compat_netdb.h is just a copy from an old glibc version, but that makes +it incompatible with other standard C libraries. For example, uClibc +without RPC support doesn't have the rpc/netdb.h header. This leads to +build errors. + +To work around this, only include compat_netdb.h when needed, i.e. +when getaddrinfo isn't provided natively. + +Note that this getaddrinfo compat was introduced in commit bc54c431 to +support Solaris 7. Starting from Solaris 8, however, getaddrinfo is +available natively, and it's available on MacOS, Windows and any other +POSIX-2001 compliant system as well. So it may be worhtwhile to remove +it altogether. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + module/owlib/src/include/compat.h | 2 ++ + module/ownet/c/src/include/compat.h | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/module/owlib/src/include/compat.h b/module/owlib/src/include/compat.h +index c55bc96..e95e16f 100644 +--- a/module/owlib/src/include/compat.h ++++ b/module/owlib/src/include/compat.h +@@ -57,7 +57,9 @@ + #include + #endif + ++#ifndef HAVE_GETADDRINFO + #include "compat_netdb.h" ++#endif + #include "compat_getopt.h" + + #ifndef HAVE_STRSEP +diff --git a/module/ownet/c/src/include/compat.h b/module/ownet/c/src/include/compat.h +index c45d852..f8ae759 100644 +--- a/module/ownet/c/src/include/compat.h ++++ b/module/ownet/c/src/include/compat.h +@@ -58,7 +58,9 @@ $Id$ + #include + #endif + ++#ifndef HAVE_GETADDRINFO + #include "compat_netdb.h" ++#endif + #include "compat_getopt.h" + + #ifndef HAVE_STRSEP +-- +2.7.0 + diff --git a/bsp/buildroot/package/owfs/Config.in b/bsp/buildroot/package/owfs/Config.in new file mode 100644 index 00000000..802d1e46 --- /dev/null +++ b/bsp/buildroot/package/owfs/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_OWFS + bool "owfs" + depends on BR2_TOOLCHAIN_HAS_THREADS + help + OWFS is an easy way to use the powerful 1-wire system of + Dallas/Maxim. + + OWFS is a simple and flexible program to monitor and control + the physical environment. You can write scripts to read + temperature, flash lights, write to an LCD, log and graph, + etc. + + http://owfs.org/ + +comment "owfs needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/owfs/S25owserver b/bsp/buildroot/package/owfs/S25owserver new file mode 100755 index 00000000..b8da768e --- /dev/null +++ b/bsp/buildroot/package/owfs/S25owserver @@ -0,0 +1,31 @@ +NAME="owserver" +DAEMON="/usr/bin/${NAME}" +PID_F="/run/${NAME}.pid" + +OWSERVER_ARGS= +[ -r /etc/default/${NAME} ] && . /etc/default/${NAME} + +case "$1" in +start) + printf "Starting ${NAME}: " + if [ -z "${OWSERVER_ARGS}" ]; then + echo "OWSERVER_ARGS must be set in defaults file" 1>&2 + exit 1 + fi + start-stop-daemon -S -x ${DAEMON} -- \ + --pid_file ${PID_F} ${OWSERVER_ARGS} + [ $? -eq 0 ] && echo "OK" || echo "FAIL" + ;; +stop) + printf "Stopping ${NAME}: " + start-stop-daemon -K -p ${PID_F} + [ $? -eq 0 ] && echo "OK" || echo "FAIL" + ;; +restart|reload) + $0 stop + $0 start + ;; +*) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac diff --git a/bsp/buildroot/package/owfs/S30owfs b/bsp/buildroot/package/owfs/S30owfs new file mode 100755 index 00000000..feed676f --- /dev/null +++ b/bsp/buildroot/package/owfs/S30owfs @@ -0,0 +1,33 @@ +NAME="owfs" +DAEMON="/usr/bin/${NAME}" +PID_F="/run/${NAME}.pid" +OWFS_MOUNTPOINT="/dev/1wire" +OWFS_DEVICES="-s localhost:4304" +OWFS_ARGS="" + +[ -r /etc/default/${NAME} ] && . /etc/default/${NAME} + +case "$1" in +start) + printf "Starting ${NAME}: " + # Fuse may be in a module, so try to load it + modprobe -q fuse && printf "[fuse] " + mkdir -p ${OWFS_MOUNTPOINT} + start-stop-daemon -S -x ${DAEMON} -- \ + --pid_file ${PID_F} -m ${OWFS_MOUNTPOINT} ${OWFS_DEVICES} \ + ${OWFS_ARGS} + [ $? -eq 0 ] && echo "OK" || echo "FAIL" + ;; +stop) + printf "Stopping ${NAME}: " + start-stop-daemon -K -p ${PID_F} + [ $? -eq 0 ] && echo "OK" || echo "FAIL" + ;; +restart|reload) + $0 stop + $0 start + ;; +*) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac diff --git a/bsp/buildroot/package/owfs/owfs.hash b/bsp/buildroot/package/owfs/owfs.hash new file mode 100644 index 00000000..3991eec9 --- /dev/null +++ b/bsp/buildroot/package/owfs/owfs.hash @@ -0,0 +1,4 @@ +# From https://sourceforge.net/projects/owfs/files/owfs/3.1p1/ +sha1 80892ca3e72fef2979b8f0a04db15fd24a2cbda6 owfs-3.1p1.tar.gz +# Locally calculated +sha256 e69421ae534565c1f8530a2447f583401f4d0d4b1cf3cb8cf399a57133ed7f81 owfs-3.1p1.tar.gz diff --git a/bsp/buildroot/package/owfs/owfs.mk b/bsp/buildroot/package/owfs/owfs.mk new file mode 100644 index 00000000..83614afc --- /dev/null +++ b/bsp/buildroot/package/owfs/owfs.mk @@ -0,0 +1,84 @@ +################################################################################ +# +# owfs +# +################################################################################ + +OWFS_VERSION = 3.1p1 +OWFS_SITE = http://downloads.sourceforge.net/project/owfs/owfs/$(OWFS_VERSION) +OWFS_DEPENDENCIES = host-pkgconf +OWFS_CONF_OPTS = --disable-owperl --without-perl5 --disable-owtcl --without-tcl + +# 0001-configure.ac-check-for-localtime_r.patch touches configure.ac +OWFS_AUTORECONF = YES + +# owtcl license is declared in module/ownet/c/src/include/ow_functions.h +OWFS_LICENSE = GPLv2+, LGPLv2 (owtcl) +OWFS_LICENSE_FILES = COPYING COPYING.LIB +OWFS_INSTALL_STAGING = YES + +# owfs PHP support is not PHP 7 compliant +# https://sourceforge.net/p/owfs/support-requests/32/ +OWFS_CONF_OPTS += --disable-owphp --without-php + +ifeq ($(BR2_PACKAGE_LIBFUSE),y) +OWFS_DEPENDENCIES += libfuse +OWFS_CONF_OPTS += \ + --enable-owfs \ + --with-fuseinclude=$(STAGING_DIR)/usr/include \ + --with-fuselib=$(STAGING_DIR)/usr/lib +define OWFS_INSTALL_FUSE_INIT_SYSV + $(INSTALL) -D -m 0755 $(OWFS_PKGDIR)S30owfs \ + $(TARGET_DIR)/etc/init.d/S30owfs +endef +define OWFS_CREATE_MOUNTPOINT + mkdir -p $(TARGET_DIR)/dev/1wire +endef +OWFS_POST_INSTALL_TARGET_HOOKS += OWFS_CREATE_MOUNTPOINT +else +OWFS_CONF_OPTS += --disable-owfs +endif + +ifeq ($(BR2_PACKAGE_LIBUSB),y) +OWFS_CONF_OPTS += --enable-usb +OWFS_DEPENDENCIES += libusb +else +OWFS_CONF_OPTS += --disable-usb +endif + +ifeq ($(BR2_PACKAGE_AVAHI),y) +OWFS_CONF_OPTS += --enable-avahi +OWFS_DEPENDENCIES += avahi +else +OWFS_CONF_OPTS += --disable-avahi +endif + +# setup.py isn't python3 compliant +ifeq ($(BR2_PACKAGE_PYTHON),y) +OWFS_CONF_OPTS += \ + --enable-owpython \ + --with-python \ + --with-pythonconfig=$(STAGING_DIR)/usr/bin/python-config +OWFS_MAKE_ENV += \ + CC="$(TARGET_CC)" \ + PYTHONPATH="$(PYTHON_PATH)" \ + _python_sysroot=$(STAGING_DIR) \ + _python_prefix=/usr \ + _python_exec_prefix=/usr +OWFS_DEPENDENCIES += python host-swig +else +OWFS_CONF_OPTS += --disable-owpython --without-python +endif + +ifeq ($(BR2_STATIC_LIBS),y) +# zeroconf support uses dlopen() +OWFS_CONF_OPTS += --disable-zero +endif + +define OWFS_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 $(OWFS_PKGDIR)S25owserver \ + $(TARGET_DIR)/etc/init.d/S25owserver + $(OWFS_INSTALL_FUSE_INIT_SYSV) +endef + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/owl-linux/owl-linux.hash b/bsp/buildroot/package/owl-linux/owl-linux.hash new file mode 100644 index 00000000..4a5133df --- /dev/null +++ b/bsp/buildroot/package/owl-linux/owl-linux.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 a6b1bc6b3900954438a0f1a316bac5f74171125a88c80c35e137f4ca512dedc6 owl-linux-1.0.7.tar.gz diff --git a/bsp/buildroot/package/p7zip/0001-bfin.patch b/bsp/buildroot/package/p7zip/0001-bfin.patch new file mode 100644 index 00000000..76addb65 --- /dev/null +++ b/bsp/buildroot/package/p7zip/0001-bfin.patch @@ -0,0 +1,19 @@ +Add support for blackfin arch. + +Fixes compilation error: +../../../../CPP/myWindows/mySplitCommandLine.cpp:99:8: error: #error ENDIANNESS + +Signed-off-by: Bernd Kuhls +(Patch sent upstream: https://sourceforge.net/p/p7zip/patches/33/ + +diff -uNr p7zip_15.14.1.org/C/CpuArch.h p7zip_15.14.1/C/CpuArch.h +--- p7zip_15.14.1.org/C/CpuArch.h 2016-02-17 07:27:16.000000000 +0100 ++++ p7zip_15.14.1/C/CpuArch.h 2016-06-08 19:47:49.000000000 +0200 +@@ -66,6 +66,7 @@ + || defined(__MIPSEL__) \ + || defined(__MIPSEL) \ + || defined(_MIPSEL) \ ++ || defined(__BFIN__) \ + || (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) + #define MY_CPU_LE + #endif diff --git a/bsp/buildroot/package/p7zip/Config.in b/bsp/buildroot/package/p7zip/Config.in new file mode 100644 index 00000000..840949c8 --- /dev/null +++ b/bsp/buildroot/package/p7zip/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_P7ZIP + bool "p7zip" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_WCHAR + help + p7zip is a quick port of the command line version of 7-zip for Unix. + (see http://www.7-zip.org) + + 7-Zip is a file archiver with highest compression ratio. + + http://sourceforge.net/projects/p7zip + +comment "p7zip needs a toolchain w/ threads, wchar, C++" + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/p7zip/p7zip.hash b/bsp/buildroot/package/p7zip/p7zip.hash new file mode 100644 index 00000000..ead6d871 --- /dev/null +++ b/bsp/buildroot/package/p7zip/p7zip.hash @@ -0,0 +1,3 @@ +# From https://sourceforge.net/projects/p7zip/files/p7zip/ +md5 92cca093312b5a71a7be7dc7d1d32509 p7zip_15.14.1_src_all.tar.bz2 +sha1 9b15a79f94230fab9b9d4f9f532c723117145c7a p7zip_15.14.1_src_all.tar.bz2 diff --git a/bsp/buildroot/package/p7zip/p7zip.mk b/bsp/buildroot/package/p7zip/p7zip.mk new file mode 100644 index 00000000..4bac859e --- /dev/null +++ b/bsp/buildroot/package/p7zip/p7zip.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# p7zip +# +################################################################################ + +P7ZIP_VERSION = 15.14.1 +P7ZIP_SOURCE = p7zip_$(P7ZIP_VERSION)_src_all.tar.bz2 +P7ZIP_SITE = http://downloads.sourceforge.net/project/p7zip/p7zip/$(P7ZIP_VERSION) +P7ZIP_LICENSE = LGPLv2.1+ with unRAR restriction +P7ZIP_LICENSE_FILES = DOC/License.txt + +# p7zip buildsystem is a mess: it plays dirty tricks with CFLAGS and +# CXXFLAGS, so we can't pass them. Instead, it accepts ALLFLAGS_C +# and ALLFLAGS_CPP as variables to pass the CFLAGS and CXXFLAGS. +define P7ZIP_BUILD_CMDS + $(MAKE) CC="$(TARGET_CC)" ALLFLAGS_C="$(TARGET_CFLAGS)" \ + CXX="$(TARGET_CXX)" ALLFLAGS_CPP="$(TARGET_CXXFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + -C $(@D) 7zr +endef + +define P7ZIP_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/bin/7zr $(TARGET_DIR)/usr/bin/7zr +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/pango/pango.hash b/bsp/buildroot/package/pango/pango.hash index 792ac057..67b67f04 100644 --- a/bsp/buildroot/package/pango/pango.hash +++ b/bsp/buildroot/package/pango/pango.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/GNOME/sources/pango/1.36/pango-1.38.1.sha256sum -sha256 1320569f6c6d75d6b66172b2d28e59c56ee864ee9df202b76799c4506a214eb7 pango-1.38.1.tar.xz +# From http://ftp.gnome.org/pub/GNOME/sources/pango/1.36/pango-1.40.1.sha256sum +sha256 e27af54172c72b3ac6be53c9a4c67053e16c905e02addcf3a603ceb2005c1a40 pango-1.40.1.tar.xz diff --git a/bsp/buildroot/package/pango/pango.mk b/bsp/buildroot/package/pango/pango.mk index a6b1a605..bdad8c68 100644 --- a/bsp/buildroot/package/pango/pango.mk +++ b/bsp/buildroot/package/pango/pango.mk @@ -4,7 +4,7 @@ # ################################################################################ -PANGO_VERSION_MAJOR = 1.38 +PANGO_VERSION_MAJOR = 1.40 PANGO_VERSION = $(PANGO_VERSION_MAJOR).1 PANGO_SOURCE = pango-$(PANGO_VERSION).tar.xz PANGO_SITE = http://ftp.gnome.org/pub/GNOME/sources/pango/$(PANGO_VERSION_MAJOR) diff --git a/bsp/buildroot/package/pangomm/pangomm.hash b/bsp/buildroot/package/pangomm/pangomm.hash index 39e6a911..4f39e515 100644 --- a/bsp/buildroot/package/pangomm/pangomm.hash +++ b/bsp/buildroot/package/pangomm/pangomm.hash @@ -1,2 +1,2 @@ -# From http://ftp.gnome.org/pub/gnome/sources/pangomm/2.39/pangomm-2.39.1.sha256sum -sha256 10c06bbf12a03963ffe9c697887b57c72f1dac1671d09dba45cecd25db5dc6ed pangomm-2.39.1.tar.xz +# From http://ftp.gnome.org/pub/gnome/sources/pangomm/2.40/pangomm-2.40.0.sha256sum +sha256 7dd0afa9dcce57cdb0aad77da9ea46823ee8515d5f3ffd895b9ede7365c3d70d pangomm-2.40.0.tar.xz diff --git a/bsp/buildroot/package/pangomm/pangomm.mk b/bsp/buildroot/package/pangomm/pangomm.mk index 42aa99e9..2db78900 100644 --- a/bsp/buildroot/package/pangomm/pangomm.mk +++ b/bsp/buildroot/package/pangomm/pangomm.mk @@ -4,8 +4,8 @@ # ################################################################################ -PANGOMM_VERSION_MAJOR = 2.39 -PANGOMM_VERSION = $(PANGOMM_VERSION_MAJOR).1 +PANGOMM_VERSION_MAJOR = 2.40 +PANGOMM_VERSION = $(PANGOMM_VERSION_MAJOR).0 PANGOMM_SOURCE = pangomm-$(PANGOMM_VERSION).tar.xz PANGOMM_SITE = http://ftp.gnome.org/pub/gnome/sources/pangomm/$(PANGOMM_VERSION_MAJOR) PANGOMM_LICENSE = LGPLv2.1+ (library), GPLv2+ (tools) diff --git a/bsp/buildroot/package/patch/Config.in b/bsp/buildroot/package/patch/Config.in index 887c84d4..c5b93e9f 100644 --- a/bsp/buildroot/package/patch/Config.in +++ b/bsp/buildroot/package/patch/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_PATCH bool "patch" depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Take patch files (containing difference listings) and apply them to original files, producing patched versions. @@ -9,3 +10,4 @@ config BR2_PACKAGE_PATCH comment "patch needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/pax-utils/pax-utils.mk b/bsp/buildroot/package/pax-utils/pax-utils.mk index fc2e0caa..8d5f3eea 100644 --- a/bsp/buildroot/package/pax-utils/pax-utils.mk +++ b/bsp/buildroot/package/pax-utils/pax-utils.mk @@ -10,13 +10,22 @@ PAX_UTILS_SOURCE = pax-utils-$(PAX_UTILS_VERSION).tar.xz PAX_UTILS_LICENSE = GPLv2 PAX_UTILS_LICENSE_FILES = COPYING +PAX_UTILS_DEPENDENCIES = host-pkgconf +PAX_UTILS_CONF_OPTS = --without-python + ifeq ($(BR2_PACKAGE_LIBCAP),y) PAX_UTILS_DEPENDENCIES += libcap -PAX_UTILS_USE_CAP = USE_CAP=yes +PAX_UTILS_CONF_OPTS += --with-caps +else +PAX_UTILS_CONF_OPTS += --without-caps endif -# libcap is only useful for pspax (a running system) -HOST_PAX_UTILS_DEPENDENCIES = +ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) +PAX_UTILS_DEPENDENCIES += libseccomp +PAX_UTILS_CONF_OPTS += --with-seccomp +else +PAX_UTILS_CONF_OPTS += --without-seccomp +endif # lddtree and symtree need bash ifeq ($(BR2_PACKAGE_BASH),) @@ -26,22 +35,5 @@ endef endif PAX_UTILS_POST_INSTALL_TARGET_HOOKS += PAX_UTILS_REMOVE_BASH_TOOLS -define HOST_PAX_UTILS_BUILD_CMDS - $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) -endef - -define PAX_UTILS_BUILD_CMDS - $(MAKE) $(TARGET_CONFIGURE_OPTS) $(PAX_UTILS_USE_CAP) -C $(@D) -endef - -define HOST_PAX_UTILS_INSTALL_CMDS - $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) DESTDIR="$(HOST_DIR)" install -endef - -define PAX_UTILS_INSTALL_TARGET_CMDS - $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \ - DESTDIR="$(TARGET_DIR)" install -endef - -$(eval $(generic-package)) -$(eval $(host-generic-package)) +$(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/pciutils/pciutils.hash b/bsp/buildroot/package/pciutils/pciutils.hash index dd75e426..efdb108c 100644 --- a/bsp/buildroot/package/pciutils/pciutils.hash +++ b/bsp/buildroot/package/pciutils/pciutils.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/software/utils/pciutils/sha256sums.asc -sha256 865554cc5604d1644bd8da38d94845405e2a319a6d5acabc6a0296417684a82a pciutils-3.4.1.tar.xz +sha256 2bf3a4605a562fb6b8b7673bff85a474a5cf383ed7e4bd8886b4f0939013d42f pciutils-3.5.1.tar.xz diff --git a/bsp/buildroot/package/pciutils/pciutils.mk b/bsp/buildroot/package/pciutils/pciutils.mk index d3a0e207..4714ceac 100644 --- a/bsp/buildroot/package/pciutils/pciutils.mk +++ b/bsp/buildroot/package/pciutils/pciutils.mk @@ -4,7 +4,7 @@ # ################################################################################ -PCIUTILS_VERSION = 3.4.1 +PCIUTILS_VERSION = 3.5.1 PCIUTILS_SITE = $(BR2_KERNEL_MIRROR)/software/utils/pciutils PCIUTILS_SOURCE = pciutils-$(PCIUTILS_VERSION).tar.xz PCIUTILS_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/pcmanfm/Config.in b/bsp/buildroot/package/pcmanfm/Config.in index 149a5954..40ebbdfc 100644 --- a/bsp/buildroot/package/pcmanfm/Config.in +++ b/bsp/buildroot/package/pcmanfm/Config.in @@ -3,7 +3,7 @@ config BR2_PACKAGE_PCMANFM select BR2_PACKAGE_LIBFM select BR2_PACKAGE_MENU_CACHE select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_LIBGTK2 + select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 depends on BR2_PACKAGE_XORG7 depends on BR2_USE_WCHAR # libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 @@ -17,8 +17,9 @@ config BR2_PACKAGE_PCMANFM http://wiki.lxde.org/en/PCManFM -comment "pcmanfm needs X.org and a toolchain w/ wchar, threads, C++" +comment "pcmanfm needs a toolchain w/ wchar, threads, C++" depends on BR2_USE_MMU + depends on BR2_PACKAGE_XORG7 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \ - !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_XORG7 + !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/pcmanfm/pcmanfm.hash b/bsp/buildroot/package/pcmanfm/pcmanfm.hash index a3b7653b..cb0d2066 100644 --- a/bsp/buildroot/package/pcmanfm/pcmanfm.hash +++ b/bsp/buildroot/package/pcmanfm/pcmanfm.hash @@ -1,2 +1,3 @@ -# From http://blog.lxde.org/?p=1280 -sha1 0a195301de31c82f1c169e620be7cea8b91813b5 pcmanfm-1.2.3.tar.xz +# From https://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/PCManFM/ +md5 19764c2f59653724c8713e0064fa6829 pcmanfm-1.2.4.tar.xz +sha1 4768ee564a36021977e4af8c33270b6835b3391d pcmanfm-1.2.4.tar.xz diff --git a/bsp/buildroot/package/pcmanfm/pcmanfm.mk b/bsp/buildroot/package/pcmanfm/pcmanfm.mk index 62d86186..e3619093 100644 --- a/bsp/buildroot/package/pcmanfm/pcmanfm.mk +++ b/bsp/buildroot/package/pcmanfm/pcmanfm.mk @@ -4,11 +4,19 @@ # ################################################################################ -PCMANFM_VERSION = 1.2.3 +PCMANFM_VERSION = 1.2.4 PCMANFM_SOURCE = pcmanfm-$(PCMANFM_VERSION).tar.xz PCMANFM_SITE = http://sourceforge.net/projects/pcmanfm/files -PCMANFM_DEPENDENCIES = libgtk2 libglib2 menu-cache libfm +PCMANFM_DEPENDENCIES = libglib2 menu-cache libfm PCMANFM_LICENSE = GPLv2+ PCMANFM_LICENSE_FILES = COPYING +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) +PCMANFM_CONF_OPTS += --with-gtk=3 +PCMANFM_DEPENDENCIES += libgtk3 +else +PCMANFM_CONF_OPTS += --with-gtk=2 +PCMANFM_DEPENDENCIES += libgtk2 +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/pcre/0001-no-compat.patch b/bsp/buildroot/package/pcre/0001-Kill-compatibility-bits.patch similarity index 63% rename from bsp/buildroot/package/pcre/0001-no-compat.patch rename to bsp/buildroot/package/pcre/0001-Kill-compatibility-bits.patch index 70997277..3563e4b7 100644 --- a/bsp/buildroot/package/pcre/0001-no-compat.patch +++ b/bsp/buildroot/package/pcre/0001-Kill-compatibility-bits.patch @@ -1,12 +1,21 @@ +From e180a4085d8d2f82a05f037e465708cfc16bd2bf Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 14 Jun 2016 20:31:12 -0300 +Subject: [PATCH] Kill compatibility bits + Kill ABI compatibility bits, we don't need them. -Fixes build failures on non-ELF (blackfin) targets. +Fixes build failures on non-ELF targets. Signed-off-by: Gustavo Zacarias +--- + pcrecpp.cc | 16 ---------------- + 1 file changed, 16 deletions(-) -diff -Nura pcre-8.32.orig/pcrecpp.cc pcre-8.32/pcrecpp.cc ---- pcre-8.32.orig/pcrecpp.cc 2012-12-28 08:32:10.193847937 -0300 -+++ pcre-8.32/pcrecpp.cc 2012-12-28 08:32:26.924376180 -0300 -@@ -58,22 +58,6 @@ +diff --git a/pcrecpp.cc b/pcrecpp.cc +index d09c9ab..6910db0 100644 +--- a/pcrecpp.cc ++++ b/pcrecpp.cc +@@ -58,22 +58,6 @@ static const int kVecSize = (1 + kMaxArgs) * 3; // results + PCRE workspace // Special object that stands-in for no argument Arg RE::no_arg((void*)NULL); @@ -18,7 +27,7 @@ diff -Nura pcre-8.32.orig/pcrecpp.cc pcre-8.32/pcrecpp.cc -// inclusive test if we ever needed it. (Note that not only the -// __attribute__ syntax, but also __USER_LABEL_PREFIX__, are -// gnu-specific.) --#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__) +-#if defined(__GNUC__) && __GNUC__ >= 3 && defined(__ELF__) && !defined(__INTEL_COMPILER) -# define ULP_AS_STRING(x) ULP_AS_STRING_INTERNAL(x) -# define ULP_AS_STRING_INTERNAL(x) #x -# define USER_LABEL_PREFIX_STR ULP_AS_STRING(__USER_LABEL_PREFIX__) @@ -29,3 +38,6 @@ diff -Nura pcre-8.32.orig/pcrecpp.cc pcre-8.32/pcrecpp.cc // If a regular expression has no error, its error_ field points here static const string empty_string; +-- +2.7.3 + diff --git a/bsp/buildroot/package/pcre/0002-no-cpp-tests.patch b/bsp/buildroot/package/pcre/0002-Disable-C-unit-tests.patch similarity index 66% rename from bsp/buildroot/package/pcre/0002-no-cpp-tests.patch rename to bsp/buildroot/package/pcre/0002-Disable-C-unit-tests.patch index 0255028f..c5c1a49f 100644 --- a/bsp/buildroot/package/pcre/0002-no-cpp-tests.patch +++ b/bsp/buildroot/package/pcre/0002-Disable-C-unit-tests.patch @@ -1,12 +1,20 @@ -Disable PCRE C++ unit tests, they fail to build on static scenarios -and they're not installed. +From e3c636b8c7f9912d8d3a9fabdaa0a96ba69f7b29 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 14 Jun 2016 20:32:44 -0300 +Subject: [PATCH] Disable C++ unit tests + +They fail to build on static targets and they're not installed anyway. Signed-off-by: Gustavo Zacarias +--- + Makefile.in | 9 --------- + 1 file changed, 9 deletions(-) -diff -Nura pcre-8.33.orig/Makefile.in pcre-8.33/Makefile.in ---- pcre-8.33.orig/Makefile.in 2013-05-28 06:09:27.000000000 -0300 -+++ pcre-8.33/Makefile.in 2013-09-03 11:28:28.398198832 -0300 -@@ -123,12 +123,6 @@ +diff --git a/Makefile.in b/Makefile.in +index 6d03912..2c42b3e 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -133,12 +133,6 @@ noinst_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) @WITH_PCRE8_TRUE@am__append_20 = libpcreposix.la @WITH_GCOV_TRUE@@WITH_PCRE8_TRUE@am__append_21 = $(GCOV_CFLAGS) @WITH_PCRE_CPP_TRUE@am__append_22 = libpcrecpp.la @@ -19,7 +27,7 @@ diff -Nura pcre-8.33.orig/Makefile.in pcre-8.33/Makefile.in @WITH_GCOV_TRUE@@WITH_PCRE_CPP_TRUE@am__append_25 = $(GCOV_CXXFLAGS) @WITH_GCOV_TRUE@@WITH_PCRE_CPP_TRUE@am__append_26 = $(GCOV_LIBS) @WITH_GCOV_TRUE@@WITH_PCRE_CPP_TRUE@am__append_27 = $(GCOV_LIBS) -@@ -360,9 +354,6 @@ +@@ -362,9 +356,6 @@ libpcreposix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ @WITH_PCRE8_TRUE@am__EXEEXT_1 = pcregrep$(EXEEXT) @WITH_REBUILD_CHARTABLES_TRUE@am__EXEEXT_2 = dftables$(EXEEXT) @WITH_JIT_TRUE@am__EXEEXT_3 = pcre_jit_test$(EXEEXT) @@ -29,3 +37,6 @@ diff -Nura pcre-8.33.orig/Makefile.in pcre-8.33/Makefile.in PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__dftables_SOURCES_DIST = dftables.c @WITH_REBUILD_CHARTABLES_TRUE@am_dftables_OBJECTS = \ +-- +2.7.3 + diff --git a/bsp/buildroot/package/pcre/pcre.hash b/bsp/buildroot/package/pcre/pcre.hash index 5b580a74..bc50042e 100644 --- a/bsp/buildroot/package/pcre/pcre.hash +++ b/bsp/buildroot/package/pcre/pcre.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 b9e02d36e23024d6c02a2e5b25204b3a4fa6ade43e0a5f869f254f49535079df pcre-8.38.tar.bz2 +sha256 b858099f82483031ee02092711689e7245586ada49e534a06e678b8ea9549e8b pcre-8.39.tar.bz2 diff --git a/bsp/buildroot/package/pcre/pcre.mk b/bsp/buildroot/package/pcre/pcre.mk index 06652c70..a10950d4 100644 --- a/bsp/buildroot/package/pcre/pcre.mk +++ b/bsp/buildroot/package/pcre/pcre.mk @@ -4,7 +4,7 @@ # ################################################################################ -PCRE_VERSION = 8.38 +PCRE_VERSION = 8.39 PCRE_SITE = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre PCRE_SOURCE = pcre-$(PCRE_VERSION).tar.bz2 PCRE_LICENSE = BSD-3c @@ -12,6 +12,9 @@ PCRE_LICENSE_FILES = LICENCE PCRE_INSTALL_STAGING = YES PCRE_CONFIG_SCRIPTS = pcre-config +# They're required for host-libglib2 +HOST_PCRE_CONF_OPTS = --enable-unicode-properties + ifneq ($(BR2_INSTALL_LIBSTDCPP),y) # pcre will use the host g++ if a cross version isn't available PCRE_CONF_OPTS = --disable-cpp diff --git a/bsp/buildroot/package/pcsc-lite/pcsc-lite.hash b/bsp/buildroot/package/pcsc-lite/pcsc-lite.hash new file mode 100644 index 00000000..3adb8652 --- /dev/null +++ b/bsp/buildroot/package/pcsc-lite/pcsc-lite.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 607c4bd730526d282a63edb2ba4ee043f497877be642c5c647e37995e21f2612 pcsc-lite-1.8.10.tar.bz2 diff --git a/bsp/buildroot/package/pdbg/Config.in b/bsp/buildroot/package/pdbg/Config.in new file mode 100644 index 00000000..3e23c210 --- /dev/null +++ b/bsp/buildroot/package/pdbg/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_PDBG + bool "pdbg" + help + PowerPC FSI Debugger, for low level debugging of a IBM + Power8 CPU over FSI. + + pdbg runs on a BMC, which is generally an ARM-powered system + monitoring/controlling a host CPU. + + https://github.com/open-power/pdbg diff --git a/bsp/buildroot/package/pdbg/pdbg.hash b/bsp/buildroot/package/pdbg/pdbg.hash new file mode 100644 index 00000000..16bf5802 --- /dev/null +++ b/bsp/buildroot/package/pdbg/pdbg.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 8edabb9ae98ce3b1892b768f2ee5e779a00476b63cdcc6f905e8464a0b7d96a3 pdbg-90a7370a11e727f1482dea6ff2bd6aec20c64805.tar.gz diff --git a/bsp/buildroot/package/pdbg/pdbg.mk b/bsp/buildroot/package/pdbg/pdbg.mk new file mode 100644 index 00000000..9cc05cd7 --- /dev/null +++ b/bsp/buildroot/package/pdbg/pdbg.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# pdbg +# +################################################################################ + +PDBG_VERSION = 90a7370a11e727f1482dea6ff2bd6aec20c64805 +PDBG_SITE = $(call github,open-power,pdbg,$(PDBG_VERSION)) +PDBG_LICENSE = Apache 2.0 +PDBG_LICENSE_FILES = COPYING +PDBG_AUTORECONF = YES + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/perl-datetime-tiny/Config.in b/bsp/buildroot/package/perl-datetime-tiny/Config.in index e84db8b7..7721c076 100644 --- a/bsp/buildroot/package/perl-datetime-tiny/Config.in +++ b/bsp/buildroot/package/perl-datetime-tiny/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_PERL_DATETIME_TINY bool "perl-datetime-tiny" help - A datetime object with as little code as possible + A date object, with as little code as possible - https://metacpan.org/release/DateTime-Tiny + https://github.com/dagolden/DateTime-Tiny diff --git a/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.hash b/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.hash index e498edb3..68f2c025 100644 --- a/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.hash +++ b/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.hash @@ -1,3 +1,3 @@ # retrieved by scancpan from http://cpan.metacpan.org/ -md5 9e7e4fe588445023763df113d3f2345f DateTime-Tiny-1.04.tar.gz -sha256 68137c8ab3ca2a7f8a5fcea20f94b2f82bc2c7c36bb45063dbd81faadf0c7881 DateTime-Tiny-1.04.tar.gz +md5 736be4b3e8171f4a029fb6ac3712a9b4 DateTime-Tiny-1.06.tar.gz +sha256 bd725df481d7223ee787e154c116098b08a129f55e0763194b07ebea3dda33ec DateTime-Tiny-1.06.tar.gz diff --git a/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.mk b/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.mk index bf3b7d97..57589731 100644 --- a/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.mk +++ b/bsp/buildroot/package/perl-datetime-tiny/perl-datetime-tiny.mk @@ -4,9 +4,9 @@ # ################################################################################ -PERL_DATETIME_TINY_VERSION = 1.04 +PERL_DATETIME_TINY_VERSION = 1.06 PERL_DATETIME_TINY_SOURCE = DateTime-Tiny-$(PERL_DATETIME_TINY_VERSION).tar.gz -PERL_DATETIME_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/A/AD/ADAMK +PERL_DATETIME_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DA/DAGOLDEN PERL_DATETIME_TINY_LICENSE = Artistic or GPLv1+ PERL_DATETIME_TINY_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/perl-html-parser/Config.in b/bsp/buildroot/package/perl-html-parser/Config.in index 8a725f1d..22a16d64 100644 --- a/bsp/buildroot/package/perl-html-parser/Config.in +++ b/bsp/buildroot/package/perl-html-parser/Config.in @@ -3,10 +3,9 @@ config BR2_PACKAGE_PERL_HTML_PARSER depends on !BR2_STATIC_LIBS select BR2_PACKAGE_PERL_HTML_TAGSET help - The HTML-Parser distribution is is a collection of modules that parse - and extract information from HTML documents + HTML parser class - http://github.com/gisle/html-parser + https://metacpan.org/release/HTML-Parser comment "perl-html-parser needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/perl-html-parser/perl-html-parser.hash b/bsp/buildroot/package/perl-html-parser/perl-html-parser.hash index eed22b7a..0c0bb1f2 100644 --- a/bsp/buildroot/package/perl-html-parser/perl-html-parser.hash +++ b/bsp/buildroot/package/perl-html-parser/perl-html-parser.hash @@ -1,3 +1,3 @@ # retrieved by scancpan from http://cpan.metacpan.org/ -md5 9128a45893097dfa3bf03301b19c5efe HTML-Parser-3.71.tar.gz -sha256 be918b3749d3ff93627f72ee4b825683332ecb4c81c67a3a8d72b0435ffbd802 HTML-Parser-3.71.tar.gz +md5 eb7505e5f626913350df9dd4a03d54a8 HTML-Parser-3.72.tar.gz +sha256 ec28c7e1d9e67c45eca197077f7cdc41ead1bb4c538c7f02a3296a4bb92f608b HTML-Parser-3.72.tar.gz diff --git a/bsp/buildroot/package/perl-html-parser/perl-html-parser.mk b/bsp/buildroot/package/perl-html-parser/perl-html-parser.mk index 18d25c58..14a28264 100644 --- a/bsp/buildroot/package/perl-html-parser/perl-html-parser.mk +++ b/bsp/buildroot/package/perl-html-parser/perl-html-parser.mk @@ -4,7 +4,7 @@ # ################################################################################ -PERL_HTML_PARSER_VERSION = 3.71 +PERL_HTML_PARSER_VERSION = 3.72 PERL_HTML_PARSER_SOURCE = HTML-Parser-$(PERL_HTML_PARSER_VERSION).tar.gz PERL_HTML_PARSER_SITE = $(BR2_CPAN_MIRROR)/authors/id/G/GA/GAAS PERL_HTML_PARSER_DEPENDENCIES = perl-html-tagset diff --git a/bsp/buildroot/package/perl-module-build/perl-module-build.hash b/bsp/buildroot/package/perl-module-build/perl-module-build.hash index 558434bf..d42dbada 100644 --- a/bsp/buildroot/package/perl-module-build/perl-module-build.hash +++ b/bsp/buildroot/package/perl-module-build/perl-module-build.hash @@ -1,3 +1,3 @@ # retrieved by scancpan from http://cpan.metacpan.org/ -md5 7b7ca5a47bef48c50c8b5906ca3ac7fb Module-Build-0.4214.tar.gz -sha256 c579488918cf4db84954a550c475272b3c25f5100c739339e91a65d7c055dc3f Module-Build-0.4214.tar.gz +md5 7e3b17e14b54036c5ac18c27f7955e79 Module-Build-0.4218.tar.gz +sha256 1ef0aa529a3f296f894a5e79240a77d71be60dd595e8cad3a0d04c7ea187c0d0 Module-Build-0.4218.tar.gz diff --git a/bsp/buildroot/package/perl-module-build/perl-module-build.mk b/bsp/buildroot/package/perl-module-build/perl-module-build.mk index 3caf302c..0effbacb 100644 --- a/bsp/buildroot/package/perl-module-build/perl-module-build.mk +++ b/bsp/buildroot/package/perl-module-build/perl-module-build.mk @@ -4,7 +4,7 @@ # ################################################################################ -PERL_MODULE_BUILD_VERSION = 0.4214 +PERL_MODULE_BUILD_VERSION = 0.4218 PERL_MODULE_BUILD_SOURCE = Module-Build-$(PERL_MODULE_BUILD_VERSION).tar.gz PERL_MODULE_BUILD_SITE = $(BR2_CPAN_MIRROR)/authors/id/L/LE/LEONT PERL_MODULE_BUILD_LICENSE = Artistic or GPLv1+ diff --git a/bsp/buildroot/package/perl-mojolicious/Config.in b/bsp/buildroot/package/perl-mojolicious/Config.in index 766d1095..ebf0932b 100644 --- a/bsp/buildroot/package/perl-mojolicious/Config.in +++ b/bsp/buildroot/package/perl-mojolicious/Config.in @@ -3,4 +3,4 @@ config BR2_PACKAGE_PERL_MOJOLICIOUS help Real-time web framework - http://mojolicio.us + http://mojolicious.org diff --git a/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.hash b/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.hash index 289f1f3c..23a30e50 100644 --- a/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.hash +++ b/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.hash @@ -1,3 +1,3 @@ # retrieved by scancpan from http://cpan.metacpan.org/ -md5 8c189aed47bbe330584fb335251b3380 Mojolicious-6.25.tar.gz -sha256 2e34d665a505ca9cbd4c55f010b17d184533b9ba2f92431d7c4126e0edc3a41a Mojolicious-6.25.tar.gz +md5 91799c9c21e116dc438fdec1ede5a977 Mojolicious-7.0.tar.gz +sha256 2da57d411aaf718d6b93deebd08d3c36e7f32ef66b6a539854f72119ad9b6bc2 Mojolicious-7.0.tar.gz diff --git a/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.mk b/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.mk index 3ea828bd..1bc31bb8 100644 --- a/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.mk +++ b/bsp/buildroot/package/perl-mojolicious/perl-mojolicious.mk @@ -4,7 +4,7 @@ # ################################################################################ -PERL_MOJOLICIOUS_VERSION = 6.25 +PERL_MOJOLICIOUS_VERSION = 7.0 PERL_MOJOLICIOUS_SOURCE = Mojolicious-$(PERL_MOJOLICIOUS_VERSION).tar.gz PERL_MOJOLICIOUS_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SR/SRI PERL_MOJOLICIOUS_LICENSE = Artistic-2.0 diff --git a/bsp/buildroot/package/perl-try-tiny/Config.in b/bsp/buildroot/package/perl-try-tiny/Config.in index 7bd5396f..ea25589b 100644 --- a/bsp/buildroot/package/perl-try-tiny/Config.in +++ b/bsp/buildroot/package/perl-try-tiny/Config.in @@ -3,4 +3,4 @@ config BR2_PACKAGE_PERL_TRY_TINY help minimal try/catch with proper preservation of $@ - http://metacpan.org/release/Try-Tiny + https://github.com/karenetheridge/Try-Tiny diff --git a/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.hash b/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.hash index bff911f2..dc44f18b 100644 --- a/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.hash +++ b/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.hash @@ -1,3 +1,3 @@ # retrieved by scancpan from http://cpan.metacpan.org/ -md5 6769658bfbca241a470206c9a8819ff2 Try-Tiny-0.22.tar.gz -sha256 60fba46f4693d33d54539104f9001df008dabb400b6837e9605c39a6ee6a1b19 Try-Tiny-0.22.tar.gz +md5 1a12a51cfeb7e2c301e4ae093c7ecdfb Try-Tiny-0.24.tar.gz +sha256 9b7a1af24c0256973d175369ebbdc25ec01e2452a97f2d3ab61481c826f38d81 Try-Tiny-0.24.tar.gz diff --git a/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.mk b/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.mk index 05cea542..f0331976 100644 --- a/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.mk +++ b/bsp/buildroot/package/perl-try-tiny/perl-try-tiny.mk @@ -4,10 +4,10 @@ # ################################################################################ -PERL_TRY_TINY_VERSION = 0.22 +PERL_TRY_TINY_VERSION = 0.24 PERL_TRY_TINY_SOURCE = Try-Tiny-$(PERL_TRY_TINY_VERSION).tar.gz -PERL_TRY_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/D/DO/DOY +PERL_TRY_TINY_SITE = $(BR2_CPAN_MIRROR)/authors/id/E/ET/ETHER PERL_TRY_TINY_LICENSE = MIT -PERL_TRY_TINY_LICENSE_FILES = LICENSE +PERL_TRY_TINY_LICENSE_FILES = README $(eval $(perl-package)) diff --git a/bsp/buildroot/package/perl-xml-libxml/Config.in b/bsp/buildroot/package/perl-xml-libxml/Config.in index 44fe7102..fb15e101 100644 --- a/bsp/buildroot/package/perl-xml-libxml/Config.in +++ b/bsp/buildroot/package/perl-xml-libxml/Config.in @@ -5,10 +5,11 @@ config BR2_PACKAGE_PERL_XML_LIBXML select BR2_PACKAGE_ZLIB select BR2_PACKAGE_PERL_XML_NAMESPACESUPPORT select BR2_PACKAGE_PERL_XML_SAX + select BR2_PACKAGE_PERL_XML_SAX_BASE help Interface to Gnome libxml2 xml parsing and DOM library - https://bitbucket.org/shlomif/perl-xml-libxml + https://github.com/shlomif/perl-XML-LibXML comment "perl-xml-libxml needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.hash b/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.hash index 782cf5c0..1d42bf2f 100644 --- a/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.hash +++ b/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.hash @@ -1,3 +1,3 @@ # retrieved by scancpan from http://cpan.metacpan.org/ -md5 c9eb502f8aa2586c4a4dce3c784a2a0b XML-LibXML-2.0123.tar.gz -sha256 0525a2491f152cadee8c63550c79a380fb393851fdfc4c1e6cd5f0f92614f7c4 XML-LibXML-2.0123.tar.gz +md5 c6007524ddec3be6cfbb8f68f5aa791c XML-LibXML-2.0126.tar.gz +sha256 0e735ab72e2ba77070a58a737fd6c61fa6aa198527abc59a5d5627f0650a60af XML-LibXML-2.0126.tar.gz diff --git a/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.mk b/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.mk index 9d7216aa..66c606b3 100644 --- a/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.mk +++ b/bsp/buildroot/package/perl-xml-libxml/perl-xml-libxml.mk @@ -4,10 +4,10 @@ # ################################################################################ -PERL_XML_LIBXML_VERSION = 2.0123 +PERL_XML_LIBXML_VERSION = 2.0126 PERL_XML_LIBXML_SOURCE = XML-LibXML-$(PERL_XML_LIBXML_VERSION).tar.gz PERL_XML_LIBXML_SITE = $(BR2_CPAN_MIRROR)/authors/id/S/SH/SHLOMIF -PERL_XML_LIBXML_DEPENDENCIES = zlib libxml2 perl-xml-sax perl-xml-namespacesupport +PERL_XML_LIBXML_DEPENDENCIES = zlib libxml2 perl-xml-namespacesupport perl-xml-sax perl-xml-sax-base PERL_XML_LIBXML_LICENSE = Artistic or GPLv1+ PERL_XML_LIBXML_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/perl/perl.hash b/bsp/buildroot/package/perl/perl.hash index 3f1bd1a6..4afbd06d 100644 --- a/bsp/buildroot/package/perl/perl.hash +++ b/bsp/buildroot/package/perl/perl.hash @@ -1,7 +1,7 @@ -# Hashes from: http://www.cpan.org/src/5.0/perl-5.22.1.tar.bz2.{md5,sha1,sha256}.txt -md5 67242b9bd642b458bec884ed2a040910 perl-5.22.1.tar.bz2 -sha1 29f9b320b0299577a3e1d02e9e8ef8f26f160332 perl-5.22.1.tar.bz2 -sha256 e98e4075a3167fa40524abe447c30bcca10c60e02a54ee1361eff278947a1221 perl-5.22.1.tar.bz2 +# Hashes from: http://www.cpan.org/src/5.0/perl-5.22.2.tar.bz2.{md5,sha1,sha256}.txt +md5 24ec0b41fdd1a4cce0e66811ae1f5e1b perl-5.22.2.tar.bz2 +sha1 e2f465446dcd45a7fa3da696037f9ebe73e78e55 perl-5.22.2.tar.bz2 +sha256 f2322b9b04fe0cdbca9fe755360da04892cb6483d44959457cfebc0bcddc8058 perl-5.22.2.tar.bz2 # No upstream hashes for the following sha256 250ab6e6c034a8b7ae447fa2b453fa0b61ebb7db4d039eba60c52e44ab5899bd perl-5.22.1-cross-1.0.2.tar.gz diff --git a/bsp/buildroot/package/perl/perl.mk b/bsp/buildroot/package/perl/perl.mk index 0bd10ad4..29b44559 100644 --- a/bsp/buildroot/package/perl/perl.mk +++ b/bsp/buildroot/package/perl/perl.mk @@ -4,8 +4,9 @@ # ################################################################################ +# When updating the version here, also update support/scripts/scancpan PERL_VERSION_MAJOR = 22 -PERL_VERSION = 5.$(PERL_VERSION_MAJOR).1 +PERL_VERSION = 5.$(PERL_VERSION_MAJOR).2 PERL_SITE = http://www.cpan.org/src/5.0 PERL_SOURCE = perl-$(PERL_VERSION).tar.bz2 PERL_LICENSE = Artistic or GPLv1+ @@ -54,7 +55,7 @@ PERL_CONF_OPTS = \ -Dccflags="$(TARGET_CFLAGS)" \ -Dldflags="$(TARGET_LDFLAGS) -lm" \ -Dmydomain="" \ - -Dmyhostname="$(BR2_TARGET_GENERIC_HOSTNAME)" \ + -Dmyhostname="noname" \ -Dmyuname="Buildroot $(BR2_VERSION_FULL)" \ -Dosname=linux \ -Dosvers=$(LINUX_VERSION) \ @@ -90,10 +91,6 @@ define PERL_INSTALL_TARGET_CMDS $(MAKE1) -C $(@D) DESTDIR="$(TARGET_DIR)" install.perl endef -# We never want to have host-berkeleydb or host-gdbm as dependencies -# of host-perl. -HOST_PERL_DEPENDENCIES = - HOST_PERL_CONF_OPTS = \ -des \ -Dprefix="$(HOST_DIR)/usr" \ @@ -114,7 +111,6 @@ endef $(eval $(generic-package)) $(eval $(host-generic-package)) -ifeq ($(BR2_PACKAGE_PERL),y) define PERL_FINALIZE_TARGET rm -rf $(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/pod rm -rf $(TARGET_DIR)/usr/lib/perl5/$(PERL_VERSION)/$(PERL_ARCHNAME)/CORE @@ -122,5 +118,4 @@ define PERL_FINALIZE_TARGET find $(TARGET_DIR)/usr/lib/perl5/ -name '*.bs' -print0 | xargs -0 rm -f find $(TARGET_DIR)/usr/lib/perl5/ -name '.packlist' -print0 | xargs -0 rm -f endef -TARGET_FINALIZE_HOOKS += PERL_FINALIZE_TARGET -endif +PERL_TARGET_FINALIZE_HOOKS += PERL_FINALIZE_TARGET diff --git a/bsp/buildroot/package/phidgetwebservice/phidgetwebservice.hash b/bsp/buildroot/package/phidgetwebservice/phidgetwebservice.hash new file mode 100644 index 00000000..7cd85da7 --- /dev/null +++ b/bsp/buildroot/package/phidgetwebservice/phidgetwebservice.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e8add82fd41d9cb274b88ee369a1f7366e35f85abcfcabb9e2a383574bb779c5 phidgetwebservice_2.1.8.20140319.tar.gz diff --git a/bsp/buildroot/package/php-geoip/php-geoip.hash b/bsp/buildroot/package/php-geoip/php-geoip.hash index 275a098b..37298802 100644 --- a/bsp/buildroot/package/php-geoip/php-geoip.hash +++ b/bsp/buildroot/package/php-geoip/php-geoip.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 82c6deb7264d2ff7c4d6c45a7d27cff7ab097be965795e317e04a9c5b7be98b9 geoip-1.1.0.tgz +sha256 63167b717f624580b93f3c6c050d8d64ebc6cbe1377069646eb387534c7a2f7e php-geoip-ebb68228ad94298a305710f701b2ade9acff985d.tar.gz diff --git a/bsp/buildroot/package/php-geoip/php-geoip.mk b/bsp/buildroot/package/php-geoip/php-geoip.mk index 0826c197..c39c95c4 100644 --- a/bsp/buildroot/package/php-geoip/php-geoip.mk +++ b/bsp/buildroot/package/php-geoip/php-geoip.mk @@ -4,16 +4,14 @@ # ################################################################################ -PHP_GEOIP_VERSION = 1.1.0 -PHP_GEOIP_SOURCE = geoip-$(PHP_GEOIP_VERSION).tgz -# pecl.php.net returns html with db connect failed -PHP_GEOIP_SITE = http://sources.buildroot.net +PHP_GEOIP_VERSION = ebb68228ad94298a305710f701b2ade9acff985d +PHP_GEOIP_SITE = $(call github,php7-extensions,ext-php7-geoip,$(PHP_GEOIP_VERSION)) PHP_GEOIP_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-geoip=$(STAGING_DIR)/usr # phpize does the autoconf magic PHP_GEOIP_DEPENDENCIES = geoip php host-autoconf PHP_GEOIP_LICENSE = PHP -PHP_GEOIP_LICENSE_FILES = LICENSE +PHP_GEOIP_LICENSE_FILES = geoip.c define PHP_GEOIP_PHPIZE (cd $(@D); \ diff --git a/bsp/buildroot/package/php-gnupg/Config.in b/bsp/buildroot/package/php-gnupg/Config.in index 49fb43b5..113017d0 100644 --- a/bsp/buildroot/package/php-gnupg/Config.in +++ b/bsp/buildroot/package/php-gnupg/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_PHP_GNUPG bool "php-gnupg" depends on BR2_PACKAGE_PHP + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # ligpgme depends on BR2_USE_MMU # libassuan select BR2_PACKAGE_LIBGPGME help diff --git a/bsp/buildroot/package/php-gnupg/php-gnupg.hash b/bsp/buildroot/package/php-gnupg/php-gnupg.hash index ef066a50..f0654b57 100644 --- a/bsp/buildroot/package/php-gnupg/php-gnupg.hash +++ b/bsp/buildroot/package/php-gnupg/php-gnupg.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 50065cb81f1ac3ec5fcd796e58c8433071ff24cc14900e6077682717f5239307 gnupg-1.3.6.tgz +sha256 6f1a4b5a95fe501519de76d66602e46290cc452fc48f3a5ec2eacaffe68d9a01 php-gnupg-30fab6eaf9eb61c65b3b46987442be058cbd7823.tar.gz diff --git a/bsp/buildroot/package/php-gnupg/php-gnupg.mk b/bsp/buildroot/package/php-gnupg/php-gnupg.mk index c5964c21..c1c6680b 100644 --- a/bsp/buildroot/package/php-gnupg/php-gnupg.mk +++ b/bsp/buildroot/package/php-gnupg/php-gnupg.mk @@ -4,9 +4,8 @@ # ################################################################################ -PHP_GNUPG_VERSION = 1.3.6 -PHP_GNUPG_SOURCE = gnupg-$(PHP_GNUPG_VERSION).tgz -PHP_GNUPG_SITE = http://pecl.php.net/get +PHP_GNUPG_VERSION = 30fab6eaf9eb61c65b3b46987442be058cbd7823 +PHP_GNUPG_SITE = $(call github,Sean-Der,pecl-encryption-gnupg,$(PHP_GNUPG_VERSION)) # phpize does the autoconf magic PHP_GNUPG_DEPENDENCIES = php libgpgme host-autoconf host-pkgconf PHP_GNUPG_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ diff --git a/bsp/buildroot/package/php-imagick/php-imagick.hash b/bsp/buildroot/package/php-imagick/php-imagick.hash index 6173eca3..551bed62 100644 --- a/bsp/buildroot/package/php-imagick/php-imagick.hash +++ b/bsp/buildroot/package/php-imagick/php-imagick.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 528769ac304a0bbe9a248811325042188c9d16e06de16f111fee317c85a36c93 imagick-3.1.2.tgz +sha256 a729fbd69e0aa145824d61dc9225bfb636dcd8421874a5667ac3822e609449e1 imagick-3.4.1.tgz diff --git a/bsp/buildroot/package/php-imagick/php-imagick.mk b/bsp/buildroot/package/php-imagick/php-imagick.mk index 1cd4a489..84cc3119 100644 --- a/bsp/buildroot/package/php-imagick/php-imagick.mk +++ b/bsp/buildroot/package/php-imagick/php-imagick.mk @@ -4,10 +4,9 @@ # ################################################################################ -PHP_IMAGICK_VERSION = 3.1.2 +PHP_IMAGICK_VERSION = 3.4.1 PHP_IMAGICK_SOURCE = imagick-$(PHP_IMAGICK_VERSION).tgz -# pecl.php.net returns html with db connect failed -PHP_IMAGICK_SITE = http://sources.buildroot.net +PHP_IMAGICK_SITE = http://pecl.php.net/get PHP_IMAGICK_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-imagick=$(STAGING_DIR)/usr # phpize does the autoconf magic diff --git a/bsp/buildroot/package/php-memcached/php-memcached.hash b/bsp/buildroot/package/php-memcached/php-memcached.hash index bc2e97ac..f2a096f3 100644 --- a/bsp/buildroot/package/php-memcached/php-memcached.hash +++ b/bsp/buildroot/package/php-memcached/php-memcached.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 17b9600f6d4c807f23a3f5c45fcd8775ca2e61d6eda70370af2bef4c6e159f58 memcached-2.2.0.tgz +sha256 73266212e791a4817da06be1daddf9ff7dd5b5b0b650b3fbd0f5fc6ccc18491b php-memcached-6ee96cad7be5caa1f13a1f3e5a4d5f900b9c04ce.tar.gz diff --git a/bsp/buildroot/package/php-memcached/php-memcached.mk b/bsp/buildroot/package/php-memcached/php-memcached.mk index 599e22e6..ea241b26 100644 --- a/bsp/buildroot/package/php-memcached/php-memcached.mk +++ b/bsp/buildroot/package/php-memcached/php-memcached.mk @@ -4,10 +4,8 @@ # ################################################################################ -PHP_MEMCACHED_VERSION = 2.2.0 -PHP_MEMCACHED_SOURCE = memcached-$(PHP_MEMCACHED_VERSION).tgz -# pecl.php.net returns html with db connect failed -PHP_MEMCACHED_SITE = http://sources.buildroot.net +PHP_MEMCACHED_VERSION = 6ee96cad7be5caa1f13a1f3e5a4d5f900b9c04ce +PHP_MEMCACHED_SITE = $(call github,php-memcached-dev,php-memcached,$(PHP_MEMCACHED_VERSION)) PHP_MEMCACHED_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --disable-memcached-sasl \ --with-libmemcached-dir=$(STAGING_DIR)/usr \ diff --git a/bsp/buildroot/package/php-ssh2/Config.in b/bsp/buildroot/package/php-ssh2/Config.in index 9b8a3f82..c795dd52 100644 --- a/bsp/buildroot/package/php-ssh2/Config.in +++ b/bsp/buildroot/package/php-ssh2/Config.in @@ -1,9 +1,9 @@ config BR2_PACKAGE_PHP_SSH2 bool "php-ssh2" depends on BR2_PACKAGE_PHP + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS \ + && !BR2_PACKAGE_OPENSSL # libssh2, libgcrypt select BR2_PACKAGE_LIBSSH2 - # Triggers the _gp link issue (libssh2) - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help PHP bindings for the libssh2 library. diff --git a/bsp/buildroot/package/php-ssh2/php-ssh2.hash b/bsp/buildroot/package/php-ssh2/php-ssh2.hash index d599662f..b514601b 100644 --- a/bsp/buildroot/package/php-ssh2/php-ssh2.hash +++ b/bsp/buildroot/package/php-ssh2/php-ssh2.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 600c82d2393acf3642f19914f06a7afea57ee05cb8c10e8a5510b32188b97f99 ssh2-0.12.tgz +sha256 3d79a6c9ffed3fd6ec16e834c0cc93cf125d9f5bdbb951b8b76a3507498548d5 php-ssh2-12dd52236c601577a63e33ee71e3ce6dad811e40.tar.gz diff --git a/bsp/buildroot/package/php-ssh2/php-ssh2.mk b/bsp/buildroot/package/php-ssh2/php-ssh2.mk index ace68e01..2b616321 100644 --- a/bsp/buildroot/package/php-ssh2/php-ssh2.mk +++ b/bsp/buildroot/package/php-ssh2/php-ssh2.mk @@ -4,10 +4,8 @@ # ################################################################################ -PHP_SSH2_VERSION = 0.12 -PHP_SSH2_SOURCE = ssh2-$(PHP_SSH2_VERSION).tgz -# pecl.php.net returns html with db connect failed -PHP_SSH2_SITE = http://sources.buildroot.net +PHP_SSH2_VERSION = 12dd52236c601577a63e33ee71e3ce6dad811e40 +PHP_SSH2_SITE = $(call github,php,pecl-networking-ssh2,$(PHP_SSH2_VERSION)) PHP_SSH2_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-ssh2=$(STAGING_DIR)/usr # phpize does the autoconf magic diff --git a/bsp/buildroot/package/php-yaml/php-yaml.hash b/bsp/buildroot/package/php-yaml/php-yaml.hash index e4f22a6a..a40677ef 100644 --- a/bsp/buildroot/package/php-yaml/php-yaml.hash +++ b/bsp/buildroot/package/php-yaml/php-yaml.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 762ec3d9eb163ac0d063118df8c5e2ee6746dbe8566d32055e7e066e590937c3 yaml-1.1.1.tgz +sha256 d49acf2b7843258957a16df0d7ced56c0e1fc3eaa54f54289e4012edc002814c yaml-2.0.0RC7.tgz diff --git a/bsp/buildroot/package/php-yaml/php-yaml.mk b/bsp/buildroot/package/php-yaml/php-yaml.mk index b6f259df..27118906 100644 --- a/bsp/buildroot/package/php-yaml/php-yaml.mk +++ b/bsp/buildroot/package/php-yaml/php-yaml.mk @@ -4,10 +4,9 @@ # ################################################################################ -PHP_YAML_VERSION = 1.1.1 +PHP_YAML_VERSION = 2.0.0RC7 PHP_YAML_SOURCE = yaml-$(PHP_YAML_VERSION).tgz -# pecl.php.net returns html with db connect failed -PHP_YAML_SITE = http://sources.buildroot.net +PHP_YAML_SITE = https://pecl.php.net/get PHP_YAML_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config \ --with-yaml=$(STAGING_DIR)/usr # phpize does the autoconf magic diff --git a/bsp/buildroot/package/php-zmq/php-zmq.hash b/bsp/buildroot/package/php-zmq/php-zmq.hash index 50ce639e..c99e351e 100644 --- a/bsp/buildroot/package/php-zmq/php-zmq.hash +++ b/bsp/buildroot/package/php-zmq/php-zmq.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 c9b0af56826fc5e1a95a0fef25e671d9839a421d79e174931faacd8bee389f31 zmq-1.1.2.tgz +sha256 c492375818bd51b355352798fb94f04d6828c6aeda41ba813849624af74144ce zmq-1.1.3.tgz diff --git a/bsp/buildroot/package/php-zmq/php-zmq.mk b/bsp/buildroot/package/php-zmq/php-zmq.mk index 88c962d8..2730996d 100644 --- a/bsp/buildroot/package/php-zmq/php-zmq.mk +++ b/bsp/buildroot/package/php-zmq/php-zmq.mk @@ -4,10 +4,9 @@ # ################################################################################ -PHP_ZMQ_VERSION = 1.1.2 +PHP_ZMQ_VERSION = 1.1.3 PHP_ZMQ_SOURCE = zmq-$(PHP_ZMQ_VERSION).tgz -# pecl.php.net returns html with db connect failed -PHP_ZMQ_SITE = http://sources.buildroot.net +PHP_ZMQ_SITE = https://pecl.php.net/get # phpize does the autoconf magic PHP_ZMQ_DEPENDENCIES = php zeromq host-autoconf host-pkgconf PHP_ZMQ_CONF_OPTS = --with-php-config=$(STAGING_DIR)/usr/bin/php-config diff --git a/bsp/buildroot/package/php/0001-ditch-unset.patch b/bsp/buildroot/package/php/0001-acinclude.m4-don-t-unset-variables.patch similarity index 52% rename from bsp/buildroot/package/php/0001-ditch-unset.patch rename to bsp/buildroot/package/php/0001-acinclude.m4-don-t-unset-variables.patch index eda83c95..d507775b 100644 --- a/bsp/buildroot/package/php/0001-ditch-unset.patch +++ b/bsp/buildroot/package/php/0001-acinclude.m4-don-t-unset-variables.patch @@ -1,12 +1,21 @@ +From 7a4168062fbab2e33ef9a42bca9f87a5921afac2 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 9 Aug 2016 11:49:56 +0200 +Subject: [PATCH] acinclude.m4: don't unset variables + Unsetting ac_cv_{func,lib}_* is bad, you can't feed the configure cache. Terminate them with extreme prejudice. Signed-off-by: Gustavo Zacarias +--- + acinclude.m4 | 4 ---- + 1 file changed, 4 deletions(-) -diff -Nura php-5.6.8.orig/acinclude.m4 php-5.6.8/acinclude.m4 ---- php-5.6.8.orig/acinclude.m4 2015-04-15 20:05:57.000000000 +0200 -+++ php-5.6.8/acinclude.m4 2015-05-18 20:03:50.833099001 +0200 -@@ -1897,8 +1897,6 @@ +diff --git a/acinclude.m4 b/acinclude.m4 +index 28506b6..af4aa06 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -1898,8 +1898,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,])) dnl AC_DEFUN([PHP_CHECK_FUNC_LIB],[ ifelse($2,,:,[ @@ -15,7 +24,7 @@ diff -Nura php-5.6.8.orig/acinclude.m4 php-5.6.8/acinclude.m4 unset found AC_CHECK_LIB($2, $1, [found=yes], [ AC_CHECK_LIB($2, __$1, [found=yes], [found=no]) -@@ -1930,8 +1928,6 @@ +@@ -1931,8 +1929,6 @@ dnl in the default libraries and as a fall back in the specified library. dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS. dnl AC_DEFUN([PHP_CHECK_FUNC],[ @@ -24,3 +33,6 @@ diff -Nura php-5.6.8.orig/acinclude.m4 php-5.6.8/acinclude.m4 unset found AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ]) +-- +2.7.4 + diff --git a/bsp/buildroot/package/php/0002-no-iconv-search.patch b/bsp/buildroot/package/php/0002-iconv-tweak-iconv-detection.patch similarity index 69% rename from bsp/buildroot/package/php/0002-no-iconv-search.patch rename to bsp/buildroot/package/php/0002-iconv-tweak-iconv-detection.patch index 32aa7f5f..a3466493 100644 --- a/bsp/buildroot/package/php/0002-no-iconv-search.patch +++ b/bsp/buildroot/package/php/0002-iconv-tweak-iconv-detection.patch @@ -1,3 +1,8 @@ +From 1357df0196806d5697b1f84497ef72aab5faa8a3 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 9 Aug 2016 11:50:49 +0200 +Subject: [PATCH] iconv: tweak iconv detection + Tweak PHP_SETUP_ICONV from aclocal/acinclude.m4 to not PHP_ADD_INCLUDE $ICONV_DIR/include since the tests use test instead of AC_TRY_LINK to find headers which is bad, @@ -8,11 +13,16 @@ PHP_ICONV_H_PATH which, again, uses test and absolute paths. Signed-off-by: Gustavo Zacarias [Gustavo: convert to nice m4 instead of patching configure] [Gustavo: update for 5.6.10] +--- + acinclude.m4 | 2 +- + ext/iconv/config.m4 | 22 ---------------------- + 2 files changed, 1 insertion(+), 23 deletions(-) -diff -Nura php-5.6.10.orig/acinclude.m4 php-5.6.10/acinclude.m4 ---- php-5.6.10.orig/acinclude.m4 2015-06-12 16:09:06.274355813 -0300 -+++ php-5.6.10/acinclude.m4 2015-06-12 16:10:10.884544865 -0300 -@@ -2474,7 +2474,7 @@ +diff --git a/acinclude.m4 b/acinclude.m4 +index af4aa06..1bd2652 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -2471,7 +2471,7 @@ AC_DEFUN([PHP_SETUP_ICONV], [ dnl if test "$found_iconv" = "no"; then @@ -21,10 +31,11 @@ diff -Nura php-5.6.10.orig/acinclude.m4 php-5.6.10/acinclude.m4 if test -r $i/include/giconv.h; then AC_DEFINE(HAVE_GICONV_H, 1, [ ]) ICONV_DIR=$i -diff -Nura php-5.6.10.orig/ext/iconv/config.m4 php-5.6.10/ext/iconv/config.m4 ---- php-5.6.10.orig/ext/iconv/config.m4 2015-06-12 16:09:07.792407246 -0300 -+++ php-5.6.10/ext/iconv/config.m4 2015-06-12 16:11:07.752471600 -0300 -@@ -14,28 +14,6 @@ +diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4 +index 6a05697..694fcb8 100644 +--- a/ext/iconv/config.m4 ++++ b/ext/iconv/config.m4 +@@ -14,28 +14,6 @@ if test "$PHP_ICONV" != "no"; then ]) if test "$iconv_avail" != "no"; then @@ -53,3 +64,6 @@ diff -Nura php-5.6.10.orig/ext/iconv/config.m4 php-5.6.10/ext/iconv/config.m4 AC_MSG_CHECKING([if iconv is glibc's]) AC_TRY_LINK([#include ],[gnu_get_libc_version();], +-- +2.7.4 + diff --git a/bsp/buildroot/package/php/0003-disable-pharcmd.patch b/bsp/buildroot/package/php/0003-configure-disable-the-phar-tool.patch similarity index 60% rename from bsp/buildroot/package/php/0003-disable-pharcmd.patch rename to bsp/buildroot/package/php/0003-configure-disable-the-phar-tool.patch index bfcc9563..3b64b7b6 100644 --- a/bsp/buildroot/package/php/0003-disable-pharcmd.patch +++ b/bsp/buildroot/package/php/0003-configure-disable-the-phar-tool.patch @@ -1,3 +1,8 @@ +From 5ba6355e489f647c88ca48afbc75965468193181 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 9 Aug 2016 11:51:53 +0200 +Subject: [PATCH] configure: disable the 'phar' tool + Disable the 'phar' command-line tool build/installation since it requires php to run and pack up phar itself in phar format. This would require a host-php instance and really probably nobody needs the phar tool @@ -5,13 +10,17 @@ on the target. Signed-off-by: Gustavo Zacarias [Gustavo: update for autoreconf/configure.in] +--- + configure.in | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) -diff -Nura php-5.6.7.orig/configure.in php-5.6.7/configure.in ---- php-5.6.7.orig/configure.in 2015-04-08 11:08:10.815835010 -0300 -+++ php-5.6.7/configure.in 2015-04-08 11:16:20.460467444 -0300 -@@ -1437,13 +1437,8 @@ +diff --git a/configure.in b/configure.in +index 25c8abf..4dc8a09 100644 +--- a/configure.in ++++ b/configure.in +@@ -1445,13 +1445,8 @@ CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag" INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag" - CXXFLAGS="$CXXFLAGS $standard_libtool_flag" + CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)" -if test "$PHP_PHAR" != "no" && test "$PHP_CLI" != "no"; then - pharcmd=pharcmd @@ -25,3 +34,6 @@ diff -Nura php-5.6.7.orig/configure.in php-5.6.7/configure.in all_targets="$lcov_target \$(OVERALL_TARGET) \$(PHP_MODULES) \$(PHP_ZEND_EX) \$(PHP_BINARIES) $pharcmd" install_targets="$install_sapi $install_modules $install_binaries install-build install-headers install-programs $install_pear $pharcmd_install" +-- +2.7.4 + diff --git a/bsp/buildroot/package/php/0004-flock-type-linux.patch b/bsp/buildroot/package/php/0004-OPcache-flock-mechanism-is-obviously-linux-so-force-.patch similarity index 66% rename from bsp/buildroot/package/php/0004-flock-type-linux.patch rename to bsp/buildroot/package/php/0004-OPcache-flock-mechanism-is-obviously-linux-so-force-.patch index a03c2624..9b530361 100644 --- a/bsp/buildroot/package/php/0004-flock-type-linux.patch +++ b/bsp/buildroot/package/php/0004-OPcache-flock-mechanism-is-obviously-linux-so-force-.patch @@ -1,11 +1,18 @@ -OPcache: flock mechanism is obviously linux so force it. +From bedbd41ef0a5ce80b83a6f6eaebd7c90f0bc5615 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 9 Aug 2016 11:52:19 +0200 +Subject: [PATCH] OPcache: flock mechanism is obviously linux so force it. Signed-off-by: Gustavo Zacarias +--- + ext/opcache/config.m4 | 34 ++-------------------------------- + 1 file changed, 2 insertions(+), 32 deletions(-) -diff -Nura php-5.6.7.orig/ext/opcache/config.m4 php-5.6.7/ext/opcache/config.m4 ---- php-5.6.7.orig/ext/opcache/config.m4 2015-04-08 11:08:11.125845540 -0300 -+++ php-5.6.7/ext/opcache/config.m4 2015-04-08 11:57:23.648831436 -0300 -@@ -326,38 +326,8 @@ +diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 +index fbb9b21..ffddc8e 100644 +--- a/ext/opcache/config.m4 ++++ b/ext/opcache/config.m4 +@@ -343,38 +343,8 @@ int main() { msg=yes,msg=no,msg=no) AC_MSG_RESULT([$msg]) @@ -44,5 +51,8 @@ diff -Nura php-5.6.7.orig/ext/opcache/config.m4 php-5.6.7/ext/opcache/config.m4 +flock_type=linux +AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) - if test "$flock_type" == "unknown"; then + if test "$flock_type" = "unknown"; then AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) +-- +2.7.4 + diff --git a/bsp/buildroot/package/php/0005-ac-cache-strcasestr.patch b/bsp/buildroot/package/php/0005-ac-cache-strcasestr.patch deleted file mode 100644 index 8a8c5d86..00000000 --- a/bsp/buildroot/package/php/0005-ac-cache-strcasestr.patch +++ /dev/null @@ -1,24 +0,0 @@ -Allow cache answer for strcasestr discovery. - -Signed-off-by: Gustavo Zacarias - -diff -Nura php-5.6.7.orig/ext/fileinfo/config.m4 php-5.6.7/ext/fileinfo/config.m4 ---- php-5.6.7.orig/ext/fileinfo/config.m4 2015-04-08 22:19:45.798770792 -0300 -+++ php-5.6.7/ext/fileinfo/config.m4 2015-04-08 22:26:33.110654338 -0300 -@@ -14,6 +14,7 @@ - libmagic/readcdf.c libmagic/softmagic.c" - - AC_MSG_CHECKING([for strcasestr]) -+ AC_CACHE_VAL(ac_cv_func_strcasestr, - AC_TRY_RUN([ - #include - #include -@@ -46,7 +47,7 @@ - AC_MSG_RESULT(no) - AC_MSG_NOTICE(using libmagic strcasestr implementation) - libmagic_sources="$libmagic_sources libmagic/strcasestr.c" -- ]) -+ ])) - - PHP_NEW_EXTENSION(fileinfo, fileinfo.c $libmagic_sources, $ext_shared,,-I@ext_srcdir@/libmagic) - PHP_ADD_BUILD_DIR($ext_builddir/libmagic) diff --git a/bsp/buildroot/package/php/0005-ext-fileinfo-config.m4-allow-cache-answer-for-strcas.patch b/bsp/buildroot/package/php/0005-ext-fileinfo-config.m4-allow-cache-answer-for-strcas.patch new file mode 100644 index 00000000..a36c2a3a --- /dev/null +++ b/bsp/buildroot/package/php/0005-ext-fileinfo-config.m4-allow-cache-answer-for-strcas.patch @@ -0,0 +1,35 @@ +From a874ba472151c6811018de322a5787d0ca6148c9 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Tue, 9 Aug 2016 11:52:51 +0200 +Subject: [PATCH] ext/fileinfo/config.m4: allow cache answer for strcasestr + discovery + +Signed-off-by: Gustavo Zacarias +--- + ext/fileinfo/config.m4 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4 +index 7e98d62..8561962 100644 +--- a/ext/fileinfo/config.m4 ++++ b/ext/fileinfo/config.m4 +@@ -14,6 +14,7 @@ if test "$PHP_FILEINFO" != "no"; then + libmagic/readcdf.c libmagic/softmagic.c" + + AC_MSG_CHECKING([for strcasestr]) ++ AC_CACHE_VAL(ac_cv_func_strcasestr, + AC_TRY_RUN([ + #include + #include +@@ -46,7 +47,7 @@ int main(void) + AC_MSG_RESULT(no) + AC_MSG_NOTICE(using libmagic strcasestr implementation) + libmagic_sources="$libmagic_sources libmagic/strcasestr.c" +- ]) ++ ])) + + PHP_NEW_EXTENSION(fileinfo, fileinfo.c $libmagic_sources, $ext_shared,,-I@ext_srcdir@/libmagic) + PHP_ADD_BUILD_DIR($ext_builddir/libmagic) +-- +2.7.4 + diff --git a/bsp/buildroot/package/php/0006-fix-php-fpm.service.in.patch b/bsp/buildroot/package/php/0006-Fix-php-fpm.service.in.patch similarity index 93% rename from bsp/buildroot/package/php/0006-fix-php-fpm.service.in.patch rename to bsp/buildroot/package/php/0006-Fix-php-fpm.service.in.patch index a182a252..68cb50a3 100644 --- a/bsp/buildroot/package/php/0006-fix-php-fpm.service.in.patch +++ b/bsp/buildroot/package/php/0006-Fix-php-fpm.service.in.patch @@ -1,4 +1,4 @@ -From bb19125781c0794da9a63fee62e263ff4efff661 Mon Sep 17 00:00:00 2001 +From 1a8714d0b56e06301b3c261eaef93d897ec5d834 Mon Sep 17 00:00:00 2001 From: Floris Bos Date: Fri, 1 May 2015 15:28:55 +0200 Subject: [PATCH] Fix php-fpm.service.in @@ -31,5 +31,5 @@ index a2df30e..c135f04 100644 [Install] -- -2.1.4 +2.7.4 diff --git a/bsp/buildroot/package/php/0007-phpdbg_prompt-enclose-phpdbg_load_module_or_extensio.patch b/bsp/buildroot/package/php/0007-phpdbg_prompt-enclose-phpdbg_load_module_or_extensio.patch new file mode 100644 index 00000000..006a0348 --- /dev/null +++ b/bsp/buildroot/package/php/0007-phpdbg_prompt-enclose-phpdbg_load_module_or_extensio.patch @@ -0,0 +1,47 @@ +From 9ca3de0446fcd31b1561b333020ae0674a83bec7 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 9 Aug 2016 11:39:10 +0200 +Subject: [PATCH] phpdbg_prompt: enclose phpdbg_load_module_or_extension() in + HAVE_LIBDL + +The phpdbg_load_module_or_extension() function relies on libdl +functionality, so it should be enclosed in HAVE_LIBDL to avoid the +following build failure when libdl support is not available: + +php-7.0.9/sapi/phpdbg/phpdbg_prompt.c:(.text+0x1c20): undefined reference to `_DL_LOAD' +php-7.0.9/sapi/phpdbg/phpdbg_prompt.c:(.text+0x1c36): undefined reference to `_GET_DL_ERROR' +php-7.0.9/sapi/phpdbg/phpdbg_prompt.c:(.text+0x1c6a): undefined reference to `_DL_FETCH_SYMBOL' +php-7.0.9/sapi/phpdbg/phpdbg_prompt.c:(.text+0x1c7e): undefined reference to `_DL_FETCH_SYMBOL' +php-7.0.9/sapi/phpdbg/phpdbg_prompt.c:(.text+0x1dc6): undefined reference to `_DL_UNLOAD' + +This function is only called in the "dl" debug command, inside an +HAVE_LIBDL condition. + +Signed-off-by: Thomas Petazzoni +--- + sapi/phpdbg/phpdbg_prompt.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c +index 6f73d30..6768dc5 100644 +--- a/sapi/phpdbg/phpdbg_prompt.c ++++ b/sapi/phpdbg/phpdbg_prompt.c +@@ -1019,6 +1019,7 @@ static int add_zendext_info(zend_extension *ext) /* {{{ */ { + } + /* }}} */ + ++#ifdef HAVE_LIBDL + PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, char **name) /* {{{ */ { + DL_HANDLE handle; + char *extension_dir; +@@ -1158,6 +1159,7 @@ quit: + DL_UNLOAD(handle); + return NULL; + } ++#endif + /* }}} */ + + PHPDBG_COMMAND(dl) /* {{{ */ +-- +2.7.4 + diff --git a/bsp/buildroot/package/php/Config.ext b/bsp/buildroot/package/php/Config.ext index ee51030a..82aaf41e 100644 --- a/bsp/buildroot/package/php/Config.ext +++ b/bsp/buildroot/package/php/Config.ext @@ -111,22 +111,12 @@ config BR2_PACKAGE_PHP_EXT_DBA_INI endif -config BR2_PACKAGE_PHP_EXT_MYSQL - bool "Mysql" - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_USE_MMU # mysql - depends on BR2_TOOLCHAIN_HAS_THREADS # mysql - select BR2_PACKAGE_MYSQL - help - MySQL support - config BR2_PACKAGE_PHP_EXT_MYSQLI bool "Mysqli" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_MMU # mysql depends on BR2_TOOLCHAIN_HAS_THREADS # mysql select BR2_PACKAGE_MYSQL - select BR2_PACKAGE_PHP_EXT_MYSQL help MySQL Improved extension support diff --git a/bsp/buildroot/package/php/Config.in b/bsp/buildroot/package/php/Config.in index 32faa322..eee8d264 100644 --- a/bsp/buildroot/package/php/Config.in +++ b/bsp/buildroot/package/php/Config.in @@ -9,8 +9,6 @@ config BR2_PACKAGE_PHP if BR2_PACKAGE_PHP -source "package/php/Config.ext" - config BR2_PACKAGE_PHP_CLI bool @@ -66,4 +64,6 @@ config BR2_PACKAGE_PHP_SAPI_CLI_FPM endchoice +source "package/php/Config.ext" + endif diff --git a/bsp/buildroot/package/php/php.hash b/bsp/buildroot/package/php/php.hash index 5cdafc6b..6e146f81 100644 --- a/bsp/buildroot/package/php/php.hash +++ b/bsp/buildroot/package/php/php.hash @@ -1,2 +1,2 @@ # From http://php.net/downloads.php -sha256 54dd9106c3469bc7028644d72ac140af00655420bbaaf4a742a64e9ed02ec1b0 php-5.6.18.tar.xz +sha256 970c322ba3e472cb0264b8ba9d4d92e87918da5d0cca53c4aba2a70545b8626d php-7.0.9.tar.xz diff --git a/bsp/buildroot/package/php/php.mk b/bsp/buildroot/package/php/php.mk index f2c7e28b..d7e27a13 100644 --- a/bsp/buildroot/package/php/php.mk +++ b/bsp/buildroot/package/php/php.mk @@ -4,7 +4,7 @@ # ################################################################################ -PHP_VERSION = 5.6.18 +PHP_VERSION = 7.0.9 PHP_SITE = http://www.php.net/distributions PHP_SOURCE = php-$(PHP_VERSION).tar.xz PHP_INSTALL_STAGING = YES @@ -32,9 +32,10 @@ ifeq ($(BR2_STATIC_LIBS)$(BR2_TOOLCHAIN_HAS_THREADS),yy) PHP_STATIC_LIBS += -lpthread endif -ifeq ($(BR2_TARGET_LOCALTIME),) +ifeq ($(call qstrip,$(BR2_TARGET_LOCALTIME)),) PHP_LOCALTIME = UTC else +# Not q-stripping this value, as we need quotes in the php.ini file PHP_LOCALTIME = $(BR2_TARGET_LOCALTIME) endif @@ -178,11 +179,7 @@ PHP_CONF_OPTS += --with-readline=$(STAGING_DIR)/usr PHP_DEPENDENCIES += readline endif -### Native MySQL extensions -ifeq ($(BR2_PACKAGE_PHP_EXT_MYSQL),y) -PHP_CONF_OPTS += --with-mysql=$(STAGING_DIR)/usr -PHP_DEPENDENCIES += mysql -endif +### Native SQL extensions ifeq ($(BR2_PACKAGE_PHP_EXT_MYSQLI),y) PHP_CONF_OPTS += --with-mysqli=$(STAGING_DIR)/usr/bin/mysql_config PHP_DEPENDENCIES += mysql diff --git a/bsp/buildroot/package/pifmrds/pifmrds.hash b/bsp/buildroot/package/pifmrds/pifmrds.hash new file mode 100644 index 00000000..0c91d3d4 --- /dev/null +++ b/bsp/buildroot/package/pifmrds/pifmrds.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 2afc9f3c9fc206ba32865d7dd77f3a97d7d86dcfc9b44eeb5665e8fddaafcf44 pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.tar.gz diff --git a/bsp/buildroot/package/pinentry/Config.in b/bsp/buildroot/package/pinentry/Config.in index f5a81597..682af9f3 100644 --- a/bsp/buildroot/package/pinentry/Config.in +++ b/bsp/buildroot/package/pinentry/Config.in @@ -40,11 +40,15 @@ config BR2_PACKAGE_PINENTRY_QT4 depends on BR2_USE_MMU # fork depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_QT select BR2_PACKAGE_QT_GUI_MODULE help The pinentry-qt4 tool +comment "pinentry-qt4 support needs a toolchain not affected by Binutils bug 19405" + depends on BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 + comment "pinentry-qt4 needs a toolchain w/ C++, threads" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/pinentry/pinentry.mk b/bsp/buildroot/package/pinentry/pinentry.mk index 09a7705c..bcb910a0 100644 --- a/bsp/buildroot/package/pinentry/pinentry.mk +++ b/bsp/buildroot/package/pinentry/pinentry.mk @@ -14,6 +14,13 @@ PINENTRY_DEPENDENCIES = \ host-pkgconf PINENTRY_CONF_OPTS += --without-libcap # requires PAM +# pinentry uses some std::string functionality that needs C++11 +# support when gcc >= 5.x. This should be removed when bumping +# pinentry, since newer versions no longer use std::string. +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),y) +PINENTRY_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=gnu++11" +endif + # build with X if available ifeq ($(BR2_PACKAGE_XORG7),y) PINENTRY_CONF_OPTS += --with-x diff --git a/bsp/buildroot/package/pixman/pixman.mk b/bsp/buildroot/package/pixman/pixman.mk index 06070f0c..c797b3e6 100644 --- a/bsp/buildroot/package/pixman/pixman.mk +++ b/bsp/buildroot/package/pixman/pixman.mk @@ -12,6 +12,7 @@ PIXMAN_LICENSE_FILES = COPYING PIXMAN_INSTALL_STAGING = YES PIXMAN_DEPENDENCIES = host-pkgconf +HOST_PIXMAN_DEPENDENCIES = host-pkgconf # For 0001-Disable-tests.patch PIXMAN_AUTORECONF = YES @@ -19,6 +20,23 @@ PIXMAN_AUTORECONF = YES # don't build gtk based demos PIXMAN_CONF_OPTS = --disable-gtk +# The ARM SIMD code from pixman requires a recent enough ARM core, but +# there is a runtime CPU check that makes sure it doesn't get used if +# the HW doesn't support it. The only case where the ARM SIMD code +# cannot be *built* at all is when the platform doesn't support ARM +# instructions at all, so we have to disable that explicitly. +ifeq ($(BR2_ARM_CPU_HAS_ARM),y) +PIXMAN_CONF_OPTS += --enable-arm-simd +else +PIXMAN_CONF_OPTS += --disable-arm-simd +endif + +ifeq ($(BR2_ARM_CPU_HAS_ARM)$(BR2_ARM_CPU_HAS_NEON),yy) +PIXMAN_CONF_OPTS += --enable-arm-neon +else +PIXMAN_CONF_OPTS += --disable-arm-neon +endif + # disable iwmmxt support for CPU's that don't have # this feature ifneq ($(BR2_iwmmxt),y) @@ -32,10 +50,5 @@ ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) PIXMAN_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DPIXMAN_NO_TLS" endif -# Altivec detection isn't reliable for CS toolchains -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC),y) -PIXMAN_CONF_OPTS += --disable-vmx -endif - $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/pkg-autotools.mk b/bsp/buildroot/package/pkg-autotools.mk index 502eeea6..d1cdb89f 100644 --- a/bsp/buildroot/package/pkg-autotools.mk +++ b/bsp/buildroot/package/pkg-autotools.mk @@ -65,14 +65,14 @@ define LIBTOOL_PATCH_HOOK ltmain_patchlevel=`sed -n '/^[ \t]*VERSION=/{s/^[ \t]*VERSION=//;p;q;}' $$i | \ sed -e 's/\([0-9]*\.[0-9]*\.*\)\([0-9]*\).*/\2/' -e 's/\"//'`; \ if test $${ltmain_version} = '1.5'; then \ - $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \ + patch -i support/libtool/buildroot-libtool-v1.5.patch $${i}; \ elif test $${ltmain_version} = "2.2"; then\ - $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \ + patch -i support/libtool/buildroot-libtool-v2.2.patch $${i}; \ elif test $${ltmain_version} = "2.4"; then\ if test $${ltmain_patchlevel:-0} -gt 2; then\ - $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.4.patch; \ + patch -i support/libtool/buildroot-libtool-v2.4.4.patch $${i}; \ else \ - $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \ + patch -i support/libtool/buildroot-libtool-v2.4.patch $${i}; \ fi \ fi \ done @@ -159,15 +159,6 @@ $(2)_INSTALL_OPTS ?= install $(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install $(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install -# This must be repeated from inner-generic-package, otherwise we get an empty -# _DEPENDENCIES if _AUTORECONF is YES. Also filter the result of _AUTORECONF -# and _GETTEXTIZE away from the non-host rule -ifeq ($(4),host) -$(2)_DEPENDENCIES ?= $$(filter-out host-automake host-autoconf host-libtool \ - host-gettext host-skeleton host-toolchain $(1),\ - $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -endif - # # Configure step. Only define it if not already defined by the package # .mk file. And take care of the differences between host and target diff --git a/bsp/buildroot/package/pkg-cmake.mk b/bsp/buildroot/package/pkg-cmake.mk index 81dcfcce..8d5b955f 100644 --- a/bsp/buildroot/package/pkg-cmake.mk +++ b/bsp/buildroot/package/pkg-cmake.mk @@ -85,9 +85,9 @@ define $(2)_CONFIGURE_CMDS cd $$($$(PKG)_BUILDDIR) && \ rm -f CMakeCache.txt && \ PATH=$$(BR_PATH) \ - $$($$(PKG)_CONF_ENV) $$(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \ + $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \ -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" \ - -DCMAKE_BUILD_TYPE=$$(if $$(BR2_ENABLE_DEBUG),Debug,Release) \ + -DCMAKE_BUILD_TYPE=$$(if $$(BR2_ENABLE_DEBUG),RelWithDebInfo,Release) \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DCMAKE_COLOR_MAKEFILE=OFF \ -DBUILD_DOC=OFF \ @@ -110,7 +110,7 @@ define $(2)_CONFIGURE_CMDS cd $$($$(PKG)_BUILDDIR) && \ rm -f CMakeCache.txt && \ PATH=$$(BR_PATH) \ - $$(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \ + $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \ -DCMAKE_INSTALL_SO_NO_EXE=0 \ -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \ @@ -142,14 +142,13 @@ endef endif endif -# This must be repeated from inner-generic-package, otherwise we only get -# host-cmake in _DEPENDENCIES because of the following line -ifeq ($(4),host) -$(2)_DEPENDENCIES ?= $$(filter-out host-skeleton host-toolchain $(1),\ - $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -endif +# Since some CMake modules (even upstream ones) use pgk_check_modules +# primitives to find {C,LD}FLAGS, add it to the dependency list. +$(2)_DEPENDENCIES += host-pkgconf -$(2)_DEPENDENCIES += host-cmake +ifneq ($$(USE_SYSTEM_CMAKE),YES) + $(2)_DEPENDENCIES += host-cmake +endif # # Build step. Only define it if not already defined by the package .mk @@ -243,9 +242,12 @@ $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake: -e 's#@@STAGING_SUBDIR@@#$(call qstrip,$(STAGING_SUBDIR))#' \ -e 's#@@TARGET_CFLAGS@@#$(call qstrip,$(TARGET_CFLAGS))#' \ -e 's#@@TARGET_CXXFLAGS@@#$(call qstrip,$(TARGET_CXXFLAGS))#' \ + -e 's#@@TARGET_FCFLAGS@@#$(call qstrip,$(TARGET_FCFLAGS))#' \ -e 's#@@TARGET_LDFLAGS@@#$(call qstrip,$(TARGET_LDFLAGS))#' \ -e 's#@@TARGET_CC@@#$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_CC)))#' \ -e 's#@@TARGET_CXX@@#$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_CXX)))#' \ + -e 's#@@TARGET_FC@@#$(subst $(HOST_DIR)/,,$(call qstrip,$(TARGET_FC)))#' \ -e 's#@@CMAKE_SYSTEM_PROCESSOR@@#$(call qstrip,$(CMAKE_SYSTEM_PROCESSOR))#' \ + -e 's#@@TOOLCHAIN_HAS_FORTRAN@@#$(if $(BR2_TOOLCHAIN_HAS_FORTRAN),1,0)#' \ $(TOPDIR)/support/misc/toolchainfile.cmake.in \ > $@ diff --git a/bsp/buildroot/package/pkg-download.mk b/bsp/buildroot/package/pkg-download.mk index 1332e66f..315203f3 100644 --- a/bsp/buildroot/package/pkg-download.mk +++ b/bsp/buildroot/package/pkg-download.mk @@ -76,6 +76,7 @@ export BR_NO_CHECK_HASH_FOR = define DOWNLOAD_GIT $(EXTRA_ENV) $(DL_WRAPPER) -b git \ -o $(DL_DIR)/$($(PKG)_SOURCE) \ + $(if $($(PKG)_GIT_SUBMODULES),-r) \ $(QUIET) \ -- \ $($(PKG)_SITE) \ @@ -212,7 +213,8 @@ define SOURCE_CHECK endef define DOWNLOAD_INNER - $(Q)if test -n "$(call qstrip,$(BR2_PRIMARY_SITE))" ; then \ + $(Q)$(if $(filter bzr cvs git hg svn,$($(PKG)_SITE_METHOD)),export BR_NO_CHECK_HASH_FOR=$(2);) \ + if test -n "$(call qstrip,$(BR2_PRIMARY_SITE))" ; then \ case "$(call geturischeme,$(BR2_PRIMARY_SITE))" in \ file) $(call $(3)_LOCALFILES,$(BR2_PRIMARY_SITE)/$(2),$(2)) && exit ;; \ scp) $(call $(3)_SCP,$(BR2_PRIMARY_SITE)/$(2),$(2)) && exit ;; \ diff --git a/bsp/buildroot/package/pkg-generic.mk b/bsp/buildroot/package/pkg-generic.mk index e22babbc..68ead3d1 100644 --- a/bsp/buildroot/package/pkg-generic.mk +++ b/bsp/buildroot/package/pkg-generic.mk @@ -123,6 +123,12 @@ $(BUILD_DIR)/%/.stamp_downloaded: $(Q)mkdir -p $(@D) $(Q)touch $@ +# Retrieve actual source archive, e.g. for prebuilt external toolchains +$(BUILD_DIR)/%/.stamp_actual_downloaded: + $(call DOWNLOAD,$($(PKG)_ACTUAL_SOURCE_SITE)/$($(PKG)_ACTUAL_SOURCE_TARBALL)); \ + $(Q)mkdir -p $(@D) + $(Q)touch $@ + # Unpack the archive $(BUILD_DIR)/%/.stamp_extracted: @$(call step_start,extract) @@ -380,8 +386,6 @@ ifndef $(2)_VERSION $(2)_DL_VERSION := $$($(3)_DL_VERSION) else ifdef $(3)_VERSION $(2)_DL_VERSION := $$($(3)_VERSION) - else - $(2)_DL_VERSION = undefined endif else $(2)_DL_VERSION := $$(strip $$($(2)_VERSION)) @@ -392,7 +396,8 @@ ifdef $(3)_OVERRIDE_SRCDIR $(2)_OVERRIDE_SRCDIR ?= $$($(3)_OVERRIDE_SRCDIR) endif -$(2)_BASE_NAME = $(1)-$$($(2)_VERSION) +$(2)_BASE_NAME = $$(if $$($(2)_VERSION),$(1)-$$($(2)_VERSION),$(1)) +$(2)_RAW_BASE_NAME = $$(if $$($(2)_VERSION),$$($(2)_RAWNAME)-$$($(2)_VERSION),$$($(2)_RAWNAME)) $(2)_DL_DIR = $$(DL_DIR)/$$($(2)_BASE_NAME) $(2)_DIR = $$(BUILD_DIR)/$$($(2)_BASE_NAME) @@ -422,11 +427,19 @@ endif ifndef $(2)_SOURCE ifdef $(3)_SOURCE $(2)_SOURCE = $$($(3)_SOURCE) - else - $(2)_SOURCE ?= $$($(2)_RAWNAME)-$$($(2)_VERSION).tar.gz + else ifdef $(2)_VERSION + $(2)_SOURCE ?= $$($(2)_RAW_BASE_NAME).tar.gz endif endif +# If FOO_ACTUAL_SOURCE_TARBALL is explicitly defined, it means FOO_SOURCE is +# indeed a binary (e.g. external toolchain) and FOO_ACTUAL_SOURCE_TARBALL/_SITE +# point to the actual sources tarball. Use the actual sources for legal-info. +# For most packages the FOO_SITE/FOO_SOURCE pair points to real source code, +# so these are the defaults for FOO_ACTUAL_*. +$(2)_ACTUAL_SOURCE_TARBALL ?= $$($(2)_SOURCE) +$(2)_ACTUAL_SOURCE_SITE ?= $$(call qstrip,$$($(2)_SITE)) + ifndef $(2)_PATCH ifdef $(3)_PATCH $(2)_PATCH = $$($(3)_PATCH) @@ -453,6 +466,14 @@ ifndef $(2)_SITE_METHOD endif endif +# Do not accept to download git submodule if not using the git method +ifneq ($$($(2)_GIT_SUBMODULES),) + ifneq ($$($(2)_SITE_METHOD),git) + $$(error $(2) declares having git sub-modules, but does not use the \ + 'git' method (uses '$$($(2)_SITE_METHOD)' instead)) + endif +endif + ifeq ($$($(2)_SITE_METHOD),local) ifeq ($$($(2)_OVERRIDE_SRCDIR),) $(2)_OVERRIDE_SRCDIR = $$($(2)_SITE) @@ -481,15 +502,13 @@ endif $(2)_REDISTRIBUTE ?= YES +$(2)_REDIST_SOURCES_DIR = $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4)))/$$($(2)_RAW_BASE_NAME) + # When a target package is a toolchain dependency set this variable to # 'NO' so the 'toolchain' dependency is not added to prevent a circular # dependency $(2)_ADD_TOOLCHAIN_DEPENDENCY ?= YES -ifeq ($(4),host) -$(2)_DEPENDENCIES ?= $$(filter-out host-skeleton host-toolchain $(1),\ - $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -endif ifeq ($(4),target) ifneq ($(1),skeleton) $(2)_DEPENDENCIES += skeleton @@ -519,6 +538,7 @@ $(2)_TARGET_RSYNC = $$($(2)_DIR)/.stamp_rsynced $(2)_TARGET_PATCH = $$($(2)_DIR)/.stamp_patched $(2)_TARGET_EXTRACT = $$($(2)_DIR)/.stamp_extracted $(2)_TARGET_SOURCE = $$($(2)_DIR)/.stamp_downloaded +$(2)_TARGET_ACTUAL_SOURCE = $$($(2)_DIR)/.stamp_actual_downloaded $(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned # default extract command @@ -552,6 +572,7 @@ $(2)_PRE_INSTALL_IMAGES_HOOKS ?= $(2)_POST_INSTALL_IMAGES_HOOKS ?= $(2)_PRE_LEGAL_INFO_HOOKS ?= $(2)_POST_LEGAL_INFO_HOOKS ?= +$(2)_TARGET_FINALIZE_HOOKS ?= # human-friendly targets and target sequencing $(1): $(1)-install @@ -626,6 +647,17 @@ $(1)-depends: $$($(2)_FINAL_DEPENDENCIES) $(1)-source: $$($(2)_TARGET_SOURCE) +$(1)-all-source: $(1)-legal-source +$(1)-legal-info: $(1)-legal-source +$(1)-legal-source: $(1)-source + +# Only download the actual source if it differs from the 'main' archive +ifneq ($$($(2)_ACTUAL_SOURCE_TARBALL),) +ifneq ($$($(2)_ACTUAL_SOURCE_TARBALL),$$($(2)_SOURCE)) +$(1)-legal-source: $$($(2)_TARGET_ACTUAL_SOURCE) +endif # actual sources != sources +endif # actual sources != "" + $(1)-source-check: $$(foreach p,$$($(2)_ALL_DOWNLOADS),$$(call SOURCE_CHECK,$$(p))$$(sep)) @@ -651,6 +683,7 @@ $(1)-extract: $(1)-rsync $(1)-rsync: $$($(2)_TARGET_RSYNC) $(1)-source: +$(1)-legal-source: $(1)-source-check: test -d $$($(2)_OVERRIDE_SRCDIR) @@ -725,6 +758,8 @@ $$($(2)_TARGET_PATCH): PKGDIR=$(pkgdir) $$($(2)_TARGET_EXTRACT): PKG=$(2) $$($(2)_TARGET_SOURCE): PKG=$(2) $$($(2)_TARGET_SOURCE): PKGDIR=$(pkgdir) +$$($(2)_TARGET_ACTUAL_SOURCE): PKG=$(2) +$$($(2)_TARGET_ACTUAL_SOURCE): PKGDIR=$(pkgdir) $$($(2)_TARGET_DIRCLEAN): PKG=$(2) # Compute the name of the Kconfig option that correspond to the @@ -746,32 +781,19 @@ $(2)_MANIFEST_LICENSE_FILES = $$($(2)_LICENSE_FILES) endif $(2)_MANIFEST_LICENSE_FILES ?= not saved -# If the package declares _LICENSE_FILES, we need to extract it, -# for overriden, local or normal remote packages alike, whether -# we want to redistribute it or not. -ifneq ($$($(2)_LICENSE_FILES),) +# We need to extract and patch a package to be able to retrieve its +# license files (if any) and the list of patches applied to it (if +# any). $(1)-legal-info: $(1)-patch -endif # We only save the sources of packages we want to redistribute, that are -# non-local, and non-overriden. So only store, in the manifest, the tarball -# name of those packages. +# non-overriden (local or true override). ifeq ($$($(2)_REDISTRIBUTE),YES) -ifneq ($$($(2)_SITE_METHOD),local) -ifneq ($$($(2)_SITE_METHOD),override) +ifeq ($$($(2)_OVERRIDE_SRCDIR),) # Packages that have a tarball need it downloaded beforehand $(1)-legal-info: $(1)-source $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4))) endif endif -endif - -# If FOO_ACTUAL_SOURCE_TARBALL is explicitly defined, it means FOO_SOURCE is -# indeed a binary (e.g. external toolchain) and FOO_ACTUAL_SOURCE_TARBALL/_SITE -# point to the actual sources tarball. Use the actual sources for legal-info. -# For most packages the FOO_SITE/FOO_SOURCE pair points to real source code, -# so these are the defaults for FOO_ACTUAL_*. -$(2)_ACTUAL_SOURCE_TARBALL ?= $$($(2)_SOURCE) -$(2)_ACTUAL_SOURCE_SITE ?= $$(call qstrip,$$($(2)_SITE)) # legal-info: produce legally relevant info. $(1)-legal-info: @@ -786,10 +808,10 @@ ifneq ($$(call qstrip,$$($(2)_SOURCE)),) # is that the license still applies to the files distributed as part # of the rootfs, even if the sources are not themselves redistributed. ifeq ($$(call qstrip,$$($(2)_LICENSE_FILES)),) - @$$(call legal-license-nofiles,$$($(2)_RAWNAME),$$(call UPPERCASE,$(4))) - @$$(call legal-warning-pkg,$$($(2)_RAWNAME),cannot save license ($(2)_LICENSE_FILES not defined)) + @$$(call legal-license-nofiles,$$($(2)_RAW_BASE_NAME),$$(call UPPERCASE,$(4))) + @$$(call legal-warning-pkg,$$($(2)_RAW_BASE_NAME),cannot save license ($(2)_LICENSE_FILES not defined)) else - @$$(foreach F,$$($(2)_LICENSE_FILES),$$(call legal-license-file,$$($(2)_RAWNAME),$$(F),$$($(2)_DIR)/$$(F),$$(call UPPERCASE,$(4)))$$(sep)) + @$$(foreach F,$$($(2)_LICENSE_FILES),$$(call legal-license-file,$$($(2)_RAW_BASE_NAME),$$(F),$$($(2)_DIR)/$$(F),$$(call UPPERCASE,$(4)))$$(sep)) endif # license files ifeq ($$($(2)_SITE_METHOD),local) @@ -803,12 +825,19 @@ else # Other packages ifeq ($$($(2)_REDISTRIBUTE),YES) -ifneq ($$($(2)_ACTUAL_SOURCE_TARBALL),$$($(2)_SOURCE)) - $$(call DOWNLOAD,$$($(2)_ACTUAL_SOURCE_SITE)/$$($(2)_ACTUAL_SOURCE_TARBALL)) -endif -# Copy the source tarball (just hardlink if possible) - @cp -l $$(DL_DIR)/$$($(2)_ACTUAL_SOURCE_TARBALL) $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4))) 2>/dev/null || \ - cp $$(DL_DIR)/$$($(2)_ACTUAL_SOURCE_TARBALL) $$(REDIST_SOURCES_DIR_$$(call UPPERCASE,$(4))) +# Save the source tarball and any extra downloads, but not +# patches, as they are handled specially afterwards. + $$(foreach e,$$($(2)_ACTUAL_SOURCE_TARBALL) $$(notdir $$($(2)_EXTRA_DOWNLOADS)),\ + $$(Q)support/scripts/hardlink-or-copy \ + $$(DL_DIR)/$$(e) \ + $$($(2)_REDIST_SOURCES_DIR)$$(sep)) +# Save patches and generate the series file + $$(Q)while read f; do \ + support/scripts/hardlink-or-copy \ + $$$${f} \ + $$($(2)_REDIST_SOURCES_DIR) || exit 1; \ + printf "%s\n" "$$$${f##*/}" >>$$($(2)_REDIST_SOURCES_DIR)/series || exit 1; \ + done <$$($(2)_DIR)/.applied_patches_list endif # redistribute endif # other packages @@ -854,6 +883,7 @@ endif ifneq ($$($(2)_USERS),) PACKAGES_USERS += $$($(2)_USERS)$$(sep) endif +TARGET_FINALIZE_HOOKS += $$($(2)_TARGET_FINALIZE_HOOKS) ifeq ($$($(2)_SITE_METHOD),svn) DL_TOOLS_DEPENDENCIES += svn @@ -899,6 +929,7 @@ endif $(1)-install-staging \ $(1)-install-target \ $(1)-legal-info \ + $(1)-legal-source \ $(1)-patch \ $(1)-rebuild \ $(1)-reconfigure \ @@ -909,10 +940,20 @@ endif $(1)-source \ $(1)-source-check +ifneq ($$($(2)_SOURCE),) +ifeq ($$($(2)_SITE),) +$$(error $(2)_SITE cannot be empty when $(2)_SOURCE is not) +endif +endif + ifeq ($$(patsubst %/,ERROR,$$($(2)_SITE)),ERROR) $$(error $(2)_SITE ($$($(2)_SITE)) cannot have a trailing slash) endif +ifneq ($$($(2)_HELP_CMDS),) +HELP_PACKAGES += $(2) +endif + endif # $(2)_KCONFIG_VAR endef # inner-generic-package diff --git a/bsp/buildroot/package/pkg-kconfig.mk b/bsp/buildroot/package/pkg-kconfig.mk index 90f3f9fa..b0f51789 100644 --- a/bsp/buildroot/package/pkg-kconfig.mk +++ b/bsp/buildroot/package/pkg-kconfig.mk @@ -57,20 +57,47 @@ $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES): | $(1)-patch fi; \ done +$(2)_KCONFIG_MAKE = \ + $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) $$($(2)_KCONFIG_OPTS) + +# $(2)_KCONFIG_MAKE may already rely on shell expansion. As the $() syntax +# of the shell conflicts with Make's own syntax, this means that backticks +# are used with those shell constructs. Unfortunately, the backtick syntax +# does not nest, and we need to use Make instead of the shell to handle +# conditions. + +# A recursively expanded variable is necessary, to be sure that the shell +# command is called when the rule is processed during the build and not +# when the rule is created when parsing all packages. +$(2)_KCONFIG_RULES = \ + $$(shell $$($(2)_KCONFIG_MAKE) -pn config 2>/dev/null | \ + sed 's/^\([_0-9a-zA-Z]*config\):.*/\1/ p; d') + +# The correct way to regenerate a .config file is to use 'make olddefconfig'. +# For historical reasons, the target name is 'oldnoconfig' between Linux kernel +# versions 2.6.36 and 3.6, and remains as an alias in later versions. +# In older versions, and in some other projects that use kconfig, the target is +# not supported at all, and we use 'yes "" | make oldconfig' as a fallback +# only, as this can fail in complex cases. +define $(2)_REGEN_DOT_CONFIG + $$(if $$(filter olddefconfig,$$($(2)_KCONFIG_RULES)), + $$(Q)$$($(2)_KCONFIG_MAKE) olddefconfig, + $$(if $$(filter oldnoconfig,$$($(2)_KCONFIG_RULES)), + $$(Q)$$($(2)_KCONFIG_MAKE) oldnoconfig, + $$(Q)(yes "" | $$($(2)_KCONFIG_MAKE) oldconfig))) +endef + # The specified source configuration file and any additional configuration file # fragments are merged together to .config, after the package has been patched. # Since the file could be a defconfig file it needs to be expanded to a -# full .config first. We use 'make oldconfig' because this can be safely -# done even when the package does not support defconfigs. +# full .config first. $$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES) - $$(if $$($(2)_KCONFIG_DEFCONFIG), \ - $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \ - $$($(2)_KCONFIG_OPTS) $$($(2)_KCONFIG_DEFCONFIG), \ + $$(Q)$$(if $$($(2)_KCONFIG_DEFCONFIG), \ + $$($(2)_KCONFIG_MAKE) $$($(2)_KCONFIG_DEFCONFIG), \ cp $$($(2)_KCONFIG_FILE) $$(@)) - support/kconfig/merge_config.sh -m -O $$(@D) \ + $$(Q)support/kconfig/merge_config.sh -m -O $$(@D) \ $$(@) $$($(2)_KCONFIG_FRAGMENT_FILES) - $$(Q)yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \ - $$($(2)_KCONFIG_OPTS) oldconfig + $$($(2)_REGEN_DOT_CONFIG) # If _KCONFIG_FILE or _KCONFIG_FRAGMENT_FILES exists, this dependency is # already implied, but if we only have a _KCONFIG_DEFCONFIG we have to add @@ -81,13 +108,12 @@ $$($(2)_DIR)/.config: | $(1)-patch # The exact rules are specified by the package .mk file. define $(2)_FIXUP_DOT_CONFIG $$($(2)_KCONFIG_FIXUP_CMDS) - $$(Q)yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \ - $$($(2)_KCONFIG_OPTS) oldconfig + $$($(2)_REGEN_DOT_CONFIG) $$(Q)touch $$($(2)_DIR)/.stamp_kconfig_fixup_done endef $$($(2)_DIR)/.stamp_kconfig_fixup_done: $$($(2)_DIR)/.config - $$(call $(2)_FIXUP_DOT_CONFIG) + $$($(2)_FIXUP_DOT_CONFIG) # Before running configure, the configuration file should be present and fixed $$($(2)_TARGET_CONFIGURE): $$($(2)_DIR)/.stamp_kconfig_fixup_done @@ -117,7 +143,8 @@ endif # nconfig, gconfig, xconfig). # So we simply remove our PATH and PKG_CONFIG_* variables. $(2)_CONFIGURATOR_MAKE_ENV = \ - $$(filter-out PATH=% PKG_CONFIG=% PKG_CONFIG_SYSROOT_DIR=% PKG_CONFIG_LIBDIR=%,$$($(2)_MAKE_ENV)) + $$(filter-out PATH=% PKG_CONFIG=% PKG_CONFIG_SYSROOT_DIR=% PKG_CONFIG_LIBDIR=%,$$($(2)_MAKE_ENV)) \ + PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" # Configuration editors (menuconfig, ...) # @@ -139,7 +166,7 @@ $$($(2)_DIR)/.kconfig_editor_%: $$($(2)_DIR)/.stamp_kconfig_fixup_done $$($(2)_KCONFIG_OPTS) $$(*) rm -f $$($(2)_DIR)/.stamp_{kconfig_fixup_done,configured,built} rm -f $$($(2)_DIR)/.stamp_{target,staging,images}_installed - $$(call $(2)_FIXUP_DOT_CONFIG) + $$($(2)_FIXUP_DOT_CONFIG) # Saving back the configuration # diff --git a/bsp/buildroot/package/pkg-python.mk b/bsp/buildroot/package/pkg-python.mk index b7a702d0..38bc45ff 100644 --- a/bsp/buildroot/package/pkg-python.mk +++ b/bsp/buildroot/package/pkg-python.mk @@ -138,21 +138,6 @@ else $$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'distutils' or 'setuptools'") endif -# The below statement intends to calculate the dependencies of host -# packages by derivating them from the dependencies of the -# corresponding target package, after adding the 'host-' prefix in -# front of the dependencies. -# -# However it must be repeated from inner-generic-package, as we need -# to exclude the python, host-python and host-python-setuptools -# packages, which are added below in the list of dependencies -# depending on the package characteristics, and shouldn't be derived -# automatically from the dependencies of the corresponding target -# package. -ifeq ($(4),host) -$(2)_DEPENDENCIES ?= $$(filter-out host-python host-python3 host-python-setuptools host-skeleton host-toolchain $(1),$$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -endif - # Target packages need both the python interpreter on the target (for # runtime) and the python interpreter on the host (for # compilation). However, host packages only need the python @@ -253,7 +238,7 @@ ifndef $(2)_INSTALL_TARGET_CMDS define $(2)_INSTALL_TARGET_CMDS (cd $$($$(PKG)_BUILDDIR)/; \ $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ - $$($(2)_PYTHON_INTERPRETER) setup.py install \ + $$($(2)_PYTHON_INTERPRETER) setup.py install --no-compile \ $$($$(PKG)_BASE_INSTALL_TARGET_OPTS) \ $$($$(PKG)_INSTALL_TARGET_OPTS)) endef diff --git a/bsp/buildroot/package/pkg-rebar.mk b/bsp/buildroot/package/pkg-rebar.mk index c727489b..7605a64a 100644 --- a/bsp/buildroot/package/pkg-rebar.mk +++ b/bsp/buildroot/package/pkg-rebar.mk @@ -158,7 +158,9 @@ ifndef $(2)_BUILD_CMDS define $(2)_BUILD_CMDS (cd $$(@D); \ CC="$$(TARGET_CC)" \ + CXX="$$(TARGET_CXX)" \ CFLAGS="$$(TARGET_CFLAGS)" \ + CXXFLAGS="$$(TARGET_CXXFLAGS)" \ LDFLAGS="$$(TARGET_LDFLAGS)" \ $$(REBAR_TARGET_DEPS_ENV) \ $$(TARGET_MAKE_ENV) \ @@ -186,20 +188,6 @@ endif else # !target -ifeq ($$($(2)_USE_AUTOCONF),YES) -# This must be repeated from inner-autotools-package, otherwise we get -# an empty _DEPENDENCIES if _AUTORECONF is YES or _USE_BUNDLED_REBAR -# is NO. Also filter the result of _AUTORECONF and _GETTEXTIZE away -# from the non-host rule -$(2)_DEPENDENCIES ?= $$(filter-out host-automake host-autoconf host-libtool \ - host-gettext host-skeleton host-toolchain host-erlang-rebar $(1),\ - $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -else -# Same deal, if _USE_BUNDLED_REBAR is NO. -$(2)_DEPENDENCIES ?= $$(filter-out host-skeleton host-toolchain host-erlang-rebar $(1),\ - $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -endif - # Host packages need the erlang interpreter on the host $(2)_DEPENDENCIES += host-erlang diff --git a/bsp/buildroot/package/pkg-utils.mk b/bsp/buildroot/package/pkg-utils.mk index f88313ab..c61b3b67 100644 --- a/bsp/buildroot/package/pkg-utils.mk +++ b/bsp/buildroot/package/pkg-utils.mk @@ -104,6 +104,43 @@ define sep endef +PERCENT = % +QUOTE = ' +# ' # Meh... syntax-highlighting + +# This macro properly escapes a command string, then prints it with printf: +# +# - first, backslash '\' are self-escaped, so that they do not escape +# the following char and so that printf properly outputs a backslash; +# +# - next, single quotes are escaped by closing an existing one, adding +# an escaped one, and re-openning a new one (see below for the reason); +# +# - then '%' signs are self-escaped so that the printf does not interpret +# them as a format specifier, in case the variable contains an actual +# printf with a format; +# +# - finally, $(sep) is replaced with the literal '\n' so that make does +# not break on the so-expanded variable, but so that the printf does +# correctly output an LF. +# +# Note: this must be escaped in this order to avoid over-escaping the +# previously escaped elements. +# +# Once everything has been escaped, it is passed between single quotes +# (that's why the single-quotes are escaped they way they are, above, +# and why the dollar sign is not escaped) to printf(1). A trailing +# newline is apended, too. +# +# Note: leading or trailing spaces are *not* stripped. +# +define PRINTF + printf '$(subst $(sep),\n,\ + $(subst $(PERCENT),$(PERCENT)$(PERCENT),\ + $(subst $(QUOTE),$(QUOTE)\$(QUOTE)$(QUOTE),\ + $(subst \,\\,$(1)))))\n' +endef + # check-deprecated-variable -- throw an error on deprecated variables # example: # $(eval $(call check-deprecated-variable,FOO_MAKE_OPT,FOO_MAKE_OPTS)) diff --git a/bsp/buildroot/package/pkg-virtual.mk b/bsp/buildroot/package/pkg-virtual.mk index 244c1d04..2e83e077 100644 --- a/bsp/buildroot/package/pkg-virtual.mk +++ b/bsp/buildroot/package/pkg-virtual.mk @@ -43,21 +43,14 @@ endif $(2)_IS_VIRTUAL = YES -# A virtual package does not have any source associated -$(2)_SOURCE = - -# Fake a version string, so it looks nicer in the build log -$(2)_VERSION = virtual - -# This must be repeated from inner-generic-package, otherwise we get an empty -# _DEPENDENCIES -ifeq ($(4),host) -$(2)_DEPENDENCIES ?= $$(filter-out host-skeleton host-toolchain $(1),\ - $$(patsubst host-host-%,host-%,$$(addprefix host-,$$($(3)_DEPENDENCIES)))) -endif - # Add dependency against the provider +# For a host package, there is no corresponding BR2_PACKAGE_PROVIDES_HOST_FOO, +# so we need to compute it from the target variant. +ifeq ($(4),target) $(2)_DEPENDENCIES += $$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))) +else +$(2)_DEPENDENCIES += host-$$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(3))) +endif # Call the generic package infrastructure to generate the necessary # make targets diff --git a/bsp/buildroot/package/poco/0002-fix-m68k-double-conv-detect.patch b/bsp/buildroot/package/poco/0002-fix-m68k-double-conv-detect.patch new file mode 100644 index 00000000..3ca03fc7 --- /dev/null +++ b/bsp/buildroot/package/poco/0002-fix-m68k-double-conv-detect.patch @@ -0,0 +1,19 @@ +Fixes compile for m68k. + +From upstream double-conversion commit da111796231: +https://github.com/google/double-conversion/blob/master/double-conversion/utils.h + +Signed-off-by: Waldemar Brodkorb + +diff -Nur poco-poco-1.7.2-release.orig/Foundation/src/utils.h poco-poco-1.7.2-release/Foundation/src/utils.h +--- poco-poco-1.7.2-release.orig/Foundation/src/utils.h 2016-03-19 08:19:35.000000000 +0100 ++++ poco-poco-1.7.2-release/Foundation/src/utils.h 2016-08-11 02:55:02.827238119 +0200 +@@ -63,6 +63,8 @@ + defined(__AARCH64EL__) || \ + defined(nios2) || defined(__nios2) || defined(__nios2__) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 ++#elif defined(__mc68000__) ++#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS + #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) + #if defined(_WIN32) + // Windows uses a 64bit wide floating point stack. diff --git a/bsp/buildroot/package/poco/0002-poco-don-t-build-debug-libraries.patch b/bsp/buildroot/package/poco/0002-poco-don-t-build-debug-libraries.patch deleted file mode 100644 index 11bb7e9d..00000000 --- a/bsp/buildroot/package/poco/0002-poco-don-t-build-debug-libraries.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e84c85cfa6742becbd4f82047ce92290bb3ec19a Mon Sep 17 00:00:00 2001 -From: Baruch Siach -Date: Tue, 4 Aug 2015 10:15:17 +0200 -Subject: [PATCH 2/2] poco: don't build debug libraries -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Remove the debug libraries build dependency from the default target. - -Signed-off-by: Baruch Siach -[Jörg: Update to version 1.6.1 from github] -Signed-off-by: Jörg Krause ---- - build/rules/compile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build/rules/compile b/build/rules/compile -index 1945e3c..e0d7fbc 100644 ---- a/build/rules/compile -+++ b/build/rules/compile -@@ -14,7 +14,7 @@ - - all: $(DEFAULT_TARGET) - all_static: static_debug static_release --all_shared: shared_debug shared_release -+all_shared: shared_release - all_debug: static_debug shared_debug - all_release: static_release shared_release - --- -2.5.0 - diff --git a/bsp/buildroot/package/poco/0003-Fix-conflicting-declaration-with-unbundled-pcre.patch b/bsp/buildroot/package/poco/0003-Fix-conflicting-declaration-with-unbundled-pcre.patch deleted file mode 100644 index 669e53ac..00000000 --- a/bsp/buildroot/package/poco/0003-Fix-conflicting-declaration-with-unbundled-pcre.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 4e1165e1081e75de842567b16ae963cbed54e2a3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Krause?= -Date: Tue, 4 Aug 2015 11:09:12 +0200 -Subject: [PATCH 3/3] Fix conflicting declaration with unbundled pcre -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Building poco 1.6.1 with the `--unbundled` config options fails due to an -conflicting declaration of `pcre`: - -```sh -In file included from src/RegularExpression.cpp:21:0: -/usr/include/pcre.h:325:26: error: conflicting declaration ‘typedef struct real_pcre pcre’ - typedef struct real_pcre pcre; - ^ -In file included from src/RegularExpression.cpp:17:0: -include/Poco/RegularExpression.h:37:34: note: previous declaration as ‘typedef struct real_pcre8_or_16 pcre’ - typedef struct real_pcre8_or_16 pcre; -``` - -Upstream status: -https://github.com/pocoproject/poco/pull/897 - -Signed-off-by: Jörg Krause ---- - Foundation/include/Poco/RegularExpression.h | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/Foundation/include/Poco/RegularExpression.h b/Foundation/include/Poco/RegularExpression.h -index e1bc063..989ed52 100644 ---- a/Foundation/include/Poco/RegularExpression.h -+++ b/Foundation/include/Poco/RegularExpression.h -@@ -26,7 +26,9 @@ - #include "Poco/Foundation.h" - #include - -- -+#if defined(POCO_UNBUNDLED) -+#include -+#else - // - // Copy these definitions from pcre.h - // to avoid pulling in the entire header file -@@ -37,7 +39,7 @@ extern "C" - typedef struct real_pcre8_or_16 pcre; - struct pcre_extra; - } -- -+#endif - - namespace Poco { - --- -2.5.0 - diff --git a/bsp/buildroot/package/poco/0004-fix-unbundled-pcre-usage.patch b/bsp/buildroot/package/poco/0004-fix-unbundled-pcre-usage.patch deleted file mode 100644 index 4c6c8b43..00000000 --- a/bsp/buildroot/package/poco/0004-fix-unbundled-pcre-usage.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 75636a750ecd93305eabe226ad95d2a58e65117f Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Tue, 3 Nov 2015 16:33:33 +0100 -Subject: [PATCH] Fix build with unbundled pcre - -Poco supports two modes for the pcre library: bundled (the default) -and unbundled. In bundled mode, an internal copy of the pcre library -is used by Poco. Since this isn't really nice, Buildroot uses the -"unbundled" mode. However, Poco pokes into some internal symbols of -pcre, which doesn't play well with unbundled. - -To solve this, this commit is an adaptation of the Gentoo patch at -https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/poco/files/poco-1.4.4-patch-for-libpcre-8.32.patch?revision=1.1 -to make such symbols available internally in Poco, by using parts of -the bundled Pcre copy. - -Signed-off-by: Thomas Petazzoni ---- - Foundation/Makefile | 1 + - Foundation/src/pcre_internal.h | 17 +++++++++++++++++ - 2 files changed, 18 insertions(+) - -diff --git a/Foundation/Makefile b/Foundation/Makefile -index a347daa..9231c51 100644 ---- a/Foundation/Makefile -+++ b/Foundation/Makefile -@@ -46,6 +46,7 @@ pcre_utf8_objects = pcre_ucd pcre_tables - - ifdef POCO_UNBUNDLED - SYSLIBS += -lpcre -lz -+ objects += $(pcre_utf8_objects) - else - objects += $(zlib_objects) $(pcre_objects) $(pcre_utf8_objects) - endif -diff --git a/Foundation/src/pcre_internal.h b/Foundation/src/pcre_internal.h -index f3e69fc..c6f1d44 100644 ---- a/Foundation/src/pcre_internal.h -+++ b/Foundation/src/pcre_internal.h -@@ -2636,6 +2636,17 @@ typedef struct { - } ucp_type_table; - - -+/* renamed to avoid clashes with system pcre */ -+#define _pcre_utf8_table1 _poco__pcre_utf8_table1 -+#define _pcre_utf8_table1_size _poco__pcre_utf8_table1_size -+#define _pcre_utf8_table2 _poco__pcre_utf8_table2 -+#define _pcre_utf8_table3 _poco__pcre_utf8_table3 -+#define _pcre_utf8_table4 _poco__pcre_utf8_table4 -+#define _pcre_utt _poco__pcre_utt -+#define _pcre_utt_size _poco__pcre_utt_size -+#define _pcre_utt_names _poco__pcre_utt_names -+#define _pcre_OP_lengths _poco__pcre_OP_lengths -+ - /* Internal shared data tables. These are tables that are used by more than one - of the exported public functions. They have to be "external" in the C sense, - but are not part of the PCRE public API. The data for these tables is in the -@@ -2749,6 +2760,12 @@ typedef struct { - pcre_int32 other_case; /* offset to other case, or zero if none */ - } ucd_record; - -+/* renamed to avoid clashes with system pcre */ -+#define _pcre_ucd_records _poco__pcre_ucd_records -+#define _pcre_ucd_stage1 _poco__pcre_ucd_stage1 -+#define _pcre_ucd_stage2 _poco__pcre_ucd_stage2 -+#define _pcre_ucp_gentype _poco__pcre_ucp_gentype -+ - extern const pcre_uint32 PRIV(ucd_caseless_sets)[]; - extern const ucd_record PRIV(ucd_records)[]; - extern const pcre_uint8 PRIV(ucd_stage1)[]; --- -2.6.2 - diff --git a/bsp/buildroot/package/poco/0005-add-missing-LIBPREFIX-definition.patch b/bsp/buildroot/package/poco/0005-add-missing-LIBPREFIX-definition.patch deleted file mode 100644 index bfdfad7d..00000000 --- a/bsp/buildroot/package/poco/0005-add-missing-LIBPREFIX-definition.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c2a49cbc635d8dc894763624c061be5ae8a1a01c Mon Sep 17 00:00:00 2001 -From: Guenter Obiltschnig -Date: Mon, 30 Mar 2015 16:21:01 +0200 -Subject: [PATCH] add missing LIBPREFIX definition - -Backport from upstream commit c2a49cbc635d8dc894763624c061be5ae8a1a01c -to ensure libraries are properly installed. - -Signed-off-by: Thomas Petazzoni ---- - Makefile | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Makefile b/Makefile -index 49318a3..7ee99d8 100644 ---- a/Makefile -+++ b/Makefile -@@ -20,6 +20,8 @@ ifndef POCO_BUILD - export POCO_BUILD=$(POCO_BASE) - endif - -+LIBPREFIX ?= lib -+ - .PHONY: poco all libexecs cppunit tests samples cleans clean distclean install - - # TESTS and SAMPLES are set in config.make --- -2.6.2 - diff --git a/bsp/buildroot/package/poco/poco.hash b/bsp/buildroot/package/poco/poco.hash new file mode 100644 index 00000000..1730f1c2 --- /dev/null +++ b/bsp/buildroot/package/poco/poco.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 cfd311ecbc9e58accf1c4ea70170af88f92f88e73dd14944e528e7f6229e6cab poco-poco-1.7.2-release.tar.gz +sha256 32182791e7eac00ba367d2f22dd1dd5bfce0b6d6f76fd52f853364f98402dda3 30159aea4b3f6421da9d74a8bf22aad6d3bf26b4.patch diff --git a/bsp/buildroot/package/poco/poco.mk b/bsp/buildroot/package/poco/poco.mk index 580ee9e2..79452c02 100644 --- a/bsp/buildroot/package/poco/poco.mk +++ b/bsp/buildroot/package/poco/poco.mk @@ -4,11 +4,12 @@ # ################################################################################ -POCO_VERSION = poco-1.6.1-release +POCO_VERSION = poco-1.7.2-release POCO_SITE = $(call github,pocoproject,poco,$(POCO_VERSION)) POCO_LICENSE = Boost-v1.0 POCO_LICENSE_FILES = LICENSE POCO_INSTALL_STAGING = YES +POCO_PATCH = https://github.com/pocoproject/poco/commit/30159aea4b3f6421da9d74a8bf22aad6d3bf26b4.patch POCO_DEPENDENCIES = zlib pcre \ $(if $(BR2_PACKAGE_POCO_XML),expat) \ @@ -37,6 +38,14 @@ ifeq ($(BR2_sh4a)$(BR2_nios2),y) POCO_CONF_OPTS += --no-fpenvironment endif +ifeq ($(BR2_STATIC_LIBS),y) +POCO_MAKE_TARGET = static_release +else ifeq ($(BR2_SHARED_LIBS),y) +POCO_MAKE_TARGET = shared_release +else ifeq ($(BR2_SHARED_STATIC_LIBS),y) +POCO_MAKE_TARGET = all_release +endif + define POCO_CONFIGURE_CMDS (cd $(@D); ./configure \ --config=Linux \ @@ -49,17 +58,20 @@ define POCO_CONFIGURE_CMDS endef define POCO_BUILD_CMDS - $(MAKE1) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \ + $(MAKE) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \ MYSQL_LIBDIR=$(STAGING_DIR)/usr/lib/mysql \ - MYSQL_INCDIR=$(STAGING_DIR)/usr/include/mysql -C $(@D) + MYSQL_INCDIR=$(STAGING_DIR)/usr/include/mysql \ + DEFAULT_TARGET=$(POCO_MAKE_TARGET) -C $(@D) endef define POCO_INSTALL_STAGING_CMDS - $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) install -C $(@D) + $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) \ + DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D) endef define POCO_INSTALL_TARGET_CMDS - $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) install -C $(@D) + $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) \ + DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D) endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/poppler/Config.in b/bsp/buildroot/package/poppler/Config.in index fa4ce22e..2ca3ff62 100644 --- a/bsp/buildroot/package/poppler/Config.in +++ b/bsp/buildroot/package/poppler/Config.in @@ -15,11 +15,15 @@ if BR2_PACKAGE_POPPLER config BR2_PACKAGE_POPPLER_QT bool "Qt support" depends on BR2_PACKAGE_QT + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_QT_GUI_MODULE select BR2_PACKAGE_QT_XML help Build Qt support into the Poppler library +comment "poppler Qt support needs a toolchain not affected by Binutils bug 19405" + depends on BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 + endif comment "poppler needs a toolchain w/ C++, threads" diff --git a/bsp/buildroot/package/poppler/poppler.mk b/bsp/buildroot/package/poppler/poppler.mk index 6142cbaf..c6cd2eb9 100644 --- a/bsp/buildroot/package/poppler/poppler.mk +++ b/bsp/buildroot/package/poppler/poppler.mk @@ -11,7 +11,8 @@ POPPLER_DEPENDENCIES = fontconfig host-pkgconf POPPLER_LICENSE = GPLv2+ POPPLER_LICENSE_FILES = COPYING POPPLER_INSTALL_STAGING = YES -POPPLER_CONF_OPTS = --with-font-configuration=fontconfig +POPPLER_CONF_OPTS = --with-font-configuration=fontconfig \ + --enable-xpdf-headers ifeq ($(BR2_PACKAGE_LCMS2),y) POPPLER_CONF_OPTS += --enable-cms=lcms2 @@ -74,7 +75,7 @@ endif ifeq ($(BR2_PACKAGE_OPENJPEG),y) POPPLER_DEPENDENCIES += openjpeg -POPPLER_CONF_OPTS += --enable-libopenjpeg=openjpeg1 +POPPLER_CONF_OPTS += --enable-libopenjpeg else POPPLER_CONF_OPTS += --enable-libopenjpeg=none endif diff --git a/bsp/buildroot/package/postgresql/0001-Compare-linker-compiler-output-with-their-default-ou.patch b/bsp/buildroot/package/postgresql/0001-Compare-linker-compiler-output-with-their-default-ou.patch deleted file mode 100644 index 3eca82ff..00000000 --- a/bsp/buildroot/package/postgresql/0001-Compare-linker-compiler-output-with-their-default-ou.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 58d05b2a57802345f43e628bc0807dbf0116cdcc Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Fri, 20 Mar 2015 16:37:51 +0300 -Subject: [PATCH] Compare linker/compiler output with their default output - -linker and compiler may have noisy output by default, making -acx_pthread.m4 believe that pthread options that it tries are ignored -as invalid. - -Record default compiler and linker output and see if adding pthread -option changes that, instead of assuming that linker and compiler are -silent by default. - -Signed-off-by: Max Filippov ---- - config/acx_pthread.m4 | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/config/acx_pthread.m4 b/config/acx_pthread.m4 -index 581164b..d254612 100644 ---- a/config/acx_pthread.m4 -+++ b/config/acx_pthread.m4 -@@ -80,6 +80,22 @@ - esac - - if test x"$acx_pthread_ok" = xno; then -+ -+cat >conftest.$ac_ext <<_ACEOF -+int -+main (int argc, char **argv) -+{ -+ (void) argc; -+ (void) argv; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+ -+# Record the default linker and compiler output -+ld_default_output="`(eval $ac_link 2>&1 1>&5)`" -+cc_default_output="`(eval $ac_compile 2>&1 1>&5)`" -+ - for flag in $acx_pthread_flags; do - - tryPTHREAD_CFLAGS="" -@@ -143,7 +159,7 @@ - _ACEOF - rm -f conftest.$ac_objext conftest$ac_exeext - # Check both linking and compiling, because they might tolerate different options. -- if test "`(eval $ac_link 2>&1 1>&5)`" = "" && test "`(eval $ac_compile 2>&1 1>&5)`" = ""; then -+ if test "`(eval $ac_link 2>&1 1>&5)`" = "$ld_default_output" && test "`(eval $ac_compile 2>&1 1>&5)`" = "$cc_default_output"; then - # we continue with more flags because Linux needs -lpthread - # for libpq builds on PostgreSQL. The test above only - # tests for building binaries, not shared libraries. --- -1.8.1.4 diff --git a/bsp/buildroot/package/postgresql/postgresql.hash b/bsp/buildroot/package/postgresql/postgresql.hash index 9015e990..4dde5895 100644 --- a/bsp/buildroot/package/postgresql/postgresql.hash +++ b/bsp/buildroot/package/postgresql/postgresql.hash @@ -1,2 +1,2 @@ -# From https://ftp.postgresql.org/pub/source/v9.4.6/postgresql-9.4.6.tar.bz2.sha256 -sha256 cbce1f4d01a6142c5d8bebe125623c5198ec04f363da7dd3d3b3a4100b4140a6 postgresql-9.4.6.tar.bz2 +# From https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.bz2.sha256 +sha256 7385c01dc58acba8d7ac4e6ad42782bd7c0b59272862a3a3d5fe378d4503a0b4 postgresql-9.5.3.tar.bz2 diff --git a/bsp/buildroot/package/postgresql/postgresql.mk b/bsp/buildroot/package/postgresql/postgresql.mk index 444c1b13..8edefb75 100644 --- a/bsp/buildroot/package/postgresql/postgresql.mk +++ b/bsp/buildroot/package/postgresql/postgresql.mk @@ -4,7 +4,7 @@ # ################################################################################ -POSTGRESQL_VERSION = 9.4.6 +POSTGRESQL_VERSION = 9.5.3 POSTGRESQL_SOURCE = postgresql-$(POSTGRESQL_VERSION).tar.bz2 POSTGRESQL_SITE = http://ftp.postgresql.org/pub/source/v$(POSTGRESQL_VERSION) POSTGRESQL_LICENSE = PostgreSQL @@ -12,9 +12,8 @@ POSTGRESQL_LICENSE_FILES = COPYRIGHT POSTGRESQL_INSTALL_STAGING = YES POSTGRESQL_CONFIG_SCRIPTS = pg_config POSTGRESQL_CONF_ENV = ac_cv_type_struct_sockaddr_in6=yes \ - pgac_cv_snprintf_long_long_int_format="%lld" \ + pgac_cv_snprintf_long_long_int_modifier="%lld" \ pgac_cv_snprintf_size_t_support=yes -POSTGRESQL_AUTORECONF = YES POSTGRESQL_CONF_OPTS = --disable-rpath ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y) diff --git a/bsp/buildroot/package/pound/Config.in b/bsp/buildroot/package/pound/Config.in new file mode 100644 index 00000000..91c29ea7 --- /dev/null +++ b/bsp/buildroot/package/pound/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_POUND + bool "pound" + depends on !BR2_STATIC_LIBS + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_OPENSSL + help + The Pound program is a reverse proxy, load balancer and HTTPS + front-end for Web server(s). Pound was developed to enable + distributing the load among several Web-servers and to allow + for a convenient SSL wrapper for those Web servers that do not + offer it natively. + + http://www.apsis.ch/pound + +comment "pound needs a toolchain w/ dynamic library, threads" + depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/pound/pound.hash b/bsp/buildroot/package/pound/pound.hash new file mode 100644 index 00000000..6908b906 --- /dev/null +++ b/bsp/buildroot/package/pound/pound.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 cdfbf5a7e8dc8fbbe0d6c1e83cd3bd3f2472160aac65684bb01ef661c626a8e4 Pound-2.7.tgz diff --git a/bsp/buildroot/package/pound/pound.mk b/bsp/buildroot/package/pound/pound.mk new file mode 100644 index 00000000..40866421 --- /dev/null +++ b/bsp/buildroot/package/pound/pound.mk @@ -0,0 +1,24 @@ +################################################################################ +# +# pound +# +################################################################################ + +POUND_VERSION = 2.7 +POUND_SITE = http://www.apsis.ch/pound +POUND_SOURCE = Pound-$(POUND_VERSION).tgz +POUND_LICENSE = GPLv3+ +POUND_LICENSE_FILES = GPL.txt +POUND_DEPENDENCIES = openssl + +# Force owner/group to us, otherwise it will try proxy:proxy by +# default. +POUND_CONF_OPTS = \ + --with-owner=$(shell id -un) \ + --with-group=$(shell id -gn) + +ifeq ($(BR2_PACKAGE_PCRE),y) +POUND_DEPENDENCIES += pcre +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/powerpc-utils/Config.in b/bsp/buildroot/package/powerpc-utils/Config.in index e18254c1..fb2fb7fa 100644 --- a/bsp/buildroot/package/powerpc-utils/Config.in +++ b/bsp/buildroot/package/powerpc-utils/Config.in @@ -10,7 +10,7 @@ config BR2_PACKAGE_POWERPC_UTILS help System utilities for PowerPC machines. - http://sourceforge.net/projects/powerpc-utils/ + https://github.com/nfont/powerpc-utils if BR2_PACKAGE_POWERPC_UTILS @@ -18,7 +18,6 @@ config BR2_PACKAGE_POWERPC_UTILS_RTAS bool "RTAS support" select BR2_PACKAGE_LIBRTAS depends on BR2_TOOLCHAIN_USES_GLIBC - default y help Enable support for functions that require RTAS. @@ -29,7 +28,7 @@ config BR2_PACKAGE_POWERPC_UTILS_RTAS lsslot, activate_firmware, rtas_ibm_get_vpd, serv_config, rtas_event_decode, sys_ident. -comment "RTAS support needs an (e)glibc toolchain" +comment "RTAS support needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC endif diff --git a/bsp/buildroot/package/powerpc-utils/powerpc-utils.hash b/bsp/buildroot/package/powerpc-utils/powerpc-utils.hash index d02f16ad..9e299da3 100644 --- a/bsp/buildroot/package/powerpc-utils/powerpc-utils.hash +++ b/bsp/buildroot/package/powerpc-utils/powerpc-utils.hash @@ -1,3 +1,2 @@ -# From http://sourceforge.net/projects/powerpc-utils/files/powerpc-utils/ -sha1 975c668e8eaedd5222a7870e82ce295d06dfe649 powerpc-utils-1.2.24.tar.gz -md5 f492a72f2d4522eba5d9b329c84b3ed3 powerpc-utils-1.2.24.tar.gz +# Locally calculated +sha256 657790a4aea7f3e4649a454b4c384e255145bff9b9c5e40402170603980a6736 powerpc-utils-v1.3.1.tar.gz diff --git a/bsp/buildroot/package/powerpc-utils/powerpc-utils.mk b/bsp/buildroot/package/powerpc-utils/powerpc-utils.mk index ae4d6622..036be52d 100644 --- a/bsp/buildroot/package/powerpc-utils/powerpc-utils.mk +++ b/bsp/buildroot/package/powerpc-utils/powerpc-utils.mk @@ -4,11 +4,12 @@ # ################################################################################ -POWERPC_UTILS_VERSION = 1.2.24 -POWERPC_UTILS_SITE = http://downloads.sourceforge.net/project/powerpc-utils/powerpc-utils +POWERPC_UTILS_VERSION = v1.3.1 +POWERPC_UTILS_SITE = $(call github,nfont,powerpc-utils,$(POWERPC_UTILS_VERSION)) POWERPC_UTILS_DEPENDENCIES = zlib -POWERPC_UTILS_LICENSE = Common Public License Version 1.0 -POWERPC_UTILS_LICENSE_FILES = COPYRIGHT +POWERPC_UTILS_AUTORECONF = YES +POWERPC_UTILS_LICENSE = GPLv2+ +POWERPC_UTILS_LICENSE_FILES = COPYING POWERPC_UTILS_CONF_ENV = \ ax_cv_check_cflags___fstack_protector_all=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) diff --git a/bsp/buildroot/package/pppd/Config.in b/bsp/buildroot/package/pppd/Config.in index b77d7b03..b56b6234 100644 --- a/bsp/buildroot/package/pppd/Config.in +++ b/bsp/buildroot/package/pppd/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_PPPD bool "pppd" depends on !BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_USES_MUSL # Use __P() macro all over the tree depends on BR2_USE_MMU help An implementation of the Point-to-point protocol. @@ -24,6 +25,6 @@ config BR2_PACKAGE_PPPD_RADIUS endif -comment "pppd needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS +comment "pppd needs a uClibc or glibc toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/pps-tools/pps-tools.hash b/bsp/buildroot/package/pps-tools/pps-tools.hash new file mode 100644 index 00000000..9fa62cb8 --- /dev/null +++ b/bsp/buildroot/package/pps-tools/pps-tools.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 28d4e5aa845f659a6ab4174bbf579e22e2d2c87dc72fd6d07306a6a249c27c76 pps-tools-0deb9c7e135e9380a6d09e9d2e938a146bb698c8.tar.gz diff --git a/bsp/buildroot/package/prboom/Config.in b/bsp/buildroot/package/prboom/Config.in index 678a1511..6884f31e 100644 --- a/bsp/buildroot/package/prboom/Config.in +++ b/bsp/buildroot/package/prboom/Config.in @@ -1,11 +1,13 @@ config BR2_PACKAGE_PRBOOM bool "prboom" + # These result in internal compiler error + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH select BR2_PACKAGE_SDL select BR2_PACKAGE_SDL_MIXER select BR2_PACKAGE_SDL_NET help PrBoom is a Doom client which allows you to play the good old game on newer hardware. It even supports higher resolution and better - rendring, while still keeping the old style alive. + rendering, while still keeping the old style alive. http://prboom.sourceforge.net/ diff --git a/bsp/buildroot/package/privoxy/Config.in b/bsp/buildroot/package/privoxy/Config.in new file mode 100644 index 00000000..8d8d01a7 --- /dev/null +++ b/bsp/buildroot/package/privoxy/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_PRIVOXY + bool "privoxy" + depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_PCRE + select BR2_PACKAGE_ZLIB + help + A non-caching web proxy with advanced filtering capabilities + for enhancing privacy, modifying web page data and HTTP + headers, controlling access, and removing ads and other + obnoxious Internet junk. + + http://www.privoxy.org/ diff --git a/bsp/buildroot/package/privoxy/privoxy.hash b/bsp/buildroot/package/privoxy/privoxy.hash new file mode 100644 index 00000000..aea8f2d5 --- /dev/null +++ b/bsp/buildroot/package/privoxy/privoxy.hash @@ -0,0 +1,3 @@ +# From http://sourceforge.net/projects/ijbswa/files/Sources/3.0.24%20%28stable%29/ +md5 44a47d1a5000db8cccd61ace0e25e7f7 privoxy-3.0.24-stable-src.tar.gz +sha1 343c547a9e795ff029a78310963e0c04448975ee privoxy-3.0.24-stable-src.tar.gz diff --git a/bsp/buildroot/package/privoxy/privoxy.mk b/bsp/buildroot/package/privoxy/privoxy.mk new file mode 100644 index 00000000..4b5a1a6d --- /dev/null +++ b/bsp/buildroot/package/privoxy/privoxy.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# privoxy +# +################################################################################ + +PRIVOXY_VERSION = 3.0.24 +PRIVOXY_SITE = http://downloads.sourceforge.net/project/ijbswa/Sources/$(PRIVOXY_VERSION)%20%28stable%29 +PRIVOXY_SOURCE = privoxy-$(PRIVOXY_VERSION)-stable-src.tar.gz +# configure not shipped +PRIVOXY_AUTORECONF = YES +PRIVOXY_DEPENDENCIES = pcre zlib +PRIVOXY_LICENSE = GPLv2+ +PRIVOXY_LICENSE_FILES = LICENSE + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/procps-ng/0003-ps-output.c-include-dlfcn.h-only-when-necessary.patch b/bsp/buildroot/package/procps-ng/0003-ps-output.c-include-dlfcn.h-only-when-necessary.patch new file mode 100644 index 00000000..dca28fab --- /dev/null +++ b/bsp/buildroot/package/procps-ng/0003-ps-output.c-include-dlfcn.h-only-when-necessary.patch @@ -0,0 +1,32 @@ +From 4fc9a348026a945aec8eddffc7613de9cb10b10c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 7 Aug 2016 11:08:26 +0200 +Subject: [PATCH] ps/output.c: include only when necessary + +dlopen() functionality is only used when SELinux support is enabled, so + only needs to be included when ENABLE_LIBSELINUX is +defined. This fixes the build in configurations where is not +available. + +Signed-off-by: Thomas Petazzoni +--- + ps/output.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/ps/output.c b/ps/output.c +index 42c04cf..f540832 100644 +--- a/ps/output.c ++++ b/ps/output.c +@@ -46,7 +46,9 @@ + */ + + #include ++#if ENABLE_LIBSELINUX + #include ++#endif + #include + #include + #include +-- +2.7.4 + diff --git a/bsp/buildroot/package/procps-ng/Config.in b/bsp/buildroot/package/procps-ng/Config.in index 43e8758a..553bea1a 100644 --- a/bsp/buildroot/package/procps-ng/Config.in +++ b/bsp/buildroot/package/procps-ng/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_PROCPS_NG bool "procps-ng" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help diff --git a/bsp/buildroot/package/procps-ng/procps-ng.mk b/bsp/buildroot/package/procps-ng/procps-ng.mk index fb1b236f..ce0f68a8 100644 --- a/bsp/buildroot/package/procps-ng/procps-ng.mk +++ b/bsp/buildroot/package/procps-ng/procps-ng.mk @@ -35,7 +35,11 @@ endif # Make sure binaries get installed in /bin, so that they overwrite # their busybox counterparts. -PROCPS_NG_CONF_OPTS += --exec-prefix=/ +# Make sure libprocps.pc is installed in STAGING_DIR/usr/lib/pkgconfig/ +# otherwise it's installed in STAGING_DIR/lib/pkgconfig/ breaking +# pkg-config --libs libprocps. +PROCPS_NG_CONF_OPTS += --exec-prefix=/ \ + --libdir=/usr/lib # Allows unicode characters to show in 'watch' ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) @@ -43,4 +47,10 @@ PROCPS_NG_CONF_OPTS += \ --enable-watch8bit endif +# numa support requires libdl, so explicitly disable it when +# BR2_STATIC_LIBS=y +ifeq ($(BR2_STATIC_LIBS),y) +PROCPS_NG_CONF_OPTS += --disable-numa +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/procrank_linux/Config.in b/bsp/buildroot/package/procrank_linux/Config.in new file mode 100644 index 00000000..59d462b6 --- /dev/null +++ b/bsp/buildroot/package/procrank_linux/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PROCRANK_LINUX + bool "procrank_linux" + help + procrank is a tool commonly used by Android platform + developers to find out how much memory is really being used. + + https://github.com/csimmonds/procrank_linux diff --git a/bsp/buildroot/package/procrank_linux/procrank_linux.hash b/bsp/buildroot/package/procrank_linux/procrank_linux.hash new file mode 100644 index 00000000..b28a8e36 --- /dev/null +++ b/bsp/buildroot/package/procrank_linux/procrank_linux.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1c3592b549b6793b29ab561568f493d0edbfe288ea2aed59afa689eaa26b5d9e procrank_linux-21c30ab4514a5b15ac6e813e21bee0d3d714cb08.tar.gz diff --git a/bsp/buildroot/package/procrank_linux/procrank_linux.mk b/bsp/buildroot/package/procrank_linux/procrank_linux.mk new file mode 100644 index 00000000..7e743194 --- /dev/null +++ b/bsp/buildroot/package/procrank_linux/procrank_linux.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# procrank_linux +# +################################################################################ + +PROCRANK_LINUX_VERSION = 21c30ab4514a5b15ac6e813e21bee0d3d714cb08 +PROCRANK_LINUX_SITE = $(call github,csimmonds,procrank_linux,$(PROCRANK_LINUX_VERSION)) +PROCRANK_LINUX_LICENSE = Apache-2.0 +PROCRANK_LINUX_LICENSE_FILES = NOTICE + +define PROCRANK_LINUX_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE="$(TARGET_CROSS)" +endef + +define PROCRANK_LINUX_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 -D $(@D)/procrank \ + $(TARGET_DIR)/usr/bin/procrank +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/proftpd/proftpd.hash b/bsp/buildroot/package/proftpd/proftpd.hash index 288e917f..07353404 100644 --- a/bsp/buildroot/package/proftpd/proftpd.hash +++ b/bsp/buildroot/package/proftpd/proftpd.hash @@ -1,4 +1,4 @@ -# From ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5a.tar.gz.md5 -md5 b9d3092411478415b31d435f8e26d173 proftpd-1.3.5a.tar.gz +# From ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5b.tar.gz.md5 +md5 f7b8e3a383b34a894c2502db74ccccde proftpd-1.3.5b.tar.gz # Locally calculated -sha256 a1f48df8539c414ec56e0cea63dcf4b8e16e606c05f10156f030a4a67fae5696 proftpd-1.3.5a.tar.gz +sha256 afc1789f2478acf88dfdc7d70da90a4fa2786d628218e9574273295d044b4fc8 proftpd-1.3.5b.tar.gz diff --git a/bsp/buildroot/package/proftpd/proftpd.mk b/bsp/buildroot/package/proftpd/proftpd.mk index 3af8b891..a70f41ef 100644 --- a/bsp/buildroot/package/proftpd/proftpd.mk +++ b/bsp/buildroot/package/proftpd/proftpd.mk @@ -4,7 +4,7 @@ # ################################################################################ -PROFTPD_VERSION = 1.3.5a +PROFTPD_VERSION = 1.3.5b PROFTPD_SOURCE = proftpd-$(PROFTPD_VERSION).tar.gz PROFTPD_SITE = ftp://ftp.proftpd.org/distrib/source PROFTPD_LICENSE = GPLv2+ diff --git a/bsp/buildroot/package/protobuf/0001-Fix-GOOGLE_PROTOBUF_ATOMICOPS_ERROR-syntax-error.patch b/bsp/buildroot/package/protobuf/0001-Fix-GOOGLE_PROTOBUF_ATOMICOPS_ERROR-syntax-error.patch new file mode 100644 index 00000000..c271ea45 --- /dev/null +++ b/bsp/buildroot/package/protobuf/0001-Fix-GOOGLE_PROTOBUF_ATOMICOPS_ERROR-syntax-error.patch @@ -0,0 +1,61 @@ +From 50982f711de6ad58f6e0bef01a75d2b9cf35f5dc Mon Sep 17 00:00:00 2001 +From: George Redivo +Date: Mon, 6 Jul 2015 16:56:41 -0300 +Subject: [PATCH 1/2] Fix GOOGLE_PROTOBUF_ATOMICOPS_ERROR syntax error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It's not possible to define "#error" inside a define. +It causes 'error: stray ‘#’ in program' compilation error. + +Now the define GOOGLE_PROTOBUF_ATOMICOPS_ERROR is the error message +and it's used along the code together "#error". +--- + src/google/protobuf/stubs/atomicops.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/google/protobuf/stubs/atomicops.h b/src/google/protobuf/stubs/atomicops.h +index b1336e3..a130b38 100644 +--- a/src/google/protobuf/stubs/atomicops.h ++++ b/src/google/protobuf/stubs/atomicops.h +@@ -162,7 +162,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr); + + // Include our platform specific implementation. + #define GOOGLE_PROTOBUF_ATOMICOPS_ERROR \ +-#error "Atomic operations are not supported on your platform" ++"Atomic operations are not supported on your platform" + + // ThreadSanitizer, http://clang.llvm.org/docs/ThreadSanitizer.html. + #if defined(THREAD_SANITIZER) +@@ -172,7 +172,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr); + #if defined(GOOGLE_PROTOBUF_ARCH_IA32) || defined(GOOGLE_PROTOBUF_ARCH_X64) + #include + #else +-GOOGLE_PROTOBUF_ATOMICOPS_ERROR ++#error GOOGLE_PROTOBUF_ATOMICOPS_ERROR + #endif + + // Solaris +@@ -203,15 +203,15 @@ GOOGLE_PROTOBUF_ATOMICOPS_ERROR + #if __has_extension(c_atomic) + #include + #else +-GOOGLE_PROTOBUF_ATOMICOPS_ERROR ++#error GOOGLE_PROTOBUF_ATOMICOPS_ERROR + #endif + #else +-GOOGLE_PROTOBUF_ATOMICOPS_ERROR ++#error GOOGLE_PROTOBUF_ATOMICOPS_ERROR + #endif + + // Unknown. + #else +-GOOGLE_PROTOBUF_ATOMICOPS_ERROR ++#error GOOGLE_PROTOBUF_ATOMICOPS_ERROR + #endif + + // On some platforms we need additional declarations to make AtomicWord +-- +2.5.0 + diff --git a/bsp/buildroot/package/protobuf/0002-configure.ac-check-if-libatomic-is-needed.patch b/bsp/buildroot/package/protobuf/0002-configure.ac-check-if-libatomic-is-needed.patch new file mode 100644 index 00000000..a70a23e7 --- /dev/null +++ b/bsp/buildroot/package/protobuf/0002-configure.ac-check-if-libatomic-is-needed.patch @@ -0,0 +1,34 @@ +From f020fe05a20dfcd16cd7df833dcf3cdeef770538 Mon Sep 17 00:00:00 2001 +From: Carlos Santos +Date: Thu, 11 Feb 2016 10:58:35 -0200 +Subject: [PATCH 2/2] configure.ac: check if libatomic is needed + +Compilation of protobuf for PowerPC and SPARC may fail due to missing +references to __atomic_fetch_add_4 and __atomic_compare_exchange_4. + +The __atomic_*() intrinsics for all sizes are provided by libatomic when +gcc is >= 4.8. This can be achieved by adding this to configure.ac: + + AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic]) + +Signed-off-by: Carlos Santos +--- + configure.ac | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configure.ac b/configure.ac +index c07067c..88d4a0d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -139,6 +139,8 @@ AM_CONDITIONAL([USE_EXTERNAL_PROTOC], [test "$with_protoc" != "no"]) + ACX_PTHREAD + AC_CXX_STL_HASH + ++AC_SEARCH_LIBS([__atomic_load_4], [atomic]) ++ + case "$target_os" in + mingw* | cygwin* | win*) + ;; +-- +2.5.0 + diff --git a/bsp/buildroot/package/protobuf/Config.in b/bsp/buildroot/package/protobuf/Config.in index 3d4320bf..bccf258f 100644 --- a/bsp/buildroot/package/protobuf/Config.in +++ b/bsp/buildroot/package/protobuf/Config.in @@ -1,5 +1,22 @@ # See src/google/protobuf/stubs/platform_macros.h for supported archs. -# PowerPC doesn't actually work. +# +# On PowerPC, the __atomic_*() built-ins for 1-byte, 2-byte and 4-byte +# types are available built-in. However, the __atomic_*() built-ins for +# 8-byte types is implemented via libatomic, so only available since gcc +# 4.8. +# +# In Buildroot, to simplify things, we've decided to simply require gcc +# 4.8 as soon as the architectures has at least one __atomic_*() built-in +# variant that requires libatomic. +# +# Since protobuf most likely only uses the 1, 2 and 4-byte variants, it +# *could* technically build with gcc 4.7. This is probably not a big deal, +# and we can live with requiring gcc 4.8 on PowerPC to build protobuf. +# +# The SPARC64 build fails due to a missing definition of Atomic64. This +# has been fixed on the master branch but the build still breaks due to +# undefined references to internal NoBarrier_Atomic*() functions. +# # host-protobuf only builds on certain architectures config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS bool @@ -7,7 +24,10 @@ config BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS default y if BR2_i386 default y if BR2_mipsel default y if BR2_x86_64 + default y if BR2_TOOLCHAIN_HAS_ATOMIC + depends on !BR2_sparc64 # missing definition of Atomic64 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_USE_MMU # fork() config BR2_PACKAGE_PROTOBUF bool "protobuf" diff --git a/bsp/buildroot/package/psmisc/Config.in b/bsp/buildroot/package/psmisc/Config.in index cc8420b7..734542cc 100644 --- a/bsp/buildroot/package/psmisc/Config.in +++ b/bsp/buildroot/package/psmisc/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_PSMISC bool "psmisc" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help diff --git a/bsp/buildroot/package/psplash/psplash.mk b/bsp/buildroot/package/psplash/psplash.mk index 85c0fb88..4e365c53 100644 --- a/bsp/buildroot/package/psplash/psplash.mk +++ b/bsp/buildroot/package/psplash/psplash.mk @@ -14,13 +14,13 @@ define PSPLASH_INSTALL_INIT_SYSTEMD $(TARGET_DIR)/usr/lib/systemd/system/psplash-start.service $(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants ln -sf ../../../../usr/lib/systemd/system/psplash-start.service \ - $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/ + $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/ $(INSTALL) -D -m 644 package/psplash/psplash-quit.service \ $(TARGET_DIR)/usr/lib/systemd/system/psplash-quit.service $(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants ln -sf ../../../../usr/lib/systemd/system/psplash-quit.service \ - $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/ endef $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/pulseaudio/0002-webrtc-C-11-is-only-required-for-WebRTC-support.patch b/bsp/buildroot/package/pulseaudio/0002-webrtc-C-11-is-only-required-for-WebRTC-support.patch new file mode 100644 index 00000000..b2c06519 --- /dev/null +++ b/bsp/buildroot/package/pulseaudio/0002-webrtc-C-11-is-only-required-for-WebRTC-support.patch @@ -0,0 +1,41 @@ +From 7af6cbe74d48a9853b60b029d4ce38a963386138 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sun, 3 Jul 2016 20:19:48 +0200 +Subject: [PATCH] webrtc: C++11 is only required for WebRTC support + +Make C++11 support optional and explicitely check for gnu++11. + +Stop the build only if no C++11 support has been found and WebRTC +support has been resquested. + +Signed-off-by: Romain Naour +--- + configure.ac | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 4edc8e0..fea93a9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -84,7 +84,7 @@ AM_PROG_CC_C_O + # Only required if you want the WebRTC canceller -- no runtime dep on + # libstdc++ otherwise + AC_PROG_CXX +-AX_CXX_COMPILE_STDCXX_11 ++AX_CXX_COMPILE_STDCXX_11([ext],[optional]) + AC_PROG_GCC_TRADITIONAL + AC_USE_SYSTEM_EXTENSIONS + +@@ -1414,6 +1414,9 @@ fi + AC_ARG_ENABLE([webrtc-aec], + AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller])) + ++AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "$HAVE_CXX11" = "0"], ++ [AC_MSG_ERROR([*** webrtc-audio-processing needs C++11 support])]) ++ + AS_IF([test "x$enable_webrtc_aec" != "xno"], + [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing >= 0.2 ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])], + [HAVE_WEBRTC=0]) +-- +2.5.5 + diff --git a/bsp/buildroot/package/pulseaudio/pulseaudio.hash b/bsp/buildroot/package/pulseaudio/pulseaudio.hash index 0d1a3d2b..0ef825d8 100644 --- a/bsp/buildroot/package/pulseaudio/pulseaudio.hash +++ b/bsp/buildroot/package/pulseaudio/pulseaudio.hash @@ -1,3 +1,3 @@ -# From http://freedesktop.org/software/pulseaudio/releases/pulseaudio-8.0.tar.xz.{md5,sha1} -md5 8678442ba0bb4b4c33ac6f62542962df pulseaudio-8.0.tar.xz -sha1 1399a2f6288ad743184b6c2192129fef033343ac pulseaudio-8.0.tar.xz +# From http://freedesktop.org/software/pulseaudio/releases/pulseaudio-9.0.tar.xz.{md5,sha1} +md5 da7162541b3a9bc20576dbd0d7d1489a pulseaudio-9.0.tar.xz +sha1 d9a9d7cb667ed95ee1de4b6544d5c7444c5a0064 pulseaudio-9.0.tar.xz diff --git a/bsp/buildroot/package/pulseaudio/pulseaudio.mk b/bsp/buildroot/package/pulseaudio/pulseaudio.mk index 06b0b843..74a028be 100644 --- a/bsp/buildroot/package/pulseaudio/pulseaudio.mk +++ b/bsp/buildroot/package/pulseaudio/pulseaudio.mk @@ -4,7 +4,7 @@ # ################################################################################ -PULSEAUDIO_VERSION = 8.0 +PULSEAUDIO_VERSION = 9.0 PULSEAUDIO_SOURCE = pulseaudio-$(PULSEAUDIO_VERSION).tar.xz PULSEAUDIO_SITE = http://freedesktop.org/software/pulseaudio/releases PULSEAUDIO_INSTALL_STAGING = YES @@ -18,9 +18,12 @@ PULSEAUDIO_CONF_OPTS = \ # Make sure we don't detect libatomic_ops. Indeed, since pulseaudio # requires json-c, which needs 4 bytes __sync builtins, there should # be no need for pulseaudio to rely on libatomic_ops. -PULSE_AUDIO_CONF_ENV += \ +PULSEAUDIO_CONF_ENV += \ ac_cv_header_atomic_ops_h=no +# 0002-webrtc-C-11-is-only-required-for-WebRTC-support.patch +PULSEAUDIO_AUTORECONF = YES + PULSEAUDIO_DEPENDENCIES = \ host-pkgconf libtool json-c libsndfile speex host-intltool \ $(if $(BR2_PACKAGE_LIBSAMPLERATE),libsamplerate) \ @@ -31,7 +34,6 @@ PULSEAUDIO_DEPENDENCIES = \ $(if $(BR2_PACKAGE_BLUEZ_UTILS),bluez_utils) \ $(if $(BR2_PACKAGE_OPENSSL),openssl) \ $(if $(BR2_PACKAGE_FFTW),fftw) \ - $(if $(BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING),webrtc-audio-processing) \ $(if $(BR2_PACKAGE_SYSTEMD),systemd) ifeq ($(BR2_PACKAGE_GDBM),y) @@ -79,25 +81,17 @@ PULSEAUDIO_CONF_OPTS += --without-soxr endif ifeq ($(BR2_PACKAGE_HAS_UDEV),y) -PULSEAUDIO_CONF_OPTS += --enable-libudev +PULSEAUDIO_CONF_OPTS += --enable-udev PULSEAUDIO_DEPENDENCIES += udev else -PULSEAUDIO_CONF_OPTS += --disable-libudev +PULSEAUDIO_CONF_OPTS += --disable-udev endif -ifneq ($(BR2_INSTALL_LIBSTDCPP),y) -# The optional webrtc echo canceller is written in C++, causing auto* to want -# to link module-echo-cancel.so with CXX even if webrtc ISN'T used. -# If we don't have C++ support enabled in BR, CXX will point to /bin/false, -# which makes configure think we aren't able to create C++ .so files -# (arguable true), breaking the build when it tries to install the .so -# workaround it by patching up the libtool invocations to use C mode instead -define PULSEAUDIO_FORCE_CC - $(SED) 's/--tag=CXX/--tag=CC/g' -e 's/(CXXLD)/(CCLD)/g' \ - $(@D)/src/Makefile.in -endef - -PULSEAUDIO_POST_PATCH_HOOKS += PULSEAUDIO_FORCE_CC +ifeq ($(BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING),y) +PULSEAUDIO_CONF_OPTS += --enable-webrtc-aec +PULSEAUDIO_DEPENDENCIES += webrtc-audio-processing +else +PULSEAUDIO_CONF_OPTS += --disable-webrtc-aec endif # neon intrinsics not available with float-abi=soft diff --git a/bsp/buildroot/package/pulseview/0002-cmake-add-check-for-explicit-linking-against-libatom.patch b/bsp/buildroot/package/pulseview/0002-cmake-add-check-for-explicit-linking-against-libatom.patch new file mode 100644 index 00000000..70549e6d --- /dev/null +++ b/bsp/buildroot/package/pulseview/0002-cmake-add-check-for-explicit-linking-against-libatom.patch @@ -0,0 +1,117 @@ +From 71830c804be76cf6abe913ac2fe584947b7a91ea Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Tue, 24 May 2016 23:08:40 +0200 +Subject: [PATCH] cmake: add check for explicit linking against libatomic + +To use atomics functions, some toolchains requires to explicitly add +-latomic to the linker flags (because they are not provided by libc, +but libatomic). + +This change adds a helper function trying to build/link a test program +using atomics, then calls it to: +* first check if atomics are directly available in the libc; +* if not and libatomic has been found, then run the same test with + "-latomic" added to the linker flags. +The pulseview link library list is updated according to the results of +these tests. + +This issue was triggered by the Buildroot farms: + http://autobuild.buildroot.org/results/1e3/1e3101261252d5f30fdf842cc99604e4f4c25eef/build-end.log + +Notes: +1- CMAKE_REQUIRED_* variables are only used in check functions. They + are not automatically forwarded to/handled by the target commands + (such as target_link_library), because the check functions are + implemented as macro in CMake code, whereas many target commands + are native. +2- Because of note #1, CMAKE_REQUIRED_LIBRARIES (or its value) must be + explicitly passed to the target_link_library command when this is + needed. +3- In this implementation, LIBATOMIC_LIBRARY is only set when it is + needed; so, unconditionally appending it to PULSEVIEW_LINK_LIBS + will produce the expected behavior. + +Signed-off-by: Samuel Martin + +--- +changes v1->v2: +- use std::atomic_fetch_add_explicit function instead of + __atomic_fetch_add_4; +- rework code using cmake_*_check_state and find_library helpers; +- quiet-ize checks and clean outputs +- extend the commit log +--- + CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 50 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9dac69f..44f810e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -107,6 +107,55 @@ endif() + # This will set ${CMAKE_THREAD_LIBS_INIT} to the correct, OS-specific value. + find_package(Threads REQUIRED) + ++ ++# Check for explicit link against libatomic ++# ++# Depending on the toolchain, linking a program using atomic functions may need ++# "-latomic" explicitly passed to the linker ++# ++# This check first tests if atomics are available in the C-library, if not and ++# libatomic exists, then it runs the same test with -latomic added to the ++# linker flags. ++ ++# Helper for checking for atomics ++function(check_working_cxx_atomics varname additional_lib) ++ include(CheckCXXSourceCompiles) ++ include(CMakePushCheckState) ++ cmake_push_check_state() ++ set(CMAKE_REQUIRED_FLAGS "-std=c++11") ++ set(CMAKE_REQUIRED_LIBRARIES "${additional_lib}") ++ set(CMAKE_REQUIRED_QUIET 1) ++ CHECK_CXX_SOURCE_COMPILES(" ++#include ++std::atomic x; ++int main() { ++ return std::atomic_fetch_add_explicit(&x, 1, std::memory_order_seq_cst); ++} ++" ${varname}) ++ cmake_pop_check_state() ++endfunction(check_working_cxx_atomics) ++ ++# First check if atomics work without the library. ++# If not, check if the library exists, and atomics work with it. ++check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB "") ++if(HAVE_CXX_ATOMICS_WITHOUT_LIB) ++ message(STATUS "Atomics provided by the C-library - yes") ++else() ++ message(STATUS "Atomics provided by the C-library - no") ++ find_library(LIBATOMIC_LIBRARY NAMES atomic PATH_SUFFIXES lib) ++ if(LIBATOMIC_LIBRARY) ++ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB "${LIBATOMIC_LIBRARY}") ++ if (HAVE_CXX_ATOMICS_WITH_LIB) ++ message(STATUS "Atomics provided by libatomic - yes") ++ else() ++ message(STATUS "Atomics provided by libatomic - no") ++ message(FATAL_ERROR "Compiler must support std::atomic!") ++ endif() ++ else() ++ message(FATAL_ERROR "Compiler appears to require libatomic, but cannot find it.") ++ endif() ++endif() ++ + #=============================================================================== + #= System Introspection + #------------------------------------------------------------------------------- +@@ -387,6 +436,7 @@ set(PULSEVIEW_LINK_LIBS + ${Boost_LIBRARIES} + ${QT_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} ++ ${LIBATOMIC_LIBRARY} + ) + + if(STATIC_PKGDEPS_LIBS) +-- +2.8.3 + diff --git a/bsp/buildroot/package/pulseview/Config.in b/bsp/buildroot/package/pulseview/Config.in index bbbfd767..46abe78f 100644 --- a/bsp/buildroot/package/pulseview/Config.in +++ b/bsp/buildroot/package/pulseview/Config.in @@ -15,7 +15,6 @@ config BR2_PACKAGE_PULSEVIEW depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS # libsigrok depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 help @@ -27,6 +26,5 @@ config BR2_PACKAGE_PULSEVIEW comment "pulseview needs a toolchain w/ wchar, threads, C++, gcc >= 4.8" depends on BR2_USE_MMU depends on BR2_PACKAGE_QT5 - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \ || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/pure-ftpd/pure-ftpd.mk b/bsp/buildroot/package/pure-ftpd/pure-ftpd.mk index e1040fa1..ba4096c2 100644 --- a/bsp/buildroot/package/pure-ftpd/pure-ftpd.mk +++ b/bsp/buildroot/package/pure-ftpd/pure-ftpd.mk @@ -41,7 +41,7 @@ else PURE_FTPD_CONF_OPTS += --without-tls endif -ifeq ($(BR2_arc),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) PURE_FTPD_CONF_ENV += ax_cv_check_cflags___fPIE=no ax_cv_check_ldflags___fPIE=no endif diff --git a/bsp/buildroot/package/putty/0001-uxcons-Fix-on-musl-libc.patch b/bsp/buildroot/package/putty/0001-uxcons-Fix-on-musl-libc.patch new file mode 100644 index 00000000..5f43af0d --- /dev/null +++ b/bsp/buildroot/package/putty/0001-uxcons-Fix-on-musl-libc.patch @@ -0,0 +1,29 @@ +From 4ae1577b432c1859704d2763f70a764dee23bd98 Mon Sep 17 00:00:00 2001 +From: Kylie McClain +Date: Thu, 28 Apr 2016 22:40:32 -0400 +Subject: [PATCH] uxcons: Fix on musl libc + +musl libc exports FD_SET and friends in sys/select.h. + +Signed-off-by: Baruch Siach +--- +Patch status: upstream commit 4ae1577b432c + + unix/uxcons.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/unix/uxcons.c b/unix/uxcons.c +index b9fd67fe9274..f2a25f3fed70 100644 +--- a/unix/uxcons.c ++++ b/unix/uxcons.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #include "putty.h" + #include "storage.h" +-- +2.8.1 + diff --git a/bsp/buildroot/package/putty/0002-Fix-__uint128_t-compile-error-on-MinGW.patch b/bsp/buildroot/package/putty/0002-Fix-__uint128_t-compile-error-on-MinGW.patch new file mode 100644 index 00000000..514b6298 --- /dev/null +++ b/bsp/buildroot/package/putty/0002-Fix-__uint128_t-compile-error-on-MinGW.patch @@ -0,0 +1,30 @@ +From 3377ea57f5d333d65d44a1130161396782389e88 Mon Sep 17 00:00:00 2001 +From: Tim Kosse +Date: Tue, 11 Aug 2015 09:43:34 +0200 +Subject: [PATCH] Fix __uint128_t compile error on MinGW. + +MinGW has __uint128_t, but not __uint64_t. + +Signed-off-by: Baruch Siach +--- +Patch status: upstream commit 3377ea57f5 + + sshbn.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sshbn.h b/sshbn.h +index a043241eea67..9366f614ae4c 100644 +--- a/sshbn.h ++++ b/sshbn.h +@@ -26,7 +26,7 @@ + * using the same 'two machine registers' kind of code generation that + * 32-bit targets use for 64-bit ints. If we have one of these, we can + * use a 64-bit BignumInt and a 128-bit BignumDblInt. */ +-typedef __uint64_t BignumInt; ++typedef unsigned long long BignumInt; + typedef __uint128_t BignumDblInt; + #define BIGNUM_INT_MASK 0xFFFFFFFFFFFFFFFFULL + #define BIGNUM_TOP_BIT 0x8000000000000000ULL +-- +2.8.1 + diff --git a/bsp/buildroot/package/putty/Config.in b/bsp/buildroot/package/putty/Config.in new file mode 100644 index 00000000..fe5b9eb7 --- /dev/null +++ b/bsp/buildroot/package/putty/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PUTTY + bool "putty" + depends on BR2_USE_MMU # fork() + help + PuTTY is a free SSH and Telnet client. Without GTK2 activated, + only the commandline tools plink, pscp, psftp, and puttygen are + built; enable GTK2 for the graphical client. + + http://www.chiark.greenend.org.uk/~sgtatham/putty/ diff --git a/bsp/buildroot/package/putty/putty.hash b/bsp/buildroot/package/putty/putty.hash new file mode 100644 index 00000000..75990e41 --- /dev/null +++ b/bsp/buildroot/package/putty/putty.hash @@ -0,0 +1,3 @@ +# Hashes from: http://the.earth.li/~sgtatham/putty/0.67/{sha256,sha512}sums +sha256 80192458e8a46229de512afeca5c757dd8fce09606b3c992fbaeeee29b994a47 putty-0.67.tar.gz +sha512 c2b17da46b8db3fe3837a10cb9cf5dd4b3ef6bfa15cadab83f3b87cf1479ed31fced90b774297ae53bdcbbdf230fc80d5c73d5ff3be6916fb591fd7ce3d35eca putty-0.67.tar.gz diff --git a/bsp/buildroot/package/putty/putty.mk b/bsp/buildroot/package/putty/putty.mk new file mode 100644 index 00000000..ca86c470 --- /dev/null +++ b/bsp/buildroot/package/putty/putty.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# putty +# +################################################################################ + +PUTTY_VERSION = 0.67 +PUTTY_SOURCE = putty-$(PUTTY_VERSION).tar.gz +PUTTY_SITE = http://the.earth.li/~sgtatham/putty/$(PUTTY_VERSION) +PUTTY_SUBDIR = unix +PUTTY_LICENSE = MIT +PUTTY_LICENSE_FILES = LICENCE +PUTTY_CONF_OPTS = --disable-gtktest + +ifeq ($(BR2_PACKAGE_LIBGTK2),y) +PUTTY_CONF_OPTS += --with-gtk=2 +PUTTY_DEPENDENCIES += libgtk2 +else +PUTTY_CONF_OPTS += --without-gtk +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/pv/0001-add-lstat64-to-64-emulation.patch b/bsp/buildroot/package/pv/0001-add-lstat64-to-64-emulation.patch deleted file mode 100644 index a2aa4f56..00000000 --- a/bsp/buildroot/package/pv/0001-add-lstat64-to-64-emulation.patch +++ /dev/null @@ -1,22 +0,0 @@ -[PATCH] add lstat64 to *64 emulation - -pv nowadays also uses lstat64, so add it to the emulation defines for !LFS -builds. - -Signed-off-by: Peter Korsgaard ---- - autoconf/header.in | 1 + - 1 file changed, 1 insertion(+) - -Index: pv-1.5.7/autoconf/header.in -=================================================================== ---- pv-1.5.7.orig/autoconf/header.in -+++ pv-1.5.7/autoconf/header.in -@@ -76,6 +76,7 @@ - # endif - # define open64 open - # define lseek64 lseek -+# define lstat64 lstat - #endif - - #undef HAVE_IPC diff --git a/bsp/buildroot/package/pv/pv.hash b/bsp/buildroot/package/pv/pv.hash index 4120a811..291d6dd0 100644 --- a/bsp/buildroot/package/pv/pv.hash +++ b/bsp/buildroot/package/pv/pv.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 c8535061bb703086b67fa540da162ad48d6ecd219ae74157111465adfdef5997 pv-1.5.7.tar.bz2 +sha256 0ece824e0da27b384d11d1de371f20cafac465e038041adab57fcf4b5036ef8d pv-1.6.0.tar.bz2 diff --git a/bsp/buildroot/package/pv/pv.mk b/bsp/buildroot/package/pv/pv.mk index 47f570f8..2279805a 100644 --- a/bsp/buildroot/package/pv/pv.mk +++ b/bsp/buildroot/package/pv/pv.mk @@ -4,7 +4,7 @@ # ################################################################################ -PV_VERSION = 1.5.7 +PV_VERSION = 1.6.0 PV_SOURCE = pv-$(PV_VERSION).tar.bz2 PV_SITE = http://www.ivarch.com/programs/sources PV_LICENSE = Artistic-2.0 diff --git a/bsp/buildroot/package/python-argh/Config.in b/bsp/buildroot/package/python-argh/Config.in new file mode 100644 index 00000000..5da6625d --- /dev/null +++ b/bsp/buildroot/package/python-argh/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_ARGH + bool "python-argh" + help + An unobtrusive argparse wrapper with natural syntax. + + http://github.com/neithere/argh/ diff --git a/bsp/buildroot/package/python-argh/python-argh.hash b/bsp/buildroot/package/python-argh/python-argh.hash new file mode 100644 index 00000000..9e2e0684 --- /dev/null +++ b/bsp/buildroot/package/python-argh/python-argh.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/argh/json +md5 5a97ce2ae74bbe3b63194906213f1184 argh-0.26.1.tar.gz +# sha256 calculated by scanpypi +sha256 06a7442cb9130fb8806fe336000fcf20edf1f2f8ad205e7b62cec118505510db argh-0.26.1.tar.gz diff --git a/bsp/buildroot/package/python-argh/python-argh.mk b/bsp/buildroot/package/python-argh/python-argh.mk new file mode 100644 index 00000000..4b09e68d --- /dev/null +++ b/bsp/buildroot/package/python-argh/python-argh.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-argh +# +################################################################################ + +PYTHON_ARGH_VERSION = 0.26.1 +PYTHON_ARGH_SOURCE = argh-$(PYTHON_ARGH_VERSION).tar.gz +PYTHON_ARGH_SITE = https://pypi.python.org/packages/14/7f/794a7f4a48cba505a4b4c714f81fed844a3a5f7340b171f448711439b09e +PYTHON_ARGH_SETUP_TYPE = setuptools +PYTHON_ARGH_LICENSE = LGPLv3+ +PYTHON_ARGH_LICENSE_FILES = README.rst + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-autobahn/Config.in b/bsp/buildroot/package/python-autobahn/Config.in new file mode 100644 index 00000000..7e1429cd --- /dev/null +++ b/bsp/buildroot/package/python-autobahn/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_AUTOBAHN + bool "python-autobahn" + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_TXAIO # runtime + help + WebSocket client Hhh server library, WAMP real-time + framework. + + https://pypi.python.org/pypi/autobahn diff --git a/bsp/buildroot/package/python-autobahn/python-autobahn.hash b/bsp/buildroot/package/python-autobahn/python-autobahn.hash new file mode 100644 index 00000000..1ee1e0e2 --- /dev/null +++ b/bsp/buildroot/package/python-autobahn/python-autobahn.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/autobahn/json, sha256 locally computed. +md5 576b63ce7fa7846f64650263842b712b autobahn-0.14.1.tar.gz +sha256 c1695e139e36daeaad9cb788dd3f9b907a3fd83b67884424e59b3e07032956e0 autobahn-0.14.1.tar.gz diff --git a/bsp/buildroot/package/python-autobahn/python-autobahn.mk b/bsp/buildroot/package/python-autobahn/python-autobahn.mk new file mode 100644 index 00000000..2cc2e5d2 --- /dev/null +++ b/bsp/buildroot/package/python-autobahn/python-autobahn.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-autobahn +# +################################################################################ + +PYTHON_AUTOBAHN_VERSION = 0.14.1 +PYTHON_AUTOBAHN_SOURCE = autobahn-$(PYTHON_AUTOBAHN_VERSION).tar.gz +PYTHON_AUTOBAHN_SITE = https://pypi.python.org/packages/e3/37/1297551d3066ec9b013dd3a1a7e2cca85900d3fe95194779370e8e7a7af7 +PYTHON_AUTOBAHN_LICENSE = MIT +PYTHON_AUTOBAHN_LICENSE_FILES = LICENSE +PYTHON_AUTOBAHN_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-backports-abc/Config.in b/bsp/buildroot/package/python-backports-abc/Config.in index 26d8cfd9..43566279 100644 --- a/bsp/buildroot/package/python-backports-abc/Config.in +++ b/bsp/buildroot/package/python-backports-abc/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_PYTHON_BACKPORTS_ABC bool "python-backports-abc" + depends on BR2_PACKAGE_PYTHON help A backport of recent additions to the 'collections.abc' module. diff --git a/bsp/buildroot/package/python-certifi/python-certifi.hash b/bsp/buildroot/package/python-certifi/python-certifi.hash index 9277f51a..ade4db38 100644 --- a/bsp/buildroot/package/python-certifi/python-certifi.hash +++ b/bsp/buildroot/package/python-certifi/python-certifi.hash @@ -1,2 +1,3 @@ -sha1 f53dc8f57aaf6d69c183ebadcec52ece0a55cc3f certifi-14.05.14.tar.gz -sha256 1e1bcbacd6357c151ae37cf0290dcc809721d32ce21fd6b7339568f3ddef1b69 certifi-14.05.14.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=5d672aa766e1f773c75cfeccd02d3650, sha256 locally computed +md5 5d672aa766e1f773c75cfeccd02d3650 certifi-2016.2.28.tar.gz +sha256 5e8eccf95924658c97b990b50552addb64f55e1e3dfe4880456ac1f287dc79d0 certifi-2016.2.28.tar.gz diff --git a/bsp/buildroot/package/python-certifi/python-certifi.mk b/bsp/buildroot/package/python-certifi/python-certifi.mk index f1420416..84db8ffe 100644 --- a/bsp/buildroot/package/python-certifi/python-certifi.mk +++ b/bsp/buildroot/package/python-certifi/python-certifi.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_CERTIFI_VERSION = 14.05.14 +PYTHON_CERTIFI_VERSION = 2016.2.28 PYTHON_CERTIFI_SOURCE = certifi-$(PYTHON_CERTIFI_VERSION).tar.gz PYTHON_CERTIFI_SITE = https://pypi.python.org/packages/source/c/certifi PYTHON_CERTIFI_SETUP_TYPE = setuptools diff --git a/bsp/buildroot/package/python-cffi/python-cffi.hash b/bsp/buildroot/package/python-cffi/python-cffi.hash index c689088c..125c93e8 100644 --- a/bsp/buildroot/package/python-cffi/python-cffi.hash +++ b/bsp/buildroot/package/python-cffi/python-cffi.hash @@ -1,4 +1,4 @@ -# From https://pypi.python.org/pypi?:action=show_md5&digest=dec8441e67880494ee881305059af656 -md5 dec8441e67880494ee881305059af656 cffi-1.5.0.tar.gz +# From https://pypi.python.org/pypi?:action=show_md5&digest=2fae9160991afefb20ff0fbde3b14faf +md5 2fae9160991afefb20ff0fbde3b14faf cffi-1.6.0.tar.gz # Calculated based on the hash above -sha256 44f76f6c3fc654860821785192eca29bd66531af57d09b681e6d52584604a7e7 cffi-1.5.0.tar.gz +sha256 a7f75c4ef2362c0a0e54657add0a6c509fecbfa3b3807bc0925f5cb1c9f927db cffi-1.6.0.tar.gz diff --git a/bsp/buildroot/package/python-cffi/python-cffi.mk b/bsp/buildroot/package/python-cffi/python-cffi.mk index d7e4edfb..3c2d5349 100644 --- a/bsp/buildroot/package/python-cffi/python-cffi.mk +++ b/bsp/buildroot/package/python-cffi/python-cffi.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_CFFI_VERSION = 1.5.0 +PYTHON_CFFI_VERSION = 1.6.0 PYTHON_CFFI_SOURCE = cffi-$(PYTHON_CFFI_VERSION).tar.gz -PYTHON_CFFI_SITE = https://pypi.python.org/packages/source/c/cffi +PYTHON_CFFI_SITE = https://pypi.python.org/packages/b6/98/11feff87072e2e640fb8320712b781eccdef05d588618915236b32289d5a PYTHON_CFFI_SETUP_TYPE = setuptools PYTHON_CFFI_DEPENDENCIES = host-pkgconf libffi PYTHON_CFFI_LICENSE = MIT diff --git a/bsp/buildroot/package/python-characteristic/Config.in b/bsp/buildroot/package/python-characteristic/Config.in new file mode 100644 index 00000000..1226fa85 --- /dev/null +++ b/bsp/buildroot/package/python-characteristic/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_CHARACTERISTIC + bool "python-characteristic" + help + Python attributes without boilerplate. + + https://pypi.python.org/pypi/characteristic diff --git a/bsp/buildroot/package/python-characteristic/python-characteristic.hash b/bsp/buildroot/package/python-characteristic/python-characteristic.hash new file mode 100644 index 00000000..41dc18cc --- /dev/null +++ b/bsp/buildroot/package/python-characteristic/python-characteristic.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=b249368dd021fde1c06b4802867c0913, sha256 locally computed. +md5 b249368dd021fde1c06b4802867c0913 characteristic-14.3.0.tar.gz +sha256 ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380 characteristic-14.3.0.tar.gz diff --git a/bsp/buildroot/package/python-characteristic/python-characteristic.mk b/bsp/buildroot/package/python-characteristic/python-characteristic.mk new file mode 100644 index 00000000..dc3e8bb2 --- /dev/null +++ b/bsp/buildroot/package/python-characteristic/python-characteristic.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-characteristic +# +################################################################################ + +PYTHON_CHARACTERISTIC_VERSION = 14.3.0 +PYTHON_CHARACTERISTIC_SOURCE = characteristic-$(PYTHON_CHARACTERISTIC_VERSION).tar.gz +PYTHON_CHARACTERISTIC_SITE = http://pypi.python.org/packages/source/c/characteristic +PYTHON_CHARACTERISTIC_LICENSE = MIT +PYTHON_CHARACTERISTIC_LICENSE_FILES = LICENSE +PYTHON_CHARACTERISTIC_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-click/python-click.hash b/bsp/buildroot/package/python-click/python-click.hash index 72aab0ab..c0d05682 100644 --- a/bsp/buildroot/package/python-click/python-click.hash +++ b/bsp/buildroot/package/python-click/python-click.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=83252a8095397b1f5f710fdd58b484d9, sha256 locally computed. -md5 83252a8095397b1f5f710fdd58b484d9 click-6.2.tar.gz -sha256 fba0ff70f5ebb4cebbf64c40a8fbc222fb7cf825237241e548354dabe3da6a82 click-6.2.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=d0b09582123605220ad6977175f3e51d, sha256 locally computed. +md5 d0b09582123605220ad6977175f3e51d click-6.6.tar.gz +sha256 cc6a19da8ebff6e7074f731447ef7e112bd23adf3de5c597cf9989f2fd8defe9 click-6.6.tar.gz diff --git a/bsp/buildroot/package/python-click/python-click.mk b/bsp/buildroot/package/python-click/python-click.mk index 19ae1870..839a4673 100644 --- a/bsp/buildroot/package/python-click/python-click.mk +++ b/bsp/buildroot/package/python-click/python-click.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_CLICK_VERSION = 6.2 +PYTHON_CLICK_VERSION = 6.6 PYTHON_CLICK_SOURCE = click-$(PYTHON_CLICK_VERSION).tar.gz PYTHON_CLICK_SITE = http://pypi.python.org/packages/source/c/click PYTHON_CLICK_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/python-coherence/0001-Fix-twisted-detection.patch b/bsp/buildroot/package/python-coherence/0001-Fix-twisted-detection.patch new file mode 100644 index 00000000..c0e51b9e --- /dev/null +++ b/bsp/buildroot/package/python-coherence/0001-Fix-twisted-detection.patch @@ -0,0 +1,29 @@ +From 3cf8d89cbb44b5c7a0693d0b5d665e68acc3927c Mon Sep 17 00:00:00 2001 +From: Thomas Klausner +Date: Tue, 10 May 2016 00:14:33 +0200 +Subject: [PATCH] Fix twisted detection. + +Addresses https://github.com/coherence-project/Coherence/issues/25 + +Signed-off-by: Thomas Klausner +Signed-off-by: Yegor Yefremov +--- + coherence/__init__.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/coherence/__init__.py b/coherence/__init__.py +index 2e4e8f1..4c4d73d 100644 +--- a/coherence/__init__.py ++++ b/coherence/__init__.py +@@ -24,8 +24,6 @@ try: + if twisted_version < Version("twisted", 2, 5, 0): + raise ImportError("Twisted >= 2.5 is required. Please install it.") + +- if twisted_web_version < Version("twisted.web", 2, 5, 0): +- raise ImportError("Twisted.Web >= 2.5 is required. Please install it") + except ImportError, exc: + # log error to stderr, might be useful for debugging purpose + for arg in exc.args: +-- +2.8.1 + diff --git a/bsp/buildroot/package/python-configshell-fb/python-configshell-fb.hash b/bsp/buildroot/package/python-configshell-fb/python-configshell-fb.hash new file mode 100644 index 00000000..7bf4d347 --- /dev/null +++ b/bsp/buildroot/package/python-configshell-fb/python-configshell-fb.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 3685446d6ee02881930bb2fdc5fdd254938da66ce9843a5b3676c4246b058e4b python-configshell-fb-v1.1.fb18.tar.gz diff --git a/bsp/buildroot/package/python-crc16/python-crc16.hash b/bsp/buildroot/package/python-crc16/python-crc16.hash new file mode 100644 index 00000000..81b39a03 --- /dev/null +++ b/bsp/buildroot/package/python-crc16/python-crc16.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 10aeda70fbe8b284874b3b1b8f74b9c1f6d5e8dee20ac8f9d5bc49f45f12a42a python-crc16-0.1.1.tar.gz diff --git a/bsp/buildroot/package/python-crossbar/0001-Avoid-intentional-syntax-error.patch b/bsp/buildroot/package/python-crossbar/0001-Avoid-intentional-syntax-error.patch new file mode 100644 index 00000000..fb8e4a27 --- /dev/null +++ b/bsp/buildroot/package/python-crossbar/0001-Avoid-intentional-syntax-error.patch @@ -0,0 +1,29 @@ +From 9ab2b96c2ee679c6dcb387174be211db5d70fa97 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sun, 1 May 2016 15:35:32 +0200 +Subject: [PATCH] Avoid intentional syntax error + +This file has an intentional syntax error, meant to validate QA, but +it breaks byte compilation of this package. + +Issue reported upstream: +https://github.com/crossbario/crossbar/issues/750. + +Signed-off-by: Thomas Petazzoni +--- + crossbar/worker/test/examples/syntaxerror.py | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/crossbar/worker/test/examples/syntaxerror.py b/crossbar/worker/test/examples/syntaxerror.py +index a5947cc..585c995 100644 +--- a/crossbar/worker/test/examples/syntaxerror.py ++++ b/crossbar/worker/test/examples/syntaxerror.py +@@ -29,5 +29,3 @@ + ##################################################################################### + + from __future__ import absolute_import, division +- +-class # noqa +-- +2.7.4 + diff --git a/bsp/buildroot/package/python-crossbar/Config.in b/bsp/buildroot/package/python-crossbar/Config.in new file mode 100644 index 00000000..be833251 --- /dev/null +++ b/bsp/buildroot/package/python-crossbar/Config.in @@ -0,0 +1,43 @@ +config BR2_PACKAGE_PYTHON_CROSSBAR + bool "python-crossbar" + # All the following dependencies are runtime dependencies + select BR2_PACKAGE_PYTHON_AUTOBAHN + select BR2_PACKAGE_PYTHON_CBOR + select BR2_PACKAGE_PYTHON_CLICK + select BR2_PACKAGE_PYTHON_PYCPARSER + select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY + select BR2_PACKAGE_PYTHON_JINJA2 + select BR2_PACKAGE_PYTHON_LMDB + select BR2_PACKAGE_PYTHON_MISTUNE + select BR2_PACKAGE_PYTHON_NETADDR + select BR2_PACKAGE_PYTHON_PSUTIL + select BR2_PACKAGE_PYTHON_PYASN + select BR2_PACKAGE_PYTHON_PYASN_MODULES + select BR2_PACKAGE_PYTHON_PYGMENTS + select BR2_PACKAGE_PYTHON_PYINOTIFY + select BR2_PACKAGE_PYTHON_PYNACL + select BR2_PACKAGE_PYTHON_PYOPENSSL + select BR2_PACKAGE_PYTHON_PYTRIE + select BR2_PACKAGE_PYTHON_PYYAML + select BR2_PACKAGE_PYTHON_SDNOTIFY + select BR2_PACKAGE_PYTHON_SETUPTOOLS + select BR2_PACKAGE_PYTHON_SERVICE_IDENTITY + select BR2_PACKAGE_PYTHON_SETPROCTITLE + select BR2_PACKAGE_PYTHON_SETUPTOOLS + select BR2_PACKAGE_PYTHON_SHUTILWHICH if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON_TREQ + select BR2_PACKAGE_PYTHON_TWISTED + select BR2_PACKAGE_PYTHON_U_MSGPACK + select BR2_PACKAGE_PYTHON_UBJSON + select BR2_PACKAGE_PYTHON_WATCHDOG + select BR2_PACKAGE_PYTHON_WSACCEL + depends on BR2_INSTALL_LIBSTDCPP # python-pyasn + help + Crossbar.io is an open-source WAMP application router that + allows to build advanced applications from loosely-coupled + components that can talk in real-time with each other. + + https://pypi.python.org/pypi/crossbar + +comment "python-crossbar needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-crossbar/python-crossbar.hash b/bsp/buildroot/package/python-crossbar/python-crossbar.hash new file mode 100644 index 00000000..a500bcf6 --- /dev/null +++ b/bsp/buildroot/package/python-crossbar/python-crossbar.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/crossbar/json, sha256 locally computed. +md5 516478cc368503a0a0babc1dc28c5085 crossbar-0.14.0.tar.gz +sha256 6242ef34c56061850743d750d042993590ca7ec8ebe7b28c21ed05bb0904d71b crossbar-0.14.0.tar.gz diff --git a/bsp/buildroot/package/python-crossbar/python-crossbar.mk b/bsp/buildroot/package/python-crossbar/python-crossbar.mk new file mode 100644 index 00000000..3d82d770 --- /dev/null +++ b/bsp/buildroot/package/python-crossbar/python-crossbar.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-crossbar +# +################################################################################ + +PYTHON_CROSSBAR_VERSION = 0.14.0 +PYTHON_CROSSBAR_SOURCE = crossbar-$(PYTHON_CROSSBAR_VERSION).tar.gz +PYTHON_CROSSBAR_SITE = https://pypi.python.org/packages/f0/9a/e0b77e15698c47b6293655bc0e1996dd8e87bd8af7bc7434a5c8281a024e +PYTHON_CROSSBAR_LICENSE = AGPLv3 +PYTHON_CROSSBAR_LICENSE_FILES = LICENSE +PYTHON_CROSSBAR_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-cryptography/Config.in b/bsp/buildroot/package/python-cryptography/Config.in new file mode 100644 index 00000000..9827cf82 --- /dev/null +++ b/bsp/buildroot/package/python-cryptography/Config.in @@ -0,0 +1,23 @@ +config BR2_PACKAGE_PYTHON_CRYPTOGRAPHY + bool "python-cryptography" + depends on BR2_INSTALL_LIBSTDCPP # python-pyasn + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PYTHON_CFFI # runtime + select BR2_PACKAGE_PYTHON_IDNA # runtime + select BR2_PACKAGE_PYTHON_PYASN # runtime + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_ENUM34 if BR2_PACKAGE_PYTHON # runtime + select BR2_PACKAGE_PYTHON_SETUPTOOLS # runtime + select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime + select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime + select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON # runtime + select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 # runtime + select BR2_PACKAGE_PYTHON_IPADDRESS if BR2_PACKAGE_PYTHON # runtime + help + cryptography is a package designed to expose cryptographic + primitives and recipes to Python developers. + + https://cryptography.io + +comment "python-cryptography needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-cryptography/python-cryptography.hash b/bsp/buildroot/package/python-cryptography/python-cryptography.hash new file mode 100644 index 00000000..3f8f61b2 --- /dev/null +++ b/bsp/buildroot/package/python-cryptography/python-cryptography.hash @@ -0,0 +1,4 @@ +# From https://pypi.python.org/pypi?:action=show_md5&digest=defd153ed901089f5aeac6eb066d5ef7 +md5 defd153ed901089f5aeac6eb066d5ef7 cryptography-1.3.4.tar.gz +# Calculated based on the hash above +sha256 423ff890c01be7c70dbfeaa967eeef5146f1a43a5f810ffdc07b178e48a105a9 cryptography-1.3.4.tar.gz diff --git a/bsp/buildroot/package/python-cryptography/python-cryptography.mk b/bsp/buildroot/package/python-cryptography/python-cryptography.mk new file mode 100644 index 00000000..fe392f97 --- /dev/null +++ b/bsp/buildroot/package/python-cryptography/python-cryptography.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# python-cryptography +# +################################################################################ + +PYTHON_CRYPTOGRAPHY_VERSION = 1.3.4 +PYTHON_CRYPTOGRAPHY_SOURCE = cryptography-$(PYTHON_CRYPTOGRAPHY_VERSION).tar.gz +PYTHON_CRYPTOGRAPHY_SITE = https://pypi.python.org/packages/f8/70/d7bd5c9c764732d5876ad34293e1ca55b2305a73ae6fcf1312202d1a798e +PYTHON_CRYPTOGRAPHY_SETUP_TYPE = setuptools +PYTHON_CRYPTOGRAPHY_LICENSE = Apache-2.0 or BSD-3c +PYTHON_CRYPTOGRAPHY_LICENSE_FILES = LICENSE LICENSE.APACHE LICENSE.BSD +PYTHON_CRYPTOGRAPHY_DEPENDENCIES = host-python-cffi openssl + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-cssselect/python-cssselect.hash b/bsp/buildroot/package/python-cssselect/python-cssselect.hash index 08c81e51..d3ee055a 100644 --- a/bsp/buildroot/package/python-cssselect/python-cssselect.hash +++ b/bsp/buildroot/package/python-cssselect/python-cssselect.hash @@ -1,4 +1,4 @@ # md5 from https://pypi.python.org/pypi/cssselect/json -md5 c74f45966277dc7a0f768b9b0f3522ac cssselect-0.9.1.tar.gz -# sha256 calculated by scanpypi -sha256 0535a7e27014874b27ae3a4d33e8749e345bdfa62766195208b7996bf1100682 cssselect-0.9.1.tar.gz +md5 4c5931d8456dfe72fa4662f9c0509bfa cssselect-0.9.2.tar.gz +# sha256 locally computed +sha256 713b5b99ef08022257b3409c7ae1b18b2c6536b3f155e6237c5cfba0f67ae6f5 cssselect-0.9.2.tar.gz diff --git a/bsp/buildroot/package/python-cssselect/python-cssselect.mk b/bsp/buildroot/package/python-cssselect/python-cssselect.mk index c6b476b8..0db69b96 100644 --- a/bsp/buildroot/package/python-cssselect/python-cssselect.mk +++ b/bsp/buildroot/package/python-cssselect/python-cssselect.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_CSSSELECT_VERSION = 0.9.1 +PYTHON_CSSSELECT_VERSION = 0.9.2 PYTHON_CSSSELECT_SOURCE = cssselect-$(PYTHON_CSSSELECT_VERSION).tar.gz -PYTHON_CSSSELECT_SITE = https://pypi.python.org/packages/source/c/cssselect +PYTHON_CSSSELECT_SITE = https://pypi.python.org/packages/11/21/47b5d2696a945da177d2344b6e330b7b0d1c52404063cb387d2261517ccb PYTHON_CSSSELECT_SETUP_TYPE = setuptools PYTHON_CSSSELECT_LICENSE = BSD-3c PYTHON_CSSSELECT_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/python-daemon/python-daemon.hash b/bsp/buildroot/package/python-daemon/python-daemon.hash new file mode 100644 index 00000000..5b3a4d2b --- /dev/null +++ b/bsp/buildroot/package/python-daemon/python-daemon.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 1406962e48ce03642c6057f40f9ffd49493792a7b34357fe9e264708748c83c0 python-daemon-1.5.5.tar.gz diff --git a/bsp/buildroot/package/python-dataproperty/Config.in b/bsp/buildroot/package/python-dataproperty/Config.in new file mode 100644 index 00000000..a490b987 --- /dev/null +++ b/bsp/buildroot/package/python-dataproperty/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_DATAPROPERTY + bool "python-dataproperty" + select BR2_PACKAGE_PYTHON_DATEUTIL # runtime + select BR2_PACKAGE_PYTHON_PYTZ # runtime + select BR2_PACKAGE_PYTHON_SIX # runtime + help + Python library for extract property from data. + + https://github.com/thombashi/DataProperty diff --git a/bsp/buildroot/package/python-dataproperty/python-dataproperty.hash b/bsp/buildroot/package/python-dataproperty/python-dataproperty.hash new file mode 100644 index 00000000..916352ed --- /dev/null +++ b/bsp/buildroot/package/python-dataproperty/python-dataproperty.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/dataproperty/json +md5 7ad4dabb5469bb3f150dd1018680119c DataProperty-0.7.1.tar.gz +# sha256 calculated by scanpypi +sha256 2d53019e6ca7b95511ec733ea57dc108d916d2dd0818d88d1b7c0e06854a2d2e DataProperty-0.7.1.tar.gz diff --git a/bsp/buildroot/package/python-dataproperty/python-dataproperty.mk b/bsp/buildroot/package/python-dataproperty/python-dataproperty.mk new file mode 100644 index 00000000..927fa69d --- /dev/null +++ b/bsp/buildroot/package/python-dataproperty/python-dataproperty.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-dataproperty +# +################################################################################ + +PYTHON_DATAPROPERTY_VERSION = 0.7.1 +PYTHON_DATAPROPERTY_SOURCE = DataProperty-$(PYTHON_DATAPROPERTY_VERSION).tar.gz +PYTHON_DATAPROPERTY_SITE = https://pypi.python.org/packages/1f/64/b17e5ab3935484869cc3e8ec06ede0c94a296b4955c947d1dfe4460955f9 +PYTHON_DATAPROPERTY_SETUP_TYPE = setuptools +PYTHON_DATAPROPERTY_LICENSE = MIT +PYTHON_DATAPROPERTY_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-dateutil/Config.in b/bsp/buildroot/package/python-dateutil/Config.in new file mode 100644 index 00000000..56a1d838 --- /dev/null +++ b/bsp/buildroot/package/python-dateutil/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_DATEUTIL + bool "python-dateutil" + select BR2_PACKAGE_PYTHON_SIX + help + Extensions to the standard Python datetime module. + + https://dateutil.readthedocs.org diff --git a/bsp/buildroot/package/python-dateutil/python-dateutil.hash b/bsp/buildroot/package/python-dateutil/python-dateutil.hash new file mode 100644 index 00000000..9eff0160 --- /dev/null +++ b/bsp/buildroot/package/python-dateutil/python-dateutil.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/python-dateutil/json +md5 05ffc6d2cc85a7fd93bb245807f715ef python-dateutil-2.5.3.tar.gz +# sha256 calculated by scanpypi +sha256 1408fdb07c6a1fa9997567ce3fcee6a337b39a503d80699e0f213de4aa4b32ed python-dateutil-2.5.3.tar.gz diff --git a/bsp/buildroot/package/python-dateutil/python-dateutil.mk b/bsp/buildroot/package/python-dateutil/python-dateutil.mk new file mode 100644 index 00000000..371788cf --- /dev/null +++ b/bsp/buildroot/package/python-dateutil/python-dateutil.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-dateutil +# +################################################################################ + +PYTHON_DATEUTIL_VERSION = 2.5.3 +PYTHON_DATEUTIL_SOURCE = python-dateutil-$(PYTHON_DATEUTIL_VERSION).tar.gz +PYTHON_DATEUTIL_SITE = https://pypi.python.org/packages/3e/f5/aad82824b369332a676a90a8c0d1e608b17e740bbb6aeeebca726f17b902 +PYTHON_DATEUTIL_SETUP_TYPE = setuptools +PYTHON_DATEUTIL_LICENSE = BSD-3c +PYTHON_DATEUTIL_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-dialog3/Config.in b/bsp/buildroot/package/python-dialog3/Config.in new file mode 100644 index 00000000..cd076085 --- /dev/null +++ b/bsp/buildroot/package/python-dialog3/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_PYTHON_DIALOG3 + bool "python-dialog3" + depends on BR2_PACKAGE_PYTHON3 + depends on BR2_USE_MMU # dialog + select BR2_PACKAGE_DIALOG + help + A Python 3 only interface to the UNIX dialog utility and + mostly-compatible programs. + + http://pythondialog.sourceforge.net/ diff --git a/bsp/buildroot/package/python-dialog3/python-dialog3.hash b/bsp/buildroot/package/python-dialog3/python-dialog3.hash new file mode 100644 index 00000000..dae863b7 --- /dev/null +++ b/bsp/buildroot/package/python-dialog3/python-dialog3.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/pythondialog/json, sha256 locally computed +md5 3d5ebc33e85f6313964f5eef720dab19 pythondialog-3.4.0.tar.bz2 +sha256 019cdbffe3f61d32d6fb158ce48a767478af2aac2f31fb40460b39aefae604fe pythondialog-3.4.0.tar.bz2 diff --git a/bsp/buildroot/package/python-dialog3/python-dialog3.mk b/bsp/buildroot/package/python-dialog3/python-dialog3.mk new file mode 100644 index 00000000..abc4a395 --- /dev/null +++ b/bsp/buildroot/package/python-dialog3/python-dialog3.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# python-dialog3 +# +################################################################################ + +PYTHON_DIALOG3_VERSION = 3.4.0 +PYTHON_DIALOG3_SOURCE = pythondialog-$(PYTHON_DIALOG3_VERSION).tar.bz2 +PYTHON_DIALOG3_SITE = https://pypi.python.org/packages/fa/f4/686742f01ebb5863d4c5e1acab620acfed0fe97280a26b4ed25917f4f333 +PYTHON_DIALOG3_LICENSE = LGPLv2.1+ +PYTHON_DIALOG3_LICENSE_FILES = COPYING +PYTHON_DIALOG3_SETUP_TYPE = distutils +PYTHON_DIALOG3_DEPENDENCIES = dialog + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-dicttoxml/Config.in b/bsp/buildroot/package/python-dicttoxml/Config.in new file mode 100644 index 00000000..152afbb6 --- /dev/null +++ b/bsp/buildroot/package/python-dicttoxml/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_DICTTOXML + bool "python-dicttoxml" + select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 + help + Converts a Python dictionary or other native data type into a valid + XML string. + + https://github.com/quandyfactory/dicttoxml diff --git a/bsp/buildroot/package/python-dicttoxml/python-dicttoxml.hash b/bsp/buildroot/package/python-dicttoxml/python-dicttoxml.hash new file mode 100644 index 00000000..32ba6b0f --- /dev/null +++ b/bsp/buildroot/package/python-dicttoxml/python-dicttoxml.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/dicttoxml/json, sha256 locally computed +md5 ec5643a048cf32dad3c28db236b923e4 dicttoxml-1.7.4.tar.gz +sha256 ea44cc4ec6c0f85098c57a431a1ee891b3549347b07b7414c8a24611ecf37e45 dicttoxml-1.7.4.tar.gz diff --git a/bsp/buildroot/package/python-dicttoxml/python-dicttoxml.mk b/bsp/buildroot/package/python-dicttoxml/python-dicttoxml.mk new file mode 100644 index 00000000..69767150 --- /dev/null +++ b/bsp/buildroot/package/python-dicttoxml/python-dicttoxml.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-dicttoxml +# +################################################################################ + +PYTHON_DICTTOXML_VERSION = 1.7.4 +PYTHON_DICTTOXML_SOURCE = dicttoxml-$(PYTHON_DICTTOXML_VERSION).tar.gz +PYTHON_DICTTOXML_SITE = https://pypi.python.org/packages/74/36/534db111db9e7610a41641a1f6669a964aacaf51858f466de264cc8dcdd9 +PYTHON_DICTTOXML_SETUP_TYPE = distutils +PYTHON_DICTTOXML_LICENSE = GPLv2 +PYTHON_DICTTOXML_LICENSE_FILES = LICENCE.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-docopt/python-docopt.hash b/bsp/buildroot/package/python-docopt/python-docopt.hash new file mode 100644 index 00000000..c38e1ab7 --- /dev/null +++ b/bsp/buildroot/package/python-docopt/python-docopt.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 2113eed1e7fbbcd43fb7ee6a977fb02d0b482753586c9dc1a8e3b7d541426e99 python-docopt-0.6.2.tar.gz diff --git a/bsp/buildroot/package/python-dominate/Config.in b/bsp/buildroot/package/python-dominate/Config.in new file mode 100644 index 00000000..35e9a0c8 --- /dev/null +++ b/bsp/buildroot/package/python-dominate/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_DOMINATE + bool "python-dominate" + help + Dominate is a Python library for creating and manipulating + HTML documents using an elegant DOM API. + + http://github.com/Knio/dominate/ diff --git a/bsp/buildroot/package/python-dominate/python-dominate.hash b/bsp/buildroot/package/python-dominate/python-dominate.hash new file mode 100644 index 00000000..1d763ac3 --- /dev/null +++ b/bsp/buildroot/package/python-dominate/python-dominate.hash @@ -0,0 +1,2 @@ +# sha256 locally computed +sha256 318063a9b600cdc13f84592ad515db0fd3a2816a2433e2a2fad55a5398ae05da python-dominate-acb02c7c71e353e5dfbc905d506b54908533027e.tar.gz diff --git a/bsp/buildroot/package/python-dominate/python-dominate.mk b/bsp/buildroot/package/python-dominate/python-dominate.mk new file mode 100644 index 00000000..170553f7 --- /dev/null +++ b/bsp/buildroot/package/python-dominate/python-dominate.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# python-dominate +# +################################################################################ + +PYTHON_DOMINATE_VERSION = acb02c7c71e353e5dfbc905d506b54908533027e +PYTHON_DOMINATE_SITE = $(call github,Knio,dominate,$(PYTHON_DOMINATE_VERSION)) +PYTHON_DOMINATE_SETUP_TYPE = setuptools +PYTHON_DOMINATE_LICENSE = LGPLv3+ +PYTHON_DOMINATE_LICENSE_FILES = LICENSE.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-dpkt/python-dpkt.hash b/bsp/buildroot/package/python-dpkt/python-dpkt.hash new file mode 100644 index 00000000..db46016d --- /dev/null +++ b/bsp/buildroot/package/python-dpkt/python-dpkt.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 33a98fd44eb0b6dfa6790c0fcef4d7e73a5cc12a664ea3c30f4d3c2b95f5efc4 python-dpkt-1.8.r98.tar.gz diff --git a/bsp/buildroot/package/python-engineio/Config.in b/bsp/buildroot/package/python-engineio/Config.in new file mode 100644 index 00000000..b12db922 --- /dev/null +++ b/bsp/buildroot/package/python-engineio/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_ENGINEIO + bool "python-engineio" + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 + help + Engine.IO server. + + http://github.com/miguelgrinberg/python-engineio/ diff --git a/bsp/buildroot/package/python-engineio/python-engineio.hash b/bsp/buildroot/package/python-engineio/python-engineio.hash new file mode 100644 index 00000000..b2c0669b --- /dev/null +++ b/bsp/buildroot/package/python-engineio/python-engineio.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/python-engineio/json +md5 9b0075dbbb25d7a302eba99dd9ba4af8 python-engineio-0.9.2.tar.gz +# sha256 calculated by scanpypi +sha256 c53282415ed9bc3cb4e7beafb2a1ce5c369af95dcf8f968061e5bc7572b60867 python-engineio-0.9.2.tar.gz diff --git a/bsp/buildroot/package/python-engineio/python-engineio.mk b/bsp/buildroot/package/python-engineio/python-engineio.mk new file mode 100644 index 00000000..700b638a --- /dev/null +++ b/bsp/buildroot/package/python-engineio/python-engineio.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-engineio +# +################################################################################ + +PYTHON_ENGINEIO_VERSION = 0.9.2 +PYTHON_ENGINEIO_SOURCE = python-engineio-$(PYTHON_ENGINEIO_VERSION).tar.gz +PYTHON_ENGINEIO_SITE = https://pypi.python.org/packages/c3/8f/0e066fc7a7029893b96b1d68a0cd5e75f6410f154fa4079b2be4991f5ae0 +PYTHON_ENGINEIO_SETUP_TYPE = setuptools +PYTHON_ENGINEIO_LICENSE = MIT +PYTHON_ENGINEIO_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-flask-jsonrpc/Config.in b/bsp/buildroot/package/python-flask-jsonrpc/Config.in new file mode 100644 index 00000000..c8ecd854 --- /dev/null +++ b/bsp/buildroot/package/python-flask-jsonrpc/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_PYTHON_FLASK_JSONRPC + bool "python-flask-jsonrpc" + # runtime dependency + select BR2_PACKAGE_PYTHON_FLASK + help + A basic JSON-RPC implementation for your Flask-powered sites. + + https://github.com/cenobites/flask-jsonrpc diff --git a/bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.hash b/bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.hash new file mode 100644 index 00000000..8b91af70 --- /dev/null +++ b/bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/Flask-JSONRPC/0.3, sha256 locally computed: +md5 a5beca4c3a882315f9b81acb57e83c68 Flask-JSONRPC-0.3.tar.gz +sha256 5baf70bf9cf955e95c02316982026a122b89a5f4c78c5b26f9f476abdb3e13bc Flask-JSONRPC-0.3.tar.gz diff --git a/bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.mk b/bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.mk new file mode 100644 index 00000000..624322ed --- /dev/null +++ b/bsp/buildroot/package/python-flask-jsonrpc/python-flask-jsonrpc.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-flask-jsonrpc +# +################################################################################ + +PYTHON_FLASK_JSONRPC_VERSION = 0.3 +PYTHON_FLASK_JSONRPC_SOURCE = Flask-JSONRPC-$(PYTHON_FLASK_JSONRPC_VERSION).tar.gz +PYTHON_FLASK_JSONRPC_SITE = http://pypi.python.org/packages/source/F/Flask-JSONRPC +PYTHON_FLASK_JSONRPC_LICENSE = BSD-3c +PYTHON_FLASK_JSONRPC_LICENSE_FILES = setup.py +PYTHON_FLASK_JSONRPC_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-flask-login/Config.in b/bsp/buildroot/package/python-flask-login/Config.in new file mode 100644 index 00000000..88c413e2 --- /dev/null +++ b/bsp/buildroot/package/python-flask-login/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_PYTHON_FLASK_LOGIN + bool "python-flask-login" + # runtime dependency + select BR2_PACKAGE_PYTHON_FLASK + help + Flask-Login provides user session management for Flask. + + https://github.com/maxcountryman/flask-login diff --git a/bsp/buildroot/package/python-flask-login/python-flask-login.hash b/bsp/buildroot/package/python-flask-login/python-flask-login.hash new file mode 100644 index 00000000..c488a35e --- /dev/null +++ b/bsp/buildroot/package/python-flask-login/python-flask-login.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/Flask-Login/0.3.2, sha256 locally computed: +md5 d95c2275d3e1c755145910077366dc45 Flask-Login-0.3.2.tar.gz +sha256 e72eff5c35e5a31db1aeca1db5d2501be702674ea88e8f223b5d2b11644beee6 Flask-Login-0.3.2.tar.gz diff --git a/bsp/buildroot/package/python-flask-login/python-flask-login.mk b/bsp/buildroot/package/python-flask-login/python-flask-login.mk new file mode 100644 index 00000000..aa6d8e3d --- /dev/null +++ b/bsp/buildroot/package/python-flask-login/python-flask-login.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-flask-login +# +################################################################################ + +PYTHON_FLASK_LOGIN_VERSION = 0.3.2 +PYTHON_FLASK_LOGIN_SOURCE = Flask-Login-$(PYTHON_FLASK_LOGIN_VERSION).tar.gz +PYTHON_FLASK_LOGIN_SITE = http://pypi.python.org/packages/source/F/Flask-Login +PYTHON_FLASK_LOGIN_LICENSE = MIT +PYTHON_FLASK_LOGIN_LICENSE_FILES = LICENSE +PYTHON_FLASK_LOGIN_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-flask/Config.in b/bsp/buildroot/package/python-flask/Config.in index 4a955c45..6f77913e 100644 --- a/bsp/buildroot/package/python-flask/Config.in +++ b/bsp/buildroot/package/python-flask/Config.in @@ -1,8 +1,11 @@ config BR2_PACKAGE_PYTHON_FLASK bool "python-flask" - select BR2_PACKAGE_PYTHON_WERKZEUG - select BR2_PACKAGE_PYTHON_JINJA2 - select BR2_PACKAGE_PYTHON_ITSDANGEROUS + select BR2_PACKAGE_PYTHON_CLICK # runtime + select BR2_PACKAGE_PYTHON_JINJA2 # runtime + select BR2_PACKAGE_PYTHON_WERKZEUG # runtime + select BR2_PACKAGE_PYTHON_ITSDANGEROUS # runtime + select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 help Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. diff --git a/bsp/buildroot/package/python-flask/python-flask.hash b/bsp/buildroot/package/python-flask/python-flask.hash index 55d0a5c5..1432c555 100644 --- a/bsp/buildroot/package/python-flask/python-flask.hash +++ b/bsp/buildroot/package/python-flask/python-flask.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=378670fe456957eb3c27ddaef60b2b24, sha256 locally computed -md5 378670fe456957eb3c27ddaef60b2b24 Flask-0.10.1.tar.gz -sha256 4c83829ff83d408b5e1d4995472265411d2c414112298f2eb4b359d9e4563373 Flask-0.10.1.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=89fbdcb04b7b96c5b24625ae299cf48b, sha256 locally computed +md5 89fbdcb04b7b96c5b24625ae299cf48b Flask-0.11.tar.gz +sha256 29a7405a7f0de178232fe48cd9b2a2403083bf03bd34eabe12168863d4cdb493 Flask-0.11.tar.gz diff --git a/bsp/buildroot/package/python-flask/python-flask.mk b/bsp/buildroot/package/python-flask/python-flask.mk index 8aa675e2..db4ba742 100644 --- a/bsp/buildroot/package/python-flask/python-flask.mk +++ b/bsp/buildroot/package/python-flask/python-flask.mk @@ -4,12 +4,11 @@ # ################################################################################ -PYTHON_FLASK_VERSION = 0.10.1 +PYTHON_FLASK_VERSION = 0.11 PYTHON_FLASK_SOURCE = Flask-$(PYTHON_FLASK_VERSION).tar.gz -PYTHON_FLASK_SITE = http://pypi.python.org/packages/source/F/Flask +PYTHON_FLASK_SITE = https://pypi.python.org/packages/dc/ca/c0ed9cc90c079085c698e284b672edbc1ffd6866b1830574095cbc5b7752 PYTHON_FLASK_SETUP_TYPE = setuptools PYTHON_FLASK_LICENSE = BSD-3c PYTHON_FLASK_LICENSE_FILES = LICENSE -PYTHON_FLASK_DEPENDENCIES = python-werkzeug python-jinja2 python-itsdangerous $(eval $(python-package)) diff --git a/bsp/buildroot/package/python-humanize/Config.in b/bsp/buildroot/package/python-humanize/Config.in new file mode 100644 index 00000000..f4f4e67b --- /dev/null +++ b/bsp/buildroot/package/python-humanize/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_HUMANIZE + bool "python-humanize" + help + Python humanize package contains various common humanization + utilities, like turning a number into a fuzzy human readable + duration ('3 minutes ago') or into a human readable size or + throughput. + + http://github.com/jmoiron/humanize diff --git a/bsp/buildroot/package/python-humanize/python-humanize.hash b/bsp/buildroot/package/python-humanize/python-humanize.hash new file mode 100644 index 00000000..bb66e444 --- /dev/null +++ b/bsp/buildroot/package/python-humanize/python-humanize.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/humanize/json, sha256 locally computed +md5 e8473d9dc1b220911cac2edd53b1d973 humanize-0.5.1.tar.gz +sha256 a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19 humanize-0.5.1.tar.gz diff --git a/bsp/buildroot/package/python-humanize/python-humanize.mk b/bsp/buildroot/package/python-humanize/python-humanize.mk new file mode 100644 index 00000000..60ec82bd --- /dev/null +++ b/bsp/buildroot/package/python-humanize/python-humanize.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-humanize +# +################################################################################ + +PYTHON_HUMANIZE_VERSION = 0.5.1 +PYTHON_HUMANIZE_SOURCE = humanize-$(PYTHON_HUMANIZE_VERSION).tar.gz +PYTHON_HUMANIZE_SITE = https://pypi.python.org/packages/8c/e0/e512e4ac6d091fc990bbe13f9e0378f34cf6eecd1c6c268c9e598dcf5bb9 +PYTHON_HUMANIZE_SETUP_TYPE = setuptools +PYTHON_HUMANIZE_LICENSE = MIT +PYTHON_HUMANIZE_LICENSE_FILES = LICENCE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-idna/python-idna.hash b/bsp/buildroot/package/python-idna/python-idna.hash index 10e3e9d8..4e4c6771 100644 --- a/bsp/buildroot/package/python-idna/python-idna.hash +++ b/bsp/buildroot/package/python-idna/python-idna.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=bd17a9d15e755375f48a62c13b25b801, sha256 locally computed -md5 bd17a9d15e755375f48a62c13b25b801 idna-2.0.tar.gz -sha256 16199aad938b290f5be1057c0e1efc6546229391c23cea61ca940c115f7d3d3b idna-2.0.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=f6473caa9c5e0cc1ad3fd5d04c3c114b, sha256 locally computed +md5 f6473caa9c5e0cc1ad3fd5d04c3c114b idna-2.1.tar.gz +sha256 ed36f281aebf3cd0797f163bb165d84c31507cedd15928b095b1675e2d04c676 idna-2.1.tar.gz diff --git a/bsp/buildroot/package/python-idna/python-idna.mk b/bsp/buildroot/package/python-idna/python-idna.mk index 7dd1253c..3f9f1093 100644 --- a/bsp/buildroot/package/python-idna/python-idna.mk +++ b/bsp/buildroot/package/python-idna/python-idna.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_IDNA_VERSION = 2.0 +PYTHON_IDNA_VERSION = 2.1 PYTHON_IDNA_SOURCE = idna-$(PYTHON_IDNA_VERSION).tar.gz PYTHON_IDNA_SITE = https://pypi.python.org/packages/source/i/idna PYTHON_IDNA_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/python-iniparse/Config.in b/bsp/buildroot/package/python-iniparse/Config.in new file mode 100644 index 00000000..65c10649 --- /dev/null +++ b/bsp/buildroot/package/python-iniparse/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_PYTHON_INIPARSE + bool "python-iniparse" + depends on BR2_PACKAGE_PYTHON + help + iniparse is an INI parser for Python which is API compatible + with the standard library's ConfigParser, preserves + structure of INI files (order of sections & options, + indentation, comments, and blank lines are preserved when + data is updated), and is more convenient to use. + + https://pypi.python.org/pypi/iniparse diff --git a/bsp/buildroot/package/python-iniparse/python-iniparse.hash b/bsp/buildroot/package/python-iniparse/python-iniparse.hash new file mode 100644 index 00000000..d7d8e933 --- /dev/null +++ b/bsp/buildroot/package/python-iniparse/python-iniparse.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=5e573e9e9733d97623881ce9bbe5eca6, sha256 locally computed +md5 5e573e9e9733d97623881ce9bbe5eca6 iniparse-0.4.tar.gz +sha256 abc1ee12d2cfb2506109072d6c21e40b6c75a3fe90a9c924327d80bc0d99c054 iniparse-0.4.tar.gz + diff --git a/bsp/buildroot/package/python-iniparse/python-iniparse.mk b/bsp/buildroot/package/python-iniparse/python-iniparse.mk new file mode 100644 index 00000000..b00e0c4a --- /dev/null +++ b/bsp/buildroot/package/python-iniparse/python-iniparse.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-iniparse +# +################################################################################ + +PYTHON_INIPARSE_VERSION = 0.4 +PYTHON_INIPARSE_SOURCE = iniparse-$(PYTHON_INIPARSE_VERSION).tar.gz +PYTHON_INIPARSE_SITE = https://pypi.python.org/packages/source/i/iniparse +PYTHON_INIPARSE_LICENSE = Python software foundation license v2, MIT +PYTHON_INIPARSE_LICENSE_FILES = LICENSE-PSF LICENSE +PYTHON_INIPARSE_SETUP_TYPE = distutils + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-iowait/Config.in b/bsp/buildroot/package/python-iowait/Config.in new file mode 100644 index 00000000..ebe96db1 --- /dev/null +++ b/bsp/buildroot/package/python-iowait/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_IOWAIT + bool "python-iowait" + help + Platform-independent module for I/O completion events. + + https://launchpad.net/python-iowait diff --git a/bsp/buildroot/package/python-iowait/python-iowait.hash b/bsp/buildroot/package/python-iowait/python-iowait.hash new file mode 100644 index 00000000..67dac15f --- /dev/null +++ b/bsp/buildroot/package/python-iowait/python-iowait.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/iowait/json +md5 f49ca7766fe4a67e03a731e575614f87 iowait-0.2.tar.gz +# sha256 calculated by scanpypi +sha256 ab1bc2eb84c22ccf61f17a0024f9fb6df781b39f1852764a66a7769d5adfb299 iowait-0.2.tar.gz diff --git a/bsp/buildroot/package/python-iowait/python-iowait.mk b/bsp/buildroot/package/python-iowait/python-iowait.mk new file mode 100644 index 00000000..99c29228 --- /dev/null +++ b/bsp/buildroot/package/python-iowait/python-iowait.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-iowait +# +################################################################################ + +PYTHON_IOWAIT_VERSION = 0.2 +PYTHON_IOWAIT_SOURCE = iowait-$(PYTHON_IOWAIT_VERSION).tar.gz +PYTHON_IOWAIT_SITE = https://pypi.python.org/packages/65/30/e953673fe9619938e9c74408401cf865f37716da89f61f6e5d9328c0f71e +PYTHON_IOWAIT_SETUP_TYPE = distutils +PYTHON_IOWAIT_LICENSE = LGPLv3+ +PYTHON_IOWAIT_LICENSE_FILES = COPYING.LESSER + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-ipy/python-ipy.hash b/bsp/buildroot/package/python-ipy/python-ipy.hash new file mode 100644 index 00000000..171dbdbd --- /dev/null +++ b/bsp/buildroot/package/python-ipy/python-ipy.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 edaaa5344893437aa6c1eb9c4ca966eb4b8c071761793839c7b4fc2a837fbeec python-ipy-IPy-0.82a.tar.gz diff --git a/bsp/buildroot/package/python-ipython/python-ipython.hash b/bsp/buildroot/package/python-ipython/python-ipython.hash new file mode 100644 index 00000000..250a0225 --- /dev/null +++ b/bsp/buildroot/package/python-ipython/python-ipython.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 ca86a6308c4b53ea8a040ba776066dc9a7af4ac738ad43ab2059a016c09b0c2d ipython-2.1.0.tar.gz diff --git a/bsp/buildroot/package/python-itsdangerous/python-itsdangerous.hash b/bsp/buildroot/package/python-itsdangerous/python-itsdangerous.hash new file mode 100644 index 00000000..a927b8b7 --- /dev/null +++ b/bsp/buildroot/package/python-itsdangerous/python-itsdangerous.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 b035b2da1d493b00a5ee7a5b750f96929de87b610643939fbe382902774626fc python-itsdangerous-0.24.tar.gz diff --git a/bsp/buildroot/package/python-json-schema-validator/python-json-schema-validator.hash b/bsp/buildroot/package/python-json-schema-validator/python-json-schema-validator.hash new file mode 100644 index 00000000..96f5d895 --- /dev/null +++ b/bsp/buildroot/package/python-json-schema-validator/python-json-schema-validator.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 316befb9a6d981dff465f5243e423a3027b27775f7649510ce23fde300dde9b7 json-schema-validator-2.3.tar.gz diff --git a/bsp/buildroot/package/python-keyring/python-keyring.hash b/bsp/buildroot/package/python-keyring/python-keyring.hash new file mode 100644 index 00000000..cd1683a7 --- /dev/null +++ b/bsp/buildroot/package/python-keyring/python-keyring.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c3f0665ee2d969170dcd6b9e83e76cc7fca2be5a40943700ce2624a0a02f9658 keyring-3.0.5.zip diff --git a/bsp/buildroot/package/python-libconfig/Config.in b/bsp/buildroot/package/python-libconfig/Config.in index b49aa268..7cc5f8a3 100644 --- a/bsp/buildroot/package/python-libconfig/Config.in +++ b/bsp/buildroot/package/python-libconfig/Config.in @@ -1,5 +1,4 @@ comment "python-libconfig needs a toolchain w/ C++, threads" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS config BR2_PACKAGE_PYTHON_LIBCONFIG @@ -9,7 +8,6 @@ config BR2_PACKAGE_PYTHON_LIBCONFIG select BR2_PACKAGE_LIBCONFIG depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS help Python bindings to the C++ library libconfig diff --git a/bsp/buildroot/package/python-libconfig/python-libconfig.hash b/bsp/buildroot/package/python-libconfig/python-libconfig.hash new file mode 100644 index 00000000..38390434 --- /dev/null +++ b/bsp/buildroot/package/python-libconfig/python-libconfig.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 f4cfb7e60b8fcee32ca3392c99932c579038db0852c1c2c42d7c4b859eea3c5c python-libconfig-b271c3d9dac938ad5cd29b67bd08cc5536a5a391.tar.gz diff --git a/bsp/buildroot/package/python-lmdb/Config.in b/bsp/buildroot/package/python-lmdb/Config.in new file mode 100644 index 00000000..baf9bce5 --- /dev/null +++ b/bsp/buildroot/package/python-lmdb/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_LMDB + bool "python-lmdb" + select BR2_PACKAGE_PYTHON_CFFI # runtime + help + Universal Python binding for the LMDB 'Lightning' Database. + + https://pypi.python.org/pypi/lmdb diff --git a/bsp/buildroot/package/python-lmdb/python-lmdb.hash b/bsp/buildroot/package/python-lmdb/python-lmdb.hash new file mode 100644 index 00000000..7c294604 --- /dev/null +++ b/bsp/buildroot/package/python-lmdb/python-lmdb.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 abd2b2ae9ecf2fd1e1bc55ef4e8463b5910722fcd70a1bbf34a3e669a74a41a4 python-lmdb-py-lmdb_0.89.tar.gz diff --git a/bsp/buildroot/package/python-lmdb/python-lmdb.mk b/bsp/buildroot/package/python-lmdb/python-lmdb.mk new file mode 100644 index 00000000..62fb0465 --- /dev/null +++ b/bsp/buildroot/package/python-lmdb/python-lmdb.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-lmdb +# +################################################################################ + +PYTHON_LMDB_VERSION = py-lmdb_0.89 +PYTHON_LMDB_SITE = $(call github,dw,py-lmdb,$(PYTHON_LMDB_VERSION)) +PYTHON_LMDB_LICENSE = OLDAP-2.8 +PYTHON_LMDB_LICENSE_FILES = LICENSE +PYTHON_LMDB_SETUP_TYPE = setuptools +PYTHON_LMDB_DEPENDENCIES = host-python-cffi + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-lxml/python-lxml.hash b/bsp/buildroot/package/python-lxml/python-lxml.hash index 08402edd..4cace8e0 100644 --- a/bsp/buildroot/package/python-lxml/python-lxml.hash +++ b/bsp/buildroot/package/python-lxml/python-lxml.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 349f93e3a4b09cc59418854ab8013d027d246757c51744bf20069bc89016f578 lxml-3.5.0.tgz +sha256 9c74ca28a7f0c30dca8872281b3c47705e21217c8bc63912d95c9e2a7cac6bdf lxml-3.6.0.tgz diff --git a/bsp/buildroot/package/python-lxml/python-lxml.mk b/bsp/buildroot/package/python-lxml/python-lxml.mk index 8bfbb3bf..039fadd1 100644 --- a/bsp/buildroot/package/python-lxml/python-lxml.mk +++ b/bsp/buildroot/package/python-lxml/python-lxml.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_LXML_VERSION = 3.5.0 +PYTHON_LXML_VERSION = 3.6.0 PYTHON_LXML_SITE = http://lxml.de/files PYTHON_LXML_SOURCE = lxml-$(PYTHON_LXML_VERSION).tgz diff --git a/bsp/buildroot/package/python-m2crypto/0001-Don-t-try-to-build-with-SSLv2-when-it-is-not-availab.patch b/bsp/buildroot/package/python-m2crypto/0001-Don-t-try-to-build-with-SSLv2-when-it-is-not-availab.patch deleted file mode 100644 index 7210fa21..00000000 --- a/bsp/buildroot/package/python-m2crypto/0001-Don-t-try-to-build-with-SSLv2-when-it-is-not-availab.patch +++ /dev/null @@ -1,36 +0,0 @@ -From ac01b38302474920288c1a9eb63fd35fa8d1db5b Mon Sep 17 00:00:00 2001 -From: Bosse Klykken -Date: Tue, 17 Jul 2012 15:55:00 +0200 -Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20try=20to=20build=20with=20SSLv2?= - =?UTF-8?q?=20when=20it=20is=20not=20available.?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The patch originally from http://stackoverflow.com/a/11072709/164233 - -Fixes #30 - -Signed-off-by: Peter Korsgaard ---- - SWIG/_ssl.i | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/SWIG/_ssl.i b/SWIG/_ssl.i -index 3f6bd61..89b1ad1 100644 ---- a/SWIG/_ssl.i -+++ b/SWIG/_ssl.i -@@ -52,8 +52,10 @@ extern const char *SSL_alert_desc_string(int); - %rename(ssl_get_alert_desc_v) SSL_alert_desc_string_long; - extern const char *SSL_alert_desc_string_long(int); - -+#ifndef OPENSSL_NO_SSL2 - %rename(sslv2_method) SSLv2_method; - extern SSL_METHOD *SSLv2_method(void); -+#endif - %rename(sslv3_method) SSLv3_method; - extern SSL_METHOD *SSLv3_method(void); - %rename(sslv23_method) SSLv23_method; --- -2.7.0 - diff --git a/bsp/buildroot/package/python-m2crypto/python-m2crypto.hash b/bsp/buildroot/package/python-m2crypto/python-m2crypto.hash deleted file mode 100644 index a2603b98..00000000 --- a/bsp/buildroot/package/python-m2crypto/python-m2crypto.hash +++ /dev/null @@ -1,2 +0,0 @@ -# From https://pypi.python.org/pypi/M2Crypto/0.22.5 -md5 f84eb07aa1687f39bc26ee7b1ba5a105 M2Crypto-0.22.5.tar.gz diff --git a/bsp/buildroot/package/python-m2crypto/python-m2crypto.mk b/bsp/buildroot/package/python-m2crypto/python-m2crypto.mk deleted file mode 100644 index 04169579..00000000 --- a/bsp/buildroot/package/python-m2crypto/python-m2crypto.mk +++ /dev/null @@ -1,28 +0,0 @@ -################################################################################ -# -# python-m2crypto -# -################################################################################ - -PYTHON_M2CRYPTO_VERSION = 0.22.5 -PYTHON_M2CRYPTO_SITE = http://pypi.python.org/packages/source/M/M2Crypto -PYTHON_M2CRYPTO_SOURCE = M2Crypto-$(PYTHON_M2CRYPTO_VERSION).tar.gz -PYTHON_M2CRYPTO_SETUP_TYPE = setuptools -HOST_PYTHON_M2CRYPTO_DEPENDENCIES = host-openssl host-swig - -# We need to use python2 because m2crypto is not python3 compliant. -HOST_PYTHON_M2CRYPTO_NEEDS_HOST_PYTHON = python2 - -# The --openssl option that allows to specify a custom path to OpenSSL -# can only be used with the non-default build_ext setup.py command, -# and calling this command directly fails. To work around this, simply -# hardcode the path to OpenSSL in setup.py. -# Bug reported at https://gitlab.com/m2crypto/m2crypto/issues/89 -define HOST_PYTHON_M2CRYPTO_SET_OPENSSL_PATH - $(SED) "s%self.openssl = '/usr'%self.openssl = '$(HOST_DIR)/usr'%" \ - $(@D)/setup.py -endef - -HOST_PYTHON_M2CRYPTO_POST_PATCH_HOOKS += HOST_PYTHON_M2CRYPTO_SET_OPENSSL_PATH - -$(eval $(host-python-package)) diff --git a/bsp/buildroot/package/python-mad/python-mad.hash b/bsp/buildroot/package/python-mad/python-mad.hash new file mode 100644 index 00000000..ab91c3fe --- /dev/null +++ b/bsp/buildroot/package/python-mad/python-mad.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 1c9fc529b78de7d26e9e47cf182c9f8bf43838d8f62a9c1773540d57f5ebc522 pymad-0.6.tar.gz diff --git a/bsp/buildroot/package/python-mako/python-mako.hash b/bsp/buildroot/package/python-mako/python-mako.hash index 374be1a1..b6a74f3d 100644 --- a/bsp/buildroot/package/python-mako/python-mako.hash +++ b/bsp/buildroot/package/python-mako/python-mako.hash @@ -1,4 +1,3 @@ -# From https://pypi.python.org/pypi/Mako/1.0.3 -md5 a78f20f6366a8a0659ce5532f8614e53 Mako-1.0.3.tar.gz -# Locally computed -sha256 7644bc0ee35965d2e146dde31827b8982ed70a58281085fac42869a09764d38c Mako-1.0.3.tar.gz +# md5 from https://pypi.python.org/pypi/Mako/json, sha256 locally computed +md5 c5fc31a323dd4990683d2f2da02d4e20 Mako-1.0.4.tar.gz +sha256 fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059 Mako-1.0.4.tar.gz diff --git a/bsp/buildroot/package/python-mako/python-mako.mk b/bsp/buildroot/package/python-mako/python-mako.mk index 52679e05..88ce13ef 100644 --- a/bsp/buildroot/package/python-mako/python-mako.mk +++ b/bsp/buildroot/package/python-mako/python-mako.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_MAKO_VERSION = 1.0.3 +PYTHON_MAKO_VERSION = 1.0.4 PYTHON_MAKO_SOURCE = Mako-$(PYTHON_MAKO_VERSION).tar.gz -PYTHON_MAKO_SITE = https://pypi.python.org/packages/source/M/Mako +PYTHON_MAKO_SITE = https://pypi.python.org/packages/7a/ae/925434246ee90b42e8ef57d3b30a0ab7caf9a2de3e449b876c56dcb48155 PYTHON_MAKO_SETUP_TYPE = setuptools PYTHON_MAKO_LICENSE = MIT PYTHON_MAKO_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/python-markdown/python-markdown.hash b/bsp/buildroot/package/python-markdown/python-markdown.hash new file mode 100644 index 00000000..f1ffaaef --- /dev/null +++ b/bsp/buildroot/package/python-markdown/python-markdown.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 284e97e56db9ada03ede9c0ed2870ca6590ce7869f3119104d53510debf1533d Markdown-2.5.2.tar.gz diff --git a/bsp/buildroot/package/python-meld3/Config.in b/bsp/buildroot/package/python-meld3/Config.in index 8dee723e..9366b3cd 100644 --- a/bsp/buildroot/package/python-meld3/Config.in +++ b/bsp/buildroot/package/python-meld3/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_PYTHON_MELD3 bool "python-meld3" - depends on BR2_PACKAGE_PYTHON - select BR2_PACKAGE_PYTHON_PYEXPAT + select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 help A HTML/XML templating system. diff --git a/bsp/buildroot/package/python-meld3/python-meld3.hash b/bsp/buildroot/package/python-meld3/python-meld3.hash new file mode 100644 index 00000000..c7d9025e --- /dev/null +++ b/bsp/buildroot/package/python-meld3/python-meld3.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/meld3/json, sha256 locally computed +md5 3ccc78cd79cffd63a751ad7684c02c91 meld3-1.0.2.tar.gz +sha256 f7b754a0fde7a4429b2ebe49409db240b5699385a572501bb0d5627d299f9558 meld3-1.0.2.tar.gz diff --git a/bsp/buildroot/package/python-meld3/python-meld3.mk b/bsp/buildroot/package/python-meld3/python-meld3.mk index 3c8acbc7..529425c8 100644 --- a/bsp/buildroot/package/python-meld3/python-meld3.mk +++ b/bsp/buildroot/package/python-meld3/python-meld3.mk @@ -4,11 +4,11 @@ # ################################################################################ -PYTHON_MELD3_VERSION = 0.6.8 +PYTHON_MELD3_VERSION = 1.0.2 PYTHON_MELD3_SOURCE = meld3-$(PYTHON_MELD3_VERSION).tar.gz -PYTHON_MELD3_SITE = http://pypi.python.org/packages/source/m/meld3 +PYTHON_MELD3_SITE = https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f PYTHON_MELD3_LICENSE = ZPLv2.1 PYTHON_MELD3_LICENSE_FILES = COPYRIGHT.txt LICENSE.txt -PYTHON_MELD3_SETUP_TYPE = distutils +PYTHON_MELD3_SETUP_TYPE = setuptools $(eval $(python-package)) diff --git a/bsp/buildroot/package/python-mistune/python-mistune.hash b/bsp/buildroot/package/python-mistune/python-mistune.hash index b161e118..85096069 100644 --- a/bsp/buildroot/package/python-mistune/python-mistune.hash +++ b/bsp/buildroot/package/python-mistune/python-mistune.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=057bc28bf629d6a1283d680a34ed9d0f, sha256 locally computed. -md5 057bc28bf629d6a1283d680a34ed9d0f mistune-0.7.1.tar.gz -sha256 6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7 mistune-0.7.1.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=ed9ac03c99261bd1803e44ddaa4f87cb, sha256 locally computed. +md5 ed9ac03c99261bd1803e44ddaa4f87cb mistune-0.7.2.tar.gz +sha256 626f2516adcde4af608eaf83635ff20ff7e577c1898ad4d0f0fcd8c094399840 mistune-0.7.2.tar.gz diff --git a/bsp/buildroot/package/python-mistune/python-mistune.mk b/bsp/buildroot/package/python-mistune/python-mistune.mk index a1e57109..f0301a7e 100644 --- a/bsp/buildroot/package/python-mistune/python-mistune.mk +++ b/bsp/buildroot/package/python-mistune/python-mistune.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_MISTUNE_VERSION = 0.7.1 +PYTHON_MISTUNE_VERSION = 0.7.2 PYTHON_MISTUNE_SOURCE = mistune-$(PYTHON_MISTUNE_VERSION).tar.gz PYTHON_MISTUNE_SITE = http://pypi.python.org/packages/source/m/mistune PYTHON_MISTUNE_LICENSE = BSD-3c diff --git a/bsp/buildroot/package/python-msgpack/Config.in b/bsp/buildroot/package/python-msgpack/Config.in index 7206c227..7dfe8e81 100644 --- a/bsp/buildroot/package/python-msgpack/Config.in +++ b/bsp/buildroot/package/python-msgpack/Config.in @@ -13,5 +13,4 @@ config BR2_PACKAGE_PYTHON_MSGPACK comment "python-msgpack needs a toolchain w/ C++" depends on BR2_TOOLCHAIN_HAS_SYNC_4 - depends on BR2_PACKAGE_PYTHON depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-pam/Config.in b/bsp/buildroot/package/python-pam/Config.in index b23a8e01..02865d00 100644 --- a/bsp/buildroot/package/python-pam/Config.in +++ b/bsp/buildroot/package/python-pam/Config.in @@ -1,4 +1,4 @@ -comment "python-pam needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library" +comment "python-pam needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" depends on BR2_PACKAGE_PYTHON depends on !BR2_ENABLE_LOCALE || !BR2_USE_WCHAR || BR2_STATIC_LIBS || \ BR2_TOOLCHAIN_USES_MUSL @@ -8,6 +8,7 @@ config BR2_PACKAGE_PYTHON_PAM depends on BR2_PACKAGE_PYTHON # C extension not compatible with python3 depends on BR2_ENABLE_LOCALE # linux-pam depends on BR2_USE_WCHAR # linux-pam + depends on BR2_USE_MMU # linux-pam depends on !BR2_STATIC_LIBS # linux-pam depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam select BR2_PACKAGE_LINUX_PAM diff --git a/bsp/buildroot/package/python-pam/python-pam.hash b/bsp/buildroot/package/python-pam/python-pam.hash new file mode 100644 index 00000000..14a89484 --- /dev/null +++ b/bsp/buildroot/package/python-pam/python-pam.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 796ac019b9ee805696d0d277d8fb912fa2391b6ac070dc6f9f1a9a0fadbc3a5a PyPAM-0.5.0.tar.gz diff --git a/bsp/buildroot/package/python-pathtools/Config.in b/bsp/buildroot/package/python-pathtools/Config.in new file mode 100644 index 00000000..63777bd3 --- /dev/null +++ b/bsp/buildroot/package/python-pathtools/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_PATHTOOLS + bool "python-pathtools" + help + File system general utilities. + + http://github.com/gorakhargosh/pathtools diff --git a/bsp/buildroot/package/python-pathtools/python-pathtools.hash b/bsp/buildroot/package/python-pathtools/python-pathtools.hash new file mode 100644 index 00000000..1fa624df --- /dev/null +++ b/bsp/buildroot/package/python-pathtools/python-pathtools.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/pathtools/json +md5 9a1af5c605768ea5804b03b734ff0f82 pathtools-0.1.2.tar.gz +# sha256 calculated by scanpypi +sha256 7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0 pathtools-0.1.2.tar.gz diff --git a/bsp/buildroot/package/python-pathtools/python-pathtools.mk b/bsp/buildroot/package/python-pathtools/python-pathtools.mk new file mode 100644 index 00000000..2b4a2711 --- /dev/null +++ b/bsp/buildroot/package/python-pathtools/python-pathtools.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pathtools +# +################################################################################ + +PYTHON_PATHTOOLS_VERSION = 0.1.2 +PYTHON_PATHTOOLS_SOURCE = pathtools-$(PYTHON_PATHTOOLS_VERSION).tar.gz +PYTHON_PATHTOOLS_SITE = https://pypi.python.org/packages/e7/7f/470d6fcdf23f9f3518f6b0b76be9df16dcc8630ad409947f8be2eb0ed13a +PYTHON_PATHTOOLS_SETUP_TYPE = setuptools +PYTHON_PATHTOOLS_LICENSE = MIT +PYTHON_PATHTOOLS_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pathvalidate/Config.in b/bsp/buildroot/package/python-pathvalidate/Config.in new file mode 100644 index 00000000..d70e34a0 --- /dev/null +++ b/bsp/buildroot/package/python-pathvalidate/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_PYTHON_PATHVALIDATE + bool "python-pathvalidate" + select BR2_PACKAGE_PYTHON_DATAPROPERTY # runtime + help + pathvalidate is a python library to validate/sanitize a string + such as filename/variable-name. + + https://github.com/thombashi/pathvalidate diff --git a/bsp/buildroot/package/python-pathvalidate/python-pathvalidate.hash b/bsp/buildroot/package/python-pathvalidate/python-pathvalidate.hash new file mode 100644 index 00000000..90208f43 --- /dev/null +++ b/bsp/buildroot/package/python-pathvalidate/python-pathvalidate.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/pathvalidate/json +md5 d3d89abc6c053b4182be29c23beccf26 pathvalidate-0.4.2.tar.gz +# sha256 calculated locally +sha256 4316cf5f862b70efd7792b98f46871592b80924840da69a28df1921d7702fcf9 pathvalidate-0.4.2.tar.gz diff --git a/bsp/buildroot/package/python-pathvalidate/python-pathvalidate.mk b/bsp/buildroot/package/python-pathvalidate/python-pathvalidate.mk new file mode 100644 index 00000000..0c7cc76d --- /dev/null +++ b/bsp/buildroot/package/python-pathvalidate/python-pathvalidate.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pathvalidate +# +################################################################################ + +PYTHON_PATHVALIDATE_VERSION = 0.4.2 +PYTHON_PATHVALIDATE_SOURCE = pathvalidate-$(PYTHON_PATHVALIDATE_VERSION).tar.gz +PYTHON_PATHVALIDATE_SITE = https://pypi.python.org/packages/fd/b9/726269557d5846f253f7ecec483d801582a27b77852a76e2dc9c61dba2b6 +PYTHON_PATHVALIDATE_SETUP_TYPE = setuptools +PYTHON_PATHVALIDATE_LICENSE = MIT +PYTHON_PATHVALIDATE_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pexpect/Config.in b/bsp/buildroot/package/python-pexpect/Config.in new file mode 100644 index 00000000..58a3af57 --- /dev/null +++ b/bsp/buildroot/package/python-pexpect/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_PYTHON_PEXPECT + bool "python-pexpect" + select BR2_PACKAGE_PYTHON_PTYPROCESS # runtime + help + Pexpect is a pure Python module for spawning child + applications; controlling them; and responding to expected + patterns in their output. Pexpect works like Don Libes’ + Expect. Pexpect allows your script to spawn a child + application and control it as if a human were typing + commands. + + https://pexpect.readthedocs.org diff --git a/bsp/buildroot/package/python-pexpect/python-pexpect.hash b/bsp/buildroot/package/python-pexpect/python-pexpect.hash new file mode 100644 index 00000000..29cf892a --- /dev/null +++ b/bsp/buildroot/package/python-pexpect/python-pexpect.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org, sha256 locally computed +md5 056df81e6ca7081f1015b4b147b977b7 pexpect-4.0.1.tar.gz +sha256 232795ebcaaf2e120396dbbaa3a129eda51757eeaae1911558f4ef8ee414fc6c pexpect-4.0.1.tar.gz diff --git a/bsp/buildroot/package/python-pexpect/python-pexpect.mk b/bsp/buildroot/package/python-pexpect/python-pexpect.mk new file mode 100644 index 00000000..40a1741f --- /dev/null +++ b/bsp/buildroot/package/python-pexpect/python-pexpect.mk @@ -0,0 +1,24 @@ +################################################################################ +# +# python-pexpect +# +################################################################################ + +PYTHON_PEXPECT_VERSION = 4.0.1 +PYTHON_PEXPECT_SITE = https://pypi.python.org/packages/source/p/pexpect +PYTHON_PEXPECT_SOURCE = pexpect-$(PYTHON_PEXPECT_VERSION).tar.gz +PYTHON_PEXPECT_LICENSE = ISC +PYTHON_PEXPECT_LICENSE_FILES = LICENSE +PYTHON_PEXPECT_SETUP_TYPE = distutils + +# async.py is not usable with Python 2, and removing is the solution +# recommended by upstream: +# https://github.com/pexpect/pexpect/issues/290 +ifeq ($(BR2_PACKAGE_PYTHON),y) +define PYTHON_PEXPECT_REMOVE_ASYNC_PY + $(RM) $(@D)/pexpect/async.py +endef +PYTHON_PEXPECT_POST_PATCH_HOOKS += PYTHON_PEXPECT_REMOVE_ASYNC_PY +endif + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pillow/Config.in b/bsp/buildroot/package/python-pillow/Config.in new file mode 100644 index 00000000..3820ba8f --- /dev/null +++ b/bsp/buildroot/package/python-pillow/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_PYTHON_PILLOW + bool "python-pillow" + help + Pillow is the "friendly" PIL fork by Alex Clark and + Contributors. PIL is the Python Imaging Library by Fredrik + Lundh and Contributors. + + Pillow relies on external libraries to provide support + various image formats. Select the corresponding package(s) + to get this support. Pillow can use jpeg, zlib (for PNG), + tiff, freetype, webp, and openjpeg (JPEG-2000). + + https://pypi.python.org/pypi/Pillow/ diff --git a/bsp/buildroot/package/python-pillow/python-pillow.hash b/bsp/buildroot/package/python-pillow/python-pillow.hash new file mode 100644 index 00000000..bf7828db --- /dev/null +++ b/bsp/buildroot/package/python-pillow/python-pillow.hash @@ -0,0 +1,4 @@ +# https://pypi.python.org/pypi?:action=show_md5&digest=b5a15b03bf402fe254636c015fcf04da +md5 b5a15b03bf402fe254636c015fcf04da Pillow-3.3.0.tar.gz +# sha256 locally computed +sha256 031e7c9c885a4f343d1ad366c7fd2340449dc70318acb4a28d6411994f0accd1 Pillow-3.3.0.tar.gz diff --git a/bsp/buildroot/package/python-pillow/python-pillow.mk b/bsp/buildroot/package/python-pillow/python-pillow.mk new file mode 100644 index 00000000..619c55b8 --- /dev/null +++ b/bsp/buildroot/package/python-pillow/python-pillow.mk @@ -0,0 +1,73 @@ +################################################################################ +# +# python-pillow +# +################################################################################ + +PYTHON_PILLOW_VERSION = 3.3.0 +PYTHON_PILLOW_SOURCE = Pillow-$(PYTHON_PILLOW_VERSION).tar.gz +PYTHON_PILLOW_SITE = https://pypi.python.org/packages/e0/27/f61098a12f14690689924de93ffdd101463083a80bf8ff3e0c218addf05b +PYTHON_PILLOW_LICENSE = PIL Software License +PYTHON_PILLOW_LICENSE_FILES = LICENSE +PYTHON_PILLOW_SETUP_TYPE = setuptools +PYTHON_PILLOW_BUILD_OPTS = --disable-platform-guessing + +ifeq ($(BR2_PACKAGE_FREETYPE),y) +PYTHON_PILLOW_DEPENDENCIES += freetype +PYTHON_PILLOW_BUILD_OPTS += --enable-freetype +else +PYTHON_PILLOW_BUILD_OPTS += --disable-freetype +endif + +ifeq ($(BR2_PACKAGE_JPEG),y) +PYTHON_PILLOW_DEPENDENCIES += jpeg +PYTHON_PILLOW_BUILD_OPTS += --enable-jpeg +else +PYTHON_PILLOW_BUILD_OPTS += --disable-jpeg +endif + +ifeq ($(BR2_PACKAGE_OPENJPEG),y) +PYTHON_PILLOW_DEPENDENCIES += openjpeg +PYTHON_PILLOW_BUILD_OPTS += --enable-jpeg2000 +else +PYTHON_PILLOW_BUILD_OPTS += --disable-jpeg2000 +endif + +ifeq ($(BR2_PACKAGE_TIFF),y) +PYTHON_PILLOW_DEPENDENCIES += tiff +PYTHON_PILLOW_BUILD_OPTS += --enable-tiff +else +PYTHON_PILLOW_BUILD_OPTS += --disable-tiff +endif + +ifeq ($(BR2_PACKAGE_WEBP),y) +PYTHON_PILLOW_DEPENDENCIES += webp +PYTHON_PILLOW_BUILD_OPTS += --enable-webp +else +PYTHON_PILLOW_BUILD_OPTS += --disable-webp +endif + +ifeq ($(BR2_PACKAGE_ZLIB),y) +PYTHON_PILLOW_DEPENDENCIES += zlib +PYTHON_PILLOW_BUILD_OPTS += --enable-zlib +else +PYTHON_PILLOW_BUILD_OPTS += --disable-zlib +endif + +define PYTHON_PILLOW_BUILD_CMDS + cd $(PYTHON_PILLOW_BUILDDIR); \ + $(PYTHON_PILLOW_BASE_ENV) $(PYTHON_PILLOW_ENV) \ + $(PYTHON_PILLOW_PYTHON_INTERPRETER) setup.py build_ext \ + $(PYTHON_PILLOW_BASE_BUILD_OPTS) $(PYTHON_PILLOW_BUILD_OPTS) +endef + +define PYTHON_PILLOW_INSTALL_TARGET_CMDS + cd $(PYTHON_PILLOW_BUILDDIR); \ + $(PYTHON_PILLOW_BASE_ENV) $(PYTHON_PILLOW_ENV) \ + $(PYTHON_PILLOW_PYTHON_INTERPRETER) setup.py build_ext \ + $(PYTHON_PILLOW_BUILD_OPTS) install \ + $(PYTHON_PILLOW_BASE_INSTALL_TARGET_OPTS) \ + $(PYTHON_PILLOW_INSTALL_TARGET_OPTS) +endef + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-posix-ipc/python-posix-ipc.hash b/bsp/buildroot/package/python-posix-ipc/python-posix-ipc.hash new file mode 100644 index 00000000..95ef4da6 --- /dev/null +++ b/bsp/buildroot/package/python-posix-ipc/python-posix-ipc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 24e092ba995122869a2fca46a2579b1b2824cfdcb2ecc6938e2923a120460646 posix_ipc-0.9.6.tar.gz diff --git a/bsp/buildroot/package/python-prompt-toolkit/Config.in b/bsp/buildroot/package/python-prompt-toolkit/Config.in new file mode 100644 index 00000000..ccc9ebb0 --- /dev/null +++ b/bsp/buildroot/package/python-prompt-toolkit/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_PROMPT_TOOLKIT + bool "python-prompt-toolkit" + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_WCWIDTH # runtime + help + Library for building powerful interactive command lines in + Python. + + https://github.com/jonathanslenders/python-prompt-toolkit diff --git a/bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.hash b/bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.hash new file mode 100644 index 00000000..f33e99a3 --- /dev/null +++ b/bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/prompt_toolkit/json, sha256 locally computed +md5 6c4133d099603f496c761491043bf0ef prompt_toolkit-1.0.3.tar.gz +sha256 805e026f0cbad27467e93f9dd3e3777718d401a62788c1e84ca038e967ad8ba2 prompt_toolkit-1.0.3.tar.gz diff --git a/bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.mk b/bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.mk new file mode 100644 index 00000000..634f20ea --- /dev/null +++ b/bsp/buildroot/package/python-prompt-toolkit/python-prompt-toolkit.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-prompt-toolkit +# +################################################################################ + +PYTHON_PROMPT_TOOLKIT_VERSION = 1.0.3 +PYTHON_PROMPT_TOOLKIT_SOURCE = prompt_toolkit-$(PYTHON_PROMPT_TOOLKIT_VERSION).tar.gz +PYTHON_PROMPT_TOOLKIT_SITE = https://pypi.python.org/packages/8d/de/412f23919929c01e6b55183e124623f705e4b91796d3d2dce2cb53d595ad +PYTHON_PROMPT_TOOLKIT_SETUP_TYPE = setuptools +PYTHON_PROMPT_TOOLKIT_LICENSE = BSD-3c +PYTHON_PROMPT_TOOLKIT_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-protobuf/python-protobuf.hash b/bsp/buildroot/package/python-protobuf/python-protobuf.hash new file mode 100644 index 00000000..ab4bf5bf --- /dev/null +++ b/bsp/buildroot/package/python-protobuf/python-protobuf.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 2667b7cda4a6bc8a09e5463adf3b5984e08d94e72338277affa8594d8b6e5cd1 protobuf-v2.6.1.tar.gz diff --git a/bsp/buildroot/package/python-psutil/python-psutil.hash b/bsp/buildroot/package/python-psutil/python-psutil.hash index 21de357b..007b7c50 100644 --- a/bsp/buildroot/package/python-psutil/python-psutil.hash +++ b/bsp/buildroot/package/python-psutil/python-psutil.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=53d18a5a2aff970d5658c22921c2bbe6, sha256 locally computed -md5 53d18a5a2aff970d5658c22921c2bbe6 psutil-3.4.2.tar.gz -sha256 b17fa01aa766daa388362d0eda5c215d77e03a8d37676b68971f37bf3913b725 psutil-3.4.2.tar.gz +# md5 from https://pypi.python.org/pypi/psutil/json, sha256 locally computed +md5 ca97cf5f09c07b075a12a68b9d44a67d psutil-4.3.0.tar.gz +sha256 86197ae5978f216d33bfff4383d5cc0b80f079d09cf45a2a406d1abb5d0299f0 psutil-4.3.0.tar.gz diff --git a/bsp/buildroot/package/python-psutil/python-psutil.mk b/bsp/buildroot/package/python-psutil/python-psutil.mk index 3570ff4f..85882adc 100644 --- a/bsp/buildroot/package/python-psutil/python-psutil.mk +++ b/bsp/buildroot/package/python-psutil/python-psutil.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_PSUTIL_VERSION = 3.4.2 +PYTHON_PSUTIL_VERSION = 4.3.0 PYTHON_PSUTIL_SOURCE = psutil-$(PYTHON_PSUTIL_VERSION).tar.gz -PYTHON_PSUTIL_SITE = http://pypi.python.org/packages/source/p/psutil +PYTHON_PSUTIL_SITE = https://pypi.python.org/packages/22/a8/6ab3f0b3b74a36104785808ec874d24203c6a511ffd2732dd215cf32d689 PYTHON_PSUTIL_SETUP_TYPE = setuptools PYTHON_PSUTIL_LICENSE = BSD-3c PYTHON_PSUTIL_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/python-ptyprocess/Config.in b/bsp/buildroot/package/python-ptyprocess/Config.in new file mode 100644 index 00000000..b95dacbd --- /dev/null +++ b/bsp/buildroot/package/python-ptyprocess/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_PTYPROCESS + bool "python-ptyprocess" + help + Launch a subprocess in a pseudo terminal (pty), and interact + with both the process and its pty. + + https://github.com/pexpect/ptyprocess diff --git a/bsp/buildroot/package/python-ptyprocess/python-ptyprocess.hash b/bsp/buildroot/package/python-ptyprocess/python-ptyprocess.hash new file mode 100644 index 00000000..0e2e0aed --- /dev/null +++ b/bsp/buildroot/package/python-ptyprocess/python-ptyprocess.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org, sha256 locally computed +md5 94e537122914cc9ec9c1eadcd36e73a1 ptyprocess-0.5.1.tar.gz +sha256 0530ce63a9295bfae7bd06edc02b6aa935619f486f0f1dc0972f516265ee81a6 ptyprocess-0.5.1.tar.gz diff --git a/bsp/buildroot/package/python-ptyprocess/python-ptyprocess.mk b/bsp/buildroot/package/python-ptyprocess/python-ptyprocess.mk new file mode 100644 index 00000000..59329d01 --- /dev/null +++ b/bsp/buildroot/package/python-ptyprocess/python-ptyprocess.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-ptyprocess +# +################################################################################ + +PYTHON_PTYPROCESS_VERSION = 0.5.1 +PYTHON_PTYPROCESS_SITE = https://pypi.python.org/packages/source/p/ptyprocess +PYTHON_PTYPROCESS_SOURCE = ptyprocess-$(PYTHON_PTYPROCESS_VERSION).tar.gz +PYTHON_PTYPROCESS_LICENSE = ISC +PYTHON_PTYPROCESS_LICENSE_FILES = LICENSE +PYTHON_PTYPROCESS_SETUP_TYPE = distutils + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pyasn-modules/Config.in b/bsp/buildroot/package/python-pyasn-modules/Config.in new file mode 100644 index 00000000..387020d9 --- /dev/null +++ b/bsp/buildroot/package/python-pyasn-modules/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_PYTHON_PYASN_MODULES + bool "python-pyasn-modules" + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_PYASN # runtime + help + A collection of ASN.1-based protocols modules. + + https://pypi.python.org/pypi/pyasn1-modules + +comment "python-pyasn-modules needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.hash b/bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.hash new file mode 100644 index 00000000..6d9a7079 --- /dev/null +++ b/bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=178129bc7fbf07215c25230c5f053f81, sha256 locally computed. +md5 178129bc7fbf07215c25230c5f053f81 pyasn1-modules-0.0.8.tar.gz +sha256 10561934f1829bcc455c7ecdcdacdb4be5ffd3696f26f468eb6eb41e107f3837 pyasn1-modules-0.0.8.tar.gz diff --git a/bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.mk b/bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.mk new file mode 100644 index 00000000..bb32227a --- /dev/null +++ b/bsp/buildroot/package/python-pyasn-modules/python-pyasn-modules.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pyasn-modules +# +################################################################################ + +PYTHON_PYASN_MODULES_VERSION = 0.0.8 +PYTHON_PYASN_MODULES_SOURCE = pyasn1-modules-$(PYTHON_PYASN_MODULES_VERSION).tar.gz +PYTHON_PYASN_MODULES_SITE = http://pypi.python.org/packages/source/p/pyasn1-modules +PYTHON_PYASN_MODULES_LICENSE = BSD-2c +PYTHON_PYASN_MODULES_LICENSE_FILES = LICENSE.txt +PYTHON_PYASN_MODULES_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pycparser/Config.in b/bsp/buildroot/package/python-pycparser/Config.in new file mode 100644 index 00000000..49190c34 --- /dev/null +++ b/bsp/buildroot/package/python-pycparser/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_PYCPARSER + bool "python-pycparser" + help + C parser in Python + + https://github.com/eliben/pycparser diff --git a/bsp/buildroot/package/python-pycparser/python-pycparser.mk b/bsp/buildroot/package/python-pycparser/python-pycparser.mk index 328bc8a1..a32f1aa2 100644 --- a/bsp/buildroot/package/python-pycparser/python-pycparser.mk +++ b/bsp/buildroot/package/python-pycparser/python-pycparser.mk @@ -11,4 +11,5 @@ PYTHON_PYCPARSER_SETUP_TYPE = setuptools PYTHON_PYCPARSER_LICENSE = BSD-3c PYTHON_PYCPARSER_LICENSE_FILES = LICENSE +$(eval $(python-package)) $(eval $(host-python-package)) diff --git a/bsp/buildroot/package/python-pycrypto/python-pycrypto.hash b/bsp/buildroot/package/python-pycrypto/python-pycrypto.hash index e7f809a7..46378945 100644 --- a/bsp/buildroot/package/python-pycrypto/python-pycrypto.hash +++ b/bsp/buildroot/package/python-pycrypto/python-pycrypto.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 7293c9d7e8af2e44a82f86eb9c3b058880f4bcc884bf3ad6c8a34b64986edde8 pycrypto-2.6.tar.gz +sha256 f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c pycrypto-2.6.1.tar.gz diff --git a/bsp/buildroot/package/python-pycrypto/python-pycrypto.mk b/bsp/buildroot/package/python-pycrypto/python-pycrypto.mk index bb69f41b..927ba918 100644 --- a/bsp/buildroot/package/python-pycrypto/python-pycrypto.mk +++ b/bsp/buildroot/package/python-pycrypto/python-pycrypto.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_PYCRYPTO_VERSION = 2.6 +PYTHON_PYCRYPTO_VERSION = 2.6.1 PYTHON_PYCRYPTO_SOURCE = pycrypto-$(PYTHON_PYCRYPTO_VERSION).tar.gz PYTHON_PYCRYPTO_SITE = http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto PYTHON_PYCRYPTO_SETUP_TYPE = distutils @@ -22,9 +22,11 @@ define PYTHON_PYCRYPTO_RENAME_LICENSE mv $(@D)/LEGAL/copy/LICENSE.orig $(@D)/LEGAL/copy/LICENSE.original endef PYTHON_PYCRYPTO_POST_EXTRACT_HOOKS += PYTHON_PYCRYPTO_RENAME_LICENSE +HOST_PYTHON_PYCRYPTO_POST_EXTRACT_HOOKS += PYTHON_PYCRYPTO_RENAME_LICENSE PYTHON_PYCRYPTO_LICENSE_FILES += LEGAL/copy/LICENSE.original PYTHON_PYCRYPTO_DEPENDENCIES = gmp +HOST_PYTHON_PYCRYPTO_DEPENDENCIES = host-gmp # The configure step needs to be run outside of the setup.py since it isn't # run correctly for cross-compiling @@ -44,3 +46,4 @@ define PYTHON_PYCRYPTO_CONFIGURE_CMDS endef $(eval $(python-package)) +$(eval $(host-python-package)) diff --git a/bsp/buildroot/package/python-pydal/python-pydal.hash b/bsp/buildroot/package/python-pydal/python-pydal.hash new file mode 100644 index 00000000..bb366176 --- /dev/null +++ b/bsp/buildroot/package/python-pydal/python-pydal.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e59c050c4b7656c36351707dfbbae187645d46327e67e42415e15b3bc32d48b3 python-pydal-v15.07.tar.gz diff --git a/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.hash b/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.hash index b6d0cca4..9726f9f7 100644 --- a/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.hash +++ b/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=0c6f7c447fb702af4d5ca0123003c9fd, sha256 locally computed -md5 0c6f7c447fb702af4d5ca0123003c9fd pyftpdlib-1.5.0.tar.gz -sha256 0111127418e9012a8e9e6c05a0c64af1acef8c31128834805fb0f9a49c746261 pyftpdlib-1.5.0.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=61b23e2362df23d0dfa5fe76f6e2ab55, sha256 locally computed +md5 61b23e2362df23d0dfa5fe76f6e2ab55 pyftpdlib-1.5.1.tar.gz +sha256 7bcd7fc825123414a157718c6dcdcb0978208d3c865d4650564acef4acce3354 pyftpdlib-1.5.1.tar.gz diff --git a/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.mk b/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.mk index 11e24e21..85d0b56a 100644 --- a/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.mk +++ b/bsp/buildroot/package/python-pyftpdlib/python-pyftpdlib.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_PYFTPDLIB_VERSION = 1.5.0 +PYTHON_PYFTPDLIB_VERSION = 1.5.1 PYTHON_PYFTPDLIB_SOURCE = pyftpdlib-$(PYTHON_PYFTPDLIB_VERSION).tar.gz -PYTHON_PYFTPDLIB_SITE = https://pypi.python.org/packages/source/p/pyftpdlib +PYTHON_PYFTPDLIB_SITE = https://pypi.python.org/packages/a8/f8/0f6db156898616dbcbd7bf865660295c81479071ab0fcd1898fe1b3a4fc4 PYTHON_PYFTPDLIB_SETUP_TYPE = setuptools PYTHON_PYFTPDLIB_LICENSE = MIT PYTHON_PYFTPDLIB_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/python-pygame/python-pygame.mk b/bsp/buildroot/package/python-pygame/python-pygame.mk index 995f80ad..1ef2bdf6 100644 --- a/bsp/buildroot/package/python-pygame/python-pygame.mk +++ b/bsp/buildroot/package/python-pygame/python-pygame.mk @@ -6,7 +6,7 @@ # stable 1.9.1 release requires V4L which has been wiped out of recent Linux # kernels, so use latest mercurial revision until next stable release is out. -PYTHON_PYGAME_VERSION = f0bb4a4b365d +PYTHON_PYGAME_VERSION = d61ea8eabd56 PYTHON_PYGAME_SOURCE = pygame-$(PYTHON_PYGAME_VERSION).tar.gz PYTHON_PYGAME_SITE = https://bitbucket.org/pygame/pygame PYTHON_PYGAME_SITE_METHOD = hg @@ -66,6 +66,10 @@ define PYTHON_PYGAME_UNCONFIGURE_SCRAP endef endif +define PYTHON_PYGAME_UNCONFIGURE_FREETYPE + $(SED) 's/^_freetype/#_freetype/' $(@D)/Setup +endef + PYTHON_PYGAME_SDL_FLAGS = `$(STAGING_DIR)/usr/bin/sdl-config --cflags` PYTHON_PYGAME_SDL_FLAGS += `$(STAGING_DIR)/usr/bin/sdl-config --libs` @@ -82,6 +86,7 @@ define PYTHON_PYGAME_CONFIGURE_CMDS $(PYTHON_PYGAME_UNCONFIGURE_SURFARRAY) $(PYTHON_PYGAME_UNCONFIGURE_MOVIE) $(PYTHON_PYGAME_UNCONFIGURE_SCRAP) + $(PYTHON_PYGAME_UNCONFIGURE_FREETYPE) endef define PYTHON_PYGAME_REMOVE_DOC diff --git a/bsp/buildroot/package/python-pygments/Config.in b/bsp/buildroot/package/python-pygments/Config.in new file mode 100644 index 00000000..f097c523 --- /dev/null +++ b/bsp/buildroot/package/python-pygments/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_PYGMENTS + bool "python-pygments" + help + Pygments is a syntax highlighting package written in Python. + + https://pypi.python.org/pypi/Pygments diff --git a/bsp/buildroot/package/python-pygments/python-pygments.hash b/bsp/buildroot/package/python-pygments/python-pygments.hash new file mode 100644 index 00000000..bb954dd5 --- /dev/null +++ b/bsp/buildroot/package/python-pygments/python-pygments.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=84533d22f72de894f6d3907c3ca9eddf, sha256 locally computed. +md5 84533d22f72de894f6d3907c3ca9eddf Pygments-2.1.tar.gz +sha256 13a0ef5fafd7b16cf995bc28fe7aab0780dab1b2fda0fc89e033709af8b8a47b Pygments-2.1.tar.gz diff --git a/bsp/buildroot/package/python-pygments/python-pygments.mk b/bsp/buildroot/package/python-pygments/python-pygments.mk new file mode 100644 index 00000000..eafd7759 --- /dev/null +++ b/bsp/buildroot/package/python-pygments/python-pygments.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pygments +# +################################################################################ + +PYTHON_PYGMENTS_VERSION = 2.1 +PYTHON_PYGMENTS_SOURCE = Pygments-$(PYTHON_PYGMENTS_VERSION).tar.gz +PYTHON_PYGMENTS_SITE = http://pypi.python.org/packages/source/P/Pygments +PYTHON_PYGMENTS_LICENSE = BSD-2c +PYTHON_PYGMENTS_LICENSE_FILES = LICENSE +PYTHON_PYGMENTS_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pyinotify/python-pyinotify.hash b/bsp/buildroot/package/python-pyinotify/python-pyinotify.hash new file mode 100644 index 00000000..2bcf0541 --- /dev/null +++ b/bsp/buildroot/package/python-pyinotify/python-pyinotify.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 7943f198c5cef2bdc121d847937fbe565daaa7d4daaf1b8de8ef5689812f481c python-pyinotify-0.9.6.tar.gz diff --git a/bsp/buildroot/package/python-pymysql/Config.in b/bsp/buildroot/package/python-pymysql/Config.in new file mode 100644 index 00000000..75b447cb --- /dev/null +++ b/bsp/buildroot/package/python-pymysql/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_PYMYSQL + bool "python-pymysql" + help + PyMySQL is a pure-Python MySQL client library. It follows + the DB-API 2.0. + + https://pypi.python.org/pypi/PyMySQL/ diff --git a/bsp/buildroot/package/python-pymysql/python-pymysql.hash b/bsp/buildroot/package/python-pymysql/python-pymysql.hash new file mode 100644 index 00000000..fc7e5e3e --- /dev/null +++ b/bsp/buildroot/package/python-pymysql/python-pymysql.hash @@ -0,0 +1,4 @@ +#md5 from https://pypi.python.org/pypi?:action=show_md5&digest=6d757cda8bfbd312714207f7c0bef5c7 +md5 6d757cda8bfbd312714207f7c0bef5c7 PyMySQL-0.7.2.tar.gz +# Locally calculated: +sha256 bd7acb4990dbf097fae3417641f93e25c690e01ed25c3ed32ea638d6c3ac04ba PyMySQL-0.7.2.tar.gz diff --git a/bsp/buildroot/package/python-pymysql/python-pymysql.mk b/bsp/buildroot/package/python-pymysql/python-pymysql.mk new file mode 100644 index 00000000..e58ff7e8 --- /dev/null +++ b/bsp/buildroot/package/python-pymysql/python-pymysql.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pymysql +# +################################################################################ + +PYTHON_PYMYSQL_VERSION = 0.7.2 +PYTHON_PYMYSQL_SOURCE = PyMySQL-$(PYTHON_PYMYSQL_VERSION).tar.gz +PYTHON_PYMYSQL_SITE = https://pypi.python.org/packages/source/P/PyMySQL +PYTHON_PYMYSQL_LICENSE = MIT +PYTHON_PYMYSQL_LICENSE_FILES = LICENSE +PYTHON_PYMYSQL_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pynacl/Config.in b/bsp/buildroot/package/python-pynacl/Config.in new file mode 100644 index 00000000..5a53648c --- /dev/null +++ b/bsp/buildroot/package/python-pynacl/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_PYNACL + bool "python-pynacl" + select BR2_PACKAGE_LIBSODIUM + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_CFFI # runtime + help + Python binding to the Networking and Cryptography (NaCl) library. + + https://pypi.python.org/pypi/PyNaCl diff --git a/bsp/buildroot/package/python-pynacl/python-pynacl.hash b/bsp/buildroot/package/python-pynacl/python-pynacl.hash new file mode 100644 index 00000000..7035ac76 --- /dev/null +++ b/bsp/buildroot/package/python-pynacl/python-pynacl.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=12fd03d8ce64e0318cb1c69272f17704, sha256 locally computed. +md5 12fd03d8ce64e0318cb1c69272f17704 PyNaCl-1.0.1.tar.gz +sha256 d21d7a7358a85fb9b9ddadfbd1176c40fe199334fe2202881255e77f6d3773f4 PyNaCl-1.0.1.tar.gz diff --git a/bsp/buildroot/package/python-pynacl/python-pynacl.mk b/bsp/buildroot/package/python-pynacl/python-pynacl.mk new file mode 100644 index 00000000..e1769b8f --- /dev/null +++ b/bsp/buildroot/package/python-pynacl/python-pynacl.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# python-pynacl +# +################################################################################ + +PYTHON_PYNACL_VERSION = 1.0.1 +PYTHON_PYNACL_SOURCE = PyNaCl-$(PYTHON_PYNACL_VERSION).tar.gz +PYTHON_PYNACL_SITE = http://pypi.python.org/packages/source/P/PyNaCl +PYTHON_PYNACL_LICENSE = Apache-2.0 +PYTHON_PYNACL_LICENSE_FILES = LICENSE +PYTHON_PYNACL_SETUP_TYPE = setuptools +PYTHON_PYNACL_DEPENDENCIES = libsodium host-python-cffi +PYTHON_PYNACL_ENV = SODIUM_INSTALL=system + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pyopenssl/Config.in b/bsp/buildroot/package/python-pyopenssl/Config.in new file mode 100644 index 00000000..c32e211e --- /dev/null +++ b/bsp/buildroot/package/python-pyopenssl/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_PYTHON_PYOPENSSL + bool "python-pyopenssl" + depends on BR2_INSTALL_LIBSTDCPP # python-cryptography + select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime + select BR2_PACKAGE_PYTHON_SIX # runtime + help + Python wrapper module around the OpenSSL library. + + https://github.com/pyca/pyopenssl + +comment "python-pyopenssl needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-pyopenssl/python-pyopenssl.hash b/bsp/buildroot/package/python-pyopenssl/python-pyopenssl.hash new file mode 100644 index 00000000..27427d2a --- /dev/null +++ b/bsp/buildroot/package/python-pyopenssl/python-pyopenssl.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=9587d813dcf656e9f2760e41a3682dc3, sha256 locally computed +md5 9587d813dcf656e9f2760e41a3682dc3 pyOpenSSL-16.0.0.tar.gz +sha256 363d10ee43d062285facf4e465f4f5163f9f702f9134f0a5896f134cbb92d17d pyOpenSSL-16.0.0.tar.gz diff --git a/bsp/buildroot/package/python-pyopenssl/python-pyopenssl.mk b/bsp/buildroot/package/python-pyopenssl/python-pyopenssl.mk new file mode 100644 index 00000000..76064111 --- /dev/null +++ b/bsp/buildroot/package/python-pyopenssl/python-pyopenssl.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pyopenssl +# +################################################################################ + +PYTHON_PYOPENSSL_VERSION = 16.0.0 +PYTHON_PYOPENSSL_SOURCE = pyOpenSSL-$(PYTHON_PYOPENSSL_VERSION).tar.gz +PYTHON_PYOPENSSL_SITE = https://pypi.python.org/packages/source/p/pyOpenSSL +PYTHON_PYOPENSSL_LICENSE = Apache-2.0 +PYTHON_PYOPENSSL_LICENSE_FILES = LICENSE +PYTHON_PYOPENSSL_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pypcap/python-pypcap.hash b/bsp/buildroot/package/python-pypcap/python-pypcap.hash new file mode 100644 index 00000000..30ddfab4 --- /dev/null +++ b/bsp/buildroot/package/python-pypcap/python-pypcap.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 5716d97b39d40b79daf7b0c6a8c8c514f5f1de8f20561c8621ee62a90b93fb03 python-pypcap-6f46e7bf29a648256ddc732a7d0ec83d3ffca390.tar.gz diff --git a/bsp/buildroot/package/python-pyro/python-pyro.hash b/bsp/buildroot/package/python-pyro/python-pyro.hash new file mode 100644 index 00000000..65ff0ae4 --- /dev/null +++ b/bsp/buildroot/package/python-pyro/python-pyro.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 f01e32f8d1c3f427c4916e13d9e8cee24dbf924f72922a06591515911bd13756 Pyro-3.14.tar.gz diff --git a/bsp/buildroot/package/python-pyroute2/python-pyroute2.hash b/bsp/buildroot/package/python-pyroute2/python-pyroute2.hash index 97849270..df9ff02c 100644 --- a/bsp/buildroot/package/python-pyroute2/python-pyroute2.hash +++ b/bsp/buildroot/package/python-pyroute2/python-pyroute2.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=09cf70377ddf45ffc27b4ad56bcdf52e, sha256 locally computed -md5 09cf70377ddf45ffc27b4ad56bcdf52e pyroute2-0.3.15.tar.gz -sha256 f5b7116fd97f73f97adc3b9c040a4ddbe61f18bb02f47e1c8399567c8791d270 pyroute2-0.3.15.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=459b4020073b767cc129e360dabbd2d7, sha256 locally computed +md5 459b4020073b767cc129e360dabbd2d7 pyroute2-0.3.20.tar.gz +sha256 ed28856753b941d4277b2f14b89c9edec35be4c97e1831f900fe4ce6fc12161b pyroute2-0.3.20.tar.gz diff --git a/bsp/buildroot/package/python-pyroute2/python-pyroute2.mk b/bsp/buildroot/package/python-pyroute2/python-pyroute2.mk index fffd5562..2e9e0ddf 100644 --- a/bsp/buildroot/package/python-pyroute2/python-pyroute2.mk +++ b/bsp/buildroot/package/python-pyroute2/python-pyroute2.mk @@ -4,7 +4,7 @@ # ############################################################# -PYTHON_PYROUTE2_VERSION = 0.3.15 +PYTHON_PYROUTE2_VERSION = 0.3.20 PYTHON_PYROUTE2_SOURCE = pyroute2-$(PYTHON_PYROUTE2_VERSION).tar.gz PYTHON_PYROUTE2_SITE = https://pypi.python.org/packages/source/p/pyroute2 PYTHON_PYROUTE2_LICENSE = Apache-2.0 or GPLv2+ diff --git a/bsp/buildroot/package/python-pysmb/python-pysmb.hash b/bsp/buildroot/package/python-pysmb/python-pysmb.hash index b3c91fe2..4c410689 100644 --- a/bsp/buildroot/package/python-pysmb/python-pysmb.hash +++ b/bsp/buildroot/package/python-pysmb/python-pysmb.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=256b94bdeb63e6cc63f4b6a380b5918b, sha256 locally computed -md5 256b94bdeb63e6cc63f4b6a380b5918b pysmb-1.1.17.tar.gz -sha256 267def5aef2f0f41be4ba141b29dce9c23214667e84bddefd285b56fd481d813 pysmb-1.1.17.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=9fe70cbc812b2e789915bedea7e45b1a, sha256 locally computed +md5 9fe70cbc812b2e789915bedea7e45b1a pysmb-1.1.18.tar.gz +sha256 580f7dcf8048656d2924c2f78731feaeaf6f9fa8ef5c251fc6964d39bfd3a6b9 pysmb-1.1.18.tar.gz diff --git a/bsp/buildroot/package/python-pysmb/python-pysmb.mk b/bsp/buildroot/package/python-pysmb/python-pysmb.mk index 1a00a4dd..51df91da 100644 --- a/bsp/buildroot/package/python-pysmb/python-pysmb.mk +++ b/bsp/buildroot/package/python-pysmb/python-pysmb.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_PYSMB_VERSION = 1.1.17 +PYTHON_PYSMB_VERSION = 1.1.18 PYTHON_PYSMB_SOURCE = pysmb-$(PYTHON_PYSMB_VERSION).tar.gz PYTHON_PYSMB_SITE = https://pypi.python.org/packages/source/p/pysmb PYTHON_PYSMB_LICENSE = libpng license diff --git a/bsp/buildroot/package/python-pysnmp-apps/python-pysnmp-apps.hash b/bsp/buildroot/package/python-pysnmp-apps/python-pysnmp-apps.hash new file mode 100644 index 00000000..cb57c8d8 --- /dev/null +++ b/bsp/buildroot/package/python-pysnmp-apps/python-pysnmp-apps.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e073732ed34777bdeb018dcd8b3fa51bc85956da80b92da401a4436ee72350e0 pysnmp-apps-0.3.3.tar.gz diff --git a/bsp/buildroot/package/python-pysnmp-mibs/python-pysnmp-mibs.hash b/bsp/buildroot/package/python-pysnmp-mibs/python-pysnmp-mibs.hash new file mode 100644 index 00000000..3253896d --- /dev/null +++ b/bsp/buildroot/package/python-pysnmp-mibs/python-pysnmp-mibs.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 a499ef45d942f42ab9e922c7da93efa084a7ec490ba6cad576b64a7d573ec043 pysnmp-mibs-0.1.4.tar.gz diff --git a/bsp/buildroot/package/python-pysnmp/python-pysnmp.hash b/bsp/buildroot/package/python-pysnmp/python-pysnmp.hash new file mode 100644 index 00000000..c7957a0c --- /dev/null +++ b/bsp/buildroot/package/python-pysnmp/python-pysnmp.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c5d78273f14afc6401b7456f086e7b56baaaa51fa0c39830d159bed611c9d89d pysnmp-4.2.4.tar.gz diff --git a/bsp/buildroot/package/python-pysocks/Config.in b/bsp/buildroot/package/python-pysocks/Config.in new file mode 100644 index 00000000..cd38d4d3 --- /dev/null +++ b/bsp/buildroot/package/python-pysocks/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_PYSOCKS + bool "python-pysocks" + help + A Python SOCKS client module. + + https://github.com/Anorov/PySocks diff --git a/bsp/buildroot/package/python-pysocks/python-pysocks.hash b/bsp/buildroot/package/python-pysocks/python-pysocks.hash new file mode 100644 index 00000000..556996a2 --- /dev/null +++ b/bsp/buildroot/package/python-pysocks/python-pysocks.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/PySocks/json, sha256 locally computed +md5 68f4ad7a8d4fa725656ae3e9dd142d29 PySocks-1.5.7.tar.gz +sha256 e51c7694b10288e6fd9a28e15c0bcce9aca0327e7b32ebcd9af05fcd56f38b88 PySocks-1.5.7.tar.gz diff --git a/bsp/buildroot/package/python-pysocks/python-pysocks.mk b/bsp/buildroot/package/python-pysocks/python-pysocks.mk new file mode 100644 index 00000000..a99a399c --- /dev/null +++ b/bsp/buildroot/package/python-pysocks/python-pysocks.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pysocks +# +################################################################################ + +PYTHON_PYSOCKS_VERSION = 1.5.7 +PYTHON_PYSOCKS_SOURCE = PySocks-$(PYTHON_PYSOCKS_VERSION).tar.gz +PYTHON_PYSOCKS_SITE = https://pypi.python.org/packages/16/56/9b3513078f837fa8cb88ee01ec1cd805ed8104a37bc02ca8c2588ae8fe5a +PYTHON_PYSOCKS_LICENSE = BSD-3c +PYTHON_PYSOCKS_LICENSE_FILES = socks.py +PYTHON_PYSOCKS_SETUP_TYPE = distutils + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pytablewriter/Config.in b/bsp/buildroot/package/python-pytablewriter/Config.in new file mode 100644 index 00000000..6c197451 --- /dev/null +++ b/bsp/buildroot/package/python-pytablewriter/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_PYTHON_PYTABLEWRITER + bool "python-pytablewriter" + select BR2_PACKAGE_PYTHON_DATAPROPERTY # runtime + select BR2_PACKAGE_PYTHON_DOMINATE # runtime + select BR2_PACKAGE_PYTHON_PATHVALIDATE # runtime + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_XLSXWRITER # runtime + help + pytablewriter is a python library to write a table in various + formats: CSV, HTML, JavaScript, JSON, Markdown, Excel, Pandas, + Python, reStructuredText. + + https://github.com/thombashi/pytablewriter diff --git a/bsp/buildroot/package/python-pytablewriter/python-pytablewriter.hash b/bsp/buildroot/package/python-pytablewriter/python-pytablewriter.hash new file mode 100644 index 00000000..9c27aede --- /dev/null +++ b/bsp/buildroot/package/python-pytablewriter/python-pytablewriter.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/pytablewriter/json +md5 7a28e4ddb8b59199e161b7ee9e97e3a3 pytablewriter-0.5.0.tar.gz +# sha256 calculated by scanpypi +sha256 e939adec820e68ed1b7c2eddfba73ce82a88f315aa90c81e04af0229020bfb7c pytablewriter-0.5.0.tar.gz diff --git a/bsp/buildroot/package/python-pytablewriter/python-pytablewriter.mk b/bsp/buildroot/package/python-pytablewriter/python-pytablewriter.mk new file mode 100644 index 00000000..1de7a69b --- /dev/null +++ b/bsp/buildroot/package/python-pytablewriter/python-pytablewriter.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pytablewriter +# +################################################################################ + +PYTHON_PYTABLEWRITER_VERSION = 0.5.0 +PYTHON_PYTABLEWRITER_SOURCE = pytablewriter-$(PYTHON_PYTABLEWRITER_VERSION).tar.gz +PYTHON_PYTABLEWRITER_SITE = https://pypi.python.org/packages/c8/01/e4b7f1d83434d268fe6a0aec2d8ad00515de042285e58533090cfd72904d +PYTHON_PYTABLEWRITER_SETUP_TYPE = setuptools +PYTHON_PYTABLEWRITER_LICENSE = MIT +PYTHON_PYTABLEWRITER_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pytrie/Config.in b/bsp/buildroot/package/python-pytrie/Config.in new file mode 100644 index 00000000..fb1df41d --- /dev/null +++ b/bsp/buildroot/package/python-pytrie/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_PYTRIE + bool "python-pytrie" + help + A pure Python implementation of the trie data structure. + + https://pypi.python.org/pypi/PyTrie diff --git a/bsp/buildroot/package/python-pytrie/python-pytrie.hash b/bsp/buildroot/package/python-pytrie/python-pytrie.hash new file mode 100644 index 00000000..88d2542a --- /dev/null +++ b/bsp/buildroot/package/python-pytrie/python-pytrie.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=5997b46c854a68bc588f4527c987663a, sha256 locally computed. +md5 5997b46c854a68bc588f4527c987663a PyTrie-0.2.tar.gz +sha256 b272021351efadc6757591aac03ed4794bdfd091122204a4673e94bfb66cc500 PyTrie-0.2.tar.gz diff --git a/bsp/buildroot/package/python-pytrie/python-pytrie.mk b/bsp/buildroot/package/python-pytrie/python-pytrie.mk new file mode 100644 index 00000000..e3bea4f6 --- /dev/null +++ b/bsp/buildroot/package/python-pytrie/python-pytrie.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pytrie +# +################################################################################ + +PYTHON_PYTRIE_VERSION = 0.2 +PYTHON_PYTRIE_SITE = http://pypi.python.org/packages/source/P/PyTrie +PYTHON_PYTRIE_SOURCE = PyTrie-$(PYTHON_PYTRIE_VERSION).tar.gz +PYTHON_PYTRIE_LICENSE = BSD-3c +PYTHON_PYTRIE_LICENSE_FILES = LICENSE +PYTHON_PYTRIE_SETUP_TYPE = distutils + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pytz/Config.in b/bsp/buildroot/package/python-pytz/Config.in new file mode 100644 index 00000000..949fbd3c --- /dev/null +++ b/bsp/buildroot/package/python-pytz/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_PYTZ + bool "python-pytz" + help + World timezone definitions, modern and historical. + + http://pythonhosted.org/pytz diff --git a/bsp/buildroot/package/python-pytz/python-pytz.hash b/bsp/buildroot/package/python-pytz/python-pytz.hash new file mode 100644 index 00000000..5047a8c5 --- /dev/null +++ b/bsp/buildroot/package/python-pytz/python-pytz.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/pytz/json +md5 e56283d61935963157aebc5135206a47 pytz-2016.4.tar.bz2 +# sha256 calculated by scanpypi +sha256 ee7c751544e35a7b7fb5e3fb25a49dade37d51e70a93e5107f10575d7102c311 pytz-2016.4.tar.bz2 diff --git a/bsp/buildroot/package/python-pytz/python-pytz.mk b/bsp/buildroot/package/python-pytz/python-pytz.mk new file mode 100644 index 00000000..a73c9cfb --- /dev/null +++ b/bsp/buildroot/package/python-pytz/python-pytz.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-pytz +# +################################################################################ + +PYTHON_PYTZ_VERSION = 2016.4 +PYTHON_PYTZ_SOURCE = pytz-$(PYTHON_PYTZ_VERSION).tar.bz2 +PYTHON_PYTZ_SITE = https://pypi.python.org/packages/f4/7d/7c0c85e9c64a75dde11bc9d3e1adc4e09a42ce7cdb873baffa1598118709 +PYTHON_PYTZ_SETUP_TYPE = setuptools +PYTHON_PYTZ_LICENSE = MIT +PYTHON_PYTZ_LICENSE_FILES = LICENSE.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-pyusb/python-pyusb.hash b/bsp/buildroot/package/python-pyusb/python-pyusb.hash new file mode 100644 index 00000000..3524ca96 --- /dev/null +++ b/bsp/buildroot/package/python-pyusb/python-pyusb.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 14ec66077bdcd6f1aa9e892a0a35a54bb3c1ec56aa740ead64349c18f0186d19 python-pyusb-1.0.0b2.tar.gz diff --git a/bsp/buildroot/package/python-pyzmq/python-pyzmq.hash b/bsp/buildroot/package/python-pyzmq/python-pyzmq.hash new file mode 100644 index 00000000..9871ecd1 --- /dev/null +++ b/bsp/buildroot/package/python-pyzmq/python-pyzmq.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 00e263c26a524f81127247e6f37cbf427eddf3a3657d170cf4865bd522df3914 pyzmq-14.3.1.tar.gz diff --git a/bsp/buildroot/package/python-rpi-gpio/Config.in b/bsp/buildroot/package/python-rpi-gpio/Config.in new file mode 100755 index 00000000..4f59ebdb --- /dev/null +++ b/bsp/buildroot/package/python-rpi-gpio/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_RPI_GPIO + bool "python-rpi-gpio" + depends on BR2_arm + help + A Python module to control the GPIO on a Raspberry Pi. + + http://sourceforge.net/p/raspberry-gpio-python diff --git a/bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.hash b/bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.hash new file mode 100755 index 00000000..8b498f1f --- /dev/null +++ b/bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.hash @@ -0,0 +1,3 @@ +# md5sum from http://sourceforge.net/projects/raspberry-gpio-python/files/, sha256 calculated locally +md5 254d0443a436eb241367c487274e7197 RPi.GPIO-0.6.1.tar.gz +sha256 54e5fb06d9ea1a1389a497fb5a06dfa950c86303b0f4ba89b68c55999d1df064 RPi.GPIO-0.6.1.tar.gz diff --git a/bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.mk b/bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.mk new file mode 100755 index 00000000..106b8dd1 --- /dev/null +++ b/bsp/buildroot/package/python-rpi-gpio/python-rpi-gpio.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-rpi-gpio +# +################################################################################ + +PYTHON_RPI_GPIO_VERSION = 0.6.1 +PYTHON_RPI_GPIO_SOURCE = RPi.GPIO-$(PYTHON_RPI_GPIO_VERSION).tar.gz +PYTHON_RPI_GPIO_SITE = http://sourceforge.net/projects/raspberry-gpio-python/files +PYTHON_RPI_GPIO_LICENSE = MIT +PYTHON_RPI_GPIO_LICENSE_FILES = LICENCE.txt +PYTHON_RPI_GPIO_SETUP_TYPE = distutils + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-rtslib-fb/python-rtslib-fb.hash b/bsp/buildroot/package/python-rtslib-fb/python-rtslib-fb.hash new file mode 100644 index 00000000..fd061858 --- /dev/null +++ b/bsp/buildroot/package/python-rtslib-fb/python-rtslib-fb.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 d5d81a78046b4c228d29ba88d9950e0f63858e5fcf601e3d0f8bf107fbaadc03 python-rtslib-fb-v2.1.fb57.tar.gz diff --git a/bsp/buildroot/package/python-scapy3k/Config.in b/bsp/buildroot/package/python-scapy3k/Config.in new file mode 100644 index 00000000..3e75fcd1 --- /dev/null +++ b/bsp/buildroot/package/python-scapy3k/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_SCAPY3K + bool "python-scapy3k" + depends on BR2_PACKAGE_PYTHON3 + select BR2_PACKAGE_PYTHON3_ZLIB + help + Network packet and pcap file crafting/sniffing/manipulation + security tool (based on scapy) with python3 compatibility. + + https://github.com/phaethon/scapy diff --git a/bsp/buildroot/package/python-scapy3k/python-scapy3k.hash b/bsp/buildroot/package/python-scapy3k/python-scapy3k.hash new file mode 100644 index 00000000..36d5dfed --- /dev/null +++ b/bsp/buildroot/package/python-scapy3k/python-scapy3k.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 a4c68ef2f787d82a3aec8640cac8dbab6f5b9e31ae4d89a1877efbb9150a9e25 python-scapy3k-v0.18.tar.gz diff --git a/bsp/buildroot/package/python-scapy3k/python-scapy3k.mk b/bsp/buildroot/package/python-scapy3k/python-scapy3k.mk new file mode 100644 index 00000000..661cb9d7 --- /dev/null +++ b/bsp/buildroot/package/python-scapy3k/python-scapy3k.mk @@ -0,0 +1,12 @@ +################################################################################ +# +# python-scapy3k +# +################################################################################ + +PYTHON_SCAPY3K_VERSION = v0.18 +PYTHON_SCAPY3K_SITE = $(call github,phaethon,scapy,$(PYTHON_SCAPY3K_VERSION)) +PYTHON_SCAPY3K_SETUP_TYPE = distutils +PYTHON_SCAPY3K_LICENSE = GPLv2+ + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-sdnotify/Config.in b/bsp/buildroot/package/python-sdnotify/Config.in new file mode 100644 index 00000000..bc77a067 --- /dev/null +++ b/bsp/buildroot/package/python-sdnotify/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_SDNOTIFY + bool "python-sdnotify" + help + A pure Python implementation of systemd's service notification + protocol (sd_notify). + + https://github.com/bb4242/sdnotify diff --git a/bsp/buildroot/package/python-sdnotify/python-sdnotify.hash b/bsp/buildroot/package/python-sdnotify/python-sdnotify.hash new file mode 100644 index 00000000..6d3ad6ba --- /dev/null +++ b/bsp/buildroot/package/python-sdnotify/python-sdnotify.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/sdnotify/json +md5 a182c1ef47e1c6c965771aa3029da16f sdnotify-0.3.1.tar.gz +# sha256 calculated by scanpypi +sha256 e69220d4f6cbb02130f43f929350a80cf51033fde47dcb056fbda71e2dff2d5a sdnotify-0.3.1.tar.gz diff --git a/bsp/buildroot/package/python-sdnotify/python-sdnotify.mk b/bsp/buildroot/package/python-sdnotify/python-sdnotify.mk new file mode 100644 index 00000000..7c24d327 --- /dev/null +++ b/bsp/buildroot/package/python-sdnotify/python-sdnotify.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-sdnotify +# +################################################################################ + +PYTHON_SDNOTIFY_VERSION = 0.3.1 +PYTHON_SDNOTIFY_SOURCE = sdnotify-$(PYTHON_SDNOTIFY_VERSION).tar.gz +PYTHON_SDNOTIFY_SITE = https://pypi.python.org/packages/57/f9/ae03e3ebc83be0d501cde1f5d6d23dee74f5c2105f2cdb98bff4fa9ada9c +PYTHON_SDNOTIFY_SETUP_TYPE = distutils +PYTHON_SDNOTIFY_LICENSE = MIT +PYTHON_SDNOTIFY_LICENSE_FILES = LICENSE.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-serial/python-serial.hash b/bsp/buildroot/package/python-serial/python-serial.hash index 74006243..f98a8b91 100644 --- a/bsp/buildroot/package/python-serial/python-serial.hash +++ b/bsp/buildroot/package/python-serial/python-serial.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=f94bc6e141d60f17edc7bf8757c4d922, sha256 locally computed -md5 f94bc6e141d60f17edc7bf8757c4d922 pyserial-3.0.tar.gz -sha256 056c2d96c83c009d8d04aad43a90f91f10f6a97d42c0d9656c2655c63fb8ff07 pyserial-3.0.tar.gz +# md5 from http://pypi.python.org/pypi?:action=show_md5&digest=e849af7f8b7ec75cbc7a53da67c51a51, sha256 locally computed +md5 e849af7f8b7ec75cbc7a53da67c51a51 pyserial-3.1.tar.gz +sha256 c8ffdcbd8bfd308842409e558848c32aa3499a1bfe95a591e4210072b9520f1e pyserial-3.1.tar.gz diff --git a/bsp/buildroot/package/python-serial/python-serial.mk b/bsp/buildroot/package/python-serial/python-serial.mk index ba871ead..4b3ffadc 100644 --- a/bsp/buildroot/package/python-serial/python-serial.mk +++ b/bsp/buildroot/package/python-serial/python-serial.mk @@ -4,11 +4,21 @@ # ################################################################################ -PYTHON_SERIAL_VERSION = 3.0 +PYTHON_SERIAL_VERSION = 3.1 PYTHON_SERIAL_SOURCE = pyserial-$(PYTHON_SERIAL_VERSION).tar.gz -PYTHON_SERIAL_SITE = http://pypi.python.org/packages/source/p/pyserial +PYTHON_SERIAL_SITE = https://pypi.python.org/packages/ce/9c/694ce79a9d4a164e109aeba1a40fba23336f3b7554978553e22a5d41d54d PYTHON_SERIAL_LICENSE = Python Software Foundation License PYTHON_SERIAL_LICENSE_FILES = LICENSE.txt PYTHON_SERIAL_SETUP_TYPE = setuptools +# aio.py is an experimental module, that is compatible only with +# Python 3, so remove it for Python 2 environment or it will +# cause compilation errors +ifeq ($(BR2_PACKAGE_PYTHON),y) +define PYTHON_SERIAL_REMOVE_AIO_PY + rm $(@D)/serial/aio.py +endef +PYTHON_SERIAL_POST_EXTRACT_HOOKS = PYTHON_SERIAL_REMOVE_AIO_PY +endif + $(eval $(python-package)) diff --git a/bsp/buildroot/package/python-service-identity/Config.in b/bsp/buildroot/package/python-service-identity/Config.in new file mode 100644 index 00000000..c9cbb6cc --- /dev/null +++ b/bsp/buildroot/package/python-service-identity/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_PYTHON_SERVICE_IDENTITY + bool "python-service-identity" + select BR2_PACKAGE_PYTHON_CHARACTERISTIC # runtime + select BR2_PACKAGE_PYTHON_PYASN # runtime + select BR2_PACKAGE_PYTHON_PYASN_MODULES # runtime + select BR2_PACKAGE_PYTHON_PYOPENSSL # runtime + depends on BR2_INSTALL_LIBSTDCPP # python-pyopenssl, python-pyasn + help + Service identity verification for pyOpenSSL. + + https://pypi.python.org/pypi/service_identity + +comment "python-service-identify needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-service-identity/python-service-identity.hash b/bsp/buildroot/package/python-service-identity/python-service-identity.hash new file mode 100644 index 00000000..caf29dc4 --- /dev/null +++ b/bsp/buildroot/package/python-service-identity/python-service-identity.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=cea0b0156d73b025ecef660fb51f0d9a, sha256 locally computed. +md5 cea0b0156d73b025ecef660fb51f0d9a service_identity-14.0.0.tar.gz +sha256 3105a319a7c558490666694f599be0c377ad54824eefb404cde4ce49e74a4f5a service_identity-14.0.0.tar.gz diff --git a/bsp/buildroot/package/python-service-identity/python-service-identity.mk b/bsp/buildroot/package/python-service-identity/python-service-identity.mk new file mode 100644 index 00000000..9eca3c1d --- /dev/null +++ b/bsp/buildroot/package/python-service-identity/python-service-identity.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-service-identity +# +################################################################################ + +PYTHON_SERVICE_IDENTITY_VERSION = 14.0.0 +PYTHON_SERVICE_IDENTITY_SOURCE = service_identity-$(PYTHON_SERVICE_IDENTITY_VERSION).tar.gz +PYTHON_SERVICE_IDENTITY_SITE = http://pypi.python.org/packages/source/s/service_identity +PYTHON_SERVICE_IDENTITY_LICENSE = MIT +PYTHON_SERVICE_IDENTITY_LICENSE_FILES = LICENSE +PYTHON_SERVICE_IDENTITY_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-setproctitle/Config.in b/bsp/buildroot/package/python-setproctitle/Config.in new file mode 100644 index 00000000..d13afaa4 --- /dev/null +++ b/bsp/buildroot/package/python-setproctitle/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_SETPROCTITLE + bool "python-setproctitle" + help + A Python module to customize the process title. + + https://pypi.python.org/pypi/setproctitle diff --git a/bsp/buildroot/package/python-setproctitle/python-setproctitle.hash b/bsp/buildroot/package/python-setproctitle/python-setproctitle.hash new file mode 100644 index 00000000..bf4d9603 --- /dev/null +++ b/bsp/buildroot/package/python-setproctitle/python-setproctitle.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=2dcdd1b761700a5a13252fea3dfd1977, sha256 locally computed. +md5 2dcdd1b761700a5a13252fea3dfd1977 setproctitle-1.1.10.tar.gz +sha256 6283b7a58477dd8478fbb9e76defb37968ee4ba47b05ec1c053cb39638bd7398 setproctitle-1.1.10.tar.gz diff --git a/bsp/buildroot/package/python-setproctitle/python-setproctitle.mk b/bsp/buildroot/package/python-setproctitle/python-setproctitle.mk new file mode 100644 index 00000000..36cfec32 --- /dev/null +++ b/bsp/buildroot/package/python-setproctitle/python-setproctitle.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-setproctitle +# +################################################################################ + +PYTHON_SETPROCTITLE_VERSION = 1.1.10 +PYTHON_SETPROCTITLE_SOURCE = setproctitle-$(PYTHON_SETPROCTITLE_VERSION).tar.gz +PYTHON_SETPROCTITLE_SITE = https://pypi.python.org/packages/5a/0d/dc0d2234aacba6cf1a729964383e3452c52096dc695581248b548786f2b3 +PYTHON_SETPROCTITLE_LICENSE = BSD-3c +PYTHON_SETPROCTITLE_LICENSE_FILES = COPYRIGHT +PYTHON_SETPROCTITLE_SETUP_TYPE = distutils + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-shutilwhich/Config.in b/bsp/buildroot/package/python-shutilwhich/Config.in new file mode 100644 index 00000000..abdc8d77 --- /dev/null +++ b/bsp/buildroot/package/python-shutilwhich/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_SHUTILWHICH + bool "python-shutilwhich" + depends on BR2_PACKAGE_PYTHON + help + shutil.which for those not using Python 3.3 yet. + + https://pypi.python.org/pypi/shutilwhich/ diff --git a/bsp/buildroot/package/python-shutilwhich/python-shutilwhich.hash b/bsp/buildroot/package/python-shutilwhich/python-shutilwhich.hash new file mode 100644 index 00000000..b1a2c785 --- /dev/null +++ b/bsp/buildroot/package/python-shutilwhich/python-shutilwhich.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=915947c5cdae7afd748ac715ee547adb, sha256 locally computed. +md5 915947c5cdae7afd748ac715ee547adb shutilwhich-1.1.0.tar.gz +sha256 db1f39c6461e42f630fa617bb8c79090f7711c9ca493e615e43d0610ecb64dc6 shutilwhich-1.1.0.tar.gz diff --git a/bsp/buildroot/package/python-shutilwhich/python-shutilwhich.mk b/bsp/buildroot/package/python-shutilwhich/python-shutilwhich.mk new file mode 100644 index 00000000..0497e1b6 --- /dev/null +++ b/bsp/buildroot/package/python-shutilwhich/python-shutilwhich.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# python-shutilwhich +# +################################################################################ + +PYTHON_SHUTILWHICH_VERSION = 1.1.0 +PYTHON_SHUTILWHICH_SOURCE = shutilwhich-$(PYTHON_SHUTILWHICH_VERSION).tar.gz +PYTHON_SHUTILWHICH_SITE = http://pypi.python.org/packages/source/s/shutilwhich +PYTHON_SHUTILWHICH_LICENSE = Python Software Foundation License +PYTHON_SHUTILWHICH_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-simplejson/python-simplejson.hash b/bsp/buildroot/package/python-simplejson/python-simplejson.hash new file mode 100644 index 00000000..c0f33b23 --- /dev/null +++ b/bsp/buildroot/package/python-simplejson/python-simplejson.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 a80dc90320e1c1b8eaceaaa755ae2aed382d64a59321ae9f6ddbe0321c02878a simplejson-3.5.3.tar.gz diff --git a/bsp/buildroot/package/python-singledispatch/Config.in b/bsp/buildroot/package/python-singledispatch/Config.in index 192e516b..4abc219f 100644 --- a/bsp/buildroot/package/python-singledispatch/Config.in +++ b/bsp/buildroot/package/python-singledispatch/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_PYTHON_SINGLEDISPATCH bool "python-singledispatch" depends on BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON_SIX # runtime help This library brings functools.singledispatch from Python 3.4 to Python 2.6-3.3 diff --git a/bsp/buildroot/package/python-sip/python-sip.hash b/bsp/buildroot/package/python-sip/python-sip.hash index aba54708..2f7d4309 100644 --- a/bsp/buildroot/package/python-sip/python-sip.hash +++ b/bsp/buildroot/package/python-sip/python-sip.hash @@ -1,4 +1,4 @@ -# From http://sourceforge.net/projects/pyqt/files/sip/sip-4.16.7/ -md5 32abc003980599d33ffd789734de4c36 sip-4.16.7.tar.gz +# From https://sourceforge.net/projects/pyqt/files/sip/sip-4.18/ +md5 78724bf2a79878201c3bc81a1d8248ea sip-4.18.tar.gz # Locally calculated: -sha256 4caa8d52e4403bae5c4c64f44de03a2cfd0bb10b6d96c5fb771133516df9abbd sip-4.16.7.tar.gz +sha256 f1dc5c81c07a9ad97edcd4a0af964a41e420024ba7ca165afd2b351efd249cb6 sip-4.18.tar.gz diff --git a/bsp/buildroot/package/python-sip/python-sip.mk b/bsp/buildroot/package/python-sip/python-sip.mk index 46511866..d13801fb 100644 --- a/bsp/buildroot/package/python-sip/python-sip.mk +++ b/bsp/buildroot/package/python-sip/python-sip.mk @@ -4,7 +4,7 @@ # ################################################################################ -PYTHON_SIP_VERSION = 4.16.7 +PYTHON_SIP_VERSION = 4.18 PYTHON_SIP_SOURCE = sip-$(PYTHON_SIP_VERSION).tar.gz PYTHON_SIP_SITE = http://downloads.sourceforge.net/project/pyqt/sip/sip-$(PYTHON_SIP_VERSION) PYTHON_SIP_LICENSE = SIP license or GPLv2 or GPLv3 diff --git a/bsp/buildroot/package/python-socketio/Config.in b/bsp/buildroot/package/python-socketio/Config.in new file mode 100644 index 00000000..af0f6f32 --- /dev/null +++ b/bsp/buildroot/package/python-socketio/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_PYTHON_SOCKETIO + bool "python-socketio" + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_ENGINEIO # runtime + help + Socket.IO server. + + http://github.com/miguelgrinberg/python-socketio/ diff --git a/bsp/buildroot/package/python-socketio/python-socketio.hash b/bsp/buildroot/package/python-socketio/python-socketio.hash new file mode 100644 index 00000000..659d4d54 --- /dev/null +++ b/bsp/buildroot/package/python-socketio/python-socketio.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/python-socketio/json +md5 44fd24e839dc3102920765f345740646 python-socketio-1.4.1.tar.gz +# sha256 calculated by scanpypi +sha256 ebd0984d831d602c8ec6d586ecde4466972cc7ed37dbbfe613192864e8263779 python-socketio-1.4.1.tar.gz diff --git a/bsp/buildroot/package/python-socketio/python-socketio.mk b/bsp/buildroot/package/python-socketio/python-socketio.mk new file mode 100644 index 00000000..3bcfed1f --- /dev/null +++ b/bsp/buildroot/package/python-socketio/python-socketio.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-socketio +# +################################################################################ + +PYTHON_SOCKETIO_VERSION = 1.4.1 +PYTHON_SOCKETIO_SOURCE = python-socketio-$(PYTHON_SOCKETIO_VERSION).tar.gz +PYTHON_SOCKETIO_SITE = https://pypi.python.org/packages/da/00/66103df6a116a2ce3ea662a9c8c80f337d43d7f138caf04e9af6dec24ba7 +PYTHON_SOCKETIO_SETUP_TYPE = setuptools +PYTHON_SOCKETIO_LICENSE = MIT +PYTHON_SOCKETIO_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-tomako/Config.in b/bsp/buildroot/package/python-tomako/Config.in new file mode 100644 index 00000000..bd6d2998 --- /dev/null +++ b/bsp/buildroot/package/python-tomako/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_TOMAKO + bool "python-tomako" + select BR2_PACKAGE_PYTHON_TORNADO # runtime + select BR2_PACKAGE_PYTHON_MAKO # runtime + help + Tomako is the easiest way to use Mako as a template engine for + Tornado. + + https://github.com/rcmachado/tomako diff --git a/bsp/buildroot/package/python-tomako/python-tomako.hash b/bsp/buildroot/package/python-tomako/python-tomako.hash new file mode 100644 index 00000000..af07a88a --- /dev/null +++ b/bsp/buildroot/package/python-tomako/python-tomako.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/tomako/json, sha256 locally computed +md5 a2e9e99be4ddf2263ed441ddc3dfcf96 tomako-0.1.0.post1.tar.gz +sha256 2d8ec113199408eb16ec00361aac6f10b716925779b6331083f304d01dafd150 tomako-0.1.0.post1.tar.gz diff --git a/bsp/buildroot/package/python-tomako/python-tomako.mk b/bsp/buildroot/package/python-tomako/python-tomako.mk new file mode 100644 index 00000000..23c0b34f --- /dev/null +++ b/bsp/buildroot/package/python-tomako/python-tomako.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-tomako +# +################################################################################ + +PYTHON_TOMAKO_VERSION = 0.1.0.post1 +PYTHON_TOMAKO_SOURCE = tomako-$(PYTHON_TOMAKO_VERSION).tar.gz +PYTHON_TOMAKO_SITE = https://pypi.python.org/packages/30/64/e174248281cb2fa8f5bce955d4bd49b253e622bb540a6001e48dec378a07 +PYTHON_TOMAKO_SETUP_TYPE = setuptools +PYTHON_TOMAKO_LICENSE = MIT +PYTHON_TOMAKO_LICENSE_FILES = LICENSE + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-tornado/0001-Don-t-require-backports.ssl_match_hostname-on-Python.patch b/bsp/buildroot/package/python-tornado/0001-Don-t-require-backports.ssl_match_hostname-on-Python.patch new file mode 100644 index 00000000..d5702e8d --- /dev/null +++ b/bsp/buildroot/package/python-tornado/0001-Don-t-require-backports.ssl_match_hostname-on-Python.patch @@ -0,0 +1,37 @@ +From 785fe675d5602e51a559b06861d543c7d37a380c Mon Sep 17 00:00:00 2001 +From: Yegor Yefremov +Date: Wed, 4 May 2016 09:26:22 +0200 +Subject: [PATCH] Don't require backports.ssl_match_hostname on Python 2.7.9 + and newer + +As Python 3.2 support was dropped one can check 2.7.x dependency only. + +Tornado running on Python 2.7.9+ doesn't need this backported package, +but some Python packages like circus check package dependencies at +runtime and insist on having backports.ssl_match_hostname installed, +though they don't even use this particular feature. + +So checking for exact version makes life of package maintainer easier +especially on embedded Linux distributions like Buildroot. + +Signed-off-by: Yegor Yefremov +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index c13eeed..0c24e70 100644 +--- a/setup.py ++++ b/setup.py +@@ -129,7 +129,7 @@ if setuptools is not None: + if sys.version_info < (2, 7): + # Only needed indirectly, for singledispatch. + install_requires.append('ordereddict') +- if sys.version_info < (3, 2): ++ if sys.version_info < (2, 7, 9): + install_requires.append('backports.ssl_match_hostname') + if sys.version_info < (3, 4): + install_requires.append('singledispatch') +-- +2.8.1 + diff --git a/bsp/buildroot/package/python-tornado/Config.in b/bsp/buildroot/package/python-tornado/Config.in index ac866824..a0ee78fb 100644 --- a/bsp/buildroot/package/python-tornado/Config.in +++ b/bsp/buildroot/package/python-tornado/Config.in @@ -1,9 +1,10 @@ config BR2_PACKAGE_PYTHON_TORNADO bool "python-tornado" - select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON # runtime - select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 # runtime + select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 select BR2_PACKAGE_PYTHON_SINGLEDISPATCH if BR2_PACKAGE_PYTHON # runtime - select BR2_PACKAGE_PYTHON_BACKPORTS_ABC # runtime + select BR2_PACKAGE_PYTHON_BACKPORTS_ABC if BR2_PACKAGE_PYTHON # runtime + select BR2_PACKAGE_PYTHON_CERTIFI if BR2_PACKAGE_PYTHON # runtime help Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. diff --git a/bsp/buildroot/package/python-treq/Config.in b/bsp/buildroot/package/python-treq/Config.in new file mode 100644 index 00000000..4a237373 --- /dev/null +++ b/bsp/buildroot/package/python-treq/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_PYTHON_TREQ + bool "python-treq" + select BR2_PACKAGE_PYTHON_REQUESTS # runtime + select BR2_PACKAGE_PYTHON_SERVICE_IDENTITY # runtime + select BR2_PACKAGE_PYTHON_SIX # runtime + select BR2_PACKAGE_PYTHON_TWISTED # runtime + select BR2_PACKAGE_PYTHON_PYOPENSSL # runtime + depends on BR2_INSTALL_LIBSTDCPP # python-pyopenssl + help + treq is an HTTP library inspired by requests but written on + top of Twisted's Agents. It provides a simple, higher level + API for making HTTP requests when using Twisted. + + https://github.com/twisted/treq + +comment "python-treq needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/python-treq/python-treq.hash b/bsp/buildroot/package/python-treq/python-treq.hash new file mode 100644 index 00000000..f4cc4d6f --- /dev/null +++ b/bsp/buildroot/package/python-treq/python-treq.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=b1fb60759ad5a885cb8ea562553f2d4c, sha256 locally computed +md5 b1fb60759ad5a885cb8ea562553f2d4c treq-15.1.0.tar.gz +sha256 425a47d5d52a993d51211028fb6ade252e5fbea094e878bb4b644096a7322de8 treq-15.1.0.tar.gz diff --git a/bsp/buildroot/package/python-treq/python-treq.mk b/bsp/buildroot/package/python-treq/python-treq.mk new file mode 100644 index 00000000..dbf0e148 --- /dev/null +++ b/bsp/buildroot/package/python-treq/python-treq.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-treq +# +################################################################################ + +PYTHON_TREQ_VERSION = 15.1.0 +PYTHON_TREQ_SOURCE = treq-$(PYTHON_TREQ_VERSION).tar.gz +PYTHON_TREQ_SITE = http://pypi.python.org/packages/source/t/treq +PYTHON_TREQ_LICENSE = MIT +PYTHON_TREQ_LICENSE_FILES = LICENSE +PYTHON_TREQ_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-twisted/python-twisted.hash b/bsp/buildroot/package/python-twisted/python-twisted.hash index 9a9436fa..8836a10c 100644 --- a/bsp/buildroot/package/python-twisted/python-twisted.hash +++ b/bsp/buildroot/package/python-twisted/python-twisted.hash @@ -1,2 +1,3 @@ -# Locally computed: -sha256 a8046804a0dfae090234bbb90fc560a6cc11a208b3d048b55244c79c1945c17f Twisted-15.5.0.tar.bz2 +# md5 from https://pypi.python.org/pypi/Twisted/json, sha256 locally computed. +md5 8b35a88d5f1a4bfd762a008968fddabf Twisted-16.2.0.tar.bz2 +sha256 a090e8dc675e97fb20c3bb5f8114ae94169f4e29fd3b3cbede35705fd3cdbd79 Twisted-16.2.0.tar.bz2 diff --git a/bsp/buildroot/package/python-twisted/python-twisted.mk b/bsp/buildroot/package/python-twisted/python-twisted.mk index 29fd510e..3c45d01c 100644 --- a/bsp/buildroot/package/python-twisted/python-twisted.mk +++ b/bsp/buildroot/package/python-twisted/python-twisted.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_TWISTED_VERSION = 15.5.0 +PYTHON_TWISTED_VERSION = 16.2.0 PYTHON_TWISTED_SOURCE = Twisted-$(PYTHON_TWISTED_VERSION).tar.bz2 -PYTHON_TWISTED_SITE = https://pypi.python.org/packages/source/T/Twisted +PYTHON_TWISTED_SITE = https://pypi.python.org/packages/18/85/eb7af503356e933061bf1220033c3a85bad0dbc5035dfd9a97f1e900dfcb PYTHON_TWISTED_SETUP_TYPE = setuptools PYTHON_TWISTED_LICENSE = MIT PYTHON_TWISTED_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/python-txaio/Config.in b/bsp/buildroot/package/python-txaio/Config.in new file mode 100644 index 00000000..9d423821 --- /dev/null +++ b/bsp/buildroot/package/python-txaio/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_TXAIO + bool "python-txaio" + select BR2_PACKAGE_PYTHON_SIX # runtime + help + Compatibility API between asyncio/Twisted/Trollius. + + https://pypi.python.org/pypi/txaio diff --git a/bsp/buildroot/package/python-txaio/python-txaio.hash b/bsp/buildroot/package/python-txaio/python-txaio.hash new file mode 100644 index 00000000..37da82b1 --- /dev/null +++ b/bsp/buildroot/package/python-txaio/python-txaio.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/txaio/json, sha256 locally computed. +md5 7b0f5321515d380ad5d32f01666b6ee7 txaio-2.5.1.tar.gz +sha256 625076477182e2dde78b79d0b2b0d6b3cecb0e24fe0ea7eaf2abd26a4c0dd1de txaio-2.5.1.tar.gz diff --git a/bsp/buildroot/package/python-txaio/python-txaio.mk b/bsp/buildroot/package/python-txaio/python-txaio.mk new file mode 100644 index 00000000..34c6e99c --- /dev/null +++ b/bsp/buildroot/package/python-txaio/python-txaio.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-txaio +# +################################################################################ + +PYTHON_TXAIO_VERSION = 2.5.1 +PYTHON_TXAIO_SOURCE = txaio-$(PYTHON_TXAIO_VERSION).tar.gz +PYTHON_TXAIO_SITE = https://pypi.python.org/packages/45/e1/f7d88767d65dbfc20d4b4aa0dad657dbbe8ca629ead2bef24da04630a12a +PYTHON_TXAIO_LICENSE = MIT +PYTHON_TXAIO_LICENSE_FILES = LICENSE +PYTHON_TXAIO_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-u-msgpack/Config.in b/bsp/buildroot/package/python-u-msgpack/Config.in new file mode 100644 index 00000000..ad0f90e8 --- /dev/null +++ b/bsp/buildroot/package/python-u-msgpack/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_U_MSGPACK + bool "python-u-msgpack" + help + A portable, lightweight MessagePack serializer and deserializer + written in pure Python. + + https://github.com/vsergeev/u-msgpack-python diff --git a/bsp/buildroot/package/python-u-msgpack/python-u-msgpack.hash b/bsp/buildroot/package/python-u-msgpack/python-u-msgpack.hash new file mode 100644 index 00000000..16f50408 --- /dev/null +++ b/bsp/buildroot/package/python-u-msgpack/python-u-msgpack.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/u-msgpack-python/json +md5 2ccadbf06c7e70bbdb58e920d045d50c u-msgpack-python-2.1.tar.gz +# sha256 calculated by scanpypi +sha256 66a39ddc6830be29b6d304dee9d4ab37104550ac4565eab1aa4c2bd3d34d759f u-msgpack-python-2.1.tar.gz diff --git a/bsp/buildroot/package/python-u-msgpack/python-u-msgpack.mk b/bsp/buildroot/package/python-u-msgpack/python-u-msgpack.mk new file mode 100644 index 00000000..e3897165 --- /dev/null +++ b/bsp/buildroot/package/python-u-msgpack/python-u-msgpack.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-u-msgpack +# +################################################################################ + +PYTHON_U_MSGPACK_VERSION = 2.1 +PYTHON_U_MSGPACK_SOURCE = u-msgpack-python-$(PYTHON_U_MSGPACK_VERSION).tar.gz +PYTHON_U_MSGPACK_SITE = https://pypi.python.org/packages/b7/8d/791f037a0954f98a8eceb09c7c14babb97db0a81c985108bb21939b801eb +PYTHON_U_MSGPACK_SETUP_TYPE = distutils +PYTHON_U_MSGPACK_LICENSE = MIT +PYTHON_U_MSGPACK_LICENSE_FILES = umsgpack.py + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-ubjson/Config.in b/bsp/buildroot/package/python-ubjson/Config.in new file mode 100644 index 00000000..86ed3b2e --- /dev/null +++ b/bsp/buildroot/package/python-ubjson/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_UBJSON + bool "python-ubjson" + help + This is a Python v3.2+ (and 2.7+) Universal Binary JSON + encoder/decoder based on the draft-12 specification. + + https://pypi.python.org/pypi/py-ubjson diff --git a/bsp/buildroot/package/python-ubjson/python-ubjson.hash b/bsp/buildroot/package/python-ubjson/python-ubjson.hash new file mode 100644 index 00000000..1995da63 --- /dev/null +++ b/bsp/buildroot/package/python-ubjson/python-ubjson.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=7d7e7b9b67acfb8c6b417dab78ac4639,sha256 locally computed. +md5 7d7e7b9b67acfb8c6b417dab78ac4639 py-ubjson-0.8.4.tar.gz +sha256 395c0cbbb097d88bb0db92fe1ac82d31b56f3be396946fe02d38f08e86a8efe9 py-ubjson-0.8.4.tar.gz diff --git a/bsp/buildroot/package/python-ubjson/python-ubjson.mk b/bsp/buildroot/package/python-ubjson/python-ubjson.mk new file mode 100644 index 00000000..a69efab6 --- /dev/null +++ b/bsp/buildroot/package/python-ubjson/python-ubjson.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-ubjson +# +################################################################################ + +PYTHON_UBJSON_VERSION = 0.8.4 +PYTHON_UBJSON_SOURCE = py-ubjson-$(PYTHON_UBJSON_VERSION).tar.gz +PYTHON_UBJSON_SITE = https://pypi.python.org/packages/bf/a3/990c47fa0d2d244a3d493ae917d5cbf2a0632c1ac6aa53445f4e53ce3675 +PYTHON_UBJSON_LICENSE = Apache-2.0 +PYTHON_UBJSON_LICENSE_FILES = LICENSE +PYTHON_UBJSON_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-ujson/Config.in b/bsp/buildroot/package/python-ujson/Config.in new file mode 100644 index 00000000..d185c985 --- /dev/null +++ b/bsp/buildroot/package/python-ujson/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_UJSON + bool "python-ujson" + help + UltraJSON is an ultra fast JSON encoder and decoder written + in pure C with bindings for Python 2.5+ and 3. + + https://pypi.python.org/pypi/ujson diff --git a/bsp/buildroot/package/python-ujson/python-ujson.hash b/bsp/buildroot/package/python-ujson/python-ujson.hash new file mode 100644 index 00000000..21320346 --- /dev/null +++ b/bsp/buildroot/package/python-ujson/python-ujson.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=42f77b0cce686dfa4da2e68480b1dd24,sha256 locally computed. +md5 42f77b0cce686dfa4da2e68480b1dd24 ujson-1.35.tar.gz +sha256 f66073e5506e91d204ab0c614a148d5aa938bdbf104751be66f8ad7a222f5f86 ujson-1.35.tar.gz diff --git a/bsp/buildroot/package/python-ujson/python-ujson.mk b/bsp/buildroot/package/python-ujson/python-ujson.mk new file mode 100644 index 00000000..8d4a12b8 --- /dev/null +++ b/bsp/buildroot/package/python-ujson/python-ujson.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# python-ujson +# +################################################################################ + +PYTHON_UJSON_VERSION = 1.35 +PYTHON_UJSON_SOURCE = ujson-$(PYTHON_UJSON_VERSION).tar.gz +PYTHON_UJSON_SITE = http://pypi.python.org/packages/source/u/ujson +PYTHON_UJSON_LICENSE = BSD-3c +PYTHON_UJSON_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-versiontools/python-versiontools.hash b/bsp/buildroot/package/python-versiontools/python-versiontools.hash new file mode 100644 index 00000000..1067c415 --- /dev/null +++ b/bsp/buildroot/package/python-versiontools/python-versiontools.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 a969332887a18a9c98b0df0ea4d4ca75972f24ca94f06fb87d591377e83414f6 versiontools-1.9.1.tar.gz diff --git a/bsp/buildroot/package/python-watchdog/Config.in b/bsp/buildroot/package/python-watchdog/Config.in new file mode 100644 index 00000000..e5290897 --- /dev/null +++ b/bsp/buildroot/package/python-watchdog/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_WATCHDOG + bool "python-watchdog" + select BR2_PACKAGE_PYTHON_PYYAML + select BR2_PACKAGE_PYTHON_ARGH + select BR2_PACKAGE_PYTHON_PATHTOOLS + help + Python API and shell utilities to monitor file system events. + + http://github.com/gorakhargosh/watchdog diff --git a/bsp/buildroot/package/python-watchdog/python-watchdog.hash b/bsp/buildroot/package/python-watchdog/python-watchdog.hash new file mode 100644 index 00000000..9da2b37a --- /dev/null +++ b/bsp/buildroot/package/python-watchdog/python-watchdog.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/watchdog/json +md5 bb16926bccc98eae2a04535e4512ddf1 watchdog-0.8.3.tar.gz +# sha256 calculated by scanpypi +sha256 7e65882adb7746039b6f3876ee174952f8eaaa34491ba34333ddf1fe35de4162 watchdog-0.8.3.tar.gz diff --git a/bsp/buildroot/package/python-watchdog/python-watchdog.mk b/bsp/buildroot/package/python-watchdog/python-watchdog.mk new file mode 100644 index 00000000..3dd92e3a --- /dev/null +++ b/bsp/buildroot/package/python-watchdog/python-watchdog.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-watchdog +# +################################################################################ + +PYTHON_WATCHDOG_VERSION = 0.8.3 +PYTHON_WATCHDOG_SOURCE = watchdog-$(PYTHON_WATCHDOG_VERSION).tar.gz +PYTHON_WATCHDOG_SITE = https://pypi.python.org/packages/54/7d/c7c0ad1e32b9f132075967fc353a244eb2b375a3d2f5b0ce612fd96e107e +PYTHON_WATCHDOG_SETUP_TYPE = setuptools +PYTHON_WATCHDOG_LICENSE = Apache-2.0 +PYTHON_WATCHDOG_LICENSE_FILES = LICENSE COPYING + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-wcwidth/Config.in b/bsp/buildroot/package/python-wcwidth/Config.in new file mode 100644 index 00000000..c5cc0223 --- /dev/null +++ b/bsp/buildroot/package/python-wcwidth/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_PYTHON_WCWIDTH + bool "python-wcwidth" + help + This library measures number of Terminal column cells of + wide-character codes. + + https://github.com/jquast/wcwidth diff --git a/bsp/buildroot/package/python-wcwidth/python-wcwidth.hash b/bsp/buildroot/package/python-wcwidth/python-wcwidth.hash new file mode 100644 index 00000000..a3ab50fa --- /dev/null +++ b/bsp/buildroot/package/python-wcwidth/python-wcwidth.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/wcwidth/json, sha256 locally computed +md5 b3b6a0a08f0c8a34d1de8cf44150a4ad wcwidth-0.1.7.tar.gz +sha256 3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e wcwidth-0.1.7.tar.gz diff --git a/bsp/buildroot/package/python-wcwidth/python-wcwidth.mk b/bsp/buildroot/package/python-wcwidth/python-wcwidth.mk new file mode 100644 index 00000000..2dd392a5 --- /dev/null +++ b/bsp/buildroot/package/python-wcwidth/python-wcwidth.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-wcwidth +# +################################################################################ + +PYTHON_WCWIDTH_VERSION = 0.1.7 +PYTHON_WCWIDTH_SOURCE = wcwidth-$(PYTHON_WCWIDTH_VERSION).tar.gz +PYTHON_WCWIDTH_SITE = https://pypi.python.org/packages/55/11/e4a2bb08bb450fdbd42cc709dd40de4ed2c472cf0ccb9e64af22279c5495 +PYTHON_WCWIDTH_SETUP_TYPE = setuptools +PYTHON_WCWIDTH_LICENSE = MIT +PYTHON_WCWIDTH_LICENSE_FILES = LICENSE.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-werkzeug/python-werkzeug.hash b/bsp/buildroot/package/python-werkzeug/python-werkzeug.hash index f833b89a..e2afd14c 100644 --- a/bsp/buildroot/package/python-werkzeug/python-werkzeug.hash +++ b/bsp/buildroot/package/python-werkzeug/python-werkzeug.hash @@ -1,3 +1,3 @@ -# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=9479bc7ea6a42c2d0d82929d3926df67, sha256 locally computed -md5 9479bc7ea6a42c2d0d82929d3926df67 Werkzeug-0.11.3.tar.gz -sha256 eb5f700a9bfc96420b055635af9002d3662e43d80c3ffd31f224c25bc0d5f462 Werkzeug-0.11.3.tar.gz +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=780967186f9157e88f2bfbfa6f07a893, sha256 locally computed +md5 780967186f9157e88f2bfbfa6f07a893 Werkzeug-0.11.10.tar.gz +sha256 cc64dafbacc716cdd42503cf6c44cb5a35576443d82f29f6829e5c49264aeeee Werkzeug-0.11.10.tar.gz diff --git a/bsp/buildroot/package/python-werkzeug/python-werkzeug.mk b/bsp/buildroot/package/python-werkzeug/python-werkzeug.mk index 3df481a6..c0af65c6 100644 --- a/bsp/buildroot/package/python-werkzeug/python-werkzeug.mk +++ b/bsp/buildroot/package/python-werkzeug/python-werkzeug.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_WERKZEUG_VERSION = 0.11.3 +PYTHON_WERKZEUG_VERSION = 0.11.10 PYTHON_WERKZEUG_SOURCE = Werkzeug-$(PYTHON_WERKZEUG_VERSION).tar.gz -PYTHON_WERKZEUG_SITE = http://pypi.python.org/packages/source/W/Werkzeug +PYTHON_WERKZEUG_SITE = https://pypi.python.org/packages/b7/7f/44d3cfe5a12ba002b253f6985a4477edfa66da53787a2a838a40f6415263 PYTHON_WERKZEUG_SETUP_TYPE = setuptools PYTHON_WERKZEUG_LICENSE = BSD-3c PYTHON_WERKZEUG_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/python-wsaccel/Config.in b/bsp/buildroot/package/python-wsaccel/Config.in new file mode 100644 index 00000000..ee61e8a0 --- /dev/null +++ b/bsp/buildroot/package/python-wsaccel/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_WSACCEL + bool "python-wsaccel" + help + Accelerator for ws4py and AutobahnPython. + + https://pypi.python.org/pypi/wsaccel diff --git a/bsp/buildroot/package/python-wsaccel/python-wsaccel.hash b/bsp/buildroot/package/python-wsaccel/python-wsaccel.hash new file mode 100644 index 00000000..a02b5a87 --- /dev/null +++ b/bsp/buildroot/package/python-wsaccel/python-wsaccel.hash @@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi?:action=show_md5&digest=2b4ea3d6847855c0587d37fca9db0557, sha256 locally computed. +md5 2b4ea3d6847855c0587d37fca9db0557 wsaccel-0.6.2.tar.gz +sha256 425706acf0724d2f6bfa391ec37b4ef121d3432c956029de3cea4e101c218e0c wsaccel-0.6.2.tar.gz diff --git a/bsp/buildroot/package/python-wsaccel/python-wsaccel.mk b/bsp/buildroot/package/python-wsaccel/python-wsaccel.mk new file mode 100644 index 00000000..3e7b3324 --- /dev/null +++ b/bsp/buildroot/package/python-wsaccel/python-wsaccel.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# python-wsaccel +# +################################################################################ + +PYTHON_WSACCEL_VERSION = 0.6.2 +PYTHON_WSACCEL_SOURCE = wsaccel-$(PYTHON_WSACCEL_VERSION).tar.gz +PYTHON_WSACCEL_SITE = http://pypi.python.org/packages/source/w/wsaccel +PYTHON_WSACCEL_LICENSE = Apache-2.0 +PYTHON_WSACCEL_SETUP_TYPE = setuptools + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-xlrd/Config.in b/bsp/buildroot/package/python-xlrd/Config.in new file mode 100644 index 00000000..81331f9d --- /dev/null +++ b/bsp/buildroot/package/python-xlrd/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_PYTHON_XLRD + bool "python-xlrd" + select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 + select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 + help + Library for developers to extract data from Microsoft Excel (tm) + spreadsheet files. + + http://www.python-excel.org/ diff --git a/bsp/buildroot/package/python-xlrd/python-xlrd.hash b/bsp/buildroot/package/python-xlrd/python-xlrd.hash new file mode 100644 index 00000000..8075605a --- /dev/null +++ b/bsp/buildroot/package/python-xlrd/python-xlrd.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/xlrd/json +md5 9a91b688cd4945477ac28187a54f9a3b xlrd-1.0.0.tar.gz +# sha256 calculated by scanpypi +sha256 0ff87dd5d50425084f7219cb6f86bb3eb5aa29063f53d50bf270ed007e941069 xlrd-1.0.0.tar.gz diff --git a/bsp/buildroot/package/python-xlrd/python-xlrd.mk b/bsp/buildroot/package/python-xlrd/python-xlrd.mk new file mode 100644 index 00000000..50f76243 --- /dev/null +++ b/bsp/buildroot/package/python-xlrd/python-xlrd.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-xlrd +# +################################################################################ + +PYTHON_XLRD_VERSION = 1.0.0 +PYTHON_XLRD_SOURCE = xlrd-$(PYTHON_XLRD_VERSION).tar.gz +PYTHON_XLRD_SITE = https://pypi.python.org/packages/42/85/25caf967c2d496067489e0bb32df069a8361e1fd96a7e9f35408e56b3aab +PYTHON_XLRD_SETUP_TYPE = setuptools +PYTHON_XLRD_LICENSE = BSD-3c +PYTHON_XLRD_LICENSE_FILES = xlrd/licences.py + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-xlsxwriter/Config.in b/bsp/buildroot/package/python-xlsxwriter/Config.in new file mode 100644 index 00000000..3641bd05 --- /dev/null +++ b/bsp/buildroot/package/python-xlsxwriter/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_PYTHON_XLSXWRITER + bool "python-xlsxwriter" + select BR2_PACKAGE_PYTHON_ZLIB if BR2_PACKAGE_PYTHON + select BR2_PACKAGE_PYTHON3_ZLIB if BR2_PACKAGE_PYTHON3 + help + A Python module for creating Excel XLSX files. + + https://github.com/jmcnamara/XlsxWriter diff --git a/bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.hash b/bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.hash new file mode 100644 index 00000000..69bfc6f7 --- /dev/null +++ b/bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/XlsxWriter/json +md5 545c938f279abcfd7f11e705012302fe XlsxWriter-0.8.9.tar.gz +# sha256 locally computed +sha256 cb90c5283b88af72549adf82f203d15623a0f4faeae29b6a20733e187dfde882 XlsxWriter-0.8.9.tar.gz diff --git a/bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.mk b/bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.mk new file mode 100644 index 00000000..af911cc0 --- /dev/null +++ b/bsp/buildroot/package/python-xlsxwriter/python-xlsxwriter.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-xlsxwriter +# +################################################################################ + +PYTHON_XLSXWRITER_VERSION = 0.8.9 +PYTHON_XLSXWRITER_SOURCE = XlsxWriter-$(PYTHON_XLSXWRITER_VERSION).tar.gz +PYTHON_XLSXWRITER_SITE = https://pypi.python.org/packages/2a/de/4ee20ac103417662865e0e3acde859b002c13f52af0d50a2664d3eca5897 +PYTHON_XLSXWRITER_SETUP_TYPE = setuptools +PYTHON_XLSXWRITER_LICENSE = BSD-2c +PYTHON_XLSXWRITER_LICENSE_FILES = LICENSE.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-xlutils/Config.in b/bsp/buildroot/package/python-xlutils/Config.in new file mode 100644 index 00000000..9c12d766 --- /dev/null +++ b/bsp/buildroot/package/python-xlutils/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_PYTHON_XLUTILS + bool "python-xlutils" + select BR2_PACKAGE_PYTHON_XLRD # runtime + select BR2_PACKAGE_PYTHON_XLWT # runtime + help + Utilities for working with Excel files that require both + xlrd and xlwt. + + http://www.python-excel.org diff --git a/bsp/buildroot/package/python-xlutils/python-xlutils.hash b/bsp/buildroot/package/python-xlutils/python-xlutils.hash new file mode 100644 index 00000000..4f99860c --- /dev/null +++ b/bsp/buildroot/package/python-xlutils/python-xlutils.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/xlutils/json +md5 7a6a339ddaacabce244341582ee61353 xlutils-2.0.0.tar.gz +# sha256 calculated by scanpypi +sha256 7e0e2c233bd185fecf5e2bd3f4e9469ca4a3bd87da64c82cfe5b2af27e7f9e54 xlutils-2.0.0.tar.gz diff --git a/bsp/buildroot/package/python-xlutils/python-xlutils.mk b/bsp/buildroot/package/python-xlutils/python-xlutils.mk new file mode 100644 index 00000000..fc26b3ce --- /dev/null +++ b/bsp/buildroot/package/python-xlutils/python-xlutils.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-xlutils +# +################################################################################ + +PYTHON_XLUTILS_VERSION = 2.0.0 +PYTHON_XLUTILS_SOURCE = xlutils-$(PYTHON_XLUTILS_VERSION).tar.gz +PYTHON_XLUTILS_SITE = https://pypi.python.org/packages/93/fe/af6d73e4bc7b0ce359d34bebb2e8d4d129763acfecd66a3a7efc587e54c9 +PYTHON_XLUTILS_SETUP_TYPE = setuptools +PYTHON_XLUTILS_LICENSE = MIT +PYTHON_XLUTILS_LICENSE_FILES = xlutils/license.txt + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python-xlwt/Config.in b/bsp/buildroot/package/python-xlwt/Config.in new file mode 100644 index 00000000..a48ac6fb --- /dev/null +++ b/bsp/buildroot/package/python-xlwt/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_PYTHON_XLWT + bool "python-xlwt" + help + Library to create spreadsheet files compatible with MS Excel + 97/2000/XP/2003 XLS files, on any platform, with Python 2.6, + 2.7, 3.3+. + + http://www.python-excel.org/ diff --git a/bsp/buildroot/package/python-xlwt/python-xlwt.hash b/bsp/buildroot/package/python-xlwt/python-xlwt.hash new file mode 100644 index 00000000..4cacf2b4 --- /dev/null +++ b/bsp/buildroot/package/python-xlwt/python-xlwt.hash @@ -0,0 +1,4 @@ +# md5 from https://pypi.python.org/pypi/xlwt/json +md5 fadf8d1be8c5f071561c4145ed5f5b89 xlwt-1.1.2.tar.gz +# sha256 calculated by scanpypi +sha256 aed648c17731f40f84550dd2a1aaa53569f0cbcaf5610ba895cd2632587b723c xlwt-1.1.2.tar.gz diff --git a/bsp/buildroot/package/python-xlwt/python-xlwt.mk b/bsp/buildroot/package/python-xlwt/python-xlwt.mk new file mode 100644 index 00000000..38d5f09d --- /dev/null +++ b/bsp/buildroot/package/python-xlwt/python-xlwt.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# python-xlwt +# +################################################################################ + +PYTHON_XLWT_VERSION = 1.1.2 +PYTHON_XLWT_SOURCE = xlwt-$(PYTHON_XLWT_VERSION).tar.gz +PYTHON_XLWT_SITE = https://pypi.python.org/packages/0b/69/644313df86e6375ec2c6b34ec8ac544b9cc7803b7d943223d32811860f3d +PYTHON_XLWT_SETUP_TYPE = setuptools +PYTHON_XLWT_LICENSE = BSD-3c, BSD-4c +PYTHON_XLWT_LICENSE_FILES = docs/licenses.rst + +$(eval $(python-package)) diff --git a/bsp/buildroot/package/python/011-remove-python-symlink.patch b/bsp/buildroot/package/python/011-remove-python-symlink.patch index b0548c31..e021d832 100644 --- a/bsp/buildroot/package/python/011-remove-python-symlink.patch +++ b/bsp/buildroot/package/python/011-remove-python-symlink.patch @@ -5,15 +5,17 @@ Buildroot needs to control to what python interpreter (python2 or python3) the python symlink points to. Signed-off-by: Samuel Martin +Signed-off-by: Bernd Kuhls +(rebased against version 2.7.12) Index: b/Makefile.pre.in =================================================================== --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -890,17 +890,10 @@ - # $(PYTHON) -> python2 -> python$(VERSION)) - # Also create equivalent chains for other installed files - bininstall: altbininstall +@@ -974,17 +974,10 @@ + echo "Creating directory $(LIBPC)"; \ + $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \ + fi - -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \ - then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \ - else true; \ diff --git a/bsp/buildroot/package/python/python.hash b/bsp/buildroot/package/python/python.hash index d1cf1ba0..b7d00360 100644 --- a/bsp/buildroot/package/python/python.hash +++ b/bsp/buildroot/package/python/python.hash @@ -1,4 +1,4 @@ -# From https://www.python.org/downloads/release/python-2711/ -md5 1dbcc848b4cd8399a8199d000f9f823c Python-2.7.11.tar.xz +# From https://www.python.org/downloads/release/python-2712/ +md5 57dffcee9cee8bb2ab5f82af1d8e9a69 Python-2.7.12.tar.xz # Locally calculated -sha256 962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46 Python-2.7.11.tar.xz +sha256 d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978 Python-2.7.12.tar.xz diff --git a/bsp/buildroot/package/python/python.mk b/bsp/buildroot/package/python/python.mk index 4ecd0d1d..90267035 100644 --- a/bsp/buildroot/package/python/python.mk +++ b/bsp/buildroot/package/python/python.mk @@ -5,7 +5,7 @@ ################################################################################ PYTHON_VERSION_MAJOR = 2.7 -PYTHON_VERSION = $(PYTHON_VERSION_MAJOR).11 +PYTHON_VERSION = $(PYTHON_VERSION_MAJOR).12 PYTHON_SOURCE = Python-$(PYTHON_VERSION).tar.xz PYTHON_SITE = http://python.org/ftp/python/$(PYTHON_VERSION) PYTHON_LICENSE = Python software foundation license v2, others @@ -143,7 +143,8 @@ PYTHON_CONF_OPTS += \ --disable-tk \ --disable-nis \ --disable-dbm \ - --disable-pyo-build + --disable-pyo-build \ + --disable-pyc-build # This is needed to make sure the Python build process doesn't try to # regenerate those files with the pgen program. Otherwise, it builds @@ -217,16 +218,38 @@ PYTHON_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/sysconfigdata/ $(eval $(autotools-package)) $(eval $(host-autotools-package)) +define PYTHON_CREATE_PYC_FILES + PYTHONPATH="$(PYTHON_PATH)" \ + $(HOST_DIR)/usr/bin/python$(PYTHON_VERSION_MAJOR) \ + support/scripts/pycompile.py \ + $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) +endef + +ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY)$(BR2_PACKAGE_PYTHON_PY_PYC),y) +PYTHON_TARGET_FINALIZE_HOOKS += PYTHON_CREATE_PYC_FILES +endif + ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y) -define PYTHON_FINALIZE_TARGET - find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.py' -print0 | xargs -0 rm -f +define PYTHON_REMOVE_PY_FILES + find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.py' -print0 | \ + xargs -0 --no-run-if-empty rm -f endef +PYTHON_TARGET_FINALIZE_HOOKS += PYTHON_REMOVE_PY_FILES endif +# Normally, *.pyc files should not have been compiled, but just in +# case, we make sure we remove all of them. ifeq ($(BR2_PACKAGE_PYTHON_PY_ONLY),y) -define PYTHON_FINALIZE_TARGET - find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.pyc' -print0 | xargs -0 rm -f +define PYTHON_REMOVE_PYC_FILES + find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.pyc' -print0 | \ + xargs -0 --no-run-if-empty rm -f endef +PYTHON_TARGET_FINALIZE_HOOKS += PYTHON_REMOVE_PYC_FILES endif -TARGET_FINALIZE_HOOKS += PYTHON_FINALIZE_TARGET +# In all cases, we don't want to keep the optimized .pyo files +define PYTHON_REMOVE_PYO_FILES + find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.pyo' -print0 | \ + xargs -0 --no-run-if-empty rm -f +endef +PYTHON_TARGET_FINALIZE_HOOKS += PYTHON_REMOVE_PYO_FILES diff --git a/bsp/buildroot/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch b/bsp/buildroot/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch index 3fafd903..defaad9c 100644 --- a/bsp/buildroot/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch +++ b/bsp/buildroot/package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch @@ -1,4 +1,4 @@ -From 03a4c313f42ea1bbdfc4c64a285b3930766c2b23 Mon Sep 17 00:00:00 2001 +From d6093bad6c700312ff7ff4a7bb15c815dda6f46b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:28:34 +0100 Subject: [PATCH] setup.py: do not add invalid header locations @@ -28,10 +28,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py -index 2779658..d3bf8e5 100644 +index da67731..dbd2a3c 100644 --- a/setup.py +++ b/setup.py -@@ -493,7 +493,8 @@ class PyBuildExt(build_ext): +@@ -511,7 +511,8 @@ class PyBuildExt(build_ext): add_dir_to_list(dir_list, directory) if os.path.normpath(sys.base_prefix) != '/usr' \ diff --git a/bsp/buildroot/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch b/bsp/buildroot/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch index 57b55fb1..8e930abf 100644 --- a/bsp/buildroot/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch +++ b/bsp/buildroot/package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch @@ -1,4 +1,4 @@ -From 2f706a2ba92c88f1c8288e34d1937b6ba0e0214c Mon Sep 17 00:00:00 2001 +From 4ac038d30ec71b3f223ac7c91613856dd82b6347 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:29:04 +0100 Subject: [PATCH] Change the install location of _sysconfigdata.py @@ -25,10 +25,10 @@ Signed-off-by: Thomas Petazzoni 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 76aef28..58dab28 100644 +index 823def3..4d2a061 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -559,6 +559,9 @@ pybuilddir.txt: $(BUILDPYTHON) +@@ -585,6 +585,9 @@ pybuilddir.txt: $(BUILDPYTHON) rm -f ./pybuilddir.txt ; \ exit 1 ; \ fi @@ -38,7 +38,7 @@ index 76aef28..58dab28 100644 # Build the shared modules # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for -@@ -1197,7 +1200,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c +@@ -1235,7 +1238,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c else true; \ fi; \ done @@ -47,7 +47,7 @@ index 76aef28..58dab28 100644 do \ if test -x $$i; then \ $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ -@@ -1207,6 +1210,11 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c +@@ -1245,6 +1248,11 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c echo $(INSTALL_DATA) $$i $(LIBDEST); \ fi; \ done @@ -59,17 +59,17 @@ index 76aef28..58dab28 100644 @for d in $(LIBSUBDIRS); \ do \ a=$(srcdir)/Lib/$$d; \ -@@ -1533,7 +1541,7 @@ clean: pycremoval +@@ -1580,7 +1588,7 @@ clean: pycremoval find build -name 'fficonfig.h' -exec rm -f {} ';' || true find build -name '*.py' -exec rm -f {} ';' || true find build -name '*.py[co]' -exec rm -f {} ';' || true - -rm -f pybuilddir.txt + -rm -f pybuilddir.txt pysysconfigdatadir.txt -rm -f Lib/lib2to3/*Grammar*.pickle - -rm -f Modules/_testembed Modules/_freeze_importlib - + -rm -f Programs/_testembed Programs/_freeze_importlib + -rm -rf build diff --git a/configure.ac b/configure.ac -index a0d0afa..7b491b4 100644 +index 694293e..76b70a0 100644 --- a/configure.ac +++ b/configure.ac @@ -70,7 +70,7 @@ if test "$cross_compiling" = yes; then diff --git a/bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch b/bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch deleted file mode 100644 index 03684afe..00000000 --- a/bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 7c5338161263c290f18b1ff90859084d314be98c Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Wed, 23 Dec 2015 11:29:35 +0100 -Subject: [PATCH] Make the build of pyc and pyo files conditional - -This commit adds two new configure options: --disable-pyc-build and ---disable-pyo-build to disable the compilation of pyc and pyo files -respectively. - -Signed-off-by: Thomas Petazzoni ---- - Makefile.pre.in | 8 ++++++++ - configure.ac | 12 ++++++++++++ - 2 files changed, 20 insertions(+) - -diff --git a/Makefile.pre.in b/Makefile.pre.in -index 58dab28..f1bdd99 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -1245,24 +1245,32 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c - $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ - $(DESTDIR)$(LIBDEST)/distutils/tests ; \ - fi -+ifeq (@PYC_BUILD@,yes) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) -+endif -+ifeq (@PYO_BUILD@,yes) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ - -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ - $(DESTDIR)$(LIBDEST) -+endif -+ifeq (@PYC_BUILD@,yes) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -+endif -+ifeq (@PYO_BUILD@,yes) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ - -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages -+endif - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ -diff --git a/configure.ac b/configure.ac -index 7b491b4..f2c4705 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -922,6 +922,18 @@ fi - - AC_MSG_CHECKING(LDLIBRARY) - -+AC_SUBST(PYC_BUILD) -+ -+AC_ARG_ENABLE(pyc-build, -+ AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]), -+ [ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ]) -+ -+AC_SUBST(PYO_BUILD) -+ -+AC_ARG_ENABLE(pyo-build, -+ AS_HELP_STRING([--disable-pyo-build], [disable build of pyo files]), -+ [ PYO_BUILD="${enableval}" ], [ PYO_BUILD=yes ]) -+ - # MacOSX framework builds need more magic. LDLIBRARY is the dynamic - # library that we build, but we do not want to link against it (we - # will find it with a -framework option). For this reason there is an --- -2.6.4 - diff --git a/bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch b/bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch new file mode 100644 index 00000000..3251da5f --- /dev/null +++ b/bsp/buildroot/package/python3/0003-Make-the-build-of-pyc-files-conditional.patch @@ -0,0 +1,54 @@ +From 28f81597314ea3ed03935b519453a55cf6c3c20d Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 11:29:35 +0100 +Subject: [PATCH] Make the build of pyc files conditional + +This commit adds a new configure option --disable-pyc-build to disable +the compilation of pyc. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.pre.in | 2 ++ + configure.ac | 6 ++++++ + 2 files changed, 8 insertions(+) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 4d2a061..272f312 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -1283,6 +1283,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c + $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ + $(DESTDIR)$(LIBDEST)/distutils/tests ; \ + fi ++ifeq (@PYC_BUILD@,yes) + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST) -f \ +@@ -1310,6 +1311,7 @@ libinstall: build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c + $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \ + -d $(LIBDEST)/site-packages -f \ + -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages ++endif + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ + $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt + -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +diff --git a/configure.ac b/configure.ac +index 76b70a0..66d4642 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1056,6 +1056,12 @@ fi + + AC_MSG_CHECKING(LDLIBRARY) + ++AC_SUBST(PYC_BUILD) ++ ++AC_ARG_ENABLE(pyc-build, ++ AS_HELP_STRING([--disable-pyc-build], [disable build of pyc files]), ++ [ PYC_BUILD="${enableval}" ], [ PYC_BUILD=yes ]) ++ + # MacOSX framework builds need more magic. LDLIBRARY is the dynamic + # library that we build, but we do not want to link against it (we + # will find it with a -framework option). For this reason there is an +-- +2.6.4 + diff --git a/bsp/buildroot/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch b/bsp/buildroot/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch index da2a65bc..183d6b30 100644 --- a/bsp/buildroot/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch +++ b/bsp/buildroot/package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch @@ -1,4 +1,4 @@ -From ef95d6a49f17522ed120def8093fa2fc0b86cbc8 Mon Sep 17 00:00:00 2001 +From 093caf46b7a742ee2f7bcf617a915ac1653aa8ac Mon Sep 17 00:00:00 2001 From: Vanya Sergeev Date: Wed, 23 Dec 2015 11:30:33 +0100 Subject: [PATCH] Disable buggy_getaddrinfo configure test when cross-compiling @@ -10,10 +10,10 @@ Signed-off-by: Vanya Sergeev 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index f2c4705..6342b81 100644 +index 66d4642..c492594 100644 --- a/configure.ac +++ b/configure.ac -@@ -3415,7 +3415,7 @@ fi +@@ -3662,7 +3662,7 @@ fi AC_MSG_RESULT($ac_cv_buggy_getaddrinfo) diff --git a/bsp/buildroot/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch b/bsp/buildroot/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch index 4a32bb19..76a553b5 100644 --- a/bsp/buildroot/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch +++ b/bsp/buildroot/package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch @@ -1,4 +1,4 @@ -From 9eb1076b61e83647028a2f6b665b6f9afcb793b0 Mon Sep 17 00:00:00 2001 +From 3a9f4aa255909ed152883eee787313efd20dbc58 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:31:08 +0100 Subject: [PATCH] Add infrastructure to disable the build of certain extensions @@ -42,10 +42,10 @@ Signed-off-by: Thomas Petazzoni 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index f1bdd99..e0f9e0f 100644 +index 272f312..9420860 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -177,6 +177,8 @@ FILEMODE= 644 +@@ -182,6 +182,8 @@ FILEMODE= 644 # configure script arguments CONFIG_ARGS= @CONFIG_ARGS@ @@ -54,7 +54,7 @@ index f1bdd99..e0f9e0f 100644 # Subdirectories with code SRCDIRS= @SRCDIRS@ -@@ -574,6 +576,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt +@@ -600,6 +602,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt esac; \ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ @@ -62,7 +62,7 @@ index f1bdd99..e0f9e0f 100644 $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build # Build static library -@@ -1384,7 +1387,8 @@ libainstall: all python-config +@@ -1425,7 +1428,8 @@ libainstall: all python-config # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods @@ -73,10 +73,10 @@ index f1bdd99..e0f9e0f 100644 --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ diff --git a/configure.ac b/configure.ac -index 6342b81..a3026b8 100644 +index c492594..bfb599e 100644 --- a/configure.ac +++ b/configure.ac -@@ -2352,6 +2352,8 @@ LIBS="$withval $LIBS" +@@ -2588,6 +2588,8 @@ LIBS="$withval $LIBS" PKG_PROG_PKG_CONFIG @@ -86,10 +86,10 @@ index 6342b81..a3026b8 100644 AC_MSG_CHECKING(for --with-system-expat) AC_ARG_WITH(system_expat, diff --git a/setup.py b/setup.py -index d3bf8e5..2a504d2 100644 +index dbd2a3c..1ebfa50 100644 --- a/setup.py +++ b/setup.py -@@ -39,7 +39,10 @@ host_platform = get_platform() +@@ -44,7 +44,10 @@ host_platform = get_platform() COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS")) # This global variable is used to hold the list of modules to be disabled. diff --git a/bsp/buildroot/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch b/bsp/buildroot/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch index dcf32d6f..b3e41b10 100644 --- a/bsp/buildroot/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch +++ b/bsp/buildroot/package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch @@ -1,4 +1,4 @@ -From bdb9cccdc2993e43af1e57ad3b8b0055bab64ba0 Mon Sep 17 00:00:00 2001 +From 7c560d917ee0e536c76fac275d1cb0b6136269ab Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:32:23 +0100 Subject: [PATCH] distutils/sysconfig: use sysconfigdata @@ -12,10 +12,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index a1452fe..1df20ad 100644 +index 573724d..721edec 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -423,40 +423,11 @@ def expand_makefile_vars(s, vars): +@@ -414,40 +414,11 @@ def expand_makefile_vars(s, vars): _config_vars = None def _init_posix(): diff --git a/bsp/buildroot/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch b/bsp/buildroot/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch index 59d4ccd6..9ac65ba9 100644 --- a/bsp/buildroot/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch +++ b/bsp/buildroot/package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch @@ -1,4 +1,4 @@ -From 678143ce6161379a3eebc20db6634f0c247f8605 Mon Sep 17 00:00:00 2001 +From e634929f76a45f5b683dc19bc01efed2ab83e19e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:33:14 +0100 Subject: [PATCH] Adjust library/header paths for cross-compilation @@ -21,10 +21,10 @@ Signed-off-by: Thomas Petazzoni 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py -index acbe648..494a8c9 100644 +index d4cb11e..e7a0ba9 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py -@@ -239,7 +239,10 @@ class build_ext(Command): +@@ -232,7 +232,10 @@ class build_ext(Command): if (sysconfig.get_config_var('Py_ENABLE_SHARED')): if not sysconfig.python_build: # building third party extensions @@ -37,10 +37,10 @@ index acbe648..494a8c9 100644 # building python standard extensions self.library_dirs.append('.') diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py -index 1df20ad..905d280 100644 +index 721edec..d20e2d8 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py -@@ -16,10 +16,17 @@ import sys +@@ -17,10 +17,17 @@ import sys from .errors import DistutilsPlatformError # These are needed in a couple of spots, so just compute them once. @@ -61,7 +61,7 @@ index 1df20ad..905d280 100644 + BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Path to the base directory of the project. On Windows the binary may - # live in project/PCBuild9. If we're dealing with an x64 Windows build, + # live in project/PCBuild/win32 or project/PCBuild/amd64. -- 2.6.4 diff --git a/bsp/buildroot/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch b/bsp/buildroot/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch index 19a76cfc..47a0b832 100644 --- a/bsp/buildroot/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch +++ b/bsp/buildroot/package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch @@ -1,4 +1,4 @@ -From 3ef1e30b88c4166f22220812b68e14f39f7ed15b Mon Sep 17 00:00:00 2001 +From d7c568632f7cb83346096ea114a06f89a0b488d6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:36:00 +0100 Subject: [PATCH] Don't look in /usr/lib/termcap for libraries @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/setup.py b/setup.py -index 2a504d2..acc4ad0 100644 +index 1ebfa50..24a7153 100644 --- a/setup.py +++ b/setup.py -@@ -733,12 +733,9 @@ class PyBuildExt(build_ext): +@@ -753,12 +753,9 @@ class PyBuildExt(build_ext): pass # Issue 7384: Already linked against curses or tinfo. elif curses_library: readline_libs.append(curses_library) diff --git a/bsp/buildroot/package/python3/0009-Don-t-add-multiarch-paths.patch b/bsp/buildroot/package/python3/0009-Don-t-add-multiarch-paths.patch index 693ab6a5..921e25cc 100644 --- a/bsp/buildroot/package/python3/0009-Don-t-add-multiarch-paths.patch +++ b/bsp/buildroot/package/python3/0009-Don-t-add-multiarch-paths.patch @@ -1,4 +1,4 @@ -From b910b3a6e61afcaa6f77b533a5cb4290c528f439 Mon Sep 17 00:00:00 2001 +From bac5ac529cc0902a340a5cd03308433c6e80d1f6 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:36:27 +0100 Subject: [PATCH] Don't add multiarch paths @@ -17,10 +17,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py -index acc4ad0..eab709e 100644 +index 24a7153..8380a64 100644 --- a/setup.py +++ b/setup.py -@@ -456,10 +456,10 @@ class PyBuildExt(build_ext): +@@ -474,10 +474,10 @@ class PyBuildExt(build_ext): if not cross_compiling: add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') diff --git a/bsp/buildroot/package/python3/0010-Abort-on-failed-module-build.patch b/bsp/buildroot/package/python3/0010-Abort-on-failed-module-build.patch index d2e98224..131354b3 100644 --- a/bsp/buildroot/package/python3/0010-Abort-on-failed-module-build.patch +++ b/bsp/buildroot/package/python3/0010-Abort-on-failed-module-build.patch @@ -1,4 +1,4 @@ -From 420e08fc9e77b650d11ce420f85257ce1710b70d Mon Sep 17 00:00:00 2001 +From 86ef08e36597e14cac06aef176f12375a27fdef5 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:43:24 +0100 Subject: [PATCH] Abort on failed module build @@ -14,17 +14,17 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py -index eab709e..86758ce 100644 +index 8380a64..15b39f5 100644 --- a/setup.py +++ b/setup.py -@@ -284,6 +284,7 @@ class PyBuildExt(build_ext): +@@ -296,6 +296,7 @@ class PyBuildExt(build_ext): print("Failed to build these modules:") print_three_column(failed) print() + sys.exit(1) - def build_extension(self, ext): - + if self.failed_on_import: + failed = self.failed_on_import[:] -- 2.6.4 diff --git a/bsp/buildroot/package/python3/0011-Serial-ioctl-workaround.patch b/bsp/buildroot/package/python3/0011-Serial-ioctl-workaround.patch index f1db62b6..9e7d79c4 100644 --- a/bsp/buildroot/package/python3/0011-Serial-ioctl-workaround.patch +++ b/bsp/buildroot/package/python3/0011-Serial-ioctl-workaround.patch @@ -1,4 +1,4 @@ -From f67b0073a30eb83d42a2ead0a62020dfe5db8d1e Mon Sep 17 00:00:00 2001 +From ace3ebd517ea0ac42208b6a06c7e8f82da3b9c1b Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Wed, 23 Dec 2015 11:44:02 +0100 Subject: [PATCH] Serial ioctl() workaround diff --git a/bsp/buildroot/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch b/bsp/buildroot/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch index e4fbf4e4..2e50c1b1 100644 --- a/bsp/buildroot/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch +++ b/bsp/buildroot/package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch @@ -1,4 +1,4 @@ -From 2cac07af643d989b352cccc3b96d86ed269df9b1 Mon Sep 17 00:00:00 2001 +From 45f482813de828415906e6a416c9c35450c38da7 Mon Sep 17 00:00:00 2001 From: Christophe Vu-Brugier Date: Wed, 23 Dec 2015 11:44:30 +0100 Subject: [PATCH] Do not adjust the shebang of Python scripts for diff --git a/bsp/buildroot/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch b/bsp/buildroot/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch index f9c72257..872f0402 100644 --- a/bsp/buildroot/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch +++ b/bsp/buildroot/package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch @@ -1,4 +1,4 @@ -From 4c0893221e2978854174806f7e14f7643eea32e7 Mon Sep 17 00:00:00 2001 +From 5858abdc25acd522869103d64b60a0c9687e2ec1 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Thu, 20 Nov 2014 13:24:59 +0100 Subject: [PATCH] Misc/python-config.sh.in: ensure sed invocations only match @@ -25,7 +25,7 @@ Signed-off-by: Peter Korsgaard 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in -index 64c81e5..f75eec5 100644 +index 30c6927..f905a71 100644 --- a/Misc/python-config.sh.in +++ b/Misc/python-config.sh.in @@ -29,12 +29,12 @@ prefix_real=$(installed_prefix "$0") @@ -52,7 +52,7 @@ index 64c81e5..f75eec5 100644 LIBDEST=${prefix}/lib/python${VERSION} -LIBPL=$(echo "@LIBPL@" | sed "s#$prefix_build#$prefix_real#") +LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#") - SO="@SO@" + SO="@EXT_SUFFIX@" PYTHONFRAMEWORK="@PYTHONFRAMEWORK@" INCDIR="-I$includedir/python${VERSION}${ABIFLAGS}" -- diff --git a/bsp/buildroot/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch b/bsp/buildroot/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch index 4a644275..f11d9464 100644 --- a/bsp/buildroot/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch +++ b/bsp/buildroot/package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch @@ -1,4 +1,4 @@ -From a87f08318cf40a27d41957dcc7312c3b3083ba86 Mon Sep 17 00:00:00 2001 +From be44636b36086ca1b6de24265b7c3cc0c2bae913 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:45:13 +0100 Subject: [PATCH] Do not harcode invalid path to ncursesw headers @@ -14,10 +14,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py -index 86758ce..565c304 100644 +index 15b39f5..9e08e7e 100644 --- a/setup.py +++ b/setup.py -@@ -1276,7 +1276,6 @@ class PyBuildExt(build_ext): +@@ -1296,7 +1296,6 @@ class PyBuildExt(build_ext): panel_library = 'panel' if curses_library == 'ncursesw': curses_defines.append(('HAVE_NCURSESW', '1')) diff --git a/bsp/buildroot/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch b/bsp/buildroot/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch index e358e444..22af71d1 100644 --- a/bsp/buildroot/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch +++ b/bsp/buildroot/package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch @@ -1,4 +1,4 @@ -From 807357dc50a5a97016ce22646b5eb6a5b64a1a5d Mon Sep 17 00:00:00 2001 +From 46fda6fc83500bf5663397f9d28b618e6b6b20c1 Mon Sep 17 00:00:00 2001 From: Samuel Cabrero Date: Wed, 23 Dec 2015 11:45:48 +0100 Subject: [PATCH] Override system locale and set to default when adding gcc @@ -20,10 +20,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py -index 565c304..8966779 100644 +index 9e08e7e..3feca04 100644 --- a/setup.py +++ b/setup.py -@@ -423,7 +423,7 @@ class PyBuildExt(build_ext): +@@ -441,7 +441,7 @@ class PyBuildExt(build_ext): tmpfile = os.path.join(self.build_temp, 'gccpaths') if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) diff --git a/bsp/buildroot/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch b/bsp/buildroot/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch index 02f1d164..54a0b87a 100644 --- a/bsp/buildroot/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch +++ b/bsp/buildroot/package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch @@ -1,4 +1,4 @@ -From 1153f503a38daf6388021575f1ad6ce8b702911b Mon Sep 17 00:00:00 2001 +From d2b5be9a0627e38d2280ef865dab3e74b7d2bde4 Mon Sep 17 00:00:00 2001 From: Christophe Vu-Brugier Date: Wed, 23 Dec 2015 11:46:14 +0100 Subject: [PATCH] Add importlib fix for PEP 3147 issue @@ -19,44 +19,51 @@ This effectively disables PEP 3147 for: Signed-off-by: Christophe Vu-Brugier --- - Lib/importlib/_bootstrap.py | 26 +++++--------------------- - 1 file changed, 5 insertions(+), 21 deletions(-) + Lib/importlib/_bootstrap_external.py | 37 +++++------------------------------- + 1 file changed, 5 insertions(+), 32 deletions(-) -diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py -index 5b91c05..a1755ec 100644 ---- a/Lib/importlib/_bootstrap.py -+++ b/Lib/importlib/_bootstrap.py -@@ -444,8 +444,6 @@ def cache_from_source(path, debug_override=None): - If debug_override is not None, then it must be a boolean and is used in - place of sys.flags.optimize. +diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py +index 616b17f..e30129c 100644 +--- a/Lib/importlib/_bootstrap_external.py ++++ b/Lib/importlib/_bootstrap_external.py +@@ -255,8 +255,6 @@ def cache_from_source(path, debug_override=None, *, optimization=None): + a True value is the same as setting 'optimization' to the empty string + while a False value is equivalent to setting 'optimization' to '1'. - If sys.implementation.cache_tag is None then NotImplementedError is raised. - """ - debug = not sys.flags.optimize if debug_override is None else debug_override - if debug: -@@ -454,33 +452,19 @@ def cache_from_source(path, debug_override=None): - suffixes = OPTIMIZED_BYTECODE_SUFFIXES + if debug_override is not None: + _warnings.warn('the debug_override parameter is deprecated; use ' +@@ -267,10 +265,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None): + optimization = '' if debug_override else 1 head, tail = _path_split(path) base, sep, rest = tail.rpartition('.') - tag = sys.implementation.cache_tag - if tag is None: - raise NotImplementedError('sys.implementation.cache_tag is None') -- filename = ''.join([(base if base else rest), sep, tag, suffixes[0]]) -- return _path_join(head, _PYCACHE, filename) -+ filename = ''.join([(base if base else rest), suffixes[0]]) -+ return _path_join(head, filename) +- almost_filename = ''.join([(base if base else rest), sep, tag]) ++ almost_filename = ''.join([(base if base else rest)]) + if optimization is None: + if sys.flags.optimize == 0: + optimization = '' +@@ -281,39 +276,17 @@ def cache_from_source(path, debug_override=None, *, optimization=None): + if not optimization.isalnum(): + raise ValueError('{!r} is not alphanumeric'.format(optimization)) + almost_filename = '{}.{}{}'.format(almost_filename, _OPT, optimization) +- return _path_join(head, _PYCACHE, almost_filename + BYTECODE_SUFFIXES[0]) ++ return _path_join(head, almost_filename + BYTECODE_SUFFIXES[0]) def source_from_cache(path): - """Given the path to a .pyc./.pyo file, return the path to its .py file. + """Given the path to a .pyc. file, return the path to its .py file. - The .pyc/.pyo file does not need to exist; this simply returns the path to -- the .py file calculated to correspond to the .pyc/.pyo file. If path does -- not conform to PEP 3147 format, ValueError will be raised. If + The .pyc file does not need to exist; this simply returns the path to +- the .py file calculated to correspond to the .pyc file. If path does +- not conform to PEP 3147/488 format, ValueError will be raised. If - sys.implementation.cache_tag is None then NotImplementedError is raised. -+ the .py file calculated to correspond to the .pyc/.pyo file. - +- ++ the .py file calculated to correspond to the .pyc file. """ - if sys.implementation.cache_tag is None: - raise NotImplementedError('sys.implementation.cache_tag is None') @@ -65,9 +72,19 @@ index 5b91c05..a1755ec 100644 - if pycache != _PYCACHE: - raise ValueError('{} not bottom-level directory in ' - '{!r}'.format(_PYCACHE, path)) -- if pycache_filename.count('.') != 2: -- raise ValueError('expected only 2 dots in ' +- dot_count = pycache_filename.count('.') +- if dot_count not in {2, 3}: +- raise ValueError('expected only 2 or 3 dots in ' - '{!r}'.format(pycache_filename)) +- elif dot_count == 3: +- optimization = pycache_filename.rsplit('.', 2)[-2] +- if not optimization.startswith(_OPT): +- raise ValueError("optimization portion of filename does not start " +- "with {!r}".format(_OPT)) +- opt_level = optimization[len(_OPT):] +- if not opt_level.isalnum(): +- raise ValueError("optimization level {!r} is not an alphanumeric " +- "value".format(optimization)) - base_filename = pycache_filename.partition('.')[0] + head, filename = _path_split(path) + base_filename = filename.partition('.')[0] diff --git a/bsp/buildroot/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch b/bsp/buildroot/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch index 6e0f07c8..ee0134a5 100644 --- a/bsp/buildroot/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch +++ b/bsp/buildroot/package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch @@ -1,4 +1,4 @@ -From 3cdd905ad1ff001713d20b768c001b5299a2e72c Mon Sep 17 00:00:00 2001 +From 1d2891204c6bf05d5e2eb0e5fa2ee78f6a2b755b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:47:00 +0100 Subject: [PATCH] Add an option to disable installation of test modules @@ -14,12 +14,12 @@ Signed-off-by: Samuel Martin 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index e0f9e0f..12fae84 100644 +index 9420860..d4c771a 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1133,8 +1133,30 @@ PLATDIR= plat-$(MACHDEP) - EXTRAPLATDIR= @EXTRAPLATDIR@ - MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR) +@@ -1166,8 +1166,30 @@ maninstall: altmaninstall + PLATDIR= @PLATDIR@ + MACHDEPS= $(PLATDIR) XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax -LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ - tkinter/test/test_ttk site-packages test \ @@ -50,7 +50,7 @@ index e0f9e0f..12fae84 100644 test/audiodata \ test/capath test/data \ test/cjkencodings test/decimaltestdata test/xmltestdata \ -@@ -1161,28 +1183,22 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ +@@ -1199,28 +1221,22 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \ test/test_importlib/namespace_pkgs/project3/parent/child \ test/test_importlib/namespace_pkgs/module_and_namespace_package \ test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \ @@ -92,10 +92,10 @@ index e0f9e0f..12fae84 100644 @for i in $(SCRIPTDIR) $(LIBDEST); \ do \ diff --git a/configure.ac b/configure.ac -index a3026b8..b7a8836 100644 +index bfb599e..9f3d226 100644 --- a/configure.ac +++ b/configure.ac -@@ -2659,6 +2659,12 @@ if test "$posix_threads" = "yes"; then +@@ -2895,6 +2895,12 @@ if test "$posix_threads" = "yes"; then fi diff --git a/bsp/buildroot/package/python3/0018-Add-an-option-to-disable-pydoc.patch b/bsp/buildroot/package/python3/0018-Add-an-option-to-disable-pydoc.patch index 22f194a5..670ad40c 100644 --- a/bsp/buildroot/package/python3/0018-Add-an-option-to-disable-pydoc.patch +++ b/bsp/buildroot/package/python3/0018-Add-an-option-to-disable-pydoc.patch @@ -1,4 +1,4 @@ -From 99ef88cb47a396e2c7005e59e50d34e0a60dd3cb Mon Sep 17 00:00:00 2001 +From a83b79b964700604de386800f86e5a55f53a0e17 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:47:11 +0100 Subject: [PATCH] Add an option to disable pydoc @@ -15,10 +15,10 @@ Signed-off-by: Samuel Martin 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 12fae84..5e2333e 100644 +index d4c771a..a98ad65 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1100,7 +1100,9 @@ bininstall: altbininstall +@@ -1134,7 +1134,9 @@ bininstall: altbininstall -rm -f $(DESTDIR)$(BINDIR)/idle3 (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) -rm -f $(DESTDIR)$(BINDIR)/pydoc3 @@ -28,7 +28,7 @@ index 12fae84..5e2333e 100644 -rm -f $(DESTDIR)$(BINDIR)/2to3 (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3) -rm -f $(DESTDIR)$(BINDIR)/pyvenv -@@ -1151,7 +1153,7 @@ LIBSUBDIRS= tkinter \ +@@ -1184,7 +1186,7 @@ LIBSUBDIRS= tkinter \ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/posix \ @@ -37,7 +37,7 @@ index 12fae84..5e2333e 100644 TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ test test/test_asyncio \ -@@ -1195,6 +1197,10 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ +@@ -1233,6 +1235,10 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ test/test_importlib/import_ test/test_importlib/source \ unittest/test unittest/test/testmock @@ -49,10 +49,10 @@ index 12fae84..5e2333e 100644 LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac -index b7a8836..2e75345 100644 +index 9f3d226..e9b6d6f 100644 --- a/configure.ac +++ b/configure.ac -@@ -2658,6 +2658,11 @@ if test "$posix_threads" = "yes"; then +@@ -2894,6 +2894,11 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_atfork) fi @@ -65,10 +65,10 @@ index b7a8836..2e75345 100644 AC_SUBST(TEST_MODULES) diff --git a/setup.py b/setup.py -index 8966779..69198db 100644 +index 3feca04..137911d 100644 --- a/setup.py +++ b/setup.py -@@ -2200,6 +2200,12 @@ def main(): +@@ -2220,6 +2220,12 @@ def main(): # turn off warnings when deprecated modules are imported import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) @@ -81,7 +81,7 @@ index 8966779..69198db 100644 setup(# PyPI Metadata (PEP 301) name = "Python", version = sys.version.split()[0], -@@ -2224,8 +2230,7 @@ def main(): +@@ -2244,8 +2250,7 @@ def main(): # If you change the scripts installed here, you also need to # check the PyBuildScripts command above, and change the links # created by the bininstall target in Makefile.pre.in diff --git a/bsp/buildroot/package/python3/0019-Add-an-option-to-disable-lib2to3.patch b/bsp/buildroot/package/python3/0019-Add-an-option-to-disable-lib2to3.patch index 8a22c0f2..f0d47701 100644 --- a/bsp/buildroot/package/python3/0019-Add-an-option-to-disable-lib2to3.patch +++ b/bsp/buildroot/package/python3/0019-Add-an-option-to-disable-lib2to3.patch @@ -1,4 +1,4 @@ -From 4d6bc8497ab740ae23a7091ff91dba06a63ba877 Mon Sep 17 00:00:00 2001 +From 3c877ea9f09913586f87064b7a2b9d2b49cb05aa Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:48:44 +0100 Subject: [PATCH] Add an option to disable lib2to3 @@ -15,10 +15,10 @@ Signed-off-by: Samuel Martin 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 5e2333e..6656f48 100644 +index a98ad65..3823940 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1104,7 +1104,9 @@ ifeq (@PYDOC@,yes) +@@ -1138,7 +1138,9 @@ ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) endif -rm -f $(DESTDIR)$(BINDIR)/2to3 @@ -28,7 +28,7 @@ index 5e2333e..6656f48 100644 -rm -f $(DESTDIR)$(BINDIR)/pyvenv (cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv) if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ -@@ -1144,7 +1146,6 @@ LIBSUBDIRS= tkinter \ +@@ -1177,7 +1179,6 @@ LIBSUBDIRS= tkinter \ html json http dbm xmlrpc \ sqlite3 \ logging csv wsgiref urllib \ @@ -36,7 +36,7 @@ index 5e2333e..6656f48 100644 ctypes ctypes/macholib \ idlelib idlelib/Icons \ distutils distutils/command $(XMLLIBSUBDIRS) \ -@@ -1186,9 +1187,6 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ +@@ -1224,9 +1225,6 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ test/test_importlib/namespace_pkgs/module_and_namespace_package \ test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \ sqlite3/test \ @@ -46,7 +46,7 @@ index 5e2333e..6656f48 100644 ctypes/test \ idlelib/idle_test \ distutils/tests \ -@@ -1201,6 +1199,14 @@ ifeq (@PYDOC@,yes) +@@ -1239,6 +1237,14 @@ ifeq (@PYDOC@,yes) LIBSUBDIRS += pydoc_data endif @@ -61,7 +61,7 @@ index 5e2333e..6656f48 100644 ifeq (@TEST_MODULES@,yes) LIBSUBDIRS += $(TESTSUBDIRS) endif -@@ -1296,10 +1302,12 @@ ifeq (@PYO_BUILD@,yes) +@@ -1337,10 +1343,12 @@ ifeq (@PYC_BUILD@,yes) -d $(LIBDEST)/site-packages -f \ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages endif @@ -75,10 +75,10 @@ index 5e2333e..6656f48 100644 # Create the PLATDIR source directory, if one wasn't distributed.. $(srcdir)/Lib/$(PLATDIR): diff --git a/configure.ac b/configure.ac -index 2e75345..0ed6b17 100644 +index e9b6d6f..652ad88 100644 --- a/configure.ac +++ b/configure.ac -@@ -2670,6 +2670,12 @@ AC_ARG_ENABLE(test-modules, +@@ -2906,6 +2906,12 @@ AC_ARG_ENABLE(test-modules, AS_HELP_STRING([--disable-test-modules], [disable test modules]), [ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ]) @@ -92,10 +92,10 @@ index 2e75345..0ed6b17 100644 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) AC_MSG_CHECKING([if --enable-ipv6 is specified]) diff --git a/setup.py b/setup.py -index 69198db..a2bf05a 100644 +index 137911d..722308b 100644 --- a/setup.py +++ b/setup.py -@@ -2201,10 +2201,11 @@ def main(): +@@ -2221,10 +2221,11 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) diff --git a/bsp/buildroot/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch b/bsp/buildroot/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch index 26a7b34c..20936841 100644 --- a/bsp/buildroot/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch +++ b/bsp/buildroot/package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch @@ -1,4 +1,4 @@ -From f218ef22019d4c03427113982edc42beddd05683 Mon Sep 17 00:00:00 2001 +From 9ae1dce0a2fa01fc3dbc83d8b8c1b56e4b1b162b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:49:01 +0100 Subject: [PATCH] Add option to disable the sqlite3 module @@ -11,10 +11,10 @@ Signed-off-by: Samuel Martin 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 6656f48..433cac1 100644 +index 3823940..c822dbd 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1144,7 +1144,6 @@ LIBSUBDIRS= tkinter \ +@@ -1177,7 +1177,6 @@ LIBSUBDIRS= tkinter \ email email/mime \ ensurepip ensurepip/_bundled \ html json http dbm xmlrpc \ @@ -22,7 +22,7 @@ index 6656f48..433cac1 100644 logging csv wsgiref urllib \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ -@@ -1186,7 +1185,6 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ +@@ -1224,7 +1223,6 @@ TESTSUBDIRS = tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \ test/test_importlib/namespace_pkgs/project3/parent/child \ test/test_importlib/namespace_pkgs/module_and_namespace_package \ test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \ @@ -30,7 +30,7 @@ index 6656f48..433cac1 100644 ctypes/test \ idlelib/idle_test \ distutils/tests \ -@@ -1207,6 +1205,11 @@ TESTSUBDIRS += lib2to3/tests \ +@@ -1245,6 +1243,11 @@ TESTSUBDIRS += lib2to3/tests \ lib2to3/tests/data/fixers/myfixes endif @@ -43,10 +43,10 @@ index 6656f48..433cac1 100644 LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac -index 0ed6b17..aaffbd6 100644 +index 652ad88..cae12ad 100644 --- a/configure.ac +++ b/configure.ac -@@ -2658,6 +2658,15 @@ if test "$posix_threads" = "yes"; then +@@ -2894,6 +2894,15 @@ if test "$posix_threads" = "yes"; then AC_CHECK_FUNCS(pthread_atfork) fi diff --git a/bsp/buildroot/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch b/bsp/buildroot/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch index fc3c9b43..7dfb339e 100644 --- a/bsp/buildroot/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch +++ b/bsp/buildroot/package/python3/0021-Add-an-option-to-disable-the-tk-module.patch @@ -1,4 +1,4 @@ -From 006bf215734ad63007de044fe7803f66f83a4d19 Mon Sep 17 00:00:00 2001 +From d0d42570e5a23c3bf559e0413ec97729fd2f9e24 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:49:14 +0100 Subject: [PATCH] Add an option to disable the tk module @@ -11,19 +11,19 @@ Signed-off-by: Samuel Martin 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 433cac1..e492d7b 100644 +index c822dbd..0a93c27 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1137,7 +1137,7 @@ PLATDIR= plat-$(MACHDEP) - EXTRAPLATDIR= @EXTRAPLATDIR@ - MACHDEPS= $(PLATDIR) $(EXTRAPLATDIR) +@@ -1170,7 +1170,7 @@ maninstall: altmaninstall + PLATDIR= @PLATDIR@ + MACHDEPS= $(PLATDIR) XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax -LIBSUBDIRS= tkinter \ +LIBSUBDIRS= \ site-packages \ asyncio \ collections concurrent concurrent/futures encodings \ -@@ -1155,8 +1155,7 @@ LIBSUBDIRS= tkinter \ +@@ -1188,8 +1188,7 @@ LIBSUBDIRS= tkinter \ venv venv/scripts venv/scripts/posix \ curses $(MACHDEPS) @@ -33,7 +33,7 @@ index 433cac1..e492d7b 100644 test/test_email test/test_email/data \ test/test_json \ test/audiodata \ -@@ -1210,6 +1209,12 @@ LIBSUBDIRS += sqlite3 +@@ -1248,6 +1247,12 @@ LIBSUBDIRS += sqlite3 TESTSUBDIRS += sqlite3/test endif @@ -47,10 +47,10 @@ index 433cac1..e492d7b 100644 LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac -index aaffbd6..7efd54f 100644 +index cae12ad..787b185 100644 --- a/configure.ac +++ b/configure.ac -@@ -2667,6 +2667,15 @@ if test "$SQLITE3" = "no" ; then +@@ -2903,6 +2903,15 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi diff --git a/bsp/buildroot/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch b/bsp/buildroot/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch index de78bb06..22f7a249 100644 --- a/bsp/buildroot/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch +++ b/bsp/buildroot/package/python3/0022-Add-an-option-to-disable-the-curses-module.patch @@ -1,4 +1,4 @@ -From 42725aef353df06f760f0a47b80001187d04d8b4 Mon Sep 17 00:00:00 2001 +From d04ec780bf7c0825ab260bd1d6b7292141b2dcde Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:49:30 +0100 Subject: [PATCH] Add an option to disable the curses module @@ -11,10 +11,10 @@ Signed-off-by: Samuel Martin 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index e492d7b..66b2c45 100644 +index 0a93c27..b97c21e 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1153,7 +1153,7 @@ LIBSUBDIRS= \ +@@ -1186,7 +1186,7 @@ LIBSUBDIRS= \ multiprocessing multiprocessing/dummy \ unittest \ venv venv/scripts venv/scripts/posix \ @@ -23,7 +23,7 @@ index e492d7b..66b2c45 100644 TESTSUBDIRS = test test/test_asyncio \ test/test_email test/test_email/data \ -@@ -1215,6 +1215,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ +@@ -1253,6 +1253,10 @@ TESTSUBDIRS += tkinter/test tkinter/test/test_tkinter \ tkinter/test/test_ttk endif @@ -35,10 +35,10 @@ index e492d7b..66b2c45 100644 LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac -index 7efd54f..e48f38e 100644 +index 787b185..0be47b2 100644 --- a/configure.ac +++ b/configure.ac -@@ -2676,6 +2676,15 @@ if test "$TK" = "no"; then +@@ -2912,6 +2912,15 @@ if test "$TK" = "no"; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _tkinter" fi diff --git a/bsp/buildroot/package/python3/0023-Add-an-option-to-disable-expat.patch b/bsp/buildroot/package/python3/0023-Add-an-option-to-disable-expat.patch index 9cb0799c..73f9b36b 100644 --- a/bsp/buildroot/package/python3/0023-Add-an-option-to-disable-expat.patch +++ b/bsp/buildroot/package/python3/0023-Add-an-option-to-disable-expat.patch @@ -1,4 +1,4 @@ -From f98b83bca09882d27bb04d7dbcd50f9979ad0569 Mon Sep 17 00:00:00 2001 +From 6281850ee8c3fb6d93b4997833af0cca4a48947b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:49:42 +0100 Subject: [PATCH] Add an option to disable expat @@ -18,10 +18,10 @@ Signed-off-by: Samuel Martin 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 66b2c45..884d5aa 100644 +index b97c21e..bdfee19 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1147,7 +1147,7 @@ LIBSUBDIRS= \ +@@ -1180,7 +1180,7 @@ LIBSUBDIRS= \ logging csv wsgiref urllib \ ctypes ctypes/macholib \ idlelib idlelib/Icons \ @@ -30,7 +30,7 @@ index 66b2c45..884d5aa 100644 importlib \ turtledemo \ multiprocessing multiprocessing/dummy \ -@@ -1219,6 +1219,10 @@ ifeq (@CURSES@,yes) +@@ -1257,6 +1257,10 @@ ifeq (@CURSES@,yes) LIBSUBDIRS += curses endif @@ -42,10 +42,10 @@ index 66b2c45..884d5aa 100644 LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac -index e48f38e..4bbd597 100644 +index 0be47b2..e6bcacc 100644 --- a/configure.ac +++ b/configure.ac -@@ -2355,13 +2355,21 @@ PKG_PROG_PKG_CONFIG +@@ -2591,13 +2591,21 @@ PKG_PROG_PKG_CONFIG AC_SUBST(DISABLED_EXTENSIONS) # Check for use of the system expat library @@ -73,10 +73,10 @@ index e48f38e..4bbd597 100644 # Check for use of the system libffi library AC_MSG_CHECKING(for --with-system-ffi) diff --git a/setup.py b/setup.py -index a2bf05a..fd3ac65 100644 +index 722308b..ecddb6a 100644 --- a/setup.py +++ b/setup.py -@@ -1414,7 +1414,7 @@ class PyBuildExt(build_ext): +@@ -1434,7 +1434,7 @@ class PyBuildExt(build_ext): # # More information on Expat can be found at www.libexpat.org. # diff --git a/bsp/buildroot/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch b/bsp/buildroot/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch index b4d77849..d3af94fb 100644 --- a/bsp/buildroot/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch +++ b/bsp/buildroot/package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch @@ -1,4 +1,4 @@ -From cf731841e1209c6faa99e2db4cf4c890e7c28080 Mon Sep 17 00:00:00 2001 +From 18265d05ee97ad0c43995acdadce2458b57d7d64 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:49:55 +0100 Subject: [PATCH] Add an option to disable CJK codecs @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac -index 4bbd597..05817f0 100644 +index e6bcacc..38b7515 100644 --- a/configure.ac +++ b/configure.ac -@@ -2675,6 +2675,12 @@ if test "$SQLITE3" = "no" ; then +@@ -2911,6 +2911,12 @@ if test "$SQLITE3" = "no" ; then DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _sqlite3" fi diff --git a/bsp/buildroot/package/python3/0025-Add-an-option-to-disable-NIS.patch b/bsp/buildroot/package/python3/0025-Add-an-option-to-disable-NIS.patch index cd6b19d7..ef9ff427 100644 --- a/bsp/buildroot/package/python3/0025-Add-an-option-to-disable-NIS.patch +++ b/bsp/buildroot/package/python3/0025-Add-an-option-to-disable-NIS.patch @@ -1,4 +1,4 @@ -From f99823ef41d6f5c8e67b198b04b289d9b6ef8570 Mon Sep 17 00:00:00 2001 +From 733ee65f308ec48be427463c06f372ca116ccada Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:50:11 +0100 Subject: [PATCH] Add an option to disable NIS @@ -12,10 +12,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac -index 05817f0..4fb35a8 100644 +index 38b7515..f25733a 100644 --- a/configure.ac +++ b/configure.ac -@@ -2681,6 +2681,12 @@ AC_ARG_ENABLE(codecs-cjk, +@@ -2917,6 +2917,12 @@ AC_ARG_ENABLE(codecs-cjk, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} _codecs_kr _codecs_jp _codecs_cn _codecs_tw _codecs_hk _codecs_iso2022" fi]) diff --git a/bsp/buildroot/package/python3/0026-Add-an-option-to-disable-unicodedata.patch b/bsp/buildroot/package/python3/0026-Add-an-option-to-disable-unicodedata.patch index a5880f26..56a51789 100644 --- a/bsp/buildroot/package/python3/0026-Add-an-option-to-disable-unicodedata.patch +++ b/bsp/buildroot/package/python3/0026-Add-an-option-to-disable-unicodedata.patch @@ -1,4 +1,4 @@ -From 4a32e709d128886dab10e59fad60fde005933aff Mon Sep 17 00:00:00 2001 +From 64fa1fc3a9aea7ffba7b96d08a14df91051f2b6f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:50:27 +0100 Subject: [PATCH] Add an option to disable unicodedata @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac -index 4fb35a8..58f2dd9 100644 +index f25733a..a7ddb2b 100644 --- a/configure.ac +++ b/configure.ac -@@ -2687,6 +2687,12 @@ AC_ARG_ENABLE(nis, +@@ -2923,6 +2923,12 @@ AC_ARG_ENABLE(nis, DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} nis" fi]) diff --git a/bsp/buildroot/package/python3/0027-Add-an-option-to-disable-IDLE.patch b/bsp/buildroot/package/python3/0027-Add-an-option-to-disable-IDLE.patch index c2b59e82..73fc3959 100644 --- a/bsp/buildroot/package/python3/0027-Add-an-option-to-disable-IDLE.patch +++ b/bsp/buildroot/package/python3/0027-Add-an-option-to-disable-IDLE.patch @@ -1,4 +1,4 @@ -From 9336cf4eb4ded1eaa83da5549e4aba62b34ef888 Mon Sep 17 00:00:00 2001 +From 2766bcdd8f9b7395ce32a6d8480ef0a2186f2098 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Wed, 23 Dec 2015 11:50:42 +0100 Subject: [PATCH] Add an option to disable IDLE @@ -14,10 +14,10 @@ Signed-off-by: Maxime Ripard 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in -index 884d5aa..48b4812 100644 +index bdfee19..2466615 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in -@@ -1098,7 +1098,9 @@ bininstall: altbininstall +@@ -1132,7 +1132,9 @@ bininstall: altbininstall -rm -f $(DESTDIR)$(LIBPC)/python3.pc (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc) -rm -f $(DESTDIR)$(BINDIR)/idle3 @@ -27,7 +27,7 @@ index 884d5aa..48b4812 100644 -rm -f $(DESTDIR)$(BINDIR)/pydoc3 ifeq (@PYDOC@,yes) (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) -@@ -1146,7 +1148,6 @@ LIBSUBDIRS= \ +@@ -1179,7 +1181,6 @@ LIBSUBDIRS= \ html json http dbm xmlrpc \ logging csv wsgiref urllib \ ctypes ctypes/macholib \ @@ -35,7 +35,7 @@ index 884d5aa..48b4812 100644 distutils distutils/command \ importlib \ turtledemo \ -@@ -1223,6 +1224,10 @@ ifeq (@EXPAT@,yes) +@@ -1261,6 +1262,10 @@ ifeq (@EXPAT@,yes) LIBSUBDIRS += $(XMLLIBSUBDIRS) endif @@ -47,10 +47,10 @@ index 884d5aa..48b4812 100644 LIBSUBDIRS += $(TESTSUBDIRS) endif diff --git a/configure.ac b/configure.ac -index 58f2dd9..0ba25e4 100644 +index a7ddb2b..6b59792 100644 --- a/configure.ac +++ b/configure.ac -@@ -2729,6 +2729,12 @@ AC_ARG_ENABLE(lib2to3, +@@ -2965,6 +2965,12 @@ AC_ARG_ENABLE(lib2to3, AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]), [ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ]) @@ -64,10 +64,10 @@ index 58f2dd9..0ba25e4 100644 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified]) AC_MSG_CHECKING([if --enable-ipv6 is specified]) diff --git a/setup.py b/setup.py -index fd3ac65..3655e57 100644 +index ecddb6a..7fe68e8 100644 --- a/setup.py +++ b/setup.py -@@ -2201,11 +2201,13 @@ def main(): +@@ -2221,11 +2221,13 @@ def main(): import warnings warnings.filterwarnings("ignore",category=DeprecationWarning) diff --git a/bsp/buildroot/package/python3/0028-Add-an-option-to-disable-decimal.patch b/bsp/buildroot/package/python3/0028-Add-an-option-to-disable-decimal.patch index df853259..1ac91dd6 100644 --- a/bsp/buildroot/package/python3/0028-Add-an-option-to-disable-decimal.patch +++ b/bsp/buildroot/package/python3/0028-Add-an-option-to-disable-decimal.patch @@ -1,4 +1,4 @@ -From 8fee92a85c170ac4ce24dda5a960f24b83d6f103 Mon Sep 17 00:00:00 2001 +From ff77defc777a57d4caee5183796fd44dd265e78b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:51:31 +0100 Subject: [PATCH] Add an option to disable decimal @@ -15,10 +15,10 @@ Signed-off-by: Thomas Petazzoni 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac -index 0ba25e4..536b9b2 100644 +index 6b59792..51e1760 100644 --- a/configure.ac +++ b/configure.ac -@@ -2388,13 +2388,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR) +@@ -2624,13 +2624,20 @@ AC_SUBST(LIBFFI_INCLUDEDIR) AC_MSG_RESULT($with_system_ffi) # Check for use of the system libmpdec library @@ -45,10 +45,10 @@ index 0ba25e4..536b9b2 100644 # Check for support for loadable sqlite extensions AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions) diff --git a/setup.py b/setup.py -index 3655e57..7f7627d 100644 +index 7fe68e8..364b350 100644 --- a/setup.py +++ b/setup.py -@@ -1968,7 +1968,7 @@ class PyBuildExt(build_ext): +@@ -1988,7 +1988,7 @@ class PyBuildExt(build_ext): def _decimal_ext(self): extra_compile_args = [] undef_macros = [] diff --git a/bsp/buildroot/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch b/bsp/buildroot/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch index 56b6ae1a..9ac9173d 100644 --- a/bsp/buildroot/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch +++ b/bsp/buildroot/package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch @@ -1,4 +1,4 @@ -From 53639100c2f7836ce9a51b5e5b9b4ea08ba1dc4e Mon Sep 17 00:00:00 2001 +From 789b0f99d7c1d25bfa9c05fd12f4d55bb70f377b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 23 Dec 2015 11:51:58 +0100 Subject: [PATCH] Add an option to disable the ossaudiodev module @@ -9,10 +9,10 @@ Signed-off-by: Thomas Petazzoni 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac -index 536b9b2..c1ab3a1 100644 +index 51e1760..c4c2353 100644 --- a/configure.ac +++ b/configure.ac -@@ -2403,6 +2403,12 @@ else +@@ -2639,6 +2639,12 @@ else fi AC_SUBST(MPDEC) diff --git a/bsp/buildroot/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch b/bsp/buildroot/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch new file mode 100644 index 00000000..156eb295 --- /dev/null +++ b/bsp/buildroot/package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch @@ -0,0 +1,62 @@ +From 4f851142b8f3149d23654117621285df34ec768b Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 23 Dec 2015 13:58:00 +0100 +Subject: [PATCH] Support PGEN_FOR_BUILD and FREEZE_IMPORTLIB_FOR_BUILD + +Signed-off-by: Thomas Petazzoni +--- + Makefile.pre.in | 10 ++++++++++ + configure.ac | 3 +++ + 2 files changed, 13 insertions(+) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 2466615..fdf622d 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -712,10 +712,15 @@ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) + ############################################################################ + # Importlib + ++ifeq (@FREEZE_IMPORTLIB_FOR_BUILD@,) + Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile + + Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) + $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) ++else ++Programs/_freeze_importlib: @FREEZE_IMPORTLIB_FOR_BUILD@ ++ cp $^ $@ ++endif + + Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib + ./Programs/_freeze_importlib \ +@@ -789,8 +794,13 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) + $(GRAMMAR_C): $(GRAMMAR_H) + touch $(GRAMMAR_C) + ++ifeq (@PGEN_FOR_BUILD@,) + $(PGEN): $(PGENOBJS) + $(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN) ++else ++$(PGEN): @PGEN_FOR_BUILD@ ++ cp $^ $@ ++endif + + Parser/grammar.o: $(srcdir)/Parser/grammar.c \ + $(srcdir)/Include/token.h \ +diff --git a/configure.ac b/configure.ac +index c4c2353..750c232 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -79,6 +79,9 @@ else + fi + AC_SUBST(PYTHON_FOR_BUILD) + ++AC_SUBST(PGEN_FOR_BUILD) ++AC_SUBST(FREEZE_IMPORTLIB_FOR_BUILD) ++ + dnl Ensure that if prefix is specified, it does not end in a slash. If + dnl it does, we get path names containing '//' which is both ugly and + dnl can cause trouble. +-- +2.6.4 + diff --git a/bsp/buildroot/package/python3/python3.hash b/bsp/buildroot/package/python3/python3.hash index 60ac2305..f6f70a20 100644 --- a/bsp/buildroot/package/python3/python3.hash +++ b/bsp/buildroot/package/python3/python3.hash @@ -1,4 +1,4 @@ -# From https://www.python.org/downloads/release/python-343/ -md5 7d092d1bba6e17f0d9bd21b49e441dd5 Python-3.4.3.tar.xz +# From https://www.python.org/downloads/release/python-352/ +md5 8906efbacfcdc7c3c9198aeefafd159e Python-3.5.2.tar.xz # Locally computed -sha256 b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8 Python-3.4.3.tar.xz +sha256 0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40 Python-3.5.2.tar.xz diff --git a/bsp/buildroot/package/python3/python3.mk b/bsp/buildroot/package/python3/python3.mk index a37b791a..34e12975 100644 --- a/bsp/buildroot/package/python3/python3.mk +++ b/bsp/buildroot/package/python3/python3.mk @@ -4,8 +4,8 @@ # ################################################################################ -PYTHON3_VERSION_MAJOR = 3.4 -PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).3 +PYTHON3_VERSION_MAJOR = 3.5 +PYTHON3_VERSION = $(PYTHON3_VERSION_MAJOR).2 PYTHON3_SOURCE = Python-$(PYTHON3_VERSION).tar.xz PYTHON3_SITE = http://python.org/ftp/python/$(PYTHON3_VERSION) PYTHON3_LICENSE = Python software foundation license v2, others @@ -36,8 +36,7 @@ HOST_PYTHON3_CONF_OPTS += \ --enable-unicodedata \ --disable-test-modules \ --disable-idle3 \ - --disable-ossaudiodev \ - --disable-pyo-build + --disable-ossaudiodev # Make sure that LD_LIBRARY_PATH overrides -rpath. # This is needed because libpython may be installed at the same time that @@ -79,10 +78,6 @@ ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY),y) PYTHON3_CONF_OPTS += --enable-old-stdlib-cache endif -ifeq ($(BR2_PACKAGE_PYTHON3_PY_ONLY),y) -PYTHON3_CONF_OPTS += --disable-pyc-build -endif - ifeq ($(BR2_PACKAGE_PYTHON3_SQLITE),y) PYTHON3_DEPENDENCIES += sqlite else @@ -137,27 +132,23 @@ PYTHON3_CONF_OPTS += \ --disable-tk \ --disable-nis \ --disable-idle3 \ - --disable-pyo-build + --disable-pyc-build -# This is needed to make sure the Python build process doesn't try to -# regenerate those files with the pgen program. Otherwise, it builds -# pgen for the target, and tries to run it on the host. - -define PYTHON3_TOUCH_GRAMMAR_FILES - touch $(@D)/Include/graminit.h $(@D)/Python/graminit.c +# Python builds two tools to generate code: 'pgen' and +# '_freeze_importlib'. Unfortunately, for the target Python, they are +# built for the target, while we need to run them at build time. So +# when installing host-python, we copy them to +# $(HOST_DIR)/usr/bin. And then, when building the target python +# package, we tell the configure script where they are located. +define HOST_PYTHON3_INSTALL_TOOLS + cp $(@D)/Parser/pgen $(HOST_DIR)/usr/bin/python-pgen + cp $(@D)/Programs/_freeze_importlib $(HOST_DIR)/usr/bin/python-freeze-importlib endef +HOST_PYTHON3_POST_INSTALL_HOOKS += HOST_PYTHON3_INSTALL_TOOLS -# This prevents the Python Makefile from regenerating the -# Python/importlib.h header if Lib/importlib/_bootstrap.py has changed -# because its generation is broken in a cross-compilation environment -# and importlib.h is not used. - -define PYTHON3_TOUCH_IMPORTLIB_H - touch $(@D)/Python/importlib.h -endef - -PYTHON3_POST_PATCH_HOOKS += PYTHON3_TOUCH_GRAMMAR_FILES -PYTHON3_POST_PATCH_HOOKS += PYTHON3_TOUCH_IMPORTLIB_H +PYTHON3_CONF_ENV += \ + PGEN_FOR_BUILD=$(HOST_DIR)/usr/bin/python-pgen \ + FREEZE_IMPORTLIB_FOR_BUILD=$(HOST_DIR)/usr/bin/python-freeze-importlib # # Remove useless files. In the config/ directory, only the Makefile @@ -218,16 +209,40 @@ PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/sysconfigdat $(eval $(autotools-package)) $(eval $(host-autotools-package)) +define PYTHON3_CREATE_PYC_FILES + PYTHONPATH="$(PYTHON3_PATH)" \ + $(HOST_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR) \ + support/scripts/pycompile.py \ + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) +endef + +ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY)$(BR2_PACKAGE_PYTHON3_PY_PYC),y) +PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_CREATE_PYC_FILES +endif + ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY),y) -define PYTHON3_FINALIZE_TARGET - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.py' -print0 | xargs -0 rm -f +define PYTHON3_REMOVE_PY_FILES + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.py' -print0 | \ + xargs -0 --no-run-if-empty rm -f endef +PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_PY_FILES endif +# Normally, *.pyc files should not have been compiled, but just in +# case, we make sure we remove all of them. ifeq ($(BR2_PACKAGE_PYTHON3_PY_ONLY),y) -define PYTHON3_FINALIZE_TARGET - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.pyc' -print0 | xargs -0 rm -f +define PYTHON3_REMOVE_PYC_FILES + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.pyc' -print0 | \ + xargs -0 --no-run-if-empty rm -f endef +PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_PYC_FILES endif -TARGET_FINALIZE_HOOKS += PYTHON3_FINALIZE_TARGET +# In all cases, we don't want to keep the optimized .opt-1.pyc and +# .opt-2.pyc files, since they can't work without their non-optimized +# variant. +define PYTHON3_REMOVE_OPTIMIZED_PYC_FILES + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) -name '*.opt-1.pyc' -print0 -o -name '*.opt-2.pyc' -print0 | \ + xargs -0 --no-run-if-empty rm -f +endef +PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_OPTIMIZED_PYC_FILES diff --git a/bsp/buildroot/package/qdecoder/qdecoder.hash b/bsp/buildroot/package/qdecoder/qdecoder.hash new file mode 100644 index 00000000..6b303107 --- /dev/null +++ b/bsp/buildroot/package/qdecoder/qdecoder.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 641d3df4895626d7a530c5d26724e9b5887e9845d4b47f42c1cbce4a17ebf6af qdecoder-r12.0.5.tar.gz diff --git a/bsp/buildroot/package/qemu/Config.in b/bsp/buildroot/package/qemu/Config.in index 082b5eec..ea6b9460 100644 --- a/bsp/buildroot/package/qemu/Config.in +++ b/bsp/buildroot/package/qemu/Config.in @@ -2,7 +2,7 @@ config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET bool # Only tested on these architectures default y if BR2_aarch64 || BR2_i386 || BR2_mips || BR2_mipsel \ - || BR2_x86_64 + || BR2_x86_64 || BR2_arm comment "QEMU requires a toolchain with wchar, threads" depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET diff --git a/bsp/buildroot/package/qemu/Config.in.host b/bsp/buildroot/package/qemu/Config.in.host index c5c3f05e..b3eb5906 100644 --- a/bsp/buildroot/package/qemu/Config.in.host +++ b/bsp/buildroot/package/qemu/Config.in.host @@ -1,8 +1,7 @@ config BR2_PACKAGE_HOST_QEMU bool "host qemu" - # So far, we only build the user mode emulation, so this list - # of architecture dependencies only takes into account this - # emulation mode. + select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE \ + if !BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE depends on BR2_arm || BR2_armeb || BR2_aarch64 || \ BR2_i386 || BR2_m68k || BR2_microblazeel || \ BR2_microblazebe || BR2_mips || BR2_mipsel || \ @@ -12,6 +11,31 @@ config BR2_PACKAGE_HOST_QEMU help QEMU is a generic and open source machine emulator and virtualizer. - This option builds a user emulator for your selected architecture. + This option builds an emulator for your selected architecture. http://www.qemu.org + +if BR2_PACKAGE_HOST_QEMU + +comment "Emulators selection" + +config BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE + bool "Enable system emulation" + help + Enables the build of the system emulator, which allows to + boot an entire system in Qemu. + +config BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE + bool "Enable Linux user-land emulation" + help + Enables the build of the user-land emulator, which allows to + run user-space applications. + +config BR2_PACKAGE_HOST_QEMU_VDE2 + bool "VDE2 support" + help + Enables VDE2 support. VDE2 stands for Virtual Distributed + Ethernet and can be used to create virtual switches to + "plug" both physical and virtual machines in them. + +endif diff --git a/bsp/buildroot/package/qemu/qemu.hash b/bsp/buildroot/package/qemu/qemu.hash index cccb0593..2d6d96cb 100644 --- a/bsp/buildroot/package/qemu/qemu.hash +++ b/bsp/buildroot/package/qemu/qemu.hash @@ -1,2 +1,2 @@ # Locally computed, tarball verified with GPG signature -sha256 3443887401619fe33bfa5d900a4f2d6a79425ae2b7e43d5b8c36eb7a683772d4 qemu-2.5.0.tar.bz2 +sha256 c9ac4a651b273233d21b8bec32e30507cb9cce7900841febc330956a1a8434ec qemu-2.6.0.tar.bz2 diff --git a/bsp/buildroot/package/qemu/qemu.mk b/bsp/buildroot/package/qemu/qemu.mk index 1b08b42f..5ca0e77f 100644 --- a/bsp/buildroot/package/qemu/qemu.mk +++ b/bsp/buildroot/package/qemu/qemu.mk @@ -4,7 +4,7 @@ # ################################################################################ -QEMU_VERSION = 2.5.0 +QEMU_VERSION = 2.6.0 QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2 QEMU_SITE = http://wiki.qemu.org/download QEMU_LICENSE = GPLv2, LGPLv2.1, MIT, BSD-3c, BSD-2c, Others/BSD-1c @@ -23,7 +23,6 @@ HOST_QEMU_DEPENDENCIES = host-pkgconf host-python host-zlib host-libglib2 host-p # arm arm # armeb armeb # bfin not supported -# i386 i386 # i486 i386 # i586 i386 # i686 i386 @@ -62,9 +61,19 @@ endif ifeq ($(HOST_QEMU_ARCH),sh4aeb) HOST_QEMU_ARCH = sh4eb endif -HOST_QEMU_TARGETS = $(HOST_QEMU_ARCH)-linux-user -ifeq ($(BR2_PACKAGE_HOST_QEMU),y) +ifeq ($(BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE),y) +HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-softmmu +HOST_QEMU_OPTS += --enable-system --enable-fdt +HOST_QEMU_DEPENDENCIES += host-dtc +else +HOST_QEMU_OPTS += --disable-system +endif + +ifeq ($(BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE),y) +HOST_QEMU_TARGETS += $(HOST_QEMU_ARCH)-linux-user +HOST_QEMU_OPTS += --enable-linux-user + HOST_QEMU_HOST_SYSTEM_TYPE = $(shell uname -s) ifneq ($(HOST_QEMU_HOST_SYSTEM_TYPE),Linux) $(error "qemu-user can only be used on Linux hosts") @@ -85,11 +94,20 @@ HOST_QEMU_COMPARE_VERSION = $(shell test $(HOST_QEMU_HOST_SYSTEM_VERSION) -ge $( # built with kernel headers that are older or the same as the kernel # version running on the host machine. # + ifeq ($(BR_BUILDING),y) ifneq ($(HOST_QEMU_COMPARE_VERSION),OK) $(error "Refusing to build qemu-user: target Linux version newer than host's.") endif -endif +endif # BR_BUILDING + +else # BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE +HOST_QEMU_OPTS += --disable-linux-user +endif # BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE + +ifeq ($(BR2_PACKAGE_HOST_QEMU_VDE2),y) +HOST_QEMU_OPTS += --enable-vde +HOST_QEMU_DEPENDENCIES += host-vde2 endif define HOST_QEMU_CONFIGURE_CMDS @@ -101,7 +119,8 @@ define HOST_QEMU_CONFIGURE_CMDS --host-cc="$(HOSTCC)" \ --python=$(HOST_DIR)/usr/bin/python2 \ --extra-cflags="$(HOST_CFLAGS)" \ - --extra-ldflags="$(HOST_LDFLAGS)" + --extra-ldflags="$(HOST_LDFLAGS)" \ + $(HOST_QEMU_OPTS) endef define HOST_QEMU_BUILD_CMDS diff --git a/bsp/buildroot/package/qextserialport/qextserialport.hash b/bsp/buildroot/package/qextserialport/qextserialport.hash new file mode 100644 index 00000000..60c0ff32 --- /dev/null +++ b/bsp/buildroot/package/qextserialport/qextserialport.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 23e3b10a8d8a1e2fb071047144222c43d150748ce6670e5d047ba5b0502ad0b2 qextserialport-ada321a9ee463f628e7b781b8ed00ff219152158.tar.gz diff --git a/bsp/buildroot/package/qjson/Config.in b/bsp/buildroot/package/qjson/Config.in index 0f0cc098..5c423bf3 100644 --- a/bsp/buildroot/package/qjson/Config.in +++ b/bsp/buildroot/package/qjson/Config.in @@ -1,8 +1,13 @@ config BR2_PACKAGE_QJSON bool "qjson" + depends on !BR2_STATIC_LIBS depends on BR2_PACKAGE_QT || BR2_PACKAGE_QT5 help QJson is a Qt-based library that maps JSON data to QVariant objects and vice versa. http://qjson.sourceforge.net + +comment "qjson needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + depends on !BR2_PACKAGE_QT && !BR2_PACKAGE_QT5 diff --git a/bsp/buildroot/package/qjson/qjson.hash b/bsp/buildroot/package/qjson/qjson.hash new file mode 100644 index 00000000..62822276 --- /dev/null +++ b/bsp/buildroot/package/qjson/qjson.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 863f0dd6b7199f84acf1e2487735830fab316a9a3a5e1651130ad153a231f2ed qjson-ba273682a9d33a7b3090e74f4742b5f3bf6c9b02.tar.gz diff --git a/bsp/buildroot/package/qlibc/0002-obey-destdir.patch b/bsp/buildroot/package/qlibc/0002-obey-destdir.patch index 02b0bc49..f007aa4f 100644 --- a/bsp/buildroot/package/qlibc/0002-obey-destdir.patch +++ b/bsp/buildroot/package/qlibc/0002-obey-destdir.patch @@ -1,90 +1,144 @@ -Make sure the Makefile obeys $(DESTDIR) +From dbdc772a35244b45c725a72fad5ddade9bd7d521 Mon Sep 17 00:00:00 2001 +From: pcarpent +Date: Tue, 15 Dec 2015 10:23:44 +0100 +Subject: [PATCH] fix makefile -Signed-off-by: Thomas Petazzoni +add DESTDIR variables in install targets -Index: b/src/Makefile.in -=================================================================== +Signed-off-by: Bernd Kuhls +(downloaded from upstream commit not included in v2.4.1 + https://github.com/wolkykim/qlibc/commit/dbdc772a35244b45c725a72fad5ddade9bd7d521) +--- + src/Makefile.in | 110 ++++++++++++++++++++++++++++---------------------------- + 1 file changed, 55 insertions(+), 55 deletions(-) + +diff --git a/src/Makefile.in b/src/Makefile.in +index 8a7ab43..4e274ed 100644 --- a/src/Makefile.in +++ b/src/Makefile.in -@@ -120,48 +120,48 @@ +@@ -122,70 +122,70 @@ qlibcext: ${QLIBCEXT_OBJS} install: ${INSTALL_TARGETS} install-qlibc: qlibc - ${MKDIR_P} ${INST_INCDIR}/qlibc - ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h ${INST_INCDIR}/qlibc/qlibc.h +- ${MKDIR_P} ${INST_INCDIR}/qlibc/containers/ +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qtreetbl.h ${INST_INCDIR}/qlibc/containers/qtreetbl.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qhashtbl.h ${INST_INCDIR}/qlibc/containers/qhashtbl.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qhasharr.h ${INST_INCDIR}/qlibc/containers/qhasharr.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qlisttbl.h ${INST_INCDIR}/qlibc/containers/qlisttbl.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qlist.h ${INST_INCDIR}/qlibc/containers/qlist.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qvector.h ${INST_INCDIR}/qlibc/containers/qvector.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qqueue.h ${INST_INCDIR}/qlibc/containers/qqueue.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qstack.h ${INST_INCDIR}/qlibc/containers/qstack.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qgrow.h ${INST_INCDIR}/qlibc/containers/qgrow.h +- ${MKDIR_P} ${INST_INCDIR}/qlibc/utilities/ +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qcount.h ${INST_INCDIR}/qlibc/utilities/qcount.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qencode.h ${INST_INCDIR}/qlibc/utilities/qencode.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qfile.h ${INST_INCDIR}/qlibc/utilities/qfile.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qhash.h ${INST_INCDIR}/qlibc/utilities/qhash.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qio.h ${INST_INCDIR}/qlibc/utilities/qio.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qsocket.h ${INST_INCDIR}/qlibc/utilities/qsocket.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qstring.h ${INST_INCDIR}/qlibc/utilities/qstring.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qsystem.h ${INST_INCDIR}/qlibc/utilities/qsystem.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qtime.h ${INST_INCDIR}/qlibc/utilities/qtime.h +- ${MKDIR_P} ${INST_INCDIR}/qlibc/ipc/ +- ${INSTALL_DATA} ${QLIBC_INCDIR}/ipc/qsem.h ${INST_INCDIR}/qlibc/ipc/qsem.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/ipc/qshm.h ${INST_INCDIR}/qlibc/ipc/qshm.h - ${MKDIR_P} ${INST_LIBDIR} - ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} ${INST_LIBDIR}/${QLIBC_LIBNAME} - ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} ${INST_LIBDIR}/${QLIBC_SLIBREALNAME} - ( cd ${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} ) -+ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibc.h -+ ${MKDIR_P} ${DESTDIR}/${INST_LIBDIR} -+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBC_LIBNAME} -+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBREALNAME} -+ ( cd ${DESTDIR}/${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} ) ++ ${MKDIR_P} $(DESTDIR)/${INST_INCDIR}/qlibc ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibc.h $(DESTDIR)/${INST_INCDIR}/qlibc/qlibc.h ++ ${MKDIR_P} $(DESTDIR)/${INST_INCDIR}/qlibc/containers/ ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qtreetbl.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qtreetbl.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qhashtbl.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qhashtbl.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qhasharr.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qhasharr.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qlisttbl.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qlisttbl.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qlist.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qlist.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qvector.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qvector.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qqueue.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qqueue.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qstack.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qstack.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/containers/qgrow.h $(DESTDIR)/${INST_INCDIR}/qlibc/containers/qgrow.h ++ ${MKDIR_P} $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/ ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qcount.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qcount.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qencode.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qencode.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qfile.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qfile.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qhash.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qhash.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qio.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qio.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qsocket.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qsocket.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qstring.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qstring.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qsystem.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qsystem.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/utilities/qtime.h $(DESTDIR)/${INST_INCDIR}/qlibc/utilities/qtime.h ++ ${MKDIR_P} $(DESTDIR)/${INST_INCDIR}/qlibc/ipc/ ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/ipc/qsem.h $(DESTDIR)/${INST_INCDIR}/qlibc/ipc/qsem.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/ipc/qshm.h $(DESTDIR)/${INST_INCDIR}/qlibc/ipc/qshm.h ++ ${MKDIR_P} $(DESTDIR)/${INST_LIBDIR} ++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_LIBNAME} $(DESTDIR)/${INST_LIBDIR}/${QLIBC_LIBNAME} ++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBC_SLIBREALNAME} $(DESTDIR)/${INST_LIBDIR}/${QLIBC_SLIBREALNAME} ++ ( cd $(DESTDIR)/${INST_LIBDIR}; ${LN_S} -f ${QLIBC_SLIBREALNAME} ${QLIBC_SLIBNAME} ) uninstall-qlibc: - ${RM} -f ${INST_INCDIR}/qlibc/qlibc.h +- ${RM} -rf ${INST_INCDIR}/qlibc/containers +- ${RM} -rf ${INST_INCDIR}/qlibc/utilities +- ${RM} -rf ${INST_INCDIR}/qlibc/ipc - ${RM} -f ${INST_LIBDIR}/${QLIBC_LIBNAME} - ${RM} -f ${INST_LIBDIR}/${QLIBC_SLIBREALNAME} - ${RM} -f ${INST_LIBDIR}/${QLIBC_SLIBNAME} -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibc.h -+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_LIBNAME} -+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBREALNAME} -+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBC_SLIBNAME} ++ ${RM} -f $(DESTDIR)/${INST_INCDIR}/qlibc/qlibc.h ++ ${RM} -rf $(DESTDIR)/${INST_INCDIR}/qlibc/containers ++ ${RM} -rf $(DESTDIR)/${INST_INCDIR}/qlibc/utilities ++ ${RM} -rf $(DESTDIR)/${INST_INCDIR}/qlibc/ipc ++ ${RM} -f $(DESTDIR)/${INST_LIBDIR}/${QLIBC_LIBNAME} ++ ${RM} -f $(DESTDIR)/${INST_LIBDIR}/${QLIBC_SLIBREALNAME} ++ ${RM} -f $(DESTDIR)/${INST_LIBDIR}/${QLIBC_SLIBNAME} install-qlibcext: qlibcext - ${MKDIR_P} ${INST_INCDIR}/qlibc -- ${MKDIR_P} ${INST_INCDIR}/qlibc/qlibcext/ - ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h ${INST_INCDIR}/qlibc/qlibcext.h -- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qconfig.h ${INST_INCDIR}/qlibc/qlibcext/qconfig.h -- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qaconf.h ${INST_INCDIR}/qlibc/qlibcext/qaconf.h -- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qlog.h ${INST_INCDIR}/qlibc/qlibcext/qlog.h -- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qhttpclient.h ${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h -- ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qdatabase.h ${INST_INCDIR}/qlibc/qlibcext/qdatabase.h +- ${MKDIR_P} ${INST_INCDIR}/qlibc/extensions/ +- ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qconfig.h ${INST_INCDIR}/qlibc/extensions/qconfig.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qaconf.h ${INST_INCDIR}/qlibc/extensions/qaconf.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qlog.h ${INST_INCDIR}/qlibc/extensions/qlog.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qhttpclient.h ${INST_INCDIR}/qlibc/extensions/qhttpclient.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qdatabase.h ${INST_INCDIR}/qlibc/extensions/qdatabase.h +- ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qtokenbucket.h ${INST_INCDIR}/qlibc/extensions/qtokenbucket.h - ${MKDIR_P} ${INST_LIBDIR} - ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} ${INST_LIBDIR}/${QLIBCEXT_LIBNAME} - ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME} - ( cd ${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} ) -+ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc -+ ${MKDIR_P} ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/ -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext.h -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qconfig.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qconfig.h -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qaconf.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qaconf.h -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qlog.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qlog.h -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qhttpclient.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h -+ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext/qdatabase.h ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qdatabase.h -+ ${MKDIR_P} ${DESTDIR}/${INST_LIBDIR} -+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_LIBNAME} -+ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME} -+ ( cd ${DESTDIR}/${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} ) ++ ${MKDIR_P} $(DESTDIR)/${INST_INCDIR}/qlibc ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/qlibcext.h $(DESTDIR)/${INST_INCDIR}/qlibc/qlibcext.h ++ ${MKDIR_P} $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/ ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qconfig.h $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/qconfig.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qaconf.h $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/qaconf.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qlog.h $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/qlog.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qhttpclient.h $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/qhttpclient.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qdatabase.h $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/qdatabase.h ++ ${INSTALL_DATA} ${QLIBC_INCDIR}/extensions/qtokenbucket.h $(DESTDIR)/${INST_INCDIR}/qlibc/extensions/qtokenbucket.h ++ ${MKDIR_P} $(DESTDIR)/${INST_LIBDIR} ++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_LIBNAME} $(DESTDIR)/${INST_LIBDIR}/${QLIBCEXT_LIBNAME} ++ ${INSTALL_DATA} ${QLIBC_LIBDIR}/${QLIBCEXT_SLIBREALNAME} $(DESTDIR)/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ++ ( cd $(DESTDIR)/${INST_LIBDIR}; ${LN_S} -f ${QLIBCEXT_SLIBREALNAME} ${QLIBCEXT_SLIBNAME} ) uninstall-qlibcext: - ${RM} -f ${INST_INCDIR}/qlibc/qlibcext.h -- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qconfig.h -- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qaconf.h -- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qlog.h -- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h -- ${RM} -f ${INST_INCDIR}/qlibc/qlibcext/qdatabase.h +- ${RM} -rf ${INST_INCDIR}/qlibc/extensions - ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_LIBNAME} - ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME} - ${RM} -f ${INST_LIBDIR}/${QLIBCEXT_SLIBNAME} -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext.h -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qconfig.h -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qaconf.h -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qlog.h -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qhttpclient.h -+ ${RM} -f ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext/qdatabase.h -+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_LIBNAME} -+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME} -+ ${RM} -f ${DESTDIR}/${INST_LIBDIR}/${QLIBCEXT_SLIBNAME} ++ ${RM} -f $(DESTDIR)/${INST_INCDIR}/qlibc/qlibcext.h ++ ${RM} -rf $(DESTDIR)/${INST_INCDIR}/qlibc/extensions ++ ${RM} -f $(DESTDIR)/${INST_LIBDIR}/${QLIBCEXT_LIBNAME} ++ ${RM} -f $(DESTDIR)/${INST_LIBDIR}/${QLIBCEXT_SLIBREALNAME} ++ ${RM} -f $(DESTDIR)/${INST_LIBDIR}/${QLIBCEXT_SLIBNAME} deinstall: uninstall uninstall: uninstall-qlibc uninstall-qlibcext -- ${RMDIR} ${INST_INCDIR}/qlibc/qlibcext - ${RMDIR} ${INST_INCDIR}/qlibc -+ ${RMDIR} ${DESTDIR}/${INST_INCDIR}/qlibc/qlibcext -+ ${RMDIR} ${DESTDIR}/${INST_INCDIR}/qlibc ++ ${RMDIR} $(DESTDIR)/${INST_INCDIR}/qlibc clean: ${RM} -f ${QLIBC_OBJS} diff --git a/bsp/buildroot/package/qlibc/qlibc.hash b/bsp/buildroot/package/qlibc/qlibc.hash new file mode 100644 index 00000000..6b8e4d89 --- /dev/null +++ b/bsp/buildroot/package/qlibc/qlibc.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1f9aa5eefd28c45d409130a35104816d41405da64fe900f70a1c41150891501a qlibc-v2.4.1.tar.gz diff --git a/bsp/buildroot/package/qlibc/qlibc.mk b/bsp/buildroot/package/qlibc/qlibc.mk index 6a747e4e..a146fa38 100644 --- a/bsp/buildroot/package/qlibc/qlibc.mk +++ b/bsp/buildroot/package/qlibc/qlibc.mk @@ -4,10 +4,10 @@ # ################################################################################ -QLIBC_VERSION = v2.1.6 +QLIBC_VERSION = v2.4.1 QLIBC_SITE = $(call github,wolkykim,qlibc,$(QLIBC_VERSION)) QLIBC_LICENSE = BSD-2c -QLIBC_LICENSE_FILES = COPYING +QLIBC_LICENSE_FILES = LICENSE # We're patching configure.ac QLIBC_AUTORECONF = YES diff --git a/bsp/buildroot/package/qt/0010-Fix-for-platform-socklen_t-on-other-C-libraries-than.patch b/bsp/buildroot/package/qt/0010-Fix-for-platform-socklen_t-on-other-C-libraries-than.patch new file mode 100644 index 00000000..9b165532 --- /dev/null +++ b/bsp/buildroot/package/qt/0010-Fix-for-platform-socklen_t-on-other-C-libraries-than.patch @@ -0,0 +1,43 @@ +From 0bf90de93b9fe21df32319e27b2507154fa8a21d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Fri, 15 Apr 2016 00:37:26 +0200 +Subject: [PATCH] Fix for platform socklen_t on other C libraries than glibc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This helps to make sure that QT_SOCKLEN_T is defined to be 'int' +only when its glibc < 2 and not also for the libraries which may define +it as per standards but are not glibc, e.g. musl. + +This patch is adapted from Qt5 [1]. + +[1] +https://github.com/qtproject/qtbase/commit/813f468a14fb84af43c1f8fc0a1430277358eba2 + +Signed-off-by: Jörg Krause +--- + mkspecs/linux-g++/qplatformdefs.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/mkspecs/linux-g++/qplatformdefs.h b/mkspecs/linux-g++/qplatformdefs.h +index de751dd..d4146ed 100644 +--- a/mkspecs/linux-g++/qplatformdefs.h ++++ b/mkspecs/linux-g++/qplatformdefs.h +@@ -86,10 +86,10 @@ + + #undef QT_SOCKLEN_T + +-#if defined(__GLIBC__) && (__GLIBC__ >= 2) +-#define QT_SOCKLEN_T socklen_t +-#else ++#if defined(__GLIBC__) && (__GLIBC__ < 2) + #define QT_SOCKLEN_T int ++#else ++#define QT_SOCKLEN_T socklen_t + #endif + + #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) +-- +2.8.0 + diff --git a/bsp/buildroot/package/qt/0011-Link-with-ldl-option-only-when-it-is-supported.patch b/bsp/buildroot/package/qt/0011-Link-with-ldl-option-only-when-it-is-supported.patch new file mode 100644 index 00000000..f3d47f75 --- /dev/null +++ b/bsp/buildroot/package/qt/0011-Link-with-ldl-option-only-when-it-is-supported.patch @@ -0,0 +1,116 @@ +From 438f088ad520ac91ae47dba9a515ab0d1088c89c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Fri, 15 Apr 2016 03:32:02 +0200 +Subject: [PATCH] Link with -ldl option only when it is supported +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +`-ldl` option is used unconditionally in `QMAKE_LIBS_DYNLOAD` while libdl is +not supported when libc is static. As the value of `QMAKE_LIBS_DYNLOAD` goes +into 'Libs.private' field of the pkgconfig files created by qmake, static +linking with qt will fail with: + /usr/bin/ld: cannot find -ldl + +Fix this issue by adding a build test to configure to check if libdl is +supported. `QMAKE_LIBS_DYNLOAD` in "src/corelib/plugin/plugin.pri" is now used +only if libdl is available. + +Backported from Qt5: +https://github.com/qtproject/qtbase/commit/f669ea0d54302de31456d57286aa0e4ca1443e98 + +Signed-off-by: Jörg Krause +--- + config.tests/unix/libdl/libdl.cpp | 39 +++++++++++++++++++++++++++++++++++++++ + config.tests/unix/libdl/libdl.pro | 3 +++ + configure | 6 ++++++ + src/corelib/plugin/plugin.pri | 2 +- + 4 files changed, 49 insertions(+), 1 deletion(-) + create mode 100644 config.tests/unix/libdl/libdl.cpp + create mode 100644 config.tests/unix/libdl/libdl.pro + +diff --git a/config.tests/unix/libdl/libdl.cpp b/config.tests/unix/libdl/libdl.cpp +new file mode 100644 +index 0000000..28a8233 +--- /dev/null ++++ b/config.tests/unix/libdl/libdl.cpp +@@ -0,0 +1,39 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Contact: http://www.qt.io/licensing/ ++** ++** This file is part of the config.tests of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL21$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms ++** and conditions see http://www.qt.io/terms-conditions. For further ++** information use the contact form at http://www.qt.io/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 or version 3 as published by the Free ++** Software Foundation and appearing in the file LICENSE.LGPLv21 and ++** LICENSE.LGPLv3 included in the packaging of this file. Please review the ++** following information to ensure the GNU Lesser General Public License ++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** As a special exception, The Qt Company gives you certain additional ++** rights. These rights are described in The Qt Company LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include ++ ++int main(int, char **) ++{ ++ dlopen(0, 0); ++} +diff --git a/config.tests/unix/libdl/libdl.pro b/config.tests/unix/libdl/libdl.pro +new file mode 100644 +index 0000000..a643934 +--- /dev/null ++++ b/config.tests/unix/libdl/libdl.pro +@@ -0,0 +1,3 @@ ++SOURCES = libdl.cpp ++CONFIG -= qt dylib ++LIBS += -ldl +\ No newline at end of file +diff --git a/configure b/configure +index 10ad7ca..1c70691 100755 +--- a/configure ++++ b/configure +@@ -5506,6 +5506,12 @@ if [ "$CFG_LIBPNG" = "auto" ]; then + fi + fi + ++# detect dl ++if ! compileTest unix/libdl "libdl"; then ++ QMakeVar add DEFINES QT_NO_DYNAMIC_LIBRARY ++ QMAKE_CONFIG="$QMAKE_CONFIG no-libdl" ++fi ++ + # detect accessibility + if [ "$CFG_ACCESSIBILITY" = "auto" ]; then + if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then +diff --git a/src/corelib/plugin/plugin.pri b/src/corelib/plugin/plugin.pri +index eb7a7f7..c342f2e 100644 +--- a/src/corelib/plugin/plugin.pri ++++ b/src/corelib/plugin/plugin.pri +@@ -32,4 +32,4 @@ integrity { + SOURCES += plugin/qlibrary_unix.cpp + } + +-LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD ++!no-libdl: LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD +-- +2.8.0 + diff --git a/bsp/buildroot/package/qt/Config.in b/bsp/buildroot/package/qt/Config.in index 248af00e..fa5235d6 100644 --- a/bsp/buildroot/package/qt/Config.in +++ b/bsp/buildroot/package/qt/Config.in @@ -33,6 +33,7 @@ comment "Qt standard (X11) not available (need X.org)" config BR2_PACKAGE_QT_X11 bool "Qt standard (X11)" depends on BR2_PACKAGE_XORG7 + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_FONTCONFIG select BR2_PACKAGE_XLIB_LIBXI select BR2_PACKAGE_XLIB_LIBX11 @@ -56,6 +57,7 @@ config BR2_PACKAGE_QT_DEBUG config BR2_PACKAGE_QT_DEMOS bool "Compile and install Qt demos (with code)" + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_QT_GUI_MODULE help If unsure, say N. @@ -69,6 +71,7 @@ config BR2_PACKAGE_QT_TRANSLATION_FILES config BR2_PACKAGE_QT_EXAMPLES bool "Compile and install Qt examples (with code)" + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # Qt GUI module select BR2_PACKAGE_QT_GUI_MODULE help If unsure, say N. @@ -123,6 +126,7 @@ config BR2_PACKAGE_QT_CONFIG_FILE config BR2_PACKAGE_QT_QT3SUPPORT bool "Compatibility with Qt3" depends on BR2_PACKAGE_QT_GUI_MODULE + select BR2_PACKAGE_QT_SQL_MODULE help Turns on support for older Qt3. This will create an additional library with proxy code and increase the space required on target. @@ -130,12 +134,16 @@ config BR2_PACKAGE_QT_QT3SUPPORT config BR2_PACKAGE_QT_GUI_MODULE bool "Gui Module" + depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # nios2 Binutils 2.25.1 bug select BR2_PACKAGE_QT_NETWORK default y help Turns on support for Gui applications. If your board doesn't have video output, or you don't require Qt GUI, say n. +comment "Qt Gui Module needs a toolchain not affected by Binutils bug 19405" + depends on BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 + if BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_QT_EMBEDDED @@ -258,7 +266,7 @@ config BR2_PACKAGE_QT_SYSTEMJPEG config BR2_PACKAGE_QT_QTJPEG bool "Use Qt bundled libjpeg" help - Link against libjpeg proveded with Qt + Link against libjpeg provided with Qt endchoice choice @@ -295,6 +303,11 @@ config BR2_PACKAGE_QT_QTTIFF bool "Use Qt bundled libtiff" endchoice +config BR2_PACKAGE_QT_ACCESSIBILITY + bool "Enable accessibility support" + help + This enables and compiles the accessibility support. + endif # BR2_PACKAGE_QT_GUI_MODULE choice @@ -343,6 +356,31 @@ config BR2_PACKAGE_QT_PHONON_BACKEND Build the platform Phonon plugin. If unsure, say n. +config BR2_PACKAGE_QT_OPENGL + bool "OpenGL support" + depends on (BR2_PACKAGE_HAS_LIBGL && BR2_PACKAGE_QT_X11) || \ + (BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_HAS_LIBGLES) + default y + help + This option enables OpenGL support. + +if BR2_PACKAGE_QT_OPENGL + +choice + prompt "OpenGL API" + help + Select OpenGL API. + +comment "Desktop OpenGL not available (needs Qt standard (X11))" + depends on !BR2_PACKAGE_QT_X11 + +config BR2_PACKAGE_QT_OPENGL_GL_DESKTOP + bool "Desktop OpenGL" + depends on BR2_PACKAGE_HAS_LIBGL + depends on BR2_PACKAGE_QT_X11 + help + Use desktop OpenGL. + config BR2_PACKAGE_QT_OPENGL_ES bool "OpenGL ES v2.x support" depends on BR2_PACKAGE_HAS_LIBGLES @@ -350,6 +388,10 @@ config BR2_PACKAGE_QT_OPENGL_ES help Enable the OpenGL ES v2.x support. +endchoice + +endif # BR2_PACKAGE_QT_OPENGL + endif config BR2_PACKAGE_QT_DBUS @@ -427,15 +469,23 @@ config BR2_PACKAGE_QT_WEBKIT depends on BR2_PACKAGE_QT_NETWORK depends on BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # needs pthread_getattr_np() + depends on BR2_PACKAGE_GSTREAMER + select BR2_PACKAGE_GST_PLUGINS_BASE + select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP help Build the WebKit module. If unsure, say n. -comment "WebKit needs shared library/NPTL toolchain/script/gui/network support" - depends on !(BR2_PACKAGE_QT_SCRIPT && BR2_PACKAGE_QT_SHARED && \ - BR2_PACKAGE_QT_GUI_MODULE && BR2_PACKAGE_QT_NETWORK) - depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL +comment "WebKit needs a toolchain w/ dynamic library, NPTL" depends on BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIB + +comment "WebKit needs QtShared/Script/Gui/Network and Gstreamer 0.10" + depends on BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL && !BR2_STATIC_LIB + depends on !BR2_PACKAGE_QT_SCRIPT || !BR2_PACKAGE_QT_SHARED \ + || !BR2_PACKAGE_QT_GUI_MODULE || !BR2_PACKAGE_QT_NETWORK \ + || !BR2_PACKAGE_GSTREAMER config BR2_PACKAGE_QT_STL bool "STL support" diff --git a/bsp/buildroot/package/qt/qt.hash b/bsp/buildroot/package/qt/qt.hash index 301010ca..de813685 100644 --- a/bsp/buildroot/package/qt/qt.hash +++ b/bsp/buildroot/package/qt/qt.hash @@ -1,3 +1,4 @@ # md5 http://download.qt.io/official_releases/qt/4.8/4.8.7/md5sums-4.8.7, sha256 locally computed: md5 d990ee66bf7ab0c785589776f35ba6ad qt-everywhere-opensource-src-4.8.7.tar.gz sha256 e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0 qt-everywhere-opensource-src-4.8.7.tar.gz +sha256 e03740e20b8dbf52d163d8a4a37125e7c55b59a9a5e7cf7e89a08e07286b6135 b8f98d956501dfa4ce03a137f15d404930a56066.patch diff --git a/bsp/buildroot/package/qt/qt.mk b/bsp/buildroot/package/qt/qt.mk index c4fff2dc..8c0ff7b0 100644 --- a/bsp/buildroot/package/qt/qt.mk +++ b/bsp/buildroot/package/qt/qt.mk @@ -15,12 +15,15 @@ QT_VERSION_MAJOR = 4.8 QT_VERSION = $(QT_VERSION_MAJOR).7 QT_SOURCE = qt-everywhere-opensource-src-$(QT_VERSION).tar.gz QT_SITE = http://download.qt-project.org/official_releases/qt/$(QT_VERSION_MAJOR)/$(QT_VERSION) +# Patch fixing ALSA detection. Taken from Qt5, but applies fine to +# Qt4. +QT_PATCH = https://github.com/qtproject/qtbase/commit/b8f98d956501dfa4ce03a137f15d404930a56066.patch QT_DEPENDENCIES = host-pkgconf QT_INSTALL_STAGING = YES -QT_LICENSE = LGPLv2.1 with exceptions or GPLv3 +QT_LICENSE := LGPLv2.1 with exceptions or GPLv3 ifneq ($(BR2_PACKAGE_QT_LICENSE_APPROVED),y) -QT_LICENSE += or Digia Qt Commercial license +QT_LICENSE := $(QT_LICENSE) or Digia Qt Commercial license endif QT_LICENSE_FILES = LICENSE.LGPL LGPL_EXCEPTION.txt LICENSE.GPL3 @@ -38,6 +41,11 @@ QT_CFLAGS = $(TARGET_CFLAGS) QT_CXXFLAGS = $(TARGET_CXXFLAGS) QT_LDFLAGS = $(TARGET_LDFLAGS) +# Qt WebKit build fails when gcc-6 is used for build, because +# 'std::auto_ptr' is deprecated starting from gcc 6.x. So, we have to +# use an older c++ standard to prevent build failure +QT_CXXFLAGS += -std=gnu++98 + # Qt has some assembly function that are not present in thumb1 mode: # Error: selected processor does not support Thumb mode `swp r3,r7,[r4]' # so, we desactivate thumb mode @@ -258,6 +266,12 @@ else QT_CONFIGURE_OPTS += -no-libmng endif +ifeq ($(BR2_PACKAGE_QT_ACCESSIBILITY),y) +QT_CONFIGURE_OPTS += -accessibility +else +QT_CONFIGURE_OPTS += -no-accessibility +endif + ifeq ($(BR2_PACKAGE_QT_QTZLIB),y) QT_CONFIGURE_OPTS += -qt-zlib else @@ -336,6 +350,9 @@ QT_DEPENDENCIES += libgles libegl QT_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags egl` QT_CXXFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags egl` QT_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs egl` +else ifeq ($(BR2_PACKAGE_QT_OPENGL_GL_DESKTOP),y) +QT_CONFIGURE_OPTS += -opengl desktop +QT_DEPENDENCIES += libgl else QT_CONFIGURE_OPTS += -no-opengl endif @@ -417,6 +434,7 @@ endif ifeq ($(BR2_PACKAGE_QT_WEBKIT),y) QT_CONFIGURE_OPTS += -webkit +QT_DEPENDENCIES += gstreamer gst-plugins-base else QT_CONFIGURE_OPTS += -no-webkit endif @@ -517,7 +535,6 @@ define QT_CONFIGURE_CMDS -no-xinerama \ -no-cups \ -no-nis \ - -no-accessibility \ -no-separate-debug-info \ -prefix /usr \ -plugindir /usr/lib/qt/plugins \ @@ -663,14 +680,14 @@ endef ifneq ($(BR2_PACKAGE_QT_FONT_MICRO)$(BR2_PACKAGE_QT_FONT_FIXED),) # as stated in the font source src/3rdparty/fonts/micro.bdf # source src/3rdparty/fonts/5x7.bdf and source src/3rdparty/fonts/6x13.bdf -QT_LICENSE += , Public Domain (Micro/Fixed font) +QT_LICENSE := $(QT_LICENSE), Public Domain (Micro/Fixed font) endif ifneq ($(BR2_PACKAGE_QT_FONT_HELVETICA)$(BR2_PACKAGE_QT_FONT_JAPANESE),) -QT_LICENSE += , Adobe Helvetica license (Helvetica/Japanese fonts) +QT_LICENSE := $(QT_LICENSE), Adobe Helvetica license (Helvetica/Japanese fonts) QT_LICENSE_FILES += src/3rdparty/fonts/COPYING.Helvetica endif ifeq ($(BR2_PACKAGE_QT_FONT_UNIFONT),y) -QT_LICENSE += , Freeware (Unifont font) +QT_LICENSE := $(QT_LICENSE), Freeware (Unifont font) QT_LICENSE_FILES += src/3rdparty/fonts/COPYRIGHT.Unifont endif endif # QT_FONTS @@ -680,7 +697,7 @@ define QT_INSTALL_TARGET_FONTS_TTF mkdir -p $(TARGET_DIR)/usr/lib/fonts cp -dpf $(STAGING_DIR)/usr/lib/fonts/*.ttf $(TARGET_DIR)/usr/lib/fonts endef -QT_LICENSE += , Bitstream license (DejaVu/Vera TrueType fonts) +QT_LICENSE := $(QT_LICENSE), Bitstream license (DejaVu/Vera TrueType fonts) QT_LICENSE_FILES += src/3rdparty/fonts/COPYRIGHT.DejaVu \ src/3rdparty/fonts/README.DejaVu \ src/3rdparty/fonts/COPYRIGHT.Vera diff --git a/bsp/buildroot/package/qt5/Config.in b/bsp/buildroot/package/qt5/Config.in index ad6226e0..84cbb0fb 100644 --- a/bsp/buildroot/package/qt5/Config.in +++ b/bsp/buildroot/package/qt5/Config.in @@ -32,23 +32,27 @@ menuconfig BR2_PACKAGE_QT5 if BR2_PACKAGE_QT5 source "package/qt5/qt5base/Config.in" source "package/qt5/qt53d/Config.in" +source "package/qt5/qt5canvas3d/Config.in" source "package/qt5/qt5connectivity/Config.in" source "package/qt5/qt5declarative/Config.in" source "package/qt5/qt5enginio/Config.in" source "package/qt5/qt5graphicaleffects/Config.in" source "package/qt5/qt5imageformats/Config.in" +source "package/qt5/qt5location/Config.in" source "package/qt5/qt5multimedia/Config.in" source "package/qt5/qt5quickcontrols/Config.in" source "package/qt5/qt5sensors/Config.in" +source "package/qt5/qt5serialbus/Config.in" source "package/qt5/qt5serialport/Config.in" source "package/qt5/qt5svg/Config.in" +source "package/qt5/qt5tools/Config.in" source "package/qt5/qt5webchannel/Config.in" source "package/qt5/qt5websockets/Config.in" source "package/qt5/qt5x11extras/Config.in" source "package/qt5/qt5xmlpatterns/Config.in" +comment "technology preview" +source "package/qt5/qt5quickcontrols2/Config.in" comment "legacy compatibility" -source "package/qt5/qt5quick1/Config.in" source "package/qt5/qt5script/Config.in" source "package/qt5/qt5webkit/Config.in" -source "package/qt5/qt5webkit-examples/Config.in" endif diff --git a/bsp/buildroot/package/qt5/qt5.mk b/bsp/buildroot/package/qt5/qt5.mk index bb33903e..04bad818 100644 --- a/bsp/buildroot/package/qt5/qt5.mk +++ b/bsp/buildroot/package/qt5/qt5.mk @@ -1,5 +1,5 @@ -QT5_VERSION_MAJOR = 5.5 -QT5_VERSION = $(QT5_VERSION_MAJOR).1 +QT5_VERSION_MAJOR = 5.6 +QT5_VERSION = $(QT5_VERSION_MAJOR).1-1 QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules include $(sort $(wildcard package/qt5/*/*.mk)) diff --git a/bsp/buildroot/package/qt5/qt53d/Config.in b/bsp/buildroot/package/qt5/qt53d/Config.in index b2d2912d..ff50204f 100644 --- a/bsp/buildroot/package/qt5/qt53d/Config.in +++ b/bsp/buildroot/package/qt5/qt53d/Config.in @@ -12,6 +12,8 @@ config BR2_PACKAGE_QT53D This package corresponds to the qt53d module. + Enable the assimp package to gain the assimp sceneparser plugin. + http://doc.qt.io/qt-5/qt3d-index.html comment "qt53d module needs an OpenGL-capable backend" diff --git a/bsp/buildroot/package/qt5/qt53d/qt53d.hash b/bsp/buildroot/package/qt5/qt53d/qt53d.hash index 8fbc42fb..fbe782d2 100644 --- a/bsp/buildroot/package/qt5/qt53d/qt53d.hash +++ b/bsp/buildroot/package/qt5/qt53d/qt53d.hash @@ -1,2 +1,2 @@ -# Hash from http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qt3d-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 e380906e2bcbd825dab45043bf063dd88b793c0d5fb050ee915bf4e2b58b1bf7 qt3d-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qt3d-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 6e71b6925a39056c18920350ea94e5a6b45a54f27ea2e04905e4b2acb464b7db qt3d-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt53d/qt53d.mk b/bsp/buildroot/package/qt5/qt53d/qt53d.mk index 810242b4..5dac5b0b 100644 --- a/bsp/buildroot/package/qt5/qt53d/qt53d.mk +++ b/bsp/buildroot/package/qt5/qt53d/qt53d.mk @@ -10,9 +10,13 @@ QT53D_SOURCE = qt3d-opensource-src-$(QT5SVG_VERSION).tar.xz QT53D_DEPENDENCIES = qt5base qt5declarative QT53D_INSTALL_STAGING = YES +ifeq ($(BR2_PACKAGE_ASSIMP),y) +QT53D_DEPENDENCIES += assimp +endif + ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT53D_LICENSE = GPLv2+ or LGPLv3 -QT53D_LICENSE_FILES = LICENSE.GPL LICENSE.LGPLv3 +QT53D_LICENSE = GPLv2 or GPLv3 or LGPLv3 +QT53D_LICENSE_FILES = LICENSE.GPL LICENSE.GPLv3 LICENSE.LGPLv3 else QT53D_LICENSE = Commercial license QT53D_REDISTRIBUTE = NO @@ -34,6 +38,7 @@ endef ifeq ($(BR2_STATIC_LIBS),) define QT53D_INSTALL_TARGET_CMDS cp -dpf $(STAGING_DIR)/usr/lib/libQt53D*.so.* $(TARGET_DIR)/usr/lib + cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/sceneparsers $(TARGET_DIR)/usr/lib/qt/plugins cp -dpfr $(STAGING_DIR)/usr/qml/Qt3D $(TARGET_DIR)/usr/qml endef endif diff --git a/bsp/buildroot/package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch b/bsp/buildroot/package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch deleted file mode 100644 index c21775f7..00000000 --- a/bsp/buildroot/package/qt5/qt5base/0001-Force_egl_visual_ID_33.patch +++ /dev/null @@ -1,27 +0,0 @@ -Workaround EGL initialization failure due visual mismatch - -Error: - -Warning: EGL suggested using X Visual ID 33 (RGB888) for EGL config 28 (RGB444), but this is incompatable -Unable to find an X11 visual which matches EGL config 28 -Could not initialize EGL -Aborted - -Upstream-Status: Inappropriate [workaround] - -Signed-off-by: Otavio Salvador -Signed-off-by: Jérôme Pouiller - -diff -Naur qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp ---- qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp 2013-12-25 19:08:42.163895341 -0800 -+++ qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp 2013-12-25 19:09:37.207893799 -0800 -@@ -180,5 +180,9 @@ - } - - qWarning("Unable to find an X11 visual which matches EGL config %d", configId); -+#ifdef ENABLE_MX6_WORKAROUND -+ return (VisualID)33; -+#else - return (VisualID)0; -+#endif - } diff --git a/bsp/buildroot/package/qt5/qt5base/0003-xcb-egl-fixes.patch b/bsp/buildroot/package/qt5/qt5base/0003-xcb-egl-fixes.patch deleted file mode 100644 index 65d6f692..00000000 --- a/bsp/buildroot/package/qt5/qt5base/0003-xcb-egl-fixes.patch +++ /dev/null @@ -1,82 +0,0 @@ -Some EGL headers pull in X11 defines which break eglconvenience - -* Adds a missing include to qeglplatformcontext.cpp -* Fix namespace collision on CursorShape, pulled in from X11/X.h -* Do not pass MESA_EGL_NO_X11_HEADERS when xcb is use -* Reorder includes to have the X11-header the last include - -[based on patch from Yocto project] -Signed-off-by: Jérôme Pouiller -Updated to fix issue in qeglplatformscreen (reorder includes, see also -http://lists.qt-project.org/pipermail/development/2013-March/010511.html) -Signed-off-by: Marc Andre - -diff -Nuar a/src/platformsupport/eglconvenience/eglconvenience.pri b/src/platformsupport/eglconvenience/eglconvenience.pri ---- a/src/platformsupport/eglconvenience/eglconvenience.pri 2014-08-07 16:53:50.038277168 -0400 -+++ b/src/platformsupport/eglconvenience/eglconvenience.pri 2014-08-07 16:54:52.874278651 -0400 -@@ -30,8 +30,10 @@ - } - } - -- # Avoid X11 header collision -- DEFINES += MESA_EGL_NO_X11_HEADERS -+ !contains(QT_CONFIG,xcb) { -+ # Avoid X11 header collision -+ DEFINES += MESA_EGL_NO_X11_HEADERS -+ } - - contains(QT_CONFIG,xlib) { - HEADERS += \ -diff -Nuar a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp ---- a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp 2014-08-07 16:53:50.038277168 -0400 -+++ b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp 2014-08-07 16:56:00.630280249 -0400 -@@ -39,6 +39,7 @@ - ** - ****************************************************************************/ - -+#include - #include "qeglplatformcontext_p.h" - #include "qeglconvenience_p.h" - #include "qeglpbuffer_p.h" ---- a/src/platformsupport/eglconvenience/qeglplatformcursor_p.h 2014-08-07 16:53:50.038277168 -0400 -+++ b/src/platformsupport/eglconvenience/qeglplatformcursor_p.h 2014-08-07 16:58:49.014284222 -0400 -@@ -42,6 +42,11 @@ - #ifndef QEGLPLATFORMCURSOR_H - #define QEGLPLATFORMCURSOR_H - -+// avoid namespace collision with X11/X.h -+#ifdef CursorShape -+#undef CursorShape -+#endif -+ - #include - #include - ---- qt5base-5.5.0.orig/src/platformsupport/eglconvenience/qeglplatformcursor.cpp -+++ qt5base-5.5.0/src/platformsupport/eglconvenience/qeglplatformcursor.cpp -@@ -41,8 +41,8 @@ - - #include - --#include "qeglplatformcursor_p.h" - #include "qeglplatformintegration_p.h" -+#include "qeglplatformcursor_p.h" - #include "qeglplatformscreen_p.h" - - QT_BEGIN_NAMESPACE ---- qtbase-opensource-src-5.5.0.orig/src/platformsupport/eglconvenience/qeglplatformscreen.cpp 2015-09-01 14:46:57.116883353 +0200 -+++ qtbase-opensource-src-5.5.0/src/platformsupport/eglconvenience/qeglplatformscreen.cpp 2015-09-01 14:47:36.560882333 +0200 -@@ -31,11 +31,11 @@ - ** - ****************************************************************************/ - --#include "qeglplatformscreen_p.h" --#include "qeglplatformwindow_p.h" - #include - #include - #include -+#include "qeglplatformscreen_p.h" -+#include "qeglplatformwindow_p.h" - - QT_BEGIN_NAMESPACE - diff --git a/bsp/buildroot/package/qt5/qt5base/0005-forkd-disable-eventfd-for-uclibc.patch b/bsp/buildroot/package/qt5/qt5base/0005-forkd-disable-eventfd-for-uclibc.patch deleted file mode 100644 index 04d49dd3..00000000 --- a/bsp/buildroot/package/qt5/qt5base/0005-forkd-disable-eventfd-for-uclibc.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 62ef0d97cfa2ed0142fc69c6e6395a570bea9215 Mon Sep 17 00:00:00 2001 -From: Julien Corjon -Date: Tue, 21 Jul 2015 11:59:57 +0200 -Subject: [PATCH] forkd - disable eventfd for uClibc <= 0.9.33 - -eventfd is not implemented in uClibc <= 0.9.33 - -Upstream-Status : https://bugreports.qt.io/browse/QTBUG-47337 - -Signed-off-by: Julien Corjon ---- - src/3rdparty/forkfd/forkfd.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c -index 8d08f40..fa47cdf 100644 ---- a/src/3rdparty/forkfd/forkfd.c -+++ b/src/3rdparty/forkfd/forkfd.c -@@ -48,6 +48,10 @@ - # if (defined(__GLIBC__) && (__GLIBC__ << 16) + __GLIBC_MINOR__ >= 0x209) || defined(__BIONIC__) - # define HAVE_PIPE2 1 - # endif -+# if (defined(__UCLIBC__) && (__UCLIBC_MAJOR__ == 0) && (__UCLIBC_MINOR__ < 9 || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ <= 33))) -+# undef HAVE_EVENTFD -+# undef HAVE_PIPE2 -+# endif - #endif - - #if _POSIX_VERSION-0 >= 200809L || _XOPEN_VERSION-0 >= 500 --- -2.1.0 - diff --git a/bsp/buildroot/package/qt5/qt5base/0007-Remove-libudev-dependency-from-kms.pro.patch b/bsp/buildroot/package/qt5/qt5base/0007-Remove-libudev-dependency-from-kms.pro.patch new file mode 100644 index 00000000..7ecbcd05 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5base/0007-Remove-libudev-dependency-from-kms.pro.patch @@ -0,0 +1,33 @@ +From 0f1b4bb65abe0e36e9e4b9813e45192223509de8 Mon Sep 17 00:00:00 2001 +From: Ralf Nolden +Date: Tue, 17 May 2016 12:57:17 +0200 +Subject: [PATCH] Remove libudev dependency from kms.pro + +To compile the kms qpa plugin, only libdrm is needed. +Remove the libudev dependency for the compile check to enable +building of the qpa plugin on platforms where libudev is not present +such as BSD systems (but where KMS works) + +Change-Id: Icd0be70a8949578a6158d523428706890a9674eb +Reviewed-by: Laszlo Agocs +Reviewed-by: Oswald Buddenhagen + +Upstream: https://code.qt.io/cgit/qt/qtbase.git/patch/?id=72492735b7b7770808fcc9fe067e8f03fab827fc +Signed-off-by: Peter Seiderer +--- + config.tests/qpa/kms/kms.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.tests/qpa/kms/kms.pro b/config.tests/qpa/kms/kms.pro +index 1fb7367..5147bc8 100644 +--- a/config.tests/qpa/kms/kms.pro ++++ b/config.tests/qpa/kms/kms.pro +@@ -1,4 +1,4 @@ + SOURCES = kms.cpp + CONFIG += link_pkgconfig +-PKGCONFIG += libdrm libudev ++PKGCONFIG += libdrm + CONFIG -= qt +-- +2.8.1 + diff --git a/bsp/buildroot/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch b/bsp/buildroot/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch deleted file mode 100644 index a578af39..00000000 --- a/bsp/buildroot/package/qt5/qt5base/0009-fix-eglfs-for-sunxi-mali.patch +++ /dev/null @@ -1,109 +0,0 @@ -Fix Qt5 configure script not autodetecting sunxi-mali drivers rendering -in eglfs_mali not being built. The patch also fix compatibility issues -regarding header files only included in the proprietary version. - -This will be fixed in Qt 5.6. - -ref: https://codereview.qt-project.org/#/c/125837/ - -Signed-off-by: Daniel Nyström - -diff --git a/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp -new file mode 100644 -index 0000000..1914d64 ---- /dev/null -+++ b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.cpp -@@ -0,0 +1,44 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 The Qt Company Ltd. -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the config.tests of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL21$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see http://www.qt.io/terms-conditions. For further -+** information use the contact form at http://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 or version 3 as published by the Free -+** Software Foundation and appearing in the file LICENSE.LGPLv21 and -+** LICENSE.LGPLv3 included in the packaging of this file. Please review the -+** following information to ensure the GNU Lesser General Public License -+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** As a special exception, The Qt Company gives you certain additional -+** rights. These rights are described in The Qt Company LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include -+#include -+ -+int main(int, char **) -+{ -+ EGLDisplay dpy = 0; -+ EGLContext ctx = 0; -+ mali_native_window *w = 0; -+ eglDestroyContext(dpy, ctx); -+ return 0; -+} -diff --git a/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.pro b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.pro -new file mode 100644 -index 0000000..85bcf64 ---- /dev/null -+++ b/config.tests/qpa/eglfs-mali-2/eglfs-mali-2.pro -@@ -0,0 +1,5 @@ -+SOURCES = eglfs-mali-2.cpp -+ -+CONFIG -= qt -+ -+LIBS += -lEGL -lGLESv2 -diff --git a/configure b/configure -index cea62fb..09781bc 100755 ---- a/configure -+++ b/configure -@@ -5624,7 +5624,8 @@ if [ "$CFG_EGLFS" != "no" ]; then - else - CFG_EGLFS_BRCM=no - fi -- if compileTest qpa/eglfs-mali "eglfs-mali"; then -+ if compileTest qpa/eglfs-mali "eglfs-mali" \ -+ || compileTest qpa/eglfs-mali-2 "eglfs-mali-2"; then - CFG_EGLFS_MALI=yes - else - CFG_EGLFS_MALI=no -diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp -index 455d780..43decdf 100644 ---- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp -+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp -@@ -32,7 +32,6 @@ - ****************************************************************************/ - - #include "qeglfsmaliintegration.h" --#include - - #include - #include -@@ -43,6 +42,11 @@ - - QT_BEGIN_NAMESPACE - -+struct fbdev_window { -+ unsigned short width; -+ unsigned short height; -+}; -+ - void QEglFSMaliIntegration::platformInit() - { - // Keep the non-overridden base class functions based on fb0 working. diff --git a/bsp/buildroot/package/qt5/qt5base/0014-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch b/bsp/buildroot/package/qt5/qt5base/0014-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch deleted file mode 100644 index 97be739d..00000000 --- a/bsp/buildroot/package/qt5/qt5base/0014-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8f09897de948cea8861ca95e182f442cf15a339e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 8 Jun 2015 13:59:25 -0700 -Subject: [PATCH] linux-oe-g++: Invert conditional for defining QT_SOCKLEN_T - -This helps to make sure that QT_SOCKLEN_T is defined to be 'int' -only when its glibc < 2 and not also for the libraries which may define -it as per standards but are not glibc, e.g. musl - -Signed-off-by: Khem Raj -[Bernd: Downloaded from -https://github.com/meta-qt5/meta-qt5/blob/d9d1d04760430cd0e5edd1764d832860715e7b83/recipes-qt/qt5/qtbase/0014-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch -and adjusted path.] - -Signed-off-by: Bernd Kuhls ---- - mkspecs/linux-oe-g++/qplatformdefs.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h -index dd12003..8623651 100644 ---- a/mkspecs/linux-g++/qplatformdefs.h -+++ b/mkspecs/linux-g++/qplatformdefs.h -@@ -86,10 +86,10 @@ - - #undef QT_SOCKLEN_T - --#if defined(__GLIBC__) && (__GLIBC__ >= 2) --#define QT_SOCKLEN_T socklen_t --#else -+#if defined(__GLIBC__) && (__GLIBC__ < 2) - #define QT_SOCKLEN_T int -+#else -+#define QT_SOCKLEN_T socklen_t - #endif - - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) --- -2.1.4 - diff --git a/bsp/buildroot/package/qt5/qt5base/qt5base.hash b/bsp/buildroot/package/qt5/qt5base/qt5base.hash index ea831e99..2df165bb 100644 --- a/bsp/buildroot/package/qt5/qt5base/qt5base.hash +++ b/bsp/buildroot/package/qt5/qt5base/qt5base.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtbase-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 dfa4e8a4d7e4c6b69285e7e8833eeecd819987e1bdbe5baa6b6facd4420de916 qtbase-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtbase-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 329678347ec5ebb404225345300a8deb1e7c991322a4c50584be550c69be7c39 qtbase-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5base/qt5base.mk b/bsp/buildroot/package/qt5/qt5base/qt5base.mk index 6eeb6197..bf541b0f 100644 --- a/bsp/buildroot/package/qt5/qt5base/qt5base.mk +++ b/bsp/buildroot/package/qt5/qt5base/qt5base.mk @@ -20,7 +20,6 @@ QT5BASE_INSTALL_STAGING = YES # want to use the one packaged in Buildroot QT5BASE_CONFIGURE_OPTS += \ -optimized-qmake \ - -no-kms \ -no-cups \ -no-nis \ -no-iconv \ @@ -29,6 +28,14 @@ QT5BASE_CONFIGURE_OPTS += \ -no-pch \ -shared +# Uses libgbm from mesa3d +ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) +QT5BASE_CONFIGURE_OPTS += -kms -gbm +QT5BASE_DEPENDENCIES += mesa3d +else +QT5BASE_CONFIGURE_OPTS += -no-kms +endif + ifeq ($(BR2_ENABLE_DEBUG),y) QT5BASE_CONFIGURE_OPTS += -debug else @@ -39,8 +46,8 @@ QT5BASE_CONFIGURE_OPTS += -largefile ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) QT5BASE_CONFIGURE_OPTS += -opensource -confirm-license -QT5BASE_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5BASE_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5BASE_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5BASE_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5BASE_LICENSE = Commercial license QT5BASE_REDISTRIBUTE = NO @@ -52,6 +59,10 @@ ifneq ($(QT5BASE_CONFIG_FILE),) QT5BASE_CONFIGURE_OPTS += -qconfig buildroot endif +ifeq ($(BR2_PACKAGE_HAS_UDEV),y) +QT5BASE_DEPENDENCIES += udev +endif + # Qt5 SQL Plugins ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y) ifeq ($(BR2_PACKAGE_QT5BASE_MYSQL),y) @@ -111,10 +122,6 @@ endif QT5BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT5BASE_DEFAULT_QPA)) QT5BASE_CONFIGURE_OPTS += $(if $(QT5BASE_DEFAULT_QPA),-qpa $(QT5BASE_DEFAULT_QPA)) -ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y) -QT5BASE_EXTRA_CFLAGS = -DENABLE_MX6_WORKAROUND -endif - ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y) QT5BASE_CONFIGURE_OPTS += -eglfs QT5BASE_DEPENDENCIES += libegl diff --git a/bsp/buildroot/package/qt5/qt5canvas3d/Config.in b/bsp/buildroot/package/qt5/qt5canvas3d/Config.in new file mode 100644 index 00000000..3ae51928 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5canvas3d/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_QT5CANVAS3D + bool "qt5canvas3d" + select BR2_PACKAGE_QT5DECLARATIVE + select BR2_PACKAGE_QT5DECLARATIVE_QUICK + depends on BR2_PACKAGE_QT5_GL_AVAILABLE + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5canvas3d module. + + http://qt.io + +comment "qt5canvas3d needs an OpenGL-capable backend" + depends on !BR2_PACKAGE_QT5_GL_AVAILABLE + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE diff --git a/bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.hash b/bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.hash new file mode 100644 index 00000000..99d4ff6b --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtcanvas3d-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 84d02cc051eeda6edb8a4da00d9a35869a447f7beb04d3c39cd375a3793f228c qtcanvas3d-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.mk b/bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.mk new file mode 100644 index 00000000..3f605ab0 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5canvas3d/qt5canvas3d.mk @@ -0,0 +1,38 @@ +################################################################################ +# +# qt5canvas3d +# +################################################################################ + +QT5CANVAS3D_VERSION = $(QT5_VERSION) +QT5CANVAS3D_SITE = $(QT5_SITE) +QT5CANVAS3D_SOURCE = qtcanvas3d-opensource-src-$(QT5CANVAS3D_VERSION).tar.xz +QT5CANVAS3D_DEPENDENCIES = qt5base qt5declarative +QT5CANVAS3D_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5CANVAS3D_LICENSE = GPLv2 or GPLv3 or LGPLv3 +QT5CANVAS3D_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv3 +else +QT5CANVAS3D_LICENSE = Commercial license +QT5CANVAS3D_REDISTRIBUTE = NO +endif + +define QT5CANVAS3D_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5CANVAS3D_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5CANVAS3D_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install + $(QT5_LA_PRL_FILES_FIXUP) +endef + +define QT5CANVAS3D_INSTALL_TARGET_CMDS + cp -dpfr $(STAGING_DIR)/usr/qml/QtCanvas3D $(TARGET_DIR)/usr/qml/ +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5connectivity/Config.in b/bsp/buildroot/package/qt5/qt5connectivity/Config.in index d529ea7f..fa9b9112 100644 --- a/bsp/buildroot/package/qt5/qt5connectivity/Config.in +++ b/bsp/buildroot/package/qt5/qt5connectivity/Config.in @@ -1,13 +1,9 @@ config BR2_PACKAGE_QT5CONNECTIVITY bool "qt5connectivity" - select BR2_PACKAGE_BLUEZ_UTILS select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE_CONCURRENT select BR2_PACKAGE_QT5BASE_DBUS - depends on !BR2_STATIC_LIBS # bluez_utils - depends on BR2_USE_WCHAR # bluez_utils - depends on BR2_TOOLCHAIN_HAS_THREADS # bluez_utils - depends on BR2_USE_MMU # bluez_utils + depends on BR2_PACKAGE_NEARD || BR2_PACKAGE_BLUEZ_UTILS || BR2_PACKAGE_BLUEZ5_UTILS help Qt is a cross-platform application and UI framework for developers using C++. @@ -16,6 +12,6 @@ config BR2_PACKAGE_QT5CONNECTIVITY http://qt.io -comment "qt5connectivity needs a toolchain w/ wchar, threads, dynamic library" - depends on BR2_USE_MMU - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS +comment "qt5connectivity needs neard and/or bluez(5)_utils" + depends on !BR2_PACKAGE_NEARD && !BR2_PACKAGE_BLUEZ_UTILS && \ + !BR2_PACKAGE_BLUEZ5_UTILS diff --git a/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.hash b/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.hash index 058ba31a..3dab371f 100644 --- a/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.hash +++ b/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.hash @@ -1,2 +1,2 @@ -# Hashe from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtconnectivity-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 3637e6def8582fc0fb3684179b93650720ba2da1311a560d358296153f245023 qtconnectivity-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtconnectivity-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 f1d714b8f359df069b9e94e72719bcb9f5340212d9ce223453b7100c6ed7266b qtconnectivity-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.mk b/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.mk index fa07d933..0f7257d3 100644 --- a/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.mk +++ b/bsp/buildroot/package/qt5/qt5connectivity/qt5connectivity.mk @@ -7,20 +7,21 @@ QT5CONNECTIVITY_VERSION = $(QT5_VERSION) QT5CONNECTIVITY_SITE = $(QT5_SITE) QT5CONNECTIVITY_SOURCE = qtconnectivity-opensource-src-$(QT5CONNECTIVITY_VERSION).tar.xz -QT5CONNECTIVITY_DEPENDENCIES = bluez_utils qt5base +QT5CONNECTIVITY_DEPENDENCIES = qt5base QT5CONNECTIVITY_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5CONNECTIVITY_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5CONNECTIVITY_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 +QT5CONNECTIVITY_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5CONNECTIVITY_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5CONNECTIVITY_LICENSE = Commercial license QT5CONNECTIVITY_REDISTRIBUTE = NO endif -ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) -QT5CONNECTIVITY_DEPENDENCIES += qt5declarative -endif +QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5DECLARATIVE),qt5declarative) +QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_BLUEZ_UTILS),bluez_utils) +QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_BLUEZ5_UTILS),bluez5_utils) +QT5CONNECTIVITY_DEPENDENCIES += $(if $(BR2_PACKAGE_NEARD),neard) define QT5CONNECTIVITY_CONFIGURE_CMDS (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) @@ -36,14 +37,36 @@ define QT5CONNECTIVITY_INSTALL_STAGING_CMDS endef ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y) -define QT5CONNECTIVITY_INSTALL_TARGET_QMLS +ifneq ($(BR2_PACKAGE_BLUEZ_UTILS)$(BR2_PACKAGE_BLUEZ5_UTILS),) +define QT5CONNECTIVITY_INSTALL_TARGET_BLUETOOTH_QMLS cp -dpfr $(STAGING_DIR)/usr/qml/QtBluetooth $(TARGET_DIR)/usr/qml/ endef endif +ifeq ($(BR2_PACKAGE_NEARD),y) +define QT5CONNECTIVITY_INSTALL_TARGET_NFC_QMLS + cp -dpfr $(STAGING_DIR)/usr/qml/QtNfc $(TARGET_DIR)/usr/qml/ +endef +endif +endif + +ifneq ($(BR2_PACKAGE_BLUEZ_UTILS)$(BR2_PACKAGE_BLUEZ5_UTILS),) +define QT5CONNECTIVITY_INSTALL_TARGET_BLUETOOTH + cp -dpf $(STAGING_DIR)/usr/lib/libQt5Bluetooth.so.* $(TARGET_DIR)/usr/lib + cp -dpf $(STAGING_DIR)/usr/bin/sdpscanner $(TARGET_DIR)/usr/bin +endef +endif + +ifeq ($(BR2_PACKAGE_NEARD),y) +define QT5CONNECTIVITY_INSTALL_TARGET_NFC + cp -dpf $(STAGING_DIR)/usr/lib/libQt5Nfc.so.* $(TARGET_DIR)/usr/lib +endef +endif define QT5CONNECTIVITY_INSTALL_TARGET_CMDS - cp -dpf $(STAGING_DIR)/usr/lib/libQt5Bluetooth.so.* $(TARGET_DIR)/usr/lib - $(QT5CONNECTIVITY_INSTALL_TARGET_QMLS) + $(QT5CONNECTIVITY_INSTALL_TARGET_BLUETOOTH) + $(QT5CONNECTIVITY_INSTALL_TARGET_NFC) + $(QT5CONNECTIVITY_INSTALL_TARGET_BLUETOOTH_QMLS) + $(QT5CONNECTIVITY_INSTALL_TARGET_NFC_QMLS) endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.hash b/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.hash index f32b0372..15c0c46d 100644 --- a/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.hash +++ b/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.hash @@ -1,2 +1,2 @@ -# Hashe from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtdeclarative-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 5fd14eefb83fff36fb17681693a70868f6aaf6138603d799c16466a094b26791 qtdeclarative-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtdeclarative-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 1cdf60b52509972ac001f5402a42d9b144b344010ec6e34f528f7dfc6be98f24 qtdeclarative-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.mk b/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.mk index 296292b1..be3a7b7d 100644 --- a/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.mk +++ b/bsp/buildroot/package/qt5/qt5declarative/qt5declarative.mk @@ -11,8 +11,8 @@ QT5DECLARATIVE_DEPENDENCIES = qt5base qt5xmlpatterns QT5DECLARATIVE_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5DECLARATIVE_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5DECLARATIVE_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5DECLARATIVE_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5DECLARATIVE_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5DECLARATIVE_LICENSE = Commercial license QT5DECLARATIVE_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.hash b/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.hash index 6f5f6268..2105aba2 100644 --- a/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.hash +++ b/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.hash @@ -1,2 +1,2 @@ -# Hashe from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtenginio-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 a79936bd5b6a35aba28dd282291b28c8fa869b8d86652c62efe5e268d94defe2 qtenginio-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtenginio-opensource-src-1.6.1.tar.xz.mirrorlist +sha256 0e14d5dfcae3f0b44c52751b20a8fc5f9e2c0d53aa1025ffbabbfde43fcc1a9e qtenginio-opensource-src-1.6.1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.mk b/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.mk index 2a6aa3ca..51cc5b41 100644 --- a/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.mk +++ b/bsp/buildroot/package/qt5/qt5enginio/qt5enginio.mk @@ -4,15 +4,17 @@ # ################################################################################ -QT5ENGINIO_VERSION = $(QT5_VERSION) +# Qt5Enginio does not follow Qt versionning +# see https://bugreports.qt.io/browse/QTBUG-50111 +QT5ENGINIO_VERSION = 1.6.1 QT5ENGINIO_SITE = $(QT5_SITE) QT5ENGINIO_SOURCE = qtenginio-opensource-src-$(QT5ENGINIO_VERSION).tar.xz QT5ENGINIO_DEPENDENCIES = openssl qt5base QT5ENGINIO_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5ENGINIO_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5ENGINIO_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5ENGINIO_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5ENGINIO_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5ENGINIO_LICENSE = Commercial license QT5ENGINIO_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash b/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash index 959230fe..7e952b4a 100644 --- a/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash +++ b/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtgraphicaleffects-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 9bca0f8db3a4289eceebfa9504915440fe3fa6301d90b65705e4ece528c12d47 qtgraphicaleffects-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtgraphicaleffects-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 2b9cecf8eb3e12587788fa320119cf8d7b84775211cc1d78334d27e50040c014 qtgraphicaleffects-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk b/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk index 2dc2e711..223374a2 100644 --- a/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk +++ b/bsp/buildroot/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk @@ -11,8 +11,8 @@ QT5GRAPHICALEFFECTS_DEPENDENCIES = qt5base qt5declarative QT5GRAPHICALEFFECTS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5GRAPHICALEFFECTS_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5GRAPHICALEFFECTS_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 +QT5GRAPHICALEFFECTS_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5GRAPHICALEFFECTS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5GRAPHICALEFFECTS_LICENSE = Commercial license QT5GRAPHICALEFFECTS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5imageformats/0001-tvOS-support.patch b/bsp/buildroot/package/qt5/qt5imageformats/0001-tvOS-support.patch new file mode 100644 index 00000000..3759c104 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5imageformats/0001-tvOS-support.patch @@ -0,0 +1,35 @@ +From a9e4b41a04b8d1a6d3d687964c146b87f60f9683 Mon Sep 17 00:00:00 2001 +From: Mike Krus +Date: Mon, 28 Dec 2015 21:02:35 +0000 +Subject: [PATCH] tvOS support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +QT_ARCH for tvOS is arm64 (not arm, since it’s 64bits only) + +Change-Id: Ia03d3ee07d2543a0e70ee7d77448aff9382d8fc8 +Reviewed-by: Jake Petroules + +Upstream: https://code.qt.io/cgit/qt/qtimageformats.git/patch/?id=e4c1d9ece74de212ebe5c55b134de7cb23469e2d +Signed-off-by: Peter Seiderer +--- + src/3rdparty/libwebp.pri | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/3rdparty/libwebp.pri b/src/3rdparty/libwebp.pri +index b7c1bb6..2197953 100644 +--- a/src/3rdparty/libwebp.pri ++++ b/src/3rdparty/libwebp.pri +@@ -82,7 +82,7 @@ android { + INCLUDEPATH += $$NDK_ROOT/sources/android/cpufeatures + } + +-equals(QT_ARCH, arm) { ++equals(QT_ARCH, arm)|equals(QT_ARCH, arm64) { + SOURCES_FOR_NEON += \ + $$PWD/libwebp/src/dsp/dec_neon.c \ + $$PWD/libwebp/src/dsp/enc_neon.c \ +-- +2.8.1 + diff --git a/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.hash b/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.hash index c392abfa..e21fb17e 100644 --- a/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.hash +++ b/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtimageformats-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 c97fee00c602f9f089fea480546d6e9d61a2b2297c2f163bfd9f8aba92b754a5 qtimageformats-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtimageformats-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 cc45e481394dcc4eb4e565969c9bb50b87b1da23f006bf849a5f8daa375328dd qtimageformats-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.mk b/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.mk index 0703db08..921656d0 100644 --- a/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.mk +++ b/bsp/buildroot/package/qt5/qt5imageformats/qt5imageformats.mk @@ -11,8 +11,8 @@ QT5IMAGEFORMATS_DEPENDENCIES = qt5base QT5IMAGEFORMATS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5IMAGEFORMATS_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5IMAGEFORMATS_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 +QT5IMAGEFORMATS_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5IMAGEFORMATS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5IMAGEFORMATS_LICENSE = Commercial license QT5IMAGEFORMATS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5location/Config.in b/bsp/buildroot/package/qt5/qt5location/Config.in new file mode 100644 index 00000000..209d1342 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5location/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_QT5LOCATION + bool "qt5location" + select BR2_PACKAGE_QT5BASE + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5location module. + + http://qt.io diff --git a/bsp/buildroot/package/qt5/qt5location/qt5location.hash b/bsp/buildroot/package/qt5/qt5location/qt5location.hash new file mode 100644 index 00000000..099519f7 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5location/qt5location.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtlocation-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 c9cc21ba3dd3f13376a175b092256403589a52c7851603dbfe1e15d5d9bac457 qtlocation-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5location/qt5location.mk b/bsp/buildroot/package/qt5/qt5location/qt5location.mk new file mode 100644 index 00000000..358b1621 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5location/qt5location.mk @@ -0,0 +1,61 @@ +################################################################################ +# +# qt5location +# +################################################################################ + +QT5LOCATION_VERSION = $(QT5_VERSION) +QT5LOCATION_SITE = $(QT5_SITE) +QT5LOCATION_SOURCE = qtlocation-opensource-src-$(QT5LOCATION_VERSION).tar.xz +QT5LOCATION_DEPENDENCIES = qt5base +QT5LOCATION_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5LOCATION_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5LOCATION_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL +else +QT5LOCATION_LICENSE = Commercial license +QT5LOCATION_REDISTRIBUTE = NO +endif + +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) +QT5LOCATION_DEPENDENCIES += qt5declarative +endif + +define QT5LOCATION_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5LOCATION_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5LOCATION_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install + $(QT5_LA_PRL_FILES_FIXUP) +endef + +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y) +define QT5LOCATION_INSTALL_TARGET_QMLS + cp -dpfr $(STAGING_DIR)/usr/qml/QtPositioning $(TARGET_DIR)/usr/qml/ + cp -dpfr $(STAGING_DIR)/usr/qml/QtLocation $(TARGET_DIR)/usr/qml/ +endef +define QT5LOCATION_INSTALL_TARGET_LOCATION + cp -dpf $(STAGING_DIR)/usr/lib/libQt5Location.so.* $(TARGET_DIR)/usr/lib + cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/geoservices $(TARGET_DIR)/usr/lib/qt/plugins/ +endef +endif + +define QT5LOCATION_INSTALL_TARGET_POSITION + cp -dpf $(STAGING_DIR)/usr/lib/libQt5Positioning.so.* $(TARGET_DIR)/usr/lib + cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/position $(TARGET_DIR)/usr/lib/qt/plugins/ +endef + +define QT5LOCATION_INSTALL_TARGET_CMDS + $(QT5LOCATION_INSTALL_TARGET_POSITION) + $(QT5LOCATION_INSTALL_TARGET_LOCATION) + $(QT5LOCATION_INSTALL_TARGET_QMLS) +endef + + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5multimedia/Config.in b/bsp/buildroot/package/qt5/qt5multimedia/Config.in index 59c39847..7549b351 100644 --- a/bsp/buildroot/package/qt5/qt5multimedia/Config.in +++ b/bsp/buildroot/package/qt5/qt5multimedia/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_QT5MULTIMEDIA select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_NETWORK + select BR2_PACKAGE_QT5BASE_OPENGL_LIB if BR2_PACKAGE_QT5BASE_OPENGL help Qt is a cross-platform application and UI framework for developers using C++. diff --git a/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.hash b/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.hash index b4e1b682..e2e5a2d7 100644 --- a/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.hash +++ b/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtmultimedia-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 7cc7ca99f41587c188303670499e5c75101f9a8cb6178e8f29cc941e637d957f qtmultimedia-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtmultimedia-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 4e28dcc696a9996b03a124b0f56fc86646bc2e9d29d383dc923b926040774e5d qtmultimedia-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.mk b/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.mk index df1395c0..67e79686 100644 --- a/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.mk +++ b/bsp/buildroot/package/qt5/qt5multimedia/qt5multimedia.mk @@ -11,8 +11,8 @@ QT5MULTIMEDIA_DEPENDENCIES = qt5base QT5MULTIMEDIA_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5MULTIMEDIA_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5MULTIMEDIA_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5MULTIMEDIA_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5MULTIMEDIA_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5MULTIMEDIA_LICENSE = Commercial license QT5MULTIMEDIA_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5quick1/Config.in b/bsp/buildroot/package/qt5/qt5quick1/Config.in deleted file mode 100644 index 345ffae7..00000000 --- a/bsp/buildroot/package/qt5/qt5quick1/Config.in +++ /dev/null @@ -1,26 +0,0 @@ -config BR2_PACKAGE_QT5QUICK1 - bool "qt5quick1" - select BR2_PACKAGE_QT5BASE - select BR2_PACKAGE_QT5BASE_GUI - select BR2_PACKAGE_QT5BASE_NETWORK - select BR2_PACKAGE_QT5BASE_WIDGETS - select BR2_PACKAGE_QT5SCRIPT - select BR2_PACKAGE_QT5XMLPATTERNS - # This module does not support static linking - depends on !BR2_STATIC_LIBS - depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE - help - Qt is a cross-platform application and UI framework for - developers using C++. - - This package corresponds to the qt5quick1 module. - - This package has been tagged as deprecated since version - 5.5.0 and should be replaced by Qt Quick module in new - design. - - http://qt.io - -comment "qt5quick1 needs a toolchain w/ dynamic library" - depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE - depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/qt5/qt5quick1/qt5quick1.hash b/bsp/buildroot/package/qt5/qt5quick1/qt5quick1.hash deleted file mode 100644 index 845742c4..00000000 --- a/bsp/buildroot/package/qt5/qt5quick1/qt5quick1.hash +++ /dev/null @@ -1,2 +0,0 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtquick1-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 c812a7e59a8b9f0a87693181059933e15fef04bc875b6486cd653be1b9b51f2c qtquick1-opensource-src-5.5.1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5quick1/qt5quick1.mk b/bsp/buildroot/package/qt5/qt5quick1/qt5quick1.mk deleted file mode 100644 index 7ccf6440..00000000 --- a/bsp/buildroot/package/qt5/qt5quick1/qt5quick1.mk +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################ -# -# qt5quick1 -# -################################################################################ - -QT5QUICK1_VERSION = $(QT5_VERSION) -QT5QUICK1_SITE = $(QT5_SITE) -QT5QUICK1_SOURCE = qtquick1-opensource-src-$(QT5QUICK1_VERSION).tar.xz -QT5QUICK1_DEPENDENCIES = qt5base qt5xmlpatterns qt5script \ - $(if $(BR2_PACKAGE_QT5WEBKIT),qt5webkit) -QT5QUICK1_INSTALL_STAGING = YES - -ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5QUICK1_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5QUICK1_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 -else -QT5QUICK1_LICENSE = Commercial license -QT5QUICK1_REDISTRIBUTE = NO -endif - -define QT5QUICK1_CONFIGURE_CMDS - (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) -endef - -define QT5QUICK1_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -endef - -define QT5QUICK1_INSTALL_STAGING_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install - $(QT5_LA_PRL_FILES_FIXUP) -endef - -define QT5QUICK1_INSTALL_TARGET_CMDS - cp -dpf $(STAGING_DIR)/usr/lib/libQt5Declarative.so.* $(TARGET_DIR)/usr/lib - cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/qml1tooling $(TARGET_DIR)/usr/lib/qt/plugins/ - cp -dpfr $(STAGING_DIR)/usr/imports $(TARGET_DIR)/usr -endef - -$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.hash b/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.hash index 99dacb87..f9962632 100644 --- a/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.hash +++ b/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtquickcontrols-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 1b7a8389d656066c629bd2cb520b39a7eb041d184b567dd1b9639b88d841fcf0 qtquickcontrols-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtquickcontrols-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 011047af8bc2242fa9f7e7860818ca16a62a54e06b27a6b518919f4c08725f32 qtquickcontrols-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.mk b/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.mk index a0b9215f..b33ff157 100644 --- a/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.mk +++ b/bsp/buildroot/package/qt5/qt5quickcontrols/qt5quickcontrols.mk @@ -11,8 +11,8 @@ QT5QUICKCONTROLS_DEPENDENCIES = qt5base qt5declarative QT5QUICKCONTROLS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5QUICKCONTROLS_LICENSE = LGPLv3, GPLv2, GFDLv1.3 -QT5QUICKCONTROLS_LICENSE_FILES = LICENSE.LGPLv3 LICENSE.GPLv2 LICENSE.FDL +QT5QUICKCONTROLS_LICENSE = GPLv2 or GPLv3 or LGPLv3, GFDLv1.3 (docs) +QT5QUICKCONTROLS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL else QT5QUICKCONTROLS_LICENSE = Commercial license QT5QUICKCONTROLS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5quickcontrols2/Config.in b/bsp/buildroot/package/qt5/qt5quickcontrols2/Config.in new file mode 100644 index 00000000..1e57674d --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5quickcontrols2/Config.in @@ -0,0 +1,17 @@ +config BR2_PACKAGE_QT5QUICKCONTROLS2 + bool "qt5quickcontrols2" + select BR2_PACKAGE_QT5DECLARATIVE + select BR2_PACKAGE_QT5DECLARATIVE_QUICK + depends on BR2_PACKAGE_QT5_GL_AVAILABLE # qt5declarative/quick + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative/quick + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5quickcontrols2 module. + + http://qt.io + +comment "qt5quickcontrols2 needs an OpenGL-capable backend" + depends on !BR2_PACKAGE_QT5_GL_AVAILABLE + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE diff --git a/bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash b/bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash new file mode 100644 index 00000000..798a8ab2 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtquickcontrols2-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 4c915939f659bb5f7dc381eb011809b6030c717269d9d260fca36f8d5917ca71 qtquickcontrols2-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk b/bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk new file mode 100644 index 00000000..a5ad3f6d --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk @@ -0,0 +1,40 @@ +################################################################################ +# +# qt5quickcontrols2 +# +################################################################################ + +QT5QUICKCONTROLS2_VERSION = $(QT5_VERSION) +QT5QUICKCONTROLS2_SITE = $(QT5_SITE) +QT5QUICKCONTROLS2_SOURCE = qtquickcontrols2-opensource-src-$(QT5QUICKCONTROLS2_VERSION).tar.xz +QT5QUICKCONTROLS2_DEPENDENCIES = qt5base qt5declarative +QT5QUICKCONTROLS2_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5QUICKCONTROLS2_LICENSE = GPLv3 or LGPLv3, GFDLv1.3 (docs) +QT5QUICKCONTROLS2_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL +else +QT5QUICKCONTROLS2_LICENSE = Commercial license +QT5QUICKCONTROLS2_REDISTRIBUTE = NO +endif + +define QT5QUICKCONTROLS2_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5QUICKCONTROLS2_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5QUICKCONTROLS2_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install +endef + +define QT5QUICKCONTROLS2_INSTALL_TARGET_CMDS + cp -dpf $(STAGING_DIR)/usr/lib/libQt5LabsTemplates.so.* $(TARGET_DIR)/usr/lib + cp -dpfr $(STAGING_DIR)/usr/qml/Qt/labs/controls $(TARGET_DIR)/usr/qml/Qt/labs + cp -dpfr $(STAGING_DIR)/usr/qml/Qt/labs/calendar $(TARGET_DIR)/usr/qml/Qt/labs + cp -dpfr $(STAGING_DIR)/usr/qml/Qt/labs/templates $(TARGET_DIR)/usr/qml/Qt/labs +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5script/qt5script.hash b/bsp/buildroot/package/qt5/qt5script/qt5script.hash index f2b1df83..4b61d1bc 100644 --- a/bsp/buildroot/package/qt5/qt5script/qt5script.hash +++ b/bsp/buildroot/package/qt5/qt5script/qt5script.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtscript-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 cd46dddd998f22bcb06447e0407fef81f7052f25bc770b1c27625654cee828fd qtscript-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtscript-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 9d169f447395cef5209e1e33bf1020babc035740741145705298ba81488a36be qtscript-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5script/qt5script.mk b/bsp/buildroot/package/qt5/qt5script/qt5script.mk index 250bdfd1..57ba6f00 100644 --- a/bsp/buildroot/package/qt5/qt5script/qt5script.mk +++ b/bsp/buildroot/package/qt5/qt5script/qt5script.mk @@ -11,8 +11,8 @@ QT5SCRIPT_DEPENDENCIES = qt5base QT5SCRIPT_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5SCRIPT_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5SCRIPT_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5SCRIPT_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5SCRIPT_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5SCRIPT_LICENSE = Commercial license QT5SCRIPT_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.hash b/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.hash index 23559f69..344cc38b 100644 --- a/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.hash +++ b/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtsensors-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 5d264fc0729a5d7679bd4eb8d7a0a9b142ed38d09fa68fc7dfe57f64afc8eeea qtsensors-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtsensors-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 99003fbe9304f1a135c454f28cc875f553a5f2c8c98153c516cfd8bf8ddb994d qtsensors-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.mk b/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.mk index 522dd8a2..0dd952a4 100644 --- a/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.mk +++ b/bsp/buildroot/package/qt5/qt5sensors/qt5sensors.mk @@ -11,8 +11,8 @@ QT5SENSORS_DEPENDENCIES = qt5base QT5SENSORS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5SENSORS_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5SENSORS_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 +QT5SENSORS_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5SENSORS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5SENSORS_LICENSE = Commercial license QT5SENSORS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5serialbus/Config.in b/bsp/buildroot/package/qt5/qt5serialbus/Config.in new file mode 100644 index 00000000..f5b713db --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5serialbus/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_QT5SERIALBUS + bool "qt5serialbus" + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 # CAN FD + select BR2_PACKAGE_QT5BASE + select BR2_PACKAGE_QT5SERIALPORT + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5serialbus module. + + http://qt.io + +comment "qt5serialbus needs headers >= 3.6" + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 diff --git a/bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.hash b/bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.hash new file mode 100644 index 00000000..ff87c580 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtserialbus-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 05cb306d450a697cb8311db1e0edde76eaea0b20a681a74e28cbeda2c1792452 qtserialbus-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.mk b/bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.mk new file mode 100644 index 00000000..b188f5d8 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5serialbus/qt5serialbus.mk @@ -0,0 +1,50 @@ +################################################################################ +# +# qt5serialbus +# +################################################################################ + +QT5SERIALBUS_VERSION = $(QT5_VERSION) +QT5SERIALBUS_SITE = $(QT5_SITE) +QT5SERIALBUS_SOURCE = qtserialbus-opensource-src-$(QT5SERIALBUS_VERSION).tar.xz +QT5SERIALBUS_DEPENDENCIES = qt5base qt5serialport +QT5SERIALBUS_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5SERIALBUS_LICENSE = GPLv2 or GPLv3 or LGPLv3, GFDLv1.3 (docs) +QT5SERIALBUS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv3 LICENSE.FDL +else +QT5SERIALBUS_LICENSE = Commercial license +QT5SERIALBUS_REDISTRIBUTE = NO +endif + +define QT5SERIALBUS_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5SERIALBUS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5SERIALBUS_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install + $(QT5_LA_PRL_FILES_FIXUP) +endef + +ifeq ($(BR2_STATIC_LIBS),) +define QT5SERIALBUS_INSTALL_TARGET_LIBS + cp -dpf $(STAGING_DIR)/usr/lib/libQt5SerialBus.so.* \ + $(TARGET_DIR)/usr/lib + mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins/canbus + cp -dpf $(STAGING_DIR)/usr/lib/qt/plugins/canbus/*.so \ + $(TARGET_DIR)/usr/lib/qt/plugins/canbus +endef +endif + +define QT5SERIALBUS_INSTALL_TARGET_CMDS + $(QT5SERIALBUS_INSTALL_TARGET_LIBS) + $(INSTALL) -m 0755 -D $(@D)/bin/canbusutil \ + $(TARGET_DIR)/usr/bin/canbusutil +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.hash b/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.hash index db501451..7903d421 100644 --- a/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.hash +++ b/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtserialport-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 a034dbfb023db1b9b9de54390f7e76a48c1d1eb12533b0ffd574505c99968f7a qtserialport-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtserialport-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 a2b488fcdf076f539b601ec2c49446352d67bfe1d9fb4a57330ccc0edf5bac8c qtserialport-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.mk b/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.mk index 14cbf326..04df021b 100644 --- a/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.mk +++ b/bsp/buildroot/package/qt5/qt5serialport/qt5serialport.mk @@ -11,8 +11,8 @@ QT5SERIALPORT_DEPENDENCIES = qt5base QT5SERIALPORT_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5SERIALPORT_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5SERIALPORT_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 +QT5SERIALPORT_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5SERIALPORT_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5SERIALPORT_LICENSE = Commercial license QT5SERIALPORT_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5svg/qt5svg.hash b/bsp/buildroot/package/qt5/qt5svg/qt5svg.hash index afe98cf5..a9df0351 100644 --- a/bsp/buildroot/package/qt5/qt5svg/qt5svg.hash +++ b/bsp/buildroot/package/qt5/qt5svg/qt5svg.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtsvg-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 f7f588be48befd9ccab5a6086832551b8899e8bed9e603ddea979581e05a91c7 qtsvg-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtsvg-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 5c870352ecd9d0c11bfca1725999a5073c3a03e5685ba12b73aab5a81edc12f0 qtsvg-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5svg/qt5svg.mk b/bsp/buildroot/package/qt5/qt5svg/qt5svg.mk index 5942d018..ebd5cba8 100644 --- a/bsp/buildroot/package/qt5/qt5svg/qt5svg.mk +++ b/bsp/buildroot/package/qt5/qt5svg/qt5svg.mk @@ -11,8 +11,8 @@ QT5SVG_DEPENDENCIES = qt5base QT5SVG_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5SVG_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5SVG_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5SVG_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5SVG_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5SVG_LICENSE = Commercial license QT5SVG_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5tools/Config.in b/bsp/buildroot/package/qt5/qt5tools/Config.in new file mode 100644 index 00000000..453913b8 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5tools/Config.in @@ -0,0 +1,43 @@ +config BR2_PACKAGE_QT5TOOLS + bool "qt5tools" + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5tools module. + + http://qt.io + +if BR2_PACKAGE_QT5TOOLS + +config BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS + bool "Linguist host tools (lconvert, lrelease, lupdate)" + help + This option enables the linguist host tools + lconvert, lrelease and lupdate. + +config BR2_PACKAGE_QT5TOOLS_PIXELTOOL + bool "pixeltool" + select BR2_PACKAGE_QT5BASE_GUI + select BR2_PACKAGE_QT5BASE_WIDGETS + select BR2_PACKAGE_QT5BASE_PNG # saving png images + help + Compile and install the pixeltool program. + +config BR2_PACKAGE_QT5TOOLS_QTDIAG + bool "qtdiag" + select BR2_PACKAGE_QT5BASE_GUI + help + Compile and install the qtdiag program. + +config BR2_PACKAGE_QT5TOOLS_QTPATHS + bool "qtpaths" + help + Compile and install the qtpaths program. + +config BR2_PACKAGE_QT5TOOLS_QTPLUGININFO + bool "qtplugininfo" + help + Compile and install the qtplugininfo program. + +endif diff --git a/bsp/buildroot/package/qt5/qt5tools/qt5tools.hash b/bsp/buildroot/package/qt5/qt5tools/qt5tools.hash new file mode 100644 index 00000000..2b43fbd1 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5tools/qt5tools.hash @@ -0,0 +1,2 @@ +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qttools-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 375a528bf7141eff38cdc00c322c6d4491c8f67203fd8ee6b9a7097504605141 qttools-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5tools/qt5tools.mk b/bsp/buildroot/package/qt5/qt5tools/qt5tools.mk new file mode 100644 index 00000000..6befb8b2 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5tools/qt5tools.mk @@ -0,0 +1,66 @@ +################################################################################ +# +# qt5tools +# +################################################################################ + +QT5TOOLS_VERSION = $(QT5_VERSION) +QT5TOOLS_SITE = $(QT5_SITE) +QT5TOOLS_SOURCE = qttools-opensource-src-$(QT5BASE_VERSION).tar.xz + +QT5TOOLS_DEPENDENCIES = qt5base +QT5TOOLS_INSTALL_STAGING = YES + +# linguist tools compile conditionally on qtHaveModule(qmldevtools-private), +# but the condition is used only used to decide if lupdate will support +# parsing qml files (via setting QT_NO_QML define), no linking against +# target qt5 will happen +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) +QT5TOOLS_DEPENDENCIES += qt5declarative +endif + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5TOOLS_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5TOOLS_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL +else +QT5TOOLS_LICENSE = Commercial license +QT5TOOLS_REDISTRIBUTE = NO +endif + +QT5TOOLS_BUILD_DIRS_$(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS) += \ + linguist/lconvert linguist/lrelease linguist/lupdate +ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y) +# use install target to copy cmake module files +define QT5TOOLS_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/linguist install +endef +endif + +QT5TOOLS_BUILD_DIRS_$(BR2_PACKAGE_QT5TOOLS_PIXELTOOL) += pixeltool +QT5TOOLS_INSTALL_TARGET_$(BR2_PACKAGE_QT5TOOLS_PIXELTOOL) += pixeltool + +QT5TOOLS_BUILD_DIRS_$(BR2_PACKAGE_QT5TOOLS_QTDIAG) += qtdiag +QT5TOOLS_INSTALL_TARGET_$(BR2_PACKAGE_QT5TOOLS_QTDIAG) += qtdiag + +QT5TOOLS_BUILD_DIRS_$(BR2_PACKAGE_QT5TOOLS_QTPATHS) += qtpaths +QT5TOOLS_INSTALL_TARGET_$(BR2_PACKAGE_QT5TOOLS_QTPATHS) += qtpaths + +QT5TOOLS_BUILD_DIRS_$(BR2_PACKAGE_QT5TOOLS_QTPLUGININFO) += qtplugininfo +QT5TOOLS_INSTALL_TARGET_$(BR2_PACKAGE_QT5TOOLS_QTPLUGININFO) += qtplugininfo + +define QT5TOOLS_CONFIGURE_CMDS + (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5TOOLS_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) sub-src-qmake_all + $(foreach p,$(QT5TOOLS_BUILD_DIRS_y), \ + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/$(p)$(sep)) +endef + +define QT5TOOLS_INSTALL_TARGET_CMDS + $(foreach p,$(QT5TOOLS_INSTALL_TARGET_y), \ + $(INSTALL) -D -m0755 $(@D)/bin/$(p) $(TARGET_DIR)/usr/bin/$(p)$(sep)) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5webchannel/0001-Fix-builds-without-qml-module.patch b/bsp/buildroot/package/qt5/qt5webchannel/0001-Fix-builds-without-qml-module.patch deleted file mode 100644 index 0eb007e4..00000000 --- a/bsp/buildroot/package/qt5/qt5webchannel/0001-Fix-builds-without-qml-module.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 4dee412aa655e1dc7f9e01869abcab47e0179422 Mon Sep 17 00:00:00 2001 -From: Julien Corjon -Date: Wed, 22 Jul 2015 09:24:04 +0200 -Subject: [PATCH] Fix builds without qml module - -When we build without qml module we cannot use QJSValue in qmetaobjectpublisher -To prevent QJSValue inclusiion I use a preprocessor directive QT_HAVE_QML. This -is probably not the best solution but I do not know any other QML directive. - -Upstream--Status: https://bugreports.qt.io/browse/QTBUG-47360 -Signed-off-by: Julien Corjon ---- - src/webchannel/qmetaobjectpublisher.cpp | 4 ++++ - src/webchannel/webchannel.pro | 2 ++ - 2 files changed, 6 insertions(+) - -diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp -index 0cad569..b0e9652 100644 ---- a/src/webchannel/qmetaobjectpublisher.cpp -+++ b/src/webchannel/qmetaobjectpublisher.cpp -@@ -41,7 +41,9 @@ - #include - #include - #include -+#ifdef QT_HAVE_QML - #include -+#endif - #include - - QT_BEGIN_NAMESPACE -@@ -486,12 +488,14 @@ QJsonValue QMetaObjectPublisher::wrapResult(const QVariant &result, QWebChannelA - if (!classInfo.isEmpty()) - objectInfo[KEY_DATA] = classInfo; - return objectInfo; -+#ifdef QT_HAVE_QML - } else if (result.canConvert()) { - // Workaround for keeping QJSValues from QVariant. - // Calling QJSValue::toVariant() converts JS-objects/arrays to QVariantMap/List - // instead of stashing a QJSValue itself into a variant. - // TODO: Improve QJSValue-QJsonValue conversion in Qt. - return wrapResult(result.value().toVariant(), transport, parentObjectId); -+#endif - } else if (result.canConvert()) { - // recurse and potentially wrap contents of the array - return wrapList(result.toList(), transport); -diff --git a/src/webchannel/webchannel.pro b/src/webchannel/webchannel.pro -index eba8123..f476d6f 100644 ---- a/src/webchannel/webchannel.pro -+++ b/src/webchannel/webchannel.pro -@@ -30,6 +30,8 @@ SOURCES += \ - qtHaveModule(qml) { - QT += qml - -+ QMAKE_CXXFLAGS += "-DQT_HAVE_QML" -+ - SOURCES += \ - qqmlwebchannel.cpp \ - qqmlwebchannelattached.cpp --- -2.1.0 - diff --git a/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.hash b/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.hash index c0ae89e2..bb9f0acf 100644 --- a/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.hash +++ b/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtwebchannel-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 7f4295ee57cd4ecba3cb263452d2a08d501b45c9a2b8b7794b6a97d7652f15d0 qtwebchannel-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtwebchannel-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 878ab614b30bbf04ef3775af68acd47de9765973650c1db403464e79efd07e82 qtwebchannel-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.mk b/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.mk index 6ceb59e0..9e94914b 100644 --- a/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.mk +++ b/bsp/buildroot/package/qt5/qt5webchannel/qt5webchannel.mk @@ -11,8 +11,8 @@ QT5WEBCHANNEL_DEPENDENCIES = qt5base qt5websockets QT5WEBCHANNEL_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5WEBCHANNEL_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5WEBCHANNEL_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LGPL_EXCEPTION.txt LICENSE.GPLv2 +QT5WEBCHANNEL_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5WEBCHANNEL_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5WEBCHANNEL_LICENSE = Commercial license QT5WEBCHANNEL_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5webkit-examples/0001-build.patch b/bsp/buildroot/package/qt5/qt5webkit-examples/0001-build.patch deleted file mode 100644 index 68964f01..00000000 --- a/bsp/buildroot/package/qt5/qt5webkit-examples/0001-build.patch +++ /dev/null @@ -1,30 +0,0 @@ -This patch improves the qt5webkit examples build for 2 aspects: - -# Allows to build even if qt5base examples are not enabled -# Builds xmlpatterns example only if the qt5xmlpattern package has been built - -Signed-off-by: Massimo Callegari - -Index: b/examples/webkitwidgets/webkitwidgets.pro -=================================================================== ---- /dev/null -+++ b/examples/webkitwidgets/webkitwidgets.pro -@@ -8,5 +8,6 @@ - framecapture \ - browser \ - embedded \ -- scroller \ -- xmlpatterns -+ scroller -+ -+qtHaveModule(xmlpatterns): SUBDIRS += xmlpatterns -Index: b/qtwebkit-examples.pro -=================================================================== ---- /dev/null -+++ b/qtwebkit-examples.pro -@@ -3,3 +3,4 @@ - load(qt_parts) - - SUBDIRS += doc -+SUBDIRS += examples - diff --git a/bsp/buildroot/package/qt5/qt5webkit-examples/Config.in b/bsp/buildroot/package/qt5/qt5webkit-examples/Config.in deleted file mode 100644 index 3f9c2439..00000000 --- a/bsp/buildroot/package/qt5/qt5webkit-examples/Config.in +++ /dev/null @@ -1,14 +0,0 @@ -config BR2_PACKAGE_QT5WEBKIT_EXAMPLES - bool "qt5webkit examples" - depends on BR2_PACKAGE_QT5WEBKIT - help - Qt is a cross-platform application and UI framework for - developers using C++. - - This package contains examples for the qt5webkit module. - - This package has been tagged as deprecated since version - 5.5.0 and should be replaced by Qt WebEngine module in - new design. - - http://qt.io diff --git a/bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.hash b/bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.hash deleted file mode 100644 index b28e0da3..00000000 --- a/bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.hash +++ /dev/null @@ -1,2 +0,0 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtwebkit-examples-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 098935b42d6d249027d1a635e4e70edc3d2969dd860f825b36aec06fc72e46c6 qtwebkit-examples-opensource-src-5.5.1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.mk b/bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.mk deleted file mode 100644 index b687ac70..00000000 --- a/bsp/buildroot/package/qt5/qt5webkit-examples/qt5webkit-examples.mk +++ /dev/null @@ -1,50 +0,0 @@ -################################################################################ -# -# qt5webkit-examples -# -################################################################################ - -QT5WEBKIT_EXAMPLES_VERSION = $(QT5_VERSION) -QT5WEBKIT_EXAMPLES_SITE = $(QT5_SITE) -QT5WEBKIT_EXAMPLES_SOURCE = qtwebkit-examples-opensource-src-$(QT5WEBKIT_EXAMPLES_VERSION).tar.xz -QT5WEBKIT_EXAMPLES_DEPENDENCIES = qt5webkit - -ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5WEBKIT_EXAMPLES_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -# Source files contain references to LGPL_EXCEPTION.txt but it is not included -# in the archive. -QT5WEBKIT_EXAMPLES_LICENSE_FILES = LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2 -else -QT5WEBKIT_EXAMPLES_LICENSE = Commercial license -QT5WEBKIT_EXAMPLES_REDISTRIBUTE = NO -endif - -ifeq ($(BR2_PACKAGE_QT5XMLPATTERNS),y) -QT5WEBKIT_EXAMPLES_DEPENDENCIES += qt5xmlpatterns -endif - -define QT5WEBKIT_EXAMPLES_CONFIGURE_CMDS - (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) -endef - -define QT5WEBKIT_EXAMPLES_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) -endef - -define QT5WEBKIT_EXAMPLES_INSTALL_STAGING_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install -endef - -ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) -define QT5WEBKIT_EXAMPLES_INSTALL_QML - cp -dpfr $(@D)/examples/webkitqml $(TARGET_DIR)/usr/lib/qt/examples -endef -endif - -define QT5WEBKIT_EXAMPLES_INSTALL_TARGET_CMDS - mkdir -p $(TARGET_DIR)/usr/lib/qt/examples - cp -dpfr $(@D)/examples/webkitwidgets $(TARGET_DIR)/usr/lib/qt/examples - $(QT5WEBKIT_EXAMPLES_INSTALL_QML) -endef - -$(eval $(generic-package)) diff --git a/bsp/buildroot/package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch b/bsp/buildroot/package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch new file mode 100644 index 00000000..669c7e6a --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5webkit/0001-qtwebkit-fix-QA-issue-bad-RPATH.patch @@ -0,0 +1,36 @@ +From 1735a8484ef9ae336f8d607b56bda64c8af10c79 Mon Sep 17 00:00:00 2001 +From: Trevor Woerner +Date: Fri, 7 Feb 2014 04:07:17 +0100 +Subject: [PATCH] qtwebkit: fix QA issue (bad RPATH) + +Building qtwebkit causes a QA issue such that QtWebPluginProcess and +QtWebProcess contain bad RPATHs which point into the build location. This fix +adds a patch to not include the rpath.prf which causes this problem. + +Signed-off-by: Trevor Woerner +Signed-off-by: Martin Jansa + +Downloaded from: +https://github.com/meta-qt5/meta-qt5/blob/krogoth/recipes-qt/qt5/qtwebkit/ +0001-qtwebkit-fix-QA-issue-bad-RPATH.patch + +Signed-off-by: Gary Bisson +--- + Tools/qmake/mkspecs/features/unix/default_post.prf | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf +index fd66af6..ef754c3 100644 +--- a/Tools/qmake/mkspecs/features/unix/default_post.prf ++++ b/Tools/qmake/mkspecs/features/unix/default_post.prf +@@ -61,7 +61,6 @@ linux-*g++* { + } + } + +-contains(TEMPLATE, app): CONFIG += rpath + + CONFIG(debug, debug|release)|force_debug_info { + # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase. +-- +2.7.0 + diff --git a/bsp/buildroot/package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch b/bsp/buildroot/package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch new file mode 100644 index 00000000..14352a16 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5webkit/0002-Remove-TEXTREL-tag-in-x86.patch @@ -0,0 +1,85 @@ +From ae16ce17cc7060274a0b0c165b953fc32540f977 Mon Sep 17 00:00:00 2001 +From: Magnus Granberg +Date: Fri, 27 Feb 2015 11:55:09 +0100 +Subject: [PATCH] Remove TEXTREL tag in x86 + +Fix textrel QA warnings when building qtwebkit for x86: + + WARNING: QA Issue: ELF binary '/home/andre/rdk/rdk-master/build-vbox32/tmp/work/core2-32-rdk-linux/qtwebkit/5.4.0-r0/packages-split/qtwebkit/usr/lib/libQt5WebKit.so.5.4.0' has relocations in .text [textrel] + +Patch from upstream webkit: + + https://bugs.webkit.org/show_bug.cgi?id=70610 + +Minor refresh required to apply cleanly to the older webkit sources used +by qtwebkit. Specifically, the patch needed to be modified to account +for PLATFORM(MAC) -> OS(DARWIN) renaming in recent webkit which is not +part of qtwebkit yet ( https://bugs.webkit.org/show_bug.cgi?id=99683 ). + +Upstream status [webkit] : backport +Upstream status [qtwebkit] : unclear + +Bug: https://bugs.webkit.org/show_bug.cgi?id=70610 +Signed-off-by: Martin Jansa + +Downloaded from: +https://github.com/meta-qt5/meta-qt5/blob/krogoth/recipes-qt/qt5/qtwebkit/ +0002-Remove-TEXTREL-tag-in-x86.patch + +Signed-off-by: Gary Bisson +--- + Source/JavaScriptCore/jit/ThunkGenerators.cpp | 24 ++++++++++++++++++++++++ + Source/WTF/wtf/InlineASM.h | 2 ++ + 2 files changed, 26 insertions(+) + +diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp +index 9684df2..8af82d8 100644 +--- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp ++++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp +@@ -524,6 +524,30 @@ double jsRound(double d) + } \ + static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; + ++#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__) ++#define defineUnaryDoubleOpWrapper(function) \ ++ asm( \ ++ ".text\n" \ ++ ".globl " SYMBOL_STRING(function##Thunk) "\n" \ ++ HIDE_SYMBOL(function##Thunk) "\n" \ ++ SYMBOL_STRING(function##Thunk) ":" "\n" \ ++ "pushl %ebx\n" \ ++ "subl $20, %esp\n" \ ++ "movsd %xmm0, (%esp) \n" \ ++ "call __x86.get_pc_thunk.bx\n" \ ++ "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \ ++ "call " GLOBAL_REFERENCE(function) "\n" \ ++ "fstpl (%esp) \n" \ ++ "movsd (%esp), %xmm0 \n" \ ++ "addl $20, %esp\n" \ ++ "popl %ebx\n" \ ++ "ret\n" \ ++ );\ ++ extern "C" { \ ++ MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ ++ } \ ++ static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; ++ + #elif CPU(X86) && COMPILER(GCC) && (PLATFORM(MAC) || OS(LINUX)) + #define defineUnaryDoubleOpWrapper(function) \ + asm( \ +diff --git a/Source/WTF/wtf/InlineASM.h b/Source/WTF/wtf/InlineASM.h +index 0a2fe78..2dc40ef 100644 +--- a/Source/WTF/wtf/InlineASM.h ++++ b/Source/WTF/wtf/InlineASM.h +@@ -46,6 +46,8 @@ + #define GLOBAL_REFERENCE(name) #name "@plt" + #elif CPU(X86) && COMPILER(MINGW) + #define GLOBAL_REFERENCE(name) "@" #name "@4" ++#elif OS(LINUX) && CPU(X86) && defined(__PIC__) ++#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt" + #else + #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) + #endif +-- +2.7.0 + diff --git a/bsp/buildroot/package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch b/bsp/buildroot/package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch new file mode 100644 index 00000000..a2597a54 --- /dev/null +++ b/bsp/buildroot/package/qt5/qt5webkit/0003-Exclude-backtrace-API-for-non-glibc-libraries.patch @@ -0,0 +1,44 @@ +From 6c36f0ff8c1f5852c33d2b23714f9f187cc6ff26 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 5 Jun 2015 19:55:05 -0700 +Subject: [PATCH] Exclude backtrace() API for non-glibc libraries + +It was excluding musl with current checks, so lets make it such that it +considers only glibc when using backtrace API + +Signed-off-by: Khem Raj + +Downloaded from: +https://github.com/meta-qt5/meta-qt5/blob/krogoth/recipes-qt/qt5/qtwebkit/ +0003-Exclude-backtrace-API-for-non-glibc-libraries.patch + +Signed-off-by: Gary Bisson +--- + Source/WTF/wtf/Assertions.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WTF/wtf/Assertions.cpp b/Source/WTF/wtf/Assertions.cpp +index 1b2091f..ba03a28 100644 +--- a/Source/WTF/wtf/Assertions.cpp ++++ b/Source/WTF/wtf/Assertions.cpp +@@ -61,7 +61,7 @@ + #include + #endif + +-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID) ++#if (OS(DARWIN) || (OS(LINUX) && defined (__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID) + #include + #include + #include +@@ -245,7 +245,7 @@ void WTFReportArgumentAssertionFailure(const char* file, int line, const char* f + + void WTFGetBacktrace(void** stack, int* size) + { +-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID) ++#if (OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))) && !OS(ANDROID) + *size = backtrace(stack, *size); + #elif OS(WINDOWS) && !OS(WINCE) + // The CaptureStackBackTrace function is available in XP, but it is not defined +-- +2.7.0 + diff --git a/bsp/buildroot/package/qt5/qt5webkit/Config.in b/bsp/buildroot/package/qt5/qt5webkit/Config.in index 96d97cc8..48aaf945 100644 --- a/bsp/buildroot/package/qt5/qt5webkit/Config.in +++ b/bsp/buildroot/package/qt5/qt5webkit/Config.in @@ -6,7 +6,6 @@ config BR2_PACKAGE_QT5WEBKIT select BR2_PACKAGE_SQLITE select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_QT5BASE_XCB select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_QT5BASE_XCB - # This module does not support static linking depends on !BR2_STATIC_LIBS depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE depends on !BR2_BINFMT_FLAT # icu @@ -16,8 +15,14 @@ config BR2_PACKAGE_QT5WEBKIT This package corresponds to the qt5webkit module. - This package has been tagged as deprecated since version - 5.5.0 and should be replaced by Qt WebEngine module in - new design. + This package has been removed from the official release packages + since Qt5.6.0, but it is still available for users to build it + from source. This is useful for platforms without GPU since the + successor (QtWebEngine) requires OpenGL support. http://qt.io + +comment "qt5webkit needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE + depends on !BR2_BINFMT_FLAT diff --git a/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.hash b/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.hash index 8517223d..8122cabb 100644 --- a/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.hash +++ b/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtwebkit-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 77583f9dbd3e6ad874386df71b165dc3ce88efdabbc6e5d97a959ee2187d6d69 qtwebkit-opensource-src-5.5.1.tar.xz +# locally computed +sha256 e4339ee069e2817fc5bf7c2c2d9fa680874da4ba56f34afdad2b4795803cbdf1 qt5webkit-b889f460280ad98c89ede179bd3b9ce9cb02002b.tar.gz diff --git a/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.mk b/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.mk index 75ad1bfb..a47a2352 100644 --- a/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.mk +++ b/bsp/buildroot/package/qt5/qt5webkit/qt5webkit.mk @@ -4,21 +4,24 @@ # ################################################################################ -QT5WEBKIT_VERSION = $(QT5_VERSION) -QT5WEBKIT_SITE = $(QT5_SITE) -QT5WEBKIT_SOURCE = qtwebkit-opensource-src-$(QT5WEBKIT_VERSION).tar.xz -QT5WEBKIT_DEPENDENCIES = qt5base sqlite host-ruby host-gperf host-bison host-flex +QT5WEBKIT_VERSION = b889f460280ad98c89ede179bd3b9ce9cb02002b +# Using GitHub since it supports downloading tarballs from random commits. +# The http://code.qt.io/cgit/qt/qtwebkit.git/ repo doesn't allow to do so. +QT5WEBKIT_SITE = $(call github,qtproject,qtwebkit,$(QT5WEBKIT_VERSION)) +QT5WEBKIT_DEPENDENCIES = \ + host-bison host-flex host-gperf host-python host-ruby \ + qt5base sqlite QT5WEBKIT_INSTALL_STAGING = YES QT5WEBKIT_LICENSE_FILES = Source/WebCore/LICENSE-LGPL-2 Source/WebCore/LICENSE-LGPL-2.1 ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5WEBKIT_LICENSE = LGPLv2+ (WebCore), LGPLv2.1 with exception or LGPLv3 or GPLv2 +QT5WEBKIT_LICENSE = LGPLv2.1+, BSD-3c, BSD-2c # Source files contain references to LGPL_EXCEPTION.txt but it is not included # in the archive. -QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 LICENSE.LGPLv3 LICENSE.GPLv2 +QT5WEBKIT_LICENSE_FILES += LICENSE.LGPLv21 else -QT5WEBKIT_LICENSE = LGPLv2+ (WebCore), Commercial license +QT5WEBKIT_LICENSE = LGPLv2.1+ (WebCore), Commercial license QT5WEBKIT_REDISTRIBUTE = NO endif @@ -30,16 +33,33 @@ ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) QT5WEBKIT_DEPENDENCIES += qt5declarative endif +# QtWebkit's build system uses python, but only supports python2. We work +# around this by forcing python2 early in the PATH, via a python->python2 +# symlink. +QT5WEBKIT_ENV = PATH=$(@D)/bin:$(BR_PATH) +define QT5WEBKIT_PYTHON2_SYMLINK + mkdir -p $(@D)/bin + ln -sf $(HOST_DIR)/usr/bin/python2 $(@D)/bin/python +endef +QT5WEBKIT_PRE_CONFIGURE_HOOKS += QT5WEBKIT_PYTHON2_SYMLINK + +# Since we get the source from git, generated header files are not included. +# qmake detects that header file generation (using the syncqt tool) must be +# done based on the existence of a .git directory (cfr. the git_build config +# option which is set in qt_build_paths.prf). +# So, to make sure that qmake detects that header files must be generated, +# create an empty .git directory. define QT5WEBKIT_CONFIGURE_CMDS - (cd $(@D); $(TARGET_MAKE_ENV) $(HOST_DIR)/usr/bin/qmake) + mkdir -p $(@D)/.git + (cd $(@D); $(TARGET_MAKE_ENV) $(QT5WEBKIT_ENV) $(HOST_DIR)/usr/bin/qmake) endef define QT5WEBKIT_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) + $(TARGET_MAKE_ENV) $(QT5WEBKIT_ENV) $(MAKE) -C $(@D) endef define QT5WEBKIT_INSTALL_STAGING_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install + $(TARGET_MAKE_ENV) $(QT5WEBKIT_ENV) $(MAKE) -C $(@D) install $(QT5_LA_PRL_FILES_FIXUP) endef diff --git a/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.hash b/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.hash index 0bd4a5ac..05abfef8 100644 --- a/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.hash +++ b/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.hash @@ -1,2 +1,2 @@ -# Hashes from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtwebsockets-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 cf4e834a867b90337188be504ef20184c52666370f721e704952988f8cb12deb qtwebsockets-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtwebsockets-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 34620ca34ca580802509b2fb3e9eb843d5ad11416d6a211400ac7f700aeae0bb qtwebsockets-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.mk b/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.mk index 1d7c1f11..f1200c28 100644 --- a/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.mk +++ b/bsp/buildroot/package/qt5/qt5websockets/qt5websockets.mk @@ -11,8 +11,8 @@ QT5WEBSOCKETS_DEPENDENCIES = qt5base QT5WEBSOCKETS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5WEBSOCKETS_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5WEBSOCKETS_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5WEBSOCKETS_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3 +QT5WEBSOCKETS_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 else QT5WEBSOCKETS_LICENSE = Commercial license QT5WEBSOCKETS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.hash b/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.hash index d7c0ad0a..bfec5139 100644 --- a/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.hash +++ b/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtx11extras-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 6387a01d972b62e1ad39e5a25e07d0492200f62fc87cf4366122085aeeebeb65 qtx11extras-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtx11extras-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 be6cc815e9b33a20f5cd374fe77443b13ea5f1cd625616d75b3c4fdcc4f3457a qtx11extras-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.mk b/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.mk index 280379ab..a0e12098 100644 --- a/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.mk +++ b/bsp/buildroot/package/qt5/qt5x11extras/qt5x11extras.mk @@ -11,8 +11,8 @@ QT5X11EXTRAS_DEPENDENCIES = qt5base QT5X11EXTRAS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5X11EXTRAS_LICENSE = LGPLv2.1 with exception or LGPLv3 or GPLv2 -QT5X11EXTRAS_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.GPLv2 +QT5X11EXTRAS_LICENSE = GPLv2 or GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5X11EXTRAS_LICENSE_FILES = LICENSE.GPLv2 LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5X11EXTRAS_LICENSE = Commercial license QT5X11EXTRAS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash b/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash index e04a1a1c..68c859a2 100644 --- a/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash +++ b/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash @@ -1,2 +1,2 @@ -# Hash from: http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtxmlpatterns-opensource-src-5.5.1.tar.xz.mirrorlist -sha256 b537eb0252988e3805a32a16c65038973371d647baf246fdf703bde725d0e8ec qtxmlpatterns-opensource-src-5.5.1.tar.xz +# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.1-1/submodules/qtxmlpatterns-opensource-src-5.6.1-1.tar.xz.mirrorlist +sha256 e1dac17a8e6cb2b03da2d666ae2a99f31c2d9b73790c79ca2c85197766cec6a4 qtxmlpatterns-opensource-src-5.6.1-1.tar.xz diff --git a/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk b/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk index 136da9f1..31477a7c 100644 --- a/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk +++ b/bsp/buildroot/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk @@ -11,8 +11,8 @@ QT5XMLPATTERNS_DEPENDENCIES = qt5base QT5XMLPATTERNS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) -QT5XMLPATTERNS_LICENSE = LGPLv2.1 with exception or LGPLv3 -QT5XMLPATTERNS_LICENSE_FILES = LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 +QT5XMLPATTERNS_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs) +QT5XMLPATTERNS_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL else QT5XMLPATTERNS_LICENSE = Commercial license QT5XMLPATTERNS_REDISTRIBUTE = NO diff --git a/bsp/buildroot/package/qtuio/qtuio.hash b/bsp/buildroot/package/qtuio/qtuio.hash new file mode 100644 index 00000000..bb9bdb18 --- /dev/null +++ b/bsp/buildroot/package/qtuio/qtuio.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 65308adb59e910d552d4885772c7f99c7d19dec5e924d852a5a39a1972f8d223 qtuio-abe4973ff60654aad9df7037c4ca15c45f811d24.tar.gz diff --git a/bsp/buildroot/package/quagga/0003-lib-memory-fix-indirect-static-link-with-zlib.patch b/bsp/buildroot/package/quagga/0003-lib-memory-fix-indirect-static-link-with-zlib.patch new file mode 100644 index 00000000..6990f47c --- /dev/null +++ b/bsp/buildroot/package/quagga/0003-lib-memory-fix-indirect-static-link-with-zlib.patch @@ -0,0 +1,108 @@ +From 008dd9771057dbbd7ce971c43bce2a0b05e2cf97 Mon Sep 17 00:00:00 2001 +From: Baruch Siach +Date: Sun, 21 Aug 2016 08:56:57 +0300 +Subject: [PATCH] lib/memory: fix indirect static link with zlib + +quagga SNMP support depends on netsnmp, that optionally depends on OpenSSL, +which in turn requires zlib. zlib exports the 'zcalloc' symbol, which collides +with a function of the same name in memory.c. This is not a problem when +linking dynamically, since quagga does not use zlib directly. But static +linking fails with the error: + + CCLD ospfd +.../output/host/usr/mips64el-buildroot-linux-uclibc/sysroot/usr/lib/libz.a(zutil.o): In function `zcalloc': +zutil.c:(.text+0x48): multiple definition of `zcalloc' +.../output/build/quagga-1.0.20160315/lib/.libs/libzebra.a(memory.o):memory.c:(.text+0x1a0): first defined here + +Rename 'zcalloc' to 'zzcalloc' to avoid symbol collision. + +Signed-off-by: Baruch Siach +--- +Patch status: posted upstream +https://lists.quagga.net/pipermail/quagga-dev/2016-August/016109.html + + lib/memory.c | 14 ++++++++------ + lib/memory.h | 4 ++-- + 2 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/lib/memory.c b/lib/memory.c +index 269520d5a435..b1680a5e6f07 100644 +--- a/lib/memory.c ++++ b/lib/memory.c +@@ -80,9 +80,11 @@ zmalloc (int type, size_t size) + + /* + * Allocate memory as in zmalloc, and also clear the memory. ++ * Add an extra 'z' prefix to function name to avoid collision when linking ++ * statically with zlib that exports the 'zcalloc' symbol. + */ + void * +-zcalloc (int type, size_t size) ++zzcalloc (int type, size_t size) + { + void *memory; + +@@ -97,9 +99,9 @@ zcalloc (int type, size_t size) + } + + /* +- * Given a pointer returned by zmalloc or zcalloc, free it and ++ * Given a pointer returned by zmalloc or zzcalloc, free it and + * return a pointer to a new size, basically acting like realloc(). +- * Requires: ptr was returned by zmalloc, zcalloc, or zrealloc with the ++ * Requires: ptr was returned by zmalloc, zzcalloc, or zrealloc with the + * same type. + * Effects: Returns a pointer to the new memory, or aborts. + */ +@@ -109,7 +111,7 @@ zrealloc (int type, void *ptr, size_t size) + void *memory; + + if (ptr == NULL) /* is really alloc */ +- return zcalloc(type, size); ++ return zzcalloc(type, size); + + memory = realloc (ptr, size); + if (memory == NULL) +@@ -122,7 +124,7 @@ zrealloc (int type, void *ptr, size_t size) + + /* + * Free memory allocated by z*alloc or zstrdup. +- * Requires: ptr was returned by zmalloc, zcalloc, or zrealloc with the ++ * Requires: ptr was returned by zmalloc, zzcalloc, or zrealloc with the + * same type. + * Effects: The memory is freed and may no longer be referenced. + */ +@@ -196,7 +198,7 @@ mtype_zcalloc (const char *file, int line, int type, size_t size) + mstat[type].c_calloc++; + mstat[type].t_calloc++; + +- memory = zcalloc (type, size); ++ memory = zzcalloc (type, size); + mtype_log ("xcalloc", memory, file, line, type); + + return memory; +diff --git a/lib/memory.h b/lib/memory.h +index 23962235dbfe..501352993d21 100644 +--- a/lib/memory.h ++++ b/lib/memory.h +@@ -56,7 +56,7 @@ extern struct mlist mlists[]; + mtype_zstrdup (__FILE__, __LINE__, (mtype), (str)) + #else + #define XMALLOC(mtype, size) zmalloc ((mtype), (size)) +-#define XCALLOC(mtype, size) zcalloc ((mtype), (size)) ++#define XCALLOC(mtype, size) zzcalloc ((mtype), (size)) + #define XREALLOC(mtype, ptr, size) zrealloc ((mtype), (ptr), (size)) + #define XFREE(mtype, ptr) do { \ + zfree ((mtype), (ptr)); \ +@@ -67,7 +67,7 @@ extern struct mlist mlists[]; + + /* Prototypes of memory function. */ + extern void *zmalloc (int type, size_t size); +-extern void *zcalloc (int type, size_t size); ++extern void *zzcalloc (int type, size_t size); + extern void *zrealloc (int type, void *ptr, size_t size); + extern void zfree (int type, void *ptr); + extern char *zstrdup (int type, const char *str); +-- +2.8.1 + diff --git a/bsp/buildroot/package/quagga/Config.in b/bsp/buildroot/package/quagga/Config.in index 89ff6f25..56b8cad9 100644 --- a/bsp/buildroot/package/quagga/Config.in +++ b/bsp/buildroot/package/quagga/Config.in @@ -24,11 +24,6 @@ config BR2_PACKAGE_QUAGGA_TCP_ZEBRA You'll want this enabled if zebra and the protocol daemon(s) run on different hosts. -config BR2_PACKAGE_QUAGGA_BABELD - bool "BABEL protocol" - help - Build babeld daemon. - config BR2_PACKAGE_QUAGGA_BGPD bool "BPGv4+ protocol" help @@ -48,10 +43,6 @@ config BR2_PACKAGE_QUAGGA_OSPFD help Build ospfd daemon. -config BR2_PACKAGE_QUAGGA_OPAQUE_LSA - bool "OSPF Opaque-LSA with OSPFAPI support (RFC2370)" - depends on BR2_PACKAGE_QUAGGA_OSPFD - config BR2_PACKAGE_QUAGGA_OSPF6D bool "OSPFv3 (IPv6) protocol" help diff --git a/bsp/buildroot/package/quagga/quagga.hash b/bsp/buildroot/package/quagga/quagga.hash index ba293c41..23a0a824 100644 --- a/bsp/buildroot/package/quagga/quagga.hash +++ b/bsp/buildroot/package/quagga/quagga.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 6fd6baadb136a801c29c1dd72d0fe69da9f19ae498e87bff7057778361e43b14 quagga-0.99.24.1.tar.xz +sha256 d284af5dd875dbba90ab875d40db5d68fdc9ede17a76f2af525f85344be56767 quagga-1.0.20160315.tar.xz diff --git a/bsp/buildroot/package/quagga/quagga.mk b/bsp/buildroot/package/quagga/quagga.mk index 4a555940..ad2aff4e 100644 --- a/bsp/buildroot/package/quagga/quagga.mk +++ b/bsp/buildroot/package/quagga/quagga.mk @@ -4,13 +4,21 @@ # ################################################################################ -QUAGGA_VERSION = 0.99.24.1 +QUAGGA_VERSION = 1.0.20160315 QUAGGA_SOURCE = quagga-$(QUAGGA_VERSION).tar.xz QUAGGA_SITE = http://download.savannah.gnu.org/releases/quagga QUAGGA_DEPENDENCIES = host-gawk QUAGGA_LICENSE = GPLv2+ QUAGGA_LICENSE_FILES = COPYING -QUAGGA_CONF_OPTS = --program-transform-name='' + +# We need to override the sysconf and localstate directories so that +# quagga can create files as the quagga user without extra +# intervention +QUAGGA_CONF_OPTS = \ + --program-transform-name='' \ + --sysconfdir=/etc/quagga \ + --localstatedir=/var/run/quagga + # 0002-configure-fix-static-linking-with-readline.patch QUAGGA_AUTORECONF = YES @@ -22,18 +30,30 @@ QUAGGA_CONF_OPTS += --disable-capabilities endif QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ZEBRA),--enable-zebra,--disable-zebra) -QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BABELD),--enable-babeld,--disable-babeld) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGPD),--enable-bgpd,--disable-bgpd) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_RIPD),--enable-ripd,--disable-ripd) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_RIPNGD),--enable-ripngd,--disable-ripngd) -QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPFD),--enable-ospfd,--disable-ospfd) +QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPFD),--enable-ospfd,--disable-ospfd --disable-ospfapi) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OSPF6D),--enable-ospf6d,--disable-ospf6d) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_PIMD),--enable-pimd,--disable-pimd) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),--enable-watchquagga,--disable-watchquagga) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_ISISD),--enable-isisd,--disable-isisd) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),--enable-bgp-announce,--disable-bgp-announce) QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_TCP_ZERBRA),--enable-tcp-zebra,--disable-tcp-zebra) -QUAGGA_CONF_OPTS += $(if $(BR2_PACKAGE_QUAGGA_OPAQUE_LSA),--enable-opaque-lsa,--disable-opaque-lsa) + +define QUAGGA_USERS + quagga -1 quagga -1 * - - - Quagga priv drop user +endef + +# Set the permissions of /etc/quagga such that quagga (through vtysh) +# can save the configuration - set the folder recursively as the files +# need to be 600, and then set the folder (non-recursively) to 755 so +# it can used. Quagga also needs to write to the folder as it moves +# and creates, rather than overwriting. +define QUAGGA_PERMISSIONS + /etc/quagga r 600 quagga quagga - - - - - + /etc/quagga d 755 quagga quagga - - - - - +endef ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y) QUAGGA_CONF_ENV += ac_cv_path_NETSNMP_CONFIG=$(STAGING_DIR)/usr/bin/net-snmp-config @@ -48,8 +68,15 @@ else QUAGGA_CONF_OPTS += --disable-vtysh endif -ifeq ($(BR2_arc),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) QUAGGA_CONF_OPTS += --disable-pie endif +define QUAGGA_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/quagga/quagga_tmpfiles.conf \ + $(TARGET_DIR)/usr/lib/tmpfiles.d/quagga.conf + $(INSTALL) -D -m 644 package/quagga/quagga@.service \ + $(TARGET_DIR)/usr/lib/systemd/system/quagga@.service +endef + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/quagga/quagga@.service b/bsp/buildroot/package/quagga/quagga@.service new file mode 100644 index 00000000..797af32e --- /dev/null +++ b/bsp/buildroot/package/quagga/quagga@.service @@ -0,0 +1,17 @@ +[Unit] +Description=Quagga %i routing daemon +ConditionFileIsExecutable=/usr/sbin/%i +Wants=quagga@zebra.service + +[Service] +Type=simple +EnvironmentFile=/etc/default/quagga-%i +PrivateTmp=true +# Systemd doesn't like having %i in the executable path. +ExecStart=/usr/bin/env /usr/sbin/%i $OPTS -f /etc/quagga/%i.conf +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure + +[Install] +WantedBy=multi-user.target + diff --git a/bsp/buildroot/package/quagga/quagga_tmpfiles.conf b/bsp/buildroot/package/quagga/quagga_tmpfiles.conf new file mode 100644 index 00000000..e16c475f --- /dev/null +++ b/bsp/buildroot/package/quagga/quagga_tmpfiles.conf @@ -0,0 +1 @@ +d /var/run/quagga/ 1755 quagga quagga - diff --git a/bsp/buildroot/package/quazip/quazip.hash b/bsp/buildroot/package/quazip/quazip.hash index 84b56c7c..2f73c459 100644 --- a/bsp/buildroot/package/quazip/quazip.hash +++ b/bsp/buildroot/package/quazip/quazip.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 78c984103555c51e6f7ef52e3a2128e2beb9896871b2cc4d4dbd4d64bff132de quazip-0.7.1.tar.gz +sha256 91d827fbcafd099ae814cc18a8dd3bb709da6b8a27c918ee1c6c03b3f29440f4 quazip-0.7.2.tar.gz diff --git a/bsp/buildroot/package/quazip/quazip.mk b/bsp/buildroot/package/quazip/quazip.mk index adccf90c..91b2f563 100644 --- a/bsp/buildroot/package/quazip/quazip.mk +++ b/bsp/buildroot/package/quazip/quazip.mk @@ -4,7 +4,7 @@ # ################################################################################ -QUAZIP_VERSION = 0.7.1 +QUAZIP_VERSION = 0.7.2 QUAZIP_SITE = http://sourceforge.net/projects/quazip/files/quazip/$(QUAZIP_VERSION) QUAZIP_INSTALL_STAGING = YES QUAZIP_DEPENDENCIES = \ diff --git a/bsp/buildroot/package/quota/01-tools-getrpcbynumber.patch b/bsp/buildroot/package/quota/0001-tools-getrpcbynumber.patch similarity index 100% rename from bsp/buildroot/package/quota/01-tools-getrpcbynumber.patch rename to bsp/buildroot/package/quota/0001-tools-getrpcbynumber.patch diff --git a/bsp/buildroot/package/quota/02-fix-static-linking.patch b/bsp/buildroot/package/quota/0002-fix-static-linking.patch similarity index 100% rename from bsp/buildroot/package/quota/02-fix-static-linking.patch rename to bsp/buildroot/package/quota/0002-fix-static-linking.patch diff --git a/bsp/buildroot/package/quota/quota.mk b/bsp/buildroot/package/quota/quota.mk index c30a2bd8..a1e343a3 100644 --- a/bsp/buildroot/package/quota/quota.mk +++ b/bsp/buildroot/package/quota/quota.mk @@ -21,6 +21,11 @@ endif ifeq ($(BR2_PACKAGE_E2FSPROGS),y) QUOTA_DEPENDENCIES += e2fsprogs QUOTA_CONF_OPTS += --enable-ext2direct +# quote does not use pkg-config to find e2fsprogs, so it does not know it +# may require -pthreads in case of static build +ifeq ($(BR2_STATIC_LIBS)$(BR2_TOOLCHAIN_HAS_THREADS),yy) +QUOTA_LIBS += -pthread +endif else QUOTA_CONF_OPTS += --disable-ext2direct endif diff --git a/bsp/buildroot/package/qwt/Config.in b/bsp/buildroot/package/qwt/Config.in index 8c7bc561..dabbda27 100644 --- a/bsp/buildroot/package/qwt/Config.in +++ b/bsp/buildroot/package/qwt/Config.in @@ -1,7 +1,14 @@ +comment "qwt needs a toolchain not affected by Binutils bug 19405" + depends on BR2_PACKAGE_QT && BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 + config BR2_PACKAGE_QWT bool "qwt" - depends on BR2_PACKAGE_QT - depends on BR2_PACKAGE_QT_GUI_MODULE + depends on (BR2_PACKAGE_QT && !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405) || \ + BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT_GUI_MODULE if BR2_PACKAGE_QT + select BR2_PACKAGE_QT5BASE_GUI if BR2_PACKAGE_QT5 + select BR2_PACKAGE_QT5BASE_WIDGETS if BR2_PACKAGE_QT5 # printsupport + select BR2_PACKAGE_QT5BASE_CONCURRENT if BR2_PACKAGE_QT5 help Qwt is a graphics extension to the Qt GUI application framework. It provides a 2D plotting widget and more. @@ -12,19 +19,17 @@ if BR2_PACKAGE_QWT config BR2_PACKAGE_QWT_SVG bool "SVG support" - select BR2_PACKAGE_QT_SVG + select BR2_PACKAGE_QT_SVG if BR2_PACKAGE_QT + select BR2_PACKAGE_QT5SVG if BR2_PACKAGE_QT5 config BR2_PACKAGE_QWT_MATHML bool "MathML support" config BR2_PACKAGE_QWT_OPENGL bool "OpenGL support" - depends on BR2_PACKAGE_HAS_LIBGLES - depends on BR2_PACKAGE_HAS_LIBEGL - select BR2_PACKAGE_QT_OPENGL_ES + depends on (BR2_PACKAGE_HAS_LIBGLES && BR2_PACKAGE_HAS_LIBEGL && BR2_PACKAGE_QT) || \ + (BR2_PACKAGE_QT5_GL_AVAILABLE && BR2_PACKAGE_QT5) + select BR2_PACKAGE_QT_OPENGL if BR2_PACKAGE_QT + select BR2_PACKAGE_QT5BASE_OPENGL_LIB if BR2_PACKAGE_QT5 endif - -comment "qwt depends on QT gui module" - depends on BR2_PACKAGE_QT - depends on !BR2_PACKAGE_QT_GUI_MODULE diff --git a/bsp/buildroot/package/qwt/qwt.hash b/bsp/buildroot/package/qwt/qwt.hash index fc78b753..a0077a68 100644 --- a/bsp/buildroot/package/qwt/qwt.hash +++ b/bsp/buildroot/package/qwt/qwt.hash @@ -1,2 +1,3 @@ -# Locally computed: -sha256 2b08f18d1d3970e7c3c6096d850f17aea6b54459389731d3ce715d193e243d0c qwt-6.1.2.tar.bz2 +# From https://sourceforge.net/projects/qwt/files/qwt/6.1.3/ +sha1 90ec21bc42f7fae270482e1a0df3bc79cb10e5c7 qwt-6.1.3.tar.bz2 +md5 19d1f5fa5e22054d22ee3accc37c54ba qwt-6.1.3.tar.bz2 diff --git a/bsp/buildroot/package/qwt/qwt.mk b/bsp/buildroot/package/qwt/qwt.mk index 8a46c254..da30dd24 100644 --- a/bsp/buildroot/package/qwt/qwt.mk +++ b/bsp/buildroot/package/qwt/qwt.mk @@ -4,11 +4,17 @@ # ################################################################################ -QWT_VERSION = 6.1.2 +QWT_VERSION = 6.1.3 QWT_SOURCE = qwt-$(QWT_VERSION).tar.bz2 QWT_SITE = http://downloads.sourceforge.net/project/qwt/qwt/$(QWT_VERSION) QWT_INSTALL_STAGING = YES +ifeq ($(BR2_PACKAGE_QT),y) QWT_DEPENDENCIES = qt +QWT_QMAKE = $(QT_QMAKE) +else ifeq ($(BR2_PACKAGE_QT5),y) +QWT_DEPENDENCIES += qt5base +QWT_QMAKE = $(QT5_QMAKE) +endif QWT_LICENSE = LGPLv2.1 with exceptions QWT_LICENSE_FILES = COPYING @@ -37,7 +43,7 @@ endif define QWT_CONFIGURE_CMDS $(SED) $(QWT_CONFIG) $(@D)/qwtconfig.pri - (cd $(@D); $(TARGET_MAKE_ENV) $(QT_QMAKE)) + (cd $(@D); $(TARGET_MAKE_ENV) $(QWT_QMAKE)) endef define QWT_BUILD_CMDS diff --git a/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.hash b/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.hash index e7678721..45e8cbd8 100644 --- a/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.hash +++ b/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 23df349a7d157543e756acc67e47b217843ecbdafaefe3e4974073bb99d8a26d rabbitmq-c-0.7.1.tar.gz +sha256 d8ed9dcb49903d83d79d7b227da35ef68c60e5e0b08d0fc1fb4e4dc577b8802b rabbitmq-c-v0.8.0.tar.gz diff --git a/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.mk b/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.mk index 42e2548e..1ca35ad0 100644 --- a/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.mk +++ b/bsp/buildroot/package/rabbitmq-c/rabbitmq-c.mk @@ -4,8 +4,8 @@ # ################################################################################ -RABBITMQ_C_VERSION = 0.7.1 -RABBITMQ_C_SITE = https://github.com/alanxz/rabbitmq-c/releases/download/v$(RABBITMQ_C_VERSION) +RABBITMQ_C_VERSION = v0.8.0 +RABBITMQ_C_SITE = $(call github,alanxz,rabbitmq-c,$(RABBITMQ_C_VERSION)) RABBITMQ_C_LICENSE = MIT RABBITMQ_C_LICENSE_FILES = LICENSE-MIT RABBITMQ_C_INSTALL_STAGING = YES diff --git a/bsp/buildroot/package/racehound/Config.in b/bsp/buildroot/package/racehound/Config.in index 9f1011bf..2d1ccb83 100644 --- a/bsp/buildroot/package/racehound/Config.in +++ b/bsp/buildroot/package/racehound/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_RACEHOUND bool "racehound" depends on BR2_LINUX_KERNEL - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # elfutils depends on !BR2_STATIC_LIBS # elfutils @@ -27,10 +26,10 @@ config BR2_PACKAGE_RACEHOUND https://github.com/winnukem/racehound comment "racehound needs an Linux kernel >= 3.14 to be built" - depends on !BR2_LINUX_KERNEL || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 + depends on !BR2_LINUX_KERNEL depends on BR2_i386 || BR2_x86_64 -comment "racehound needs a uClibc or (e)glibc toolchain w/ C++, wchar, dynamic library" +comment "racehound needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library" depends on BR2_i386 || BR2_x86_64 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || BR2_STATIC_LIBS \ || !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) diff --git a/bsp/buildroot/package/racehound/racehound.hash b/bsp/buildroot/package/racehound/racehound.hash new file mode 100644 index 00000000..d9a7f061 --- /dev/null +++ b/bsp/buildroot/package/racehound/racehound.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 935bc4a7c7b645dee5b905f6e97d0db3f0ac4f48e71d15f4e3982811017ac43c racehound-f09f06fcc3c77c8c5541be3ba5be80aa8148ce0c.tar.gz diff --git a/bsp/buildroot/package/racehound/racehound.mk b/bsp/buildroot/package/racehound/racehound.mk index 7d8d1e35..8e282c1e 100644 --- a/bsp/buildroot/package/racehound/racehound.mk +++ b/bsp/buildroot/package/racehound/racehound.mk @@ -4,7 +4,7 @@ # ################################################################################ -RACEHOUND_VERSION = f3375911019607a0cb6a15bf68fa62dadd6b790b +RACEHOUND_VERSION = f09f06fcc3c77c8c5541be3ba5be80aa8148ce0c RACEHOUND_SITE = $(call github,winnukem,racehound,$(RACEHOUND_VERSION)) RACEHOUND_LICENSE = GPLv2 RACEHOUND_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/radvd/radvd.hash b/bsp/buildroot/package/radvd/radvd.hash index 3ace4fc6..ac6014b7 100644 --- a/bsp/buildroot/package/radvd/radvd.hash +++ b/bsp/buildroot/package/radvd/radvd.hash @@ -1,3 +1,2 @@ -# From http://www.litech.org/radvd/dist/radvd-2.11.tar.gz.sha256 -sha256 04636288fc79fa151260eeb2bea1b05942f59c31f01358c57f930a4eb45b5acc radvd-2.11.tar.xz -sha256 01d12bd2970fedf5695d9177a5ea45483d5e3c709ecceed636972c3049c47d0d 1d8973e13d89802eee0b648451e2b97ac65cf9e0.patch +# From http://www.litech.org/radvd/dist/radvd-2.12.tar.gz.sha256 +sha256 b070e77238e789e298a82cba2b1bfb0b0180b4ebc1adfc4e75058adfdbff747b radvd-2.12.tar.xz diff --git a/bsp/buildroot/package/radvd/radvd.mk b/bsp/buildroot/package/radvd/radvd.mk index 503b62df..8b6e5b2d 100644 --- a/bsp/buildroot/package/radvd/radvd.mk +++ b/bsp/buildroot/package/radvd/radvd.mk @@ -4,14 +4,12 @@ # ################################################################################ -RADVD_VERSION = 2.11 +RADVD_VERSION = 2.12 RADVD_SOURCE = radvd-$(RADVD_VERSION).tar.xz RADVD_SITE = http://www.litech.org/radvd/dist -RADVD_PATCH = \ - https://github.com/reubenhwk/radvd/commit/1d8973e13d89802eee0b648451e2b97ac65cf9e0.patch RADVD_DEPENDENCIES = host-bison flex host-flex host-pkgconf RADVD_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' -# We're patching configure.ac/Makefile.am. +# For 0002-Don-t-force-fstack-protector-the-toolchain-might-lac.patch RADVD_AUTORECONF = YES RADVD_LICENSE = BSD-4c-like RADVD_LICENSE_FILES = COPYRIGHT diff --git a/bsp/buildroot/package/rapidjson/rapidjson.hash b/bsp/buildroot/package/rapidjson/rapidjson.hash new file mode 100644 index 00000000..baaced9a --- /dev/null +++ b/bsp/buildroot/package/rapidjson/rapidjson.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 c3711ed2b3c76a5565ee9f0128bb4ec6753dbcc23450b713842df8f236d08666 rapidjson-v1.0.2.tar.gz diff --git a/bsp/buildroot/package/raptor/0001-configure.ac-remove-conditional-lib-inclusion.patch b/bsp/buildroot/package/raptor/0001-configure.ac-remove-conditional-lib-inclusion.patch new file mode 100644 index 00000000..7367ad23 --- /dev/null +++ b/bsp/buildroot/package/raptor/0001-configure.ac-remove-conditional-lib-inclusion.patch @@ -0,0 +1,21 @@ +Removed header Include path from the configure file as path was +from the host, which is wrong for the cross compilation. +Upstream: None + +Signed-off-by: Nitin Mendiratta + +diff --git a/configure.ac b/configure.ac +index 10ff870..27b9957 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1145,9 +1145,7 @@ have_lininn=no + have_inn_parsedate=no + + oCPPFLAGS="$CPPFLAGS" +-if test -d /usr/include/inn; then +- CPPFLAGS="$CPPFLAGS -I/usr/include/inn" +-fi ++ + AC_CHECK_HEADER(libinn.h) + CPPFLAGS="$oCPPFLAGS" + diff --git a/bsp/buildroot/package/raptor/Config.in b/bsp/buildroot/package/raptor/Config.in new file mode 100644 index 00000000..65979a2b --- /dev/null +++ b/bsp/buildroot/package/raptor/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_RAPTOR + bool "raptor" + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_LIBXSLT + help + A C library that provides a set of parsers and + serializers that generate Resource Description + Framework (RDF) triples by parsing syntaxes or + serialize the triples into a syntax. + + http://librdf.org/raptor/ diff --git a/bsp/buildroot/package/raptor/raptor.hash b/bsp/buildroot/package/raptor/raptor.hash new file mode 100644 index 00000000..ee7a71b4 --- /dev/null +++ b/bsp/buildroot/package/raptor/raptor.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed raptor2-2.0.15.tar.gz diff --git a/bsp/buildroot/package/raptor/raptor.mk b/bsp/buildroot/package/raptor/raptor.mk new file mode 100644 index 00000000..aea14e39 --- /dev/null +++ b/bsp/buildroot/package/raptor/raptor.mk @@ -0,0 +1,43 @@ +################################################################################ +# +# raptor +# +################################################################################ + +RAPTOR_VERSION = 2.0.15 +RAPTOR_SOURCE = raptor2-$(RAPTOR_VERSION).tar.gz +RAPTOR_SITE = http://download.librdf.org/source +RAPTOR_DEPENDENCIES = libxml2 libxslt +RAPTOR_LICENSE = GPLv2+ or LGPLv2.1+ or Apache-2.0+ +RAPTOR_LICENSE_FILES = LICENSE.txt + +# Flag is added to make sure the patch is applied for the configure.ac of raptor. +RAPTOR_AUTORECONF = YES + +RAPTOR_CONF_OPTS =\ + --with-xml2-config=$(STAGING_DIR)/usr/bin/xml2-config \ + --with-xslt-config=$(STAGING_DIR)/usr/bin/xslt-config + +ifeq ($(BR2_PACKAGE_LIBCURL),y) +RAPTOR_DEPENDENCIES += libcurl +RAPTOR_CONF_OPTS += --with-curl-config=$(STAGING_DIR)/usr/bin/curl-config +else +RAPTOR_CONF_OPTS += --with-curl-config=no +endif + +ifeq ($(BR2_PACKAGE_YAJL),y) +RAPTOR_DEPENDENCIES += yajl +RAPTOR_CONF_ENV += LIBS="-lm" +RAPTOR_CONF_OPTS += --with-yajl=$(STAGING_DIR)/usr +else +RAPTOR_CONF_OPTS += --with-yajl=no +endif + +ifeq ($(BR2_PACKAGE_ICU),y) +RAPTOR_DEPENDENCIES += icu +RAPTOR_CONF_OPTS += --with-icu-config=$(STAGING_DIR)/usr/bin/icu-config +else +RAPTOR_CONF_OPTS += --with-icu-config=no +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/readline/Config.in b/bsp/buildroot/package/readline/Config.in index fbebf18a..1cb0672c 100644 --- a/bsp/buildroot/package/readline/Config.in +++ b/bsp/buildroot/package/readline/Config.in @@ -5,3 +5,5 @@ config BR2_PACKAGE_READLINE The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. + + https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html diff --git a/bsp/buildroot/package/redis/Config.in b/bsp/buildroot/package/redis/Config.in index 3b7b7436..5d7edd81 100644 --- a/bsp/buildroot/package/redis/Config.in +++ b/bsp/buildroot/package/redis/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_REDIS bool "redis" depends on BR2_USE_MMU # fork() + depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on BR2_TOOLCHAIN_HAS_THREADS help Redis is an open source, advanced key-value store. It is @@ -11,4 +12,5 @@ config BR2_PACKAGE_REDIS comment "redis needs a toolchain w/ threads" depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/redis/redis.mk b/bsp/buildroot/package/redis/redis.mk index 6a3dd016..a9df6e71 100644 --- a/bsp/buildroot/package/redis/redis.mk +++ b/bsp/buildroot/package/redis/redis.mk @@ -13,10 +13,16 @@ define REDIS_USERS redis -1 redis -1 * /var/lib/redis /bin/false - Redis Server endef +# Uses __atomic_fetch_add_4 +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) +REDIS_LIBATOMIC = -latomic +endif + # Redis doesn't support DESTDIR (yet, see # https://github.com/antirez/redis/pull/609). We set PREFIX # instead. REDIS_BUILDOPTS = $(TARGET_CONFIGURE_OPTS) \ + LDFLAGS="$(TARGET_LDFLAGS) $(REDIS_LIBATOMIC)" \ PREFIX=$(TARGET_DIR)/usr MALLOC=libc \ define REDIS_BUILD_CMDS diff --git a/bsp/buildroot/package/rng-tools/Config.in b/bsp/buildroot/package/rng-tools/Config.in index 469b60e8..0c538cc2 100644 --- a/bsp/buildroot/package/rng-tools/Config.in +++ b/bsp/buildroot/package/rng-tools/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_RNG_TOOLS bool "rng-tools" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS && (BR2_i386 || BR2_x86_64) # libgcrypt select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_MUSL # For rdrand ligcrypt is required and it's not obvious to users select BR2_PACKAGE_LIBGCRYPT if BR2_i386 || BR2_x86_64 diff --git a/bsp/buildroot/package/rp-pppoe/Config.in b/bsp/buildroot/package/rp-pppoe/Config.in index d37203cf..a41de333 100644 --- a/bsp/buildroot/package/rp-pppoe/Config.in +++ b/bsp/buildroot/package/rp-pppoe/Config.in @@ -1,6 +1,13 @@ +comment "rp-pppoe needs a uClibc or glibc toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL + depends on BR2_USE_MMU + config BR2_PACKAGE_RP_PPPOE bool "rp-pppoe" - depends on BR2_PACKAGE_PPPD + depends on !BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_USES_MUSL # pppd + depends on BR2_USE_MMU # fork() + select BR2_PACKAGE_PPPD help An implementation of the Point-to-point protocol over Ethernet. Has userspace client and server deamons. You likely only need diff --git a/bsp/buildroot/package/rp-pppoe/rp-pppoe.hash b/bsp/buildroot/package/rp-pppoe/rp-pppoe.hash index ab162ee6..0cf85a08 100644 --- a/bsp/buildroot/package/rp-pppoe/rp-pppoe.hash +++ b/bsp/buildroot/package/rp-pppoe/rp-pppoe.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 86a1a4d92fcea74fa6dd45516c5975933fa978b36fafe71f76ea70b4b4747720 rp-pppoe-3.11.tar.gz +sha256 00794e04031546b0e9b8cf286f2a6d1ccfc4a621b2a3abb2d7ef2a7ab7cc86c2 rp-pppoe-3.12.tar.gz diff --git a/bsp/buildroot/package/rp-pppoe/rp-pppoe.mk b/bsp/buildroot/package/rp-pppoe/rp-pppoe.mk index 5cb49604..43062549 100644 --- a/bsp/buildroot/package/rp-pppoe/rp-pppoe.mk +++ b/bsp/buildroot/package/rp-pppoe/rp-pppoe.mk @@ -4,7 +4,7 @@ # ################################################################################ -RP_PPPOE_VERSION = 3.11 +RP_PPPOE_VERSION = 3.12 RP_PPPOE_SITE = http://www.roaringpenguin.com/files/download RP_PPPOE_LICENSE = GPLv2 RP_PPPOE_LICENSE_FILES = doc/LICENSE diff --git a/bsp/buildroot/package/rpcbind/0003-src-remove-use-of-the-__P-macro.patch b/bsp/buildroot/package/rpcbind/0003-src-remove-use-of-the-__P-macro.patch new file mode 100644 index 00000000..72fda880 --- /dev/null +++ b/bsp/buildroot/package/rpcbind/0003-src-remove-use-of-the-__P-macro.patch @@ -0,0 +1,243 @@ +From 2f7d15304e0544e4c693c86d8ab8b2f08b9e9886 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Mon, 15 Aug 2016 16:36:40 +0200 +Subject: [PATCH] src: remove use of the __P() macro + +The __P() macro is a legacy compatibility macro aimed making pre-ANSI +(i.e. K&R) compilers that do not support function prototypes happy, +while still allowing such prototypes for ANSI-compliant compilers. + +Since virtually all compilers have been ANSI-compliant for a few decades +now, use of __P() is totally useless. + +Furthermore, __P() is defined in the non-standard sys/cdefs.h header. +This header is present in glibc and uClibc, and both have it included +from many of their headers. So, sys/cdefs.h is automagically included in +most cases and its macros are available. + +However, the musl C library does not provide this sys/cdefs.h header. +Thus, the build breaks on musl. + +For all the above reasons, get rid of __P() wherever it is used; just +always declare real function prototypes. + +Signed-off-by: "Yann E. MORIN" +Cc: Chuck Lever +Cc: Steve Dickson +--- + src/check_bound.c | 2 +- + src/pmap_svc.c | 10 +++++----- + src/rpcb_svc.c | 10 +++++----- + src/rpcb_svc_4.c | 14 ++++++-------- + src/rpcb_svc_com.c | 46 +++++++++++++++++++++++----------------------- + src/rpcbind.c | 12 ++++++------ + src/util.c | 2 +- + src/warmstart.c | 4 ++-- + 8 files changed, 49 insertions(+), 51 deletions(-) + +diff --git a/src/check_bound.c b/src/check_bound.c +index c70b845..92bfd36 100644 +--- a/src/check_bound.c ++++ b/src/check_bound.c +@@ -70,7 +70,7 @@ static struct fdlist *fdhead; /* Link list of the check fd's */ + static struct fdlist *fdtail; + static char *nullstring = ""; + +-static bool_t check_bound __P((struct fdlist *, char *uaddr)); ++static bool_t check_bound(struct fdlist *, char *uaddr); + + /* + * Returns 1 if the given address is bound for the given addr & transport +diff --git a/src/pmap_svc.c b/src/pmap_svc.c +index ad28b93..4c744fe 100644 +--- a/src/pmap_svc.c ++++ b/src/pmap_svc.c +@@ -60,11 +60,11 @@ static char sccsid[] = "@(#)pmap_svc.c 1.23 89/04/05 Copyr 1984 Sun Micro"; + #include "rpcbind.h" + #include "xlog.h" + #include /* svc_getcaller routine definition */ +-static struct pmaplist *find_service_pmap __P((rpcprog_t, rpcvers_t, +- rpcprot_t)); +-static bool_t pmapproc_change __P((struct svc_req *, SVCXPRT *, u_long)); +-static bool_t pmapproc_getport __P((struct svc_req *, SVCXPRT *)); +-static bool_t pmapproc_dump __P((struct svc_req *, SVCXPRT *)); ++static struct pmaplist *find_service_pmap(rpcprog_t, rpcvers_t, ++ rpcprot_t); ++static bool_t pmapproc_change(struct svc_req *, SVCXPRT *, u_long); ++static bool_t pmapproc_getport(struct svc_req *, SVCXPRT *); ++static bool_t pmapproc_dump(struct svc_req *, SVCXPRT *); + + /* + * Called for all the version 2 inquiries. +diff --git a/src/rpcb_svc.c b/src/rpcb_svc.c +index bd92201..709e3fb 100644 +--- a/src/rpcb_svc.c ++++ b/src/rpcb_svc.c +@@ -53,10 +53,10 @@ + #include "rpcbind.h" + #include "xlog.h" + +-static void *rpcbproc_getaddr_3_local __P((void *, struct svc_req *, SVCXPRT *, +- rpcvers_t)); +-static void *rpcbproc_dump_3_local __P((void *, struct svc_req *, SVCXPRT *, +- rpcvers_t)); ++static void *rpcbproc_getaddr_3_local(void *, struct svc_req *, SVCXPRT *, ++ rpcvers_t); ++static void *rpcbproc_dump_3_local(void *, struct svc_req *, SVCXPRT *, ++ rpcvers_t); + + /* + * Called by svc_getreqset. There is a separate server handle for +@@ -75,7 +75,7 @@ rpcb_service_3(struct svc_req *rqstp, SVCXPRT *transp) + } argument; + char *result; + xdrproc_t xdr_argument, xdr_result; +- void *(*local) __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); ++ void *(*local)(void *, struct svc_req *, SVCXPRT *, rpcvers_t); + rpcprog_t setprog = 0; + + rpcbs_procinfo(RPCBVERS_3_STAT, rqstp->rq_proc); +diff --git a/src/rpcb_svc_4.c b/src/rpcb_svc_4.c +index b673452..5094879 100644 +--- a/src/rpcb_svc_4.c ++++ b/src/rpcb_svc_4.c +@@ -54,13 +54,11 @@ + #include "rpcbind.h" + #include "xlog.h" + +-static void *rpcbproc_getaddr_4_local __P((void *, struct svc_req *, SVCXPRT *, +- rpcvers_t)); +-static void *rpcbproc_getversaddr_4_local __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); +-static void *rpcbproc_getaddrlist_4_local +- __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); +-static void free_rpcb_entry_list __P((rpcb_entry_list_ptr *)); +-static void *rpcbproc_dump_4_local __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); ++static void *rpcbproc_getaddr_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); ++static void *rpcbproc_getversaddr_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); ++static void *rpcbproc_getaddrlist_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); ++static void free_rpcb_entry_list(rpcb_entry_list_ptr *); ++static void *rpcbproc_dump_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); + + /* + * Called by svc_getreqset. There is a separate server handle for +@@ -78,7 +76,7 @@ rpcb_service_4(struct svc_req *rqstp, SVCXPRT *transp) + } argument; + char *result; + xdrproc_t xdr_argument, xdr_result; +- void *(*local) __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); ++ void *(*local)(void *, struct svc_req *, SVCXPRT *, rpcvers_t); + rpcprog_t setprog = 0; + + rpcbs_procinfo(RPCBVERS_4_STAT, rqstp->rq_proc); +diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c +index 148fe42..5862c26 100644 +--- a/src/rpcb_svc_com.c ++++ b/src/rpcb_svc_com.c +@@ -100,29 +100,29 @@ struct finfo { + static struct finfo FINFO[NFORWARD]; + + +-static bool_t xdr_encap_parms __P((XDR *, struct encap_parms *)); +-static bool_t xdr_rmtcall_args __P((XDR *, struct r_rmtcall_args *)); +-static bool_t xdr_rmtcall_result __P((XDR *, struct r_rmtcall_args *)); +-static bool_t xdr_opaque_parms __P((XDR *, struct r_rmtcall_args *)); +-static int find_rmtcallfd_by_netid __P((char *)); +-static SVCXPRT *find_rmtcallxprt_by_fd __P((int)); +-static int forward_register __P((u_int32_t, struct netbuf *, int, char *, +- rpcproc_t, rpcvers_t, u_int32_t *)); +-static struct finfo *forward_find __P((u_int32_t)); +-static int free_slot_by_xid __P((u_int32_t)); +-static int free_slot_by_index __P((int)); +-static int netbufcmp __P((struct netbuf *, struct netbuf *)); +-static struct netbuf *netbufdup __P((struct netbuf *)); +-static void netbuffree __P((struct netbuf *)); +-static int check_rmtcalls __P((struct pollfd *, int)); +-static void xprt_set_caller __P((SVCXPRT *, struct finfo *)); +-static void send_svcsyserr __P((SVCXPRT *, struct finfo *)); +-static void handle_reply __P((int, SVCXPRT *)); +-static void find_versions __P((rpcprog_t, char *, rpcvers_t *, rpcvers_t *)); +-static rpcblist_ptr find_service __P((rpcprog_t, rpcvers_t, char *)); +-static char *getowner __P((SVCXPRT *, char *, size_t)); +-static int add_pmaplist __P((RPCB *)); +-static int del_pmaplist __P((RPCB *)); ++static bool_t xdr_encap_parms(XDR *, struct encap_parms *); ++static bool_t xdr_rmtcall_args(XDR *, struct r_rmtcall_args *); ++static bool_t xdr_rmtcall_result(XDR *, struct r_rmtcall_args *); ++static bool_t xdr_opaque_parms(XDR *, struct r_rmtcall_args *); ++static int find_rmtcallfd_by_netid(char *); ++static SVCXPRT *find_rmtcallxprt_by_fd(int); ++static int forward_register(u_int32_t, struct netbuf *, int, char *, ++ rpcproc_t, rpcvers_t, u_int32_t *); ++static struct finfo *forward_find(u_int32_t); ++static int free_slot_by_xid(u_int32_t); ++static int free_slot_by_index(int); ++static int netbufcmp(struct netbuf *, struct netbuf *); ++static struct netbuf *netbufdup(struct netbuf *); ++static void netbuffree(struct netbuf *); ++static int check_rmtcalls(struct pollfd *, int); ++static void xprt_set_caller(SVCXPRT *, struct finfo *); ++static void send_svcsyserr(SVCXPRT *, struct finfo *); ++static void handle_reply(int, SVCXPRT *); ++static void find_versions(rpcprog_t, char *, rpcvers_t *, rpcvers_t *); ++static rpcblist_ptr find_service(rpcprog_t, rpcvers_t, char *); ++static char *getowner(SVCXPRT *, char *, size_t); ++static int add_pmaplist(RPCB *); ++static int del_pmaplist(RPCB *); + + /* + * Set a mapping of program, version, netid +diff --git a/src/rpcbind.c b/src/rpcbind.c +index c4265cd..87ccdc2 100644 +--- a/src/rpcbind.c ++++ b/src/rpcbind.c +@@ -136,13 +136,13 @@ char *tcp_uaddr; /* Universal TCP address */ + static char servname[] = "rpcbind"; + static char superuser[] = "superuser"; + +-int main __P((int, char *[])); ++int main(int, char *[]); + +-static int init_transport __P((struct netconfig *)); +-static void rbllist_add __P((rpcprog_t, rpcvers_t, struct netconfig *, +- struct netbuf *)); +-static void terminate __P((int)); +-static void parseargs __P((int, char *[])); ++static int init_transport(struct netconfig *); ++static void rbllist_add(rpcprog_t, rpcvers_t, struct netconfig *, ++ struct netbuf *); ++static void terminate(int); ++static void parseargs(int, char *[]); + + int + main(int argc, char *argv[]) +diff --git a/src/util.c b/src/util.c +index a6c835b..74b0284 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -70,7 +70,7 @@ static struct sockaddr_in *local_in4; + static struct sockaddr_in6 *local_in6; + #endif + +-static int bitmaskcmp __P((void *, void *, void *, int)); ++static int bitmaskcmp(void *, void *, void *, int); + + /* + * For all bits set in "mask", compare the corresponding bits in +diff --git a/src/warmstart.c b/src/warmstart.c +index b6eb73e..122a058 100644 +--- a/src/warmstart.c ++++ b/src/warmstart.c +@@ -58,8 +58,8 @@ + #define PMAPFILE RPCBIND_STATEDIR "/portmap.xdr" + #endif + +-static bool_t write_struct __P((char *, xdrproc_t, void *)); +-static bool_t read_struct __P((char *, xdrproc_t, void *)); ++static bool_t write_struct(char *, xdrproc_t, void *); ++static bool_t read_struct(char *, xdrproc_t, void *); + + static bool_t + write_struct(char *filename, xdrproc_t structproc, void *list) +-- +2.7.4 + diff --git a/bsp/buildroot/package/rpi-firmware/Config.in b/bsp/buildroot/package/rpi-firmware/Config.in index 405674f4..c2983aa8 100644 --- a/bsp/buildroot/package/rpi-firmware/Config.in +++ b/bsp/buildroot/package/rpi-firmware/Config.in @@ -73,7 +73,7 @@ config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG help Install vcdbg, to help debug communication with the GPU. -comment "vcdbg needs an (e)glibc toolchain w/ C++" +comment "vcdbg needs a glibc toolchain w/ C++" depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP endif # BR2_PACKAGE_RPI_FIRMWARE diff --git a/bsp/buildroot/package/rpi-firmware/cmdline.txt b/bsp/buildroot/package/rpi-firmware/cmdline.txt index 38aa3782..155a5469 100644 --- a/bsp/buildroot/package/rpi-firmware/cmdline.txt +++ b/bsp/buildroot/package/rpi-firmware/cmdline.txt @@ -1 +1 @@ -root=/dev/mmcblk0p2 rootwait +root=/dev/mmcblk0p2 rootwait console=tty1 console=ttyAMA0,115200 diff --git a/bsp/buildroot/package/rpi-firmware/rpi-firmware.hash b/bsp/buildroot/package/rpi-firmware/rpi-firmware.hash new file mode 100644 index 00000000..e2e31c9f --- /dev/null +++ b/bsp/buildroot/package/rpi-firmware/rpi-firmware.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 b2ce949db3745354383ac0d66107cbbb8902ccbf5fc027be8824519c44d5a302 rpi-firmware-70143fe9d371cd6486a80d6765e93b5574212b64.tar.gz diff --git a/bsp/buildroot/package/rpi-firmware/rpi-firmware.mk b/bsp/buildroot/package/rpi-firmware/rpi-firmware.mk index 4b92a508..0587802b 100644 --- a/bsp/buildroot/package/rpi-firmware/rpi-firmware.mk +++ b/bsp/buildroot/package/rpi-firmware/rpi-firmware.mk @@ -4,11 +4,10 @@ # ################################################################################ -RPI_FIRMWARE_VERSION = 22d8c910f4c53118f9cf85c038d7d8e307efc110 +RPI_FIRMWARE_VERSION = 70143fe9d371cd6486a80d6765e93b5574212b64 RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION)) RPI_FIRMWARE_LICENSE = BSD-3c RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom -RPI_FIRMWARE_INSTALL_TARGET = NO RPI_FIRMWARE_INSTALL_IMAGES = YES RPI_FIRMWARE_DEPENDENCIES += host-rpi-firmware @@ -18,12 +17,13 @@ define RPI_FIRMWARE_INSTALL_DTB $(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b.dtb $(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b-plus.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b-plus.dtb $(INSTALL) -D -m 0644 $(@D)/boot/bcm2709-rpi-2-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2709-rpi-2-b.dtb + $(INSTALL) -D -m 0644 $(@D)/boot/bcm2710-rpi-3-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2710-rpi-3-b.dtb endef endif ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS),y) define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS - for ovldtb in $(@D)/boot/overlays/*.dtb; do \ + for ovldtb in $(@D)/boot/overlays/*.dtbo; do \ $(INSTALL) -D -m 0644 $${ovldtb} $(BINARIES_DIR)/rpi-firmware/overlays/$${ovldtb##*/} || exit 1; \ done endef @@ -31,7 +31,7 @@ endif ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG),y) define RPI_FIRMWARE_INSTALL_TARGET_CMDS - $(INSTALL) -d -m 0700 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/bin/vcdbg \ + $(INSTALL) -D -m 0700 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/bin/vcdbg \ $(TARGET_DIR)/usr/sbin/vcdbg endef endif # INSTALL_VCDBG @@ -49,7 +49,6 @@ endef # We have no host sources to get, since we already # bundle the script we want to install. HOST_RPI_FIRMWARE_SOURCE = -HOST_RPI_FIRMWARE_DEPENDENCIES = define HOST_RPI_FIRMWARE_INSTALL_CMDS $(INSTALL) -D -m 0755 package/rpi-firmware/mkknlimg $(HOST_DIR)/usr/bin/mkknlimg diff --git a/bsp/buildroot/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch b/bsp/buildroot/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch deleted file mode 100644 index c2188980..00000000 --- a/bsp/buildroot/package/rpi-userland/0002-makefiles-cmake-vmcs.cmake-allow-to-override-VMCS_IN.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 8894136ff80a8c6eeadf1799af59aa3aa7b87827 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sat, 24 Jan 2015 19:44:50 +0100 -Subject: [PATCH] makefiles/cmake/vmcs.cmake: allow to override - VMCS_INSTALL_PREFIX - -Signed-off-by: Samuel Martin ---- - makefiles/cmake/vmcs.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/makefiles/cmake/vmcs.cmake b/makefiles/cmake/vmcs.cmake -index 0f8641b..cc70cca 100644 ---- a/makefiles/cmake/vmcs.cmake -+++ b/makefiles/cmake/vmcs.cmake -@@ -9,7 +9,7 @@ INCLUDE(CPack) - # Where shall we install? - if (ANDROID) - SET(VMCS_INSTALL_PREFIX "/vendor/brcm/islands" CACHE PATH "Prefix prepended to install directories" FORCE) --else() -+elseif(NOT DEFINED VMCS_INSTALL_PREFIX) - SET(VMCS_INSTALL_PREFIX "/opt/vc" CACHE PATH "Prefix prepended to install directories" FORCE) - endif() - --- -1.9.1 - diff --git a/bsp/buildroot/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch b/bsp/buildroot/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch deleted file mode 100644 index 4db60142..00000000 --- a/bsp/buildroot/package/rpi-userland/0006-Fix-conflicting-type-qualifiers-errors-when-building.patch +++ /dev/null @@ -1,23 +0,0 @@ -Fix conflicting type qualifiers errors when building with musl. - -Signed-off-by: Sergio Prado ---- - host_applications/linux/apps/raspicam/RaspiVidYUV.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/host_applications/linux/apps/raspicam/RaspiVidYUV.c b/host_applications/linux/apps/raspicam/RaspiVidYUV.c -index b340d63c913f..13e6a6ccf5bf 100644 ---- a/host_applications/linux/apps/raspicam/RaspiVidYUV.c -+++ b/host_applications/linux/apps/raspicam/RaspiVidYUV.c -@@ -106,8 +106,6 @@ const int ABORT_INTERVAL = 100; // ms - /// Run/record forever - #define WAIT_METHOD_FOREVER 4 - --extern FILE *stderr, *stdout; -- - int mmal_status_to_int(MMAL_STATUS_T status); - static void signal_handler(int signal_number); - --- -1.9.1 - diff --git a/bsp/buildroot/package/rpi-userland/0006-dtmerge-add-missing-include-for-va_list.patch b/bsp/buildroot/package/rpi-userland/0006-dtmerge-add-missing-include-for-va_list.patch new file mode 100644 index 00000000..f028f67b --- /dev/null +++ b/bsp/buildroot/package/rpi-userland/0006-dtmerge-add-missing-include-for-va_list.patch @@ -0,0 +1,34 @@ +From 1ffed0e8601afb7e65545bd545772edd0fccc404 Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Sat, 23 Apr 2016 17:48:13 +0200 +Subject: [PATCH] dtmerge: add missing include for va_list +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes compile error with uclibc-1.0.14: + + In file included from rpi-userland-52eca998aa43f278314579dba4798a3fe1da46c3/host_applications/linux/apps/dtmerge/dtmerge.c:32:0: + rpi-userland-52eca998aa43f278314579dba4798a3fe1da46c3/helpers/dtoverlay/dtoverlay.h:65:54: error: unknown type name ‘va_list’ + const char *fmt, va_list args); + +Signed-off-by: Peter Seiderer +--- + host_applications/linux/apps/dtmerge/dtmerge.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/host_applications/linux/apps/dtmerge/dtmerge.c b/host_applications/linux/apps/dtmerge/dtmerge.c +index 9243da1..2ac8d39 100644 +--- a/host_applications/linux/apps/dtmerge/dtmerge.c ++++ b/host_applications/linux/apps/dtmerge/dtmerge.c +@@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include + #include + #include ++#include + + #include "dtoverlay.h" + +-- +2.8.1 + diff --git a/bsp/buildroot/package/rpi-userland/rpi-userland.hash b/bsp/buildroot/package/rpi-userland/rpi-userland.hash new file mode 100644 index 00000000..0c6f4fdd --- /dev/null +++ b/bsp/buildroot/package/rpi-userland/rpi-userland.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 b83878c487814d7736de83dc3ede1c39fa1c84bc2da2bea00312544eff64f1dc rpi-userland-7c026fa7a4ded2c525916cc853a32731c072ed1e.tar.gz diff --git a/bsp/buildroot/package/rpi-userland/rpi-userland.mk b/bsp/buildroot/package/rpi-userland/rpi-userland.mk index fbf6fb48..2ebd95bd 100644 --- a/bsp/buildroot/package/rpi-userland/rpi-userland.mk +++ b/bsp/buildroot/package/rpi-userland/rpi-userland.mk @@ -4,7 +4,7 @@ # ################################################################################ -RPI_USERLAND_VERSION = 8306b7c757f4b8e8d9148789eeb64c666d9244a5 +RPI_USERLAND_VERSION = 7c026fa7a4ded2c525916cc853a32731c072ed1e RPI_USERLAND_SITE = $(call github,raspberrypi,userland,$(RPI_USERLAND_VERSION)) RPI_USERLAND_LICENSE = BSD-3c RPI_USERLAND_LICENSE_FILES = LICENCE diff --git a/bsp/buildroot/package/rpm/Config.in b/bsp/buildroot/package/rpm/Config.in index c6fc3b76..2be646a1 100644 --- a/bsp/buildroot/package/rpm/Config.in +++ b/bsp/buildroot/package/rpm/Config.in @@ -1,11 +1,18 @@ comment "rpm needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + +comment "rpm needs a toolchain w/ gcc >= 5" + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5 && BR2_sh config BR2_PACKAGE_RPM bool "rpm" + # triggers internal compiler error + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_sh depends on BR2_TOOLCHAIN_HAS_THREADS # beecrypt depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_BEECRYPT select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE select BR2_PACKAGE_NEON diff --git a/bsp/buildroot/package/rrdtool/0001-Add-configure-option-to-disable-documentation.patch b/bsp/buildroot/package/rrdtool/0001-Add-configure-option-to-disable-documentation.patch deleted file mode 100644 index afb62927..00000000 --- a/bsp/buildroot/package/rrdtool/0001-Add-configure-option-to-disable-documentation.patch +++ /dev/null @@ -1,71 +0,0 @@ -From deaef0790f3cbbce826275d3564551fc9568b628 Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias -Date: Wed, 2 Dec 2015 14:31:52 -0300 -Subject: [PATCH] Add configure option to disable documentation - -Signed-off-by: Gustavo Zacarias ---- - Makefile.am | 6 +++++- - configure.ac | 8 ++++++++ - 2 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index f45975c..1f46a9b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5,7 +5,11 @@ RSYNC = rsync --rsh=ssh - - # build the following subdirectories - --SUBDIRS = po src doc bindings tests -+SUBDIRS = po src bindings tests -+ -+if BUILD_DOCS -+SUBDIRS += doc -+endif - - if BUILD_EXAMPLES - SUBDIRS += examples -diff --git a/configure.ac b/configure.ac -index dc70e7d..7460c67 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -100,6 +100,9 @@ AC_ARG_VAR(RRDGRAPH_YLEGEND_ANGLE, - AC_DEFINE_UNQUOTED(RRDGRAPH_YLEGEND_ANGLE,${RRDGRAPH_YLEGEND_ANGLE:-90.0}, - [Vertical label angle: -90.0 (default) or 90.0]) - -+AC_ARG_ENABLE(docs,AS_HELP_STRING([--disable-docs],[disable building documentation]), -+[],[enable_docs=yes]) -+ - AC_ARG_ENABLE(examples,AS_HELP_STRING([--disable-examples],[disable building of examples]), - [],[enable_examples=yes]) - -@@ -115,6 +118,7 @@ AC_ARG_ENABLE(rrd_graph,AS_HELP_STRING([--disable-rrd_graph],[disable all rrd_gr - AC_ARG_ENABLE(rrd_restore,AS_HELP_STRING([--disable-rrd_restore],[disable rrd_restore XML import functions]), - [],[enable_rrd_restore=yes]) - -+AM_CONDITIONAL(BUILD_DOCS,[test $enable_docs != no]) - AM_CONDITIONAL(BUILD_EXAMPLES,[test $enable_examples != no]) - AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no]) - AM_CONDITIONAL(BUILD_RRDCACHED,[test $enable_rrdcached != no]) -@@ -945,6 +949,8 @@ fi - - AC_SUBST(COMP_PYTHON) - -+if test $enable_docs != no; then -+ - dnl Check for nroff - AC_ARG_VAR(NROFF, [path to the local nroff version]) - AC_PATH_PROGS(NROFF, [gnroff nroff]) -@@ -961,6 +967,8 @@ AC_ARG_VAR(RRDDOCDIR, [[DATADIR/doc/PACKAGE-VERSION] Documentation directory]) - if test -z "$RRDDOCDIR"; then - RRDDOCDIR='${datadir}/doc/${PACKAGE}-${VERSION}'; fi - -+fi -+ - # systemd check - PKG_PROG_PKG_CONFIG - AC_ARG_WITH([systemdsystemunitdir], --- -2.4.10 - diff --git a/bsp/buildroot/package/rrdtool/Config.in b/bsp/buildroot/package/rrdtool/Config.in index 631ed328..3d8c0c64 100644 --- a/bsp/buildroot/package/rrdtool/Config.in +++ b/bsp/buildroot/package/rrdtool/Config.in @@ -4,6 +4,7 @@ config BR2_PACKAGE_RRDTOOL depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 depends on BR2_USE_MMU # libglib2 select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT help RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. diff --git a/bsp/buildroot/package/rrdtool/rrdtool.hash b/bsp/buildroot/package/rrdtool/rrdtool.hash index 36ac50c9..cff5501d 100644 --- a/bsp/buildroot/package/rrdtool/rrdtool.hash +++ b/bsp/buildroot/package/rrdtool/rrdtool.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 3a286d449c05d657e3fc3adcaa5cb4f0cfac8f465324b14f364a45d4ff8ca6f6 rrdtool-1.5.5.tar.gz +sha256 cd948e89cd2d8825fab4a6fb0323f810948d934af7d92c9ee8b5e9e1350e52d7 rrdtool-1.6.0.tar.gz diff --git a/bsp/buildroot/package/rrdtool/rrdtool.mk b/bsp/buildroot/package/rrdtool/rrdtool.mk index 0bc7c381..abca1d80 100644 --- a/bsp/buildroot/package/rrdtool/rrdtool.mk +++ b/bsp/buildroot/package/rrdtool/rrdtool.mk @@ -4,12 +4,13 @@ # ################################################################################ -RRDTOOL_VERSION = 1.5.5 +RRDTOOL_VERSION = 1.6.0 RRDTOOL_SITE = http://oss.oetiker.ch/rrdtool/pub RRDTOOL_LICENSE = GPLv2+ with FLOSS license exceptions as explained in COPYRIGHT RRDTOOL_LICENSE_FILES = COPYRIGHT LICENSE RRDTOOL_DEPENDENCIES = host-pkgconf libglib2 -# For 0001-Add-configure-option-to-disable-documentation.patch +# autoreconf needed to avoid link failure due to missing -lintl, +# gettextize needed as a consequence of autoreconf RRDTOOL_AUTORECONF = YES RRDTOOL_GETTEXTIZE = YES RRDTOOL_INSTALL_STAGING = YES @@ -24,6 +25,11 @@ RRDTOOL_CONF_OPTS = \ --disable-ruby \ --disable-tcl + +ifeq ($(BR2_NEEDS_GETTEXT),y) +RRDTOOL_DEPENDENCIES += gettext +endif + ifeq ($(BR2_PACKAGE_RRDTOOL_RRDGRAPH),y) RRDTOOL_DEPENDENCIES += cairo pango else diff --git a/bsp/buildroot/package/rs485conf/Config.in b/bsp/buildroot/package/rs485conf/Config.in new file mode 100644 index 00000000..ff0b7432 --- /dev/null +++ b/bsp/buildroot/package/rs485conf/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_RS485CONF + bool "rs485conf" + help + rs485conf is intended to be used on embedded boards with RS485 + interface. It can show as well as modify RS485 configuration + parameters of TTY device with easy to use command line + options. + + https://github.com/mniestroj/rs485conf diff --git a/bsp/buildroot/package/rs485conf/rs485conf.hash b/bsp/buildroot/package/rs485conf/rs485conf.hash new file mode 100644 index 00000000..e2ccbfd4 --- /dev/null +++ b/bsp/buildroot/package/rs485conf/rs485conf.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 f163f81cd50aae6fa39cbb4f6408a3699da7a87a56649c4b96d6f168c9be6a7d rs485conf-5c8d00cf70950fab3454549b81dea843d844492a.tar.gz diff --git a/bsp/buildroot/package/rs485conf/rs485conf.mk b/bsp/buildroot/package/rs485conf/rs485conf.mk new file mode 100644 index 00000000..7fda39cc --- /dev/null +++ b/bsp/buildroot/package/rs485conf/rs485conf.mk @@ -0,0 +1,20 @@ +################################################################################ +# +# rs485conf +# +################################################################################ + +RS485CONF_VERSION = 5c8d00cf70950fab3454549b81dea843d844492a +RS485CONF_SITE = $(call github,mniestroj,rs485conf,$(RS485CONF_VERSION)) +RS485CONF_LICENSE = BSD-3c +RS485CONF_LICENSE_FILES = LICENSE + +define RS485CONF_BUILD_CMDS + $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) +endef + +define RS485CONF_INSTALL_TARGET_CMDS + $(MAKE) PREFIX="$(TARGET_DIR)/usr" -C $(@D) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/rsh-redone/Config.in b/bsp/buildroot/package/rsh-redone/Config.in index 316ff7a1..6a8aec03 100644 --- a/bsp/buildroot/package/rsh-redone/Config.in +++ b/bsp/buildroot/package/rsh-redone/Config.in @@ -17,9 +17,10 @@ config BR2_PACKAGE_RSH_REDONE_RLOGIND depends on !BR2_STATIC_LIBS depends on BR2_ENABLE_LOCALE && BR2_USE_WCHAR depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM -comment "rlogind needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library" +comment "rlogind needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL @@ -31,9 +32,10 @@ config BR2_PACKAGE_RSH_REDONE_RSHD depends on BR2_ENABLE_LOCALE && BR2_USE_WCHAR depends on !BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM -comment "rshd needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library" +comment "rshd needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/rsyslog/0001-musl-fcntl-h.patch b/bsp/buildroot/package/rsyslog/0001-musl-fcntl-h.patch deleted file mode 100644 index 5c2daee6..00000000 --- a/bsp/buildroot/package/rsyslog/0001-musl-fcntl-h.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 835571774dc519dd2cff7ab1020cf298cc953a8f Mon Sep 17 00:00:00 2001 -From: Thordur Bjornsson -Date: Tue, 7 Jul 2015 12:34:08 +0200 -Subject: [PATCH] omfile: unconditionally include fcntl.h. - -required for open() flags - -Signed-off-by: Thordur Bjornsson -[Bernd: downloaded from upstream commit: - https://github.com/rsyslog/rsyslog/commit/835571774dc519dd2cff7ab1020cf298cc953a8f -Signed-off-by: Bernd Kuhls ---- - tools/omfile.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/tools/omfile.c b/tools/omfile.c -index 482e723..4444b97 100644 ---- a/tools/omfile.c -+++ b/tools/omfile.c -@@ -48,9 +48,7 @@ - #include - #include - #include --#ifdef OS_SOLARIS --# include --#endif -+#include - #ifdef HAVE_ATOMIC_BUILTINS - # include - #endif diff --git a/bsp/buildroot/package/rsyslog/Config.in b/bsp/buildroot/package/rsyslog/Config.in index 35992077..b3c146dc 100644 --- a/bsp/buildroot/package/rsyslog/Config.in +++ b/bsp/buildroot/package/rsyslog/Config.in @@ -3,11 +3,14 @@ config BR2_PACKAGE_RSYSLOG select BR2_PACKAGE_ZLIB select BR2_PACKAGE_LIBESTR select BR2_PACKAGE_LIBLOGGING - select BR2_PACKAGE_JSON_C + select BR2_PACKAGE_LIBFASTJSON depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # modules - depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c + # Propagate the exact same dependency from libfastjson, + # even though rsyslog already depends on threads for itself: + depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Rsyslog is a powerful and flexible syslog implementation @@ -17,3 +20,4 @@ comment "rsyslog needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/rsyslog/rsyslog.hash b/bsp/buildroot/package/rsyslog/rsyslog.hash index 5f9e0eda..7dc341ad 100644 --- a/bsp/buildroot/package/rsyslog/rsyslog.hash +++ b/bsp/buildroot/package/rsyslog/rsyslog.hash @@ -1,2 +1,2 @@ # From http://www.rsyslog.com/downloads/download-v8-stable/ -sha256 eab00e8e758cd9dd33b3e2cf6af80297d1951dc7db37bd723a6488a35d577adc rsyslog-8.9.0.tar.gz +sha256 3379b30f2e6ef05a0f1c7327c73923fa5877a80b984506cdf48ed068c94a575e rsyslog-8.19.0.tar.gz diff --git a/bsp/buildroot/package/rsyslog/rsyslog.mk b/bsp/buildroot/package/rsyslog/rsyslog.mk index 5dde9243..18a57372 100644 --- a/bsp/buildroot/package/rsyslog/rsyslog.mk +++ b/bsp/buildroot/package/rsyslog/rsyslog.mk @@ -4,11 +4,11 @@ # ################################################################################ -RSYSLOG_VERSION = 8.9.0 +RSYSLOG_VERSION = 8.19.0 RSYSLOG_SITE = http://rsyslog.com/files/download/rsyslog RSYSLOG_LICENSE = GPLv3, LGPLv3, Apache-2.0 RSYSLOG_LICENSE_FILES = COPYING COPYING.LESSER COPYING.ASL20 -RSYSLOG_DEPENDENCIES = zlib libestr liblogging json-c host-pkgconf +RSYSLOG_DEPENDENCIES = zlib libestr liblogging libfastjson host-pkgconf RSYSLOG_CONF_ENV = ac_cv_prog_cc_c99='-std=c99' RSYSLOG_PLUGINS = imdiag imfile impstats imptcp \ mmanon mmaudit mmfields mmjsonparse mmpstrucdata mmsequence mmutf8fix \ @@ -22,6 +22,13 @@ ifeq ($(BR2_PACKAGE_BUSYBOX),y) RSYSLOG_DEPENDENCIES += busybox endif +ifeq ($(BR2_PACKAGE_GNUTLS),y) +RSYSLOG_DEPENDENCIES += gnutls +RSYSLOG_CONF_OPTS += --enable-gnutls +else +RSYSLOG_CONF_OPTS += --disable-gnutls +endif + ifeq ($(BR2_PACKAGE_LIBEE),y) RSYSLOG_DEPENDENCIES += libee endif diff --git a/bsp/buildroot/package/rt-tests/0001-Fix-various-minor-issues-with-rt-tests-build-system.patch b/bsp/buildroot/package/rt-tests/0001-Fix-various-minor-issues-with-rt-tests-build-system.patch new file mode 100644 index 00000000..157514a8 --- /dev/null +++ b/bsp/buildroot/package/rt-tests/0001-Fix-various-minor-issues-with-rt-tests-build-system.patch @@ -0,0 +1,55 @@ +From eb47c07e9d20e0b1a6cc4b0df26f24f22f024f1c Mon Sep 17 00:00:00 2001 +From: Alexey Brodkin +Date: Mon, 10 Nov 2014 11:44:55 +0300 +Subject: [PATCH] Fix various minor issues with rt-tests build system + +The issues fixed are : + + * Remove the automatic NUMA detection from the host + architecture. This is broken when doing cross-compilation. One can + still set NUMA=1 if NUMA support is desired. + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Alexey Brodkin +Cc: Peter Korsgaard +[Romain: + rebase on v1.0 + Remove HASPYTHON since PYLIB can be overriden from the environment] +Signed-off-by: Romain Naour +--- + Makefile | 19 ------------------- + 1 file changed, 19 deletions(-) + +diff --git a/Makefile b/Makefile +index a54d82b..0946f93 100644 +--- a/Makefile ++++ b/Makefile +@@ -38,25 +38,6 @@ else + CFLAGS += -O0 -g + endif + +-# We make some gueses on how to compile rt-tests based on the machine type +-# and the ostype. These can often be overridden. +-dumpmachine := $(shell $(CC) -dumpmachine) +- +-# The ostype is typically something like linux or android +-ostype := $(lastword $(subst -, ,$(dumpmachine))) +- +-machinetype := $(shell echo $(dumpmachine)| \ +- sed -e 's/-.*//' -e 's/i.86/i386/' -e 's/mips.*/mips/' -e 's/ppc.*/powerpc/') +- +-# The default is to assume you have libnuma installed, which is fine to do +-# even on non-numa machines. If you don't want to install the numa libs, for +-# example, they might not be available in an embedded environment, then +-# compile with +-# make NUMA=0 +-ifneq ($(filter x86_64 i386 ia64 mips powerpc,$(machinetype)),) +-NUMA := 1 +-endif +- + # The default is to assume that you have numa_parse_cpustring_all + # If you have an older version of libnuma that only has numa_parse_cpustring + # then compile with +-- +2.5.5 + diff --git a/bsp/buildroot/package/rt-tests/0002-Fix-a-build-issue-with-uClibc-ng.patch b/bsp/buildroot/package/rt-tests/0002-Fix-a-build-issue-with-uClibc-ng.patch new file mode 100644 index 00000000..785d93c9 --- /dev/null +++ b/bsp/buildroot/package/rt-tests/0002-Fix-a-build-issue-with-uClibc-ng.patch @@ -0,0 +1,33 @@ +From 21e0c16a85c2e028a963703511d750d1751bc254 Mon Sep 17 00:00:00 2001 +From: Alexey Brodkin +Date: Wed, 13 Jul 2016 23:46:38 +0200 +Subject: [PATCH] Fix a build issue with uClibc-ng + +uClibc-ng has clock_nanosleep() if built with UCLIBC_HAS_ADVANCED_REALTIME, + conflicting with emulation function. + +Signed-off-by: Peter Korsgaard +[Romain: + rebase on v1.0 + remove uClibc legacy support, uClibc-ng provide utmpx.h] +Signed-off-by: Romain Naour +--- + src/cyclictest/cyclictest.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c +index 00e5f3d..92fa3dd 100644 +--- a/src/cyclictest/cyclictest.c ++++ b/src/cyclictest/cyclictest.c +@@ -58,7 +58,7 @@ + #define gettid() syscall(__NR_gettid) + #define sigev_notify_thread_id _sigev_un._tid + +-#ifdef __UCLIBC__ ++#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_ADVANCED_REALTIME__) + #define MAKE_PROCESS_CPUCLOCK(pid, clock) \ + ((~(clockid_t) (pid) << 3) | (clockid_t) (clock)) + #define CPUCLOCK_SCHED 2 +-- +2.5.5 + diff --git a/bsp/buildroot/package/rt-tests/0003-Add-syscall-number-for-sched_-gs-etattr-for-SH4.patch b/bsp/buildroot/package/rt-tests/0003-Add-syscall-number-for-sched_-gs-etattr-for-SH4.patch new file mode 100644 index 00000000..9d606a4d --- /dev/null +++ b/bsp/buildroot/package/rt-tests/0003-Add-syscall-number-for-sched_-gs-etattr-for-SH4.patch @@ -0,0 +1,34 @@ +From 53c7e8bc75f0f27752309ddae49e8d3b867a7681 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Mon, 15 Aug 2016 18:20:47 +0200 +Subject: [PATCH] Add syscall-number for sched_(gs)etattr() for SH4 + +Signed-off-by: Romain Naour +--- + src/include/rt-sched.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/include/rt-sched.h b/src/include/rt-sched.h +index 679c4bd..83394c6 100644 +--- a/src/include/rt-sched.h ++++ b/src/include/rt-sched.h +@@ -51,6 +51,16 @@ + #endif + #endif + ++/* SCHED_DEADLINE available on sh4 since kernel 4.8 */ ++#ifdef __SH4__ ++#ifndef __NR_sched_setattr ++#define __NR_sched_setattr 370 ++#endif ++#ifndef __NR_sched_getattr ++#define __NR_sched_getattr 369 ++#endif ++#endif ++ + #ifdef __tilegx__ + #define __NR_sched_setattr 274 + #define __NR_sched_getattr 275 +-- +2.5.5 + diff --git a/bsp/buildroot/package/rt-tests/01-fix-build-system.patch b/bsp/buildroot/package/rt-tests/01-fix-build-system.patch deleted file mode 100644 index 36af7477..00000000 --- a/bsp/buildroot/package/rt-tests/01-fix-build-system.patch +++ /dev/null @@ -1,52 +0,0 @@ -From f9a55a87af57780ea8940561d22cd6a90f461416 Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin -Date: Mon, 10 Nov 2014 11:44:55 +0300 -Subject: [PATCH] Fix various minor issues with rt-tests build system - -The issues fixed are : - - * Remove the automatic NUMA detection from the host - architecture. This is broken when doing cross-compilation. One can - still set NUMA=1 if NUMA support is desired. - - * Provide a HASPYTHON variable to tell whether the target system has - Python or not. Otherwise, the build system simply tests whether - Python is available on the host. The PYLIB variable is also changed - so that it can be overriden from the environment, in order to - provide the correct Python module location for the target. - -Signed-off-by: Thomas Petazzoni -Signed-off-by: Alexey Brodkin -Cc: Peter Korsgaard ---- - Makefile | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) - -diff --git a/Makefile b/Makefile -index 318a5c6..645d138 100644 ---- a/Makefile -+++ b/Makefile -@@ -14,17 +14,13 @@ bindir ?= $(prefix)/bin - mandir ?= $(prefix)/share/man - srcdir ?= $(prefix)/src - --machinetype = $(shell $(CC) -dumpmachine | \ -- sed -e 's/-.*//' -e 's/i.86/i386/' -e 's/mips.*/mips/' -e 's/ppc.*/powerpc/') --ifneq ($(filter x86_64 i386 ia64 mips powerpc,$(machinetype)),) --NUMA := 1 --endif -- - CFLAGS ?= -Wall -Wno-nonnull - CPPFLAGS += -D_GNU_SOURCE -Isrc/include - LDFLAGS ?= - --PYLIB := $(shell python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()') -+ifeq ($(HASPYTHON),1) -+PYLIB ?= $(shell python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()') -+endif - - ifndef DEBUG - CFLAGS += -O2 --- -1.9.3 - diff --git a/bsp/buildroot/package/rt-tests/02-uclibc.patch b/bsp/buildroot/package/rt-tests/02-uclibc.patch deleted file mode 100644 index 180bdf7c..00000000 --- a/bsp/buildroot/package/rt-tests/02-uclibc.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 713224456f4a3242496af803413f670433f27c74 Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin -Date: Mon, 10 Nov 2014 11:55:27 +0300 -Subject: [PATCH] [PATCH] fix build with uClibc - -Fix two build issues with (modern) uClibc: -- uClibc has clock_nanosleep() if built with UCLIBC_HAS_ADVANCED_REALTIME, - conflicting with emulation function -- uClibc doesn't provide utmpx.h if not built with UCLIBC_HAS_UTMPX, which - is included in several files (but not needed). - -Signed-off-by: Peter Korsgaard ---- - src/backfire/sendme.c | 1 - - src/cyclictest/cyclictest.c | 3 ++- - src/pmqtest/pmqtest.c | 1 - - src/ptsematest/ptsematest.c | 1 - - src/sigwaittest/sigwaittest.c | 2 -- - src/svsematest/svsematest.c | 1 - - 6 files changed, 2 insertions(+), 7 deletions(-) - -diff --git a/src/backfire/sendme.c b/src/backfire/sendme.c -index 8c169dd..b959951 100644 ---- a/src/backfire/sendme.c -+++ b/src/backfire/sendme.c -@@ -32,7 +32,6 @@ - #include "rt-utils.h" - #include "rt-get_cpu.h" - --#include - #include - #include - #include -diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c -index 4547831..343e421 100644 ---- a/src/cyclictest/cyclictest.c -+++ b/src/cyclictest/cyclictest.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -56,7 +57,7 @@ - #define gettid() syscall(__NR_gettid) - #define sigev_notify_thread_id _sigev_un._tid - --#ifdef __UCLIBC__ -+#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_ADVANCED_REALTIME__) - #define MAKE_PROCESS_CPUCLOCK(pid, clock) \ - ((~(clockid_t) (pid) << 3) | (clockid_t) (clock)) - #define CPUCLOCK_SCHED 2 -diff --git a/src/pmqtest/pmqtest.c b/src/pmqtest/pmqtest.c -index 336a8eb..2e34afe 100644 ---- a/src/pmqtest/pmqtest.c -+++ b/src/pmqtest/pmqtest.c -@@ -33,7 +33,6 @@ - #include - #include - #include --#include - #include - #include "rt-utils.h" - #include "rt-get_cpu.h" -diff --git a/src/ptsematest/ptsematest.c b/src/ptsematest/ptsematest.c -index 7558a41..5358a65 100644 ---- a/src/ptsematest/ptsematest.c -+++ b/src/ptsematest/ptsematest.c -@@ -33,7 +33,6 @@ - #include - #include - #include --#include - #include "rt-utils.h" - #include "rt-get_cpu.h" - #include "error.h" -diff --git a/src/sigwaittest/sigwaittest.c b/src/sigwaittest/sigwaittest.c -index 428f5ce..85c32a2 100644 ---- a/src/sigwaittest/sigwaittest.c -+++ b/src/sigwaittest/sigwaittest.c -@@ -31,11 +31,9 @@ - #include - #include - #include --#include - #include - #include - #include --#include - #include "rt-utils.h" - #include "rt-get_cpu.h" - -diff --git a/src/svsematest/svsematest.c b/src/svsematest/svsematest.c -index c1128cc..5d02550 100644 ---- a/src/svsematest/svsematest.c -+++ b/src/svsematest/svsematest.c -@@ -31,7 +31,6 @@ - #include - #include - #include --#include - - #include - --- -1.9.3 - diff --git a/bsp/buildroot/package/rt-tests/03-fix-non-nptl-buil.patch b/bsp/buildroot/package/rt-tests/03-fix-non-nptl-buil.patch deleted file mode 100644 index 5c650189..00000000 --- a/bsp/buildroot/package/rt-tests/03-fix-non-nptl-buil.patch +++ /dev/null @@ -1,55 +0,0 @@ -From c6920f97be02ca3fba9320b043acd578ce4c62d8 Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin -Date: Mon, 10 Nov 2014 10:00:13 +0300 -Subject: [PATCH] Makefile: allow building selected tests with non-NPTL - toolchain - -Some architectures are still stuck with non-NPTL toolchains. -These are for example ARC, Blackfin, Xtensa etc. - -Still rt-tests are very good benchmarks and it would be good to enable use of -at least selected (those that will be built) tests on those architectures. - -This change makes it possible to only build subset of tests that don't require -NPTL calls. - -By default behavior is not modified - all tests are built, but if one wants -to build with non-NPTL toolchain just add "HAVE_NPTL=no" in command line -or modify "HAVE_NPTL" variable right in Makefile and execute "make". - -This patch was submitted upstream: -https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg762958.html -so as soon as it is accepted with the next version bump this patch should be -removed. - -Signed-off-by: Alexey Brodkin -Cc: Vineet Gupta -Cc: Clark Williams ---- - Makefile | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/Makefile b/Makefile -index 318a5c6..675edf7 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,8 +1,13 @@ - VERSION_STRING = 0.89 - --sources = cyclictest.c signaltest.c pi_stress.c rt-migrate-test.c \ -- ptsematest.c sigwaittest.c svsematest.c pmqtest.c sendme.c \ -- pip_stress.c hackbench.c -+HAVE_NPTL ?= yes -+ -+ifeq ($(HAVE_NPTL),yes) -+sources = cyclictest.c pi_stress.c pip_stress.c pmqtest.c rt-migrate-test.c -+endif -+ -+sources += signaltest.c ptsematest.c sigwaittest.c svsematest.c sendme.c \ -+ hackbench.c - - TARGETS = $(sources:.c=) - --- -1.9.3 - diff --git a/bsp/buildroot/package/rt-tests/04-Makefile-fix-tests-dependencies.patch b/bsp/buildroot/package/rt-tests/04-Makefile-fix-tests-dependencies.patch deleted file mode 100644 index 0b2feb16..00000000 --- a/bsp/buildroot/package/rt-tests/04-Makefile-fix-tests-dependencies.patch +++ /dev/null @@ -1,50 +0,0 @@ -From e464368807211978fe2dfccf081fa8dc7a35b71b Mon Sep 17 00:00:00 2001 -From: Baruch Siach -Date: Fri, 23 Jan 2015 07:52:21 +0200 -Subject: [PATCH] Makefile: fix tests dependencies - -librttest is listed in $(LIBS) so all tests must depend on librttest.a. -Fixes build failures like: - -.../armv7-ctng-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g2 -o hackbench hackbench.o -lrt -lpthread -lrttest -L. -.../armv7-ctng-linux-gnueabihf/bin/ld: cannot find -lrttest -collect2: error: ld returned 1 exit status - -Signed-off-by: Baruch Siach ---- - Makefile | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Makefile b/Makefile -index a3879cea8164..b9a1fed1b920 100644 ---- a/Makefile -+++ b/Makefile -@@ -69,14 +69,14 @@ cyclictest: cyclictest.o librttest.a - signaltest: signaltest.o librttest.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - --pi_stress: pi_stress.o -+pi_stress: pi_stress.o librttest.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - - hwlatdetect: src/hwlatdetect/hwlatdetect.py - chmod +x src/hwlatdetect/hwlatdetect.py - ln -s src/hwlatdetect/hwlatdetect.py hwlatdetect - --rt-migrate-test: rt-migrate-test.o -+rt-migrate-test: rt-migrate-test.o librttest.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - - ptsematest: ptsematest.o librttest.a -@@ -97,7 +97,7 @@ sendme: sendme.o librttest.a - pip_stress: pip_stress.o librttest.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - --hackbench: hackbench.o -+hackbench: hackbench.o librttest.a - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - - librttest.a: rt-utils.o error.o rt-get_cpu.o --- -2.1.4 - diff --git a/bsp/buildroot/package/rt-tests/Config.in b/bsp/buildroot/package/rt-tests/Config.in index 4c57c0f0..b39856d3 100644 --- a/bsp/buildroot/package/rt-tests/Config.in +++ b/bsp/buildroot/package/rt-tests/Config.in @@ -1,8 +1,10 @@ config BR2_PACKAGE_RT_TESTS bool "rt-tests" - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 # deadline scheduler syscall depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # dlopen + depends on !BR2_TOOLCHAIN_USES_MUSL # cyclictest help Set of utilities for testing the real-time behaviour of a Linux system. @@ -15,9 +17,9 @@ config BR2_PACKAGE_RT_TESTS Note that this package requires a toolchain built with the NPTL implementation of the pthread API (this is always the - case with glibc/eglibc toolchains, but may not necessarily - be the case with uClibc toolchains, since the thread - implementation is configurable). + case with glibc toolchains, but may not necessarily be the + case with uClibc toolchains, since the thread implementation + is configurable). http://rt.wiki.kernel.org @@ -27,6 +29,7 @@ comment "rt-tests may not work on MIPS with an external uClibc toolchain" depends on BR2_TOOLCHAIN_EXTERNAL_UCLIBC depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el -comment "rt-tests needs a toolchain w/ threads, dynamic library" - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS +comment "rt-tests needs a uClibc or glibc toolchain w/ NPTL, headers >= 3.14, dynamic library" + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS \ + || BR2_TOOLCHAIN_USES_MUSL || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/rt-tests/rt-tests.hash b/bsp/buildroot/package/rt-tests/rt-tests.hash new file mode 100644 index 00000000..f37af438 --- /dev/null +++ b/bsp/buildroot/package/rt-tests/rt-tests.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 aea85fd8eda8c1d96e9d32a019bfd4a1d2e0d362971d97838996f49d1af2d470 rt-tests-1.0.tar.xz diff --git a/bsp/buildroot/package/rt-tests/rt-tests.mk b/bsp/buildroot/package/rt-tests/rt-tests.mk index 74d7c6df..19f1021a 100644 --- a/bsp/buildroot/package/rt-tests/rt-tests.mk +++ b/bsp/buildroot/package/rt-tests/rt-tests.mk @@ -4,8 +4,9 @@ # ################################################################################ -RT_TESTS_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git -RT_TESTS_VERSION = v0.89 +RT_TESTS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/rt-tests +RT_TESTS_SOURCE = rt-tests-$(RT_TESTS_VERSION).tar.xz +RT_TESTS_VERSION = 1.0 RT_TESTS_LICENSE = GPLv2+ RT_TESTS_LICENSE_FILES = COPYING @@ -13,26 +14,18 @@ ifeq ($(BR2_PACKAGE_PYTHON),y) RT_TESTS_DEPENDENCIES = python endif -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),y) -RT_TESTS_HAVE_NPTL=yes -else -RT_TESTS_HAVE_NPTL=no -endif - define RT_TESTS_BUILD_CMDS $(MAKE) -C $(@D) \ CC="$(TARGET_CC)" \ - HAVE_NPTL=$(RT_TESTS_HAVE_NPTL) \ CFLAGS="$(TARGET_CFLAGS)" \ prefix=/usr endef define RT_TESTS_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) \ - HAVE_NPTL=$(RT_TESTS_HAVE_NPTL) \ DESTDIR="$(TARGET_DIR)" \ prefix=/usr \ - $(if $(BR2_PACKAGE_PYTHON),HASPYTHON=1 PYLIB=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/) \ + $(if $(BR2_PACKAGE_PYTHON),PYLIB=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/,PYLIB="") \ install endef diff --git a/bsp/buildroot/package/rtl8188eu/rtl8188eu.hash b/bsp/buildroot/package/rtl8188eu/rtl8188eu.hash new file mode 100644 index 00000000..6f68f442 --- /dev/null +++ b/bsp/buildroot/package/rtl8188eu/rtl8188eu.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 9f16fab009bd7bc9e377cf7dcdf82be1b60e7f88e27f2833eea5b422d104e3fe rtl8188eu-ced2b64a1139dcaf86947e3a9f7617dffbd64239.tar.gz diff --git a/bsp/buildroot/package/rtl8188eu/rtl8188eu.mk b/bsp/buildroot/package/rtl8188eu/rtl8188eu.mk index d1034c4c..5da6bf35 100644 --- a/bsp/buildroot/package/rtl8188eu/rtl8188eu.mk +++ b/bsp/buildroot/package/rtl8188eu/rtl8188eu.mk @@ -4,7 +4,7 @@ # ################################################################################ -RTL8188EU_VERSION = 3091828c8f4b4a01cbec6025128bf77e6e7b9f97 +RTL8188EU_VERSION = ced2b64a1139dcaf86947e3a9f7617dffbd64239 RTL8188EU_SITE = $(call github,lwfinger,rtl8188eu,$(RTL8188EU_VERSION)) RTL8188EU_LICENSE = GPLv2, proprietary (rtl8188eufw.bin firmware blob) RTL8188EU_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/rtl8821au/rtl8821au.hash b/bsp/buildroot/package/rtl8821au/rtl8821au.hash new file mode 100644 index 00000000..01f22cc0 --- /dev/null +++ b/bsp/buildroot/package/rtl8821au/rtl8821au.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 6e4334b0718b2ac611bf8b4d7a493b016bdb1c24daa7b459f091b92b6fd961c7 rtl8821au-c33ddb05a77741d2a9c9b974ad0cf0fa26d17b6e.tar.gz diff --git a/bsp/buildroot/package/rtl8821au/rtl8821au.mk b/bsp/buildroot/package/rtl8821au/rtl8821au.mk index eddb18ee..9ba43ef1 100644 --- a/bsp/buildroot/package/rtl8821au/rtl8821au.mk +++ b/bsp/buildroot/package/rtl8821au/rtl8821au.mk @@ -4,9 +4,9 @@ # ################################################################################ -RTL8821AU_VERSION = fef8c9d67d076eee9dfb9e19cb7cb69815d5a207 -RTL8821AU_SITE = $(call github,ulli-kroll,rtl8821au,$(RTL8821AU_VERSION)) -RTL8821AU_LICENSE = GPLv2, proprietary (rtl8821au.bin firmware) +RTL8821AU_VERSION = c33ddb05a77741d2a9c9b974ad0cf0fa26d17b6e +RTL8821AU_SITE = $(call github,abperiasamy,rtl8812AU_8821AU_linux,$(RTL8821AU_VERSION)) +RTL8821AU_LICENSE = GPLv2 RTL8821AU_LICENSE_FILES = COPYING RTL8821AU_MODULE_MAKE_OPTS = \ @@ -14,12 +14,5 @@ RTL8821AU_MODULE_MAKE_OPTS = \ KVER=$(LINUX_VERSION_PROBED) \ USER_EXTRA_CFLAGS=-DCONFIG_$(call qstrip,$(BR2_ENDIAN))_ENDIAN -define RTL8821AU_FIRMWARE_INSTALL - mkdir -p $(TARGET_DIR)/lib/firmware/rtlwifi/ - $(INSTALL) -D -m 0644 $(@D)/firmware/* $(TARGET_DIR)/lib/firmware/rtlwifi/ -endef - -RTL8821AU_POST_INSTALL_TARGET_HOOKS += RTL8821AU_FIRMWARE_INSTALL - $(eval $(kernel-module)) $(eval $(generic-package)) diff --git a/bsp/buildroot/package/rtptools/0001-host2ip-no-nis-on-uClibc.patch b/bsp/buildroot/package/rtptools/0001-host2ip-no-nis-on-uClibc.patch deleted file mode 100644 index f1a72f95..00000000 --- a/bsp/buildroot/package/rtptools/0001-host2ip-no-nis-on-uClibc.patch +++ /dev/null @@ -1,45 +0,0 @@ -host2ip.c: disable NIS support when building with uClibc - -uClibc doesn't have NIS support, so simply disable the fallback. - -Signed-off-by: Peter Korsgaard ---- - host2ip.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -Index: rtptools-1.20/host2ip.c -=================================================================== ---- rtptools-1.20.orig/host2ip.c -+++ rtptools-1.20/host2ip.c -@@ -3,7 +3,16 @@ - #include /* gethostbyname() */ - #include /* sockaddr_in */ - #include /* inet_addr() */ -+ -+#include -+#ifndef __UCLIBC__ -+#define HAVE_YP -+#endif -+ -+#ifdef HAVE_YP - #include /* YP */ -+#endif -+ - #include /* strlen() added by Akira 12/27/01 */ - #include "sysdep.h" - -@@ -28,6 +37,7 @@ - else if ((hep = gethostbyname(host))) { - in = *(struct in_addr *)(hep->h_addr_list[0]); - } -+#ifdef HAVE_YP - /* As a last resort, try YP. */ - else { - static char *domain = 0; /* YP domain */ -@@ -39,5 +49,6 @@ - in.s_addr = inet_addr(value); - } - } -+#endif - return in; - } /* host2ip */ diff --git a/bsp/buildroot/package/rtptools/0001-host2ip.c-disable-NIS-support-for-toolchains-lacking.patch b/bsp/buildroot/package/rtptools/0001-host2ip.c-disable-NIS-support-for-toolchains-lacking.patch new file mode 100644 index 00000000..1bf7c134 --- /dev/null +++ b/bsp/buildroot/package/rtptools/0001-host2ip.c-disable-NIS-support-for-toolchains-lacking.patch @@ -0,0 +1,73 @@ +From f8ffde6c0c0a9008cd65601f6c9712899106e42c Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Mon, 11 Apr 2016 23:03:48 +0200 +Subject: [PATCH] host2ip.c: disable NIS support for toolchains lacking SUN RPC + +Some toolchains are missing SUN RPC; this is the case for toolchains +based on uClibc, and some glibc-based toolchains (when SUN RPC headers +were taken out of glibc). + +Add a configure check for the required SUN RPC header, and make the code +using SUN RPC conditional on the result. + +Also drop the legacy AM_C_PROTOTYPES: it is no longer supported by +autoconf and breaks autoreconf. + +Signed-off-by: Peter Korsgaard +[yann.morin.1998@free.fr: add the ./configure check; do not include + features.h; do not check specifically for uClibc] +Signed-off-by: "Yann E. MORIN" +--- + configure.in | 3 ++- + host2ip.c | 5 +++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index de394cf..889e6ed 100644 +--- a/configure.in ++++ b/configure.in +@@ -39,9 +39,10 @@ CU_CHECK_LIB(socket, socket) + dnl Checks for header files. + AC_HEADER_STDC + AC_CHECK_HEADERS(search.h sys/time.h unistd.h) ++AC_CHECK_HEADER([rpcsvc/ypclnt.h], ++ [AC_DEFINE([HAVE_YP],[1],[Define to 1 if you have rpcsvc/ypclnt.h])]) + + dnl Checks for typedefs, structures, and compiler characteristics. +-AM_C_PROTOTYPES + AC_C_CONST + AC_C_BIGENDIAN + AC_TYPE_UID_T +diff --git a/host2ip.c b/host2ip.c +index b094343..95014cd 100644 +--- a/host2ip.c ++++ b/host2ip.c +@@ -3,7 +3,10 @@ + #include /* gethostbyname() */ + #include /* sockaddr_in */ + #include /* inet_addr() */ ++#ifdef HAVE_YP + #include /* YP */ ++#endif ++ + #include /* strlen() added by Akira 12/27/01 */ + #include "sysdep.h" + +@@ -28,6 +31,7 @@ struct in_addr host2ip(char *host) + else if ((hep = gethostbyname(host))) { + in = *(struct in_addr *)(hep->h_addr_list[0]); + } ++#ifdef HAVE_YP + /* As a last resort, try YP. */ + else { + static char *domain = 0; /* YP domain */ +@@ -39,5 +43,6 @@ struct in_addr host2ip(char *host) + in.s_addr = inet_addr(value); + } + } ++#endif + return in; + } /* host2ip */ +-- +1.9.1 + diff --git a/bsp/buildroot/package/rtptools/rtptools.mk b/bsp/buildroot/package/rtptools/rtptools.mk index d93a9113..7990e8f1 100644 --- a/bsp/buildroot/package/rtptools/rtptools.mk +++ b/bsp/buildroot/package/rtptools/rtptools.mk @@ -8,5 +8,6 @@ RTPTOOLS_VERSION = 1.20 RTPTOOLS_SITE = http://www.cs.columbia.edu/irt/software/rtptools/download RTPTOOLS_LICENSE = MIT-like (research and education only) RTPTOOLS_LICENSE_FILES = COPYRIGHT +RTPTOOLS_AUTORECONF = YES $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/ruby/0001-process.c-fix-rb_spawn_process-for-nommu.patch b/bsp/buildroot/package/ruby/0001-process.c-fix-rb_spawn_process-for-nommu.patch new file mode 100644 index 00000000..701c1059 --- /dev/null +++ b/bsp/buildroot/package/ruby/0001-process.c-fix-rb_spawn_process-for-nommu.patch @@ -0,0 +1,34 @@ +From 24e6d5bcf791a5c3f46191e544731420ff8b1312 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Thu, 19 May 2016 11:10:02 -0300 +Subject: [PATCH] process.c: fix rb_spawn_process() for nommu + +rb_spawn_process() in process.c tries different solutions for when fork +and/or spawnv are/aren't available. +The last resort when both aren't is to use the system() call which +stores the value in the status variable, which isn't declared. + +Signed-off-by: Gustavo Zacarias +--- +Patch status: reported https://bugs.ruby-lang.org/issues/12398 + + process.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/process.c b/process.c +index e196639..40967f7 100644 +--- a/process.c ++++ b/process.c +@@ -3897,6 +3897,9 @@ rb_spawn_process(struct rb_execarg *eargp, char *errmsg, size_t errmsg_buflen) + VALUE prog; + struct rb_execarg sarg; + #endif ++#if !defined HAVE_WORKING_FORK || !USE_SPAWNV ++ int status; ++#endif + + #if defined HAVE_WORKING_FORK && !USE_SPAWNV + pid = rb_fork_async_signal_safe(NULL, rb_exec_atfork, eargp, eargp->redirect_fds, errmsg, errmsg_buflen); +-- +2.7.3 + diff --git a/bsp/buildroot/package/ruby/ruby.hash b/bsp/buildroot/package/ruby/ruby.hash index 3499263e..7e627441 100644 --- a/bsp/buildroot/package/ruby/ruby.hash +++ b/bsp/buildroot/package/ruby/ruby.hash @@ -1,2 +1,2 @@ -# From https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/ -sha256 70125af0cfd7048e813a5eecab3676249582bfb65cfd57b868c3595f966e4097 ruby-2.3.0.tar.xz +# From https://www.ruby-lang.org/en/news/2016/04/26/ruby-2-3-1-released/ +sha256 6725b5534d5a3a21ec4f14d6d7b9921a0d00d08acb88fd04cd50b47b70496338 ruby-2.3.1.tar.xz diff --git a/bsp/buildroot/package/ruby/ruby.mk b/bsp/buildroot/package/ruby/ruby.mk index 19b33dee..3b8310c1 100644 --- a/bsp/buildroot/package/ruby/ruby.mk +++ b/bsp/buildroot/package/ruby/ruby.mk @@ -5,7 +5,7 @@ ################################################################################ RUBY_VERSION_MAJOR = 2.3 -RUBY_VERSION = $(RUBY_VERSION_MAJOR).0 +RUBY_VERSION = $(RUBY_VERSION_MAJOR).1 RUBY_VERSION_EXT = 2.3.0 RUBY_SITE = http://cache.ruby-lang.org/pub/ruby/$(RUBY_VERSION_MAJOR) RUBY_SOURCE = ruby-$(RUBY_VERSION).tar.xz diff --git a/bsp/buildroot/package/runc/Config.in b/bsp/buildroot/package/runc/Config.in new file mode 100644 index 00000000..fd5dee7c --- /dev/null +++ b/bsp/buildroot/package/runc/Config.in @@ -0,0 +1,15 @@ +config BR2_PACKAGE_RUNC + bool "runc" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + runC is a CLI tool for spawning and running containers + according to the OCP specification. + + https://github.com/opencontainers/runc + +comment "runc needs a toolchain w/ threads" + depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS && \ + BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/runc/runc.hash b/bsp/buildroot/package/runc/runc.hash new file mode 100644 index 00000000..c409a664 --- /dev/null +++ b/bsp/buildroot/package/runc/runc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 196b78c6caf1a4c6257314b393381baffa7c82bb2690ac02a7b3d6cd6cfe7776 runc-cc29e3dded8e27ba8f65738f40d251c885030a28.tar.gz diff --git a/bsp/buildroot/package/runc/runc.mk b/bsp/buildroot/package/runc/runc.mk new file mode 100644 index 00000000..e2ab5edf --- /dev/null +++ b/bsp/buildroot/package/runc/runc.mk @@ -0,0 +1,50 @@ +################################################################################ +# +# runc +# +################################################################################ + +RUNC_VERSION = cc29e3dded8e27ba8f65738f40d251c885030a28 +RUNC_SITE = $(call github,opencontainers,runc,$(RUNC_VERSION)) +RUNC_LICENSE = Apache-2.0 +RUNC_LICENSE_FILES = LICENSE + +RUNC_DEPENDENCIES = host-go + +RUNC_GOPATH = "$(@D)/Godeps/_workspace" +RUNC_MAKE_ENV = $(HOST_GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GOBIN="$(@D)/bin" \ + GOPATH="$(RUNC_GOPATH)" \ + PATH=$(BR_PATH) + +RUNC_GLDFLAGS = \ + -X main.gitCommit=$(RUNC_VERSION) + +ifeq ($(BR2_STATIC_LIBS),y) +FLANNEL_GLDFLAGS += -extldflags '-static' +endif + +RUNC_GOTAGS = cgo static_build + +ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) +RUNC_GOTAGS += seccomp +RUNC_DEPENDENCIES += libseccomp host-pkgconf +endif + +define RUNC_CONFIGURE_CMDS + mkdir -p $(RUNC_GOPATH)/src/github.com/opencontainers + ln -s $(@D) $(RUNC_GOPATH)/src/github.com/opencontainers/runc +endef + +define RUNC_BUILD_CMDS + cd $(@D) && $(RUNC_MAKE_ENV) $(HOST_DIR)/usr/bin/go \ + build -v -o $(@D)/bin/runc \ + -tags "$(RUNC_GOTAGS)" -ldflags "$(RUNC_GLDFLAGS)" . +endef + +define RUNC_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/bin/runc $(TARGET_DIR)/usr/bin/runc +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/sam-ba/sam-ba.hash b/bsp/buildroot/package/sam-ba/sam-ba.hash new file mode 100644 index 00000000..61feb32d --- /dev/null +++ b/bsp/buildroot/package/sam-ba/sam-ba.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 302734f53e471b5d1a292c9af937262f4fd766ec47ebfea62439761e7c1cd9d7 sam-ba_2.16_linux.zip diff --git a/bsp/buildroot/package/sam-ba/sam-ba.mk b/bsp/buildroot/package/sam-ba/sam-ba.mk index 2a3c2a1a..aede615a 100644 --- a/bsp/buildroot/package/sam-ba/sam-ba.mk +++ b/bsp/buildroot/package/sam-ba/sam-ba.mk @@ -5,8 +5,8 @@ ################################################################################ SAM_BA_SITE = http://www.atmel.com/dyn/resources/prod_documents -SAM_BA_VERSION = 2.15 -SAM_BA_SOURCE = sam-ba_$(SAM_BA_VERSION).zip +SAM_BA_VERSION = 2.16 +SAM_BA_SOURCE = sam-ba_$(SAM_BA_VERSION)_linux.zip SAM_BA_LICENSE = BSD-like (partly binary-only) SAM_BA_LICENSE_FILES = doc/readme.txt diff --git a/bsp/buildroot/package/samba/0001-fix-smbd-libs-avahi.patch b/bsp/buildroot/package/samba/0001-fix-smbd-libs-avahi.patch deleted file mode 100644 index 6624f57f..00000000 --- a/bsp/buildroot/package/samba/0001-fix-smbd-libs-avahi.patch +++ /dev/null @@ -1,17 +0,0 @@ -Expliticly link with -lpthread if smbd is compiled with -avahi support. Otherwise the binary will fail to run. - -Signed-off-by: Sven Neumann - -diff -Nura samba-3.6.16.orig/source3/Makefile.in samba-3.6.16/source3/Makefile.in ---- samba-3.6.16.orig/source3/Makefile.in 2013-06-21 08:12:39.995871935 -0300 -+++ samba-3.6.16/source3/Makefile.in 2013-06-21 08:13:17.778103805 -0300 -@@ -1783,7 +1783,7 @@ - $(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \ - $(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \ - $(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \ -- $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) -+ $(LIBWBCLIENT_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS) - - bin/nmbd@EXEEXT@: $(BINARY_PREREQS) $(NMBD_OBJ) @BUILD_POPT@ $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT) - @echo Linking $@ diff --git a/bsp/buildroot/package/samba/0002-getaddrinfo.patch b/bsp/buildroot/package/samba/0002-getaddrinfo.patch deleted file mode 100644 index df3570ca..00000000 --- a/bsp/buildroot/package/samba/0002-getaddrinfo.patch +++ /dev/null @@ -1,20 +0,0 @@ -Patch forward-ported from OpenWRT. -Don't check for buggy getaddrinfo() assume it's safe if it's present. - -Signed-off-by: Gustavo Zacarias - -diff -Nura samba-3.6.8.orig/source3/configure samba-3.6.8/source3/configure ---- samba-3.6.8.orig/source3/configure 2012-09-14 05:19:52.000000000 -0300 -+++ samba-3.6.8/source3/configure 2012-09-25 20:31:57.861743235 -0300 -@@ -13269,10 +13269,7 @@ - # see bug 5910, use our replacements if we detect - # a broken system. - if test "$cross_compiling" = yes; then : -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling --See \`config.log' for more details" "$LINENO" 5; } -+ $as_echo "assuming valid getaddrinfo without bug 5910" >&2 - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ diff --git a/bsp/buildroot/package/samba/Config.in b/bsp/buildroot/package/samba/Config.in deleted file mode 100644 index 7ff84281..00000000 --- a/bsp/buildroot/package/samba/Config.in +++ /dev/null @@ -1,292 +0,0 @@ -config BR2_PACKAGE_SAMBA - bool "samba" - depends on BR2_DEPRECATED_SINCE_2015_05 - depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_USE_MMU # fork() - depends on !BR2_nios2 # binary too large, relocations don't fit - select BR2_PACKAGE_POPT - help - Provides secure, stable and fast file and print services - for all clients using the SMB/CIFS protocol, such as all - versions of DOS, Windows, OS/2, Linux and many others. - - http://www.samba.org/ - - NOTE: A complete Samba install takes over 50MB of space, - so choose only the components you need. - -comment "samba needs a toolchain w/ threads" - depends on BR2_DEPRECATED_SINCE_2015_05 - depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS - -if BR2_PACKAGE_SAMBA - -config BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL - int "Maximum level of compiled-in debug messages" - range -1 10000 - default -1 - help - Define the level of compiled-in debug messages. - This allows for big space savings, -1 being the lowest (none). - -config BR2_PACKAGE_SAMBA_LIBICONV - bool "extended encodings (libiconv)" - depends on !BR2_ENABLE_LOCALE - select BR2_PACKAGE_LIBICONV - help - Include libiconv support for extended conversion of filename - enconding. Samba has built-in support for UTF-8, ISO-8859-1 - and ASCII, so this is only required if you want to support - other encodings. - -menu "Samba tools selection" - -config BR2_PACKAGE_SAMBA_EVENTLOGADM - bool "eventlogadm" - default y - help - Write Eventlog records to a tdb or perform other eventlog functions - -config BR2_PACKAGE_SAMBA_FINDSMB - bool "findsmb" - default y - depends on BR2_PACKAGE_SAMBA_SMBCLIENT - depends on BR2_PACKAGE_SAMBA_NMBLOOKUP - depends on BR2_PACKAGE_PERL - help - Script to browse network - -comment "findsmb - disabled (requires nmblookup, smbclient and perl)" - depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_PERL - -config BR2_PACKAGE_SAMBA_NET - bool "net" - default y - help - Distributed SMB/CIFS Server Management Utility - -config BR2_PACKAGE_SAMBA_NMBD - bool "nmbd" - default y - help - NetBIOS name server to provide NetBIOS over IP naming services - to clients - -config BR2_PACKAGE_SAMBA_NMBLOOKUP - bool "nmblookup" - default y - help - Query NetBIOS names and map them to IP addresses in a network - using NetBIOS over TCP/IP queries - -config BR2_PACKAGE_SAMBA_NTLM_AUTH - bool "ntlm_auth" - default y - help - Helper utility that authenticates users using NT/LM authentication - -config BR2_PACKAGE_SAMBA_PDBEDIT - bool "pdbedit" - default y - help - Manage the SAM database (Database of Samba Users) - -config BR2_PACKAGE_SAMBA_PROFILES - bool "profiles" - default y - help - Utility that reports and changes SIDs in Windows NT registry files - -config BR2_PACKAGE_SAMBA_RPCCLIENT - bool "rpcclient" - select BR2_PACKAGE_READLINE - default y - help - Tool for executing client side MS-RPC functions using RPC - calls from a UNIX workstation. - -config BR2_PACKAGE_SAMBA_SMBCACLS - bool "smbcacls" - default y - help - Set or get ACLs on an NT file or directory names - -config BR2_PACKAGE_SAMBA_SMBCLIENT - bool "smbclient" - select BR2_PACKAGE_READLINE - default y - help - ftp-like client to access SMB/CIFS resources on servers - -config BR2_PACKAGE_SAMBA_SMBCONTROL - bool "smbcontrol" - default y - help - Send messages to smbd, nmbd or winbindd processes - -config BR2_PACKAGE_SAMBA_SMBCQUOTAS - bool "smbcquotas" - default y - help - Set or get QUOTAs of NTFS 5 shares - -config BR2_PACKAGE_SAMBA_SMBD - bool "smbd" - default y - help - The server daemon that provides filesharing and printing services - -config BR2_PACKAGE_SAMBA_SMBGET - bool "smbget" - default y - help - wget-like utility for download files over SMB - -config BR2_PACKAGE_SAMBA_SMBLDBTOOLS - bool "smbldbtools" - default y - help - ldbadd ldbdel ldbedit ldbmodify ldbrename ldbsearch tools - -config BR2_PACKAGE_SAMBA_SMBPASSWD - bool "smbpasswd" - default y - help - Change a user's SMB passwd - -config BR2_PACKAGE_SAMBA_SMBSHARESEC - bool "smbsharesec" - default y - help - Manipulate share permissions on SMB file shares - -config BR2_PACKAGE_SAMBA_SMBSPOOL - bool "smbspool" - default y - help - Send a print file to an SMB printer - -config BR2_PACKAGE_SAMBA_SMBSTATUS - bool "smbstatus" - default y - help - Report on current Samba connections - -config BR2_PACKAGE_SAMBA_SMBTREE - bool "smbtree" - default y - help - A text based smb network browser - -config BR2_PACKAGE_SAMBA_SWAT - bool "swat" - default y - help - Samba Web Administration Tool - -config BR2_PACKAGE_SAMBA_SMBTA_UTIL - bool "smbta-util" - default y - help - Tool to ease the configuration of the vfs_smb_traffic_analyzer - module regarding data encryption. - -config BR2_PACKAGE_SAMBA_SMBTAR - bool "smbtar" - default y - depends on BR2_PACKAGE_SAMBA_SMBCLIENT - help - tar-like script that wraps smbclient - -comment "smbtar - disabled (requires smbclient)" - depends on !BR2_PACKAGE_SAMBA_SMBCLIENT - -config BR2_PACKAGE_SAMBA_TDB - bool "tdb" - default y - help - Tools to operate on the .tdb database files - -config BR2_PACKAGE_SAMBA_TESTPARM - bool "testparm" - default y - help - Check an smb.conf configuration file for internal correctness - -config BR2_PACKAGE_SAMBA_WINBINDD - bool "winbindd" - default y - help - Name Service Switch daemon for resolving names from NT servers - -config BR2_PACKAGE_SAMBA_WBINFO - bool "wbinfo" - default y - depends on BR2_PACKAGE_SAMBA_WINBINDD - help - Query information from winbind daemon - -endmenu - - -menu "Samba libraries selection" - -config BR2_PACKAGE_SAMBA_LIBSMBCLIENT - bool "libsmbclient" - help - libsmbclient is a library toolset that permits applications - to manipulate CIFS/SMB network resources using many of the - standards POSIX functions available for manipulating local - files. - -config BR2_PACKAGE_SAMBA_LIBNSS_WINS - bool "libnss_wins" - default y - depends on BR2_TOOLCHAIN_USES_GLIBC - depends on BR2_PACKAGE_SAMBA_WINBINDD - help - libnss_wins is a library that permits the Name Service Switch - to resolve NetBIOS names. - -config BR2_PACKAGE_SAMBA_LIBNSS_WINBIND - bool "libnss_winbind" - default y - depends on BR2_TOOLCHAIN_USES_GLIBC - depends on BR2_PACKAGE_SAMBA_WINBINDD - help - libnss_winbind is a library that permits the Name Service - Switch to resolve user and group information from a Windows - NT server. - -endmenu - - -menu "Samba support selection" - -config BR2_PACKAGE_SAMBA_AVAHI - bool "support avahi" - default y - depends on BR2_PACKAGE_AVAHI_DAEMON - depends on BR2_USE_MMU # dbus - select BR2_PACKAGE_DBUS - help - Include support for avahi - -comment "support avahi - disabled (requires avahi-daemon)" - depends on BR2_USE_MMU - depends on !BR2_PACKAGE_AVAHI_DAEMON - -config BR2_PACKAGE_SAMBA_GAMIN - bool "support gamin" - default y - depends on BR2_PACKAGE_GAMIN - help - Include support for gamin - -comment "support gamin - disabled (requires gamin)" - depends on !BR2_PACKAGE_GAMIN - -endmenu - -endif diff --git a/bsp/buildroot/package/samba/S91smb b/bsp/buildroot/package/samba/S91smb deleted file mode 100755 index 64fa689a..00000000 --- a/bsp/buildroot/package/samba/S91smb +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -# -# Stolen from RedHat FC5. -# - -# Check that smb.conf exists. -[ -f /etc/samba/smb.conf ] || exit 0 - -# Make directories. -mkdir -p /var/cache/samba -mkdir -p /var/log/samba -mkdir -p /var/lock/subsys -mkdir -p /var/run/samba - -RETVAL=0 - -start() { - printf "Starting SMB services: " - smbd -D - RETVAL=$? - echo "done" - - printf "Starting NMB services: " - nmbd -D - RETVAL2=$? - echo "done" - - [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \ - RETVAL=1 - return $RETVAL -} - -stop() { - printf "Shutting down SMB services: " - kill -9 `pidof smbd` - RETVAL=$? - rm -f /var/run/samba/smbd.pid - echo "done" - - printf "Shutting down NMB services: " - kill -9 `pidof nmbd` - RETVAL2=$? - rm -f /var/run/samba/nmbd.pid - - [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb - echo "done" - return $RETVAL -} - -restart() { - stop - start -} - -reload() { - printf "Reloading smb.conf file: " - kill -HUP `pidof smbd` - RETVAL=$? - echo "done" - return $RETVAL -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - restart - ;; - reload) - reload - ;; - *) - echo "Usage: $0 {start|stop|restart|reload}" - exit 1 -esac - -exit $? diff --git a/bsp/buildroot/package/samba/samba.hash b/bsp/buildroot/package/samba/samba.hash deleted file mode 100644 index 3a8581a3..00000000 --- a/bsp/buildroot/package/samba/samba.hash +++ /dev/null @@ -1,2 +0,0 @@ -# Locally calculated after checking pgp signature -sha256 8f2c8a7f2bd89b0dfd228ed917815852f7c625b2bc0936304ac3ed63aaf83751 samba-3.6.25.tar.gz diff --git a/bsp/buildroot/package/samba/samba.mk b/bsp/buildroot/package/samba/samba.mk deleted file mode 100644 index 68da9d95..00000000 --- a/bsp/buildroot/package/samba/samba.mk +++ /dev/null @@ -1,189 +0,0 @@ -################################################################################ -# -# samba -# -################################################################################ - -SAMBA_VERSION = 3.6.25 -SAMBA_SITE = http://ftp.samba.org/pub/samba/stable -SAMBA_SUBDIR = source3 -SAMBA_INSTALL_STAGING = YES -SAMBA_LICENSE = GPLv3+ -SAMBA_LICENSE_FILES = COPYING - -SAMBA_DEPENDENCIES = popt \ - $(if $(BR2_PACKAGE_SAMBA_RPCCLIENT),readline) \ - $(if $(BR2_PACKAGE_SAMBA_SMBCLIENT),readline) \ - $(if $(BR2_PACKAGE_SAMBA_AVAHI),avahi) \ - $(if $(BR2_PACKAGE_SAMBA_GAMIN),gamin) - -SAMBA_CONF_ENV = \ - ac_cv_file__proc_sys_kernel_core_pattern=yes \ - libreplace_cv_HAVE_GETTIMEOFDAY_TZ=yes \ - samba_cv_USE_SETREUID=yes \ - samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes \ - libreplace_cv_HAVE_IFACE_GETIFADDRS=yes \ - libreplace_cv_HAVE_IFACE_IFCONF=yes \ - libreplace_cv_HAVE_MMAP=yes \ - samba_cv_HAVE_FCNTL_LOCK=yes \ - libreplace_cv_HAVE_SECURE_MKSTEMP=yes \ - samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \ - samba_cv_fpie=no \ - libreplace_cv_HAVE_IPV6=yes \ - $(if $(BR2_PACKAGE_SAMBA_AVAHI),AVAHI_LIBS=-pthread) - -SAMBA_CONF_OPTS = \ - --with-fhs \ - --with-piddir=/var/run/samba \ - --with-lockdir=/var/cache/samba \ - --with-ncalrpcdir=/var/run/ncalrpc \ - --with-nmbdsocketdir=/var/run/nmbd \ - \ - --disable-cups \ - --enable-shared-libs \ - --disable-pie \ - --disable-relro \ - --disable-dnssd \ - \ - $(if $(BR2_PACKAGE_SAMBA_AVAHI),--enable-avahi,--disable-avahi) \ - $(if $(BR2_PACKAGE_SAMBA_GAMIN),--enable-fam,--disable-fam) \ - $(if $(BR2_PACKAGE_SAMBA_SWAT),--enable-swat,--disable-swat) \ - \ - --without-cluster-support \ - --without-dnsupdate \ - --with-sys-quotas \ - --without-ads \ - --without-ldap \ - --with-included-iniparser \ - \ - $(if $(BR2_PACKAGE_SAMBA_RPCCLIENT),--with-readline=$(STAGING_DIR)) \ - $(if $(BR2_PACKAGE_SAMBA_SMBCLIENT),--with-readline=$(STAGING_DIR)) \ - $(if $(BR2_PACKAGE_SAMBA_WINBINDD),--with-winbind,--without-winbind) - -SAMBA_INSTALL_TARGET_OPTS = \ - DESTDIR=$(TARGET_DIR) -C $(SAMBA_DIR)/$(SAMBA_SUBDIR) \ - installlibs installservers installbin installscripts \ - $(if $(BR2_PACKAGE_SAMBA_SWAT),installswat) - -# binaries to keep -SAMBA_BINTARGETS_y = \ - usr/sbin/smbd \ - usr/lib/libtalloc.so \ - usr/lib/libtdb.so - -# binaries to remove -SAMBA_BINTARGETS_ = \ - usr/lib/libnetapi.so* \ - usr/lib/libsmbsharemodes.so* - -# binaries to keep or remove -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_EVENTLOGADM) += usr/bin/eventlogadm -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NET) += usr/bin/net -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NMBD) += usr/sbin/nmbd -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NMBLOOKUP) += usr/bin/nmblookup -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NTLM_AUTH) += usr/bin/ntlm_auth -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_PDBEDIT) += usr/bin/pdbedit -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_PROFILES) += usr/bin/profiles -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_RPCCLIENT) += usr/bin/rpcclient -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCACLS) += usr/bin/smbcacls -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCLIENT) += usr/bin/smbclient -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCONTROL) += usr/bin/smbcontrol -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCQUOTAS) += usr/bin/smbcquotas -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBD) += usr/sbin/smbd -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBGET) += usr/bin/smbget -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbadd -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbdel -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbedit -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbmodify -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbrename -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbsearch -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBPASSWD) += usr/bin/smbpasswd -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBSHARESEC) += usr/bin/sharesec -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBSPOOL) += usr/bin/smbspool -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBSTATUS) += usr/bin/smbstatus -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBTA_UTIL) += usr/bin/smbta-util -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBTREE) += usr/bin/smbtree -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SWAT) += usr/sbin/swat -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbbackup -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbdump -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbtool -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TESTPARM) += usr/bin/testparm -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WINBINDD) += usr/sbin/winbindd -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WBINFO) += usr/bin/wbinfo - -# libraries to keep or remove -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WINBINDD) += usr/lib/libwbclient.so* -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_LIBSMBCLIENT) += usr/lib/libsmbclient.so* - -# non-binaries to remove -SAMBA_TXTTARGETS_ = \ - usr/include/libsmbclient.h \ - usr/include/netapi.h \ - usr/include/smb_share_modes.h \ - usr/include/talloc.h \ - usr/include/tdb.h \ - usr/include/wbclient.h - -# non-binaries to keep or remove -SAMBA_TXTTARGETS_$(BR2_PACKAGE_SAMBA_FINDSMB) += usr/bin/findsmb -SAMBA_TXTTARGETS_$(BR2_PACKAGE_SAMBA_SMBTAR) += usr/bin/smbtar - -define SAMBA_REMOVE_UNNEEDED_BINARIES - rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_BINTARGETS_)) - rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_TXTTARGETS_)) -endef - -SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_UNNEEDED_BINARIES - -ifeq ($(BR2_PACKAGE_SAMBA_LIBNSS_WINS),y) -define SAMBA_INSTALL_LIBNSS_WINS - $(INSTALL) -m 0755 -D $(@D)/nsswitch/libnss_wins.so $(TARGET_DIR)/lib/libnss_wins.so.2 - ln -snf libnss_wins.so.2 $(TARGET_DIR)/lib/libnss_wins.so -endef -SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_LIBNSS_WINS -endif - -ifeq ($(BR2_PACKAGE_SAMBA_LIBNSS_WINBIND),y) -define SAMBA_INSTALL_LIBNSS_WINBIND - $(INSTALL) -m 0755 -D $(@D)/nsswitch/libnss_winbind.so $(TARGET_DIR)/lib/libnss_winbind.so.2 - ln -snf libnss_winbind.so.2 $(TARGET_DIR)/lib/libnss_winbind.so -endef -SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_LIBNSS_WINBIND -endif - -define SAMBA_REMOVE_SWAT_DOCUMENTATION - # Remove the documentation - rm -rf $(TARGET_DIR)/usr/swat/help/manpages - rm -rf $(TARGET_DIR)/usr/swat/help/Samba3* - rm -rf $(TARGET_DIR)/usr/swat/using_samba/ - # Removing the welcome.html file will make swat default to - # welcome-no-samba-doc.html - rm -rf $(TARGET_DIR)/usr/swat/help/welcome.html -endef - -# --with-libiconv="" is to avoid detecting host libiconv and build failure -ifeq ($(BR2_PACKAGE_SAMBA_LIBICONV),y) -SAMBA_DEPENDENCIES += libiconv -SAMBA_CONF_OPTS += --with-libiconv=$(STAGING_DIR) -else -SAMBA_CONF_OPTS += --with-libiconv="" -endif - -# Compiled debug messages by level -SAMBA_CONF_OPTS += CFLAGS="$(TARGET_CFLAGS) -DMAX_DEBUG_LEVEL=$(BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL)" - -ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y) -SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_SWAT_DOCUMENTATION -endif - -define SAMBA_INSTALL_CONFIG - $(INSTALL) -m 0644 -D package/samba/simple.conf $(TARGET_DIR)/etc/samba/smb.conf -endef - -SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_CONFIG - -define SAMBA_INSTALL_INIT_SYSV - $(INSTALL) -m 0755 -D package/samba/S91smb $(TARGET_DIR)/etc/init.d/S91smb -endef - -$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/samba/simple.conf b/bsp/buildroot/package/samba/simple.conf deleted file mode 100644 index c2c0c8c9..00000000 --- a/bsp/buildroot/package/samba/simple.conf +++ /dev/null @@ -1,25 +0,0 @@ -#======================= Global Settings ===================================== -[global] -workgroup = MYGROUP -server string = MYDATA -max log size = 50 -security = share -encrypt passwords = yes -smb passwd file = /etc/samba/smbpasswd -log file = /var/log/samba/log.smbd -hosts allow = 127. -interfaces = eth0 192.168.0.1/255.255.255.0 -socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 - -#============================ Share Definitions ============================== -idmap uid = 16777216-33554431 -idmap gid = 16777216-33554431 -template shell = /bin/false -winbind use default domain = no - -[data] -path = /data -public = yes -only guest = yes -writable = yes -printable = no diff --git a/bsp/buildroot/package/samba4/0002-build-improve-stack-protector-check.patch b/bsp/buildroot/package/samba4/0002-build-improve-stack-protector-check.patch deleted file mode 100644 index 51ffc045..00000000 --- a/bsp/buildroot/package/samba4/0002-build-improve-stack-protector-check.patch +++ /dev/null @@ -1,56 +0,0 @@ -From e4ef92852023f4e2f192d3c47220dc75930a615c Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias -Date: Fri, 11 Sep 2015 16:41:31 -0300 -Subject: [PATCH] build: improve stack protector check - -Testing a toolchain for proper -fstack-protector must go beyond ensuring -the compiler and linker accept the option. -If the test C program does nothing with the stack then guards aren't -inserted and/or are optimized away giving the false impression that it -works when in fact the libc might not support it. - -Update the check to a program that uses the stack, hence making a link -fail if proper support isn't available, for example in non-ssp enabled -uclibc toolchains like this: - -test.c:(.text.startup+0x64): undefined reference to `__stack_chk_fail' - -Signed-off-by: Gustavo Zacarias ---- - buildtools/wafsamba/samba_autoconf.py | 20 +++++++++++++++++--- - 1 file changed, 17 insertions(+), 3 deletions(-) - -diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py -index c5f132c..ef34b00 100644 ---- a/buildtools/wafsamba/samba_autoconf.py -+++ b/buildtools/wafsamba/samba_autoconf.py -@@ -657,9 +657,23 @@ def SAMBA_CONFIG_H(conf, path=None): - if not IN_LAUNCH_DIR(conf): - return - -- if conf.CHECK_CFLAGS(['-fstack-protector']) and conf.CHECK_LDFLAGS(['-fstack-protector']): -- conf.ADD_CFLAGS('-fstack-protector') -- conf.ADD_LDFLAGS('-fstack-protector') -+ # we need to build real code that can't be optimized away to test -+ if conf.check(fragment=''' -+ #include -+ -+ int main(void) -+ { -+ char t[100000]; -+ while (fgets(t, sizeof(t), stdin)); -+ return 0; -+ } -+ ''', -+ execute=0, -+ ccflags='-fstack-protector', -+ ldflags='-fstack-protector', -+ msg='Checking if toolchain accepts -fstack-protector'): -+ conf.ADD_CFLAGS('-fstack-protector') -+ conf.ADD_LDFLAGS('-fstack-protector') - - if Options.options.debug: - conf.ADD_CFLAGS('-g', testflags=True) --- -2.4.6 - diff --git a/bsp/buildroot/package/samba4/Config.in b/bsp/buildroot/package/samba4/Config.in index 25037852..5ae2c366 100644 --- a/bsp/buildroot/package/samba4/Config.in +++ b/bsp/buildroot/package/samba4/Config.in @@ -6,7 +6,6 @@ comment "samba4 needs a toolchain w/ RPC, wchar, dynamic library, threads" config BR2_PACKAGE_SAMBA4 bool "samba4" - depends on !BR2_PACKAGE_SAMBA depends on BR2_USE_MMU # fork() depends on BR2_USE_WCHAR # e2fsprogs depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC diff --git a/bsp/buildroot/package/samba4/samba4.hash b/bsp/buildroot/package/samba4/samba4.hash index f42e37a4..5d2ac09f 100644 --- a/bsp/buildroot/package/samba4/samba4.hash +++ b/bsp/buildroot/package/samba4/samba4.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 5d0eb52e842832af922f7d57716eacff23192906ec3bdf6727e18ca24f1419d9 samba-4.3.4.tar.gz +# Locally calculated +sha256 b876ef2e63f66265490e80a122e66ef2d7616112b839df68f56ac2e1ce17a7bd samba-4.4.5.tar.gz diff --git a/bsp/buildroot/package/samba4/samba4.mk b/bsp/buildroot/package/samba4/samba4.mk index 118a4aed..facaca62 100644 --- a/bsp/buildroot/package/samba4/samba4.mk +++ b/bsp/buildroot/package/samba4/samba4.mk @@ -4,13 +4,16 @@ # ################################################################################ -SAMBA4_VERSION = 4.3.4 +SAMBA4_VERSION = 4.4.5 SAMBA4_SITE = http://ftp.samba.org/pub/samba/stable SAMBA4_SOURCE = samba-$(SAMBA4_VERSION).tar.gz SAMBA4_INSTALL_STAGING = YES SAMBA4_LICENSE = GPLv3+ SAMBA4_LICENSE_FILES = COPYING -SAMBA4_DEPENDENCIES = host-e2fsprogs host-heimdal e2fsprogs popt python zlib \ +SAMBA4_DEPENDENCIES = \ + host-e2fsprogs host-heimdal host-python \ + e2fsprogs popt python zlib \ + $(if $(BR2_PACKAGE_LIBAIO),libaio) \ $(if $(BR2_PACKAGE_LIBBSD),libbsd) \ $(if $(BR2_PACKAGE_LIBCAP),libcap) \ $(if $(BR2_PACKAGE_READLINE),readline) @@ -30,13 +33,6 @@ else SAMBA4_CONF_OPTS += --disable-cups endif -ifeq ($(BR2_PACKAGE_LIBAIO),y) -SAMBA4_CONF_OPTS += --with-aio-support -SAMBA4_DEPENDENCIES += libaio -else -SAMBA4_CONF_OPTS += --without-aio-support -endif - ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_AVAHI_DAEMON),yy) SAMBA4_CONF_OPTS += --enable-avahi SAMBA4_DEPENDENCIES += avahi @@ -52,7 +48,6 @@ SAMBA4_CONF_OPTS += --without-fam endif ifeq ($(BR2_PACKAGE_GETTEXT),y) -SAMBA4_CONF_OPTS += --with-gettext=$(STAGING_DIR)/usr SAMBA4_DEPENDENCIES += gettext else SAMBA4_CONF_OPTS += --without-gettext @@ -123,16 +118,6 @@ define SAMBA4_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install endef -# Samba just installs .py files so the purge causes problems with some tools -ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y) -define SAMBA4_BUILD_PYC_FILES - PYTHONPATH="$(PYTHON_PATH)" \ - $(HOST_DIR)/usr/bin/python -c "import compileall; \ - compileall.compile_dir('$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/samba')" -endef -SAMBA4_POST_INSTALL_TARGET_HOOKS += SAMBA4_BUILD_PYC_FILES -endif - ifeq ($(BR2_PACKAGE_SAMBA4_AD_DC),) SAMBA4_CONF_OPTS += --without-ad-dc endif @@ -170,6 +155,9 @@ define SAMBA4_INSTALL_INIT_SYSTEMD $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/smb.service ln -sf ../../../../usr/lib/systemd/system/winbind.service \ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/winbind.service + $(INSTALL) -D -m 644 $(@D)/packaging/systemd/samba.conf.tmp \ + $(TARGET_DIR)/usr/lib/tmpfiles.d/samba.conf + printf "d /var/log/samba 755 root root\n" >>$(TARGET_DIR)/usr/lib/tmpfiles.d/samba.conf endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/sane-backends/0002-Add-missing-sys-types.h-includes.patch b/bsp/buildroot/package/sane-backends/0002-Add-missing-sys-types.h-includes.patch new file mode 100644 index 00000000..8ab41f1f --- /dev/null +++ b/bsp/buildroot/package/sane-backends/0002-Add-missing-sys-types.h-includes.patch @@ -0,0 +1,106 @@ +From d33f16f463e888846d69ddfbeeb963d40972b654 Mon Sep 17 00:00:00 2001 +From: Luiz Angelo Daros de Luca +Date: Thu, 15 Oct 2015 12:35:00 +0900 +Subject: [PATCH] Add missing includes + +[Thomas: backport from upstream commit +33495ef9b42a783c8f5f2c056ac5699481d3cc7e, allows to fix the build with +the musl C library.] +Signed-off-by: Thomas Petazzoni +--- + backend/epsonds-io.c | 3 +++ + backend/hp5400.c | 3 +++ + backend/hp5590.c | 3 +++ + backend/kvs20xx_cmd.h | 4 ++++ + backend/kvs40xx.h | 3 +++ + include/sane/sanei_udp.h | 3 +++ + 6 files changed, 19 insertions(+) + +diff --git a/backend/epsonds-io.c b/backend/epsonds-io.c +index 28bacfc..512997d 100644 +--- a/backend/epsonds-io.c ++++ b/backend/epsonds-io.c +@@ -16,6 +16,9 @@ + #include "sane/config.h" + #include + #include /* sleep */ ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif + + #include "epsonds.h" + #include "epsonds-io.h" +diff --git a/backend/hp5400.c b/backend/hp5400.c +index 61de3db..cfa2dc9 100644 +--- a/backend/hp5400.c ++++ b/backend/hp5400.c +@@ -67,6 +67,9 @@ + #include /* malloc, free */ + #include /* memcpy */ + #include ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif + + + #define HP5400_CONFIG_FILE "hp5400.conf" +diff --git a/backend/hp5590.c b/backend/hp5590.c +index 7b1cd60..5422372 100644 +--- a/backend/hp5590.c ++++ b/backend/hp5590.c +@@ -48,6 +48,9 @@ + #include + #include + #include ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif + + #include "../include/sane/sane.h" + #define BACKEND_NAME hp5590 +diff --git a/backend/kvs20xx_cmd.h b/backend/kvs20xx_cmd.h +index c18b754..4acaf62 100644 +--- a/backend/kvs20xx_cmd.h ++++ b/backend/kvs20xx_cmd.h +@@ -9,6 +9,10 @@ + Panasonic KV-S20xx USB-SCSI scanners. + */ + ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ + #define COMMAND_BLOCK 1 + #define DATA_BLOCK 2 + #define RESPONSE_BLOCK 3 +diff --git a/backend/kvs40xx.h b/backend/kvs40xx.h +index fa17163..02e0da6 100644 +--- a/backend/kvs40xx.h ++++ b/backend/kvs40xx.h +@@ -10,6 +10,9 @@ + + #include "../include/sane/config.h" + #include ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif + + #undef BACKEND_NAME + #define BACKEND_NAME kvs40xx +diff --git a/include/sane/sanei_udp.h b/include/sane/sanei_udp.h +index c44afdd..e32fc1a 100644 +--- a/include/sane/sanei_udp.h ++++ b/include/sane/sanei_udp.h +@@ -27,6 +27,9 @@ + #include + #include + #endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif + + extern SANE_Status sanei_udp_open(const char *host, int port, int *fdp); + extern SANE_Status sanei_udp_open_broadcast(int *fdp); +-- +2.7.4 + diff --git a/bsp/buildroot/package/sawman/sawman.hash b/bsp/buildroot/package/sawman/sawman.hash deleted file mode 100644 index 6fd2ecd9..00000000 --- a/bsp/buildroot/package/sawman/sawman.hash +++ /dev/null @@ -1,2 +0,0 @@ -# Locally calculated -sha256 2cfb0a5d5114e6d0eb777b881ede2614d047786b90c505897c9e5d45288e0d4c SaWMan-1.6.3.tar.gz diff --git a/bsp/buildroot/package/sconeserver/Config.in b/bsp/buildroot/package/sconeserver/Config.in index 4083aa7d..f03af8dd 100644 --- a/bsp/buildroot/package/sconeserver/Config.in +++ b/bsp/buildroot/package/sconeserver/Config.in @@ -2,6 +2,7 @@ menuconfig BR2_PACKAGE_SCONESERVER bool "sconeserver" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_PCRE help Sconeserver is a modular, object-orientated and extremely versatile @@ -102,5 +103,6 @@ comment "ui module requires X.org" endif # BR2_PACKAGE_SCONESERVER -comment "sconeserver needs a toolchain w/ C++, NPTL" - depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS_NPTL) +comment "sconeserver needs a toolchain with dynamic library, C++, NPTL" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ + || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/sconeserver/sconeserver.hash b/bsp/buildroot/package/sconeserver/sconeserver.hash index 2e1fe842..978b442f 100644 --- a/bsp/buildroot/package/sconeserver/sconeserver.hash +++ b/bsp/buildroot/package/sconeserver/sconeserver.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 442c29ae93f615b610983187023ba6c1a9ca69526cb07f69576efba1d29d9daf sconeserver-c4b8e14f6e9e06cbff5b4195f69d6fce9391a1cd.tar.gz +sha256 38e72b962eb42bea8f0deb6f101833f8f2f2fa8c53f0dc03f3eb5d56873517c8 sconeserver-d659468cd164e6a6cc12932cc6780566b04f8328.tar.gz diff --git a/bsp/buildroot/package/sconeserver/sconeserver.mk b/bsp/buildroot/package/sconeserver/sconeserver.mk index 592de22d..793ca6fb 100644 --- a/bsp/buildroot/package/sconeserver/sconeserver.mk +++ b/bsp/buildroot/package/sconeserver/sconeserver.mk @@ -4,13 +4,13 @@ # ################################################################################ -SCONESERVER_VERSION = c4b8e14f6e9e06cbff5b4195f69d6fce9391a1cd +SCONESERVER_VERSION = d659468cd164e6a6cc12932cc6780566b04f8328 SCONESERVER_SITE = $(call github,sconemad,sconeserver,$(SCONESERVER_VERSION)) SCONESERVER_LICENSE = GPLv2+ SCONESERVER_LICENSE_FILES = COPYING # fetching from Git, we need to generate the configure script SCONESERVER_AUTORECONF = YES -SCONESERVER_DEPENDENCIES += pcre +SCONESERVER_DEPENDENCIES = host-pkgconf pcre # disable markdown module because its git submodule cmark # https://github.com/sconemad/sconeserver/tree/master/markdown # has no cross-compile support provided by the sconeserver build system @@ -46,7 +46,7 @@ SCONESERVER_CONF_OPTS += --without-sconesite endif ifeq ($(BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE),y) -SCONESERVER_DEPENDENCIES += imagemagick host-pkgconf +SCONESERVER_DEPENDENCIES += imagemagick SCONESERVER_CONF_OPTS += \ --with-sconesite-image \ --with-Magick++-config="$(STAGING_DIR)/usr/bin/Magick++-config" @@ -79,7 +79,7 @@ SCONESERVER_CONF_OPTS += --without-rss endif ifeq ($(BR2_PACKAGE_SCONESERVER_LOCATION),y) -SCONESERVER_DEPENDENCIES += host-pkgconf gpsd +SCONESERVER_DEPENDENCIES += gpsd SCONESERVER_CONF_OPTS += --with-location else SCONESERVER_CONF_OPTS += --without-location diff --git a/bsp/buildroot/package/screen/0001-compiler-sanity-checks.patch b/bsp/buildroot/package/screen/0001-compiler-sanity-checks.patch index 19d13c6f..fe6c3fdb 100644 --- a/bsp/buildroot/package/screen/0001-compiler-sanity-checks.patch +++ b/bsp/buildroot/package/screen/0001-compiler-sanity-checks.patch @@ -6,15 +6,17 @@ AC_PROG_CC already performs sanity checks. And unlike the removed checks, it does so in a way that supports cross compilation. Signed-off-by: Maarten ter Huurne +[Ricardo: rebase on top of 4.3.1] +Signed-off-by: Ricardo Martincoski --- - configure.in | 27 --------------------------- + configure.ac | 27 --------------------------- 1 file changed, 27 deletions(-) -diff --git a/configure.in b/configure.in -index 87fd43b..572c2a3 100644 ---- a/configure.in -+++ b/configure.in -@@ -47,31 +47,6 @@ AC_PROG_GCC_TRADITIONAL +diff --git a/configure.ac b/configure.ac +index ffe2e37..27690a6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -48,31 +48,6 @@ AC_PROG_GCC_TRADITIONAL AC_ISC_POSIX AC_USE_SYSTEM_EXTENSIONS @@ -46,7 +48,7 @@ index 87fd43b..572c2a3 100644 AC_PROG_AWK AC_PROG_INSTALL -@@ -1299,8 +1274,6 @@ fi +@@ -1300,8 +1275,6 @@ fi dnl Ptx bug workaround -- insert -lc after -ltermcap test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq" diff --git a/bsp/buildroot/package/screen/0002-no-memcpy-fallback.patch b/bsp/buildroot/package/screen/0002-no-memcpy-fallback.patch index 0f5a099f..f3a6a70d 100644 --- a/bsp/buildroot/package/screen/0002-no-memcpy-fallback.patch +++ b/bsp/buildroot/package/screen/0002-no-memcpy-fallback.patch @@ -12,9 +12,11 @@ for the case that bcopy and memmove are unusable, removing the memcpy option should not break any systems. Signed-off-by: Maarten ter Huurne +[Ricardo: rebase on top of 4.3.1] +Signed-off-by: Ricardo Martincoski --- acconfig.h | 3 +-- - configure.in | 18 +----------------- + configure.ac | 18 +----------------- os.h | 8 ++------ osdef.h.in | 10 +--------- 4 files changed, 5 insertions(+), 34 deletions(-) @@ -40,11 +42,11 @@ index 2e46985..9b0b9d4 100644 #undef USEMEMMOVE /* -diff --git a/configure.in b/configure.in -index 572c2a3..ff9606d 100644 ---- a/configure.in -+++ b/configure.in -@@ -1144,7 +1144,7 @@ AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT)) +diff --git a/configure.ac b/configure.ac +index 27690a6..b8e3bec 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1145,7 +1145,7 @@ AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT)) AC_CHECKING(fdwalk) AC_TRY_LINK([#include ], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK)) @@ -53,7 +55,7 @@ index 572c2a3..ff9606d 100644 AC_TRY_RUN([ main() { char buf[10]; -@@ -1174,22 +1174,6 @@ main() { +@@ -1175,22 +1175,6 @@ main() { exit(0); /* libc version works properly. */ }], AC_DEFINE(USEMEMMOVE)) @@ -77,7 +79,7 @@ index 572c2a3..ff9606d 100644 AC_MSG_CHECKING(for vsprintf) diff --git a/os.h b/os.h -index 55de249..6838ec0 100644 +index e827ac9..0b41fb9 100644 --- a/os.h +++ b/os.h @@ -142,12 +142,8 @@ extern int errno; diff --git a/bsp/buildroot/package/screen/0003-cross-compilation-AC_TRY_RUN.patch b/bsp/buildroot/package/screen/0003-cross-compilation-AC_TRY_RUN.patch index b9083014..eafe3d5a 100644 --- a/bsp/buildroot/package/screen/0003-cross-compilation-AC_TRY_RUN.patch +++ b/bsp/buildroot/package/screen/0003-cross-compilation-AC_TRY_RUN.patch @@ -3,15 +3,17 @@ Date: Sat, 13 Sep 2014 12:04:41 +0200 Subject: Provide cross compilation alternatives for all AC_TRY_RUN uses Signed-off-by: Maarten ter Huurne +[Ricardo: rebase on top of 4.3.1] +Signed-off-by: Ricardo Martincoski --- - configure.in | 30 +++++++++++++++++++----------- + configure.ac | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) -diff --git a/configure.in b/configure.in -index ff9606d..d53a079 100644 ---- a/configure.in -+++ b/configure.in -@@ -347,7 +347,8 @@ main() +diff --git a/configure.ac b/configure.ac +index b8e3bec..c4b7cd4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -348,7 +348,8 @@ main() exit(0); } ], AC_NOTE(- your fifos are usable) fifo=1, @@ -21,7 +23,7 @@ index ff9606d..d53a079 100644 rm -f /tmp/conftest* if test -n "$fifo"; then -@@ -395,7 +396,8 @@ main() +@@ -396,7 +397,8 @@ main() exit(0); } ], AC_NOTE(- your implementation is ok), @@ -31,7 +33,7 @@ index ff9606d..d53a079 100644 rm -f /tmp/conftest* fi -@@ -457,7 +459,8 @@ main() +@@ -458,7 +460,8 @@ main() exit(0); } ], AC_NOTE(- your sockets are usable) sock=1, @@ -41,7 +43,7 @@ index ff9606d..d53a079 100644 rm -f /tmp/conftest* if test -n "$sock"; then -@@ -496,7 +499,8 @@ main() +@@ -497,7 +500,8 @@ main() } ],AC_NOTE(- you are normal), AC_NOTE(- unix domain sockets are not kept in the filesystem) @@ -51,7 +53,7 @@ index ff9606d..d53a079 100644 rm -f /tmp/conftest* fi -@@ -623,7 +627,8 @@ main() +@@ -624,7 +628,8 @@ main() exit(0); } ],AC_NOTE(- select is ok), @@ -61,7 +63,7 @@ index ff9606d..d53a079 100644 dnl dnl **** termcap or terminfo **** -@@ -665,7 +670,8 @@ main() +@@ -666,7 +671,8 @@ main() { exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1); }], AC_NOTE(- you use the termcap database), @@ -71,7 +73,7 @@ index ff9606d..d53a079 100644 AC_CHECKING(ospeed) AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) -@@ -800,7 +806,8 @@ main() +@@ -801,7 +807,8 @@ main() else AC_NOTE(- can't determine - assume ptys are world accessable) fi @@ -81,7 +83,7 @@ index ff9606d..d53a079 100644 ) rm -f conftest_grp fi -@@ -884,7 +891,7 @@ AC_EGREP_CPP(yes, +@@ -885,7 +892,7 @@ AC_EGREP_CPP(yes, #endif ], load=1) fi @@ -90,7 +92,7 @@ index ff9606d..d53a079 100644 AC_CHECKING(for kernelfile) for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do if test -f $core || test -c $core; then -@@ -1077,7 +1084,7 @@ main() +@@ -1078,7 +1085,7 @@ main() #endif exit(0); } @@ -99,7 +101,7 @@ index ff9606d..d53a079 100644 fi -@@ -1157,7 +1164,7 @@ main() { +@@ -1158,7 +1165,7 @@ main() { if (strncmp(buf, "cdedef", 6)) exit(1); exit(0); /* libc version works properly. */ @@ -108,7 +110,7 @@ index ff9606d..d53a079 100644 AC_TRY_RUN([ #define bcopy(s,d,l) memmove(d,s,l) -@@ -1172,7 +1179,8 @@ main() { +@@ -1173,7 +1180,8 @@ main() { if (strncmp(buf, "cdedef", 6)) exit(1); exit(0); /* libc version works properly. */ diff --git a/bsp/buildroot/package/screen/0004-cross-compilation-ignore-host-fs.patch b/bsp/buildroot/package/screen/0004-cross-compilation-ignore-host-fs.patch index aeacfb1d..fa698ef1 100644 --- a/bsp/buildroot/package/screen/0004-cross-compilation-ignore-host-fs.patch +++ b/bsp/buildroot/package/screen/0004-cross-compilation-ignore-host-fs.patch @@ -3,15 +3,17 @@ Date: Sun, 14 Sep 2014 07:10:59 +0200 Subject: When cross-compiling, skip checks that look in the host file system Signed-off-by: Maarten ter Huurne +[Ricardo: rebase on top of 4.3.1] +Signed-off-by: Ricardo Martincoski --- - configure.in | 23 +++++++++++++++++++---- + configure.ac | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) -diff --git a/configure.in b/configure.in -index d53a079..79aa56d 100644 ---- a/configure.in -+++ b/configure.in -@@ -84,7 +84,7 @@ AC_ARG_ENABLE(socket-dir, +diff --git a/configure.ac b/configure.ac +index c4b7cd4..9cf7cee 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -85,7 +85,7 @@ AC_ARG_ENABLE(socket-dir, dnl dnl **** special unix variants **** dnl @@ -20,7 +22,7 @@ index d53a079..79aa56d 100644 AC_DEFINE(ISC) LIBS="$LIBS -linet" fi -@@ -95,10 +95,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again.... +@@ -96,10 +96,11 @@ dnl AC_DEFINE(OSF1) # this disables MIPS again.... dnl fi dnl fi @@ -33,7 +35,7 @@ index d53a079..79aa56d 100644 AC_CHECKING(for MIPS) if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then oldlibs="$LIBS" -@@ -122,6 +123,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd" +@@ -123,6 +124,7 @@ AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd" )) fi fi @@ -41,7 +43,7 @@ index d53a079..79aa56d 100644 AC_CHECKING(for Ultrix) -@@ -131,7 +133,7 @@ AC_EGREP_CPP(yes, +@@ -132,7 +134,7 @@ AC_EGREP_CPP(yes, #endif ], ULTRIX=1) @@ -50,7 +52,7 @@ index d53a079..79aa56d 100644 oldlibs="$LIBS" LIBS="$LIBS -lpyr" AC_CHECKING(Pyramid OSX) -@@ -678,17 +680,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) +@@ -679,17 +681,21 @@ AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) dnl dnl **** PTY specific things **** dnl @@ -72,7 +74,7 @@ index d53a079..79aa56d 100644 AC_CHECK_FUNCS(getpt) -@@ -698,6 +704,7 @@ AC_CHECK_FUNCS(openpty,, +@@ -699,6 +705,7 @@ AC_CHECK_FUNCS(openpty,, [AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])]) fi @@ -80,7 +82,7 @@ index d53a079..79aa56d 100644 AC_CHECKING(for ptyranges) if test -d /dev/ptym ; then pdir='/dev/ptym' -@@ -721,6 +728,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\ +@@ -722,6 +729,7 @@ p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\ AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0") AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1") fi @@ -88,7 +90,7 @@ index d53a079..79aa56d 100644 dnl **** pty mode/group handling **** dnl -@@ -868,14 +876,16 @@ fi +@@ -869,14 +877,16 @@ fi dnl dnl **** loadav **** dnl @@ -106,7 +108,7 @@ index d53a079..79aa56d 100644 olibs="$LIBS" LIBS="$LIBS -lkvm" AC_CHECKING(getloadavg with -lkvm) -@@ -1093,13 +1103,18 @@ dnl **** libraries **** +@@ -1094,13 +1104,18 @@ dnl **** libraries **** dnl AC_CHECKING(for crypt and sec libraries) diff --git a/bsp/buildroot/package/screen/0005-avoid-identifying-as-SVR4.patch b/bsp/buildroot/package/screen/0005-avoid-identifying-as-SVR4.patch index 10c08d21..745ef419 100644 --- a/bsp/buildroot/package/screen/0005-avoid-identifying-as-SVR4.patch +++ b/bsp/buildroot/package/screen/0005-avoid-identifying-as-SVR4.patch @@ -12,15 +12,17 @@ workaround was added for, so all I could do is make an educated guess at the #defines its compiler would be likely to set. Signed-off-by: Maarten ter Huurne +[Ricardo: rebase on top of 4.3.1] +Signed-off-by: Ricardo Martincoski --- - configure.in | 14 ++++++++++++-- + configure.ac | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) -diff --git a/configure.in b/configure.in -index f78f81f..181b7f9 100644 ---- a/configure.in -+++ b/configure.in -@@ -178,14 +178,24 @@ AC_EGREP_CPP(yes, +diff --git a/configure.ac b/configure.ac +index 9cf7cee..e09e4cf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -179,14 +179,24 @@ AC_EGREP_CPP(yes, #endif ], LIBS="$LIBS -lsocket -linet";seqptx=1) diff --git a/bsp/buildroot/package/screen/screen.hash b/bsp/buildroot/package/screen/screen.hash index 1b20458b..ee5105ad 100644 --- a/bsp/buildroot/package/screen/screen.hash +++ b/bsp/buildroot/package/screen/screen.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 5468545047e301d2b3579f9d9ce00466d14a7eec95ce806e3834a3d6b0b9b080 screen-4.2.1.tar.gz +sha256 ef722a54759a3bf23aad272bbf33c414c1078cad6bcd982fada93c0d7917218b screen-4.4.0.tar.gz diff --git a/bsp/buildroot/package/screen/screen.mk b/bsp/buildroot/package/screen/screen.mk index 827e776f..84c3d75d 100644 --- a/bsp/buildroot/package/screen/screen.mk +++ b/bsp/buildroot/package/screen/screen.mk @@ -4,14 +4,13 @@ # ################################################################################ -SCREEN_VERSION = 4.2.1 +SCREEN_VERSION = 4.4.0 SCREEN_SITE = $(BR2_GNU_MIRROR)/screen SCREEN_LICENSE = GPLv3+ SCREEN_LICENSE_FILES = COPYING SCREEN_DEPENDENCIES = ncurses SCREEN_AUTORECONF = YES SCREEN_CONF_ENV = CFLAGS="$(TARGET_CFLAGS)" -SCREEN_MAKE = $(MAKE1) SCREEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SCREEN=screen install_bin define SCREEN_INSTALL_SCREENRC diff --git a/bsp/buildroot/package/scrub/Config.in b/bsp/buildroot/package/scrub/Config.in new file mode 100644 index 00000000..84bcc296 --- /dev/null +++ b/bsp/buildroot/package/scrub/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_SCRUB + bool "scrub" + help + Scrub iteratively writes patterns on files or disk devices + to make retrieving the data more difficult. + + https://github.com/chaos/scrub/ diff --git a/bsp/buildroot/package/scrub/scrub.hash b/bsp/buildroot/package/scrub/scrub.hash new file mode 100644 index 00000000..0041fd05 --- /dev/null +++ b/bsp/buildroot/package/scrub/scrub.hash @@ -0,0 +1,3 @@ +# Locally computed +sha256 838b061b2e1932b342fb9695c5579cdff5d2d72506cb41d6d8032eba18aed969 scrub-2.6.1.tar.gz +sha256 6a129b4e0df6ebe02d449fa481db7b75be5eff08ce518aa77edd74c6b17c5ae4 11d30916dd9c11a26c7c8a0f6db9e6ebca301594.patch diff --git a/bsp/buildroot/package/scrub/scrub.mk b/bsp/buildroot/package/scrub/scrub.mk new file mode 100644 index 00000000..b8162721 --- /dev/null +++ b/bsp/buildroot/package/scrub/scrub.mk @@ -0,0 +1,17 @@ +################################################################################ +# +# scrub +# +################################################################################ + +SCRUB_VERSION = 2.6.1 +SCRUB_SITE = $(call github,chaos,scrub,$(SCRUB_VERSION)) +SCRUB_LICENSE = GPLv2+ +SCRUB_LICENSE_FILES = COPYING DISCLAIMER +SCRUB_PATCH = https://github.com/chaos/scrub/commit/11d30916dd9c11a26c7c8a0f6db9e6ebca301594.patch + +# Fetching from the git repo, no configure/Makefile generated, and patching +# configure.ac +SCRUB_AUTORECONF = YES + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/sdl/sdl.mk b/bsp/buildroot/package/sdl/sdl.mk index cc1ad067..38b4b977 100644 --- a/bsp/buildroot/package/sdl/sdl.mk +++ b/bsp/buildroot/package/sdl/sdl.mk @@ -80,6 +80,7 @@ SDL_DEPENDENCIES += mesa3d endif SDL_CONF_OPTS += \ + --disable-rpath \ --enable-pulseaudio=no \ --disable-arts \ --disable-esd \ @@ -96,13 +97,5 @@ HOST_SDL_CONF_OPTS += \ SDL_CONFIG_SCRIPTS = sdl-config -# Remove the -Wl,-rpath option. -define SDL_FIXUP_SDL_CONFIG - $(SED) 's%-Wl,-rpath,\$${libdir}%%' \ - $(STAGING_DIR)/usr/bin/sdl-config -endef - -SDL_POST_INSTALL_STAGING_HOOKS += SDL_FIXUP_SDL_CONFIG - $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/sdl2_gfx/Config.in b/bsp/buildroot/package/sdl2_gfx/Config.in new file mode 100644 index 00000000..f5dafc56 --- /dev/null +++ b/bsp/buildroot/package/sdl2_gfx/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_SDL2_GFX + bool "sdl2_gfx" + depends on BR2_PACKAGE_SDL2 + help + The SDL2_gfx library is an extension to the SDL2 library + which provides basic antialiased drawing routines such as + lines, circles or polygons, an interpolating rotozoomer for + SDL surfaces, framerate control and MMX image filters. + + http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx diff --git a/bsp/buildroot/package/sdl2_gfx/sdl2_gfx.hash b/bsp/buildroot/package/sdl2_gfx/sdl2_gfx.hash new file mode 100644 index 00000000..4cb07ee9 --- /dev/null +++ b/bsp/buildroot/package/sdl2_gfx/sdl2_gfx.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 d69bcbceb811b4e5712fbad3ede737166327f44b727f1388c32581dbbe8c599a SDL2_gfx-1.0.1.tar.gz diff --git a/bsp/buildroot/package/sdl2_gfx/sdl2_gfx.mk b/bsp/buildroot/package/sdl2_gfx/sdl2_gfx.mk new file mode 100644 index 00000000..975bca73 --- /dev/null +++ b/bsp/buildroot/package/sdl2_gfx/sdl2_gfx.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# sdl2_gfx +# +################################################################################ + +SDL2_GFX_VERSION = 1.0.1 +SDL2_GFX_SOURCE = SDL2_gfx-$(SDL2_GFX_VERSION).tar.gz +SDL2_GFX_SITE = http://www.ferzkopp.net/Software/SDL2_gfx +SDL2_GFX_LICENSE = zlib +SDL2_GFX_LICENSE_FILES = COPYING SDL2_framerate.h +SDL2_GFX_INSTALL_STAGING = YES +SDL2_GFX_DEPENDENCIES = sdl2 host-pkgconf +SDL2_GFX_CONF_OPTS = --disable-sdltest +# configure/Makefile.in not up-to-date, causing aclocal to be used at +# build time if we don't autoreconf. +SDL2_GFX_AUTORECONF = YES + +# Even though x86_64 processors support MMX, the MMX-specific assembly +# code in sdl2_gfx is IA32 specific, and does not build for x86_64. +ifeq ($(BR2_i386)$(BR2_X86_CPU_HAS_MMX),yy) +SDL2_GFX_CONF_OPTS += --enable-mmx +else +SDL2_GFX_CONF_OPTS += --disable-mmx +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/sdl2_image/Config.in b/bsp/buildroot/package/sdl2_image/Config.in new file mode 100644 index 00000000..9b4a3835 --- /dev/null +++ b/bsp/buildroot/package/sdl2_image/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_SDL2_IMAGE + bool "sdl2_image" + depends on BR2_PACKAGE_SDL2 + help + SDL2_image is an image file loading library. It loads images + as SDL surfaces, and supports the following formats: BMP, + GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, XCF, XPM, XV. + + http://www.libsdl.org/projects/SDL_image/ diff --git a/bsp/buildroot/package/sdl2_image/sdl2_image.hash b/bsp/buildroot/package/sdl2_image/sdl2_image.hash new file mode 100644 index 00000000..26d0a88c --- /dev/null +++ b/bsp/buildroot/package/sdl2_image/sdl2_image.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64 SDL2_image-2.0.1.tar.gz diff --git a/bsp/buildroot/package/sdl2_image/sdl2_image.mk b/bsp/buildroot/package/sdl2_image/sdl2_image.mk new file mode 100644 index 00000000..cf3b738e --- /dev/null +++ b/bsp/buildroot/package/sdl2_image/sdl2_image.mk @@ -0,0 +1,58 @@ +################################################################################ +# +# sdl2_image +# +################################################################################ + +SDL2_IMAGE_VERSION = 2.0.1 +SDL2_IMAGE_SOURCE = SDL2_image-$(SDL2_IMAGE_VERSION).tar.gz +SDL2_IMAGE_SITE = http://www.libsdl.org/projects/SDL_image/release +SDL2_IMAGE_INSTALL_STAGING = YES +SDL2_IMAGE_LICENSE = zlib +SDL2_IMAGE_LICENSE_FILES = COPYING.txt + +# Unconditionally enable support for image formats that don't require +# any dependency. +SDL2_IMAGE_CONF_OPTS = \ + --disable-sdltest \ + --enable-bmp \ + --enable-gif \ + --enable-lbm \ + --enable-pcx \ + --enable-pnm \ + --enable-tga \ + --enable-xcf \ + --enable-xpm \ + --enable-xv + +SDL2_IMAGE_DEPENDENCIES = sdl2 host-pkgconf + +ifeq ($(BR2_PACKAGE_JPEG),y) +SDL2_IMAGE_CONF_OPTS += --enable-jpg +SDL2_IMAGE_DEPENDENCIES += jpeg +else +SDL2_IMAGE_CONF_OPTS += --disable-jpg +endif + +ifeq ($(BR2_PACKAGE_LIBPNG),y) +SDL2_IMAGE_CONF_OPTS += --enable-png +SDL2_IMAGE_DEPENDENCIES += libpng +else +SDL2_IMAGE_CONF_OPTS += --disable-png +endif + +ifeq ($(BR2_PACKAGE_TIFF),y) +SDL2_IMAGE_CONF_OPTS += --enable-tif +SDL2_IMAGE_DEPENDENCIES += tiff +else +SDL2_IMAGE_CONF_OPTS += --disable-tif +endif + +ifeq ($(BR2_PACKAGE_WEBP),y) +SDL2_IMAGE_CONF_OPTS += --enable-webp +SDL2_IMAGE_DEPENDENCIES += webp +else +SDL2_IMAGE_CONF_OPTS += --disable-webp +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/sdl2_ttf/Config.in b/bsp/buildroot/package/sdl2_ttf/Config.in new file mode 100644 index 00000000..fc870a71 --- /dev/null +++ b/bsp/buildroot/package/sdl2_ttf/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_SDL2_TTF + bool "sdl2_ttf" + depends on BR2_PACKAGE_SDL2 + select BR2_PACKAGE_FREETYPE + help + SDL2_ttf is a sample TrueType font library. It allows you to + use TrueType fonts in your SDL2 applications. + + http://www.libsdl.org/projects/SDL_ttf/ diff --git a/bsp/buildroot/package/sdl2_ttf/sdl2_ttf.hash b/bsp/buildroot/package/sdl2_ttf/sdl2_ttf.hash new file mode 100644 index 00000000..515189af --- /dev/null +++ b/bsp/buildroot/package/sdl2_ttf/sdl2_ttf.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276 SDL2_ttf-2.0.14.tar.gz diff --git a/bsp/buildroot/package/sdl2_ttf/sdl2_ttf.mk b/bsp/buildroot/package/sdl2_ttf/sdl2_ttf.mk new file mode 100644 index 00000000..6834d16c --- /dev/null +++ b/bsp/buildroot/package/sdl2_ttf/sdl2_ttf.mk @@ -0,0 +1,30 @@ +################################################################################ +# +# sdl2_ttf +# +################################################################################ + +SDL2_TTF_VERSION = 2.0.14 +SDL2_TTF_SOURCE = SDL2_ttf-$(SDL2_TTF_VERSION).tar.gz +SDL2_TTF_SITE = http://www.libsdl.org/projects/SDL_ttf/release +SDL2_TTF_LICENSE = zlib +SDL2_TTF_LICENSE_FILES = COPYING.txt +SDL2_TTF_INSTALL_STAGING = YES +SDL2_TTF_DEPENDENCIES = sdl2 freetype host-pkgconf +SDL2_TTF_CONF_ENV = \ + FREETYPE_CONFIG=$(STAGING_DIR)/usr/bin/freetype-config + +# x-includes and x-libraries must be set for cross-compiling +# By default x_includes and x_libraries contains unsafe paths. +# (/usr/include and /usr/lib) +ifeq ($(BR2_PACKAGE_SDL2_X11),y) +SDL2_TTF_CONF_OPTS += \ + --with-x \ + --x-includes=$(STAGING_DIR)/usr/include \ + --x-libraries=$(STAGING_DIR)/usr/lib +else +SDL2_TTF_CONF_OPTS += \ + --without-x +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/sdl_image/Config.in b/bsp/buildroot/package/sdl_image/Config.in index 1b980668..c719d441 100644 --- a/bsp/buildroot/package/sdl_image/Config.in +++ b/bsp/buildroot/package/sdl_image/Config.in @@ -1,4 +1,4 @@ -config BR2_PACKAGE_SDL_IMAGE +menuconfig BR2_PACKAGE_SDL_IMAGE bool "SDL_image" depends on BR2_PACKAGE_SDL help @@ -10,52 +10,48 @@ config BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_SDL_IMAGE -menu "SDL_image file format support" - config BR2_PACKAGE_SDL_IMAGE_BMP - bool "enable BMP file format support" + bool "BMP support" default y config BR2_PACKAGE_SDL_IMAGE_GIF - bool "enable GIF file format support" + bool "GIF support" config BR2_PACKAGE_SDL_IMAGE_JPEG - bool "enable JPEG file format support" + bool "JPEG support" select BR2_PACKAGE_JPEG config BR2_PACKAGE_SDL_IMAGE_LBM - bool "enable LBM file format support" + bool "LBM support" config BR2_PACKAGE_SDL_IMAGE_PCX - bool "enable PCX file format support" + bool "PCX support" config BR2_PACKAGE_SDL_IMAGE_PNG - bool "enable PNG file format support" + bool "PNG support" select BR2_PACKAGE_LIBPNG config BR2_PACKAGE_SDL_IMAGE_PNM - bool "enable PNM file format support" + bool "PNM support" config BR2_PACKAGE_SDL_IMAGE_TARGA - bool "enable TARGA format support" + bool "TARGA support" config BR2_PACKAGE_SDL_IMAGE_TIFF - bool "enable TIFF file format support" + bool "TIFF support" select BR2_PACKAGE_TIFF config BR2_PACKAGE_SDL_IMAGE_WEBP - bool "enable WEBP file format support" + bool "WEBP support" select BR2_PACKAGE_WEBP config BR2_PACKAGE_SDL_IMAGE_XCF - bool "enable XCF file format support" + bool "XCF support" config BR2_PACKAGE_SDL_IMAGE_XPM - bool "enable XPM format support" + bool "XPM support" config BR2_PACKAGE_SDL_IMAGE_XV - bool "enable XV file format support" - -endmenu + bool "XV support" endif diff --git a/bsp/buildroot/package/sdl_image/sdl_image.mk b/bsp/buildroot/package/sdl_image/sdl_image.mk index b46fc644..f88aa0e7 100644 --- a/bsp/buildroot/package/sdl_image/sdl_image.mk +++ b/bsp/buildroot/package/sdl_image/sdl_image.mk @@ -28,7 +28,7 @@ SDL_IMAGE_CONF_OPTS = \ --enable-webp=$(if $(BR2_PACKAGE_SDL_IMAGE_WEBP),yes,no) \ --enable-xcf=$(if $(BR2_PACKAGE_SDL_IMAGE_XCF),yes,no) \ --enable-xpm=$(if $(BR2_PACKAGE_SDL_IMAGE_XPM),yes,no) \ - --enable-xv=$(if $(BR2_PACKAGE_SDL_IMAGE_XV),yes,no) \ + --enable-xv=$(if $(BR2_PACKAGE_SDL_IMAGE_XV),yes,no) SDL_IMAGE_DEPENDENCIES = sdl \ $(if $(BR2_PACKAGE_SDL_IMAGE_JPEG),jpeg) \ @@ -43,7 +43,7 @@ HOST_SDL_IMAGE_CONF_OPTS = \ --disable-static \ --disable-jpg-shared \ --disable-png-shared \ - --disable-tif-shared \ + --disable-tif-shared HOST_SDL_IMAGE_DEPENDENCIES = host-libjpeg host-libpng host-sdl diff --git a/bsp/buildroot/package/sdl_mixer/0001-Add-Libs.private-field-to-pkg-config-file.patch b/bsp/buildroot/package/sdl_mixer/0001-Add-Libs.private-field-to-pkg-config-file.patch new file mode 100644 index 00000000..e0e85710 --- /dev/null +++ b/bsp/buildroot/package/sdl_mixer/0001-Add-Libs.private-field-to-pkg-config-file.patch @@ -0,0 +1,64 @@ +From abf3a1b9c9cdacb574c2b9cdbf3f2a5e18c39ab9 Mon Sep 17 00:00:00 2001 +From: Rodrigo Rebello +Date: Mon, 29 Feb 2016 22:53:49 -0300 +Subject: [PATCH 1/1] Add 'Libs.private' field to pkg-config file + +In order to support static linking, SDL_mixer.pc should include a +'Libs.private' field listing all the libraries that SDL_mixer requires. + +This patch adds such a field and also modifies configure.in so that +EXTRA_LDFLAGS (which is now also used as the value of 'Libs.private') +no longer includes SDL_LIBS. This is done so as to prevent libraries +required by SDL from being listed twice when 'pkg-config --libs --static +SDL_mixer' is run (they're already shown because of the 'Requires: sdl' +line in SDL_mixer.pc). Makefile.in is also adjusted accordingly. + +Upstream status: submitted +https://bugzilla.libsdl.org/show_bug.cgi?id=3278 + +Signed-off-by: Rodrigo Rebello +--- + Makefile.in | 2 +- + SDL_mixer.pc.in | 1 + + configure.in | 1 - + 3 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 3d10565..ce4efd4 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -63,7 +63,7 @@ $(objects): + .PHONY: all install install-hdrs install-lib install-bin uninstall uninstall-hdrs uninstall-lib uninstall-bin clean distclean dist + + $(objects)/$(TARGET): $(OBJECTS) $(VERSION_OBJECTS) +- $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) ++ $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(SDL_LIBS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) + + $(objects)/playwave$(EXE): $(objects)/playwave.lo $(objects)/$(TARGET) + $(LIBTOOL) --mode=link $(CC) -o $@ $(objects)/playwave.lo $(SDL_CFLAGS) $(SDL_LIBS) $(objects)/$(TARGET) +diff --git a/SDL_mixer.pc.in b/SDL_mixer.pc.in +index 1c4965d..d793521 100644 +--- a/SDL_mixer.pc.in ++++ b/SDL_mixer.pc.in +@@ -8,5 +8,6 @@ Description: mixer library for Simple DirectMedia Layer + Version: @VERSION@ + Requires: sdl >= @SDL_VERSION@ + Libs: -L${libdir} -lSDL_mixer ++Libs.private: @EXTRA_LDFLAGS@ + Cflags: -I${includedir}/SDL + +diff --git a/configure.in b/configure.in +index 2272b29..442eca6 100644 +--- a/configure.in ++++ b/configure.in +@@ -202,7 +202,6 @@ AM_PATH_SDL($SDL_VERSION, + AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) + ) + EXTRA_CFLAGS="$EXTRA_CFLAGS $SDL_CFLAGS" +-EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SDL_LIBS" + + dnl Check for math library + AC_CHECK_LIB(m, pow, [LIBM="-lm"]) +-- +2.1.4 + diff --git a/bsp/buildroot/package/sdl_mixer/sdl_mixer.mk b/bsp/buildroot/package/sdl_mixer/sdl_mixer.mk index a602b6e9..897b308e 100644 --- a/bsp/buildroot/package/sdl_mixer/sdl_mixer.mk +++ b/bsp/buildroot/package/sdl_mixer/sdl_mixer.mk @@ -12,6 +12,11 @@ SDL_MIXER_LICENSE_FILES = COPYING SDL_MIXER_INSTALL_STAGING = YES SDL_MIXER_DEPENDENCIES = sdl + +# We're patching configure.in, so we need to autoreconf +SDL_MIXER_AUTORECONF = YES +SDL_MIXER_AUTORECONF_OPTS = -Iacinclude + SDL_MIXER_CONF_OPTS = \ --without-x \ --with-sdl-prefix=$(STAGING_DIR)/usr \ diff --git a/bsp/buildroot/package/sdparm/0000-makefile-remove-host-headers-include.patch b/bsp/buildroot/package/sdparm/0000-makefile-remove-host-headers-include.patch deleted file mode 100644 index 765a81d1..00000000 --- a/bsp/buildroot/package/sdparm/0000-makefile-remove-host-headers-include.patch +++ /dev/null @@ -1,19 +0,0 @@ -src/Makefile.am: remove host headers incdlue - -Using host headers is bad for cross compilation. Instead, use the '=' prefix -which expands to the current sysroot. - -Signed-off-by: Baruch Siach ---- -diff -Nuar sdparm-1.09-orig/src/Makefile.am sdparm-1.09/src/Makefile.am ---- sdparm-1.09-orig/src/Makefile.am 2014-09-23 18:48:44.000000000 +0300 -+++ sdparm-1.09/src/Makefile.am 2015-02-06 09:33:43.693477667 +0200 -@@ -41,7 +41,7 @@ - ../lib/sg_pt_common.c - - if HAVE_SGUTILS --INCLUDES = -I/usr/include/scsi -+INCLUDES = -I=/scsi - sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@ - sdparm_DEPENDENCIES = @GETOPT_O_FILES@ - else diff --git a/bsp/buildroot/package/sdparm/sdparm.hash b/bsp/buildroot/package/sdparm/sdparm.hash index ff5e7b64..050785ab 100644 --- a/bsp/buildroot/package/sdparm/sdparm.hash +++ b/bsp/buildroot/package/sdparm/sdparm.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 0f5e07438ef56e045443bd827008a38076e029558b00adbfc45f9cc8a5c75349 sdparm-1.09.tar.xz +sha256 7dc9e148cef22744e00809dad21b59ac544e3615001bc1b2399978f73e1d58ca sdparm-1.10.tar.xz diff --git a/bsp/buildroot/package/sdparm/sdparm.mk b/bsp/buildroot/package/sdparm/sdparm.mk index 9fc20674..ed1606c1 100644 --- a/bsp/buildroot/package/sdparm/sdparm.mk +++ b/bsp/buildroot/package/sdparm/sdparm.mk @@ -4,15 +4,12 @@ # ################################################################################ -SDPARM_VERSION = 1.09 +SDPARM_VERSION = 1.10 SDPARM_SOURCE = sdparm-$(SDPARM_VERSION).tar.xz SDPARM_SITE = http://sg.danny.cz/sg/p SDPARM_LICENSE = BSD-3c SDPARM_LICENSE_FILES = COPYING -# Patching src/Makefile.am -SDPARM_AUTORECONF = YES - ifeq ($(BR2_PACKAGE_SG3_UTILS),y) SDPARM_DEPENDENCIES += sg3_utils else diff --git a/bsp/buildroot/package/sed/Config.in b/bsp/buildroot/package/sed/Config.in index c6c91df4..6adebf24 100644 --- a/bsp/buildroot/package/sed/Config.in +++ b/bsp/buildroot/package/sed/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_SED bool "sed" depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Super-useful stream editor. @@ -8,3 +9,4 @@ config BR2_PACKAGE_SED comment "sed needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/ser2net/0001-Fix-TIOCSRS485-undeclared-error.patch b/bsp/buildroot/package/ser2net/0001-Fix-TIOCSRS485-undeclared-error.patch deleted file mode 100644 index 9c6d1689..00000000 --- a/bsp/buildroot/package/ser2net/0001-Fix-TIOCSRS485-undeclared-error.patch +++ /dev/null @@ -1,65 +0,0 @@ -ser2net: Fix compilation failures due to missing TIOCSRS485 macro - -Patch sent upstream: - https://sourceforge.net/p/ser2net/mailman/message/32905302/ - -Signed-off-by: Vicente Olivert Riera - -From: Yegor Yefremov - -include fixes compilations for systems, -where won't be included automatically. - -Move special Linux includes to dataxfer.h. - -Signed-off-by: Yegor Yefremov ---- - dataxfer.h | 5 +++-- - devcfg.c | 2 -- - 2 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/dataxfer.h b/dataxfer.h -index bd2665e..c3d7431 100644 ---- a/dataxfer.h -+++ b/dataxfer.h -@@ -20,8 +20,6 @@ - #ifndef DATAXFER - #define DATAXFER - --#include -- - #include "controller.h" - - #ifdef USE_UUCP_LOCKING -@@ -30,6 +28,9 @@ extern int uucp_locking_enabled; - - #ifdef linux - -+#include -+#include -+ - #define USE_RS485_FEATURE - - /* Check, if the toolchain provides serial_rs485 structure and macros */ -diff --git a/devcfg.c b/devcfg.c -index ab819a6..1f84714 100644 ---- a/devcfg.c -+++ b/devcfg.c -@@ -18,7 +18,6 @@ - */ - - /* This code handles generating the configuration for the serial port. */ -- - #include - #include - #include -@@ -31,7 +30,6 @@ - #include - #include - #include --#include - - #include "ser2net.h" - #include "selector.h" --- -1.9.1 diff --git a/bsp/buildroot/package/ser2net/S50ser2net b/bsp/buildroot/package/ser2net/S50ser2net new file mode 100644 index 00000000..200dfd0e --- /dev/null +++ b/bsp/buildroot/package/ser2net/S50ser2net @@ -0,0 +1,43 @@ +#!/bin/sh +# +# Startup script for ser2net +# + +start() { + printf "Starting ser2net: " + if [ ! -f /etc/ser2net.conf ] ; then + echo "no configuration file" + exit 1 + fi + + start-stop-daemon -S -q --exec /usr/sbin/ser2net -- -P /var/run/ser2net.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" +} + +stop() { + printf "Shutting down ser2net: " + start-stop-daemon -K -q -p /var/run/ser2net.pid + [ $? = 0 ] && echo "OK" || echo "FAIL" +} + +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + restart + ;; + *) + echo "Usage: ser2net {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/bsp/buildroot/package/ser2net/ser2net.hash b/bsp/buildroot/package/ser2net/ser2net.hash index 4675164e..a02a981a 100644 --- a/bsp/buildroot/package/ser2net/ser2net.hash +++ b/bsp/buildroot/package/ser2net/ser2net.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 98f6193225338e25f35302fef5e1f16688693ed43e7b3c3e9e09187eb54547ac ser2net-2.10.0.tar.gz +sha256 cee4ad8fb3531281e8761751694dfab39d681022b2363b1edeba764d397c3c99 ser2net-2.10.1.tar.gz diff --git a/bsp/buildroot/package/ser2net/ser2net.mk b/bsp/buildroot/package/ser2net/ser2net.mk index 414f1eda..85b23aea 100644 --- a/bsp/buildroot/package/ser2net/ser2net.mk +++ b/bsp/buildroot/package/ser2net/ser2net.mk @@ -4,9 +4,14 @@ # ################################################################################ -SER2NET_VERSION = 2.10.0 +SER2NET_VERSION = 2.10.1 SER2NET_SITE = http://downloads.sourceforge.net/project/ser2net/ser2net SER2NET_LICENSE = GPLv2+ SER2NET_LICENSE_FILES = COPYING +define SER2NET_INSTALL_INIT_SYSV + $(INSTALL) -D -m 755 package/ser2net/S50ser2net \ + $(TARGET_DIR)/etc/init.d/S50ser2net +endef + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/setools/0003-setools-Update-for-2015-02-02-Userspace-release.patch b/bsp/buildroot/package/setools/0003-setools-Update-for-2015-02-02-Userspace-release.patch new file mode 100644 index 00000000..b0842d96 --- /dev/null +++ b/bsp/buildroot/package/setools/0003-setools-Update-for-2015-02-02-Userspace-release.patch @@ -0,0 +1,90 @@ +setools: Add patch to support 2.4 toolstack. +Signed-off-by: Philip Tricca +Signed-off-by: Joe MacDonald +URL: https://github.com/flihp/meta-selinux/commit/e09eaef7a9acb552a4a5e1f90117154ae06b6fda + +Signed-off-by: Adam Duskett + +diff --git a/libqpol/src/policy_define.c b/libqpol/src/policy_define.c +index fad6b60..231962f 100644 +--- a/libqpol/src/policy_define.c ++++ b/libqpol/src/policy_define.c +@@ -1449,7 +1449,7 @@ int define_compute_type_helper(int which, avrule_t ** rule) + return -1; + } + class_perm_node_init(perm); +- perm->class = i + 1; ++ perm->tclass = i + 1; + perm->data = datum->s.value; + perm->next = avrule->perms; + avrule->perms = perm; +@@ -1699,7 +1699,7 @@ int define_te_avtab_helper(int which, avrule_t ** rule) + goto out; + } + class_perm_node_init(cur_perms); +- cur_perms->class = i + 1; ++ cur_perms->tclass = i + 1; + if (!perms) + perms = cur_perms; + if (tail) +diff --git a/libqpol/src/policy_extend.c b/libqpol/src/policy_extend.c +index 5325a87..1417271 100644 +--- a/libqpol/src/policy_extend.c ++++ b/libqpol/src/policy_extend.c +@@ -843,7 +843,7 @@ static int qpol_syn_rule_table_insert_sepol_avrule(qpol_policy_t * policy, qpol_ + for (class_node = rule->perms; class_node; class_node = class_node->next) { + key.rule_type = rule->specified; + key.source_val = key.target_val = i + 1; +- key.class_val = class_node->class; ++ key.class_val = class_node->tclass; + key.cond = cond; + if (qpol_syn_rule_table_insert_entry(policy, table, &key, new_rule)) + goto err; +@@ -856,7 +856,7 @@ static int qpol_syn_rule_table_insert_sepol_avrule(qpol_policy_t * policy, qpol_ + key.rule_type = rule->specified; + key.source_val = i + 1; + key.target_val = j + 1; +- key.class_val = class_node->class; ++ key.class_val = class_node->tclass; + key.cond = cond; + if (qpol_syn_rule_table_insert_entry(policy, table, &key, new_rule)) + goto err; +diff --git a/libqpol/src/syn_rule_query.c b/libqpol/src/syn_rule_query.c +index 3e63204..d7578f1 100644 +--- a/libqpol/src/syn_rule_query.c ++++ b/libqpol/src/syn_rule_query.c +@@ -67,7 +67,7 @@ static void *syn_rule_class_state_get_cur(const qpol_iterator_t * iter) + return NULL; + } + +- return db->class_val_to_struct[srcs->cur->class - 1]; ++ return db->class_val_to_struct[srcs->cur->tclass - 1]; + } + + static int syn_rule_class_state_next(qpol_iterator_t * iter) +@@ -465,10 +465,10 @@ int qpol_syn_avrule_get_perm_iter(const qpol_policy_t * policy, const qpol_syn_a + } + + for (node = internal_rule->perms; node; node = node->next) { +- for (i = 0; i < db->class_val_to_struct[node->class - 1]->permissions.nprim; i++) { ++ for (i = 0; i < db->class_val_to_struct[node->tclass - 1]->permissions.nprim; i++) { + if (!(node->data & (1 << i))) + continue; +- tmp = sepol_av_to_string(db, node->class, (sepol_access_vector_t) (1 << i)); ++ tmp = sepol_av_to_string(db, node->tclass, (sepol_access_vector_t) (1 << i)); + if (tmp) { + tmp++; /* remove prepended space */ + for (cur = 0; cur < perm_list_sz; cur++) +diff --git a/secmds/replcon.cc b/secmds/replcon.cc +index 34f7c1a..307c39f 100644 +--- a/secmds/replcon.cc ++++ b/secmds/replcon.cc +@@ -60,7 +60,7 @@ static struct option const longopts[] = { + {NULL, 0, NULL, 0} + }; + +-extern int lsetfilecon_raw(const char *, security_context_t) __attribute__ ((weak)); ++extern int lsetfilecon_raw(const char *, const char *) __attribute__ ((weak)); + + /** + * As that setools must work with older libselinux versions that may diff --git a/bsp/buildroot/package/setools/Config.in b/bsp/buildroot/package/setools/Config.in index c291b217..5e7f39d6 100644 --- a/bsp/buildroot/package/setools/Config.in +++ b/bsp/buildroot/package/setools/Config.in @@ -8,6 +8,7 @@ config BR2_PACKAGE_SETOOLS depends on !BR2_STATIC_LIBS depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR + depends on BR2_TOOLCHAIN_USES_GLIBC # libselinux # bfin: infamous _ symbol prefix issue # nios2: triggers some toolchain issue "No symbol version # section for versioned symbol" @@ -28,7 +29,8 @@ config BR2_PACKAGE_SETOOLS https://github.com/TresysTechnology/setools3/wiki -comment "setools needs a toolchain w/ threads, C++, wchar, dynamic library" +comment "setools needs a glibc toolchain w/ threads, C++, wchar, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \ - || !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP + || !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP \ + || !BR2_TOOLCHAIN_USES_GLIBC depends on !BR2_nios2 && !BR2_bfin && !BR2_arc diff --git a/bsp/buildroot/package/setools/setools.mk b/bsp/buildroot/package/setools/setools.mk index deb421fe..87a19cf5 100644 --- a/bsp/buildroot/package/setools/setools.mk +++ b/bsp/buildroot/package/setools/setools.mk @@ -31,6 +31,10 @@ SETOOLS_CONF_OPTS = \ --with-sepol-devel="$(STAGING_DIR)/usr" \ --with-selinux-devel="$(STAGING_DIR)/usr" +ifeq ($(BR2_sparc64):$(BR2_STATIC_LIBS),y:) +SETOOLS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -fPIC" +endif + HOST_SETOOLS_DEPENDENCIES = host-libselinux host-libsepol host-sqlite \ host-libxml2 host-bzip2 host-bison diff --git a/bsp/buildroot/package/setserial/Config.in b/bsp/buildroot/package/setserial/Config.in index cffe50ef..4ff2477e 100644 --- a/bsp/buildroot/package/setserial/Config.in +++ b/bsp/buildroot/package/setserial/Config.in @@ -3,4 +3,4 @@ config BR2_PACKAGE_SETSERIAL # Uses fork() depends on BR2_USE_MMU help - Setserial : configuration of serial ports + Setserial : configuration of serial ports diff --git a/bsp/buildroot/package/sg3_utils/0001-support-uclinux-as-a-linux.patch b/bsp/buildroot/package/sg3_utils/0001-support-uclinux-as-a-linux.patch new file mode 100644 index 00000000..d9106cd9 --- /dev/null +++ b/bsp/buildroot/package/sg3_utils/0001-support-uclinux-as-a-linux.patch @@ -0,0 +1,16 @@ +Recognise uclinux as a linux + +Signed-off-by: "Yann E. MORIN" + +diff -durN sg3_utils-1.42.orig/configure.ac sg3_utils-1.42/configure.ac +--- sg3_utils-1.42.orig/configure.ac 2015-10-21 01:10:59.000000000 +0200 ++++ sg3_utils-1.42/configure.ac 2016-08-14 19:30:37.841766149 +0200 +@@ -71,7 +71,7 @@ + + # Define platform-specific symbol. + AM_CONDITIONAL(OS_FREEBSD, [echo $host_os | grep 'freebsd' > /dev/null]) +-AM_CONDITIONAL(OS_LINUX, [echo $host_os | grep '^linux' > /dev/null]) ++AM_CONDITIONAL(OS_LINUX, [echo $host_os | grep -E '^(uc)?linux' > /dev/null]) + AM_CONDITIONAL(OS_OSF, [echo $host_os | grep '^osf' > /dev/null]) + AM_CONDITIONAL(OS_SOLARIS, [echo $host_os | grep '^solaris' > /dev/null]) + AM_CONDITIONAL(OS_WIN32_MINGW, [echo $host_os | grep '^mingw' > /dev/null]) diff --git a/bsp/buildroot/package/sg3_utils/Config.in b/bsp/buildroot/package/sg3_utils/Config.in index f4db4b9b..4b74eda6 100644 --- a/bsp/buildroot/package/sg3_utils/Config.in +++ b/bsp/buildroot/package/sg3_utils/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_SG3_UTILS bool "sg3-utils" + depends on !BR2_bfin # symbol prefixing problems depends on BR2_TOOLCHAIN_HAS_THREADS help Low level utilities for devices that use a SCSI command set. @@ -15,4 +16,5 @@ config BR2_PACKAGE_SG3_UTILS_PROGS endif comment "sg3-utils needs a toolchain w/ threads" + depends on !BR2_bfin depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/sg3_utils/sg3_utils.hash b/bsp/buildroot/package/sg3_utils/sg3_utils.hash index d3ae1a00..a884063f 100644 --- a/bsp/buildroot/package/sg3_utils/sg3_utils.hash +++ b/bsp/buildroot/package/sg3_utils/sg3_utils.hash @@ -1,2 +1,2 @@ # Locally calculated from download (no sig, hash) -sha256 901ece577d797a8a3870881fe765f6eac4bb381b99a1f7311551689e9f17130b sg3_utils-1.40.tar.xz +sha256 97aeed65894feb2add896b4adfa4cf343966c8a61c7d206795ed0507640ee7b9 sg3_utils-1.42.tar.xz diff --git a/bsp/buildroot/package/sg3_utils/sg3_utils.mk b/bsp/buildroot/package/sg3_utils/sg3_utils.mk index dca0f6bf..e7af83a5 100644 --- a/bsp/buildroot/package/sg3_utils/sg3_utils.mk +++ b/bsp/buildroot/package/sg3_utils/sg3_utils.mk @@ -4,7 +4,7 @@ # ################################################################################ -SG3_UTILS_VERSION = 1.40 +SG3_UTILS_VERSION = 1.42 SG3_UTILS_SOURCE = sg3_utils-$(SG3_UTILS_VERSION).tar.xz SG3_UTILS_SITE = http://sg.danny.cz/sg/p SG3_UTILS_LICENSE = BSD-3c @@ -14,6 +14,9 @@ SG3_UTILS_LICENSE += GPLv2+ endif SG3_UTILS_LICENSE_FILES = COPYING BSD_LICENSE +# Patching configure.ac +SG3_UTILS_AUTORECONF = YES + # install the libsgutils2 library SG3_UTILS_INSTALL_STAGING = YES @@ -25,12 +28,12 @@ define SG3_UTILS_REMOVE_PROGS get_lba_status ident inq logs luns map26 \ map sgm_dd modes opcodes sgp_dd persist prevent \ raw rbuf rdac read readcap read_block_limits \ - read_buffer read_long reassign referrals \ + read_attr read_buffer read_long reassign referrals \ rep_zones requests reset reset_wp rmsn rtpg safte sanitize \ sat_identify sat_phy_event sat_read_gplog sat_set_features \ scan senddiag ses ses_microcode start stpg sync test_rwbuf \ - turs unmap verify vpd write_buffer write_long \ - write_same write_verify wr_mode xcopy; do \ + timestamp turs unmap verify vpd write_buffer write_long \ + write_same write_verify wr_mode xcopy zone; do \ $(RM) $(TARGET_DIR)/usr/bin/sg_$${prog} ; \ done for prog in \ diff --git a/bsp/buildroot/package/shairport-sync/shairport-sync.hash b/bsp/buildroot/package/shairport-sync/shairport-sync.hash index 35aba300..907a71e9 100644 --- a/bsp/buildroot/package/shairport-sync/shairport-sync.hash +++ b/bsp/buildroot/package/shairport-sync/shairport-sync.hash @@ -1,3 +1,2 @@ # Locally calculated -sha256 6f3535012ed25017e4f893f9bad5391c2ea23c64f398caac3f29d8dad5f9e987 shairport-sync-2.8.0.tar.gz -sha256 e0c750f51c54611e564ddb1ee161aa57ba6be36d3bf54198d9a6435ad6bf1757 8e8a0ee7ab0db61dc46735a1206843fe943ffc61.patch +sha256 80dd94c5f37b43e9b157dd5335f8edaf11109859d0144e0046c7b86fe88f6547 shairport-sync-2.8.4.tar.gz diff --git a/bsp/buildroot/package/shairport-sync/shairport-sync.mk b/bsp/buildroot/package/shairport-sync/shairport-sync.mk index 628d1213..49c66042 100644 --- a/bsp/buildroot/package/shairport-sync/shairport-sync.mk +++ b/bsp/buildroot/package/shairport-sync/shairport-sync.mk @@ -4,13 +4,12 @@ # ################################################################################ -SHAIRPORT_SYNC_VERSION = 2.8.0 +SHAIRPORT_SYNC_VERSION = 2.8.4 SHAIRPORT_SYNC_SITE = $(call github,mikebrady,shairport-sync,$(SHAIRPORT_SYNC_VERSION)) SHAIRPORT_SYNC_LICENSE = MIT, BSD-3c SHAIRPORT_SYNC_LICENSE_FILES = LICENSES SHAIRPORT_SYNC_DEPENDENCIES = alsa-lib libconfig libdaemon popt host-pkgconf -SHAIRPORT_SYNC_PATCH = https://github.com/mikebrady/shairport-sync/commit/8e8a0ee7ab0db61dc46735a1206843fe943ffc61.patch # git clone, no configure SHAIRPORT_SYNC_AUTORECONF = YES diff --git a/bsp/buildroot/package/shared-mime-info/0001-Remove-incorrect-dependency-from-install-data-hook.patch b/bsp/buildroot/package/shared-mime-info/0001-Remove-incorrect-dependency-from-install-data-hook.patch new file mode 100644 index 00000000..a0d3fb0f --- /dev/null +++ b/bsp/buildroot/package/shared-mime-info/0001-Remove-incorrect-dependency-from-install-data-hook.patch @@ -0,0 +1,45 @@ +From 3bcb00e27ab09c433fdfecace0d48a6a7ed55ea8 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Fri, 22 Apr 2016 23:14:32 +0200 +Subject: [PATCH] Remove incorrect dependency from install-data-hook + +Having install-binPROGRAMS as a dependency of install-data-hook is not +correct, as it causes the installation of programs to be executed +twice, and those two installations are racing with each other, causing +random installation failures. + +In addition, this dependency is not needed: the install-data-hook +calls the update-mime-database program in one of two ways: + + - When cross-compiling, using the program pointed by + UPDATE_MIME_DATABASE, which is already built, and is not installed + by install-binPROGRAMS. + + - When compiling natively, suing the update-mime-database from the + build directory, so there is no need to depend on + install-binPROGRAMS. + +This patch is similar to the patch used by the Yocto Project at +http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-support/shared-mime-info/shared-mime-info/install-data-hook.patch. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 6fc4f73..c318dc3 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -52,7 +52,7 @@ else + update_mime_database="$(top_builddir)/update-mime-database$(EXEEXT)" + endif + +-install-data-hook: install-binPROGRAMS ++install-data-hook: + if ENABLE_UPDATE_MIMEDB + $(update_mime_database) -V "$(DESTDIR)$(datadir)/mime" + endif +-- +2.6.4 + diff --git a/bsp/buildroot/package/shared-mime-info/shared-mime-info.hash b/bsp/buildroot/package/shared-mime-info/shared-mime-info.hash index 170c6720..997751d9 100644 --- a/bsp/buildroot/package/shared-mime-info/shared-mime-info.hash +++ b/bsp/buildroot/package/shared-mime-info/shared-mime-info.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 d6412840eb265bf36e61fd7b6fc6bea21b0f58cb22bed16f2ccccdd54bea4180 shared-mime-info-1.5.tar.xz +sha256 b2f8f85b6467933824180d0252bbcaee523f550a8fbc95cc4391bd43c03bc34c shared-mime-info-1.6.tar.xz diff --git a/bsp/buildroot/package/shared-mime-info/shared-mime-info.mk b/bsp/buildroot/package/shared-mime-info/shared-mime-info.mk index 28923448..a70bc9a1 100644 --- a/bsp/buildroot/package/shared-mime-info/shared-mime-info.mk +++ b/bsp/buildroot/package/shared-mime-info/shared-mime-info.mk @@ -4,23 +4,24 @@ # ################################################################################ -SHARED_MIME_INFO_VERSION = 1.5 +SHARED_MIME_INFO_VERSION = 1.6 SHARED_MIME_INFO_SOURCE = shared-mime-info-$(SHARED_MIME_INFO_VERSION).tar.xz SHARED_MIME_INFO_SITE = http://freedesktop.org/~hadess SHARED_MIME_INFO_INSTALL_STAGING = YES SHARED_MIME_INFO_CONF_ENV = XMLLINT=$(HOST_DIR)/usr/bin/xmllint SHARED_MIME_INFO_DEPENDENCIES = host-shared-mime-info libxml2 libglib2 -SHARED_MIME_INFO_CONF_OPTS = --disable-update-mimedb -SHARED_MIME_INFO_MAKE = $(MAKE1) +SHARED_MIME_INFO_CONF_OPTS = \ + --disable-update-mimedb \ + --disable-default-make-check +HOST_SHARED_MIME_INFO_CONF_OPTS = \ + --disable-update-mimedb \ + --disable-default-make-check SHARED_MIME_INFO_LICENSE = GPLv2 SHARED_MIME_INFO_LICENSE_FILES = COPYING HOST_SHARED_MIME_INFO_DEPENDENCIES = \ host-pkgconf host-intltool host-libxml2 host-libglib2 -HOST_SHARED_MIME_INFO_CONF_OPTS = --disable-update-mimedb -HOST_SHARED_MIME_INFO_MAKE = $(MAKE1) - define SHARED_MIME_INFO_INSTALL_TARGET_CMDS $(HOST_MAKE_ENV) $(SHARED_MIME_INFO_HOST_BINARY) $(STAGING_DIR)/usr/share/mime $(INSTALL) -D $(STAGING_DIR)/usr/share/mime/mime.cache $(TARGET_DIR)/usr/share/mime/mime.cache diff --git a/bsp/buildroot/package/shellinabox/0001-Makefile-disable-always-building-statically.patch b/bsp/buildroot/package/shellinabox/0001-Makefile-disable-always-building-statically.patch new file mode 100644 index 00000000..2f2097e0 --- /dev/null +++ b/bsp/buildroot/package/shellinabox/0001-Makefile-disable-always-building-statically.patch @@ -0,0 +1,26 @@ +From c060e6f06a81ffa400266a6d0bfc58511265a16f Mon Sep 17 00:00:00 2001 +From: Olivier Singla +Date: Thu, 4 Aug 2016 21:23:41 +0200 +Subject: [PATCH] Makefile: disable always building statically + +Signed-off-by: Olivier Singla +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 7b8e7ab..5c4c71e 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -126,7 +126,7 @@ BUILT_SOURCES = shellinabox/beep.h \ + + shellinaboxd_LDADD = liblogging.la \ + libhttp.la +-shellinaboxd_LDFLAGS = -static ++shellinaboxd_LDFLAGS = + ## Added this for compatibility with older versions of autoconf/automake + docdir = ${datadir}/doc/${PACKAGE} + +-- +2.7.4 + diff --git a/bsp/buildroot/package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch b/bsp/buildroot/package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch new file mode 100644 index 00000000..caa54566 --- /dev/null +++ b/bsp/buildroot/package/shellinabox/0002-launcher.c-include-sys-ttydefaults.h.patch @@ -0,0 +1,27 @@ +From c8d9df500b1ca83ad6da9b6055549adaba6ee0d3 Mon Sep 17 00:00:00 2001 +From: Olivier Singla +Date: Thu, 4 Aug 2016 22:05:08 +0200 +Subject: [PATCH] launcher.c: include + +This include is needed to get the definition of TTYDEF_*. + +Signed-off-by: Olivier Singla +--- + shellinabox/launcher.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/shellinabox/launcher.c b/shellinabox/launcher.c +index 2bac171..c8ba6cb 100644 +--- a/shellinabox/launcher.c ++++ b/shellinabox/launcher.c +@@ -66,6 +66,7 @@ + #include + #include + #include ++#include + #include + #include + +-- +2.7.4 + diff --git a/bsp/buildroot/package/shellinabox/Config.in b/bsp/buildroot/package/shellinabox/Config.in new file mode 100644 index 00000000..63a298dc --- /dev/null +++ b/bsp/buildroot/package/shellinabox/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_SHELLINABOX + bool "shellinabox" + depends on BR2_USE_MMU # fork() + depends on !BR2_STATIC_LIBS # dlfcn.h + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_ZLIB + help + Shell In A Box implements a web server that can export + arbitrary command line tools to a web based terminal + emulator. This emulator is accessible to any JavaScript and + CSS enabled web browser and does not require any additional + browser plugins. + + https://github.com/shellinabox/shellinabox + +comment "shellinabox needs a toolchain w/ dynamic library" + depends on BR2_USE_MMU + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/shellinabox/shellinabox.hash b/bsp/buildroot/package/shellinabox/shellinabox.hash new file mode 100644 index 00000000..4bc11038 --- /dev/null +++ b/bsp/buildroot/package/shellinabox/shellinabox.hash @@ -0,0 +1,2 @@ +# Locally calculated after checking pgp signature +sha256 d25ba9f72f04471fc1a8a564c65ef466c4553280ff3eeb365ed9c897d05ed2da shellinabox-v2.19.tar.gz diff --git a/bsp/buildroot/package/shellinabox/shellinabox.mk b/bsp/buildroot/package/shellinabox/shellinabox.mk new file mode 100644 index 00000000..1173ef7d --- /dev/null +++ b/bsp/buildroot/package/shellinabox/shellinabox.mk @@ -0,0 +1,29 @@ +################################################################################ +# +# shellinabox +# +################################################################################ + +SHELLINABOX_VERSION = v2.19 +SHELLINABOX_SITE = $(call github,shellinabox,shellinabox,$(SHELLINABOX_VERSION)) +SHELLINABOX_LICENSE = GPLv2 with OpenSSL exception +SHELLINABOX_LICENSE_FILES = COPYING GPL-2 + +# Fetching from Github, and patching Makefile.am, so we need to autoreconf +SHELLINABOX_AUTORECONF = YES + +# The OpenSSL support is supposed to be optional, but in practice, +# with OpenSSL disabled, it fails to build. See +# https://github.com/shellinabox/shellinabox/issues/385. +SHELLINABOX_DEPENDENCIES = zlib openssl +SHELLINABOX_CONF_OPTS = \ + --disable-runtime-loading \ + --enable-ssl + +# musl's implementation of utmpx is a dummy one, and some aspects of +# it cause build failures in shellinabox +ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) +SHELLINABOX_CONF_ENV += ac_cv_header_utmpx_h=no +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/skeleton/skeleton.mk b/bsp/buildroot/package/skeleton/skeleton.mk index 76188356..1000161c 100644 --- a/bsp/buildroot/package/skeleton/skeleton.mk +++ b/bsp/buildroot/package/skeleton/skeleton.mk @@ -4,9 +4,6 @@ # ################################################################################ -# source included in buildroot -SKELETON_SOURCE = - # The skeleton can't depend on the toolchain, since all packages depends on the # skeleton and the toolchain is a target package, as is skeleton. # Hence, skeleton would depends on the toolchain and the toolchain would depend @@ -20,6 +17,12 @@ ifeq ($(BR2_ROOTFS_SKELETON_CUSTOM),y) SKELETON_PATH = $(call qstrip,$(BR2_ROOTFS_SKELETON_CUSTOM_PATH)) +ifeq ($(BR_BUILDING),y) +ifeq ($(SKELETON_PATH),) +$(error No path specified for the custom skeleton) +endif +endif + ifeq ($(BR2_ROOTFS_MERGED_USR),y) # Ensure the user has prepared a merged /usr. @@ -48,8 +51,7 @@ SKELETON_CUSTOM_NOT_MERGED_USR += /sbin endif ifneq ($(SKELETON_CUSTOM_NOT_MERGED_USR),) -$(error Use of systemd as an init system requires a merged /usr. \ - However, the custom skeleton in $(SKELETON_PATH) is not \ +$(error The custom skeleton in $(SKELETON_PATH) is not \ using a merged /usr for the following directories: \ $(SKELETON_CUSTOM_NOT_MERGED_USR)) endif @@ -111,6 +113,10 @@ define SKELETON_INSTALL_STAGING_CMDS ln -snf lib $(STAGING_DIR)/usr/$(SKELETON_LIB_SYMLINK) endef +# The TARGET_FINALIZE_HOOKS must be sourced only if the users choose to use the +# default skeleton. +ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y) + SKELETON_TARGET_GENERIC_HOSTNAME = $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME)) SKELETON_TARGET_GENERIC_ISSUE = $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE)) SKELETON_TARGET_GENERIC_ROOT_PASSWD = $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD)) @@ -122,24 +128,24 @@ SKELETON_TARGET_GENERIC_GETTY_TERM = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TE SKELETON_TARGET_GENERIC_GETTY_OPTIONS = $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS)) ifneq ($(SKELETON_TARGET_GENERIC_HOSTNAME),) -define SYSTEM_HOSTNAME +define SKELETON_SET_HOSTNAME mkdir -p $(TARGET_DIR)/etc echo "$(SKELETON_TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname $(SED) '$$a \127.0.1.1\t$(SKELETON_TARGET_GENERIC_HOSTNAME)' \ -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts endef -TARGET_FINALIZE_HOOKS += SYSTEM_HOSTNAME +TARGET_FINALIZE_HOOKS += SKELETON_SET_HOSTNAME endif ifneq ($(SKELETON_TARGET_GENERIC_ISSUE),) -define SYSTEM_ISSUE +define SKELETON_SET_ISSUE mkdir -p $(TARGET_DIR)/etc echo "$(SKELETON_TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue endef -TARGET_FINALIZE_HOOKS += SYSTEM_ISSUE +TARGET_FINALIZE_HOOKS += SKELETON_SET_ISSUE endif -define SET_NETWORK_LOCALHOST +define SKELETON_SET_NETWORK_LOCALHOST ( \ echo "# interface file auto-generated by buildroot"; \ echo ; \ @@ -148,14 +154,14 @@ define SET_NETWORK_LOCALHOST ) > $(TARGET_DIR)/etc/network/interfaces endef -NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) +SKELETON_NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) -ifneq ($(NETWORK_DHCP_IFACE),) -define SET_NETWORK_DHCP +ifneq ($(SKELETON_NETWORK_DHCP_IFACE),) +define SKELETON_SET_NETWORK_DHCP ( \ echo ; \ - echo "auto $(NETWORK_DHCP_IFACE)"; \ - echo "iface $(NETWORK_DHCP_IFACE) inet dhcp"; \ + echo "auto $(SKELETON_NETWORK_DHCP_IFACE)"; \ + echo "iface $(SKELETON_NETWORK_DHCP_IFACE) inet dhcp"; \ echo " pre-up /etc/network/nfs_check"; \ echo " wait-delay 15"; \ ) >> $(TARGET_DIR)/etc/network/interfaces @@ -164,80 +170,76 @@ define SET_NETWORK_DHCP endef endif -define SET_NETWORK +define SKELETON_SET_NETWORK mkdir -p $(TARGET_DIR)/etc/network/ - $(SET_NETWORK_LOCALHOST) - $(SET_NETWORK_DHCP) + $(SKELETON_SET_NETWORK_LOCALHOST) + $(SKELETON_SET_NETWORK_DHCP) endef -TARGET_FINALIZE_HOOKS += SET_NETWORK - -# The TARGET_FINALIZE_HOOKS must be sourced only if the users choose to use the -# default skeleton. -ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y) +TARGET_FINALIZE_HOOKS += SKELETON_SET_NETWORK ifeq ($(BR2_TARGET_ENABLE_ROOT_LOGIN),y) ifeq ($(SKELETON_TARGET_GENERIC_ROOT_PASSWD),) -SYSTEM_ROOT_PASSWORD = +SKELETON_ROOT_PASSWORD = else ifneq ($(filter $$1$$% $$5$$% $$6$$%,$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)),) -SYSTEM_ROOT_PASSWORD = '$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)' +SKELETON_ROOT_PASSWORD = '$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)' else SKELETON_DEPENDENCIES += host-mkpasswd # This variable will only be evaluated in the finalize stage, so we can # be sure that host-mkpasswd will have already been built by that time. -SYSTEM_ROOT_PASSWORD = "`$(MKPASSWD) -m "$(SKELETON_TARGET_GENERIC_PASSWD_METHOD)" "$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)"`" +SKELETON_ROOT_PASSWORD = "`$(MKPASSWD) -m "$(SKELETON_TARGET_GENERIC_PASSWD_METHOD)" "$(SKELETON_TARGET_GENERIC_ROOT_PASSWD)"`" endif else # !BR2_TARGET_ENABLE_ROOT_LOGIN -SYSTEM_ROOT_PASSWORD = "*" +SKELETON_ROOT_PASSWORD = "*" endif -define SKELETON_SYSTEM_SET_ROOT_PASSWD - $(SED) s,^root:[^:]*:,root:$(SYSTEM_ROOT_PASSWORD):, $(TARGET_DIR)/etc/shadow +define SKELETON_SET_ROOT_PASSWD + $(SED) s,^root:[^:]*:,root:$(SKELETON_ROOT_PASSWORD):, $(TARGET_DIR)/etc/shadow endef -TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_SET_ROOT_PASSWD +TARGET_FINALIZE_HOOKS += SKELETON_SET_ROOT_PASSWD ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y) -define SKELETON_SYSTEM_BIN_SH +define SKELETON_BIN_SH rm -f $(TARGET_DIR)/bin/sh endef else -define SKELETON_SYSTEM_BIN_SH +define SKELETON_BIN_SH ln -sf $(SKELETON_TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh endef endif -TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_BIN_SH +TARGET_FINALIZE_HOOKS += SKELETON_BIN_SH ifeq ($(BR2_TARGET_GENERIC_GETTY),y) ifeq ($(BR2_INIT_SYSV),y) # In sysvinit inittab, the "id" must not be longer than 4 bytes, so we # skip the "tty" part and keep only the remaining. -define SKELETON_SYSTEM_GETTY +define SKELETON_SET_GETTY $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(SKELETON_TARGET_GENERIC_GETTY_PORT) | tail -c+4)::respawn:/sbin/getty -L $(SKELETON_TARGET_GENERIC_GETTY_OPTIONS) $(SKELETON_TARGET_GENERIC_GETTY_PORT) $(SKELETON_TARGET_GENERIC_GETTY_BAUDRATE) $(SKELETON_TARGET_GENERIC_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab endef else ifeq ($(BR2_INIT_BUSYBOX),y) # Add getty to busybox inittab -define SKELETON_SYSTEM_GETTY +define SKELETON_SET_GETTY $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(SKELETON_TARGET_GENERIC_GETTY_PORT)::respawn:/sbin/getty -L $(SKELETON_TARGET_GENERIC_GETTY_OPTIONS) $(SKELETON_TARGET_GENERIC_GETTY_PORT) $(SKELETON_TARGET_GENERIC_GETTY_BAUDRATE) $(SKELETON_TARGET_GENERIC_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab endef endif -TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_GETTY +TARGET_FINALIZE_HOOKS += SKELETON_SET_GETTY endif ifeq ($(BR2_INIT_BUSYBOX)$(BR2_INIT_SYSV),y) ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y) # Find commented line, if any, and remove leading '#'s -define SKELETON_SYSTEM_REMOUNT_RW +define SKELETON_REMOUNT_RW $(SED) '/^#.*-o remount,rw \/$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab endef else # Find uncommented line, if any, and add a leading '#' -define SKELETON_SYSTEM_REMOUNT_RW +define SKELETON_REMOUNT_RW $(SED) '/^[^#].*-o remount,rw \/$$/s~^~#~' $(TARGET_DIR)/etc/inittab endef endif -TARGET_FINALIZE_HOOKS += SKELETON_SYSTEM_REMOUNT_RW +TARGET_FINALIZE_HOOKS += SKELETON_REMOUNT_RW endif # BR2_INIT_BUSYBOX || BR2_INIT_SYSV endif # BR2_ROOTFS_SKELETON_DEFAULT diff --git a/bsp/buildroot/package/sl/sl.hash b/bsp/buildroot/package/sl/sl.hash new file mode 100644 index 00000000..be74670f --- /dev/null +++ b/bsp/buildroot/package/sl/sl.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 1e5996757f879c81f202a18ad8e982195cf51c41727d3fea4af01fdcbbb5563a sl-5.02.tar.gz diff --git a/bsp/buildroot/package/slang/0005-make-install-static-do-install-pkgconfig-as-install-.patch b/bsp/buildroot/package/slang/0005-make-install-static-do-install-pkgconfig-as-install-.patch new file mode 100644 index 00000000..1572e09b --- /dev/null +++ b/bsp/buildroot/package/slang/0005-make-install-static-do-install-pkgconfig-as-install-.patch @@ -0,0 +1,31 @@ +From 294bcde1afa0b3866f339f82709e867d827cea6c Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Mon, 14 Mar 2016 07:28:56 +0300 +Subject: [PATCH] make install-static do install-pkgconfig as install-elf does + +...so that install-static installs everything needed for linking with +slang. This fixes e.g. the following mc build: + + http://autobuild.buildroot.net/results/085/085194f18bc7db1e801d98e6620e3a75fd988cc5/build-end.log + +Signed-off-by: Max Filippov +--- + autoconf/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/autoconf/Makefile.in b/autoconf/Makefile.in +index a6defa6..ca1ffb2 100644 +--- a/autoconf/Makefile.in ++++ b/autoconf/Makefile.in +@@ -74,7 +74,7 @@ clean: + cd modules; $(MAKE) clean + cd slsh; $(MAKE) clean + cd demo; $(MAKE) clean +-install-static: ++install-static: install-pkgconfig + cd src; $(MAKE) install-static + cd slsh; $(MAKE) install-static + install-pkgconfig: slang.pc +-- +2.1.4 + diff --git a/bsp/buildroot/package/smack/smack.hash b/bsp/buildroot/package/smack/smack.hash new file mode 100644 index 00000000..fd512498 --- /dev/null +++ b/bsp/buildroot/package/smack/smack.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 94dc21b4a5e570af0eb44debf57491170cccdbf60e03b5a3210f2a14d6448390 smack-v1.1.0.tar.gz diff --git a/bsp/buildroot/package/smartmontools/smartmontools.hash b/bsp/buildroot/package/smartmontools/smartmontools.hash index bbaa6dd5..2f2b7aa0 100644 --- a/bsp/buildroot/package/smartmontools/smartmontools.hash +++ b/bsp/buildroot/package/smartmontools/smartmontools.hash @@ -1,3 +1,3 @@ -# From http://sourceforge.net/projects/smartmontools/files/smartmontools/6.4/ -md5 56812c8312fd123ed40ef65afde1049e smartmontools-6.4.tar.gz -sha1 855c7d555dd405e5b392b1631dc36dd9632db8b8 smartmontools-6.4.tar.gz +# From http://sourceforge.net/projects/smartmontools/files/smartmontools/6.5/ +md5 093aeec3f8f39fa9a37593c4012d3156 smartmontools-6.5.tar.gz +sha1 7e788b429534a4ae627858fbcc826b93402cee7e smartmontools-6.5.tar.gz diff --git a/bsp/buildroot/package/smartmontools/smartmontools.mk b/bsp/buildroot/package/smartmontools/smartmontools.mk index 6d0a82b4..cd0c076e 100644 --- a/bsp/buildroot/package/smartmontools/smartmontools.mk +++ b/bsp/buildroot/package/smartmontools/smartmontools.mk @@ -4,7 +4,7 @@ # ################################################################################ -SMARTMONTOOLS_VERSION = 6.4 +SMARTMONTOOLS_VERSION = 6.5 SMARTMONTOOLS_SITE = http://downloads.sourceforge.net/project/smartmontools/smartmontools/$(SMARTMONTOOLS_VERSION) SMARTMONTOOLS_LICENSE = GPLv2+ SMARTMONTOOLS_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/snappy/snappy.hash b/bsp/buildroot/package/snappy/snappy.hash new file mode 100644 index 00000000..fc979ae8 --- /dev/null +++ b/bsp/buildroot/package/snappy/snappy.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 d64e434e2ddfe9ae942708747003d489e27f2bfddaa5e9e070da98cb00f660f2 snappy-1ff9be9b8fafc8528ca9e055646f5932aa5db9c4.tar.gz diff --git a/bsp/buildroot/package/snowball-hdmiservice/snowball-hdmiservice.hash b/bsp/buildroot/package/snowball-hdmiservice/snowball-hdmiservice.hash new file mode 100644 index 00000000..e9fffd75 --- /dev/null +++ b/bsp/buildroot/package/snowball-hdmiservice/snowball-hdmiservice.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 dd2d8362a66178be082affa7cc238aebf3d671be184356bc23d13789db638b9d snowball-hdmiservice-f75c99d1c52707240a78b4ba78e41d20d3aa3b08.tar.gz diff --git a/bsp/buildroot/package/snowball-init/snowball-init.hash b/bsp/buildroot/package/snowball-init/snowball-init.hash new file mode 100644 index 00000000..f048ab73 --- /dev/null +++ b/bsp/buildroot/package/snowball-init/snowball-init.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 7adafa3e91cae286e18c062acc1b1d0676ac7352e7dedef9dc6106f905433106 snowball-init-b064be21de25729039e5e54037bbdd2e25cfd5b7.tar.gz diff --git a/bsp/buildroot/package/socketcand/0001-Remove-inline-keyword.patch b/bsp/buildroot/package/socketcand/0001-Remove-inline-keyword.patch deleted file mode 100644 index 92e8737b..00000000 --- a/bsp/buildroot/package/socketcand/0001-Remove-inline-keyword.patch +++ /dev/null @@ -1,90 +0,0 @@ -From bdb3cd081a694f8f6924e399d944e32c1578235c Mon Sep 17 00:00:00 2001 -From: Yegor Yefremov -Date: Wed, 22 Jul 2015 11:03:27 +0200 -Subject: [PATCH] Remove inline keyword - -Fixes GCC5.x compilation issues related to C99 inline semantics. - -Signed-off-by: Yegor Yefremov ---- - socketcand.h | 8 ++++---- - state_bcm.c | 2 +- - state_control.c | 2 +- - state_isotp.c | 2 +- - state_raw.c | 2 +- - 5 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/socketcand.h b/socketcand.h -index a287fe2..39eef83 100644 ---- a/socketcand.h -+++ b/socketcand.h -@@ -27,10 +27,10 @@ - - #undef DEBUG_RECEPTION - --inline void state_bcm(); --inline void state_raw(); --inline void state_isotp(); --inline void state_control(); -+void state_bcm(); -+void state_raw(); -+void state_isotp(); -+void state_control(); - - extern int client_socket; - extern char **interface_names; -diff --git a/state_bcm.c b/state_bcm.c -index c63a0a9..0c980fa 100644 ---- a/state_bcm.c -+++ b/state_bcm.c -@@ -28,7 +28,7 @@ int sc = -1; - fd_set readfds; - struct timeval tv; - --inline void state_bcm() { -+void state_bcm() { - int i, ret; - struct sockaddr_can caddr; - socklen_t caddrlen = sizeof(caddr); -diff --git a/state_control.c b/state_control.c -index 5f62b74..baa9df6 100644 ---- a/state_control.c -+++ b/state_control.c -@@ -17,7 +17,7 @@ - #include - #include - --inline void state_control() { -+void state_control() { - char buf[MAXLEN]; - int i, items; - -diff --git a/state_isotp.c b/state_isotp.c -index ae66035..4005f94 100644 ---- a/state_isotp.c -+++ b/state_isotp.c -@@ -24,7 +24,7 @@ - int si = -1; - fd_set readfds; - --inline void state_isotp() { -+void state_isotp() { - int i, items, ret; - - struct sockaddr_can addr; -diff --git a/state_raw.c b/state_raw.c -index 1bd2ece..99111ae 100644 ---- a/state_raw.c -+++ b/state_raw.c -@@ -31,7 +31,7 @@ char ctrlmsg[CMSG_SPACE(sizeof(struct timeval)) + CMSG_SPACE(sizeof(__u32))]; - struct timeval tv; - struct cmsghdr *cmsg; - --inline void state_raw() { -+void state_raw() { - char buf[MAXLEN]; - int i, ret, items; - --- -2.1.4 - diff --git a/bsp/buildroot/package/socketcand/socketcand.hash b/bsp/buildroot/package/socketcand/socketcand.hash new file mode 100644 index 00000000..6398d6dd --- /dev/null +++ b/bsp/buildroot/package/socketcand/socketcand.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7e9a02fdd61be8780ca3ff8678a37f8574fdcf74b1ab9de79bbb65257daf05db socketcand-df7fb4ff8a4439d7737fe2df3540e1ab7465721a.tar.gz diff --git a/bsp/buildroot/package/socketcand/socketcand.mk b/bsp/buildroot/package/socketcand/socketcand.mk index 10b8b5b4..0cc56ef9 100644 --- a/bsp/buildroot/package/socketcand/socketcand.mk +++ b/bsp/buildroot/package/socketcand/socketcand.mk @@ -4,7 +4,7 @@ # ################################################################################ -SOCKETCAND_VERSION = 8339e62a6bf60be571672678fb1de544768cf40e +SOCKETCAND_VERSION = df7fb4ff8a4439d7737fe2df3540e1ab7465721a SOCKETCAND_SITE = $(call github,dschanoeh,socketcand,$(SOCKETCAND_VERSION)) SOCKETCAND_AUTORECONF = YES SOCKETCAND_LICENSE = BSD-3c or GPLv2 diff --git a/bsp/buildroot/package/softether/softether.hash b/bsp/buildroot/package/softether/softether.hash new file mode 100644 index 00000000..ecc5d25d --- /dev/null +++ b/bsp/buildroot/package/softether/softether.hash @@ -0,0 +1,4 @@ +# Locally computed +sha256 4bdcc05fcd163eea735444283264e40b86626d24fddf110aa416f2c8cb82448b softether-1e17c9bcfd7e7b31756aa5389bcbff76c2c9c88a.tar.gz +sha256 fe5ff8f13b42737dfd5eb53f14c55aed714c380f181a1ae112055b04e8c97229 c5e5d7e93c6f3302adf5821c29c4efdb7630e418.patch +sha256 b5a8750426387b9211754b199f7f9f6a013dba6a1cd731c210a205679ffa1d1c 75625af541fd128f51079d0ffe5ef24645b8f421.patch diff --git a/bsp/buildroot/package/softether/softether.mk b/bsp/buildroot/package/softether/softether.mk index 489341e7..9f987744 100644 --- a/bsp/buildroot/package/softether/softether.mk +++ b/bsp/buildroot/package/softether/softether.mk @@ -4,7 +4,7 @@ # ################################################################################ -SOFTETHER_VERSION = 4b65e251f240d0b36c704acd598f4ceb07c41413 +SOFTETHER_VERSION = 1e17c9bcfd7e7b31756aa5389bcbff76c2c9c88a SOFTETHER_SITE = $(call github,SoftEtherVPN,SoftEtherVPN,$(SOFTETHER_VERSION)) SOFTETHER_PATCH = \ https://github.com/dajhorn/SoftEtherVPN/commit/c5e5d7e93c6f3302adf5821c29c4efdb7630e418.patch \ diff --git a/bsp/buildroot/package/sphinxbase/Config.in b/bsp/buildroot/package/sphinxbase/Config.in new file mode 100644 index 00000000..00a19f61 --- /dev/null +++ b/bsp/buildroot/package/sphinxbase/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_SPHINXBASE + bool "sphinxbase" + depends on BR2_TOOLCHAIN_HAS_THREADS + help + CMUSphinx toolkit is a leading speech recognition toolkit + with various tools used to build speech applications. CMU + Sphinx toolkit has a number of packages for different tasks + and applications. + + http://cmusphinx.sourceforge.net/ + +comment "sphinxbase needs a toolchain with threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/sphinxbase/sphinxbase.hash b/bsp/buildroot/package/sphinxbase/sphinxbase.hash new file mode 100644 index 00000000..9fbb6dfd --- /dev/null +++ b/bsp/buildroot/package/sphinxbase/sphinxbase.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 06971dbe272d2f73bde0ef7b3538c0c8f8ea885cb171fd6b17a5975bced66e64 sphinxbase-5prealpha.tar.gz diff --git a/bsp/buildroot/package/sphinxbase/sphinxbase.mk b/bsp/buildroot/package/sphinxbase/sphinxbase.mk new file mode 100644 index 00000000..5c87c89a --- /dev/null +++ b/bsp/buildroot/package/sphinxbase/sphinxbase.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# sphinxbase +# +################################################################################ + +SPHINXBASE_VERSION = 5prealpha +SPHINXBASE_SITE = http://downloads.sourceforge.net/project/cmusphinx/sphinxbase/5prealpha +SPHINXBASE_LICENSE = BSD-2c +# Note http://sourceforge.net/p/cmusphinx/bugs/441/ "LICENSE file missing in" +# 5prealpha tarballs". The license is contained in the copyright notice at the +# top of each source file. For example: +SPHINXBASE_LICENSE_FILES = src/libsphinxbase/util/bio.c + +SPHINXBASE_DEPENDENCIES = host-bison + +SPHINXBASE_CONF_OPTS = --without-python --without-lapack + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/spidev_test/spidev_test.mk b/bsp/buildroot/package/spidev_test/spidev_test.mk index 646372f2..52441bb3 100644 --- a/bsp/buildroot/package/spidev_test/spidev_test.mk +++ b/bsp/buildroot/package/spidev_test/spidev_test.mk @@ -16,6 +16,15 @@ SPIDEV_TEST_SITE = http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.gi SPIDEV_TEST_SOURCE = spidev_test.c?id=$(SPIDEV_TEST_VERSION) SPIDEV_TEST_LICENSE = GPLv2 +# musl libc requires linux/ioctl.h for _IOC_SIZEBITS. Do a sed patch to keep +# compatibility with different spidev_test.c versions that we support. +define SPIDEV_ADD_LINUX_IOCTL + $(SED) 's~^#include ~#include \n#include ~' \ + $(@D)/spidev_test.c +endef + +SPIDEV_TEST_POST_PATCH_HOOKS += SPIDEV_ADD_LINUX_IOCTL + define SPIDEV_TEST_EXTRACT_CMDS cp $(BR2_DL_DIR)/$(SPIDEV_TEST_SOURCE) $(@D)/spidev_test.c endef diff --git a/bsp/buildroot/package/sqlcipher/sqlcipher.hash b/bsp/buildroot/package/sqlcipher/sqlcipher.hash new file mode 100644 index 00000000..f3c7e0bd --- /dev/null +++ b/bsp/buildroot/package/sqlcipher/sqlcipher.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 25fa4f4cb38dcf9e52e4d1f46be8fee9c7aaef35b6df96912a216b289e22c2af sqlcipher-v3.2.0.tar.gz diff --git a/bsp/buildroot/package/sqlite/Config.in b/bsp/buildroot/package/sqlite/Config.in index 7ea9eb15..c9fde53b 100644 --- a/bsp/buildroot/package/sqlite/Config.in +++ b/bsp/buildroot/package/sqlite/Config.in @@ -8,13 +8,6 @@ config BR2_PACKAGE_SQLITE if BR2_PACKAGE_SQLITE -config BR2_PACKAGE_SQLITE_READLINE - bool "Command-line editing" - select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_READLINE - help - Enable command-line editing. This requires ncurses and readline. - config BR2_PACKAGE_SQLITE_STAT3 bool "Additional query optimizations (stat3)" help diff --git a/bsp/buildroot/package/sqlite/sqlite.hash b/bsp/buildroot/package/sqlite/sqlite.hash index 1f077940..ce03e1ec 100644 --- a/bsp/buildroot/package/sqlite/sqlite.hash +++ b/bsp/buildroot/package/sqlite/sqlite.hash @@ -1,4 +1,4 @@ # From http://www.sqlite.org/download.html -sha1 ea4156fc3f6a4a4a2752a5a3ac5c5b3fe7e1a24b sqlite-autoconf-3100200.tar.gz +sha1 f6f76e310389e3f510b23826f805850449ae8653 sqlite-autoconf-3130000.tar.gz # Calculated based on the hash above -sha256 a2b3b4bd1291ea7d6c8252f7edff36a4362f2f0e5d5370444ba6cbe313ae2971 sqlite-autoconf-3100200.tar.gz +sha256 e2797026b3310c9d08bd472f6d430058c6dd139ff9d4e30289884ccd9744086b sqlite-autoconf-3130000.tar.gz diff --git a/bsp/buildroot/package/sqlite/sqlite.mk b/bsp/buildroot/package/sqlite/sqlite.mk index 1603e006..0dadd765 100644 --- a/bsp/buildroot/package/sqlite/sqlite.mk +++ b/bsp/buildroot/package/sqlite/sqlite.mk @@ -4,7 +4,7 @@ # ################################################################################ -SQLITE_VERSION = 3100200 +SQLITE_VERSION = 3130000 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_VERSION).tar.gz SQLITE_SITE = http://www.sqlite.org/2016 SQLITE_LICENSE = Public domain @@ -45,11 +45,14 @@ else SQLITE_CONF_OPTS += --disable-threadsafe endif -ifeq ($(BR2_PACKAGE_SQLITE_READLINE),y) +ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy) SQLITE_DEPENDENCIES += ncurses readline -SQLITE_CONF_OPTS += --enable-readline +SQLITE_CONF_OPTS += --disable-editline --enable-readline +else ifeq ($(BR2_PACKAGE_LIBEDIT),y) +SQLITE_DEPENDENCIES += libedit +SQLITE_CONF_OPTS += --enable-editline --disable-readline else -SQLITE_CONF_OPTS += --disable-readline +SQLITE_CONF_OPTS += --disable-editline --disable-readline endif $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/squashfs/squashfs.hash b/bsp/buildroot/package/squashfs/squashfs.hash index e308089b..eb456be3 100644 --- a/bsp/buildroot/package/squashfs/squashfs.hash +++ b/bsp/buildroot/package/squashfs/squashfs.hash @@ -1,2 +1,2 @@ -# Locally computed: -sha256 0d605512437b1eb800b4736791559295ee5f60177e102e4d4ccd0ee241a5f3f6 squashfs4.3.tar.gz +# Locally computed +sha256 e807202ab4dcfeea214df49d3a728b9a85644a7e7262fc6fcd875a0def99d4ed squashfs-9c1db6d13a51a2e009f0027ef336ce03624eac0d.tar.gz diff --git a/bsp/buildroot/package/squashfs/squashfs.mk b/bsp/buildroot/package/squashfs/squashfs.mk index cdeb9c8f..1a5f1ea7 100644 --- a/bsp/buildroot/package/squashfs/squashfs.mk +++ b/bsp/buildroot/package/squashfs/squashfs.mk @@ -4,9 +4,9 @@ # ################################################################################ -SQUASHFS_VERSION = 4.3 -SQUASHFS_SOURCE = squashfs$(SQUASHFS_VERSION).tar.gz -SQUASHFS_SITE = http://downloads.sourceforge.net/project/squashfs/squashfs/squashfs$(SQUASHFS_VERSION) +SQUASHFS_VERSION = 9c1db6d13a51a2e009f0027ef336ce03624eac0d +SQUASHFS_SITE = https://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git +SQUASHFS_SITE_METHOD = git SQUASHFS_LICENSE = GPLv2+ SQUASHFS_LICENSE_FILES = COPYING SQUASHFS_MAKE_ARGS = XATTR_SUPPORT=1 diff --git a/bsp/buildroot/package/squeezelite/0003-ffmpeg_2_9.patch b/bsp/buildroot/package/squeezelite/0003-ffmpeg_2_9.patch new file mode 100644 index 00000000..f69b829b --- /dev/null +++ b/bsp/buildroot/package/squeezelite/0003-ffmpeg_2_9.patch @@ -0,0 +1,57 @@ +Fix compilation with ffmpeg >= 2.9 + +Downloaded from Debian: +https://sources.debian.net/src/squeezelite/1.8-3/debian/patches/ffmpeg_2.9.patch/ + +Signed-off-by: Bernd Kuhls + + +Description: Replace deprecated FFmpeg API +Author: Andreas Cadhalpun +Last-Update: <2015-11-02> + +--- squeezelite-1.8.orig/ffmpeg.c ++++ squeezelite-1.8/ffmpeg.c +@@ -52,8 +52,8 @@ struct ff_s { + unsigned (* avcodec_version)(void); + AVCodec * (* avcodec_find_decoder)(int); + int attribute_align_arg (* avcodec_open2)(AVCodecContext *, const AVCodec *, AVDictionary **); +- AVFrame * (* avcodec_alloc_frame)(void); +- void (* avcodec_free_frame)(AVFrame **); ++ AVFrame * (* av_frame_alloc)(void); ++ void (* av_frame_free)(AVFrame **); + int attribute_align_arg (* avcodec_decode_audio4)(AVCodecContext *, AVFrame *, int *, const AVPacket *); + // ffmpeg symbols to be dynamically loaded from libavformat + unsigned (* avformat_version)(void); +@@ -324,7 +324,7 @@ static decode_state ff_decode(void) { + + AVCODEC(ff, open2, ff->codecC, codec, NULL); + +- ff->frame = AVCODEC(ff, alloc_frame); ++ ff->frame = AV(ff, frame_alloc); + + ff->avpkt = AV(ff, malloc, sizeof(AVPacket)); + if (ff->avpkt == NULL) { +@@ -520,9 +520,9 @@ static void _free_ff_data(void) { + if (ff->frame) { + // ffmpeg version dependant free function + #if !LINKALL +- ff->avcodec_free_frame ? AVCODEC(ff, free_frame, &ff->frame) : AV(ff, freep, &ff->frame); ++ ff->av_frame_free ? AV(ff, frame_free, &ff->frame) : AV(ff, freep, &ff->frame); + #elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(54,28,0) +- AVCODEC(ff, free_frame, &ff->frame); ++ AV(ff, frame_free, &ff->frame); + #else + AV(ff, freep, &ff->frame); + #endif +@@ -607,8 +607,8 @@ static bool load_ff() { + ff->avcodec_version = dlsym(handle_codec, "avcodec_version"); + ff->avcodec_find_decoder = dlsym(handle_codec, "avcodec_find_decoder"); + ff->avcodec_open2 = dlsym(handle_codec, "avcodec_open2"); +- ff->avcodec_alloc_frame = dlsym(handle_codec, "avcodec_alloc_frame"); +- ff->avcodec_free_frame = dlsym(handle_codec, "avcodec_free_frame"); ++ ff->av_frame_alloc = dlsym(handle_codec, "av_frame_alloc"); ++ ff->av_frame_free = dlsym(handle_codec, "av_frame_free"); + ff->avcodec_decode_audio4 = dlsym(handle_codec, "avcodec_decode_audio4"); + ff->av_init_packet = dlsym(handle_codec, "av_init_packet"); + ff->av_free_packet = dlsym(handle_codec, "av_free_packet"); diff --git a/bsp/buildroot/package/squeezelite/Config.in b/bsp/buildroot/package/squeezelite/Config.in index 1c2960ea..63b91830 100644 --- a/bsp/buildroot/package/squeezelite/Config.in +++ b/bsp/buildroot/package/squeezelite/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_SQUEEZELITE bool "squeezelite" depends on BR2_USE_WCHAR # flac - depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_USE_MMU # mpg123 depends on !BR2_STATIC_LIBS # dlopen select BR2_PACKAGE_ALSA_LIB @@ -21,8 +21,8 @@ if BR2_PACKAGE_SQUEEZELITE config BR2_PACKAGE_SQUEEZELITE_FFMPEG bool "Enable WMA and ALAC decoding" default y + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS select BR2_PACKAGE_FFMPEG - depends on !BR2_nios2 # ffmpeg config BR2_PACKAGE_SQUEEZELITE_DSD bool "Enable DSD decoding" @@ -36,7 +36,7 @@ config BR2_PACKAGE_SQUEEZELITE_VISEXPORT endif -comment "squeezelite needs a toolchain w/ wchar, threads, dynamic library" +comment "squeezelite needs a toolchain w/ wchar, NPTL, dynamic library" depends on BR2_USE_MMU - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \ + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ || BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/squid/Config.in b/bsp/buildroot/package/squid/Config.in index 0ab6b373..12bfe19a 100644 --- a/bsp/buildroot/package/squid/Config.in +++ b/bsp/buildroot/package/squid/Config.in @@ -1,13 +1,12 @@ -comment "squid needs a toolchain w/ C++, headers >= 3.0" +comment "squid needs a toolchain w/ C++" depends on BR2_USE_MMU - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 + depends on !BR2_INSTALL_LIBSTDCPP config BR2_PACKAGE_SQUID bool "squid" depends on BR2_INSTALL_LIBSTDCPP # needs fork() depends on BR2_USE_MMU - depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap select BR2_PACKAGE_LIBCAP help Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. diff --git a/bsp/buildroot/package/squid/squid.hash b/bsp/buildroot/package/squid/squid.hash index 106bde6f..b25a0e0d 100644 --- a/bsp/buildroot/package/squid/squid.hash +++ b/bsp/buildroot/package/squid/squid.hash @@ -1,3 +1,3 @@ -# From http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.15.tar.bz2.asc -md5 59d6732a4ebd3f63e2164d9847dc37c0 squid-3.5.15.tar.bz2 -sha1 72279380ea94aa731f5cf82f3fb50f9250f1692a squid-3.5.15.tar.bz2 +# From http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.20.tar.xz.asc +md5 48fb18679a30606de98882528beab3a7 squid-3.5.20.tar.xz +sha1 2bb6d3568e7167c9b99fea092a97287d0e430863 squid-3.5.20.tar.xz diff --git a/bsp/buildroot/package/squid/squid.mk b/bsp/buildroot/package/squid/squid.mk index b4341ba4..7179b33b 100644 --- a/bsp/buildroot/package/squid/squid.mk +++ b/bsp/buildroot/package/squid/squid.mk @@ -5,8 +5,8 @@ ################################################################################ SQUID_VERSION_MAJOR = 3.5 -SQUID_VERSION = $(SQUID_VERSION_MAJOR).15 -SQUID_SOURCE = squid-$(SQUID_VERSION).tar.bz2 +SQUID_VERSION = $(SQUID_VERSION_MAJOR).20 +SQUID_SOURCE = squid-$(SQUID_VERSION).tar.xz SQUID_SITE = http://www.squid-cache.org/Versions/v3/$(SQUID_VERSION_MAJOR) SQUID_LICENSE = GPLv2+ SQUID_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/sshfs/sshfs.hash b/bsp/buildroot/package/sshfs/sshfs.hash index 16253e01..09ae5d1c 100644 --- a/bsp/buildroot/package/sshfs/sshfs.hash +++ b/bsp/buildroot/package/sshfs/sshfs.hash @@ -1,2 +1,2 @@ -# Locally computed -sha256 e9171452e5d0150b9c6a2158fd2e2dcefb5d5d03ba4d208949e00a3a46c6e63e sshfs-fuse-2.5.tar.gz +# Locally calculated after checking pgp signature +sha256 7f689174d02e6b7e2631306fda4fb8e6b4483102d1bce82b3cdafba33369ad22 sshfs-2.8.tar.gz diff --git a/bsp/buildroot/package/sshfs/sshfs.mk b/bsp/buildroot/package/sshfs/sshfs.mk index f59f7eab..de4c361d 100644 --- a/bsp/buildroot/package/sshfs/sshfs.mk +++ b/bsp/buildroot/package/sshfs/sshfs.mk @@ -4,9 +4,8 @@ # ################################################################################ -SSHFS_VERSION = 2.5 -SSHFS_SITE = https://github.com/libfuse/sshfs/releases/download/sshfs_$(subst .,_,$(SSHFS_VERSION)) -SSHFS_SOURCE = sshfs-fuse-$(SSHFS_VERSION).tar.gz +SSHFS_VERSION = 2.8 +SSHFS_SITE = https://github.com/libfuse/sshfs/releases/download/sshfs_$(SSHFS_VERSION) SSHFS_LICENSE = GPLv2 SSHFS_LICENSE_FILES = COPYING SSHFS_DEPENDENCIES = \ diff --git a/bsp/buildroot/package/sstrip/Config.in b/bsp/buildroot/package/sstrip/Config.in index 12a5941c..c458f8ea 100644 --- a/bsp/buildroot/package/sstrip/Config.in +++ b/bsp/buildroot/package/sstrip/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_SSTRIP bool "sstrip" + depends on BR2_DEPRECATED_SINCE_2016_08 help Small utility that removes a few bytes from an executable that strip leaves behind. diff --git a/bsp/buildroot/package/sstrip/sstrip.mk b/bsp/buildroot/package/sstrip/sstrip.mk index fe57b3c1..685ea09f 100644 --- a/bsp/buildroot/package/sstrip/sstrip.mk +++ b/bsp/buildroot/package/sstrip/sstrip.mk @@ -6,7 +6,6 @@ SSTRIP_SITE = svn://svn.openwrt.org/openwrt/trunk/tools/sstrip SSTRIP_VERSION = 20154 -HOST_SSTRIP_BINARY = $(GNU_TARGET_NAME)-sstrip define SSTRIP_BUILD_CMDS cd $(@D) ; \ @@ -18,15 +17,4 @@ define SSTRIP_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/sstrip $(TARGET_DIR)/usr/bin/sstrip endef -define HOST_SSTRIP_BUILD_CMDS - cd $(@D) ; \ - $(HOSTCC) $(HOST_CFLAGS) -include endian.h -include byteswap.h \ - -o sstrip src/sstrip.c -endef - -define HOST_SSTRIP_INSTALL_CMDS - $(INSTALL) -D $(@D)/sstrip $(HOST_DIR)/usr/bin/$(HOST_SSTRIP_BINARY) -endef - $(eval $(generic-package)) -$(eval $(host-generic-package)) diff --git a/bsp/buildroot/package/start-stop-daemon/Config.in b/bsp/buildroot/package/start-stop-daemon/Config.in index 7d8eb34a..8cf44f78 100644 --- a/bsp/buildroot/package/start-stop-daemon/Config.in +++ b/bsp/buildroot/package/start-stop-daemon/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_START_STOP_DAEMON bool "start-stop-daemon" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help start-stop-daemon is used to control the creation and termination of system-level processes. diff --git a/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.hash b/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.hash index a05b9a06..18a19486 100644 --- a/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.hash +++ b/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.hash @@ -1,2 +1,2 @@ -# From http://ftp.de.debian.org/debian/pool/main/d/dpkg/dpkg_1.18.4.dsc -sha256 fe89243868888ce715bf45861f26264f767d4e4dbd0d6f1a26ce60bbbbf106da dpkg_1.18.4.tar.xz +# From http://ftp.de.debian.org/debian/pool/main/d/dpkg/dpkg_1.18.7.dsc +sha256 ace36d3a6dc750a42baf797f9e75ec580a21f92bb9ff96b482100755d6d9b87b dpkg_1.18.7.tar.xz diff --git a/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.mk b/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.mk index e0ef6c99..d849badf 100644 --- a/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.mk +++ b/bsp/buildroot/package/start-stop-daemon/start-stop-daemon.mk @@ -7,9 +7,9 @@ # Debian start-stop-daemon is part of dpkg. Since start-stop-daemon is the only # interesting tool in it, we call the buildroot package start-stop-daemon. -START_STOP_DAEMON_VERSION = 1.18.4 +START_STOP_DAEMON_VERSION = 1.18.7 START_STOP_DAEMON_SOURCE = dpkg_$(START_STOP_DAEMON_VERSION).tar.xz -START_STOP_DAEMON_SITE = http://snapshot.debian.org/archive/debian/20151225T154922Z/pool/main/d/dpkg +START_STOP_DAEMON_SITE = http://snapshot.debian.org/archive/debian/20160509T100042Z/pool/main/d/dpkg START_STOP_DAEMON_CONF_OPTS = \ --disable-dselect \ --disable-update-alternatives \ diff --git a/bsp/buildroot/package/stella/0001-Add-cross-compilation-support.patch b/bsp/buildroot/package/stella/0001-Add-cross-compilation-support.patch new file mode 100644 index 00000000..3266d31d --- /dev/null +++ b/bsp/buildroot/package/stella/0001-Add-cross-compilation-support.patch @@ -0,0 +1,29 @@ +From fba2627bebc7d497f64827a0517316e9b5c64c0a Mon Sep 17 00:00:00 2001 +From: Sergio Prado +Date: Tue, 26 Jul 2016 13:24:00 -0300 +Subject: [PATCH 1/2] Add cross-compilation support + +Signed-off-by: Sergio Prado +--- + configure | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 0d90a4f0acde..a4afea8e1880 100755 +--- a/configure ++++ b/configure +@@ -502,8 +502,9 @@ if test -n "$_host"; then + _host_os=win32 + ;; + *) +- echo "Cross-compiling to unknown target, please add your target to configure." +- exit 1 ++ echo "Cross-compiling to $_host target" ++ DEFINES="$DEFINES -DUNIX" ++ _host_os=unix + ;; + esac + +-- +1.9.1 + diff --git a/bsp/buildroot/package/stella/0002-Do-not-strip-when-installing.patch b/bsp/buildroot/package/stella/0002-Do-not-strip-when-installing.patch new file mode 100644 index 00000000..cba4b088 --- /dev/null +++ b/bsp/buildroot/package/stella/0002-Do-not-strip-when-installing.patch @@ -0,0 +1,26 @@ +From a86140353cb2e162d88da9caa1716915be2f6893 Mon Sep 17 00:00:00 2001 +From: Sergio Prado +Date: Tue, 26 Jul 2016 13:25:12 -0300 +Subject: [PATCH 2/2] Do not strip when installing + +Signed-off-by: Sergio Prado +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 6dd0129587b3..b1aea5eed4a1 100644 +--- a/Makefile ++++ b/Makefile +@@ -172,7 +172,7 @@ config.mak: $(srcdir)/configure + + install: all + $(INSTALL) -d "$(DESTDIR)$(BINDIR)" +- $(INSTALL) -c -s -m 755 "$(srcdir)/stella$(EXEEXT)" "$(DESTDIR)$(BINDIR)/stella$(EXEEXT)" ++ $(INSTALL) -c -m 755 "$(srcdir)/stella$(EXEEXT)" "$(DESTDIR)$(BINDIR)/stella$(EXEEXT)" + $(INSTALL) -d "$(DESTDIR)$(DOCDIR)" + $(INSTALL) -c -m 644 "$(srcdir)/Announce.txt" "$(srcdir)/Changes.txt" "$(srcdir)/Copyright.txt" "$(srcdir)/License.txt" "$(srcdir)/README-SDL.txt" "$(srcdir)/Readme.txt" "$(srcdir)/Todo.txt" "$(srcdir)/docs/index.html" "$(srcdir)/docs/debugger.html" "$(DESTDIR)$(DOCDIR)/" + $(INSTALL) -d "$(DESTDIR)$(DOCDIR)/graphics" +-- +1.9.1 + diff --git a/bsp/buildroot/package/stella/0003-configure-Add-CXXFLAGS-for-test-compilations.patch b/bsp/buildroot/package/stella/0003-configure-Add-CXXFLAGS-for-test-compilations.patch new file mode 100644 index 00000000..c548d082 --- /dev/null +++ b/bsp/buildroot/package/stella/0003-configure-Add-CXXFLAGS-for-test-compilations.patch @@ -0,0 +1,44 @@ +From 28f0c20302e5c64712899848cae3d0a48a9dc952 Mon Sep 17 00:00:00 2001 +From: Vlad Zakharov +Date: Wed, 10 Aug 2016 18:02:59 +0300 +Subject: [PATCH] configure: Add $CXXFLAGS for test compilations + +Why we are passing only linker flags when compiling test code? +Loosing compiler flags leads to errors. + +Signed-off-by: Vlad Zakharov +--- + configure | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure b/configure +index 0d90a4f..618fe78 100755 +--- a/configure ++++ b/configure +@@ -63,9 +63,9 @@ cc_check() { + echo >> "$TMPLOG" + cat "$TMPC" >> "$TMPLOG" + echo >> "$TMPLOG" +- echo "$CXX $TMPC $LDFLAGS -o $TMPO$EXEEXT $@" >> "$TMPLOG" ++ echo "$CXX $TMPC $CXXFLAGS $LDFLAGS -o $TMPO$EXEEXT $@" >> "$TMPLOG" + rm -f "$TMPO$EXEEXT" +- ( $CXX "$TMPC" $LDFLAGS -o "$TMPO$EXEEXT" "$@" ) >> "$TMPLOG" 2>&1 ++ ( $CXX "$TMPC" $CXXFLAGS $LDFLAGS -o "$TMPO$EXEEXT" "$@" ) >> "$TMPLOG" 2>&1 + TMP="$?" + echo >> "$TMPLOG" + return "$TMP" +@@ -107,9 +107,9 @@ EOF + + if test -n "$_host"; then + # In cross-compiling mode, we cannot run the result +- eval "$1 $LDFLAGS -o tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp 2> /dev/null" && rm -f tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp ++ eval "$1 $CXXFLAGS $LDFLAGS -o tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp 2> /dev/null" && rm -f tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp + else +- eval "$1 $LDFLAGS -o tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp 2> /dev/null" && eval "./tmp_cxx_compiler 2> /dev/null" && rm -f tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp ++ eval "$1 $CXXFLAGS $LDFLAGS -o tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp 2> /dev/null" && eval "./tmp_cxx_compiler 2> /dev/null" && rm -f tmp_cxx_compiler$EXEEXT tmp_cxx_compiler.cpp + fi + } + +-- +2.5.5 + diff --git a/bsp/buildroot/package/stella/Config.in b/bsp/buildroot/package/stella/Config.in new file mode 100644 index 00000000..55f177f7 --- /dev/null +++ b/bsp/buildroot/package/stella/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_STELLA + bool "stella" + select BR2_PACKAGE_SDL2 + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_ZLIB + depends on !BR2_STATIC_LIBS # sdl2 + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 + help + Stella is a multi-platform Atari 2600 VCS emulator. + + http://stella.sourceforge.net/ + +comment "stella needs a toolchain w/ dynamic library, C++, gcc >= 4.8" + depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 diff --git a/bsp/buildroot/package/stella/stella.hash b/bsp/buildroot/package/stella/stella.hash new file mode 100644 index 00000000..71defd28 --- /dev/null +++ b/bsp/buildroot/package/stella/stella.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 b2727a0e2d3b112d35dcb89b4bdc789e2c7f15e9d9c7054a69a2f67facd7416e stella-4.7.2-src.tar.xz diff --git a/bsp/buildroot/package/stella/stella.mk b/bsp/buildroot/package/stella/stella.mk new file mode 100644 index 00000000..2e9d57b8 --- /dev/null +++ b/bsp/buildroot/package/stella/stella.mk @@ -0,0 +1,38 @@ +################################################################################ +# +# stella +# +################################################################################ + +STELLA_VERSION = 4.7.2 +STELLA_SOURCE = stella-$(STELLA_VERSION)-src.tar.xz +STELLA_SITE = http://downloads.sourceforge.net/stella +STELLA_LICENSE = GPLv2+ +STELLA_LICENSE_FILES = Copyright.txt License.txt + +STELLA_DEPENDENCIES = sdl2 libpng zlib + +STELLA_CONF_OPTS = \ + --host=$(GNU_TARGET_NAME) \ + --prefix=/usr \ + --with-sdl-prefix=$(STAGING_DIR)/usr + +# The configure script is not autoconf based, so we use the +# generic-package infrastructure +define STELLA_CONFIGURE_CMDS + (cd $(@D); \ + $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_ARGS) \ + ./configure $(STELLA_CONF_OPTS) \ + ) +endef + +define STELLA_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define STELLA_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch b/bsp/buildroot/package/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch deleted file mode 100644 index 0d81b590..00000000 --- a/bsp/buildroot/package/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch +++ /dev/null @@ -1,104 +0,0 @@ -From d83bcfa9a2977c037c638ae09e561f554ab19681 Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin -Date: Sat, 26 Dec 2015 00:13:36 +0300 -Subject: [PATCH] arc, metag, nios2, or1k, tile: fix build - -Fix build regression introduced by commit -34683e3926d8c2daa368afb805da422ee7043396. - -* linux/32/syscallent.h: Add sys_ prefix to ARCH_mmap and mmap. -* linux/arc/syscallent.h: Add sys_ prefix to ARCH_mmap and mmap_pgoff. -* linux/nios2/syscallent.h: Likewise. -* linux/or1k/syscallent.h: Likewise. -* linux/tile/syscallent1.h: Add sys_ prefix to ARCH_mmap and sys_mmap_4koff. -* pathtrace.c (pathtrace_match): Handle SEN_ARCH_mmap. - -This is a back-port of upstream commit -http://sourceforge.net/p/strace/code/ci/dd1a80c8d213eed95fe55b7ebcb07ee165dd8e4b/ - -It should be removed upon the next bump of strace version. - -Signed-off-by: Alexey Brodkin ---- - linux/32/syscallent.h | 6 +++--- - linux/arc/syscallent.h | 2 +- - linux/nios2/syscallent.h | 2 +- - linux/or1k/syscallent.h | 2 +- - linux/tile/syscallent1.h | 2 +- - pathtrace.c | 1 + - 6 files changed, 8 insertions(+), 7 deletions(-) - -diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h -index 5f997e7..e6f895c 100644 ---- a/linux/32/syscallent.h -+++ b/linux/32/syscallent.h -@@ -1,5 +1,5 @@ --#ifndef ARCH_mmap --# define ARCH_mmap mmap -+#ifndef sys_ARCH_mmap -+# define sys_ARCH_mmap sys_mmap - #endif - [ 0] = { 2, 0, SEN(io_setup), "io_setup" }, - [ 1] = { 1, 0, SEN(io_destroy), "io_destroy" }, -@@ -276,5 +276,5 @@ - [283] = { 2, 0, SEN(membarrier), "membarrier", }, - [284] = { 3, TM, SEN(mlock2), "mlock2" }, - --#undef ARCH_mmap -+#undef sys_ARCH_mmap - #undef ARCH_WANT_SYNC_FILE_RANGE2 -diff --git a/linux/arc/syscallent.h b/linux/arc/syscallent.h -index 5847dc4..1100008 100644 ---- a/linux/arc/syscallent.h -+++ b/linux/arc/syscallent.h -@@ -1,4 +1,4 @@ --#define ARCH_mmap mmap_pgoff -+#define sys_ARCH_mmap sys_mmap_pgoff - #include "32/syscallent.h" - [244] = { 3, 0, SEN(printargs), "arc_cacheflush"}, - [245] = { 1, 0, SEN(printargs), "arc_settls" }, -diff --git a/linux/nios2/syscallent.h b/linux/nios2/syscallent.h -index 8a4b70e..01efe3a 100644 ---- a/linux/nios2/syscallent.h -+++ b/linux/nios2/syscallent.h -@@ -1,4 +1,4 @@ --#define ARCH_mmap mmap_pgoff -+#define sys_ARCH_mmap sys_mmap_pgoff - #include "32/syscallent.h" - [244] = {4, 0, SEN(cacheflush), "cacheflush"}, - [245 ... 259] = { }, -diff --git a/linux/or1k/syscallent.h b/linux/or1k/syscallent.h -index ed84b3b..351fe25 100644 ---- a/linux/or1k/syscallent.h -+++ b/linux/or1k/syscallent.h -@@ -1,4 +1,4 @@ --#define ARCH_mmap mmap_pgoff -+#define sys_ARCH_mmap sys_mmap_pgoff - #include "32/syscallent.h" - [244] = { 3, NF, SEN(or1k_atomic), "or1k_atomic" }, - [245 ... 259] = { }, -diff --git a/linux/tile/syscallent1.h b/linux/tile/syscallent1.h -index c86f059..28dbab4 100644 ---- a/linux/tile/syscallent1.h -+++ b/linux/tile/syscallent1.h -@@ -1,4 +1,4 @@ --#define ARCH_mmap mmap_4koff -+#define sys_ARCH_mmap sys_mmap_4koff - #define ARCH_WANT_SYNC_FILE_RANGE2 1 - #include "32/syscallent.h" - [244] = { 1, 0, SEN(printargs), "cmpxchg_badaddr" }, -diff --git a/pathtrace.c b/pathtrace.c -index d530ec2..e72cdf7 100644 ---- a/pathtrace.c -+++ b/pathtrace.c -@@ -216,6 +216,7 @@ pathtrace_match(struct tcb *tcp) - case SEN_mmap: - case SEN_mmap_4koff: - case SEN_mmap_pgoff: -+ case SEN_ARCH_mmap: - /* x, x, x, x, fd */ - return fdmatch(tcp, tcp->u_arg[4]); - --- -2.4.3 - diff --git a/bsp/buildroot/package/strace/strace.hash b/bsp/buildroot/package/strace/strace.hash index f47d51b0..6c09cca3 100644 --- a/bsp/buildroot/package/strace/strace.hash +++ b/bsp/buildroot/package/strace/strace.hash @@ -1,3 +1,5 @@ -# From http://sourceforge.net/projects/strace/files/strace/4.11/ -md5 a15d2555a7febb56d00c6e1a51c655dc strace-4.11.tar.xz -sha1 8fd717dc3c51b69fde51ce0bdb066404a678363c strace-4.11.tar.xz +# From http://sourceforge.net/projects/strace/files/strace/4.13/ +md5 4b78c7febdd24c79d5147824d1a080a3 strace-4.13.tar.xz +sha1 7e1fc622e2b166cb74799a14c23d6bfde9ddbc3c strace-4.13.tar.xz +# Locally computed +sha256 d48f732576c91ece36a5843d63f9be054c40ef59f1e4773986042636861625d7 strace-4.13.tar.xz diff --git a/bsp/buildroot/package/strace/strace.mk b/bsp/buildroot/package/strace/strace.mk index e25428e6..b060137a 100644 --- a/bsp/buildroot/package/strace/strace.mk +++ b/bsp/buildroot/package/strace/strace.mk @@ -4,16 +4,12 @@ # ################################################################################ -STRACE_VERSION = 4.11 +STRACE_VERSION = 4.13 STRACE_SOURCE = strace-$(STRACE_VERSION).tar.xz STRACE_SITE = http://downloads.sourceforge.net/project/strace/strace/$(STRACE_VERSION) STRACE_LICENSE = BSD-3c STRACE_LICENSE_FILES = COPYING -STRACE_CONF_ENV = \ - ac_cv_header_linux_if_packet_h=yes \ - ac_cv_header_linux_netlink_h=yes - define STRACE_REMOVE_STRACE_GRAPH rm -f $(TARGET_DIR)/usr/bin/strace-graph endef diff --git a/bsp/buildroot/package/stress-ng/Config.in b/bsp/buildroot/package/stress-ng/Config.in index 1e475b19..20ec93af 100644 --- a/bsp/buildroot/package/stress-ng/Config.in +++ b/bsp/buildroot/package/stress-ng/Config.in @@ -7,6 +7,8 @@ config BR2_PACKAGE_STRESS_NG # perf.c needs PERF_COUNT_HW_REF_CPU_CYCLES depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 depends on !BR2_microblaze # keyutils + # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 + depends on !BR2_nios2 depends on !BR2_STATIC_LIBS # keyutils select BR2_PACKAGE_KEYUTILS # stress-key.c needs keyutils.h select BR2_PACKAGE_ATTR # stress-xattr.c needs xattr.h @@ -19,7 +21,7 @@ config BR2_PACKAGE_STRESS_NG http://kernel.ubuntu.com/~cking/stress-ng/ comment "stress-ng needs a glibc toolchain w/ dynamic library, headers >= 3.3" - depends on !BR2_microblaze + depends on !BR2_microblaze && !BR2_nios2 depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3 \ || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/stress-ng/stress-ng.hash b/bsp/buildroot/package/stress-ng/stress-ng.hash index 49793039..d09edc0e 100644 --- a/bsp/buildroot/package/stress-ng/stress-ng.hash +++ b/bsp/buildroot/package/stress-ng/stress-ng.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 9d17dffafdf8dd71eb5c191973b65d4eb2964ecc31f1d01ad188fd03a0c49f6c stress-ng-0.04.16.tar.gz +sha256 7af9759a37902ebf401f92fedeada0b82bcd1e3f4e9e10130177344f143470eb stress-ng-0.06.02.tar.gz diff --git a/bsp/buildroot/package/stress-ng/stress-ng.mk b/bsp/buildroot/package/stress-ng/stress-ng.mk index 114c4273..6015a1e9 100644 --- a/bsp/buildroot/package/stress-ng/stress-ng.mk +++ b/bsp/buildroot/package/stress-ng/stress-ng.mk @@ -4,7 +4,7 @@ # ################################################################################ -STRESS_NG_VERSION = 0.04.16 +STRESS_NG_VERSION = 0.06.02 STRESS_NG_SITE = http://kernel.ubuntu.com/~cking/tarballs/stress-ng STRESS_NG_LICENSE = GPLv2+ STRESS_NG_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/strongswan/Config.in b/bsp/buildroot/package/strongswan/Config.in index cada78bb..0a95ac02 100644 --- a/bsp/buildroot/package/strongswan/Config.in +++ b/bsp/buildroot/package/strongswan/Config.in @@ -1,11 +1,13 @@ comment "strongswan needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS menuconfig BR2_PACKAGE_STRONGSWAN bool "strongswan" depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_ATOMIC depends on !BR2_STATIC_LIBS help strongSwan is an OpenSource IPsec implementation for the @@ -33,6 +35,7 @@ config BR2_PACKAGE_STRONGSWAN_OPENSSL config BR2_PACKAGE_STRONGSWAN_GCRYPT bool "libgcrypt" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt select BR2_PACKAGE_LIBGCRYPT config BR2_PACKAGE_STRONGSWAN_GMP diff --git a/bsp/buildroot/package/strongswan/strongswan.hash b/bsp/buildroot/package/strongswan/strongswan.hash index 5a353f15..97fb1998 100644 --- a/bsp/buildroot/package/strongswan/strongswan.hash +++ b/bsp/buildroot/package/strongswan/strongswan.hash @@ -1,4 +1,4 @@ -# From http://download.strongswan.org/strongswan-5.3.5.tar.bz2.md5 -md5 a2f9ea185f27e7f8413d4cd2ee61efe4 strongswan-5.3.5.tar.bz2 +# From http://download.strongswan.org/strongswan-5.4.0.tar.bz2.md5 +md5 9d7c77b0da9b69f859624897e5e9ebbf strongswan-5.4.0.tar.bz2 # Calculated based on the hash above -sha256 2c84b663da652b1ff180a1a73c24a3d7b9fc4b9b8ba6bd07f94a1e33092e6350 strongswan-5.3.5.tar.bz2 +sha256 f8288faaea6a9cd8a7d413c0b76b7922be5da3dfcd01fd05cb30d2c55d3bbe89 strongswan-5.4.0.tar.bz2 diff --git a/bsp/buildroot/package/strongswan/strongswan.mk b/bsp/buildroot/package/strongswan/strongswan.mk index e435c3ad..36b51485 100644 --- a/bsp/buildroot/package/strongswan/strongswan.mk +++ b/bsp/buildroot/package/strongswan/strongswan.mk @@ -4,7 +4,7 @@ # ################################################################################ -STRONGSWAN_VERSION = 5.3.5 +STRONGSWAN_VERSION = 5.4.0 STRONGSWAN_SOURCE = strongswan-$(STRONGSWAN_VERSION).tar.bz2 STRONGSWAN_SITE = http://download.strongswan.org STRONGSWAN_LICENSE = GPLv2+ @@ -35,6 +35,10 @@ STRONGSWAN_CONF_OPTS += \ --enable-vici=$(if $(BR2_PACKAGE_STRONGSWAN_VICI),yes,no) \ --enable-swanctl=$(if $(BR2_PACKAGE_STRONGSWAN_VICI),yes,no) +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) +STRONGSWAN_CONF_ENV += LIBS='-latomic' +endif + ifeq ($(BR2_PACKAGE_STRONGSWAN_EAP),y) STRONGSWAN_CONF_OPTS += \ --enable-eap-sim \ @@ -71,15 +75,10 @@ STRONGSWAN_DEPENDENCIES += \ $(if $(BR2_PACKAGE_MYSQL),mysql) endif -ifeq ($(BR2_PACKAGE_IPTABLES),y) -STRONGSWAN_DEPENDENCIES += iptables +# disable connmark/forecast until net/if.h vs. linux/if.h conflict resolved +# problem exist since linux 4.5 header changes STRONGSWAN_CONF_OPTS += \ - --enable-connmark \ - --enable-forecast -else -STRONGSWAN_COF_OPTS += \ --disable-connmark \ --disable-forecast -endif $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/stunnel/stunnel.hash b/bsp/buildroot/package/stunnel/stunnel.hash index 1801e61c..abea1a2f 100644 --- a/bsp/buildroot/package/stunnel/stunnel.hash +++ b/bsp/buildroot/package/stunnel/stunnel.hash @@ -1,2 +1,2 @@ -# From http://www.stunnel.org/pipermail/stunnel-announce/2016-January/000117.html -sha256 43909625403ea634fa7cb8399d58faf8e7f11c1b7b29097491469951f56df551 stunnel-5.29.tar.gz +# From http://www.stunnel.org/pipermail/stunnel-announce/2016-July/000124.html +sha256 ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d stunnel-5.35.tar.gz diff --git a/bsp/buildroot/package/stunnel/stunnel.mk b/bsp/buildroot/package/stunnel/stunnel.mk index 8ea71b88..ab4457e6 100644 --- a/bsp/buildroot/package/stunnel/stunnel.mk +++ b/bsp/buildroot/package/stunnel/stunnel.mk @@ -5,7 +5,7 @@ ################################################################################ STUNNEL_VERSION_MAJOR = 5 -STUNNEL_VERSION = $(STUNNEL_VERSION_MAJOR).29 +STUNNEL_VERSION = $(STUNNEL_VERSION_MAJOR).35 STUNNEL_SITE = http://www.usenix.org.uk/mirrors/stunnel/archive/$(STUNNEL_VERSION_MAJOR).x STUNNEL_DEPENDENCIES = openssl STUNNEL_CONF_OPTS = --with-ssl=$(STAGING_DIR)/usr --with-threads=fork \ diff --git a/bsp/buildroot/package/subversion/subversion.hash b/bsp/buildroot/package/subversion/subversion.hash index 4f0a4460..926bbc55 100644 --- a/bsp/buildroot/package/subversion/subversion.hash +++ b/bsp/buildroot/package/subversion/subversion.hash @@ -1,2 +1,2 @@ # From http://subversion.apache.org/download.cgi#recommended-release -sha1 27e8df191c92095f48314a415194ec37c682cbcf subversion-1.9.3.tar.bz2 +sha1 bc7d51fdda43bea01e1272dfe9d23d0a9d6cd11c subversion-1.9.4.tar.bz2 diff --git a/bsp/buildroot/package/subversion/subversion.mk b/bsp/buildroot/package/subversion/subversion.mk index e9aa0ae3..720a1a10 100644 --- a/bsp/buildroot/package/subversion/subversion.mk +++ b/bsp/buildroot/package/subversion/subversion.mk @@ -4,7 +4,7 @@ # ################################################################################ -SUBVERSION_VERSION = 1.9.3 +SUBVERSION_VERSION = 1.9.4 SUBVERSION_SOURCE = subversion-$(SUBVERSION_VERSION).tar.bz2 SUBVERSION_SITE = http://mirror.catn.com/pub/apache/subversion SUBVERSION_LICENSE = Apache-2.0 diff --git a/bsp/buildroot/package/sunxi-boards/sunxi-boards.hash b/bsp/buildroot/package/sunxi-boards/sunxi-boards.hash new file mode 100644 index 00000000..75568240 --- /dev/null +++ b/bsp/buildroot/package/sunxi-boards/sunxi-boards.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 ff1fa509fd5716d26c23a82e59300876a848122f745713a610f8f3c47d448064 sunxi-boards-a6a4e94066f4ec6b26fc7060dc453a6bcf26a504.tar.gz diff --git a/bsp/buildroot/package/sunxi-cedarx/Config.in b/bsp/buildroot/package/sunxi-cedarx/Config.in index fc6e5298..43fcce58 100644 --- a/bsp/buildroot/package/sunxi-cedarx/Config.in +++ b/bsp/buildroot/package/sunxi-cedarx/Config.in @@ -11,6 +11,6 @@ config BR2_PACKAGE_SUNXI_CEDARX http://github.com/linux-sunxi/cedarx-libs http://linux-sunxi.org/CedarX -comment "sunxi-cedarx needs an (e)glibc toolchain" +comment "sunxi-cedarx needs a glibc toolchain" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/sunxi-cedarx/sunxi-cedarx.hash b/bsp/buildroot/package/sunxi-cedarx/sunxi-cedarx.hash new file mode 100644 index 00000000..048b8689 --- /dev/null +++ b/bsp/buildroot/package/sunxi-cedarx/sunxi-cedarx.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 ea7426f83325d247ba0d4734eaf1cb53bab178a81f935e2535ddb3069f70ba84 sunxi-cedarx-b8f52d913f73720e50d8f1b2f8610467b575dc45.tar.gz diff --git a/bsp/buildroot/package/sunxi-mali-prop/Config.in b/bsp/buildroot/package/sunxi-mali-prop/Config.in deleted file mode 100644 index b9efb4e3..00000000 --- a/bsp/buildroot/package/sunxi-mali-prop/Config.in +++ /dev/null @@ -1,4 +0,0 @@ -# Sunxi-mali-prop is a git submodule of sunxi-mali. To use this package -# select the sunxi-mali option. -config BR2_PACKAGE_SUNXI_MALI_PROP - bool diff --git a/bsp/buildroot/package/sunxi-mali-prop/sunxi-mali-prop.mk b/bsp/buildroot/package/sunxi-mali-prop/sunxi-mali-prop.mk deleted file mode 100644 index b828dc27..00000000 --- a/bsp/buildroot/package/sunxi-mali-prop/sunxi-mali-prop.mk +++ /dev/null @@ -1,10 +0,0 @@ -################################################################################ -# -# sunxi-mali-prop -# -################################################################################ - -SUNXI_MALI_PROP_VERSION = 1c5063f43cdc9de341c0d63b2e3921cab86c7742 -SUNXI_MALI_PROP_SITE = $(call github,linux-sunxi,sunxi-mali-proprietary,$(SUNXI_MALI_PROP_VERSION)) - -$(eval $(generic-package)) diff --git a/bsp/buildroot/package/sunxi-mali/Config.in b/bsp/buildroot/package/sunxi-mali/Config.in index f0c1b358..5e3ae4cd 100644 --- a/bsp/buildroot/package/sunxi-mali/Config.in +++ b/bsp/buildroot/package/sunxi-mali/Config.in @@ -3,9 +3,6 @@ config BR2_PACKAGE_SUNXI_MALI select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_LIBUMP - # The egl/gles mali libraries are provided as a git submodule of the - # sunxi-mali repo and are downloaded by the sunxi-mali-prop package. - select BR2_PACKAGE_SUNXI_MALI_PROP depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_arm help @@ -64,6 +61,6 @@ endchoice endif -comment "sunxi-mali needs an (e)glibc toolchain" +comment "sunxi-mali needs a glibc toolchain" depends on BR2_arm depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/sunxi-mali/sunxi-mali.mk b/bsp/buildroot/package/sunxi-mali/sunxi-mali.mk index 3e5443b4..c808db6c 100644 --- a/bsp/buildroot/package/sunxi-mali/sunxi-mali.mk +++ b/bsp/buildroot/package/sunxi-mali/sunxi-mali.mk @@ -4,11 +4,16 @@ # ################################################################################ -SUNXI_MALI_VERSION = d343311efc8db166d8371b28494f0f27b6a58724 -SUNXI_MALI_SITE = $(call github,linux-sunxi,sunxi-mali,$(SUNXI_MALI_VERSION)) +# last sha1 character dropped to ensure unique filename +SUNXI_MALI_VERSION = d343311efc8db166d8371b28494f0f27b6a5872 +SUNXI_MALI_SITE = https://github.com/linux-sunxi/sunxi-mali +SUNXI_MALI_SITE_METHOD = git + +# Get the sunxi-mali-proprietary libraries +SUNXI_MALI_GIT_SUBMODULES = YES SUNXI_MALI_INSTALL_STAGING = YES -SUNXI_MALI_DEPENDENCIES = libump sunxi-mali-prop +SUNXI_MALI_DEPENDENCIES = libump SUNXI_MALI_PROVIDES = libegl libgles # The options below must be provided in the environment. Providing these @@ -41,13 +46,6 @@ ifeq ($(BR2_PACKAGE_SUNXI_MALI_R3P1),y) SUNXI_MALI_MAKE_OPTS += VERSION=r3p1 endif -define SUNXI_MALI_GIT_SUBMODULE_FIXUP - rm -rf $(@D)/lib/mali - cp -rf $(SUNXI_MALI_PROP_SRCDIR) $(@D)/lib/mali -endef - -SUNXI_MALI_PRE_CONFIGURE_HOOKS += SUNXI_MALI_GIT_SUBMODULE_FIXUP - define SUNXI_MALI_BUILD_CMDS $(SUNXI_MALI_MAKE_ENV) $(MAKE) -C $(@D) $(SUNXI_MALI_MAKE_OPTS) all $(TARGET_CC) $(TARGET_CFLAGS) -o $(@D)/version/version \ diff --git a/bsp/buildroot/package/supertuxkart/0001-irrlicht-Get-rid-of-unprefixed-cflags.patch b/bsp/buildroot/package/supertuxkart/0001-irrlicht-Get-rid-of-unprefixed-cflags.patch new file mode 100644 index 00000000..351b5875 --- /dev/null +++ b/bsp/buildroot/package/supertuxkart/0001-irrlicht-Get-rid-of-unprefixed-cflags.patch @@ -0,0 +1,34 @@ +From 73bed675202cf1f1c748540a4363d7d99e161dca Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia +Date: Thu, 9 Jun 2016 18:58:51 -0300 +Subject: [PATCH 1/2] irrlicht: Get rid of unprefixed cflags + +Cross-building requires proper include paths. This commit +removes the unprefixed -I/usr/X11R6/include in irrlicht cflags. + +Signed-off-by: Ezequiel Garcia +--- +Fix sent upstream as part of pull: +https://github.com/supertuxkart/stk-code/pull/2554 + + lib/irrlicht/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/irrlicht/CMakeLists.txt b/lib/irrlicht/CMakeLists.txt +index 46d54008c291..5f4975e3a6f9 100644 +--- a/lib/irrlicht/CMakeLists.txt ++++ b/lib/irrlicht/CMakeLists.txt +@@ -25,8 +25,8 @@ elseif(MINGW) + add_definitions(-D_IRR_STATIC_LIB_) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) # Shut up about unsafe stuff + else() +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pipe -O3 -fno-exceptions -fstrict-aliasing -I/usr/X11R6/include") +- set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -pipe -O3 -fno-exceptions -fstrict-aliasing -I/usr/X11R6/include") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pipe -O3 -fno-exceptions -fstrict-aliasing") ++ set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -pipe -O3 -fno-exceptions -fstrict-aliasing") + if(CMAKE_COMPILER_IS_GNUCC) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexpensive-optimizations") + endif() +-- +2.9.0 + diff --git a/bsp/buildroot/package/supertuxkart/0002-irrlicht-Fix-boolean-return-type-for-jpeglib-s-callb.patch b/bsp/buildroot/package/supertuxkart/0002-irrlicht-Fix-boolean-return-type-for-jpeglib-s-callb.patch new file mode 100644 index 00000000..1a89bead --- /dev/null +++ b/bsp/buildroot/package/supertuxkart/0002-irrlicht-Fix-boolean-return-type-for-jpeglib-s-callb.patch @@ -0,0 +1,39 @@ +From fe71624eb39e0bc302a7603c79503fb12667dc2b Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia +Date: Sun, 3 Jul 2016 15:16:59 -0300 +Subject: [PATCH 2/2] irrlicht: Fix boolean return type for jpeglib's callback + +Building on certain toolchains can fail due to returning an integer +instead of TRUE. In any case, only {TRUE,FALSE} should be used +as 'boolean' jpeglib type. Fix this by returning TRUE. + + CImageLoaderJPG.cpp: In static member function 'static boolean + irr::video::CImageLoaderJPG::fill_input_buffer(j_decompress_ptr)': + CImageLoaderJPG.cpp:69:9: error: invalid conversion from 'int' to 'boolean' + [-fpermissive] + +Signed-off-by: Romain Naour +Signed-off-by: Ezequiel Garcia +--- +Fix sent upstream as part of pull: +https://github.com/supertuxkart/stk-code/pull/2554 + + lib/irrlicht/source/Irrlicht/CImageLoaderJPG.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/irrlicht/source/Irrlicht/CImageLoaderJPG.cpp b/lib/irrlicht/source/Irrlicht/CImageLoaderJPG.cpp +index 8fc5222a1e9b..1811f31dd28f 100644 +--- a/lib/irrlicht/source/Irrlicht/CImageLoaderJPG.cpp ++++ b/lib/irrlicht/source/Irrlicht/CImageLoaderJPG.cpp +@@ -66,7 +66,7 @@ void CImageLoaderJPG::init_source (j_decompress_ptr cinfo) + boolean CImageLoaderJPG::fill_input_buffer (j_decompress_ptr cinfo) + { + // DO NOTHING +- return 1; ++ return TRUE; + } + + +-- +2.9.0 + diff --git a/bsp/buildroot/package/supertuxkart/Config.in b/bsp/buildroot/package/supertuxkart/Config.in new file mode 100644 index 00000000..a1f7074e --- /dev/null +++ b/bsp/buildroot/package/supertuxkart/Config.in @@ -0,0 +1,34 @@ +config BR2_PACKAGE_SUPERTUXKART + bool "supertuxkart" + depends on BR2_USE_MMU # fork() + depends on BR2_INSTALL_LIBSTDCPP # openal + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # openal + depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS # openal + depends on BR2_PACKAGE_HAS_LIBGL + depends on BR2_PACKAGE_XORG7 + depends on !BR2_TOOLCHAIN_USES_MUSL + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_LIBGLU + select BR2_PACKAGE_LIBOGG + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_LIBVORBIS + select BR2_PACKAGE_OPENAL + select BR2_PACKAGE_XLIB_LIBXRANDR + select BR2_PACKAGE_ZLIB + help + Karts. Nitro. Action! SuperTuxKart is a free 3D arcade kart + racer with multiple karts, tracks and modes you can play. + Beat the evil Nolok by any means necessary, and make the + mascot kingdom safe once again! + + http://supertuxkart.sourceforge.net/Main_Page + +comment "supertuxkart needs an OpenGL backend, a uClibc or glibc toolchain w/ NPTL, C++" + depends on BR2_USE_MMU + depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS + depends on BR2_PACKAGE_XORG7 + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ + || !BR2_INSTALL_LIBSTDCPP \ + || !BR2_PACKAGE_HAS_LIBGL \ + || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/supertuxkart/supertuxkart.hash b/bsp/buildroot/package/supertuxkart/supertuxkart.hash new file mode 100644 index 00000000..45ad8c50 --- /dev/null +++ b/bsp/buildroot/package/supertuxkart/supertuxkart.hash @@ -0,0 +1,5 @@ +# Locally computed +sha256 0b080bb098a26adb552d6fd48905bcb6b1e873ef1567457d7268d7d3aaa48282 supertuxkart-0.9.2-src.tar.xz +# From https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/0.9.2/ +sha1 df3805a8f9dc556a0fc5af44442dae8126db5d5a supertuxkart-0.9.2-src.tar.xz +md5 f1f5081fd41b8eeb310b4edc07b9ee12 supertuxkart-0.9.2-src.tar.xz diff --git a/bsp/buildroot/package/supertuxkart/supertuxkart.mk b/bsp/buildroot/package/supertuxkart/supertuxkart.mk new file mode 100644 index 00000000..037c6f35 --- /dev/null +++ b/bsp/buildroot/package/supertuxkart/supertuxkart.mk @@ -0,0 +1,48 @@ +################################################################################ +# +# supertuxkart +# +################################################################################ + +SUPERTUXKART_VERSION = 0.9.2 +SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz +SUPERTUXKART_SITE = http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION) + +# Supertuxkart itself is GPLv3+, but it bundles a few libraries with different +# licenses. Irrlicht, bullet and angelscript have zlib license, while glew is +# BSD-3c. Since they are linked statically, the result is GPLv3+. +SUPERTUXKART_LICENSE = GPLv3+ +SUPERTUXKART_LICENSE_FILES = COPYING + +SUPERTUXKART_DEPENDENCIES = \ + jpeg \ + libcurl \ + libgl \ + libglu \ + libogg \ + libpng \ + libvorbis \ + openal \ + xlib_libXrandr \ + zlib + +# Since supertuxkart is not installing libstkirrlicht.so, and since it is +# the only user of the bundled libraries, turn off shared libraries entirely. +SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF + +ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) +SUPERTUXKART_DEPENDENCIES += libfribidi +SUPERTUXKART_CONF_OPTS += -DUSE_FRIBIDI=ON +else +SUPERTUXKART_CONF_OPTS += -DUSE_FRIBIDI=OFF +endif + +ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) +SUPERTUXKART_DEPENDENCIES += bluez5_utils +SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=ON +else +# Wiimote support relies on bluez5. +SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF +endif + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/swig/swig.hash b/bsp/buildroot/package/swig/swig.hash index 62e3d20f..92ddc110 100644 --- a/bsp/buildroot/package/swig/swig.hash +++ b/bsp/buildroot/package/swig/swig.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 06dc8816a225667ce1eee545af3caf87e1bbaa379c32838d4cea53152514348d swig-3.0.7.tar.gz +sha256 2939aae39dec06095462f1b95ce1c958ac80d07b926e48871046d17c0094f44c swig-3.0.10.tar.gz diff --git a/bsp/buildroot/package/swig/swig.mk b/bsp/buildroot/package/swig/swig.mk index e4bd64cd..8fed8dab 100644 --- a/bsp/buildroot/package/swig/swig.mk +++ b/bsp/buildroot/package/swig/swig.mk @@ -5,9 +5,9 @@ ################################################################################ SWIG_VERSION_MAJOR = 3.0 -SWIG_VERSION = $(SWIG_VERSION_MAJOR).7 +SWIG_VERSION = $(SWIG_VERSION_MAJOR).10 SWIG_SITE = http://downloads.sourceforge.net/project/swig/swig/swig-$(SWIG_VERSION) -SWIG_DEPENDENCIES = host-bison +HOST_SWIG_DEPENDENCIES = host-bison HOST_SWIG_CONF_OPTS = \ --without-pcre \ --disable-ccache \ diff --git a/bsp/buildroot/package/swupdate/Config.in b/bsp/buildroot/package/swupdate/Config.in index f475b855..5f5e1e77 100644 --- a/bsp/buildroot/package/swupdate/Config.in +++ b/bsp/buildroot/package/swupdate/Config.in @@ -18,14 +18,15 @@ config BR2_PACKAGE_SWUPDATE use your own modified configuration, you have to select the necessary packages manually: - * Select BR2_PACKAGE_LUA_5_2 if you want to have Lua support. + * Select BR2_PACKAGE_LUA if you want to have Lua support. * Select BR2_LIBCURL if you want to use the download feature. - * Select BR2_PACKAGE_OPENSSL is you want to add encryptions support - to the webserver. + * Select BR2_PACKAGE_OPENSSL is you want to add encryption support. * Select BR2_PACKAGE_MTD if you want to use swupdate with UBI partitions. * Select BR2_PACKAGE_ZLIB if you want to deal with gzip compressed archives. + * Select BR2_PACKAGE_UBOOT_TOOLS and BR2_PACKAGE_ZLIB to add support + for setting the U-Boot environment. https://sbabic.github.io/swupdate diff --git a/bsp/buildroot/package/swupdate/swupdate.config b/bsp/buildroot/package/swupdate/swupdate.config index bac7a58c..51869bb9 100644 --- a/bsp/buildroot/package/swupdate/swupdate.config +++ b/bsp/buildroot/package/swupdate/swupdate.config @@ -13,6 +13,9 @@ CONFIG_HAVE_DOT_CONFIG=y # CONFIG_SCRIPTS=y # CONFIG_HW_COMPATIBILITY is not set +CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" +# CONFIG_MTD is not set +# CONFIG_LUA is not set # CONFIG_FEATURE_SYSLOG is not set # @@ -31,6 +34,9 @@ CONFIG_EXTRA_LDLIBS="" # CONFIG_DEBUG is not set # CONFIG_WERROR is not set # CONFIG_NOCLEANUP is not set +# CONFIG_DOWNLOAD is not set +# CONFIG_SIGNED_IMAGES is not set +# CONFIG_SURICATTA is not set CONFIG_WEBSERVER=y # @@ -42,15 +48,19 @@ CONFIG_MONGOOSE=y # Mongoose Feature # CONFIG_MONGOOSEIPV6=y +# CONFIG_MONGOOSESSL is not set # # Archival Features # -CONFIG_CPIO=y +# CONFIG_GUNZIP is not set # # Parser Features # +CONFIG_LIBCONFIG=y +CONFIG_LIBCONFIGROOT="" +# CONFIG_JSON is not set # CONFIG_SETSWDESCRIPTION is not set # @@ -58,4 +68,5 @@ CONFIG_CPIO=y # CONFIG_RAW=y # CONFIG_SHELLSCRIPTHANDLER is not set -# CONFIG_UBOOT is not set +# CONFIG_ARCHIVE is not set +# CONFIG_UBOOT is not set \ No newline at end of file diff --git a/bsp/buildroot/package/swupdate/swupdate.hash b/bsp/buildroot/package/swupdate/swupdate.hash index c57ab899..918ca2fe 100644 --- a/bsp/buildroot/package/swupdate/swupdate.hash +++ b/bsp/buildroot/package/swupdate/swupdate.hash @@ -1,4 +1,2 @@ # Locally calculated -sha256 1410f8967aad0f4d3b4561110dbfb2c1f8e337bdc332f6b120f4995762c8bf6b swupdate-2015.07.tar.gz -sha256 6cffe115cad73c0d1095f7880b6d2b97fc12b7f7871f532e5b33717e863f03d7 5a5ef5909f5da5b2070d58ffaee924bb8e6a51e1.patch -sha256 b97a107a0e4625337485b9bb118bc9a33fa0f2bfcb80475cff017940b5261238 f26577423eb65728fcd10f78f9978dd07d51dcb9.patch +sha256 c21d2fd52eb7ed9c304a7a996d230a8f1b47b9879a8c9fa50c80b41e117d1e60 swupdate-2016.07.tar.gz diff --git a/bsp/buildroot/package/swupdate/swupdate.mk b/bsp/buildroot/package/swupdate/swupdate.mk index e22bc08b..313a54fe 100644 --- a/bsp/buildroot/package/swupdate/swupdate.mk +++ b/bsp/buildroot/package/swupdate/swupdate.mk @@ -4,16 +4,12 @@ # ################################################################################ -SWUPDATE_VERSION = 2015.07 +SWUPDATE_VERSION = 2016.07 SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION)) SWUPDATE_LICENSE = GPLv2+, MIT, Public Domain SWUPDATE_LICENSE_FILES = COPYING -SWUPDATE_PATCH = \ - https://github.com/sbabic/swupdate/commit/5a5ef5909f5da5b2070d58ffaee924bb8e6a51e1.patch \ - https://github.com/sbabic/swupdate/commit/f26577423eb65728fcd10f78f9978dd07d51dcb9.patch -# swupdate bundles its own version of mongoose (version 3.8) and -# lsqlite3 (version 0.8) +# swupdate bundles its own version of mongoose (version 3.8) ifeq ($(BR2_PACKAGE_JSON_C),y) SWUPDATE_DEPENDENCIES += json-c @@ -22,6 +18,13 @@ else SWUPDATE_MAKE_ENV += HAVE_JSON_C=n endif +ifeq ($(BR2_PACKAGE_LIBARCHIVE),y) +SWUPDATE_DEPENDENCIES += libarchive +SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=y +else +SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=n +endif + ifeq ($(BR2_PACKAGE_LIBCONFIG),y) SWUPDATE_DEPENDENCIES += libconfig SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=y @@ -36,8 +39,8 @@ else SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n endif -ifeq ($(BR2_PACKAGE_LUA_5_2),y) -SWUPDATE_DEPENDENCIES += lua +ifeq ($(BR2_PACKAGE_LUA),y) +SWUPDATE_DEPENDENCIES += lua host-pkgconf SWUPDATE_MAKE_ENV += HAVE_LUA=y else SWUPDATE_MAKE_ENV += HAVE_LUA=n @@ -61,6 +64,13 @@ SWUPDATE_MAKE_ENV += HAVE_LIBSSL=n SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=n endif +ifeq ($(BR2_PACKAGE_UBOOT_TOOLS),y) +SWUPDATE_DEPENDENCIES += uboot-tools +SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=y +else +SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=n +endif + ifeq ($(BR2_PACKAGE_ZLIB),y) SWUPDATE_DEPENDENCIES += zlib SWUPDATE_MAKE_ENV += HAVE_ZLIB=y diff --git a/bsp/buildroot/package/sysdig/sysdig.hash b/bsp/buildroot/package/sysdig/sysdig.hash new file mode 100644 index 00000000..f64ef9e7 --- /dev/null +++ b/bsp/buildroot/package/sysdig/sysdig.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e72490eaf413745aef87965a5abb1024908053064f86593b257f12bf5b0d6b97 sysdig-0.1.100.tar.gz diff --git a/bsp/buildroot/package/sysklogd/Config.in b/bsp/buildroot/package/sysklogd/Config.in index 64464c43..4188fb82 100644 --- a/bsp/buildroot/package/sysklogd/Config.in +++ b/bsp/buildroot/package/sysklogd/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_SYSKLOGD bool "syslogd & klogd" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help System log daemons syslogd and klogd. diff --git a/bsp/buildroot/package/syslog-ng/Config.in b/bsp/buildroot/package/syslog-ng/Config.in index fdc8d9f2..7f47d86b 100644 --- a/bsp/buildroot/package/syslog-ng/Config.in +++ b/bsp/buildroot/package/syslog-ng/Config.in @@ -7,6 +7,7 @@ config BR2_PACKAGE_SYSLOG_NG depends on BR2_USE_WCHAR # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help syslog-ng is an enhanced log daemon, supporting a wide range of input and output methods: syslog, unstructured text, @@ -17,3 +18,4 @@ config BR2_PACKAGE_SYSLOG_NG comment "syslog-ng needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/syslog-ng/syslog-ng.mk b/bsp/buildroot/package/syslog-ng/syslog-ng.mk index 1acaad8d..c11d3bde 100644 --- a/bsp/buildroot/package/syslog-ng/syslog-ng.mk +++ b/bsp/buildroot/package/syslog-ng/syslog-ng.mk @@ -13,7 +13,7 @@ SYSLOG_NG_DEPENDENCIES = host-bison host-flex host-pkgconf \ eventlog libglib2 openssl pcre # rabbit-mq needs -lrt SYSLOG_NG_CONF_ENV = LIBS=-lrt -SYSLOG_NG_CONF_OPTS = --disable-manpages +SYSLOG_NG_CONF_OPTS = --disable-manpages --localstatedir=/var/run # We override busybox's S01logging init script ifeq ($(BR2_PACKAGE_BUSYBOX),y) diff --git a/bsp/buildroot/package/sysstat/sysstat.hash b/bsp/buildroot/package/sysstat/sysstat.hash index d69440b6..539bbed5 100644 --- a/bsp/buildroot/package/sysstat/sysstat.hash +++ b/bsp/buildroot/package/sysstat/sysstat.hash @@ -1,2 +1,2 @@ # From: http://sebastien.godard.pagesperso-orange.fr/download.html -sha1 61b70892d864f8bac5714e2fe0a006f0fda6efba sysstat-11.2.0.tar.xz +sha1 ef97b454c254a37587485f61071db1fd9374f276 sysstat-11.2.5.tar.xz diff --git a/bsp/buildroot/package/sysstat/sysstat.mk b/bsp/buildroot/package/sysstat/sysstat.mk index ba0eb26f..1be3d82e 100644 --- a/bsp/buildroot/package/sysstat/sysstat.mk +++ b/bsp/buildroot/package/sysstat/sysstat.mk @@ -4,7 +4,7 @@ # ################################################################################ -SYSSTAT_VERSION = 11.2.0 +SYSSTAT_VERSION = 11.2.5 SYSSTAT_SOURCE = sysstat-$(SYSSTAT_VERSION).tar.xz SYSSTAT_SITE = http://pagesperso-orange.fr/sebastien.godard SYSSTAT_CONF_OPTS = --disable-man-group --disable-sensors diff --git a/bsp/buildroot/package/systemd-bootchart/0001-configure-add-option-to-not-build-manpages.patch b/bsp/buildroot/package/systemd-bootchart/0001-configure-add-option-to-not-build-manpages.patch new file mode 100644 index 00000000..ea9f8f24 --- /dev/null +++ b/bsp/buildroot/package/systemd-bootchart/0001-configure-add-option-to-not-build-manpages.patch @@ -0,0 +1,59 @@ +From 60a581253331ac38721a12495909d073eff703b7 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Sat, 13 Aug 2016 18:47:17 +0200 +Subject: [PATCH] configure: add option to not build manpages + +Man pages are not always needed, especially on embedded systems. + +Add a configure option to not build them; by default, build them. + +Signed-off-by: "Yann E. MORIN" +--- +Patch sent upstream: + https://github.com/systemd/systemd-bootchart/pull/14 +--- + Makefile.am | 5 ++++- + configure.ac | 10 +++++++++- + 2 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index a71f8d8..e6510d5 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -74,7 +74,10 @@ EXTRA_DIST = \ + MANPAGES = man/bootchart.conf.5 man/systemd-bootchart.1 + MANPAGES_ALIAS = man/bootchart.conf.d.5 + +-man_MANS = $(MANPAGES) $(MANPAGES_ALIAS) ++if COND_man ++MAYBE_MANPAGES = $(MANPAGES) $(MANPAGES_ALIAS) ++endif ++man_MANS = $(MAYBE_MANPAGES) + + man/bootchart.conf.d.5: man/bootchart.conf.5 + +diff --git a/configure.ac b/configure.ac +index f8e62d8..90e8b03 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -167,8 +167,16 @@ AC_ARG_WITH([rootlibdir], + AC_SUBST([rootprefix], [$with_rootprefix]) + AC_SUBST([rootlibdir], [$with_rootlibdir]) + ++AC_ARG_ENABLE([man], ++ AS_HELP_STRING([--diable-man],[Build the man pages (default: yes)]), ++ [build_man=$enableval], ++ [build_man=yes]) ++ + AC_PATH_PROG([XSLTPROC], [xsltproc]) +-AS_IF([test -z "$XSLTPROC"], AC_MSG_ERROR([*** xsltproc is required for man pages])) ++AS_IF([test -z "$XSLTPROC" -a "$build_man" = "yes"], ++ [AC_MSG_ERROR([*** xsltproc is required for man pages])]) ++ ++AM_CONDITIONAL([COND_man],[test "$build_man" = "yes"]) + + AC_CONFIG_FILES([ + Makefile +-- +2.7.4 + diff --git a/bsp/buildroot/package/systemd-bootchart/Config.in b/bsp/buildroot/package/systemd-bootchart/Config.in new file mode 100644 index 00000000..8deb6b9b --- /dev/null +++ b/bsp/buildroot/package/systemd-bootchart/Config.in @@ -0,0 +1,26 @@ +config BR2_PACKAGE_SYSTEMD_BOOTCHART + bool "systemd-bootchart" + depends on BR2_INIT_SYSTEMD + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 + help + systemd-bootchart is a tool, usually run at system startup, + that collects the CPU load, disk load, memory usage, as well + as per-process information from a running system. Collected + results are output as an SVG graph. + + systemd-bootchart requires a Linux kernel >= 3.0 with the + following options enabled: + + - CONFIG_SCHEDSTATS + - CONFIG_SCHED_DEBUG + + These options will be automatically enabled by Buildroot if + it is responsible for building the kernel. Otherwise, if you + are building your kernel outside of Buildroot, make sure + these options are enabled. + + http://www.freedesktop.org/software/systemd/man/systemd-bootchart.html + +comment "systemd-bootchart needs a toolchain w/ headers >= 3.17" + depends on BR2_INIT_SYSTEMD + depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 diff --git a/bsp/buildroot/package/systemd-bootchart/systemd-bootchart.hash b/bsp/buildroot/package/systemd-bootchart/systemd-bootchart.hash new file mode 100644 index 00000000..c347ef51 --- /dev/null +++ b/bsp/buildroot/package/systemd-bootchart/systemd-bootchart.hash @@ -0,0 +1,2 @@ +# sha256 locally computed +sha256 8cfea4f604c00289394a4429f934e19f80dceafbe0ae1846e00997f70d81a20f systemd-bootchart-230.tar.xz diff --git a/bsp/buildroot/package/systemd-bootchart/systemd-bootchart.mk b/bsp/buildroot/package/systemd-bootchart/systemd-bootchart.mk new file mode 100644 index 00000000..3d91b05f --- /dev/null +++ b/bsp/buildroot/package/systemd-bootchart/systemd-bootchart.mk @@ -0,0 +1,25 @@ +################################################################################ +# +# systemd-bootchart +# +################################################################################ + +SYSTEMD_BOOTCHART_VERSION = 230 +SYSTEMD_BOOTCHART_SOURCE = systemd-bootchart-$(SYSTEMD_BOOTCHART_VERSION).tar.xz +# Do not use the github helper here, the generated tarball is *NOT* the same +# as the one uploaded by upstream for the release. +SYSTEMD_BOOTCHART_SITE = https://github.com/systemd/systemd-bootchart/releases/download/v$(SYSTEMD_BOOTCHART_VERSION) +SYSTEMD_BOOTCHART_LICENSE = LGPLv2.1+ +SYSTEMD_BOOTCHART_LICENSE_FILES = LICENSE.LGPL2.1 +SYSTEMD_BOOTCHART_DEPENDENCIES = host-intltool systemd + +# 0001-configure-add-option-to-not-build-manpages.patch +SYSTEMD_BOOTCHART_AUTORECONF = YES +SYSTEMD_BOOTCHART_CONF_OPTS = --disable-man + +define SYSTEMD_BOOTCHART_INTLTOOLIZE + cd $(@D) && $(HOST_DIR)/usr/bin/intltoolize --force --automake +endef +SYSTEMD_BOOTCHART_PRE_CONFIGURE_HOOKS = SYSTEMD_BOOTCHART_INTLTOOLIZE + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch b/bsp/buildroot/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch index 2d9b3470..18dc9879 100644 --- a/bsp/buildroot/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch +++ b/bsp/buildroot/package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch @@ -1,35 +1,36 @@ -From 582c9a734a0e976592946ff5b577f98551170a38 Mon Sep 17 00:00:00 2001 +From 32b6c22006767f0762edfa116b8b0f7be0c5c121 Mon Sep 17 00:00:00 2001 From: Eric Le Bihan -Date: Mon, 21 Jul 2014 11:34:38 +0200 -Subject: [PATCH 1/1] build-sys: revert use of ln relative option. +Date: Wed, 27 Jul 2016 15:43:16 +0200 +Subject: [PATCH] build-sys: revert use of ln relative option. Systemd build system now uses the `--relative` option from `ln(1)`. + This option was added to GNU coreutils 8.16, which is not widely deployed yet by GNU/Linux distributions (not available in Debian Wheezy for example). Signed-off-by: Eric Le Bihan +[Maxime: refresh the patch] +Signed-off-by: Maxime Hadjinlian --- - Makefile.am | 19 +++++-------------- - configure.ac | 2 -- - 2 files changed, 5 insertions(+), 16 deletions(-) + Makefile.am | 15 +++------------ + configure.ac | 2 -- + 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/Makefile.am b/Makefile.am -index e238cde..02b39ea 100644 +index 0c27f81..4de1595 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -219,8 +219,8 @@ define move-to-rootlibdir - if test "$(libdir)" != "$(rootlibdir)"; then \ +@@ -255,7 +255,7 @@ define move-to-rootlibdir $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \ so_img_name=$$(readlink $(DESTDIR)$(libdir)/$$libname) && \ -- rm -f $(DESTDIR)$(libdir)/$$libname && \ + rm -f $(DESTDIR)$(libdir)/$$libname && \ - $(LN_S) --relative -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \ -+ so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \ -+ $(LN_S) -f $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \ ++ $(LN_S) -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \ mv $(DESTDIR)$(libdir)/$$libname.* $(DESTDIR)$(rootlibdir); \ fi endef -@@ -279,9 +279,9 @@ install-aliases-hook: +@@ -312,9 +312,9 @@ install-aliases-hook: set -- $(SYSTEM_UNIT_ALIASES) && \ dir=$(systemunitdir) && $(install-aliases) set -- $(USER_UNIT_ALIASES) && \ @@ -38,13 +39,13 @@ index e238cde..02b39ea 100644 set -- $(GENERAL_ALIASES) && \ - dir= && $(install-relative-aliases) + dir= && $(install-aliases) - + define install-aliases while [ -n "$$1" ]; do \ -@@ -292,15 +292,6 @@ define install-aliases +@@ -325,15 +325,6 @@ define install-aliases done endef - + -define install-relative-aliases - while [ -n "$$1" ]; do \ - $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \ @@ -56,29 +57,20 @@ index e238cde..02b39ea 100644 - install-touch-usr-hook: touch -c $(DESTDIR)/$(prefix) - -@@ -2034,7 +2025,7 @@ systemd_dbus1_generator_LDADD = \ - dbus1-generator-install-hook: - $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(usergeneratordir) - $(AM_V_RM)rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator -- $(AM_V_LN)$(LN_S) --relative -f $(DESTDIR)$(systemgeneratordir)/systemd-dbus1-generator $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator -+ $(AM_V_LN)$(LN_S) -f $(systemgeneratordir)/systemd-dbus1-generator $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator - - dbus1-generator-uninstall-hook: - rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator + diff --git a/configure.ac b/configure.ac -index ae88382..ec220af 100644 +index cf595e6..d58f303 100644 --- a/configure.ac +++ b/configure.ac -@@ -96,8 +96,6 @@ AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod], [$PATH:/usr/sbin:/sbin]) - - AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec], [$PATH:/usr/sbin:/sbin]) - +@@ -110,8 +110,6 @@ AC_PATH_PROG([SULOGIN], [sulogin], [/usr/sbin/sulogin], [$PATH:/usr/sbin:/sbin]) + AC_PATH_PROG([MOUNT_PATH], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin]) + AC_PATH_PROG([UMOUNT_PATH], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin]) + -AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])]) - M4_DEFINES= - - # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line --- -1.7.10.4 + + AC_CHECK_TOOL(OBJCOPY, objcopy) +-- +2.8.1 diff --git a/bsp/buildroot/package/systemd/Config.in b/bsp/buildroot/package/systemd/Config.in index f7fc3bbf..ddaf3e23 100644 --- a/bsp/buildroot/package/systemd/Config.in +++ b/bsp/buildroot/package/systemd/Config.in @@ -7,7 +7,7 @@ config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS BR2_sh4a || BR2_sh4aeb || BR2_sparc || BR2_x86_64 || \ BR2_aarch64 || BR2_m68k -config BR2_PACKAGE_SYSTEMD +menuconfig BR2_PACKAGE_SYSTEMD bool "systemd" depends on BR2_INIT_SYSTEMD depends on BR2_USE_WCHAR # util-linux @@ -56,6 +56,11 @@ config BR2_PACKAGE_SYSTEMD The selection of other packages will enable some features: - acl package will add support for multi-seat. + - xz and/or l4 packages will add compression support in + journal and coredump. + - libcurl package will add support for systemd-journal-upload. + - libgcrypt package will add support for journal sealing and + DNSSEC verification in resolved. http://freedesktop.org/wiki/Software/systemd @@ -64,19 +69,6 @@ if BR2_PACKAGE_SYSTEMD config BR2_PACKAGE_PROVIDES_UDEV default "systemd" -config BR2_PACKAGE_SYSTEMD_ALL_EXTRAS - bool "enable all extras" - select BR2_PACKAGE_XZ - select BR2_PACKAGE_LIBGCRYPT - help - Enable extra features for Systemd: journal compression and - signing. - -config BR2_PACKAGE_SYSTEMD_KDBUS - bool "enable kdbus support" - help - Enable kdbus support for Systemd. - config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY bool "HTTP server for journal events" select BR2_PACKAGE_LIBMICROHTTPD @@ -87,8 +79,128 @@ config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html +config BR2_PACKAGE_SYSTEMD_BACKLIGHT + bool "enable backlight support" + help + systemd-backlight is a service that restores the display + backlight brightness at early boot and saves it at shutdown. + + http://www.freedesktop.org/software/systemd/man/systemd-backlight@.service.html + +config BR2_PACKAGE_SYSTEMD_BINFMT + bool "enable binfmt tool" + help + systemd-binfmt is an early boot service that registers + additional binary formats for executables in the kernel. + + http://www.freedesktop.org/software/systemd/man/systemd-binfmt.service.html + +config BR2_PACKAGE_SYSTEMD_COREDUMP + bool "enable coredump hook" + help + systemd-coredump can be used as a helper binary by the + kernel when a user space program receives a fatal signal and + dumps core. + + http://www.freedesktop.org/software/systemd/man/systemd-coredump.html + +config BR2_PACKAGE_SYSTEMD_FIRSTBOOT + bool "enable firstboot support" + default y + help + systemd-firstboot initializes the most basic system settings + interactively on the first boot. + + http://www.freedesktop.org/software/systemd/man/systemd-firstboot.html + +config BR2_PACKAGE_SYSTEMD_HIBERNATE + bool "enable hibernation support" + help + When this features is enabled, additional tools and services + are built to support suspending and resuming the system. + + http://www.freedesktop.org/software/systemd/man/systemd-sleep.html + +config BR2_PACKAGE_SYSTEMD_HOSTNAMED + bool "enable hostname daemon" + default y + help + systemd-hostnamed is a system service that may be used as a + mechanism to change the system's hostname. + + http://www.freedesktop.org/software/systemd/man/systemd-hostnamed.service.html + +config BR2_PACKAGE_SYSTEMD_HWDB + bool "enable hwdb installation" + default y + help + Enables hardware database installation to /usr/lib/udev/hwdb.d + + Disabling this option improves first boot time (or every boot + time in case of initramfs images) and saves several MB space. + + https://www.freedesktop.org/software/systemd/man/hwdb.html + +config BR2_PACKAGE_SYSTEMD_IMPORTD + bool "enable import daemon" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_LIBGCRYPT + select BR2_PACKAGE_BZIP2 + select BR2_PACKAGE_LZ4 + select BR2_PACKAGE_XZ + select BR2_PACKAGE_ZLIB + help + systemd-importd is a system service that manages virtual + machine and container images for systemd-machined and + machinectl. + + http://www.freedesktop.org/software/systemd/man/machinectl.html#Image%20Transfer%20Commands + +config BR2_PACKAGE_SYSTEMD_KDBUS + bool "enable kdbus support" + help + Enable kdbus support for Systemd. + +config BR2_PACKAGE_SYSTEMD_LOCALED + bool "enable locale daemon" + help + systemd-localed is a system service that may be used as + mechanism to change the system locale settings, as well as + the console key mapping and default X11 key mapping. + + http://www.freedesktop.org/software/systemd/man/systemd-localed.service.html + +config BR2_PACKAGE_SYSTEMD_LOGIND + bool "enable login daemon" + help + systemd-logind is a system service that manages user logins. + + http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html + +config BR2_PACKAGE_SYSTEMD_MACHINED + bool "enable machine daemon" + help + systemd-machined is a system service that keeps track of + virtual machines and containers, and processes belonging to + them. + + http://www.freedesktop.org/software/systemd/man/systemd-machined.service.html + +config BR2_PACKAGE_SYSTEMD_MYHOSTNAME + bool "enable myhostname NSS plugin" + default y + help + nss-myhostname is a plug-in module for the GNU Name Service + Switch (NSS) functionality of the GNU C Library (glibc), + primarily providing hostname resolution for the locally + configured system hostname as returned by gethostname(2). + + http://www.freedesktop.org/software/systemd/man/nss-myhostname.html + config BR2_PACKAGE_SYSTEMD_NETWORKD bool "enable network manager" + default y help systemd-networkd is a system service that manages networks. It detects and configures network devices as they appear, as well as @@ -99,30 +211,55 @@ config BR2_PACKAGE_SYSTEMD_NETWORKD http://www.freedesktop.org/software/systemd/man/systemd-networkd.html -config BR2_PACKAGE_SYSTEMD_TIMESYNCD - bool "enable SNTP client" - depends on BR2_PACKAGE_SYSTEMD_NETWORKD +config BR2_PACKAGE_SYSTEMD_POLKIT + bool "enable polkit support" + select BR2_PACKAGE_POLKIT help - systemd-timesyncd is a service that may be used to synchronize the - local system clock with a Network Time Protocol Server. + If enabled, systemd is built with polkit support and policy + files for its services are generated and installed. It is + useful for allowing unprivileged processes to speak to + systemd's many privileged processes. - This simple NTP solution is an alternative to sntp/ntpd from the ntp - package. + http://wiki.freedesktop.org/www/Software/polkit/ - http://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html - -config BR2_PACKAGE_SYSTEMD_COMPAT - bool "enable compatibility libraries" +config BR2_PACKAGE_SYSTEMD_QUOTACHECK + bool "enable quotacheck tools" help - Since systemd 209, the following libraries have been merged into - libsystemd.so: + systemd-quotacheck is a service responsible for file system + quota checks. It is run once at boot after all necessary + file systems are mounted. It is pulled in only if at least + one file system has quotas enabled. - - libsystemd-daemon - - libsystemd-id128 - - libsystemd-journal - - libsystemd-login + http://www.freedesktop.org/software/systemd/man/systemd-quotacheck.service.html - This option enables the installation of compatibility *.pc files. +config BR2_PACKAGE_SYSTEMD_RANDOMSEED + bool "enable random-seed support" + help + systemd-random-seed is a service that restores the random + seed of the system at early boot and saves it at + shutdown. Saving/restoring the random seed across boots + increases the amount of available entropy early at boot. + + http://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html + +config BR2_PACKAGE_SYSTEMD_RESOLVED + bool "enable resolve daemon" + default y + help + systemd-resolved is a system service that provides network + name resolution to local applications. It implements a + caching and validating DNS/DNSSEC stub resolver, as well as + an LLMNR resolver and responder. + + http://www.freedesktop.org/software/systemd/man/systemd-resolved.html + +config BR2_PACKAGE_SYSTEMD_RFKILL + bool "enable rfkill tools" + help + systemd-rfkill is a service that restores the RF kill switch + state at early boot and saves it at shutdown. + + http://www.freedesktop.org/software/systemd/man/systemd-rfkill@.service.html config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT bool "enable SMACK support" @@ -138,4 +275,53 @@ config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT When this feature is enabled, Systemd mounts smackfs and manages security labels for sockets. +config BR2_PACKAGE_SYSTEMD_SYSUSERS + bool "enable sysusers support" + help + systemd-sysusers creates system users and groups, based on + the file format and location specified in sysusers.d(5). + + http://www.freedesktop.org/software/systemd/man/systemd-sysusers.html + +config BR2_PACKAGE_SYSTEMD_TIMEDATED + bool "enable timedate daemon" + default y + help + systemd-timedated is a system service that may be used as a + mechanism to change the system clock and timezone, as well + as to enable/disable NTP time synchronization. + + http://www.freedesktop.org/software/systemd/man/systemd-timedated.service.html + +config BR2_PACKAGE_SYSTEMD_TIMESYNCD + bool "enable timesync daemon" + default y + help + systemd-timesyncd is a service that may be used to synchronize the + local system clock with a Network Time Protocol server. + + This simple NTP solution is an alternative to sntp/ntpd from the ntp + package. + + http://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html + +config BR2_PACKAGE_SYSTEMD_TMPFILES + bool "enable tmpfiles support" + default y + help + systemd-tmpfiles creates, deletes, and cleans up volatile + and temporary files and directories, based on the + configuration file format and location specified in + tmpfiles.d(5). + + http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html + +config BR2_PACKAGE_SYSTEMD_VCONSOLE + bool "enable vconsole tool" + help + systemd-vconsole-setup is an early boot service that + configures the virtual console font and console keymap. + + http://www.freedesktop.org/software/systemd/man/systemd-vconsole-setup.service.html + endif diff --git a/bsp/buildroot/package/systemd/systemd.hash b/bsp/buildroot/package/systemd/systemd.hash index 80902000..30e9ef65 100644 --- a/bsp/buildroot/package/systemd/systemd.hash +++ b/bsp/buildroot/package/systemd/systemd.hash @@ -1,2 +1,2 @@ # sha256 locally computed -sha256 dd124ff561a07e6439ed2b3713f38ca914df7747f110ce86deea17b56d245ae6 systemd-228.tar.gz +sha256 899733ad6c157cedbb89aec4efe3bc824dcfd65a1d6f6bebc7b043f7924e39b4 systemd-231.tar.gz diff --git a/bsp/buildroot/package/systemd/systemd.mk b/bsp/buildroot/package/systemd/systemd.mk index 05121cf0..fb078195 100644 --- a/bsp/buildroot/package/systemd/systemd.mk +++ b/bsp/buildroot/package/systemd/systemd.mk @@ -4,7 +4,7 @@ # ################################################################################ -SYSTEMD_VERSION = 228 +SYSTEMD_VERSION = 231 SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION)) SYSTEMD_LICENSE = LGPLv2.1+, GPLv2+ (udev), Public Domain (few source files, see README) SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README @@ -27,15 +27,19 @@ endif SYSTEMD_CONF_OPTS += \ --with-rootprefix= \ + --enable-blkid \ --enable-static=no \ --disable-manpages \ --disable-selinux \ --disable-pam \ + --disable-ima \ --disable-libcryptsetup \ --disable-efi \ --disable-gnuefi \ --disable-ldconfig \ --disable-tests \ + --disable-coverage \ + --with-default-dnssec=no \ --without-python SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto @@ -50,12 +54,6 @@ define SYSTEMD_RUN_INTLTOOLIZE endef SYSTEMD_PRE_CONFIGURE_HOOKS += SYSTEMD_RUN_INTLTOOLIZE -ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y) -SYSTEMD_CONF_OPTS += --enable-compat-libs -else -SYSTEMD_CONF_OPTS += --disable-compat-libs -endif - ifeq ($(BR2_PACKAGE_ACL),y) SYSTEMD_CONF_OPTS += --enable-acl SYSTEMD_DEPENDENCIES += acl @@ -63,6 +61,20 @@ else SYSTEMD_CONF_OPTS += --disable-acl endif +ifeq ($(BR2_PACKAGE_AUDIT),y) +SYSTEMD_CONF_OPTS += --enable-audit +SYSTEMD_DEPENDENCIES += audit +else +SYSTEMD_CONF_OPTS += --disable-audit +endif + +ifeq ($(BR2_PACKAGE_LIBIDN),y) +SYSTEMD_CONF_OPTS += --enable-libidn +SYSTEMD_DEPENDENCIES += libidn +else +SYSTEMD_CONF_OPTS += --disable-libidn +endif + ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) SYSTEMD_CONF_OPTS += --enable-seccomp SYSTEMD_DEPENDENCIES += libseccomp @@ -70,32 +82,195 @@ else SYSTEMD_CONF_OPTS += --disable-seccomp endif +ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y) +SYSTEMD_CONF_OPTS += --enable-xkbcommon +SYSTEMD_DEPENDENCIES += libxkbcommon +else +SYSTEMD_CONF_OPTS += --disable-xkbcommon +endif + ifeq ($(BR2_PACKAGE_SYSTEMD_KDBUS),y) SYSTEMD_CONF_OPTS += --enable-kdbus else SYSTEMD_CONF_OPTS += --disable-kdbus endif -ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y) -SYSTEMD_DEPENDENCIES += xz libgcrypt -SYSTEMD_CONF_OPTS += \ - --enable-xz \ - --enable-gcrypt \ - --with-libgcrypt-prefix=$(STAGING_DIR)/usr +ifeq ($(BR2_PACKAGE_BZIP2),y) +SYSTEMD_DEPENDENCIES += bzip2 +SYSTEMD_CONF_OPTS += --enable-bzip2 else +SYSTEMD_CONF_OPTS += --disable-bzip2 +endif + +ifeq ($(BR2_PACKAGE_LZ4),y) +SYSTEMD_DEPENDENCIES += lz4 +SYSTEMD_CONF_OPTS += --enable-lz4 +else +SYSTEMD_CONF_OPTS += --disable-lz4 +endif + +ifeq ($(BR2_PACKAGE_XZ),y) +SYSTEMD_DEPENDENCIES += xz +SYSTEMD_CONF_OPTS += --enable-xz +else +SYSTEMD_CONF_OPTS += --disable-xz +endif + +ifeq ($(BR2_PACKAGE_ZLIB),y) +SYSTEMD_DEPENDENCIES += zlib +SYSTEMD_CONF_OPTS += --enable-zlib +else +SYSTEMD_CONF_OPTS += --disable-zlib +endif + +ifeq ($(BR2_PACKAGE_LIBCURL),y) +SYSTEMD_DEPENDENCIES += libcurl +SYSTEMD_CONF_OPTS += --enable-libcurl +else +SYSTEMD_CONF_OPTS += --disable-libcurl +endif + +ifeq ($(BR2_PACKAGE_LIBGCRYPT),y) +SYSTEMD_DEPENDENCIES += libgcrypt SYSTEMD_CONF_OPTS += \ - --disable-xz \ - --disable-gcrypt + --enable-gcrypt \ + --with-libgcrypt-prefix=$(STAGING_DIR)/usr \ + --with-libgpg-error-prefix=$(STAGING_DIR)/usr +else +SYSTEMD_CONF_OPTS += --disable-gcrypt endif ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y) SYSTEMD_DEPENDENCIES += libmicrohttpd +SYSTEMD_CONF_OPTS += --enable-microhttpd +ifeq ($(BR2_PACKAGE_LIBQRENCODE),y) +SYSTEMD_CONF_OPTS += --enable-qrencode +SYSTEMD_DEPENDENCIES += libqrencode else -SYSTEMD_CONF_OPTS += --disable-microhttpd +SYSTEMD_CONF_OPTS += --disable-qrencode +endif +else +SYSTEMD_CONF_OPTS += --disable-microhttpd --disable-qrencode +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y) +SYSTEMD_CONF_OPTS += --enable-hwdb +else +SYSTEMD_CONF_OPTS += --disable-hwdb +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y) +SYSTEMD_CONF_OPTS += --enable-binfmt +else +SYSTEMD_CONF_OPTS += --disable-binfmt +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y) +SYSTEMD_CONF_OPTS += --enable-vconsole +else +SYSTEMD_CONF_OPTS += --disable-vconsole +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y) +SYSTEMD_CONF_OPTS += --enable-quotacheck +else +SYSTEMD_CONF_OPTS += --disable-quotacheck +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_TMPFILES),y) +SYSTEMD_CONF_OPTS += --enable-tmpfiles +else +SYSTEMD_CONF_OPTS += --disable-tmpfiles +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y) +SYSTEMD_CONF_OPTS += --enable-sysusers +else +SYSTEMD_CONF_OPTS += --disable-sysusers +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y) +SYSTEMD_CONF_OPTS += --enable-firstboot +else +SYSTEMD_CONF_OPTS += --disable-firstboot +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y) +SYSTEMD_CONF_OPTS += --enable-randomseed +else +SYSTEMD_CONF_OPTS += --disable-randomseed +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y) +SYSTEMD_CONF_OPTS += --enable-backlight +else +SYSTEMD_CONF_OPTS += --disable-backlight +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y) +SYSTEMD_CONF_OPTS += --enable-rfkill +else +SYSTEMD_CONF_OPTS += --disable-rfkill +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y) +SYSTEMD_CONF_OPTS += --enable-logind +else +SYSTEMD_CONF_OPTS += --disable-logind +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y) +SYSTEMD_CONF_OPTS += --enable-machined +else +SYSTEMD_CONF_OPTS += --disable-machined +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y) +SYSTEMD_CONF_OPTS += --enable-importd +else +SYSTEMD_CONF_OPTS += --disable-importd +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y) +SYSTEMD_CONF_OPTS += --enable-hostnamed +else +SYSTEMD_CONF_OPTS += --disable-hostnamed +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y) +SYSTEMD_CONF_OPTS += --enable-myhostname +else +SYSTEMD_CONF_OPTS += --disable-myhostname +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y) +SYSTEMD_CONF_OPTS += --enable-timedated +else +SYSTEMD_CONF_OPTS += --disable-timedated +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y) +SYSTEMD_CONF_OPTS += --enable-localed +else +SYSTEMD_CONF_OPTS += --disable-localed +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y) +SYSTEMD_CONF_OPTS += --enable-coredump +SYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * /var/lib/systemd/coredump - - Core Dumper +else +SYSTEMD_CONF_OPTS += --disable-coredump +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y) +SYSTEMD_CONF_OPTS += --enable-polkit +else +SYSTEMD_CONF_OPTS += --disable-polkit endif ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y) SYSTEMD_CONF_OPTS += --enable-networkd +SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - Network Manager define SYSTEMD_INSTALL_RESOLVCONF_HOOK ln -sf ../run/systemd/resolve/resolv.conf \ $(TARGET_DIR)/etc/resolv.conf @@ -111,8 +286,16 @@ define SYSTEMD_INSTALL_SERVICE_NETWORK endef endif +ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y) +SYSTEMD_CONF_OPTS += --enable-resolved +SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager +else +SYSTEMD_CONF_OPTS += --disable-resolved +endif + ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y) SYSTEMD_CONF_OPTS += --enable-timesyncd +SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization define SYSTEMD_INSTALL_SERVICE_TIMESYNC mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \ @@ -128,9 +311,11 @@ else SYSTEMD_CONF_OPTS += --disable-smack endif -# mq_getattr needs -lrt -SYSTEMD_MAKE_OPTS += LIBS=-lrt -SYSTEMD_MAKE_OPTS += LDFLAGS+=-ldl +ifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y) +SYSTEMD_CONF_OPTS += --enable-hibernate +else +SYSTEMD_CONF_OPTS += --disable-hibernate +endif define SYSTEMD_INSTALL_INIT_HOOK ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init @@ -152,15 +337,16 @@ SYSTEMD_POST_INSTALL_TARGET_HOOKS += \ SYSTEMD_INSTALL_RESOLVCONF_HOOK define SYSTEMD_USERS - systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal + - - input -1 * - - - Input device group + - - systemd-journal -1 * - - - Journal + systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway systemd-journal-remote -1 systemd-journal-remote -1 * /var/log/journal/remote - - Journal Remote systemd-journal-upload -1 systemd-journal-upload -1 * - - - Journal Upload - systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager - systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus - systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization - systemd-network -1 systemd-network -1 * - - - Network Manager - - - input -1 * - - - Input device group + $(SYSTEMD_COREDUMP_USER) + $(SYSTEMD_NETWORKD_USER) + $(SYSTEMD_RESOLVED_USER) + $(SYSTEMD_TIMESYNCD_USER) endef define SYSTEMD_DISABLE_SERVICE_TTY1 @@ -169,6 +355,7 @@ endef ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),) # systemd needs getty.service for VTs and serial-getty.service for serial ttys +# also patch the file to use the correct baud-rate, the default baudrate is 115200 so look for that define SYSTEMD_INSTALL_SERVICE_TTY if echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \ then \ @@ -177,7 +364,11 @@ define SYSTEMD_INSTALL_SERVICE_TTY SERVICE="serial-getty"; \ fi; \ ln -fs ../../../../lib/systemd/system/$${SERVICE}@.service \ - $(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${SERVICE}@$(BR2_TARGET_GENERIC_GETTY_PORT).service + $(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${SERVICE}@$(BR2_TARGET_GENERIC_GETTY_PORT).service; \ + if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \ + then \ + $(SED) 's,115200,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),' $(TARGET_DIR)/lib/systemd/system/$${SERVICE}@.service; \ + fi endef endif diff --git a/bsp/buildroot/package/sysvinit/Config.in b/bsp/buildroot/package/sysvinit/Config.in index 2dc3bb07..94f16123 100644 --- a/bsp/buildroot/package/sysvinit/Config.in +++ b/bsp/buildroot/package/sysvinit/Config.in @@ -1,6 +1,8 @@ config BR2_PACKAGE_SYSVINIT bool "sysvinit" + depends on BR2_USE_MMU # fork() depends on BR2_INIT_SYSV + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help /sbin/init - parent of all processes diff --git a/bsp/buildroot/package/sysvinit/inittab b/bsp/buildroot/package/sysvinit/inittab index 27eb4a69..fad91eae 100644 --- a/bsp/buildroot/package/sysvinit/inittab +++ b/bsp/buildroot/package/sysvinit/inittab @@ -10,7 +10,7 @@ si2::sysinit:/bin/mkdir -p /dev/pts si3::sysinit:/bin/mkdir -p /dev/shm si4::sysinit:/bin/mount -a si5::sysinit:/bin/hostname -F /etc/hostname -si6::sysinit:/etc/init.d/rcS +rcS:12345:wait:/etc/init.d/rcS # S0:1:respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL diff --git a/bsp/buildroot/package/taglib/0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch b/bsp/buildroot/package/taglib/0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch deleted file mode 100644 index 535ccb4d..00000000 --- a/bsp/buildroot/package/taglib/0001-cmake-use-the-standard-CMake-flag-to-drive-the-share.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 4e6a75eed3602f10aff516f49c8088c6da8db9df Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sun, 31 Aug 2014 12:11:57 +0200 -Subject: [PATCH 1/1] cmake: use the standard CMake flag to drive the shared - object build - -If BUILD_SHARED_LIBS is set and ENABLE_STATIC undefined, then drive -ENABLE_STATIC with the BUILD_SHARED_LIBS value. - -Signed-off-by: Samuel Martin ---- - CMakeLists.txt | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 317ffa1..9931957 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -2,7 +2,17 @@ project(taglib) - - cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR) - --option(ENABLE_STATIC "Make static version of libtag" OFF) -+# Use the standard CMake flag to drive the shared object build. -+if(DEFINED BUILD_SHARED_LIBS AND NOT DEFINED ENABLE_STATIC) -+ if(BUILD_SHARED_LIBS) -+ set(ENABLE_STATIC OFF) -+ else() -+ set(ENABLE_STATIC ON) -+ endif() -+else() -+ option(ENABLE_STATIC "Make static version of libtag" OFF) -+endif() -+ - if(ENABLE_STATIC) - add_definitions(-DTAGLIB_STATIC) - set(BUILD_SHARED_LIBS OFF) --- -2.1.0 - diff --git a/bsp/buildroot/package/taglib/Config.in b/bsp/buildroot/package/taglib/Config.in index 209837f4..6521d48c 100644 --- a/bsp/buildroot/package/taglib/Config.in +++ b/bsp/buildroot/package/taglib/Config.in @@ -1,4 +1,3 @@ - config BR2_PACKAGE_TAGLIB bool "taglib" depends on BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/taglib/taglib.hash b/bsp/buildroot/package/taglib/taglib.hash index 86ac6a4f..a3cfc79f 100644 --- a/bsp/buildroot/package/taglib/taglib.hash +++ b/bsp/buildroot/package/taglib/taglib.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 72d371cd1419a87ae200447a53bff2be219283071e80fd12337928cc967dc71a taglib-1.9.1.tar.gz +sha256 ed4cabb3d970ff9a30b2620071c2b054c4347f44fc63546dbe06f97980ece288 taglib-1.11.tar.gz diff --git a/bsp/buildroot/package/taglib/taglib.mk b/bsp/buildroot/package/taglib/taglib.mk index 24106500..0a2ca4dc 100644 --- a/bsp/buildroot/package/taglib/taglib.mk +++ b/bsp/buildroot/package/taglib/taglib.mk @@ -4,7 +4,7 @@ # ################################################################################ -TAGLIB_VERSION = 1.9.1 +TAGLIB_VERSION = 1.11 TAGLIB_SITE = http://taglib.github.io/releases TAGLIB_INSTALL_STAGING = YES TAGLIB_LICENSE = LGPLv2.1, MPL diff --git a/bsp/buildroot/package/tar/0001-fix-build-failure.patch b/bsp/buildroot/package/tar/0001-fix-build-failure.patch deleted file mode 100644 index 8550a3ef..00000000 --- a/bsp/buildroot/package/tar/0001-fix-build-failure.patch +++ /dev/null @@ -1,52 +0,0 @@ -Status: upstream -http://git.savannah.gnu.org/cgit/tar.git/commit/?id=e9ddc08da0982f36581ae5a8c7763453ff41cfe8 - -Signed-off-by: Gustavo Zacarias - -From e9ddc08da0982f36581ae5a8c7763453ff41cfe8 Mon Sep 17 00:00:00 2001 -From: Sergey Poznyakoff -Date: Wed, 24 Sep 2014 21:22:16 +0000 -Subject: Bugfixes. - -* doc/tar.1: Fix typo in font spec. -* src/tar.c (sort_mode_arg, sort_mode_flag): Protect "inode" -(SAVEDIR_SORT_INODE) with D_INO_IN_DIRENT ---- -diff --git a/doc/tar.1 b/doc/tar.1 -index 9000627..b91de63 100644 ---- a/doc/tar.1 -+++ b/doc/tar.1 -@@ -879,7 +879,7 @@ Exclude files matching patterns listed in FILE. - \fB\-\-strip\-components\fR=\fINUMBER\fR - Strip \fINUMBER\fR leading components from file names on extraction. - .TP --\fB\-\-transform\fR=\fIEXPRESSION\dR, \fB\-\-xform\fR=\fIEXPRESSION\fR -+\fB\-\-transform\fR=\fIEXPRESSION\fR, \fB\-\-xform\fR=\fIEXPRESSION\fR - Use sed replace \fIEXPRESSION\fR to transform file names. - .SS File name matching options - These options affect both exclude and include patterns. -diff --git a/src/tar.c b/src/tar.c -index 225c624..f8102e0 100644 ---- a/src/tar.c -+++ b/src/tar.c -@@ -1341,14 +1341,18 @@ static char filename_terminator; - static char const *const sort_mode_arg[] = { - "none", - "name", -+#if D_INO_IN_DIRENT - "inode", -+#endif - NULL - }; - - static int sort_mode_flag[] = { - SAVEDIR_SORT_NONE, - SAVEDIR_SORT_NAME, -+#if D_INO_IN_DIRENT - SAVEDIR_SORT_INODE -+#endif - }; - - ARGMATCH_VERIFY (sort_mode_arg, sort_mode_flag); --- -cgit v0.9.0.2 diff --git a/bsp/buildroot/package/tar/Config.in b/bsp/buildroot/package/tar/Config.in index 74b02199..0eea1b84 100644 --- a/bsp/buildroot/package/tar/Config.in +++ b/bsp/buildroot/package/tar/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_TAR bool "tar" depends on BR2_USE_WCHAR depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help A program that saves many files together into a single tape or disk archive, and can restore individual files from the archive. @@ -10,3 +11,4 @@ config BR2_PACKAGE_TAR comment "tar needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/tar/tar.hash b/bsp/buildroot/package/tar/tar.hash index 5d2f1db0..e5634566 100644 --- a/bsp/buildroot/package/tar/tar.hash +++ b/bsp/buildroot/package/tar/tar.hash @@ -1,3 +1,3 @@ # Locally calculated after checking signature -sha256 64ee8d88ec1b47a0961033493f919d27218c41b580138fd6802327462aff22f2 tar-1.28.tar.xz -sha256 a3906a862f83dac1dfaf0ed200c62bd21f6d00f184a7f42b91978593a8553104 tar-1.28.cpio.gz +sha256 402dcfd0022fd7a1f2c5611f5c61af1cd84910a760a44a688e18ddbff4e9f024 tar-1.29.tar.xz +sha256 9173f222464dd3676118408840da5990527062b5c7daf6487bed7c396c45bfb1 tar-1.29.cpio.gz diff --git a/bsp/buildroot/package/tar/tar.mk b/bsp/buildroot/package/tar/tar.mk index 2b47e334..26f113a4 100644 --- a/bsp/buildroot/package/tar/tar.mk +++ b/bsp/buildroot/package/tar/tar.mk @@ -4,7 +4,7 @@ # ################################################################################ -TAR_VERSION = 1.28 +TAR_VERSION = 1.29 TAR_SOURCE = tar-$(TAR_VERSION).tar.xz TAR_SITE = $(BR2_GNU_MIRROR)/tar # busybox installs in /bin, so we need tar to install as well in /bin @@ -16,7 +16,6 @@ TAR_LICENSE_FILES = COPYING # Prefer full-blown tar over buybox's version ifeq ($(BR2_PACKAGE_BUSYBOX),y) TAR_DEPENDENCIES += busybox -HOST_TAR_DEPENDENCIES = endif ifeq ($(BR2_PACKAGE_ACL),y) diff --git a/bsp/buildroot/package/targetcli-fb/targetcli-fb.hash b/bsp/buildroot/package/targetcli-fb/targetcli-fb.hash new file mode 100644 index 00000000..50cb3e3f --- /dev/null +++ b/bsp/buildroot/package/targetcli-fb/targetcli-fb.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 0f32ab6f3ecd234280d55be5e89ce2b3a02f9c82c8dccaae66e26464cff8901a targetcli-fb-v2.1.fb41.tar.gz diff --git a/bsp/buildroot/package/taskd/0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch b/bsp/buildroot/package/taskd/0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch new file mode 100644 index 00000000..960c71b9 --- /dev/null +++ b/bsp/buildroot/package/taskd/0001-Fix-missing-cmakedefine-HAVE_GET_CURRENT_DIR_NAME.patch @@ -0,0 +1,28 @@ +From b067ab9bf667bb9257bb9eeaa6bf25f9a1a17f06 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Fri, 6 May 2016 23:35:42 +0200 +Subject: [PATCH] Fix missing cmakedefine HAVE_GET_CURRENT_DIR_NAME +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Jörg Krause +--- + cmake.h.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cmake.h.in b/cmake.h.in +index 4124ce9..0b8f9d0 100644 +--- a/cmake.h.in ++++ b/cmake.h.in +@@ -51,6 +51,7 @@ + #cmakedefine HAVE_ST_BIRTHTIME + + /* Functions */ ++#cmakedefine HAVE_GET_CURRENT_DIR_NAME + #cmakedefine HAVE_TIMEGM + #cmakedefine HAVE_UUID_UNPARSE_LOWER + +-- +2.8.2 + diff --git a/bsp/buildroot/package/taskd/Config.in b/bsp/buildroot/package/taskd/Config.in new file mode 100644 index 00000000..7a9a1360 --- /dev/null +++ b/bsp/buildroot/package/taskd/Config.in @@ -0,0 +1,16 @@ +config BR2_PACKAGE_TASKD + bool "taskd" + depends on BR2_USE_WCHAR # gnutls, util-linux + depends on BR2_USE_MMU # fork() + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_GNUTLS + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + help + Task management synchronization daemon. + + http://taskwarrior.org/ + +comment "taskd needs a toolchain w/ C++, wchar" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/taskd/taskd.hash b/bsp/buildroot/package/taskd/taskd.hash new file mode 100644 index 00000000..41d37bba --- /dev/null +++ b/bsp/buildroot/package/taskd/taskd.hash @@ -0,0 +1,4 @@ +# From http://taskwarrior.org/download/ +sha1 ded339deeee65277e4712f71a9159502f8b20b52 taskd-1.1.0.tar.gz +# Locally calculated +sha256 7b8488e687971ae56729ff4e2e5209ff8806cf8cd57718bfd7e521be130621b4 taskd-1.1.0.tar.gz diff --git a/bsp/buildroot/package/taskd/taskd.mk b/bsp/buildroot/package/taskd/taskd.mk new file mode 100644 index 00000000..34a260ea --- /dev/null +++ b/bsp/buildroot/package/taskd/taskd.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# taskd +# +################################################################################ + +TASKD_VERSION = 1.1.0 +TASKD_SITE = http://taskwarrior.org/download +TASKD_LICENSE = MIT +TASKD_LICENSE_FILES = COPYING +TASKD_DEPENDENCIES = gnutls util-linux + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/tcl/tcl.hash b/bsp/buildroot/package/tcl/tcl.hash index 2d4e9950..b344d265 100644 --- a/bsp/buildroot/package/tcl/tcl.hash +++ b/bsp/buildroot/package/tcl/tcl.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 6ce0778de0d50daaa9c345d7c1fd1288fb658f674028812e7eeee992e3051005 tcl8.6.3-src.tar.gz +sha256 a265409781e4b3edcc4ef822533071b34c3dc6790b893963809b9fe221befe07 tcl8.6.6-src.tar.gz diff --git a/bsp/buildroot/package/tcl/tcl.mk b/bsp/buildroot/package/tcl/tcl.mk index 1ebba1e8..ffef9cf8 100644 --- a/bsp/buildroot/package/tcl/tcl.mk +++ b/bsp/buildroot/package/tcl/tcl.mk @@ -5,7 +5,7 @@ ################################################################################ TCL_VERSION_MAJOR = 8.6 -TCL_VERSION = $(TCL_VERSION_MAJOR).3 +TCL_VERSION = $(TCL_VERSION_MAJOR).6 TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION) TCL_LICENSE = tcl license @@ -14,15 +14,10 @@ TCL_SUBDIR = unix TCL_INSTALL_STAGING = YES TCL_AUTORECONF = YES -# Note that --with-system-sqlite will only make a difference -# in the sqlite package (which gets removed if sqlite not -# configured). Don't need to worry about conditionally including -# it in the configure options TCL_CONF_OPTS = \ --disable-symbols \ --disable-langinfo \ - --disable-framework \ - --with-system-sqlite + --disable-framework HOST_TCL_CONF_OPTS = \ --disable-symbols \ @@ -32,21 +27,17 @@ HOST_TCL_CONF_OPTS = \ # I haven't found a good way to force pkgs to not build # or configure without just removing the entire pkg directory. define HOST_TCL_REMOVE_PACKAGES - rm -fr $(@D)/pkgs/sqlite[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbc[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbcmysql[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbcodbc[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbcpostgres[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbcsqlite3-[0-9].[0-9].[0-9] + rm -fr $(@D)/pkgs/sqlite3* $(@D)/pkgs/tdbc* endef HOST_TCL_PRE_CONFIGURE_HOOKS += HOST_TCL_REMOVE_PACKAGES + +# We remove the bundled sqlite as we prefer to not use bundled stuff at all. define TCL_REMOVE_PACKAGES - rm -fr $(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/sqlite[0-9].[0-9].[0-9]) \ - $(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/tdbc[0-9].[0-9].[0-9]) \ - $(@D)/pkgs/tdbcmysql[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbcodbc[0-9].[0-9].[0-9] \ - $(@D)/pkgs/tdbcpostgres[0-9].[0-9].[0-9] \ - $(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/tdbcsqlite3-[0-9].[0-9].[0-9]) + rm -fr $(@D)/pkgs/sqlite3* \ + $(if $(BR2_PACKAGE_MYSQL),,$(@D)/pkgs/tdbcmysql*) \ + $(@D)/pkgs/tdbcodbc* \ + $(if $(BR2_PACKAGE_POSTGRESQL),,$(@D)/pkgs/tdbcpostgres*) \ + $(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/tdbcsqlite3*) endef TCL_PRE_CONFIGURE_HOOKS += TCL_REMOVE_PACKAGES @@ -81,8 +72,9 @@ define TCL_REMOVE_EXTRA endef TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA -TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) -HOST_TCL_DEPENDENCIES = +TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) \ + $(if $(BR2_PACKAGE_MYSQL),mysql) \ + $(if $(BR2_PACKAGE_POSTGRESQL),postgresql) $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/tcpdump/tcpdump.hash b/bsp/buildroot/package/tcpdump/tcpdump.hash index 5943347b..997cd424 100644 --- a/bsp/buildroot/package/tcpdump/tcpdump.hash +++ b/bsp/buildroot/package/tcpdump/tcpdump.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 6be520269a89036f99c0b2126713a60965953eab921002b07608ccfc0c47d9af tcpdump-4.7.4.tar.gz +sha256 177385d9d17d1d99ba6aa3ea63a8400a5f4c54db62b83ac6d4da56944bee623b tcpdump-4.8.0.tar.gz diff --git a/bsp/buildroot/package/tcpdump/tcpdump.mk b/bsp/buildroot/package/tcpdump/tcpdump.mk index 14b35039..559b816a 100644 --- a/bsp/buildroot/package/tcpdump/tcpdump.mk +++ b/bsp/buildroot/package/tcpdump/tcpdump.mk @@ -4,7 +4,7 @@ # ################################################################################ -TCPDUMP_VERSION = 4.7.4 +TCPDUMP_VERSION = 4.8.0 TCPDUMP_SITE = http://www.tcpdump.org/release TCPDUMP_LICENSE = BSD-3c TCPDUMP_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/tcpreplay/tcpreplay.mk b/bsp/buildroot/package/tcpreplay/tcpreplay.mk index b32810f7..0723c02d 100644 --- a/bsp/buildroot/package/tcpreplay/tcpreplay.mk +++ b/bsp/buildroot/package/tcpreplay/tcpreplay.mk @@ -20,6 +20,10 @@ TCPREPLAY_LIBS = $(STAGING_DIR)/usr/bin/pcap-config --static --libs TCPREPLAY_CONF_ENV += ac_cv_search_pcap_close="`$(TCPREPLAY_LIBS)`" \ LIBS="`$(TCPREPLAY_LIBS)`" +ifeq ($(BR2_STATIC_LIBS),y) +TCPREPLAY_CONF_OPTS += --enable-dynamic-link=no +endif + ifeq ($(BR2_PACKAGE_TCPDUMP),y) TCPREPLAY_CONF_ENV += ac_cv_path_tcpdump_path=/usr/sbin/tcpdump else diff --git a/bsp/buildroot/package/tegrarcm/0001-Don-t-assume-cryptopp-is-system-wide-installed.patch b/bsp/buildroot/package/tegrarcm/0001-Don-t-assume-cryptopp-is-system-wide-installed.patch new file mode 100644 index 00000000..3c738d86 --- /dev/null +++ b/bsp/buildroot/package/tegrarcm/0001-Don-t-assume-cryptopp-is-system-wide-installed.patch @@ -0,0 +1,114 @@ +From 5ea6b3859ebe16ff47856b58262b14463e119c13 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 19 Apr 2016 22:14:42 +0200 +Subject: [PATCH] Don't assume cryptopp is system-wide installed + +The current build system adds "-isystem /usr/include/$(CRYPTOLIB)" to +AM_CPPFLAGS, but this is wrong because cryptopp might not be installed +in this location. Instead, the build system should simply include + or and rely on the compiler include +path. + +The tricky part is that it can be or . To +solve this, we use a solution similar to the one used in +https://github.com/bingmann/crypto-speedtest/blob/master/m4/cryptopp.m4 +and +https://github.com/bingmann/crypto-speedtest/blob/master/src/speedtest_cryptopp.cpp: +the configure script fills in a variable called +CRYPTOLIB_HEADER_PREFIX, and we use that in the C++ code to include +the right header file. + +It is worth mentioning that doing #include + doesn't work, and we have to use an +intermediate #define'd constant to overcome this C preprocessor +limitation. + +Signed-off-by: Thomas Petazzoni +Submitted upstream at https://github.com/NVIDIA/tegrarcm/pull/2 +--- + configure.ac | 1 + + src/Makefile.am | 2 +- + src/aes-cmac.cpp | 28 +++++++++++++++++----------- + 3 files changed, 19 insertions(+), 12 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 943654f..620e158 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -33,6 +33,7 @@ AC_LINK_IFELSE( + [AC_MSG_ERROR([libcrypto++/libcryptopp is not installed.])])] + ) + AC_SUBST(CRYPTOLIB) ++AC_DEFINE_UNQUOTED([CRYPTOLIB_HEADER_PREFIX], [$CRYPTOLIB], [Location of cryptolib header]) + LDFLAGS=$SAVED_LDFLAGS + AC_LANG(C) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 3dad0e6..35a606f 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -1,5 +1,5 @@ + AM_CFLAGS = -Wall -std=c99 +-AM_CPPFLAGS = -isystem /usr/include/$(CRYPTOLIB) $(LIBUSB_CFLAGS) ++AM_CPPFLAGS = $(LIBUSB_CFLAGS) + + bin_PROGRAMS = tegrarcm + tegrarcm_SOURCES = \ +diff --git a/src/aes-cmac.cpp b/src/aes-cmac.cpp +index 24c89f8..da8be5a 100644 +--- a/src/aes-cmac.cpp ++++ b/src/aes-cmac.cpp +@@ -26,6 +26,9 @@ + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ ++ ++#include "config.h" ++ + #include + using std::cout; + using std::cerr; +@@ -40,26 +43,29 @@ using std::string; + #include + using std::exit; + +-#include "cryptlib.h" +-using CryptoPP::Exception; ++#define CRYPTOPP_INCLUDE_CRYPTLIB ++#define CRYPTOPP_INCLUDE_CMAC ++#define CRYPTOPP_INCLUDE_AES ++#define CRYPTOPP_INCLUDE_HEX ++#define CRYPTOPP_INCLUDE_FILTERS ++#define CRYPTOPP_INCLUDE_SECBLOCK + +-#include "cmac.h" +-using CryptoPP::CMAC; ++#include CRYPTOPP_INCLUDE_CRYPTLIB ++#include CRYPTOPP_INCLUDE_CMAC ++#include CRYPTOPP_INCLUDE_AES ++#include CRYPTOPP_INCLUDE_HEX ++#include CRYPTOPP_INCLUDE_FILTERS ++#include CRYPTOPP_INCLUDE_SECBLOCK + +-#include "aes.h" ++using CryptoPP::Exception; ++using CryptoPP::CMAC; + using CryptoPP::AES; +- +-#include "hex.h" + using CryptoPP::HexEncoder; + using CryptoPP::HexDecoder; +- +-#include "filters.h" + using CryptoPP::StringSink; + using CryptoPP::StringSource; + using CryptoPP::HashFilter; + using CryptoPP::HashVerificationFilter; +- +-#include "secblock.h" + using CryptoPP::SecByteBlock; + + extern "C" int cmac_hash(const unsigned char *msg, int len, unsigned char *cmac_buf) +-- +2.6.4 + diff --git a/bsp/buildroot/package/tegrarcm/Config.in.host b/bsp/buildroot/package/tegrarcm/Config.in.host new file mode 100644 index 00000000..47590fa1 --- /dev/null +++ b/bsp/buildroot/package/tegrarcm/Config.in.host @@ -0,0 +1,8 @@ +config BR2_PACKAGE_HOST_TEGRARCM + bool "host tegrarcm" + depends on BR2_arm || BR2_armeb + help + This program is used to send code to a Tegra device in recovery + mode. + + https://github.com/NVIDIA/tegrarcm diff --git a/bsp/buildroot/package/tegrarcm/tegrarcm.hash b/bsp/buildroot/package/tegrarcm/tegrarcm.hash new file mode 100644 index 00000000..4194a4cd --- /dev/null +++ b/bsp/buildroot/package/tegrarcm/tegrarcm.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 538cb0af237ab33e070d3aeb6cc828cd7ef453753ba2ccc21b87ed43faac51bd tegrarcm-v1.7.tar.gz diff --git a/bsp/buildroot/package/tegrarcm/tegrarcm.mk b/bsp/buildroot/package/tegrarcm/tegrarcm.mk new file mode 100644 index 00000000..06fd0396 --- /dev/null +++ b/bsp/buildroot/package/tegrarcm/tegrarcm.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# tegrarcm +# +################################################################################ + +TEGRARCM_VERSION = v1.7 +TEGRARCM_SITE = $(call github,NVIDIA,tegrarcm,$(TEGRARCM_VERSION)) +TEGRARCM_LICENSE = BSD-3c / NVIDIA Software License (src/miniloader) +TEGRARCM_LICENSE_FILES = LICENSE +TEGRARCM_AUTORECONF = YES +HOST_TEGRARCM_DEPENDENCIES = host-libusb host-pkgconf host-cryptopp + +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/tekui/Config.in b/bsp/buildroot/package/tekui/Config.in new file mode 100644 index 00000000..1203667b --- /dev/null +++ b/bsp/buildroot/package/tekui/Config.in @@ -0,0 +1,21 @@ +config BR2_PACKAGE_TEKUI + bool "tekui" + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_LUAFILESYSTEM # runtime only + select BR2_PACKAGE_LUAEXPAT # runtime only + select BR2_PACKAGE_LUASOCKET # runtime only + select BR2_PACKAGE_LUAPOSIX # runtime only + depends on !BR2_STATIC_LIBS + depends on BR2_PACKAGE_HAS_LUAINTERPRETER + depends on BR2_TOOLCHAIN_HAS_THREADS + help + TekUI is a small, freestanding and portable graphical user interface + (GUI) toolkit written in Lua and C. It was initially developed for + the X Window System and has been ported to DirectFB, Windows, Nano-X + and a raw framebuffer since + + http://tekui.neoscientists.org/ + +comment "tekui needs a Lua interpreter and a toolchain w/ threads, dynamic library" + depends on !BR2_PACKAGE_HAS_LUAINTERPRETER || !BR2_TOOLCHAIN_HAS_THREADS || \ + BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/tekui/tekui.hash b/bsp/buildroot/package/tekui/tekui.hash new file mode 100644 index 00000000..07de2ed6 --- /dev/null +++ b/bsp/buildroot/package/tekui/tekui.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 28abfaacc0f2ddae962afbbca862a7fb619c33a99a497be9edd746091013dd7f tekui-1.12.tgz diff --git a/bsp/buildroot/package/tekui/tekui.mk b/bsp/buildroot/package/tekui/tekui.mk new file mode 100644 index 00000000..60b48e07 --- /dev/null +++ b/bsp/buildroot/package/tekui/tekui.mk @@ -0,0 +1,66 @@ +################################################################################ +# +# tekui +# +################################################################################ + +TEKUI_VERSION = 1.12 +TEKUI_SOURCE = tekui-$(TEKUI_VERSION).tgz +TEKUI_SITE = http://tekui.neoscientists.org/releases +TEKUI_LICENSE = MIT +TEKUI_LICENSE_FILES = COPYRIGHT +TEKUI_DEPENDENCIES = freetype luainterpreter + +TEKUI_MAKE_OPTS = \ + CC="$(TARGET_CC) -fPIC" \ + AR="$(TARGET_AR) rcu" \ + INSTALL_S="install" \ + LUAVER=$(LUAINTERPRETER_ABIVER) \ + LUA_DEFS="" + +ifeq ($(BR2_PACKAGE_LIBPNG),y) +TEKUI_DEPENDENCIES += libpng +TEKUI_MAKE_OPTS += TEKUI_DEFS="-DENABLE_GRADIENT -DENABLE_FILENO -DENABLE_PIXMAP_CACHE -DENABLE_PNG" +TEKUI_MAKE_OPTS += TEKUI_LIBS=-lpng +else +TEKUI_MAKE_OPTS += TEKUI_DEFS="-DENABLE_GRADIENT -DENABLE_FILENO -DENABLE_PIXMAP_CACHE" +endif + +ifeq ($(BR2_PACKAGE_DEJAVU),y) +TEKUI_FONTDIR=/usr/share/fonts/dejavu +else +TEKUI_FONTDIR=/usr/share/lua/$(LUAINTERPRETER_ABIVER)/tek/ui/font +endif + +ifeq ($(BR2_PACKAGE_XLIB_LIBXFT)$(BR2_PACKAGE_XLIB_LIBXXF86VM),yy) +TEKUI_DEPENDENCIES += xlib_libXft xlib_libXxf86vm +TEKUI_MAKE_OPTS += \ + X11_LIBS="-lXext -lXxf86vm -lXft -lfreetype -lfontconfig" \ + X11_DEFS="-D_XOPEN_SOURCE -DENABLE_XFT -DENABLE_XVID -I$(STAGING_DIR)/usr/include/freetype2 -I$(STAGING_DIR)/usr/include/fontconfig" \ + DISPLAY_DRIVER=x11 +else +ifeq ($(BR2_PACKAGE_DIRECTFB),y) +TEKUI_DEPENDENCIES += directfb +TEKUI_MAKE_OPTS += \ + DIRECTFB_LIBS="-lfreetype -ldirectfb -lpthread" \ + DIRECTFB_DEFS="-D_REENTRANT -I$(STAGING_DIR)/usr/include/directfb -I$(STAGING_DIR)/usr/include/freetype2" \ + DISPLAY_DRIVER=directfb +else +TEKUI_MAKE_OPTS += \ + FREETYPE_LIBS=-lfreetype \ + FREETYPE_DEFS="-I$(STAGING_DIR)/usr/include/freetype2" \ + RAWFB_SUB_LIBS="" \ + RAWFB_SUB_DEFS="-DDEF_FONTDIR=\\\"$(TEKUI_FONTDIR)\\\"" \ + DISPLAY_DRIVER=rawfb +endif +endif + +define TEKUI_BUILD_CMDS + $(MAKE) $(TEKUI_MAKE_OPTS) PREFIX="/usr" -C $(@D) all +endef + +define TEKUI_INSTALL_TARGET_CMDS + $(MAKE) $(TEKUI_MAKE_OPTS) PREFIX="$(TARGET_DIR)/usr" -C $(@D) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/terminology/Config.in b/bsp/buildroot/package/terminology/Config.in new file mode 100644 index 00000000..c574af7f --- /dev/null +++ b/bsp/buildroot/package/terminology/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_TERMINOLOGY + bool "terminology" + depends on BR2_PACKAGE_EFL + select BR2_PACKAGE_ELEMENTARY + help + Terminology is an EFL terminal emulator with some extra + bells and whistles. + + https://www.enlightenment.org/about-terminology diff --git a/bsp/buildroot/package/terminology/terminology.hash b/bsp/buildroot/package/terminology/terminology.hash new file mode 100644 index 00000000..841ff948 --- /dev/null +++ b/bsp/buildroot/package/terminology/terminology.hash @@ -0,0 +1,2 @@ +# From http://sourceforge.net/p/enlightenment/mailman/message/34472601/ +sha256 ecee7ae6ba2fa10bfc5b6531292157dec2373dbb7d248cc62eb53d0be74e9bcf terminology-0.9.1.tar.xz diff --git a/bsp/buildroot/package/terminology/terminology.mk b/bsp/buildroot/package/terminology/terminology.mk new file mode 100644 index 00000000..d6c41d74 --- /dev/null +++ b/bsp/buildroot/package/terminology/terminology.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# terminology +# +################################################################################ + +TERMINOLOGY_VERSION = 0.9.1 +TERMINOLOGY_SOURCE = terminology-$(TERMINOLOGY_VERSION).tar.xz +TERMINOLOGY_SITE = https://download.enlightenment.org/rel/apps/terminology +TERMINOLOGY_LICENSE = BSD-2c +TERMINOLOGY_LICENSE_FILES = COPYING + +TERMINOLOGY_DEPENDENCIES = efl elementary host-pkgconf +TERMINOLOGY_CONF_OPTS = --with-edje-cc=$(HOST_DIR)/usr/bin/edje_cc + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/texinfo/texinfo.hash b/bsp/buildroot/package/texinfo/texinfo.hash new file mode 100644 index 00000000..4bdf3435 --- /dev/null +++ b/bsp/buildroot/package/texinfo/texinfo.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 ac68394ce21b2420ba7ed7cec65d84aacf308cc88e9bf4716fcfff88286883d2 texinfo-6.1.tar.xz diff --git a/bsp/buildroot/package/texinfo/texinfo.mk b/bsp/buildroot/package/texinfo/texinfo.mk new file mode 100644 index 00000000..ebd0b488 --- /dev/null +++ b/bsp/buildroot/package/texinfo/texinfo.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# texinfo +# +################################################################################ + +TEXINFO_VERSION = 6.1 +TEXINFO_SITE = $(BR2_GNU_MIRROR)/texinfo +TEXINFO_SOURCE = texinfo-$(TEXINFO_VERSION).tar.xz +TEXINFO_LICENSE = GPLv3+ +TEXINFO_LICENSE_FILES = COPYING + +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/tftpd/Config.in b/bsp/buildroot/package/tftpd/Config.in index 609b5d12..ea5cb303 100644 --- a/bsp/buildroot/package/tftpd/Config.in +++ b/bsp/buildroot/package/tftpd/Config.in @@ -1,5 +1,8 @@ config BR2_PACKAGE_TFTPD bool "tftpd" + # linker issue with pre-6.x toolchains + depends on !(BR2_nios2 && !BR2_TOOLCHAIN_GCC_AT_LEAST_6) depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help HPA's Trivial File Transfer Protocol (tftp) server. diff --git a/bsp/buildroot/package/thrift/Config.in b/bsp/buildroot/package/thrift/Config.in index 54ca9b85..0ee3f000 100644 --- a/bsp/buildroot/package/thrift/Config.in +++ b/bsp/buildroot/package/thrift/Config.in @@ -3,7 +3,6 @@ config BR2_PACKAGE_THRIFT depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS select BR2_PACKAGE_BOOST select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_OPENSSL @@ -19,6 +18,5 @@ config BR2_PACKAGE_THRIFT http://thrift.apache.org/ comment "thrift needs a toolchain w/ C++, wchar, threads" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_USE_WCHAR || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/bsp/buildroot/package/thrift/thrift.mk b/bsp/buildroot/package/thrift/thrift.mk index a40ddadb..185e1ec1 100644 --- a/bsp/buildroot/package/thrift/thrift.mk +++ b/bsp/buildroot/package/thrift/thrift.mk @@ -25,6 +25,11 @@ THRIFT_AUTORECONF_OPTS = -I $(HOST_DIR)/usr/share/autoconf-archive THRIFT_LICENSE = Apache-2.0 THRIFT_LICENSE_FILES = LICENSE +# relocation truncated to fit: R_68K_GOT16O +ifeq ($(BR2_m68k_cf),y) +THRIFT_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -mxgot" +endif + ifeq ($(BR2_STATIC_LIBS),y) # openssl uses zlib, so we need to explicitly link with it when static THRIFT_CONF_ENV += LIBS=-lz diff --git a/bsp/buildroot/package/ti-gfx/Config.in b/bsp/buildroot/package/ti-gfx/Config.in index de4e9cbf..6ec2f231 100644 --- a/bsp/buildroot/package/ti-gfx/Config.in +++ b/bsp/buildroot/package/ti-gfx/Config.in @@ -1,13 +1,19 @@ config BR2_PACKAGE_TI_GFX bool "ti-gfx" depends on BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC && BR2_arm + select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBGLES select BR2_PACKAGE_HAS_POWERVR select BR2_PACKAGE_FBSET if !BR2_PACKAGE_BUSYBOX # Runtime dependency only select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra help - Graphics libraries for TI boards. + Graphics libraries for TI boards using SGX acceleration. + + Supports OMAP35xx, DM37xx/AM37xx, DM816x, DM814x, AM335x and + AM43xx. + + For newer CPUs or kernels use the ti-sgx-{km,um} packages. http://downloads.ti.com/dsps/dsps_public_sw/gfxsdk/ @@ -71,6 +77,6 @@ endchoice endif -comment "ti-gfx needs an (e)glibc toolchain and a Linux kernel to be built" +comment "ti-gfx needs a glibc toolchain and a Linux kernel to be built" depends on BR2_arm depends on !(BR2_LINUX_KERNEL && BR2_TOOLCHAIN_USES_GLIBC) diff --git a/bsp/buildroot/package/ti-sgx-demos/Config.in b/bsp/buildroot/package/ti-sgx-demos/Config.in new file mode 100644 index 00000000..ea06fdb3 --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-demos/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_TI_SGX_DEMOS + bool "ti-sgx-demos" + depends on BR2_PACKAGE_TI_SGX_UM + help + These SGX powervr demo applications from Imagination + Technologies are availabe as binaries only. The binaries + are compiled for the TI SGX implementation. + + http://git.ti.com/graphics/img-pvr-sdk diff --git a/bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.hash b/bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.hash new file mode 100644 index 00000000..43acf910 --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 9d1d4da2c2b35303e239f99eb4003b8b206078a682aa083d5fb831ee4197f3bf ti-sgx-demos-f24650bc8243b25c23d6a0a502ed79fc472ac424.tar.gz diff --git a/bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.mk b/bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.mk new file mode 100644 index 00000000..80af79b9 --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-demos/ti-sgx-demos.mk @@ -0,0 +1,18 @@ +################################################################################ +# +# ti-sgx-demos +# +################################################################################ + +# This correpsonds to SDK 02.00.00.00 +TI_SGX_DEMOS_VERSION = f24650bc8243b25c23d6a0a502ed79fc472ac424 +TI_SGX_DEMOS_SITE = git://git.ti.com/graphics/img-pvr-sdk.git +TI_SGX_DEMOS_LICENSE = Imagination Technologies License Agreement +TI_SGX_DEMOS_LICENSE_FILES = LegalNotice.txt + +define TI_SGX_DEMOS_INSTALL_TARGET_CMDS + cp -dpfr $(@D)/targetfs/Examples/Advanced/OGLES* \ + $(TARGET_DIR)/usr/bin/ +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/ti-sgx-km/Config.in b/bsp/buildroot/package/ti-sgx-km/Config.in new file mode 100644 index 00000000..a4c9bb8c --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-km/Config.in @@ -0,0 +1,49 @@ +comment "ti-sgx-km needs a Linux kernel to be built" + depends on BR2_arm + depends on !BR2_LINUX_KERNEL + +config BR2_PACKAGE_TI_SGX_KM + bool "ti-sgx-km" + depends on BR2_LINUX_KERNEL && BR2_arm + select BR2_LINUX_NEEDS_MODULES + help + Kernel modules for TI CPUs with SGX GPU. + This package supports AM335x, AM437x, AM4430 and AM5430. + It builds the kernel module and the user space binaries. + For older CPUs or kernels use the ti-gfx package. + + Note: it needs a TI specific kernel to build properly. + + http://git.ti.com/graphics/omap5-sgx-ddk-linux + +if BR2_PACKAGE_TI_SGX_KM + +choice + prompt "Target" + default BR2_PACKAGE_TI_SGX_AM335X + help + Select the SOC for which you would like to install drivers. + +config BR2_PACKAGE_TI_SGX_AM335X + bool "AM335x" + help + AM335x CPU + +config BR2_PACKAGE_TI_SGX_AM437X + bool "AM437x" + help + AM437x CPU + +config BR2_PACKAGE_TI_SGX_AM4430 + bool "AM4430" + help + AM4430 CPU + +config BR2_PACKAGE_TI_SGX_AM5430 + bool "AM5430" + help + AM5430 CPU + +endchoice + +endif diff --git a/bsp/buildroot/package/ti-sgx-km/ti-sgx-km.hash b/bsp/buildroot/package/ti-sgx-km/ti-sgx-km.hash new file mode 100644 index 00000000..7f7e0acd --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-km/ti-sgx-km.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 47728ff8fc48827116cc042efa777a22a83dd4bd17c494e2a53b8c204ca59624 ti-sgx-km-2b7523d07a13ab704a24a7664749551f4a13ed32.tar.gz diff --git a/bsp/buildroot/package/ti-sgx-km/ti-sgx-km.mk b/bsp/buildroot/package/ti-sgx-km/ti-sgx-km.mk new file mode 100644 index 00000000..58ba3f09 --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-km/ti-sgx-km.mk @@ -0,0 +1,43 @@ +################################################################################ +# +# ti-sgx-km +# +################################################################################ + +# This correpsonds to SDK 02.00.00.00 +TI_SGX_KM_VERSION = 2b7523d07a13ab704a24a7664749551f4a13ed32 +TI_SGX_KM_SITE = git://git.ti.com/graphics/omap5-sgx-ddk-linux.git +TI_SGX_KM_LICENSE = GPLv2 +TI_SGX_KM_LICENSE_FILES = GPL-COPYING + +TI_SGX_KM_DEPENDENCIES = linux + +TI_SGX_KM_MAKE_OPTS = \ + $(LINUX_MAKE_FLAGS) \ + KERNELDIR=$(LINUX_DIR) \ + PVR_NULLDRM=1 + +ifeq ($(BR2_PACKAGE_TI_SGX_AM335X),y) +TI_SGX_KM_PLATFORM_NAME = omap335x +else ifeq ($(BR2_PACKAGE_TI_SGX_AM437X),y) +TI_SGX_KM_PLATFORM_NAME = omap437x +else ifeq ($(BR2_PACKAGE_TI_SGX_AM4430),y) +TI_SGX_KM_PLATFORM_NAME = omap4430 +else ifeq ($(BR2_PACKAGE_TI_SGX_5430),y) +TI_SGX_KM_PLATFORM_NAME = omap5430 +endif + +TI_SGX_KM_SUBDIR = eurasia_km/eurasiacon/build/linux2/$(TI_SGX_KM_PLATFORM_NAME)_linux + +define TI_SGX_KM_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(TI_SGX_KM_MAKE_OPTS) \ + -C $(@D)/$(TI_SGX_KM_SUBDIR) +endef + +define TI_SGX_KM_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(TI_SGX_KM_MAKE_OPTS) \ + DISCIMAGE=$(TARGET_DIR) \ + kbuild_install -C $(@D)/$(TI_SGX_KM_SUBDIR) +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/ti-sgx-um/Config.in b/bsp/buildroot/package/ti-sgx-um/Config.in new file mode 100644 index 00000000..8e1e4fb2 --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-um/Config.in @@ -0,0 +1,36 @@ +comment "ti-sgx-um needs the ti-sgx-km driver" + depends on !BR2_PACKAGE_TI_SGX_KM + +comment "ti-sgx-um needs a glibc toolchain w/ threads" + depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_TI_SGX_UM + bool "ti-sgx-um" + depends on BR2_PACKAGE_TI_SGX_KM + depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm + # pre-built binaries + depends on BR2_TOOLCHAIN_USES_GLIBC + select BR2_PACKAGE_LIBDRM + select BR2_PACKAGE_LIBDRM_OMAP + select BR2_PACKAGE_HAS_LIBEGL + select BR2_PACKAGE_HAS_LIBGLES + select BR2_PACKAGE_HAS_POWERVR + help + Graphics libraries for TI CPUs with SGX5xx GPU. + This package supports AM335x, AM437x, AM4430 and AM5430. + For older CPUs or kernels use the ti-gfx package. + + http://git.ti.com/graphics/omap5-sgx-ddk-um-linux + +if BR2_PACKAGE_TI_SGX_UM + +config BR2_PACKAGE_PROVIDES_LIBEGL + default "ti-sgx-um" + +config BR2_PACKAGE_PROVIDES_LIBGLES + default "ti-sgx-um" + +config BR2_PACKAGE_PROVIDES_POWERVR + default "ti-sgx-um" + +endif diff --git a/bsp/buildroot/package/ti-sgx-um/S80ti-sgx b/bsp/buildroot/package/ti-sgx-um/S80ti-sgx new file mode 100644 index 00000000..8cae52fd --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-um/S80ti-sgx @@ -0,0 +1,14 @@ +#!/bin/sh +case "$1" in + start) + printf "Initializing SGX graphics driver " + /usr/bin/pvrsrvinit + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; + stop) + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 + ;; +esac diff --git a/bsp/buildroot/package/ti-sgx-um/powervr.ini b/bsp/buildroot/package/ti-sgx-um/powervr.ini new file mode 100644 index 00000000..fc92d45d --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-um/powervr.ini @@ -0,0 +1,6 @@ +[default] +#defaul library without double buffering: +WindowSystem=libpvrDRMWSEGL_FRONT.so +#alternative library, slower but with double buffering +#WindowSystem=libpvrDRMWSEGL.so +DisableHWTQTextureUpload=1 diff --git a/bsp/buildroot/package/ti-sgx-um/ti-sgx-um.hash b/bsp/buildroot/package/ti-sgx-um/ti-sgx-um.hash new file mode 100644 index 00000000..a6a05664 --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-um/ti-sgx-um.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 c17f23d255cff8fe72fc3f5cae3d7550e387af07d036954b4f08e573379406d0 ti-sgx-um-e15f1543bab4de9e8927a2c4934addf3fd16ffcb.tar.gz diff --git a/bsp/buildroot/package/ti-sgx-um/ti-sgx-um.mk b/bsp/buildroot/package/ti-sgx-um/ti-sgx-um.mk new file mode 100644 index 00000000..d9ff2dfe --- /dev/null +++ b/bsp/buildroot/package/ti-sgx-um/ti-sgx-um.mk @@ -0,0 +1,38 @@ +################################################################################ +# +# ti-sgx-um +# +################################################################################ + +# This correpsonds to SDK 02.00.00.00 +TI_SGX_UM_VERSION = e15f1543bab4de9e8927a2c4934addf3fd16ffcb +TI_SGX_UM_SITE = git://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git +TI_SGX_UM_LICENSE = TI TSPA License +TI_SGX_UM_LICENSE_FILES = OMAP5-Linux-Graphics-DDK-UM-Manifest.doc +TI_SGX_UM_INSTALL_STAGING = YES + +# ti-sgx-um is a egl/gles provider only if libdrm is installed +TI_SGX_UM_DEPENDENCIES = libdrm + +define TI_SGX_UM_INSTALL_STAGING_CMDS + $(MAKE) -C $(@D) DISCIMAGE=$(STAGING_DIR) install +endef + +define TI_SGX_UM_INSTALL_TARGET_CMDS + $(MAKE) -C $(@D) DISCIMAGE=$(TARGET_DIR) install +endef + +# libs use the following file for configuration +define TI_SGX_UM_INSTALL_CONF + $(INSTALL) -D -m 0644 package/ti-sgx-um/powervr.ini \ + $(TARGET_DIR)/etc/powervr.ini +endef + +TI_SGX_UM_POST_INSTALL_TARGET_HOOKS += TI_SGX_UM_INSTALL_CONF + +define TI_SGX_UM_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/ti-sgx-um/S80ti-sgx \ + $(TARGET_DIR)/etc/init.d/S80ti-sgx +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/ti-utils/ti-utils.hash b/bsp/buildroot/package/ti-utils/ti-utils.hash new file mode 100644 index 00000000..899172e9 --- /dev/null +++ b/bsp/buildroot/package/ti-utils/ti-utils.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 d05d4e3ad3599fca7854109938aebd24bbab72ac7d69dd053260f735a36613f9 ti-utils-06dbdb2727354b5f3ad7c723897f40051fddee49.tar.gz diff --git a/bsp/buildroot/package/tidsp-binaries/tidsp-binaries.hash b/bsp/buildroot/package/tidsp-binaries/tidsp-binaries.hash new file mode 100644 index 00000000..6649c76c --- /dev/null +++ b/bsp/buildroot/package/tidsp-binaries/tidsp-binaries.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c56e5edd53c921768a033906426329279ca8ae6537c5d735c42b948e9778b05c tidsp-binaries-23.i3.8.tar.gz diff --git a/bsp/buildroot/package/tiff/Config.in b/bsp/buildroot/package/tiff/Config.in index 00c2a3dc..6e5c1765 100644 --- a/bsp/buildroot/package/tiff/Config.in +++ b/bsp/buildroot/package/tiff/Config.in @@ -1,12 +1,11 @@ -config BR2_PACKAGE_TIFF +menuconfig BR2_PACKAGE_TIFF bool "tiff" help Library for handling TIFF (Tag Image File Format) images. - http://www.libtiff.org/ + http://www.remotesensing.org/libtiff/ if BR2_PACKAGE_TIFF -menu "tiff Options" config BR2_PACKAGE_TIFF_CCITT bool "CCITT Group 3 & 4 support" @@ -62,7 +61,6 @@ config BR2_PACKAGE_TIFF_OLD_JPEG config BR2_PACKAGE_TIFF_JBIG bool "JBIG compression" default y -endmenu config BR2_PACKAGE_TIFF_UTILITIES bool "tiff utilities" diff --git a/bsp/buildroot/package/tiff/tiff.mk b/bsp/buildroot/package/tiff/tiff.mk index 266272aa..a53d7bb3 100644 --- a/bsp/buildroot/package/tiff/tiff.mk +++ b/bsp/buildroot/package/tiff/tiff.mk @@ -15,6 +15,14 @@ TIFF_CONF_OPTS = \ TIFF_DEPENDENCIES = host-pkgconf +HOST_TIFF_CONF_OPTS = \ + --disable-cxx \ + --without-x \ + --disable-zlib \ + --disable-lzma \ + --disable-jpeg +HOST_TIFF_DEPENDENCIES = host-pkgconf + ifneq ($(BR2_PACKAGE_TIFF_CCITT),y) TIFF_CONF_OPTS += --disable-ccitt endif @@ -81,3 +89,4 @@ endif TIFF_MAKE = $(MAKE) SUBDIRS="$(TIFF_SUBDIRS)" $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/time/Config.in b/bsp/buildroot/package/time/Config.in index 0ec3be35..40275cf0 100644 --- a/bsp/buildroot/package/time/Config.in +++ b/bsp/buildroot/package/time/Config.in @@ -1,7 +1,14 @@ config BR2_PACKAGE_TIME bool "time" depends on BR2_USE_MMU # fork() + # See https://savannah.gnu.org/bugs/index.php?48000 + depends on !BR2_STATIC_LIBS + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The GNU time utility. http://savannah.gnu.org/projects/time/ + +comment "time needs a toolchain w/ dynamic library" + depends on BR2_USE_MMU + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/tinc/Config.in b/bsp/buildroot/package/tinc/Config.in index 5390ff33..1d8e2c42 100644 --- a/bsp/buildroot/package/tinc/Config.in +++ b/bsp/buildroot/package/tinc/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_TINC select BR2_PACKAGE_LZO select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_ZLIB + depends on !BR2_STATIC_LIBS # tinc requires libdl for OpenSSL depends on BR2_USE_MMU # fork() help tinc is a Virtual Private Network (VPN) daemon that uses @@ -10,3 +11,6 @@ config BR2_PACKAGE_TINC between hosts on the Internet. http://www.tinc-vpn.org/ + +comment "tinc needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/tinc/tinc.hash b/bsp/buildroot/package/tinc/tinc.hash index 721b6bd4..0cccbbff 100644 --- a/bsp/buildroot/package/tinc/tinc.hash +++ b/bsp/buildroot/package/tinc/tinc.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 498e58f9f39e3922030a63cf62baf4b46a40fbda8d90b23ec0f084f4a9f9b687 tinc-1.0.24.tar.gz +sha256 0b502699360f09ce2128a39cf02abca07bfc699fc02ce829b3a90cf5e1e8b344 tinc-1.0.28.tar.gz diff --git a/bsp/buildroot/package/tinc/tinc.mk b/bsp/buildroot/package/tinc/tinc.mk index f7edd79a..fb15c34b 100644 --- a/bsp/buildroot/package/tinc/tinc.mk +++ b/bsp/buildroot/package/tinc/tinc.mk @@ -4,14 +4,14 @@ # ################################################################################ -TINC_VERSION = 1.0.24 +TINC_VERSION = 1.0.28 TINC_SITE = http://www.tinc-vpn.org/packages TINC_DEPENDENCIES = lzo openssl zlib TINC_LICENSE = GPLv2+ with OpenSSL exception TINC_LICENSE_FILES = COPYING COPYING.README TINC_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=c99" -ifeq ($(BR2_arc),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) TINC_CONF_ENV += \ ax_cv_check_cflags___fPIE=no \ ax_cv_check_ldflags___pie=no diff --git a/bsp/buildroot/package/tinyalsa/0002-asound.h-include-time.h-to-get-struct-timespec-proto.patch b/bsp/buildroot/package/tinyalsa/0002-asound.h-include-time.h-to-get-struct-timespec-proto.patch new file mode 100644 index 00000000..1b5d43ce --- /dev/null +++ b/bsp/buildroot/package/tinyalsa/0002-asound.h-include-time.h-to-get-struct-timespec-proto.patch @@ -0,0 +1,33 @@ +From c8333f8c7a4e4b9549abeef7530b2cd20a18e537 Mon Sep 17 00:00:00 2001 +From: rofl0r +Date: Mon, 12 Oct 2015 12:57:09 +0100 +Subject: [PATCH] asound.h: include to get struct timespec prototype + +without including it, we get +In file included from mixer.c:44:0: +include/sound/asound.h:337:18: error: field 'trigger_tstamp' has incomplete type +include/sound/asound.h:338:18: error: field 'tstamp' has incomplete type +etc. + +Signed-off-by: Baruch Siach +--- +Patch status: upstream commit c8333f8c7a4e + + include/sound/asound.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/sound/asound.h b/include/sound/asound.h +index a041628ec28e..7c6de81673f5 100644 +--- a/include/sound/asound.h ++++ b/include/sound/asound.h +@@ -12,6 +12,7 @@ + #ifndef __SOUND_ASOUND_H + #define __SOUND_ASOUND_H + ++#include + #include + + #define SNDRV_PROTOCOL_VERSION(major, minor, subminor) (((major)<<16)|((minor)<<8)|(subminor)) +-- +2.8.1 + diff --git a/bsp/buildroot/package/tinyalsa/tinyalsa.hash b/bsp/buildroot/package/tinyalsa/tinyalsa.hash new file mode 100644 index 00000000..5182b007 --- /dev/null +++ b/bsp/buildroot/package/tinyalsa/tinyalsa.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 a15abd57e74a2c41dbc57cac6fae39a28d2643e9aa48263399de37481b9647d3 tinyalsa-f2a7b6d3d81bd337a540d56704b4aaa7bdb046fe.tar.gz diff --git a/bsp/buildroot/package/tinycbor/Config.in b/bsp/buildroot/package/tinycbor/Config.in new file mode 100644 index 00000000..cf176e46 --- /dev/null +++ b/bsp/buildroot/package/tinycbor/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_TINYCBOR + bool "tinycbor" + # package uses fopencookie(), not available with this toolchain + depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + help + Concise Binary Object Representation (CBOR) Library + + https://github.com/01org/tinycbor diff --git a/bsp/buildroot/package/tinycbor/tinycbor.hash b/bsp/buildroot/package/tinycbor/tinycbor.hash new file mode 100644 index 00000000..8757047b --- /dev/null +++ b/bsp/buildroot/package/tinycbor/tinycbor.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 f70de1e6b7e3750abb4ceacf0059e47b47c769f113434de10293b33867ce54c2 tinycbor-v0.3.2.tar.gz +sha256 7d3aa839ae246e9e14fc73e67869d88c684802c1578fb75503f3fdde1482dcf6 ede7f1431ae06c9086f2a83a57bd7832d99280e3.patch diff --git a/bsp/buildroot/package/tinycbor/tinycbor.mk b/bsp/buildroot/package/tinycbor/tinycbor.mk new file mode 100644 index 00000000..6af2eef4 --- /dev/null +++ b/bsp/buildroot/package/tinycbor/tinycbor.mk @@ -0,0 +1,41 @@ +################################################################################ +# +# tinycbor +# +################################################################################ + +TINYCBOR_VERSION = v0.3.2 +TINYCBOR_SITE = $(call github,01org,tinycbor,$(TINYCBOR_VERSION)) +TINYCBOR_LICENSE = MIT +TINYCBOR_LICENSE_FILES = LICENSE + +# This patch fixes the issue on unnamed union which are not supported by some +# targets like blackfin +# This patch is currently in dev branch and will be a part of v0.4 +TINYCBOR_PATCH = \ + https://github.com/01org/tinycbor/commit/ede7f1431ae06c9086f2a83a57bd7832d99280e3.patch + +TINYCBOR_DEPENDENCIES = host-pkgconf +TINYCBOR_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_CJSON),y) +TINYCBOR_DEPENDENCIES += cjson +endif + +TINYCBOR_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) V=1 + +define TINYCBOR_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(TINYCBOR_MAKE_OPTS) -C $(@D) +endef + +define TINYCBOR_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(TINYCBOR_MAKE_OPTS) -C $(@D) \ + DESTDIR=$(STAGING_DIR) prefix=/usr install +endef + +define TINYCBOR_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) $(TINYCBOR_MAKE_OPTS) -C $(@D) \ + DESTDIR=$(TARGET_DIR) prefix=/usr install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/tinydtls/0001-Update-Makefile.in-to-allow-cross-compilation.patch b/bsp/buildroot/package/tinydtls/0001-Update-Makefile.in-to-allow-cross-compilation.patch new file mode 100644 index 00000000..5e91f2ee --- /dev/null +++ b/bsp/buildroot/package/tinydtls/0001-Update-Makefile.in-to-allow-cross-compilation.patch @@ -0,0 +1,170 @@ +From a6f312dfb4497d5e72664c4772a8b122e25b81d8 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Tue, 26 Jul 2016 09:09:53 +0200 +Subject: [PATCH] Update Makefile.in to allow cross-compilation + +Use CC, CPP and DESTDIR environment variables passed to configure in Makefile.in files +Fix definition of LIBS and LDFLAGS (LDFLAGS was set to @LIBS@) + +Signed-off-by: Fabrice Fontaine +--- + Makefile.in | 13 ++++++++----- + aes/Makefile.in | 7 +++++-- + doc/Makefile.in | 4 ++-- + ecc/Makefile.in | 7 +++++-- + sha2/Makefile.in | 7 +++++-- + tests/Makefile.in | 4 +++- + 6 files changed, 28 insertions(+), 14 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 38cc665..7dcd424 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -40,7 +40,9 @@ OBJECTS:= $(patsubst %.c, %.o, $(SOURCES)) $(SUB_OBJECTS) + HEADERS:=dtls.h hmac.h dtls_debug.h dtls_config.h uthash.h numeric.h crypto.h global.h ccm.h \ + netq.h alert.h utlist.h prng.h peer.h state.h dtls_time.h session.h \ + tinydtls.h ++CC:=@CC@ + CFLAGS:=-Wall -pedantic -std=c99 @CFLAGS@ ++CPP:=@CPP@ + CPPFLAGS:=@CPPFLAGS@ -DDTLS_CHECK_CONTENTTYPE + SUBDIRS:=tests doc platform-specific sha2 aes ecc + DISTSUBDIRS:=$(SUBDIRS) +@@ -48,7 +50,8 @@ DISTDIR=$(top_builddir)/$(package) + FILES:=Makefile.in configure configure.in dtls_config.h.in tinydtls.h.in \ + Makefile.tinydtls $(SOURCES) $(HEADERS) + LIB:=libtinydtls.a +-LDFLAGS:=@LIBS@ ++LDFLAGS:=@LDFLAGS@ ++LIBS:=@LIBS@ + ARFLAGS:=cru + doc:=doc + +@@ -100,10 +103,10 @@ dist: $(FILES) $(DISTSUBDIRS) + tar czf $(package).tar.gz $(DISTDIR) + + install: $(LIB) $(HEADERS) $(SUBDIRS) +- test -d $(libdir) || mkdir -p $(libdir) +- test -d $(includedir) || mkdir -p $(includedir) +- $(install) $(LIB) $(libdir)/ +- $(install) $(HEADERS) $(includedir)/ ++ test -d $(DESTDIR)$(libdir) || mkdir -p $(DESTDIR)$(libdir) ++ test -d $(DESTDIR)$(includedir) || mkdir -p $(DESTDIR)$(includedir) ++ $(install) $(LIB) $(DESTDIR)$(libdir)/ ++ $(install) $(HEADERS) $(DESTDIR)$(includedir)/ + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install="$(install)" includedir=$(includedir) install; \ + done +diff --git a/aes/Makefile.in b/aes/Makefile.in +index 7c9f6ef..9ff7799 100644 +--- a/aes/Makefile.in ++++ b/aes/Makefile.in +@@ -28,8 +28,11 @@ top_srcdir:= @top_srcdir@ + SOURCES:= rijndael.c + HEADERS:= rijndael.h + OBJECTS:= $(patsubst %.c, %.o, $(SOURCES)) ++CPP=@CPP@ + CPPFLAGS=@CPPFLAGS@ ++CC=@CC@ + CFLAGS=-Wall -std=c99 -pedantic @CFLAGS@ ++LDFLAGS=@LDFLAGS@ + LDLIBS=@LIBS@ + FILES:=Makefile.in $(SOURCES) $(HEADERS) + DISTDIR=$(top_builddir)/@PACKAGE_TARNAME@-@PACKAGE_VERSION@ +@@ -60,8 +63,8 @@ dist: $(FILES) + cp -p $(FILES) $(DISTDIR)/aes + + install: $(HEADERS) +- test -d $(includedir)/aes || mkdir -p $(includedir)/aes +- $(install) $(HEADERS) $(includedir)/aes ++ test -d $(DESTDIR)$(includedir)/aes || mkdir -p $(DESTDIR)$(includedir)/aes ++ $(install) $(HEADERS) $(DESTDIR)$(includedir)/aes + + .gitignore: + echo "core\n*~\n*.[oa]\n*.gz\n*.cap\n$(PROGRAM)\n$(DISTDIR)\n.gitignore" >$@ +diff --git a/doc/Makefile.in b/doc/Makefile.in +index a07101e..5ab0a35 100644 +--- a/doc/Makefile.in ++++ b/doc/Makefile.in +@@ -32,5 +32,5 @@ dist: doc + cp -r $(FILES) $(DISTDIR)/doc + + install: $(doc) html +- test -d $(htmldir) || mkdir -p $(htmldir) +- cp -r html/* $(htmldir) ++ test -d $(DESTDIR)$(htmldir) || mkdir -p $(DESTDIR)$(htmldir) ++ cp -r html/* $(DESTDIR)$(htmldir) +diff --git a/ecc/Makefile.in b/ecc/Makefile.in +index 2ba17a1..2086d4f 100644 +--- a/ecc/Makefile.in ++++ b/ecc/Makefile.in +@@ -36,8 +36,11 @@ include Makefile.contiki + else + ECC_OBJECTS:= $(patsubst %.c, %.o, $(ECC_SOURCES)) ecc_test.o + PROGRAMS:= testecc testfield ++CPP=@CPP@ + CPPFLAGS=@CPPFLAGS@ ++CC=@CC@ + CFLAGS=-Wall -std=c99 -pedantic @CFLAGS@ -DTEST_INCLUDE ++LDFLAGS=@LDFLAGS@ + LDLIBS=@LIBS@ + + .PHONY: all dirs clean install distclean .gitignore doc +@@ -74,8 +77,8 @@ dist: $(FILES) + cp -p $(FILES) $(DISTDIR)/ecc + + install: $(HEADERS) +- test -d $(includedir)/ecc || mkdir -p $(includedir)/ecc +- $(install) $(HEADERS) $(includedir)/ecc ++ test -d $(DESTDIR)$(includedir)/ecc || mkdir -p $(DESTDIR)$(includedir)/ecc ++ $(install) $(ECC_HEADERS) $(DESTDIR)$(includedir)/ecc + + .gitignore: + echo "core\n*~\n*.[oa]\n*.gz\n*.cap\n$(PROGRAM)\n$(DISTDIR)\n.gitignore" >$@ +diff --git a/sha2/Makefile.in b/sha2/Makefile.in +index 9f19314..69f8793 100644 +--- a/sha2/Makefile.in ++++ b/sha2/Makefile.in +@@ -28,8 +28,11 @@ top_srcdir:= @top_srcdir@ + SOURCES:= sha2.c + HEADERS:=sha2.h + OBJECTS:= $(patsubst %.c, %.o, $(SOURCES)) ++CPP=@CPP@ + CPPFLAGS=@CPPFLAGS@ -I$(top_srcdir) ++CC=@CC@ + CFLAGS=-Wall -std=c99 -pedantic @CFLAGS@ ++LDFLAGS=@LDFLAGS@ + LDLIBS=@LIBS@ + FILES:=Makefile.in $(SOURCES) $(HEADERS) README sha2prog.c sha2speed.c sha2test.pl + DISTDIR=$(top_builddir)/@PACKAGE_TARNAME@-@PACKAGE_VERSION@ +@@ -62,8 +65,8 @@ dist: $(FILES) + cp -pr testvectors $(DISTDIR)/sha2/testvectors + + install: $(HEADERS) +- test -d $(includedir)/sha2 || mkdir -p $(includedir)/sha2 +- $(install) $(HEADERS) $(includedir)/sha2 ++ test -d $(DESTDIR)$(includedir)/sha2 || mkdir -p $(DESTDIR)$(includedir)/sha2 ++ $(install) $(HEADERS) $(DESTDIR)$(includedir)/sha2 + + .gitignore: + echo "core\n*~\n*.[oa]\n*.gz\n*.cap\n$(PROGRAM)\n$(DISTDIR)\n.gitignore" >$@ +diff --git a/tests/Makefile.in b/tests/Makefile.in +index a8a2ed0..b45f440 100644 +--- a/tests/Makefile.in ++++ b/tests/Makefile.in +@@ -32,9 +32,11 @@ SOURCES:= dtls-server.c ccm-test.c prf-test.c \ + OBJECTS:= $(patsubst %.c, %.o, $(SOURCES)) + PROGRAMS:= $(patsubst %.c, %, $(SOURCES)) + HEADERS:= ++CC:=@CC@ + CFLAGS:=-Wall @CFLAGS@ ++CPP:=@CPP@ + CPPFLAGS:=-I$(top_srcdir) @CPPFLAGS@ +-LDFLAGS:=-L$(top_builddir) ++LDFLAGS:=-L$(top_builddir) @LDFLAGS@ + LDLIBS:=-ltinydtls @LIBS@ + DISTDIR=$(top_builddir)/@PACKAGE_TARNAME@-@PACKAGE_VERSION@ + FILES:=Makefile.in $(SOURCES) ccm-testdata.c #cbc_aes128-testdata.c +-- +2.7.4 + diff --git a/bsp/buildroot/package/tinydtls/0002-Fix-compilation-of-tests-directory.patch b/bsp/buildroot/package/tinydtls/0002-Fix-compilation-of-tests-directory.patch new file mode 100644 index 00000000..0ab579c4 --- /dev/null +++ b/bsp/buildroot/package/tinydtls/0002-Fix-compilation-of-tests-directory.patch @@ -0,0 +1,31 @@ +From c629a108f5d03cd365c0ba71143ad507f6cd97f0 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Thu, 28 Jul 2016 08:36:06 +0200 +Subject: [PATCH] Fix compilation of tests directory + +binaries in tests subdirectory depends on libtinydtls so add $(LIB) dependency +for dirs target in Makefile.in + +Signed-off-by: Fabrice Fontaine +--- + Makefile.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 7dcd424..c493705 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -68,8 +68,8 @@ check: + echo top_builddir: $(top_builddir) + $(MAKE) -C tests check + +-dirs: $(SUBDIRS) +- for dir in $^; do \ ++dirs: $(LIB) $(SUBDIRS) ++ for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir ; \ + done + +-- +2.7.4 + diff --git a/bsp/buildroot/package/tinydtls/Config.in b/bsp/buildroot/package/tinydtls/Config.in new file mode 100644 index 00000000..33b08feb --- /dev/null +++ b/bsp/buildroot/package/tinydtls/Config.in @@ -0,0 +1,13 @@ +config BR2_PACKAGE_TINYDTLS + bool "tinydtls" + depends on BR2_TOOLCHAIN_HAS_THREADS + help + tinydtls is a library for Datagram Transport Layer Security + (DTLS) covering both the client and the server state + machine. It is implemented in C and provides support for + the mandatory cipher suites specified in CoAP. + + https://sourceforge.net/projects/tinydtls + +comment "tinydtls needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/tinydtls/tinydtls.hash b/bsp/buildroot/package/tinydtls/tinydtls.hash new file mode 100644 index 00000000..909c8d16 --- /dev/null +++ b/bsp/buildroot/package/tinydtls/tinydtls.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 ccf6d8fbae03fb2e0ba32878ed8e57d8b4f73538b1064df90a3e764da5fac010 tinydtls-0.8.2.tar.gz diff --git a/bsp/buildroot/package/tinydtls/tinydtls.mk b/bsp/buildroot/package/tinydtls/tinydtls.mk new file mode 100644 index 00000000..fe250014 --- /dev/null +++ b/bsp/buildroot/package/tinydtls/tinydtls.mk @@ -0,0 +1,17 @@ +################################################################################ +# +# tinydtls +# +################################################################################ + +TINYDTLS_REL = r5 +TINYDTLS_VERSION = 0.8.2 +TINYDTLS_SITE = http://downloads.sourceforge.net/project/tinydtls/$(TINYDTLS_REL) +TINYDTLS_LICENSE = MIT +TINYDTLS_LICENSE_FILES = tinydtls.h +TINYDTLS_INSTALL_STAGING = YES +TINYDTLS_STRIP_COMPONENTS = 2 +# use inttypes.h data types instead of u_intXX_t for musl compatibility +TINYDTLS_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DSHA2_USE_INTTYPES_H" + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/tinymembench/tinymembench.hash b/bsp/buildroot/package/tinymembench/tinymembench.hash new file mode 100644 index 00000000..813a1df4 --- /dev/null +++ b/bsp/buildroot/package/tinymembench/tinymembench.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 e8cfcf0817eb8430f736426bc7557273765cef0e8002a17cca51645114e723b7 tinymembench-v0.3.tar.gz diff --git a/bsp/buildroot/package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch b/bsp/buildroot/package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch deleted file mode 100644 index 52288c50..00000000 --- a/bsp/buildroot/package/tinyxml2/0001-Use-BUILD_SHARED_LIBS-cmake-standard.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 69acf13fa679628259063c4d0cd17e59b8bb0b75 Mon Sep 17 00:00:00 2001 -From: xantares -Date: Fri, 14 Nov 2014 19:40:58 +0100 -Subject: [PATCH] Use BUILD_SHARED_LIBS cmake standard. - -Signed-off-by: Romain Naour ---- - CMakeLists.txt | 27 +++++++++------------------ - 1 file changed, 9 insertions(+), 18 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 91c61a4..4375bb9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -10,8 +10,8 @@ include(GNUInstallDirs) - ################################ - # set lib version here - --set(GENERIC_LIB_VERSION "2.2.0") --set(GENERIC_LIB_SOVERSION "2") -+set(GENERIC_LIB_VERSION "2.2.0") -+set(GENERIC_LIB_SOVERSION "2") - - - ################################ -@@ -46,12 +46,8 @@ endif(MSVC) - - ################################ - # Add targets --set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries") --if(BUILD_STATIC_LIBS) -- add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h) -- set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2) --endif(BUILD_STATIC_LIBS) --add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h) -+option(BUILD_SHARED_LIBS "build shared or static libraries" ON) -+add_library(tinyxml2 tinyxml2.cpp tinyxml2.h) - set_target_properties(tinyxml2 PROPERTIES - COMPILE_DEFINITIONS "TINYXML2_EXPORT" - VERSION "${GENERIC_LIB_VERSION}" -@@ -63,16 +59,11 @@ add_dependencies(test ${TARGET_DATA_COPY}) - target_link_libraries(test tinyxml2) - - --if(BUILD_STATIC_LIBS) -- install(TARGETS tinyxml2 tinyxml2static -- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) --else(BUILD_STATIC_LIBS) -- install(TARGETS tinyxml2 -- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) --endif(BUILD_STATIC_LIBS) -+install(TARGETS tinyxml2 -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ - install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - - foreach(p LIB INCLUDE) --- -1.9.3 - diff --git a/bsp/buildroot/package/tinyxml2/0002-Rename-test-fixed-cmake-warning.patch b/bsp/buildroot/package/tinyxml2/0002-Rename-test-fixed-cmake-warning.patch deleted file mode 100644 index 409269ac..00000000 --- a/bsp/buildroot/package/tinyxml2/0002-Rename-test-fixed-cmake-warning.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 77631a9cf500a578338a83bc230c419bf2a05b50 Mon Sep 17 00:00:00 2001 -From: xantares -Date: Fri, 14 Nov 2014 19:46:18 +0100 -Subject: [PATCH] Rename test, fixed cmake warning. - -Signed-off-by: Romain Naour ---- - CMakeLists.txt | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4375bb9..4a8f91d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -53,10 +53,10 @@ set_target_properties(tinyxml2 PROPERTIES - VERSION "${GENERIC_LIB_VERSION}" - SOVERSION "${GENERIC_LIB_SOVERSION}") - --add_executable(test xmltest.cpp) --add_dependencies(test tinyxml2) --add_dependencies(test ${TARGET_DATA_COPY}) --target_link_libraries(test tinyxml2) -+add_executable(xmltest xmltest.cpp) -+add_dependencies(xmltest tinyxml2) -+add_dependencies(xmltest ${TARGET_DATA_COPY}) -+target_link_libraries(xmltest tinyxml2) - - - install(TARGETS tinyxml2 -@@ -76,4 +76,4 @@ endforeach() - configure_file(tinyxml2.pc.in tinyxml2.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tinyxml2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - --#add_test(test ${SAMPLE_NAME} COMMAND $) -+#add_test(xmltest ${SAMPLE_NAME} COMMAND $) --- -1.9.3 - diff --git a/bsp/buildroot/package/tinyxml2/tinyxml2.hash b/bsp/buildroot/package/tinyxml2/tinyxml2.hash new file mode 100644 index 00000000..acbee093 --- /dev/null +++ b/bsp/buildroot/package/tinyxml2/tinyxml2.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 128aa1553e88403833e0cccf1b651f45ce87bc207871f53fdcc8e7f9ec795747 tinyxml2-3.0.0.tar.gz diff --git a/bsp/buildroot/package/tinyxml2/tinyxml2.mk b/bsp/buildroot/package/tinyxml2/tinyxml2.mk index 370049b9..053e46ea 100644 --- a/bsp/buildroot/package/tinyxml2/tinyxml2.mk +++ b/bsp/buildroot/package/tinyxml2/tinyxml2.mk @@ -4,7 +4,7 @@ # ################################################################################ -TINYXML2_VERSION = 2.2.0 +TINYXML2_VERSION = 3.0.0 TINYXML2_SITE = $(call github,leethomason,tinyxml2,$(TINYXML2_VERSION)) TINYXML2_LICENSE = zlib TINYXML2_LICENSE_FILES = readme.md diff --git a/bsp/buildroot/package/tmux/Config.in b/bsp/buildroot/package/tmux/Config.in index fa8f64ad..756f38a0 100644 --- a/bsp/buildroot/package/tmux/Config.in +++ b/bsp/buildroot/package/tmux/Config.in @@ -1,10 +1,19 @@ config BR2_PACKAGE_TMUX bool "tmux" depends on BR2_USE_MMU # fork() + depends on BR2_USE_WCHAR # mbtowc() + depends on BR2_ENABLE_LOCALE # runtime select BR2_PACKAGE_LIBEVENT select BR2_PACKAGE_NCURSES help - tmux is a terminal multiplexer, it enables a number of terminals - (or windows) to be accessed and controlled from a single terminal. + tmux is a terminal multiplexer, it enables a number of + terminals (or windows) to be accessed and controlled from a + single terminal. - http://tmux.sourceforge.net/ + NOTE: tmux needs a working UTF-8 locale (BR2_GENERATE_LOCALE) + + https://tmux.github.io/ + +comment "tmux needs a toolchain w/ wchar, locale" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_ENABLE_LOCALE diff --git a/bsp/buildroot/package/tmux/tmux.hash b/bsp/buildroot/package/tmux/tmux.hash index ab7c4d33..f3cbe744 100644 --- a/bsp/buildroot/package/tmux/tmux.hash +++ b/bsp/buildroot/package/tmux/tmux.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 795f4b4446b0ea968b9201c25e8c1ef8a6ade710ebca4657dd879c35916ad362 tmux-2.0.tar.gz +sha256 bc28541b64f99929fe8e3ae7a02291263f3c97730781201824c0f05d7c8e19e4 tmux-2.2.tar.gz diff --git a/bsp/buildroot/package/tmux/tmux.mk b/bsp/buildroot/package/tmux/tmux.mk index c9abbf77..1e1b2b7c 100644 --- a/bsp/buildroot/package/tmux/tmux.mk +++ b/bsp/buildroot/package/tmux/tmux.mk @@ -4,7 +4,7 @@ # ################################################################################ -TMUX_VERSION = 2.0 +TMUX_VERSION = 2.2 TMUX_SITE = https://github.com/tmux/tmux/releases/download/$(TMUX_VERSION) TMUX_LICENSE = ISC TMUX_LICENSE_FILES = README diff --git a/bsp/buildroot/package/tor/tor.mk b/bsp/buildroot/package/tor/tor.mk index f6874a66..6a622cf0 100644 --- a/bsp/buildroot/package/tor/tor.mk +++ b/bsp/buildroot/package/tor/tor.mk @@ -13,6 +13,7 @@ TOR_AUTORECONF = YES TOR_CONF_OPTS = \ --disable-gcc-hardening \ + --disable-unittests \ --with-libevent-dir=$(STAGING_DIR)/usr \ --with-openssl-dir=$(STAGING_DIR)/usr \ --with-zlib-dir=$(STAGING_DIR)/usr diff --git a/bsp/buildroot/package/tovid/Config.in b/bsp/buildroot/package/tovid/Config.in index 093bfdf2..d8052ea3 100644 --- a/bsp/buildroot/package/tovid/Config.in +++ b/bsp/buildroot/package/tovid/Config.in @@ -5,8 +5,9 @@ config BR2_PACKAGE_TOVID depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 - depends on !BR2_nios2 # ffmpeg + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_SYNC_4 # mplayer # The below dependencies are runtime dependencies only select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng select BR2_PACKAGE_DVDAUTHOR @@ -28,11 +29,14 @@ config BR2_PACKAGE_TOVID comment "tovid needs a toolchain w/ threads, C++, wchar" depends on BR2_USE_MMU + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_INSTALL_LIBSTDCPP \ || !BR2_USE_WCHAR comment "tovid depends on python or python3" depends on !BR2_PACKAGE_PYTHON && !BR2_PACKAGE_PYTHON3 + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS diff --git a/bsp/buildroot/package/trace-cmd/0001-trace-cmd-Fix-trace-record.c-with-non-ptrace-compile.patch b/bsp/buildroot/package/trace-cmd/0001-trace-cmd-Fix-trace-record.c-with-non-ptrace-compile.patch new file mode 100644 index 00000000..5f7d2bab --- /dev/null +++ b/bsp/buildroot/package/trace-cmd/0001-trace-cmd-Fix-trace-record.c-with-non-ptrace-compile.patch @@ -0,0 +1,32 @@ +From bdfcddd4f135dc1d4fefb0373d9ebb93ef5110cb Mon Sep 17 00:00:00 2001 +From: "Steven Rostedt (Red Hat)" +Date: Mon, 7 Dec 2015 16:41:19 -0500 +Subject: [PATCH] trace-cmd: Fix trace-record.c with non ptrace compile + +Fix ptrace_wait() when NO_PTRACE=1 is defined. + +Status: upstream + +Signed-off-by: Steven Rostedt +[Romain backport to 2.6] +Signed-off-by: Romain Naour +--- + trace-record.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/trace-record.c b/trace-record.c +index df82883..f83ec4b 100644 +--- a/trace-record.c ++++ b/trace-record.c +@@ -1099,7 +1099,7 @@ static void ptrace_wait(enum trace_type type, int main_pid) + (!WIFEXITED(status) || pid != main_pid)); + } + #else +-static inline void ptrace_wait(int main_pid) { } ++static inline void ptrace_wait(enum trace_type type, int main_pid) { } + static inline void enable_ptrace(void) { } + static inline void ptrace_attach(int pid) { } + +-- +2.5.5 + diff --git a/bsp/buildroot/package/transmission/0003-miniupnpc-cross.patch b/bsp/buildroot/package/transmission/0003-miniupnpc-cross.patch new file mode 100644 index 00000000..5037c2e6 --- /dev/null +++ b/bsp/buildroot/package/transmission/0003-miniupnpc-cross.patch @@ -0,0 +1,31 @@ +Fix libminiupnpc version detection + +Problem is known upstream: https://trac.transmissionbt.com/ticket/6140 + +For buildroot we know the libminiupnpc version so we hard-code 2.0. + +Signed-off-by: Bernd Kuhls + +diff -uNr transmission-2.92.org/configure.ac transmission-2.92/configure.ac +--- transmission-2.92.org/configure.ac 2016-03-06 21:23:45.336198393 +0100 ++++ transmission-2.92/configure.ac 2016-07-02 21:48:13.452385686 +0200 +@@ -386,18 +386,7 @@ + dnl MINIUPNPC_API_VERSION and we won't have to figure + dnl it out on our own + if test "x$upnp_version" = "xunknown" ; then +- AC_RUN_IFELSE( +- [AC_LANG_PROGRAM( +- [#include +- #include ], +- [#ifdef MINIUPNPC_API_VERSION +- return EXIT_SUCCESS; +- #else +- return EXIT_FAILURE; +- #endif] +- )], +- [upnp_version=">= 1.7"] +- ) ++ upnp_version="2.0" + fi + + dnl Or maybe it's miniupnp 1.6 diff --git a/bsp/buildroot/package/transmission/0004-fix-utp-include.patch b/bsp/buildroot/package/transmission/0004-fix-utp-include.patch new file mode 100644 index 00000000..db8b5ab3 --- /dev/null +++ b/bsp/buildroot/package/transmission/0004-fix-utp-include.patch @@ -0,0 +1,46 @@ +Fix compilation when using system libminiupnpc with libutp disabled + +If transmission uses its own copy of libminiupnpc in third-party/ then +the configure script adds that path to CFLAGS: +https://trac.transmissionbt.com/browser/trunk/configure.ac#L455 + +This path is also added if transmission uses its own copy of libutp: +https://trac.transmissionbt.com/browser/trunk/configure.ac#L349 + +But if a system-provided libminiupnpc is used and utp-support is +disabled using --disable-utp the result is a build error, detected by +buildroot autobuilders: +http://autobuild.buildroot.net/results/b79/b79e51140cb0320554a58ce59dcb33f53cd9211a/build-end.log + +net.c:40:24: fatal error: libutp/utp.h: No such file or directory + +Patch proposed by Yann E. MORIN: +http://lists.busybox.net/pipermail/buildroot/2016-July/167896.html + +Patch sent upstream: https://trac.transmissionbt.com/ticket/6163 + +Signed-off-by: Bernd Kuhls + +diff -uNr transmission-2.92.org/configure.ac transmission-2.92/configure.ac +--- transmission-2.92.org/configure.ac 2016-03-06 21:23:45.336198393 +0100 ++++ transmission-2.92/configure.ac 2016-07-31 12:13:40.921660078 +0200 +@@ -358,6 +358,10 @@ + else + AC_MSG_ERROR("Unable to build uTP support -- C++ compiler not found") + fi ++else ++ # For the system libminiupnpc with UTC disabled, ++ # point to our bundled UTP headers ++ LIBUTP_CFLAGS="-I\$(top_srcdir)/third-party/" + fi + AC_SUBST(LIBUTP_CFLAGS) + AC_SUBST(LIBUTP_LIBS) +@@ -457,7 +461,7 @@ + LIBUPNP_LIBS_QT="\$\${TRANSMISSION_TOP}/third-party/miniupnp/libminiupnp.a" + else + AC_DEFINE([SYSTEM_MINIUPNP]) +- LIBUPNP_CFLAGS="" ++ LIBUPNP_CFLAGS="${LIBUTP_CFLAGS}" + LIBUPNP_LIBS="-lminiupnpc" + LIBUPNP_LIBS_QT="-lminiupnpc" + fi diff --git a/bsp/buildroot/package/transmission/transmission.hash b/bsp/buildroot/package/transmission/transmission.hash index 4199b371..849a722d 100644 --- a/bsp/buildroot/package/transmission/transmission.hash +++ b/bsp/buildroot/package/transmission/transmission.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 a9fc1936b4ee414acc732ada04e84339d6755cd0d097bcbd11ba2cfc540db9eb transmission-2.84.tar.xz +sha256 3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f transmission-2.92.tar.xz diff --git a/bsp/buildroot/package/transmission/transmission.mk b/bsp/buildroot/package/transmission/transmission.mk index efc00a11..e0cfc2d3 100644 --- a/bsp/buildroot/package/transmission/transmission.mk +++ b/bsp/buildroot/package/transmission/transmission.mk @@ -4,7 +4,7 @@ # ################################################################################ -TRANSMISSION_VERSION = 2.84 +TRANSMISSION_VERSION = 2.92 TRANSMISSION_SITE = http://download.transmissionbt.com/files TRANSMISSION_SOURCE = transmission-$(TRANSMISSION_VERSION).tar.xz TRANSMISSION_DEPENDENCIES = \ @@ -21,6 +21,17 @@ TRANSMISSION_CONF_OPTS = \ TRANSMISSION_LICENSE = GPLv2 or GPLv3 with OpenSSL exception TRANSMISSION_LICENSE_FILES = COPYING +ifeq ($(BR2_PACKAGE_LIBMINIUPNPC),y) +TRANSMISSION_DEPENDENCIES += libminiupnpc +endif + +ifeq ($(BR2_PACKAGE_LIBNATPMP),y) +TRANSMISSION_DEPENDENCIES += libnatpmp +TRANSMISSION_CONF_OPTS += --enable-external-natpmp +else +TRANSMISSION_CONF_OPTS += --disable-external-natpmp +endif + ifeq ($(BR2_PACKAGE_TRANSMISSION_UTP),y) TRANSMISSION_CONF_OPTS += --enable-utp else diff --git a/bsp/buildroot/package/tree/tree.hash b/bsp/buildroot/package/tree/tree.hash index 82994a90..ab79df8e 100644 --- a/bsp/buildroot/package/tree/tree.hash +++ b/bsp/buildroot/package/tree/tree.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 4dc470a74880338b01da41701d8db90d0fb178877e526d385931a007d68d7591 tree-1.6.0.tgz +sha256 6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12 tree-1.7.0.tgz diff --git a/bsp/buildroot/package/tree/tree.mk b/bsp/buildroot/package/tree/tree.mk index 83ea472f..b8988bd4 100644 --- a/bsp/buildroot/package/tree/tree.mk +++ b/bsp/buildroot/package/tree/tree.mk @@ -4,7 +4,7 @@ # ################################################################################ -TREE_VERSION = 1.6.0 +TREE_VERSION = 1.7.0 TREE_SOURCE = tree-$(TREE_VERSION).tgz TREE_SITE = http://mama.indstate.edu/users/ice/tree/src TREE_LICENSE = GPLv2+ diff --git a/bsp/buildroot/package/triggerhappy/0001-eventtable.h-use-correct-array-sizes-to-fix-building.patch b/bsp/buildroot/package/triggerhappy/0001-eventtable.h-use-correct-array-sizes-to-fix-building.patch new file mode 100644 index 00000000..80f26403 --- /dev/null +++ b/bsp/buildroot/package/triggerhappy/0001-eventtable.h-use-correct-array-sizes-to-fix-building.patch @@ -0,0 +1,66 @@ +From d3cfa80631a7e314fee9b2e0822e403fcf2a5c5c Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard +Date: Sun, 31 Jul 2016 10:28:43 +0200 +Subject: [PATCH] eventtable.h: use correct array sizes to fix building against + 4.7+ headers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +During the 4.7 development cycle, commit 9a9b6aa6a8 (Input: add +SW_PEN_INSERTED define) got added, which has the same numerical value as +SW_MAX: + ++#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ ++#define SW_MAX 0x0f + +This breaks the build as the SW_NAME array is sized using the SW_MAX macro: + +In file included from eventtable.h:21:0, + from eventnames.c:11: +evtable_SW.inc:17:1: error: array index in initializer exceeds array bounds + EV_MAP(SW_PEN_INSERTED), + ^ +evtable_SW.inc:17:1: error: (near initialization for ‘SW_NAME’) + +The arrays should be sized using the _CNT (which is MAX+1) macros +instead of _MAX. These got added during the 2.6.24 development cycle, +so it should be safe to do so unconditially: + +commit 7b19ada2ed3c1eccb9fe94d74b05e1428224663d +Author: Jiri Slaby +Date: Thu Oct 18 23:40:32 2007 -0700 + + get rid of input BIT* duplicate defines + +Signed-off-by: Peter Korsgaard +--- + eventtable.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/eventtable.h b/eventtable.h +index 349d9d7..7cd99aa 100644 +--- a/eventtable.h ++++ b/eventtable.h +@@ -8,15 +8,15 @@ + + #define EV_MAP( N ) [ N ] = #N + +-static const char *EV_NAME[EV_MAX] = { ++static const char *EV_NAME[EV_CNT] = { + #include "evtable_EV.inc" + }; + +-static const char *KEY_NAME[KEY_MAX] = { ++static const char *KEY_NAME[KEY_CNT] = { + #include "evtable_KEY.inc" + #include "evtable_BTN.inc" + }; + +-static const char *SW_NAME[SW_MAX] = { ++static const char *SW_NAME[SW_CNT] = { + #include "evtable_SW.inc" + }; +-- +2.8.1 + diff --git a/bsp/buildroot/package/trousers/0003-tsp_tcsi_param-include-limits.h-to-fix-musl-build.patch b/bsp/buildroot/package/trousers/0003-tsp_tcsi_param-include-limits.h-to-fix-musl-build.patch new file mode 100644 index 00000000..f88e47ac --- /dev/null +++ b/bsp/buildroot/package/trousers/0003-tsp_tcsi_param-include-limits.h-to-fix-musl-build.patch @@ -0,0 +1,29 @@ +From 66bbe0a87818a1e3c721780dc33b2d81fdf4a774 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Sun, 21 Aug 2016 23:32:10 +0200 +Subject: [PATCH] tsp_tcsi_param: include limits.h to fix musl build + +The musl libc doesn't provide , use +instead. + +Signed-off-by: Romain Naour +--- + src/tspi/tsp_tcsi_param.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tspi/tsp_tcsi_param.c b/src/tspi/tsp_tcsi_param.c +index 670f86f..8f2b4e4 100644 +--- a/src/tspi/tsp_tcsi_param.c ++++ b/src/tspi/tsp_tcsi_param.c +@@ -11,7 +11,7 @@ + #include + #include + #include +-#include ++#include + #include "trousers/tss.h" + #include "trousers/trousers.h" + #include "trousers_types.h" +-- +2.5.5 + diff --git a/bsp/buildroot/package/trousers/0004-Check-that-getpwent_r-is-available-before-using-it.patch b/bsp/buildroot/package/trousers/0004-Check-that-getpwent_r-is-available-before-using-it.patch new file mode 100644 index 00000000..7014ad7a --- /dev/null +++ b/bsp/buildroot/package/trousers/0004-Check-that-getpwent_r-is-available-before-using-it.patch @@ -0,0 +1,80 @@ +From 9e42c405f30d2b52d019598436ea346ef8586f43 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?No=C3=A9=20Rubinstein?= +Date: Wed, 24 Aug 2016 18:55:25 +0200 +Subject: [PATCH] Check that getpwent_r is available before using it + +This fixes building trousers with musl + +Signed-off-by: Noé Rubinstein +--- + configure.in | 4 ++++ + src/tspi/ps/tspps.c | 10 +++++----- + 2 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/configure.in b/configure.in +index fd3f5f1..e3d7acf 100644 +--- a/configure.in ++++ b/configure.in +@@ -145,6 +145,10 @@ else + AC_MSG_ERROR(["gtk", "openssl" and "none" are the only supported gui options for trousers]) + fi + ++# Look for getpwent_r. If it is not found, getpwent will be used instead, with ++# an additional mutex. ++AC_CHECK_FUNC(getpwent_r, [AC_DEFINE(HAVE_GETPWENT_R)]) ++ + # + # The default port that the TCS daemon listens on + # +diff --git a/src/tspi/ps/tspps.c b/src/tspi/ps/tspps.c +index c6f9c3d..9d00d2a 100644 +--- a/src/tspi/ps/tspps.c ++++ b/src/tspi/ps/tspps.c +@@ -45,7 +45,7 @@ + + static int user_ps_fd = -1; + static MUTEX_DECLARE_INIT(user_ps_lock); +-#if (defined (__FreeBSD__) || defined (__OpenBSD__)) ++#ifndef HAVE_GETPWENT_R + static MUTEX_DECLARE_INIT(user_ps_path); + #endif + static struct flock fl; +@@ -60,7 +60,7 @@ get_user_ps_path(char **file) + TSS_RESULT result; + char *file_name = NULL, *home_dir = NULL; + struct passwd *pwp; +-#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) ++#ifdef HAVE_GETPWENT_R + struct passwd pw; + #endif + struct stat stat_buf; +@@ -72,7 +72,7 @@ get_user_ps_path(char **file) + *file = strdup(file_name); + return (*file) ? TSS_SUCCESS : TSPERR(TSS_E_OUTOFMEMORY); + } +-#if (defined (__FreeBSD__) || defined (__OpenBSD__)) ++#ifndef HAVE_GETPWENT_R + MUTEX_LOCK(user_ps_path); + #endif + +@@ -90,7 +90,7 @@ get_user_ps_path(char **file) + #else + setpwent(); + while (1) { +-#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) ++#ifdef HAVE_GETPWENT_R + rc = getpwent_r(&pw, buf, PASSWD_BUFSIZE, &pwp); + if (rc) { + LogDebugFn("USER PS: Error getting path to home directory: getpwent_r: %s", +@@ -99,7 +99,7 @@ get_user_ps_path(char **file) + return TSPERR(TSS_E_INTERNAL_ERROR); + } + +-#elif (defined (__FreeBSD__) || defined (__OpenBSD__)) ++#else + if ((pwp = getpwent()) == NULL) { + LogDebugFn("USER PS: Error getting path to home directory: getpwent: %s", + strerror(rc)); +-- +2.1.4 + diff --git a/bsp/buildroot/package/trousers/trousers.mk b/bsp/buildroot/package/trousers/trousers.mk index 70daa881..3d9e0bad 100644 --- a/bsp/buildroot/package/trousers/trousers.mk +++ b/bsp/buildroot/package/trousers/trousers.mk @@ -12,7 +12,7 @@ TROUSERS_LICENSE_FILES = LICENSE TROUSERS_INSTALL_STAGING = YES # Need autoreconf because of a patch touching configure.in and Makefile.am TROUSERS_AUTORECONF = YES -TROUSERS_DEPENDENCIES = openssl +TROUSERS_DEPENDENCIES = host-pkgconf openssl ifeq ($(BR2_PACKAGE_LIBICONV),y) TROUSERS_DEPENDENCIES += libiconv @@ -23,8 +23,7 @@ endif # workaround. TROUSERS_CONF_OPTS += --disable-usercheck -# uClibc toolchain for ARC doesn't support PIE at the moment -ifeq ($(BR2_arc),y) +ifeq ($(BR2_TOOLCHAIN_SUPPORTS_PIE),) TROUSERS_CONF_ENV += \ ax_cv_check_cflags___fPIE__DPIE=no \ ax_cv_check_ldflags___pie=no diff --git a/bsp/buildroot/package/tstools/Config.in b/bsp/buildroot/package/tstools/Config.in index f5dd138c..ca5f8fc2 100644 --- a/bsp/buildroot/package/tstools/Config.in +++ b/bsp/buildroot/package/tstools/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_TSTOOLS bool "tstools" depends on BR2_USE_MMU # fork() + depends on !BR2_STATIC_LIBS help This is a set of cross-platform command line tools for working with MPEG data. @@ -14,3 +15,7 @@ config BR2_PACKAGE_TSTOOLS data on DVDs. https://github.com/kynesim/tstools/ + +comment "tstools needs a toolchain w/ dynamic library" + depends on BR2_USE_MMU + depends on BR2_STATIC_LIBS diff --git a/bsp/buildroot/package/tunctl/Config.in b/bsp/buildroot/package/tunctl/Config.in new file mode 100644 index 00000000..26eed4c3 --- /dev/null +++ b/bsp/buildroot/package/tunctl/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_TUNCTL + bool "tunctl" + help + Tunctl is a tool for controlling the TUN/TAP driver in Linux. + + https://sourceforge.net/projects/tunctl/ diff --git a/bsp/buildroot/package/tunctl/tunctl.hash b/bsp/buildroot/package/tunctl/tunctl.hash new file mode 100644 index 00000000..d3aaeece --- /dev/null +++ b/bsp/buildroot/package/tunctl/tunctl.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 aa2a6c4cc6bfacb11e0d9f62334a6638a0d435475c61230116f00b6af8b14fff tunctl-1.5.tar.gz diff --git a/bsp/buildroot/package/tunctl/tunctl.mk b/bsp/buildroot/package/tunctl/tunctl.mk new file mode 100644 index 00000000..81e6c8cc --- /dev/null +++ b/bsp/buildroot/package/tunctl/tunctl.mk @@ -0,0 +1,22 @@ +################################################################################ +# +# tunctl +# +################################################################################ + +TUNCTL_VERSION = 1.5 +TUNCTL_SOURCE = tunctl-$(TUNCTL_VERSION).tar.gz +TUNCTL_SITE = http://downloads.sourceforge.net/project/tunctl/tunctl/$(TUNCTL_VERSION) + +TUNCTL_LICENSE = GPLv2 +TUNCTL_LICENSE_FILES = tunctl.c + +define TUNCTL_BUILD_CMDS + $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) tunctl +endef + +define TUNCTL_INSTALL_TARGET_CMDS + $(INSTALL) -m 0755 -D $(@D)/tunctl $(TARGET_DIR)/usr/sbin/tunctl +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/turbolua/Config.in b/bsp/buildroot/package/turbolua/Config.in new file mode 100644 index 00000000..34f66ef1 --- /dev/null +++ b/bsp/buildroot/package/turbolua/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_TURBOLUA + bool "turbolua" + depends on BR2_PACKAGE_LUAJIT + help + Turbo.lua is a framework built for LuaJIT 2 to simplify the + task of building fast and scalable network applications. It + uses a event-driven, non-blocking, no thread design to deliver + excellent performance and minimal footprint to high-load + applications while also providing excellent support for + embedded uses. The toolkit can be used for HTTP REST API’s, + traditional dynamic web pages through templating, open + connections like WebSockets, or just as high level building + blocks for native speed network applications. + + http://www.turbolua.org + +comment "turbolua needs LuaJIT" + depends on !BR2_PACKAGE_LUAJIT diff --git a/bsp/buildroot/package/turbolua/turbolua.hash b/bsp/buildroot/package/turbolua/turbolua.hash new file mode 100644 index 00000000..d460b4f6 --- /dev/null +++ b/bsp/buildroot/package/turbolua/turbolua.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 bff771b6a670f764366eff50e1644f1c5d8d526324e0b6adfda42d9f69791833 turbolua-6fbc5cbfed1cc8c3820d4c1bfb55258c764040f0.tar.gz diff --git a/bsp/buildroot/package/turbolua/turbolua.mk b/bsp/buildroot/package/turbolua/turbolua.mk new file mode 100644 index 00000000..bf6d4918 --- /dev/null +++ b/bsp/buildroot/package/turbolua/turbolua.mk @@ -0,0 +1,33 @@ +################################################################################ +# +# turbolua +# +################################################################################ + +TURBOLUA_VERSION = 6fbc5cbfed1cc8c3820d4c1bfb55258c764040f0 +TURBOLUA_SITE = $(call github,kernelsauce,turbo,$(TURBOLUA_VERSION)) +TURBOLUA_DEPENDENCIES = luajit +TURBOLUA_LICENSE = Apache-2.0 +TURBOLUA_LICENSE_FILES = LICENSE + +TURBOLUA_MAKE_OPTS = \ + $(TARGET_CONFIGURE_OPTS) \ + LUAJIT_VERSION="$(LUAJIT_VERSION)" + +ifeq ($(BR2_PACKAGE_OPENSSL),y) +TURBOLUA_MAKE_OPTS += SSL=openssl +TURBOLUA_DEPENDENCIES += openssl +else +TURBOLUA_MAKE_OPTS += SSL=none +endif + +define TURBOLUA_BUILD_CMDS + $(MAKE) $(TURBOLUA_MAKE_OPTS) -C $(@D) all +endef + +define TURBOLUA_INSTALL_TARGET_CMDS + $(MAKE) $(TURBOLUA_MAKE_OPTS) LDCONFIG=true \ + PREFIX="$(TARGET_DIR)/usr" -C $(@D) install +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/tvheadend/0002-ffmpeg-revert-minimum-required-version-numbers.patch b/bsp/buildroot/package/tvheadend/0002-ffmpeg-revert-minimum-required-version-numbers.patch new file mode 100644 index 00000000..74136fe4 --- /dev/null +++ b/bsp/buildroot/package/tvheadend/0002-ffmpeg-revert-minimum-required-version-numbers.patch @@ -0,0 +1,51 @@ +From 78a7b7365a67fa2f5394c6b4ca39de01b00416dc Mon Sep 17 00:00:00 2001 +From: Bernd Kuhls +Date: Sat, 2 Apr 2016 19:05:52 +0200 +Subject: [PATCH 1/1] ffmpeg: revert minimum required version numbers + +This commit reverts the minimum version numbers required by configure to +the values before +https://github.com/tvheadend/tvheadend/commit/1359effe28a0381b8c9cbd362d6e144fb87b00fc#diff-e2d5a00791bce9a01f99bc6fd613a39dL486 +in order to allow compilation with older versions of ffmpeg again. + +Please note that the previous version numbers of all ffmpeg libs, with +the exception of libavfilter, are those of ffmpeg 2.0.7: +https://ffmpeg.org/olddownload.html + +Therefore I synced the minimum version number required for libavfilter to +3.79.101 and not to 4.0.0 as previous in tvheadend's configure script. + +Signed-off-by: Bernd Kuhls +[Patch sent upstream: https://github.com/tvheadend/tvheadend/pull/838] +--- + configure | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/configure b/configure +index be3d2e2..2ffd280 100755 +--- a/configure ++++ b/configure +@@ -512,13 +512,13 @@ else + if enabled_or_auto libav; then + has_libav=true + +- check_pkg libavfilter ">=6.31.100" || has_libav=false +- check_pkg libswresample ">=2.0.101" || has_libav=false +- check_pkg libavresample ">=3.0.0" || has_libav=false +- check_pkg libswscale ">=4.0.100" || has_libav=false +- check_pkg libavformat ">=57.25.100" || has_libav=false +- check_pkg libavcodec ">=57.24.102" || has_libav=false +- check_pkg libavutil ">=55.17.103" || has_libav=false ++ check_pkg libavfilter ">=3.79.101" || has_libav=false ++ check_pkg libswresample ">=0.17.102" || has_libav=false ++ check_pkg libavresample ">=1.1.0" || has_libav=false ++ check_pkg libswscale ">=2.3.100" || has_libav=false ++ check_pkg libavformat ">=55.12.100" || has_libav=false ++ check_pkg libavcodec ">=55.18.102" || has_libav=false ++ check_pkg libavutil ">=52.38.100" || has_libav=false + + if $has_libav; then + enable libav +-- +2.8.0.rc3 + diff --git a/bsp/buildroot/package/tvheadend/0002-remove-werror.patch b/bsp/buildroot/package/tvheadend/0002-remove-werror.patch deleted file mode 100644 index d466907a..00000000 --- a/bsp/buildroot/package/tvheadend/0002-remove-werror.patch +++ /dev/null @@ -1,16 +0,0 @@ -tvheadend: remove -Werror from CFLAGS - -Signed-off-by: Vicente Olivert Riera - -diff -durN tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3.orig/Makefile tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3/Makefile ---- tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3.orig/Makefile 2014-03-09 14:50:48.437688482 +0100 -+++ tvheadend-c84bc2b72b462ef2dbed305f3fd0bb3fa5046fc3/Makefile 2014-03-09 14:54:00.411418749 +0100 -@@ -32,7 +32,7 @@ - ifeq ($(CONFIG_W_UNUSED_RESULT),yes) - CFLAGS += -Wunused-result - endif --CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations -+CFLAGS += -Wall -Wwrite-strings -Wno-deprecated-declarations - CFLAGS += -Wmissing-prototypes - CFLAGS += -fms-extensions -funsigned-char -fno-strict-aliasing - CFLAGS += -D_FILE_OFFSET_BITS=64 diff --git a/bsp/buildroot/package/tvheadend/Config.in b/bsp/buildroot/package/tvheadend/Config.in index 095ec655..b274a130 100644 --- a/bsp/buildroot/package/tvheadend/Config.in +++ b/bsp/buildroot/package/tvheadend/Config.in @@ -12,6 +12,8 @@ config BR2_PACKAGE_TVHEADEND select BR2_PACKAGE_DTV_SCAN_TABLES select BR2_PACKAGE_FFMPEG_AVRESAMPLE if BR2_PACKAGE_FFMPEG select BR2_PACKAGE_FFMPEG_SWSCALE if BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_LIBVPX if BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_X264 if BR2_PACKAGE_FFMPEG select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE select BR2_PACKAGE_OPENSSL help @@ -22,7 +24,7 @@ config BR2_PACKAGE_TVHEADEND https://www.lonelycoder.com/redmine/projects/tvheadend/ Note: - - a default user has been created to log in the web configuration - GUI: admin/admin; you can change it at your discretion at runtime. + - on first run, tvheadend will start in wizard mode; the webUI + is available on port 9981. - if you want Avahi support, you'll need to enable: Avahi, D-Bus, libdaemon diff --git a/bsp/buildroot/package/tvheadend/S99tvheadend b/bsp/buildroot/package/tvheadend/S99tvheadend index 75b66f37..65669ce4 100644 --- a/bsp/buildroot/package/tvheadend/S99tvheadend +++ b/bsp/buildroot/package/tvheadend/S99tvheadend @@ -21,6 +21,11 @@ ARGS="-f" [ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}" [ "${TVH_DEBUG}" = "1" ] && ARGS="${ARGS} -s" +# If first run, start in wizard mode +if [ -z "$(ls -1 /home/tvheadend/.hts/tvheadend/accesscontrol/ 2>/dev/null)" ]; then + ARGS="${ARGS} -C" +fi + case "$1" in start) printf "Starting TVHeadend daemon: " diff --git a/bsp/buildroot/package/tvheadend/accesscontrol.1 b/bsp/buildroot/package/tvheadend/accesscontrol.1 deleted file mode 100644 index b920943b..00000000 --- a/bsp/buildroot/package/tvheadend/accesscontrol.1 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "enabled": 1, - "username": "admin", - "password": "admin", - "comment": "TVHeadend admin user", - "prefix": "0.0.0.0/0", - "streaming": 1, - "dvr": 1, - "dvrallcfg": 1, - "webui": 1, - "admin": 1, - "id": "1" -} diff --git a/bsp/buildroot/package/tvheadend/tvheadend.hash b/bsp/buildroot/package/tvheadend/tvheadend.hash index de7bc469..04799719 100644 --- a/bsp/buildroot/package/tvheadend/tvheadend.hash +++ b/bsp/buildroot/package/tvheadend/tvheadend.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 0caf44de3baaf115d80410b660d99e49a42f50792397254e8f21b6e1c5ca58ef tvheadend-1aa0073be39119f5d0d79212e6c83c470904a161.tar.gz +sha256 b6035c0eedfdcbec965116248471c23bed7f8b7f899e403d670495325002ba78 tvheadend-8e637f9f903f6d820f701a1461b144e67665c6fa.tar.gz diff --git a/bsp/buildroot/package/tvheadend/tvheadend.mk b/bsp/buildroot/package/tvheadend/tvheadend.mk index 11f882aa..516cbd32 100644 --- a/bsp/buildroot/package/tvheadend/tvheadend.mk +++ b/bsp/buildroot/package/tvheadend/tvheadend.mk @@ -4,7 +4,7 @@ # ################################################################################ -TVHEADEND_VERSION = 1aa0073be39119f5d0d79212e6c83c470904a161 +TVHEADEND_VERSION = 8e637f9f903f6d820f701a1461b144e67665c6fa TVHEADEND_SITE = $(call github,tvheadend,tvheadend,$(TVHEADEND_VERSION)) TVHEADEND_LICENSE = GPLv3+ TVHEADEND_LICENSE_FILES = LICENSE.md @@ -77,10 +77,11 @@ define TVHEADEND_CONFIGURE_CMDS --prefix=/usr \ --arch="$(ARCH)" \ --cpu="$(BR2_GCC_TARGET_CPU)" \ + --nowerror \ --python="$(HOST_DIR)/usr/bin/python" \ --enable-dvbscan \ --enable-bundle \ - --disable-libffmpeg_static \ + --disable-ffmpeg_static \ --disable-hdhomerun_static \ $(TVHEADEND_CONF_OPTS) \ ) @@ -106,14 +107,8 @@ TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_CLEAN_SHARE #---------------------------------------------------------------------------- # To run tvheadend, we need: # - a startup script, and its config file -# - a default DB with a tvheadend admin -# - a non-root user to run as -define TVHEADEND_INSTALL_DB - $(INSTALL) -D -m 0600 package/tvheadend/accesscontrol.1 \ - $(TARGET_DIR)/home/tvheadend/.hts/tvheadend/accesscontrol/1 - chmod -R go-rwx $(TARGET_DIR)/home/tvheadend -endef -TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_INSTALL_DB +# - a non-root user to run as, and a home for it that is not accessible +# to the other users (because there will be crendentials in there) define TVHEADEND_INSTALL_INIT_SYSV $(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend @@ -123,5 +118,8 @@ endef define TVHEADEND_USERS tvheadend -1 tvheadend -1 * /home/tvheadend - video TVHeadend daemon endef +define TVHEADEND_PERMISSIONS + /home/tvheadend r 0700 tvheadend tvheadend - - - - - +endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/tz/tz.mk b/bsp/buildroot/package/tz/tz.mk index 7a756eb5..f0daf465 100644 --- a/bsp/buildroot/package/tz/tz.mk +++ b/bsp/buildroot/package/tz/tz.mk @@ -4,7 +4,6 @@ # ################################################################################ -TZ_SOURCE = TZ_DEPENDENCIES = host-tzdata host-tzdump TZ_LICENSE = Public domain diff --git a/bsp/buildroot/package/tzdata/tzdata.hash b/bsp/buildroot/package/tzdata/tzdata.hash index 80c58128..1d7fbcd6 100644 --- a/bsp/buildroot/package/tzdata/tzdata.hash +++ b/bsp/buildroot/package/tzdata/tzdata.hash @@ -1,2 +1,2 @@ -# From: http://mm.icann.org/pipermail/tz-announce/2016-January/000035.html -sha512 9aa5f61a73afa5070dfb1d1982945d268ea8215663d0cd594216500aff14797ea5591ccfd488dc2280902fa1820bf782623624912b669873728431258fe10ec1 tzdata2016a.tar.gz +# From http://mm.icann.org/pipermail/tz-announce/2016-July/000040.html +sha512 0472f9516b6c3d83c0a5d0953a5535f4c48d9b9171e125f528188dac512f3556bc1805b7029c4f467a122cbce1beb4e804dd4ae63b259952de3bb217f8e8941d tzdata2016f.tar.gz diff --git a/bsp/buildroot/package/tzdata/tzdata.mk b/bsp/buildroot/package/tzdata/tzdata.mk index bd3cb671..de7d1be9 100644 --- a/bsp/buildroot/package/tzdata/tzdata.mk +++ b/bsp/buildroot/package/tzdata/tzdata.mk @@ -4,7 +4,7 @@ # ################################################################################ -TZDATA_VERSION = 2016a +TZDATA_VERSION = 2016f TZDATA_SOURCE = tzdata$(TZDATA_VERSION).tar.gz TZDATA_SITE = http://www.iana.org/time-zones/repository/releases TZDATA_STRIP_COMPONENTS = 0 @@ -12,9 +12,11 @@ TZDATA_DEPENDENCIES = host-tzdata HOST_TZDATA_DEPENDENCIES = host-zic TZDATA_LICENSE = Public domain +# Take care when re-ordering this list since this might break zone +# dependencies TZDATA_DEFAULT_ZONELIST = \ - africa antarctica asia australasia backward etcetera \ - europe factory northamerica pacificnew southamerica + africa antarctica asia australasia europe northamerica \ + southamerica pacificnew etcetera backward systemv factory ifeq ($(call qstrip,$(BR2_TARGET_TZ_ZONELIST)),default) TZDATA_ZONELIST = $(TZDATA_DEFAULT_ZONELIST) @@ -49,8 +51,8 @@ endef define HOST_TZDATA_BUILD_CMDS (cd $(@D); \ for zone in $(TZDATA_ZONELIST); do \ - $(ZIC) -d _output/posix -y yearistype.sh $$zone; \ - $(ZIC) -d _output/right -L leapseconds -y yearistype.sh $$zone; \ + $(ZIC) -d _output/posix -y yearistype.sh $$zone || exit 1; \ + $(ZIC) -d _output/right -L leapseconds -y yearistype.sh $$zone || exit 1; \ done; \ ) endef diff --git a/bsp/buildroot/package/tzdump/tzdump.hash b/bsp/buildroot/package/tzdump/tzdump.hash new file mode 100644 index 00000000..71114e0b --- /dev/null +++ b/bsp/buildroot/package/tzdump/tzdump.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 403f22f9c3007a051f9dbccff48b396b8e04eb1afcc8d779e6b3d9b6d971e1fe tzdump-65a10105564801094b18c3fcacf4dde4c44e4ab8.tar.gz diff --git a/bsp/buildroot/package/uboot-tools/0001-drop-configh-from-tools.patch b/bsp/buildroot/package/uboot-tools/0001-drop-configh-from-tools.patch index e77a3017..fbc96084 100644 --- a/bsp/buildroot/package/uboot-tools/0001-drop-configh-from-tools.patch +++ b/bsp/buildroot/package/uboot-tools/0001-drop-configh-from-tools.patch @@ -1,7 +1,7 @@ -From 2e54434e4dd178773e8e11e48afc81299771f3e7 Mon Sep 17 00:00:00 2001 +From b742c7590ac6d9ac72dd227679ccff79433b3512 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Tue, 4 Aug 2015 22:13:20 +0200 -Subject: [PATCH 1/1] drop configh from tools +Subject: [PATCH] drop configh from tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -18,12 +18,12 @@ Signed-off-by: Jörg Krause 1 file changed, 11 deletions(-) diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h -index 60c0517..1c5daaa 100644 +index 57149e7..50049fe 100644 --- a/tools/env/fw_env.h +++ b/tools/env/fw_env.h -@@ -5,17 +5,6 @@ - * SPDX-License-Identifier: GPL-2.0+ - */ +@@ -8,17 +8,6 @@ + #include + #include -/* Pull in the current config to define the default environment */ -#include @@ -40,5 +40,5 @@ index 60c0517..1c5daaa 100644 * To build the utility with the static configuration * comment out the next line. -- -2.5.0 +2.7.4 diff --git a/bsp/buildroot/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch b/bsp/buildroot/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch index fedf9bee..795466f4 100644 --- a/bsp/buildroot/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch +++ b/bsp/buildroot/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch @@ -1,7 +1,7 @@ -From 7d9bac7bf8d9ef39ab6b6e8d436e3dbdee5cd120 Mon Sep 17 00:00:00 2001 +From b8110293d70c4f43035dfd6a0904d342be6a08e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Sun, 1 Feb 2015 21:53:47 +0100 -Subject: [PATCH 1/1] tools only in no dot config targets +Subject: [PATCH] tools only in no dot config targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -23,17 +23,18 @@ Signed-off-by: Jörg Krause 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 36a9a28..f85c194 100644 +index 954a865..3ab5958 100644 --- a/Makefile +++ b/Makefile -@@ -417,7 +417,7 @@ timestamp_h := include/generated/timestamp_autogenerated.h - +@@ -424,7 +424,7 @@ timestamp_h := include/generated/timestamp_autogenerated.h + no-dot-config-targets := clean clobber mrproper distclean \ - help %docs check% coccicheck \ + help %docs check% coccicheck \ - ubootversion backup + ubootversion backup tools-only - + config-targets := 0 mixed-targets := 0 --- -2.3.0 +-- +2.7.4 + diff --git a/bsp/buildroot/package/uboot-tools/0003-Make-FIT-support-really-optional.patch b/bsp/buildroot/package/uboot-tools/0003-Make-FIT-support-really-optional.patch new file mode 100644 index 00000000..8853198b --- /dev/null +++ b/bsp/buildroot/package/uboot-tools/0003-Make-FIT-support-really-optional.patch @@ -0,0 +1,96 @@ +From d9d7d7cf8b27516d45c66daa1bf0a18c878c4e33 Mon Sep 17 00:00:00 2001 +From: Carlos Santos +Date: Sun, 8 May 2016 11:11:39 -0300 +Subject: [PATCH] Make FIT support really optional + +Due to some mistakes in the source code, it was not possible to really +turn FIT support off. This commit fixes the problem by means of the +following changes: + +- Enclose "bootm_host_load_image" and "bootm_host_load_images" between + checks for CONFIG_FIT_SIGNATURE, in common/bootm.c. + +- Enclose the declaration of "bootm_host_load_images" between checks for + CONFIG_FIT_SIGNATURE, in common/bootm.h. + +- Condition the compilation and linking of fit_common.o fit_image.o + image-host.o common/image-fit.o to CONFIG_FIT=y, in tools/Makefile. + +Signed-off-by: Carlos Santos +[fabio: adapt for 2016.07] +Signed-off-by: Fabio Estevam +[Ricardo: fix conditional compilation and linking of the files mentioned above +for 2016.07] +Signed-off-by: Ricardo Martincoski +--- + common/bootm.c | 2 ++ + include/bootm.h | 2 ++ + tools/Makefile | 6 ++---- + 3 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/common/bootm.c b/common/bootm.c +index 2431019..7e1adc8 100644 +--- a/common/bootm.c ++++ b/common/bootm.c +@@ -901,6 +901,7 @@ void memmove_wd(void *to, void *from, size_t len, ulong chunksz) + memmove(to, from, len); + } + ++#if defined(CONFIG_FIT_SIGNATURE) + static int bootm_host_load_image(const void *fit, int req_image_type) + { + const char *fit_uname_config = NULL; +@@ -965,5 +966,6 @@ int bootm_host_load_images(const void *fit, int cfg_noffset) + /* Return the first error we found */ + return err; + } ++#endif + + #endif /* ndef USE_HOSTCC */ +diff --git a/include/bootm.h b/include/bootm.h +index 4981377..94d62a1 100644 +--- a/include/bootm.h ++++ b/include/bootm.h +@@ -41,7 +41,9 @@ void lynxkdi_boot(image_header_t *hdr); + + boot_os_fn *bootm_os_get_boot_func(int os); + ++#if defined(CONFIG_FIT_SIGNATURE) + int bootm_host_load_images(const void *fit, int cfg_noffset); ++#endif + + int boot_selected_os(int argc, char * const argv[], int state, + bootm_headers_t *images, boot_os_fn *boot_fn); +diff --git a/tools/Makefile b/tools/Makefile +index f72294a..ccf5120 100644 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -54,6 +54,7 @@ mkenvimage-objs := mkenvimage.o os_support.o lib/crc32.o + hostprogs-y += dumpimage mkimage + hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_info fit_check_sign + ++FIT_OBJS-$(CONFIG_FIT) := fit_common.o fit_image.o image-host.o common/image-fit.o + FIT_SIG_OBJS-$(CONFIG_FIT_SIGNATURE) := common/image-sig.o + # Flattened device tree objects + LIBFDT_OBJS := $(addprefix lib/libfdt/, \ +@@ -68,16 +69,13 @@ ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o + # common objs for dumpimage and mkimage + dumpimage-mkimage-objs := aisimage.o \ + atmelimage.o \ ++ $(FIT_OBJS-y) \ + $(FIT_SIG_OBJS-y) \ + common/bootm.o \ + lib/crc32.o \ + default_image.o \ + lib/fdtdec_common.o \ + lib/fdtdec.o \ +- fit_common.o \ +- fit_image.o \ +- common/image-fit.o \ +- image-host.o \ + common/image.o \ + imagetool.o \ + imximage.o \ +-- +2.9.1 + diff --git a/bsp/buildroot/package/uboot-tools/Config.in b/bsp/buildroot/package/uboot-tools/Config.in index e2c621c1..f55614ba 100644 --- a/bsp/buildroot/package/uboot-tools/Config.in +++ b/bsp/buildroot/package/uboot-tools/Config.in @@ -7,15 +7,26 @@ config BR2_PACKAGE_UBOOT_TOOLS if BR2_PACKAGE_UBOOT_TOOLS -config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE - bool "mkimage" +config BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT + bool "Flattened Image Tree (FIT) support" + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_DTC + select BR2_PACKAGE_DTC_PROGRAMS help - The mkimage tool from Das U-Boot bootloader, which allows - generation of U-Boot images in various formats. + Enables support for Flattened Image Tree (FIT). -if BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE + This option allows to boot the new uImage structure, + Flattened Image Tree. FIT is formally a FDT, which can include + images of various types (kernel, FDT blob, ramdisk, etc.) + in a single blob. To boot this new uImage structure, + pass the address of the blob to the "bootm" command. -config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT +comment "u-boot tools FIT support needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + +if BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT + +config BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT bool "FIT signature verification support" select BR2_PACKAGE_OPENSSL help @@ -38,9 +49,19 @@ config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT endif +config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE + bool "mkimage" + help + Install the mkimage tool on the target system + + The mkimage tool from Das U-Boot bootloader, which allows + generation of U-Boot images in various formats. + config BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE bool "mkenvimage" help + Install the mkenvimage tool on the target system + The mkenvimage tool from Das U-Boot bootloader, which allows generation of a valid binary environment image from a text file describing the key=value pairs of the environment. @@ -49,8 +70,18 @@ config BR2_PACKAGE_UBOOT_TOOLS_FWPRINTENV bool "fw_printenv" default y help - The fw_printenv / fw_setenv tools from Das U-Boot + Install the fw_printenv / fw_setenv tools on the target system + + The fw_printenv and fw_setenv tools from Das U-Boot bootloader, which allows access to the U-Boot environment from Linux. +config BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE + bool "dumpimage" + help + Install the dumpimage tool on the target system + + The dumpimage tool from Das U-Boot bootloader, which allows + extraction of data from U-Boot images. + endif diff --git a/bsp/buildroot/package/uboot-tools/Config.in.host b/bsp/buildroot/package/uboot-tools/Config.in.host index b5a42d9e..52a4c2ec 100644 --- a/bsp/buildroot/package/uboot-tools/Config.in.host +++ b/bsp/buildroot/package/uboot-tools/Config.in.host @@ -7,6 +7,20 @@ config BR2_PACKAGE_HOST_UBOOT_TOOLS if BR2_PACKAGE_HOST_UBOOT_TOOLS +config BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT + bool "Flattened Image Tree (FIT) support" + select BR2_PACKAGE_HOST_DTC + help + Enables support for Flattened Image Tree (FIT). + + This option allows to boot the new uImage structure, + Flattened Image Tree. FIT is formally a FDT, which can include + images of various types (kernel, FDT blob, ramdisk, etc.) + in a single blob. To boot this new uImage structure, + pass the address of the blob to the "bootm" command. + +if BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT + config BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT bool "FIT signature verification support" help @@ -24,3 +38,5 @@ config BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT be verified in this way. endif + +endif diff --git a/bsp/buildroot/package/uboot-tools/uboot-tools.hash b/bsp/buildroot/package/uboot-tools/uboot-tools.hash index 31b0db96..cf27e90a 100644 --- a/bsp/buildroot/package/uboot-tools/uboot-tools.hash +++ b/bsp/buildroot/package/uboot-tools/uboot-tools.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 e5792fba9399d9804aa2ef667f14ff771e2cdece72367d340250265bf095a5d5 u-boot-2016.01.tar.bz2 +sha256 974fb7225c0af6a721307631f66b81e20dbda82a4d7cc32aba2a625727231253 u-boot-2016.07.tar.bz2 diff --git a/bsp/buildroot/package/uboot-tools/uboot-tools.mk b/bsp/buildroot/package/uboot-tools/uboot-tools.mk index 31502793..e7826bde 100644 --- a/bsp/buildroot/package/uboot-tools/uboot-tools.mk +++ b/bsp/buildroot/package/uboot-tools/uboot-tools.mk @@ -4,29 +4,37 @@ # ################################################################################ -UBOOT_TOOLS_VERSION = 2016.01 +UBOOT_TOOLS_VERSION = 2016.07 UBOOT_TOOLS_SOURCE = u-boot-$(UBOOT_TOOLS_VERSION).tar.bz2 UBOOT_TOOLS_SITE = ftp://ftp.denx.de/pub/u-boot UBOOT_TOOLS_LICENSE = GPLv2+ UBOOT_TOOLS_LICENSE_FILES = Licenses/gpl-2.0.txt +UBOOT_TOOLS_INSTALL_STAGING = YES define UBOOT_TOOLS_CONFIGURE_CMDS mkdir -p $(@D)/include/config touch $(@D)/include/config/auto.conf endef +UBOOT_TOOLS_MAKE_OPTS = CROSS_COMPILE="$(TARGET_CROSS)" \ + CFLAGS="$(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + STRIP=$(TARGET_STRIP) + +ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT),y) +UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT=y +UBOOT_TOOLS_DEPENDENCIES += dtc +endif + +ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),y) +UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT_SIGNATURE=y +UBOOT_TOOLS_DEPENDENCIES += openssl host-pkgconf +endif + define UBOOT_TOOLS_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ - CROSS_COMPILE="$(TARGET_CROSS)" \ - CFLAGS="$(TARGET_CFLAGS)" \ - LDFLAGS="$(TARGET_LDFLAGS)" \ - CROSS_BUILD_TOOLS=y \ - CONFIG_FIT_SIGNATURE=$(BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT) \ - tools-only - $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ - CROSS_COMPILE="$(TARGET_CROSS)" \ - CFLAGS="$(TARGET_CFLAGS)" \ - LDFLAGS="$(TARGET_LDFLAGS)" \ + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(UBOOT_TOOLS_MAKE_OPTS) \ + CROSS_BUILD_TOOLS=y tools-only + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(UBOOT_TOOLS_MAKE_OPTS) \ env no-dot-config-targets=env endef @@ -34,10 +42,7 @@ ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE),y) define UBOOT_TOOLS_INSTALL_MKIMAGE $(INSTALL) -m 0755 -D $(@D)/tools/mkimage $(TARGET_DIR)/usr/bin/mkimage endef -ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT),y) -UBOOT_TOOLS_DEPENDENCIES += openssl host-pkgconf -endif # BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT -endif # BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE +endif ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE),y) define UBOOT_TOOLS_INSTALL_MKENVIMAGE @@ -52,33 +57,54 @@ define UBOOT_TOOLS_INSTALL_FWPRINTENV endef endif +ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_DUMPIMAGE),y) +define UBOOT_TOOLS_INSTALL_DUMPIMAGE + $(INSTALL) -m 0755 -D $(@D)/tools/dumpimage $(TARGET_DIR)/usr/sbin/dumpimage +endef +endif + +define UBOOT_TOOLS_INSTALL_LIBUBOOTENV +endef + +define UBOOT_TOOLS_INSTALL_STAGING_CMDS + $(INSTALL) -D -m 0755 $(@D)/tools/env/lib.a $(STAGING_DIR)/usr/lib/libubootenv.a + $(INSTALL) -D -m 0644 $(@D)/tools/env/fw_env.h $(STAGING_DIR)/usr/include/fw_env.h +endef + define UBOOT_TOOLS_INSTALL_TARGET_CMDS $(UBOOT_TOOLS_INSTALL_MKIMAGE) $(UBOOT_TOOLS_INSTALL_MKENVIMAGE) $(UBOOT_TOOLS_INSTALL_FWPRINTENV) + $(UBOOT_TOOLS_INSTALL_DUMPIMAGE) endef -ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),y) -HOST_UBOOT_TOOLS_DEPENDENCIES += host-openssl -endif - define HOST_UBOOT_TOOLS_CONFIGURE_CMDS mkdir -p $(@D)/include/config touch $(@D)/include/config/auto.conf endef +HOST_UBOOT_TOOLS_MAKE_OPTS = HOSTCC="$(HOSTCC)" \ + HOSTCFLAGS="$(HOST_CFLAGS)" \ + HOSTLDFLAGS="$(HOST_LDFLAGS)" + +ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT),y) +HOST_UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT=y +HOST_UBOOT_TOOLS_DEPENDENCIES += host-dtc +endif + +ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),y) +HOST_UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT_SIGNATURE=y +HOST_UBOOT_TOOLS_DEPENDENCIES += host-openssl +endif + define HOST_UBOOT_TOOLS_BUILD_CMDS - $(MAKE1) -C $(@D) \ - CONFIG_FIT_SIGNATURE=$(BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT) \ - HOSTCC="$(HOSTCC)" \ - HOSTCFLAGS="$(HOST_CFLAGS)" \ - HOSTLDFLAGS="$(HOST_LDFLAGS)" \ - tools-only + $(MAKE1) -C $(@D) $(HOST_UBOOT_TOOLS_MAKE_OPTS) tools-only endef define HOST_UBOOT_TOOLS_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/tools/mkimage $(HOST_DIR)/usr/bin/mkimage $(INSTALL) -m 0755 -D $(@D)/tools/mkenvimage $(HOST_DIR)/usr/bin/mkenvimage + $(INSTALL) -m 0755 -D $(@D)/tools/dumpimage $(HOST_DIR)/usr/bin/dumpimage endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/ubus/Config.in b/bsp/buildroot/package/ubus/Config.in index 391fc8d9..c14f6a86 100644 --- a/bsp/buildroot/package/ubus/Config.in +++ b/bsp/buildroot/package/ubus/Config.in @@ -1,6 +1,6 @@ comment "ubus needs a toolchain w/ dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 - depends on BR2_STATIC_LIBS + depends on BR2_STATIC_LIBS config BR2_PACKAGE_UBUS bool "ubus" diff --git a/bsp/buildroot/package/ucl/ucl.mk b/bsp/buildroot/package/ucl/ucl.mk index 2654a5a7..e4dc1b3e 100644 --- a/bsp/buildroot/package/ucl/ucl.mk +++ b/bsp/buildroot/package/ucl/ucl.mk @@ -9,4 +9,7 @@ UCL_SITE = http://www.oberhumer.com/opensource/ucl/download UCL_LICENSE = GPLv2+ UCL_LICENSE_FILES = COPYING +# Fix ACC conformance test failure for host gcc 6.x +HOST_UCL_CONF_ENV += CPPFLAGS="$(HOST_CPPFLAGS) -std=c90" + $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/uclibc/0001-arm-fix-compile-in-thumb-mode.patch b/bsp/buildroot/package/uclibc/0001-arm-fix-compile-in-thumb-mode.patch new file mode 100644 index 00000000..43fcb6f4 --- /dev/null +++ b/bsp/buildroot/package/uclibc/0001-arm-fix-compile-in-thumb-mode.patch @@ -0,0 +1,48 @@ +From bbd7151f7980c7d075fe652331f01d3aadc73e42 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Mon, 8 Aug 2016 06:41:03 +0200 +Subject: [PATCH] arm: fix compile in thumb mode + +Fix a regression introduced by commit +0550ecce0e6580c5ad34e9a9a39ff18ccf8774f9 + +Reported by Buildroot developers. + +Embedded test must be extented to ARMv7 thumb2 builds to +find such regressions next time. It wasn't triggered by a +cortex-m4 ARM noMMU build. + +[yann.morin.1998@free.fr: backport from upstream] +Signed-off-by: "Yann E. MORIN" +--- + libc/sysdeps/linux/arm/bits/syscalls.h | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/libc/sysdeps/linux/arm/bits/syscalls.h b/libc/sysdeps/linux/arm/bits/syscalls.h +index 5b30564..6c62a9e 100644 +--- a/libc/sysdeps/linux/arm/bits/syscalls.h ++++ b/libc/sysdeps/linux/arm/bits/syscalls.h +@@ -43,6 +43,9 @@ + }) \ + ) + ++#define INTERNAL_SYSCALL_ARM(name, err, nr, args...) \ ++ INTERNAL_SYSCALL_NCS(__ARM_NR_##name, err, nr, args) ++ + #if defined(__thumb__) + /* We can't use push/pop inside the asm because that breaks + unwinding (ie. thread cancellation). +@@ -83,10 +86,6 @@ + } \ + (int) __internal_sys_result; }) \ + ) +- +-#undef INTERNAL_SYSCALL_ARM +-#define INTERNAL_SYSCALL_ARM(name, err, nr, args...) \ +- INTERNAL_SYSCALL_NCS(__ARM_NR_##name, err, nr, args) + #endif + + #define INTERNAL_SYSCALL_ERROR_P(val, err) \ +-- +2.7.4 + diff --git a/bsp/buildroot/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch b/bsp/buildroot/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch deleted file mode 100644 index c1985ef1..00000000 --- a/bsp/buildroot/package/uclibc/0001-include-netdb.h-Do-not-define-IDN-related-flags.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 5e9a78c8a839381add6faa61e196e6dad9143163 Mon Sep 17 00:00:00 2001 -From: Thomas Claveirole -Date: Tue, 2 Feb 2016 12:13:09 +0100 -Subject: [PATCH] include/netdb.h: Do not define IDN-related flags. - -getaddrinfo() does not implement IDN encoding, and always fail when -provided an IDN flag (e.g., AI_IDN) with EAI_BADFLAGS. Some packages -(such as the VLC media player) check for AI_IDN before they use it; -providing an unimplemented AI_IDN in the libc makes these package -fail. As a result they make calls to getaddrinfo() with AI_IDN that -always fail while they could have made successful calls without AI_IDN -instead. - -Thus, do not define IDN flags: it is better not to compile rather than -to compile a code that always fail. - -Signed-off-by: Thomas Claveirole -Signed-off-by: Waldemar Brodkorb ---- - include/netdb.h | 11 ----------- - 1 file changed, 11 deletions(-) - -diff --git a/include/netdb.h b/include/netdb.h -index a636b5f..95abe95 100644 ---- a/include/netdb.h -+++ b/include/netdb.h -@@ -627,16 +627,6 @@ struct addrinfo - # define AI_ALL 0x0010 /* Return IPv4 mapped and IPv6 addresses. */ - # define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose - returned address type.. */ --# ifdef __USE_GNU --# define AI_IDN 0x0040 /* IDN encode input (assuming it is encoded -- in the current locale's character set) -- before looking it up. */ --# define AI_CANONIDN 0x0080 /* Translate canonical name from IDN format. */ --# define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode -- code points. */ --# define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to -- STD3 rules. */ --# endif - # define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */ - - /* Error values for `getaddrinfo' function. */ -@@ -658,7 +648,6 @@ struct addrinfo - # define EAI_NOTCANCELED -102 /* Request not canceled. */ - # define EAI_ALLDONE -103 /* All requests done. */ - # define EAI_INTR -104 /* Interrupted by a signal. */ --# define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ - # endif - - # ifdef __USE_MISC --- -1.7.10.4 - diff --git a/bsp/buildroot/package/uclibc/0002-mips-fix-build-if-threads-are-disabled.patch b/bsp/buildroot/package/uclibc/0002-mips-fix-build-if-threads-are-disabled.patch deleted file mode 100644 index a74a5f9c..00000000 --- a/bsp/buildroot/package/uclibc/0002-mips-fix-build-if-threads-are-disabled.patch +++ /dev/null @@ -1,59 +0,0 @@ -From b499fe614ac5b492fc0fdc6e1fbbeeb904674159 Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -Date: Wed, 3 Feb 2016 21:57:04 +0100 -Subject: [PATCH] mips: fix build if threads are disabled - -Reported-by: Gustavo Zacarias -Signed-off-by: Waldemar Brodkorb ---- - libc/string/mips/memcpy.S | 4 ++-- - libc/string/mips/memset.S | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libc/string/mips/memcpy.S b/libc/string/mips/memcpy.S -index 3afdb2c..59f9f0a 100644 ---- a/libc/string/mips/memcpy.S -+++ b/libc/string/mips/memcpy.S -@@ -23,7 +23,7 @@ - # define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE - #elif _LIBC - # include --# include -+# include - # include - # define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD_STREAMED - # define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE -@@ -33,7 +33,7 @@ - # define PREFETCH_LOAD_HINT PREFETCH_HINT_LOAD_STREAMED - # define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE - #else --# include -+# include - # include - #endif - -diff --git a/libc/string/mips/memset.S b/libc/string/mips/memset.S -index ef8ab0b..43034ce 100644 ---- a/libc/string/mips/memset.S -+++ b/libc/string/mips/memset.S -@@ -21,7 +21,7 @@ - # define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE - #elif _LIBC - # include --# include -+# include - # include - # define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE - #elif defined _COMPILING_NEWLIB -@@ -29,7 +29,7 @@ - # include "machine/regdef.h" - # define PREFETCH_STORE_HINT PREFETCH_HINT_PREPAREFORSTORE - #else --# include -+# include - # include - #endif - --- -1.7.10.4 - diff --git a/bsp/buildroot/package/uclibc/0002-sunrpc-Do-not-use-alloca-in-clntudp_call.patch b/bsp/buildroot/package/uclibc/0002-sunrpc-Do-not-use-alloca-in-clntudp_call.patch new file mode 100644 index 00000000..b0c523cc --- /dev/null +++ b/bsp/buildroot/package/uclibc/0002-sunrpc-Do-not-use-alloca-in-clntudp_call.patch @@ -0,0 +1,59 @@ +From 9213ad631513d0e67d9d31465c9cdb3f3dde0399 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Fri, 5 Aug 2016 21:33:44 +0200 +Subject: [PATCH 2/3] sunrpc: Do not use alloca in clntudp_call + +CVE-2016-4429: +The call is technically in a loop, and under certain circumstances +(which are quite difficult to reproduce in a test case), alloca +can be invoked repeatedly during a single call to clntudp_call. +As a result, the available stack space can be exhausted (even +though individual alloca sizes are bounded implicitly by what +can fit into a UDP packet, as a side effect of the earlier +successful send operation). + +From GNU libc: +https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=bc779a1a5b3035133024b21e2f339fe4219fb11c + +Signed-off-by: Waldemar Brodkorb +--- + libc/inet/rpc/clnt_udp.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/libc/inet/rpc/clnt_udp.c b/libc/inet/rpc/clnt_udp.c +index 4fc55b7..ce7e9e6 100644 +--- a/libc/inet/rpc/clnt_udp.c ++++ b/libc/inet/rpc/clnt_udp.c +@@ -368,9 +368,15 @@ send_again: + struct sock_extended_err *e; + struct sockaddr_in err_addr; + struct iovec iov; +- char *cbuf = (char *) alloca (outlen + 256); ++ char *cbuf = malloc (outlen + 256); + int ret; + ++ if (cbuf == NULL) ++ { ++ cu->cu_error.re_errno = errno; ++ return (cu->cu_error.re_status = RPC_CANTRECV); ++ } ++ + iov.iov_base = cbuf + 256; + iov.iov_len = outlen; + msg.msg_name = (void *) &err_addr; +@@ -395,10 +401,12 @@ send_again: + cmsg = CMSG_NXTHDR (&msg, cmsg)) + if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR) + { ++ free (cbuf); + e = (struct sock_extended_err *) CMSG_DATA(cmsg); + cu->cu_error.re_errno = e->ee_errno; + return (cu->cu_error.re_status = RPC_CANTRECV); + } ++ free (cbuf); + } + #endif + do +-- +2.7.4 (Apple Git-66) + diff --git a/bsp/buildroot/package/uclibc/0003-ARC-Support-syscall-ABI-v4.patch b/bsp/buildroot/package/uclibc/0003-ARC-Support-syscall-ABI-v4.patch new file mode 100644 index 00000000..058adcac --- /dev/null +++ b/bsp/buildroot/package/uclibc/0003-ARC-Support-syscall-ABI-v4.patch @@ -0,0 +1,54 @@ +From 3e40f9669279f005f7154892539166f5081fbcb2 Mon Sep 17 00:00:00 2001 +From: Vineet Gupta +Date: Tue, 16 Aug 2016 15:04:27 -0700 +Subject: [PATCH] ARC: Support syscall ABI v4 + +The syscall ABI includes the gcc functional calling ABI since a syscall +implies userland caller and kernel callee. + +The current gcc ABI (v3) for ARCv2 ISA required 64-bit data be passed in +even-odd register pairs, (potentially punching reg holes when passing such +values as args). This was partly driven by the fact that the double-word +LDD/STD instructions in ARCv2 expect the register alignment and thus gcc +forcing this avoids extra MOV at the cost of a few unused register (which we +have plenty anyways). + +This however was rejected as part of upstreaming gcc port to HS. So the new +ABI v4 doesn't enforce the even-odd reg restriction. + +Do note that for ARCompact ISA builds v3 and v4 are practically the same in +terms of gcc code generation. + +This change is dormant for now (gcc 4.8.x based tools) and will only kick +in with switch to gcc 6.x based tools. + +Signed-off-by: Vineet Gupta +Signed-off-by: Vlad Zakharov +--- + libc/sysdeps/linux/arc/bits/uClibc_arch_features.h | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h b/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h +index 5160724..94e089d 100755 +--- a/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h ++++ b/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h +@@ -41,8 +41,14 @@ + /* The default ';' is a comment on ARC. */ + #define __UCLIBC_ASM_LINE_SEP__ ` + +-/* does your target align 64bit values in register pairs ? (32bit arches only) */ +-#if defined(__A7__) ++/* does your target align 64bit values in register pairs ? (32bit arches only) ++ * - ARC700 never had any constraint on reg pairs (even if ABI v3) ++ * - Inital HS ABI (v3: non upstream gcc) had 64-bit data aligned in even-odd ++ * reg pairs (thus allowed reg holes when passing such args to calls) ++ * - Upstream gcc (6.x) HS ABI doesn't have that restriction ++ */ ++ ++#if defined(__A7__) || (__GNUC__ > 4) + #undef __UCLIBC_SYSCALL_ALIGN_64BIT__ + #else + #define __UCLIBC_SYSCALL_ALIGN_64BIT__ +-- +2.7.4 + diff --git a/bsp/buildroot/package/uclibc/Config.in b/bsp/buildroot/package/uclibc/Config.in index 16bf89c6..33969cc1 100644 --- a/bsp/buildroot/package/uclibc/Config.in +++ b/bsp/buildroot/package/uclibc/Config.in @@ -47,34 +47,30 @@ config BR2_TOOLCHAIN_BUILDROOT_LOCALE choice prompt "Thread library implementation" - default BR2_PTHREADS_NATIVE help Use this option to select the thread library implementation that should be used in your toolchain. - config BR2_PTHREADS_NONE - bool "none" - - config BR2_PTHREADS - bool "linuxthreads" - select BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_m68k - - config BR2_PTHREADS_OLD - bool "linuxthreads (stable/old)" - select BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_m68k || BR2_arm || BR2_armeb - config BR2_PTHREADS_NATIVE bool "Native POSIX Threading (NPTL)" select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_NPTL - depends on !BR2_m68k && !BR2_x86_i386 + depends on BR2_USE_MMU + depends on !BR2_m68k && !BR2_microblaze + + config BR2_PTHREADS + bool "linuxthreads" + select BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_bfin || BR2_m68k || BR2_microblaze || BR2_arm || BR2_armeb || BR2_xtensa + + config BR2_PTHREADS_NONE + bool "none" + endchoice config BR2_PTHREAD_DEBUG bool "Thread library debugging" - depends on BR2_PTHREADS || BR2_PTHREADS_OLD || BR2_PTHREADS_NATIVE + depends on BR2_PTHREADS || BR2_PTHREADS_NATIVE select BR2_TOOLCHAIN_HAS_THREADS_DEBUG help Build the thread library with debugging enabled. @@ -101,8 +97,6 @@ config BR2_UCLIBC_INSTALL_UTILS config BR2_UCLIBC_INSTALL_TEST_SUITE bool "Compile and install uClibc tests" - select BR2_PACKAGE_MAKE - depends on BR2_USE_MMU # make help Enabling this option will compile and install the uClibc test suite. This is useful if you want to check if the uClibc library is working @@ -110,7 +104,7 @@ config BR2_UCLIBC_INSTALL_TEST_SUITE The test suite will be installed into /root/uClibc directory. To run the test suite enter the /root/uClibc/test directory and type - "make UCLIBC_ONLY=1 CC=/bin/true check". + "sh uclibcng-testrunner.sh". See the /root/uClibc/test/README for additional information. @@ -123,7 +117,9 @@ config BR2_UCLIBC_TARGET_ARCH string default "arc" if BR2_arcle || BR2_arceb default "arm" if BR2_arm || BR2_armeb + default "bfin" if BR2_bfin default "m68k" if BR2_m68k + default "microblaze" if BR2_microblaze default "mips" if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el default "powerpc" if BR2_powerpc default "sh" if BR2_sh @@ -139,11 +135,6 @@ config BR2_UCLIBC_ARC_TYPE default "ARC_CPU_700" if BR2_arc770d default "ARC_CPU_HS" if BR2_archs38 -config BR2_UCLIBC_ARM_BX - bool - depends on BR2_UCLIBC_TARGET_ARCH = "arm" - default y if (BR2_ARM_CPU_HAS_THUMB || BR2_ARM_CPU_HAS_THUMB2) - config BR2_UCLIBC_MIPS_ABI string depends on BR2_UCLIBC_TARGET_ARCH = "mips" @@ -179,7 +170,6 @@ config BR2_UCLIBC_POWERPC_TYPE config BR2_UCLIBC_X86_TYPE string depends on BR2_UCLIBC_TARGET_ARCH = "i386" - default "386" if BR2_x86_i386 default "486" if BR2_x86_i486 default "586" if BR2_x86_i586 default "586MMX" if BR2_x86_pentium_mmx diff --git a/bsp/buildroot/package/uclibc/uClibc-ng.config b/bsp/buildroot/package/uclibc/uClibc-ng.config index c17603db..2671e067 100644 --- a/bsp/buildroot/package/uclibc/uClibc-ng.config +++ b/bsp/buildroot/package/uclibc/uClibc-ng.config @@ -1,4 +1,5 @@ DO_C99_MATH=y +DO_XSI_MATH=y KERNEL_HEADERS="/usr/src/linux/include" # LDSO_CACHE_SUPPORT is not set # UCLIBC_STATIC_LDCONFIG is not set @@ -16,6 +17,8 @@ UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y UCLIBC_HAS_GETPT=y UCLIBC_HAS_LIBUTIL=y UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y +UCLIBC_HAS_SHA256_CRYPT_IMPL=y +UCLIBC_HAS_SHA512_CRYPT_IMPL=y UCLIBC_USE_NETLINK=y UCLIBC_SUPPORT_AI_ADDRCONFIG=y UCLIBC_HAS_RESOLVER_SUPPORT=y diff --git a/bsp/buildroot/package/uclibc/uclibc.hash b/bsp/buildroot/package/uclibc/uclibc.hash index 1290f920..637d93e9 100644 --- a/bsp/buildroot/package/uclibc/uclibc.hash +++ b/bsp/buildroot/package/uclibc/uclibc.hash @@ -1,2 +1,2 @@ # From http://www.uclibc-ng.org/ -sha256 c238b300356b2638432e023076293f29935094108a2714ad1762b76015fae729 uClibc-ng-1.0.12.tar.xz +sha256 a2e7207634c19997e8b9f3e712182d80d42aaa85ce3462eff1a9bce812aaf354 uClibc-ng-1.0.17.tar.xz diff --git a/bsp/buildroot/package/uclibc/uclibc.mk b/bsp/buildroot/package/uclibc/uclibc.mk index 200de043..124bd593 100644 --- a/bsp/buildroot/package/uclibc/uclibc.mk +++ b/bsp/buildroot/package/uclibc/uclibc.mk @@ -4,13 +4,17 @@ # ################################################################################ -UCLIBC_VERSION = 1.0.12 +UCLIBC_VERSION = 1.0.17 UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz UCLIBC_SITE = http://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION) UCLIBC_LICENSE = LGPLv2.1+ UCLIBC_LICENSE_FILES = COPYING.LIB UCLIBC_INSTALL_STAGING = YES +define UCLIBC_HELP_CMDS + @echo ' uclibc-menuconfig - Run uClibc menuconfig' +endef + # uclibc is part of the toolchain so disable the toolchain dependency UCLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO @@ -47,6 +51,40 @@ UCLIBC_LOCALES = \ $(firstword $(subst .,$(space),$(locale)))) endif +# noMMU binary formats +ifeq ($(BR2_BINFMT_FDPIC),y) +define UCLIBC_BINFMT_CONFIG + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config) + $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config) +endef +endif +ifeq ($(BR2_BINFMT_FLAT_ONE),y) +define UCLIBC_BINFMT_CONFIG + $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config) +endef +endif +ifeq ($(BR2_BINFMT_FLAT_SEP_DATA),y) +define UCLIBC_BINFMT_CONFIG + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config) + $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config) +endef +endif +ifeq ($(BR2_BINFMT_FLAT_SHARED),y) +define UCLIBC_BINFMT_CONFIG + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config) + $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config) +endef +endif + # # ARC definitions # @@ -75,23 +113,46 @@ define UCLIBC_ARM_ABI_CONFIG $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_EABI,$(@D)/.config) endef -# Thumb build is broken with threads, build in ARM mode -ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_TOOLCHAIN_HAS_THREADS),yy) +# Thumb1 build is broken with threads with old gcc versions (4.7 and +# 4.8). Since all cores supporting Thumb1 also support ARM, we use ARM +# code in this case. +ifeq ($(BR2_GCC_VERSION_4_7_X)$(BR2_GCC_VERSION_4_8_X):$(BR2_ARM_INSTRUCTIONS_THUMB)$(BR2_TOOLCHAIN_HAS_THREADS),y:yy) UCLIBC_EXTRA_CFLAGS += -marm endif -ifeq ($(BR2_UCLIBC_ARM_BX),y) -define UCLIBC_ARM_BX_CONFIG - $(call KCONFIG_ENABLE_OPT,USE_BX,$(@D)/.config) +ifeq ($(BR2_BINFMT_FLAT),y) +define UCLIBC_ARM_BINFMT_FLAT + $(call KCONFIG_DISABLE_OPT,DOPIC,$(@D)/.config) endef -else -define UCLIBC_ARM_BX_CONFIG - $(call KCONFIG_DISABLE_OPT,USE_BX,$(@D)/.config) +endif + +# context functions are written with ARM instructions. Therefore, if +# we are using a Thumb2-only platform (i.e, Cortex-M), they must be +# disabled. Thumb1 platforms are not a problem, since they all also +# support the ARM instructions. +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB2):$(BR2_ARM_CPU_HAS_ARM),y:) +define UCLIBC_ARM_NO_CONTEXT_FUNCS + $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_CONTEXT_FUNCS,$(@D)/.config) endef endif endif # arm +# +# m68k/coldfire definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),m68k) + +# disable DOPIC for flat without separate data +ifeq ($(BR2_BINFMT_FLAT_ONE),y) +define UCLIBC_M68K_BINFMT_FLAT + $(call KCONFIG_DISABLE_OPT,DOPIC,$(@D)/.config) +endef +endif + +endif # m68k/coldfire + # # MIPS definitions # @@ -158,6 +219,15 @@ define UCLIBC_X86_TYPE_CONFIG endef endif +# +# Debug +# +ifeq ($(BR2_ENABLE_DEBUG),y) +define UCLIBC_DEBUG_CONFIG + $(call KCONFIG_ENABLE_OPT,DODEBUG,$(@D)/.config) +endef +endif + # # Endianness # @@ -262,29 +332,19 @@ endif ifeq ($(BR2_PTHREADS_NONE),y) define UCLIBC_THREAD_CONFIG $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,LINUXTHREADS,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS,$(@D)/.config) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config) endef else ifeq ($(BR2_PTHREADS),y) define UCLIBC_THREAD_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config) - $(call KCONFIG_ENABLE_OPT,LINUXTHREADS_NEW,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config) -endef -else ifeq ($(BR2_PTHREADS_OLD),y) -define UCLIBC_THREAD_CONFIG - $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,LINUXTHREADS_NEW,$(@D)/.config) - $(call KCONFIG_ENABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config) + $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LINUXTHREADS,$(@D)/.config) $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config) endef else ifeq ($(BR2_PTHREADS_NATIVE),y) define UCLIBC_THREAD_CONFIG $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,LINUXTHREADS_NEW,$(@D)/.config) - $(call KCONFIG_DISABLE_OPT,LINUXTHREADS_OLD,$(@D)/.config) + $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS,$(@D)/.config) $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config) endef endif @@ -359,16 +419,20 @@ define UCLIBC_KCONFIG_FIXUP_CMDS $(call KCONFIG_SET_OPT,DEVEL_PREFIX,"/usr",$(@D)/.config) $(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D)/.config) $(UCLIBC_MMU_CONFIG) + $(UCLIBC_BINFMT_CONFIG) $(UCLIBC_ARC_TYPE_CONFIG) $(UCLIBC_ARC_PAGE_SIZE_CONFIG) $(UCLIBC_ARM_ABI_CONFIG) - $(UCLIBC_ARM_BX_CONFIG) + $(UCLIBC_ARM_BINFMT_FLAT) + $(UCLIBC_ARM_NO_CONTEXT_FUNCS) + $(UCLIBC_M68K_BINFMT_FLAT) $(UCLIBC_MIPS_ABI_CONFIG) $(UCLIBC_MIPS_ISA_CONFIG) $(UCLIBC_SH_TYPE_CONFIG) $(UCLIBC_SPARC_TYPE_CONFIG) $(UCLIBC_POWERPC_TYPE_CONFIG) $(UCLIBC_X86_TYPE_CONFIG) + $(UCLIBC_DEBUG_CONFIG) $(UCLIBC_ENDIAN_CONFIG) $(UCLIBC_LARGEFILE_CONFIG) $(UCLIBC_IPV6_CONFIG) @@ -384,11 +448,11 @@ endef ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y) define UCLIBC_BUILD_TEST_SUITE - $(MAKE1) -C $(@D) \ + $(MAKE) -C $(@D) \ $(UCLIBC_MAKE_FLAGS) \ TEST_INSTALLED_UCLIBC=1 \ UCLIBC_ONLY=1 \ - test_compile + test_compile test_gen endef endif @@ -404,8 +468,7 @@ ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y) define UCLIBC_INSTALL_TEST_SUITE mkdir -p $(TARGET_DIR)/root/uClibc cp -rdpf $(@D)/test $(TARGET_DIR)/root/uClibc - $(INSTALL) -D -m 0644 $(@D)/Rules.mak $(TARGET_DIR)/root/uClibc/Rules.mak - $(INSTALL) -D -m 0644 $(@D)/.config $(TARGET_DIR)/root/uClibc/.config + find $(TARGET_DIR)/root/uClibc -name \*.o -exec rm {} \; endef endif diff --git a/bsp/buildroot/package/udpcast/Config.in b/bsp/buildroot/package/udpcast/Config.in index 0424db79..ef94b30a 100644 --- a/bsp/buildroot/package/udpcast/Config.in +++ b/bsp/buildroot/package/udpcast/Config.in @@ -14,8 +14,6 @@ config BR2_PACKAGE_UDPCAST if BR2_PACKAGE_UDPCAST -menu "udpcast tools selection" - config BR2_PACKAGE_UDPCAST_SENDER bool "sender" help @@ -26,6 +24,4 @@ config BR2_PACKAGE_UDPCAST_RECEIVER help The udpcast receiver. -endmenu - endif diff --git a/bsp/buildroot/package/ulogd/0001-ulogd-Use-dev-null-as-dummy-logfile-when-logging-to-.patch b/bsp/buildroot/package/ulogd/0001-ulogd-Use-dev-null-as-dummy-logfile-when-logging-to-.patch new file mode 100644 index 00000000..c7b284a0 --- /dev/null +++ b/bsp/buildroot/package/ulogd/0001-ulogd-Use-dev-null-as-dummy-logfile-when-logging-to-.patch @@ -0,0 +1,70 @@ +From 8a6ddd1cb2b55c234f1a97f7e5d996f24f46b6f8 Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Sat, 16 May 2015 17:43:23 +0200 +Subject: [PATCH] ulogd: Use /dev/null as dummy logfile when logging to + syslog + +Fixes compilation error with musl libc: + +ulogd.c:86:13: error: storage size of 'syslog_dummy' isn't known + static FILE syslog_dummy; + +Signed-off-by: Felix Janda +[Rahul Bedarkar: Backported from https://git.netfilter.org/ulogd2/commit/?id=8a6ddd1cb2b55c234f1a97f7e5d996f24f46b6f8] +Signed-off-by: Rahul Bedarkar +--- + src/ulogd.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/ulogd.c b/src/ulogd.c +index e7cde39..958c30a 100644 +--- a/src/ulogd.c ++++ b/src/ulogd.c +@@ -83,7 +83,7 @@ static char *ulogd_logfile = NULL; + static const char *ulogd_configfile = ULOGD_CONFIGFILE; + static const char *ulogd_pidfile = NULL; + static int ulogd_pidfile_fd = -1; +-static FILE syslog_dummy; ++static FILE *syslog_dummy; + + static int info_mode = 0; + +@@ -427,7 +427,7 @@ void __ulogd_log(int level, char *file, int line, const char *format, ...) + if (level < loglevel_ce.u.value) + return; + +- if (logfile == &syslog_dummy) { ++ if (logfile == syslog_dummy) { + /* FIXME: this omits the 'file' string */ + va_start(ap, format); + vsyslog(ulogd2syslog_level(level), format, ap); +@@ -950,7 +950,7 @@ static int logfile_open(const char *name) + logfile = stdout; + } else if (!strcmp(name, "syslog")) { + openlog("ulogd", LOG_PID, LOG_DAEMON); +- logfile = &syslog_dummy; ++ logfile = syslog_dummy = fopen("/dev/null", "w"); + } else { + logfile = fopen(ulogd_logfile, "a"); + if (!logfile) { +@@ -1240,7 +1240,7 @@ static void sigterm_handler(int signal) + unload_plugins(); + #endif + +- if (logfile != NULL && logfile != stdout && logfile != &syslog_dummy) { ++ if (logfile != NULL && logfile != stdout) { + fclose(logfile); + logfile = NULL; + } +@@ -1262,7 +1262,7 @@ static void signal_handler(int signal) + switch (signal) { + case SIGHUP: + /* reopen logfile */ +- if (logfile != stdout && logfile != &syslog_dummy) { ++ if (logfile != stdout && logfile != syslog_dummy) { + fclose(logfile); + logfile = fopen(ulogd_logfile, "a"); + if (!logfile) { +-- +2.6.2 + diff --git a/bsp/buildroot/package/ulogd/0002-Define-_GNU_SOURCE-to-get-members-of-tcphdr.patch b/bsp/buildroot/package/ulogd/0002-Define-_GNU_SOURCE-to-get-members-of-tcphdr.patch new file mode 100644 index 00000000..0fbef834 --- /dev/null +++ b/bsp/buildroot/package/ulogd/0002-Define-_GNU_SOURCE-to-get-members-of-tcphdr.patch @@ -0,0 +1,44 @@ +From 89263555143e3c0125320ca565b41805f27460c9 Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Sat, 16 May 2015 15:44:32 +0200 +Subject: [PATCH] Define _GNU_SOURCE to get members of tcphdr + +The source uses linux names for members of tcphdr. For example +"source" instead of "th_sport", ... musl libc's headers need +_GNU_SOURCE defined in order to expose these. + +Signed-off-by: Felix Janda +[Rahul Bedarkar: Backported from https://git.netfilter.org/ulogd2/commit/?id=89263555143e3c0125320ca565b41805f27460c9] +Signed-off-by: Rahul Bedarkar +--- + filter/raw2packet/ulogd_raw2packet_BASE.c | 1 + + filter/ulogd_filter_PWSNIFF.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/filter/raw2packet/ulogd_raw2packet_BASE.c b/filter/raw2packet/ulogd_raw2packet_BASE.c +index c9d5227..ad894fc 100644 +--- a/filter/raw2packet/ulogd_raw2packet_BASE.c ++++ b/filter/raw2packet/ulogd_raw2packet_BASE.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#define _GNU_SOURCE + #include + #include + #include +diff --git a/filter/ulogd_filter_PWSNIFF.c b/filter/ulogd_filter_PWSNIFF.c +index 5169eee..a3e2b42 100644 +--- a/filter/ulogd_filter_PWSNIFF.c ++++ b/filter/ulogd_filter_PWSNIFF.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#define _GNU_SOURCE + #include + #include + +-- +2.6.2 + diff --git a/bsp/buildroot/package/ulogd/0003-Use-stdint-types-everywhere.patch b/bsp/buildroot/package/ulogd/0003-Use-stdint-types-everywhere.patch new file mode 100644 index 00000000..66408d6d --- /dev/null +++ b/bsp/buildroot/package/ulogd/0003-Use-stdint-types-everywhere.patch @@ -0,0 +1,792 @@ +From c9337b31f756cae85299c8275b21088ce02885e2 Mon Sep 17 00:00:00 2001 +From: Felix Janda +Date: Wed, 24 Jun 2015 19:53:34 +0200 +Subject: [PATCH] Use stdint types everywhere + +Signed-off-by: Felix Janda +[Rahul Bedarkar: + - backported from https://git.netfilter.org/ulogd2/commit/?id=c9337b31f756cae85299c8275b21088ce02885e2 + - remove hunk for output/ulogd_output_IPFIX.c as file doesn't exist in version we use] +Signed-off-by: Rahul Bedarkar +--- + filter/raw2packet/ulogd_raw2packet_BASE.c | 35 +++++++++++++------------- + filter/ulogd_filter_HWHDR.c | 6 ++--- + filter/ulogd_filter_IP2HBIN.c | 4 +-- + filter/ulogd_filter_IP2STR.c | 2 +- + filter/ulogd_filter_MARK.c | 4 +-- + filter/ulogd_filter_PWSNIFF.c | 4 +-- + include/libipulog/libipulog.h | 7 +++--- + include/ulogd/addr.h | 4 ++- + include/ulogd/conffile.h | 10 ++++---- + include/ulogd/ipfix_protocol.h | 38 +++++++++++++++------------- + include/ulogd/ulogd.h | 42 +++++++++++++++---------------- + input/packet/ulogd_inppkt_NFLOG.c | 16 ++++++------ + input/packet/ulogd_inppkt_UNIXSOCK.c | 34 ++++++++++++------------- + libipulog/libipulog.c | 8 +++--- + output/mysql/ulogd_output_MYSQL.c | 2 +- + output/ulogd_output_IPFIX.c | 20 +++++++-------- + src/addr.c | 4 +-- + util/db.c | 2 +- + util/printpkt.c | 6 ++--- + 19 files changed, 126 insertions(+), 122 deletions(-) + +diff --git a/filter/raw2packet/ulogd_raw2packet_BASE.c b/filter/raw2packet/ulogd_raw2packet_BASE.c +index ad894fc..8a6180c 100644 +--- a/filter/raw2packet/ulogd_raw2packet_BASE.c ++++ b/filter/raw2packet/ulogd_raw2packet_BASE.c +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + + enum input_keys { + INKEY_RAW_PCKT, +@@ -538,7 +539,7 @@ static struct ulogd_key iphdr_rets[] = { + ***********************************************************************/ + + static int _interp_tcp(struct ulogd_pluginstance *pi, struct tcphdr *tcph, +- u_int32_t len) ++ uint32_t len) + { + struct ulogd_key *ret = pi->output.keys; + +@@ -573,7 +574,7 @@ static int _interp_tcp(struct ulogd_pluginstance *pi, struct tcphdr *tcph, + ***********************************************************************/ + + static int _interp_udp(struct ulogd_pluginstance *pi, struct udphdr *udph, +- u_int32_t len) ++ uint32_t len) + + { + struct ulogd_key *ret = pi->output.keys; +@@ -602,7 +603,7 @@ typedef struct sctphdr { + } __attribute__((packed)) sctp_sctphdr_t; + + static int _interp_sctp(struct ulogd_pluginstance *pi, struct sctphdr *sctph, +- u_int32_t len) ++ uint32_t len) + + { + struct ulogd_key *ret = pi->output.keys; +@@ -625,7 +626,7 @@ static int _interp_sctp(struct ulogd_pluginstance *pi, struct sctphdr *sctph, + ***********************************************************************/ + + static int _interp_icmp(struct ulogd_pluginstance *pi, struct icmphdr *icmph, +- u_int32_t len) ++ uint32_t len) + { + struct ulogd_key *ret = pi->output.keys; + +@@ -663,7 +664,7 @@ static int _interp_icmp(struct ulogd_pluginstance *pi, struct icmphdr *icmph, + ***********************************************************************/ + + static int _interp_icmpv6(struct ulogd_pluginstance *pi, struct icmp6_hdr *icmph, +- u_int32_t len) ++ uint32_t len) + { + struct ulogd_key *ret = pi->output.keys; + +@@ -691,7 +692,7 @@ static int _interp_icmpv6(struct ulogd_pluginstance *pi, struct icmp6_hdr *icmph + * IPSEC HEADER + ***********************************************************************/ + static int _interp_ahesp(struct ulogd_pluginstance *pi, void *protoh, +- u_int32_t len) ++ uint32_t len) + { + #if 0 + struct ulogd_key *ret = pi->output.keys; +@@ -711,14 +712,14 @@ static int _interp_ahesp(struct ulogd_pluginstance *pi, void *protoh, + * IP HEADER + ***********************************************************************/ + +-static int _interp_iphdr(struct ulogd_pluginstance *pi, u_int32_t len) ++static int _interp_iphdr(struct ulogd_pluginstance *pi, uint32_t len) + { + struct ulogd_key *ret = pi->output.keys; + struct iphdr *iph = + ikey_get_ptr(&pi->input.keys[INKEY_RAW_PCKT]); +- void *nexthdr = (u_int32_t *)iph + iph->ihl; ++ void *nexthdr = (uint32_t *)iph + iph->ihl; + +- if (len < sizeof(struct iphdr) || len <= (u_int32_t)(iph->ihl * 4)) ++ if (len < sizeof(struct iphdr) || len <= (uint32_t)(iph->ihl * 4)) + return ULOGD_IRET_OK; + len -= iph->ihl * 4; + +@@ -759,7 +760,7 @@ static int _interp_iphdr(struct ulogd_pluginstance *pi, u_int32_t len) + * IPv6 HEADER + ***********************************************************************/ + +-static int ip6_ext_hdr(u_int8_t nexthdr) ++static int ip6_ext_hdr(uint8_t nexthdr) + { + switch (nexthdr) { + case IPPROTO_HOPOPTS: +@@ -774,12 +775,12 @@ static int ip6_ext_hdr(u_int8_t nexthdr) + } + } + +-static int _interp_ipv6hdr(struct ulogd_pluginstance *pi, u_int32_t len) ++static int _interp_ipv6hdr(struct ulogd_pluginstance *pi, uint32_t len) + { + struct ulogd_key *ret = pi->output.keys; + struct ip6_hdr *ipv6h = ikey_get_ptr(&pi->input.keys[INKEY_RAW_PCKT]); + unsigned int ptr, hdrlen = 0; +- u_int8_t curhdr; ++ uint8_t curhdr; + int fragment = 0; + + if (len < sizeof(struct ip6_hdr)) +@@ -889,7 +890,7 @@ out: + /*********************************************************************** + * ARP HEADER + ***********************************************************************/ +-static int _interp_arp(struct ulogd_pluginstance *pi, u_int32_t len) ++static int _interp_arp(struct ulogd_pluginstance *pi, uint32_t len) + { + struct ulogd_key *ret = pi->output.keys; + const struct ether_arp *arph = +@@ -914,9 +915,9 @@ static int _interp_arp(struct ulogd_pluginstance *pi, u_int32_t len) + * ETHER HEADER + ***********************************************************************/ + +-static int _interp_bridge(struct ulogd_pluginstance *pi, u_int32_t len) ++static int _interp_bridge(struct ulogd_pluginstance *pi, uint32_t len) + { +- const u_int16_t proto = ++ const uint16_t proto = + ikey_get_u16(&pi->input.keys[INKEY_OOB_PROTOCOL]); + + switch (proto) { +@@ -938,8 +939,8 @@ static int _interp_bridge(struct ulogd_pluginstance *pi, u_int32_t len) + + static int _interp_pkt(struct ulogd_pluginstance *pi) + { +- u_int32_t len = ikey_get_u32(&pi->input.keys[INKEY_RAW_PCKTLEN]); +- u_int8_t family = ikey_get_u8(&pi->input.keys[INKEY_OOB_FAMILY]); ++ uint32_t len = ikey_get_u32(&pi->input.keys[INKEY_RAW_PCKTLEN]); ++ uint8_t family = ikey_get_u8(&pi->input.keys[INKEY_OOB_FAMILY]); + struct ulogd_key *ret = pi->output.keys; + + okey_set_u16(&ret[KEY_OOB_PROTOCOL], +diff --git a/filter/ulogd_filter_HWHDR.c b/filter/ulogd_filter_HWHDR.c +index 3b095c9..10c95c4 100644 +--- a/filter/ulogd_filter_HWHDR.c ++++ b/filter/ulogd_filter_HWHDR.c +@@ -143,10 +143,10 @@ static void *hwhdr_get_daddr(struct ulogd_key *inp) + return ikey_get_ptr(&inp[KEY_RAW_MAC]); + } + +-static u_int16_t hwhdr_get_len(struct ulogd_key *inp) ++static uint16_t hwhdr_get_len(struct ulogd_key *inp) + { + void *len = ikey_get_ptr(&inp[KEY_RAW_MAC]) + 2 * ETH_ALEN; +- return ntohs(*(u_int16_t *) len); ++ return ntohs(*(uint16_t *) len); + } + static int parse_ethernet(struct ulogd_key *ret, struct ulogd_key *inp) + { +@@ -171,7 +171,7 @@ static int interp_mac2str(struct ulogd_pluginstance *pi) + { + struct ulogd_key *ret = pi->output.keys; + struct ulogd_key *inp = pi->input.keys; +- u_int16_t type = 0; ++ uint16_t type = 0; + + if (pp_is_valid(inp, KEY_OOB_PROTOCOL)) + okey_set_u16(&ret[KEY_MAC_PROTOCOL], +diff --git a/filter/ulogd_filter_IP2HBIN.c b/filter/ulogd_filter_IP2HBIN.c +index 4fd3ff1..087e824 100644 +--- a/filter/ulogd_filter_IP2HBIN.c ++++ b/filter/ulogd_filter_IP2HBIN.c +@@ -116,8 +116,8 @@ static int interp_ip2hbin(struct ulogd_pluginstance *pi) + { + struct ulogd_key *ret = pi->output.keys; + struct ulogd_key *inp = pi->input.keys; +- u_int8_t family = ikey_get_u8(&inp[KEY_OOB_FAMILY]); +- u_int8_t convfamily = family; ++ uint8_t family = ikey_get_u8(&inp[KEY_OOB_FAMILY]); ++ uint8_t convfamily = family; + int i; + + switch (family) { +diff --git a/filter/ulogd_filter_IP2STR.c b/filter/ulogd_filter_IP2STR.c +index 732e1ef..66324b0 100644 +--- a/filter/ulogd_filter_IP2STR.c ++++ b/filter/ulogd_filter_IP2STR.c +@@ -168,7 +168,7 @@ static int ip2str(struct ulogd_key *inp, int index, int oindex) + } + + switch (convfamily) { +- u_int32_t ip; ++ uint32_t ip; + case AF_INET6: + inet_ntop(AF_INET6, + ikey_get_u128(&inp[index]), +diff --git a/filter/ulogd_filter_MARK.c b/filter/ulogd_filter_MARK.c +index 7807f63..149725d 100644 +--- a/filter/ulogd_filter_MARK.c ++++ b/filter/ulogd_filter_MARK.c +@@ -73,14 +73,14 @@ static int interp_mark(struct ulogd_pluginstance *pi) + if (pp_is_valid(inp, KEY_CT_MARK)) { + if ((ikey_get_u32(&inp[KEY_CT_MARK]) & + pi->config_kset->ces[MARK_MASK].u.value) != +- (u_int32_t) pi->config_kset->ces[MARK_MARK].u.value ++ (uint32_t) pi->config_kset->ces[MARK_MARK].u.value + ) { + return ULOGD_IRET_STOP; + } + } else if (pp_is_valid(inp, KEY_OOB_MARK)) { + if ((ikey_get_u32(&inp[KEY_OOB_MARK]) & + pi->config_kset->ces[MARK_MASK].u.value) != +- (u_int32_t) pi->config_kset->ces[MARK_MARK].u.value ++ (uint32_t) pi->config_kset->ces[MARK_MARK].u.value + ) { + return ULOGD_IRET_STOP; + } +diff --git a/filter/ulogd_filter_PWSNIFF.c b/filter/ulogd_filter_PWSNIFF.c +index a3e2b42..934ff0e 100644 +--- a/filter/ulogd_filter_PWSNIFF.c ++++ b/filter/ulogd_filter_PWSNIFF.c +@@ -39,7 +39,7 @@ + #define PORT_POP3 110 + #define PORT_FTP 21 + +-static u_int16_t pwsniff_ports[] = { ++static uint16_t pwsniff_ports[] = { + PORT_POP3, + PORT_FTP, + /* feel free to include any other ports here, provided that their +@@ -72,7 +72,7 @@ static int interp_pwsniff(struct ulogd_pluginstance *pi) + return ULOGD_IRET_STOP; + + iph = (struct iphdr *) pi->input.keys[0].u.value.ptr; +- protoh = (u_int32_t *)iph + iph->ihl; ++ protoh = (uint32_t *)iph + iph->ihl; + tcph = protoh; + tcplen = ntohs(iph->tot_len) - iph->ihl * 4; + +diff --git a/include/libipulog/libipulog.h b/include/libipulog/libipulog.h +index b3c9616..21b4315 100644 +--- a/include/libipulog/libipulog.h ++++ b/include/libipulog/libipulog.h +@@ -4,10 +4,9 @@ + #include + #include + #include +-#include + #include + #include +-#include ++#include + #include + #include + #include +@@ -20,9 +19,9 @@ + struct ipulog_handle; + extern int ipulog_errno; + +-u_int32_t ipulog_group2gmask(u_int32_t group); ++uint32_t ipulog_group2gmask(uint32_t group); + +-struct ipulog_handle *ipulog_create_handle(u_int32_t gmask, u_int32_t rmem); ++struct ipulog_handle *ipulog_create_handle(uint32_t gmask, uint32_t rmem); + + void ipulog_destroy_handle(struct ipulog_handle *h); + +diff --git a/include/ulogd/addr.h b/include/ulogd/addr.h +index b4432e3..2259b6c 100644 +--- a/include/ulogd/addr.h ++++ b/include/ulogd/addr.h +@@ -8,7 +8,9 @@ + #ifndef _ADDR_H + #define _ADDR_H + +-u_int32_t ulogd_bits2netmask(int bits); ++#include ++ ++uint32_t ulogd_bits2netmask(int bits); + void ulogd_ipv6_cidr2mask_host(uint8_t cidr, uint32_t *res); + void ulogd_ipv6_addr2addr_host(uint32_t *addr, uint32_t *res); + +diff --git a/include/ulogd/conffile.h b/include/ulogd/conffile.h +index 69a6f70..1f3d563 100644 +--- a/include/ulogd/conffile.h ++++ b/include/ulogd/conffile.h +@@ -7,7 +7,7 @@ + #ifndef _CONFFILE_H + #define _CONFFILE_H + +-#include ++#include + + /* errors returned by config functions */ + enum { +@@ -45,10 +45,10 @@ enum { + + struct config_entry { + char key[CONFIG_KEY_LEN]; /* name of config directive */ +- u_int8_t type; /* type; see above */ +- u_int8_t options; /* options; see above */ +- u_int8_t hit; /* found? */ +- u_int8_t flag; /* tune setup of option */ ++ uint8_t type; /* type; see above */ ++ uint8_t options; /* options; see above */ ++ uint8_t hit; /* found? */ ++ uint8_t flag; /* tune setup of option */ + union { + char string[CONFIG_VAL_STRING_LEN]; + int value; +diff --git a/include/ulogd/ipfix_protocol.h b/include/ulogd/ipfix_protocol.h +index 5d7e46a..aef47f0 100644 +--- a/include/ulogd/ipfix_protocol.h ++++ b/include/ulogd/ipfix_protocol.h +@@ -1,6 +1,8 @@ + #ifndef _IPFIX_PROTOCOL_H + #define _IPFIX_PROTOCOL_H + ++#include ++ + /* This header file defines structures for the IPFIX protocol in accordance with + * draft-ietf-ipfix-protocol-19.txt */ + +@@ -11,29 +13,29 @@ + + /* Section 3.1 */ + struct ipfix_msg_hdr { +- u_int16_t version; +- u_int16_t length; +- u_int32_t export_time; +- u_int32_t seq; +- u_int32_t source_id; ++ uint16_t version; ++ uint16_t length; ++ uint32_t export_time; ++ uint32_t seq; ++ uint32_t source_id; + }; + + /* Section 3.4.1 */ + struct ipfix_templ_rec_hdr { +- u_int16_t templ_id; +- u_int16_t field_count; ++ uint16_t templ_id; ++ uint16_t field_count; + }; + + /* Section 3.2 */ + struct ipfix_ietf_field { +- u_int16_t type; +- u_int16_t length; ++ uint16_t type; ++ uint16_t length; + }; + + struct ipfix_vendor_field { +- u_int16_t type; +- u_int16_t length; +- u_int32_t enterprise_num; ++ uint16_t type; ++ uint16_t length; ++ uint32_t enterprise_num; + }; + + /* Information Element Identifiers as of draft-ietf-ipfix-info-11.txt */ +@@ -219,13 +221,13 @@ enum { + /* Information elements of the netfilter vendor id */ + enum { + IPFIX_NF_rawpacket = 1, /* pointer */ +- IPFIX_NF_rawpacket_length = 2, /* u_int32_t */ ++ IPFIX_NF_rawpacket_length = 2, /* uint32_t */ + IPFIX_NF_prefix = 3, /* string */ +- IPFIX_NF_mark = 4, /* u_int32_t */ +- IPFIX_NF_hook = 5, /* u_int8_t */ +- IPFIX_NF_conntrack_id = 6, /* u_int32_t */ +- IPFIX_NF_seq_local = 7, /* u_int32_t */ +- IPFIX_NF_seq_global = 8, /* u_int32_t */ ++ IPFIX_NF_mark = 4, /* uint32_t */ ++ IPFIX_NF_hook = 5, /* uint8_t */ ++ IPFIX_NF_conntrack_id = 6, /* uint32_t */ ++ IPFIX_NF_seq_local = 7, /* uint32_t */ ++ IPFIX_NF_seq_global = 8, /* uint32_t */ + }; + + #endif +diff --git a/include/ulogd/ulogd.h b/include/ulogd/ulogd.h +index cf26a15..2e38195 100644 +--- a/include/ulogd/ulogd.h ++++ b/include/ulogd/ulogd.h +@@ -85,17 +85,17 @@ enum ulogd_dtype { + /* structure describing an input / output parameter of a plugin */ + struct ulogd_key { + /* length of the returned value (only for lengthed types */ +- u_int32_t len; ++ uint32_t len; + /* type of the returned value (ULOGD_DTYPE_...) */ +- u_int16_t type; ++ uint16_t type; + /* flags (i.e. free, ...) */ +- u_int16_t flags; ++ uint16_t flags; + /* name of this key */ + char name[ULOGD_MAX_KEYLEN+1]; + /* IETF IPFIX attribute ID */ + struct { +- u_int32_t vendor; +- u_int16_t field_id; ++ uint32_t vendor; ++ uint16_t field_id; + } ipfix; + + /* Store field name for Common Information Model */ +@@ -104,12 +104,12 @@ struct ulogd_key { + union { + /* and finally the returned value */ + union { +- u_int8_t b; +- u_int8_t ui8; +- u_int16_t ui16; +- u_int32_t ui32; +- u_int64_t ui64; +- u_int32_t ui128[4]; ++ uint8_t b; ++ uint8_t ui8; ++ uint16_t ui16; ++ uint32_t ui32; ++ uint64_t ui64; ++ uint32_t ui128[4]; + int8_t i8; + int16_t i16; + int32_t i32; +@@ -130,31 +130,31 @@ struct ulogd_keyset { + unsigned int type; + }; + +-static inline void okey_set_b(struct ulogd_key *key, u_int8_t value) ++static inline void okey_set_b(struct ulogd_key *key, uint8_t value) + { + key->u.value.b = value; + key->flags |= ULOGD_RETF_VALID; + } + +-static inline void okey_set_u8(struct ulogd_key *key, u_int8_t value) ++static inline void okey_set_u8(struct ulogd_key *key, uint8_t value) + { + key->u.value.ui8 = value; + key->flags |= ULOGD_RETF_VALID; + } + +-static inline void okey_set_u16(struct ulogd_key *key, u_int16_t value) ++static inline void okey_set_u16(struct ulogd_key *key, uint16_t value) + { + key->u.value.ui16 = value; + key->flags |= ULOGD_RETF_VALID; + } + +-static inline void okey_set_u32(struct ulogd_key *key, u_int32_t value) ++static inline void okey_set_u32(struct ulogd_key *key, uint32_t value) + { + key->u.value.ui32 = value; + key->flags |= ULOGD_RETF_VALID; + } + +-static inline void okey_set_u64(struct ulogd_key *key, u_int64_t value) ++static inline void okey_set_u64(struct ulogd_key *key, uint64_t value) + { + key->u.value.ui64 = value; + key->flags |= ULOGD_RETF_VALID; +@@ -172,22 +172,22 @@ static inline void okey_set_ptr(struct ulogd_key *key, void *value) + key->flags |= ULOGD_RETF_VALID; + } + +-static inline u_int8_t ikey_get_u8(struct ulogd_key *key) ++static inline uint8_t ikey_get_u8(struct ulogd_key *key) + { + return key->u.source->u.value.ui8; + } + +-static inline u_int16_t ikey_get_u16(struct ulogd_key *key) ++static inline uint16_t ikey_get_u16(struct ulogd_key *key) + { + return key->u.source->u.value.ui16; + } + +-static inline u_int32_t ikey_get_u32(struct ulogd_key *key) ++static inline uint32_t ikey_get_u32(struct ulogd_key *key) + { + return key->u.source->u.value.ui32; + } + +-static inline u_int64_t ikey_get_u64(struct ulogd_key *key) ++static inline uint64_t ikey_get_u64(struct ulogd_key *key) + { + return key->u.source->u.value.ui64; + } +@@ -292,7 +292,7 @@ void ulogd_propagate_results(struct ulogd_pluginstance *pi); + void ulogd_register_plugin(struct ulogd_plugin *me); + + /* allocate a new ulogd_key */ +-struct ulogd_key *alloc_ret(const u_int16_t type, const char*); ++struct ulogd_key *alloc_ret(const uint16_t type, const char*); + + /* write a message to the daemons' logfile */ + void __ulogd_log(int level, char *file, int line, const char *message, ...); +diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c +index 6196626..a367959 100644 +--- a/input/packet/ulogd_inppkt_NFLOG.c ++++ b/input/packet/ulogd_inppkt_NFLOG.c +@@ -315,7 +315,7 @@ static struct ulogd_key output_keys[] = { + }; + + static inline int +-interp_packet(struct ulogd_pluginstance *upi, u_int8_t pf_family, ++interp_packet(struct ulogd_pluginstance *upi, uint8_t pf_family, + struct nflog_data *ldata) + { + struct ulogd_key *ret = upi->output.keys; +@@ -326,12 +326,12 @@ interp_packet(struct ulogd_pluginstance *upi, u_int8_t pf_family, + int payload_len = nflog_get_payload(ldata, &payload); + char *prefix = nflog_get_prefix(ldata); + struct timeval ts; +- u_int32_t mark = nflog_get_nfmark(ldata); +- u_int32_t indev = nflog_get_indev(ldata); +- u_int32_t outdev = nflog_get_outdev(ldata); +- u_int32_t seq; +- u_int32_t uid; +- u_int32_t gid; ++ uint32_t mark = nflog_get_nfmark(ldata); ++ uint32_t indev = nflog_get_indev(ldata); ++ uint32_t outdev = nflog_get_outdev(ldata); ++ uint32_t seq; ++ uint32_t uid; ++ uint32_t gid; + + okey_set_u8(&ret[NFLOG_KEY_OOB_FAMILY], + pf_family); +@@ -493,7 +493,7 @@ static int configure(struct ulogd_pluginstance *upi, + return 0; + } + +-static int become_system_logging(struct ulogd_pluginstance *upi, u_int8_t pf) ++static int become_system_logging(struct ulogd_pluginstance *upi, uint8_t pf) + { + struct nflog_input *ui = (struct nflog_input *) upi->private; + +diff --git a/input/packet/ulogd_inppkt_UNIXSOCK.c b/input/packet/ulogd_inppkt_UNIXSOCK.c +index e4009f3..39944bf 100644 +--- a/input/packet/ulogd_inppkt_UNIXSOCK.c ++++ b/input/packet/ulogd_inppkt_UNIXSOCK.c +@@ -336,10 +336,10 @@ enum ulogd2_option_type { + ULOGD2_OPT_PREFIX, /* log prefix (string) */ + ULOGD2_OPT_OOB_IN, /* input device (string) */ + ULOGD2_OPT_OOB_OUT, /* output device (string) */ +- ULOGD2_OPT_OOB_TIME_SEC, /* packet arrival time (u_int32_t) */ ++ ULOGD2_OPT_OOB_TIME_SEC, /* packet arrival time (uint32_t) */ + + ULOGD2_OPT_USER=200, /* user name (string) */ +- ULOGD2_OPT_USERID, /* user id (u_int32_t) */ ++ ULOGD2_OPT_USERID, /* user id (uint32_t) */ + ULOGD2_OPT_OSNAME, /* OS name (string) */ + ULOGD2_OPT_OSREL, /* OS release (string) */ + ULOGD2_OPT_OSVERS, /* OS version (string) */ +@@ -367,15 +367,15 @@ struct ulogd_unixsock_option_t { + #define USOCK_ALIGNTO 8 + #define USOCK_ALIGN(len) ( ((len)+USOCK_ALIGNTO-1) & ~(USOCK_ALIGNTO-1) ) + +-static int handle_packet(struct ulogd_pluginstance *upi, struct ulogd_unixsock_packet_t *pkt, u_int16_t total_len) ++static int handle_packet(struct ulogd_pluginstance *upi, struct ulogd_unixsock_packet_t *pkt, uint16_t total_len) + { + char *data = NULL; + struct iphdr *ip; + struct ulogd_key *ret = upi->output.keys; +- u_int8_t oob_family; +- u_int16_t payload_len; +- u_int32_t option_number; +- u_int32_t option_length; ++ uint8_t oob_family; ++ uint16_t payload_len; ++ uint32_t option_number; ++ uint32_t option_length; + char *buf; + struct ulogd_unixsock_option_t *option; + int new_offset; +@@ -398,7 +398,7 @@ static int handle_packet(struct ulogd_pluginstance *upi, struct ulogd_unixsock_p + okey_set_u32(&ret[UNIXSOCK_KEY_RAW_PCKTLEN], payload_len); + + /* options */ +- if (total_len > payload_len + sizeof(u_int16_t)) { ++ if (total_len > payload_len + sizeof(uint16_t)) { + /* option starts at the next aligned address after the payload */ + new_offset = USOCK_ALIGN(payload_len); + options_start = (void*)ip + new_offset; +@@ -431,13 +431,13 @@ static int handle_packet(struct ulogd_pluginstance *upi, struct ulogd_unixsock_p + okey_set_ptr(&ret[UNIXSOCK_KEY_OOB_OUT], buf); + break; + case ULOGD2_OPT_OOB_TIME_SEC: +- okey_set_u32(&ret[UNIXSOCK_KEY_OOB_TIME_SEC], *(u_int32_t*)buf); ++ okey_set_u32(&ret[UNIXSOCK_KEY_OOB_TIME_SEC], *(uint32_t*)buf); + break; + case ULOGD2_OPT_USER: + okey_set_ptr(&ret[UNIXSOCK_KEY_NUFW_USER_NAME], buf); + break; + case ULOGD2_OPT_USERID: +- okey_set_u32(&ret[UNIXSOCK_KEY_NUFW_USER_ID], *(u_int32_t*)buf); ++ okey_set_u32(&ret[UNIXSOCK_KEY_NUFW_USER_ID], *(uint32_t*)buf); + break; + case ULOGD2_OPT_OSNAME: + okey_set_ptr(&ret[UNIXSOCK_KEY_NUFW_OS_NAME], buf); +@@ -452,7 +452,7 @@ static int handle_packet(struct ulogd_pluginstance *upi, struct ulogd_unixsock_p + okey_set_ptr(&ret[UNIXSOCK_KEY_NUFW_APP_NAME], buf); + break; + case ULOGD2_OPT_STATE: +- okey_set_u8(&ret[UNIXSOCK_KEY_RAW_LABEL], *(u_int8_t*)buf); ++ okey_set_u8(&ret[UNIXSOCK_KEY_RAW_LABEL], *(uint8_t*)buf); + break; + default: + ulogd_log(ULOGD_NOTICE, +@@ -595,8 +595,8 @@ static int unixsock_instance_read_cb(int fd, unsigned int what, void *param) + struct ulogd_pluginstance *upi = param; + struct unixsock_input *ui = (struct unixsock_input*)upi->private; + int len; +- u_int16_t needed_len; +- u_int32_t packet_sig; ++ uint16_t needed_len; ++ uint32_t packet_sig; + struct ulogd_unixsock_packet_t *unixsock_packet; + + char buf[4096]; +@@ -642,7 +642,7 @@ static int unixsock_instance_read_cb(int fd, unsigned int what, void *param) + + needed_len = ntohs(unixsock_packet->total_size); + +- if (ui->unixsock_buf_avail >= needed_len + sizeof(u_int32_t)) { ++ if (ui->unixsock_buf_avail >= needed_len + sizeof(uint32_t)) { + ulogd_log(ULOGD_DEBUG, + " We have enough data (%d bytes required), handling packet\n", + needed_len); +@@ -651,11 +651,11 @@ static int unixsock_instance_read_cb(int fd, unsigned int what, void *param) + return -1; + } + /* consume data */ +- ui->unixsock_buf_avail -= (sizeof(u_int32_t) + needed_len); ++ ui->unixsock_buf_avail -= (sizeof(uint32_t) + needed_len); + if (ui->unixsock_buf_avail > 0) { + /* we need to shift data .. */ + memmove(ui->unixsock_buf, +- ui->unixsock_buf + (sizeof(u_int32_t) + needed_len) , ++ ui->unixsock_buf + (sizeof(uint32_t) + needed_len) , + ui->unixsock_buf_avail); + } else { + /* input buffer is empty, do not loop */ +@@ -664,7 +664,7 @@ static int unixsock_instance_read_cb(int fd, unsigned int what, void *param) + + } else { + ulogd_log(ULOGD_DEBUG, " We have %d bytes, but need %d. Requesting more\n", +- ui->unixsock_buf_avail, needed_len + sizeof(u_int32_t)); ++ ui->unixsock_buf_avail, needed_len + sizeof(uint32_t)); + return 0; + } + +diff --git a/libipulog/libipulog.c b/libipulog/libipulog.c +index ab28bb4..b49f7f2 100644 +--- a/libipulog/libipulog.c ++++ b/libipulog/libipulog.c +@@ -33,7 +33,7 @@ + struct ipulog_handle + { + int fd; +- u_int8_t blocking; ++ uint8_t blocking; + struct sockaddr_nl local; + struct sockaddr_nl peer; + struct nlmsghdr* last_nlhdr; +@@ -112,7 +112,7 @@ char *ipulog_strerror(int errcode) + } + + /* convert a netlink group (1-32) to a group_mask suitable for create_handle */ +-u_int32_t ipulog_group2gmask(u_int32_t group) ++uint32_t ipulog_group2gmask(uint32_t group) + { + if (group < 1 || group > 32) + { +@@ -123,8 +123,8 @@ u_int32_t ipulog_group2gmask(u_int32_t group) + } + + /* create a ipulog handle for the reception of packets sent to gmask */ +-struct ipulog_handle *ipulog_create_handle(u_int32_t gmask, +- u_int32_t rcvbufsize) ++struct ipulog_handle *ipulog_create_handle(uint32_t gmask, ++ uint32_t rcvbufsize) + { + struct ipulog_handle *h; + int status; +diff --git a/output/mysql/ulogd_output_MYSQL.c b/output/mysql/ulogd_output_MYSQL.c +index 0a1ebfc..643320c 100644 +--- a/output/mysql/ulogd_output_MYSQL.c ++++ b/output/mysql/ulogd_output_MYSQL.c +@@ -174,7 +174,7 @@ static int open_db_mysql(struct ulogd_pluginstance *upi) + struct mysql_instance *mi = (struct mysql_instance *) upi->private; + unsigned int connect_timeout = timeout_ce(upi->config_kset).u.value; + char *server = host_ce(upi->config_kset).u.string; +- u_int16_t port = port_ce(upi->config_kset).u.value; ++ uint16_t port = port_ce(upi->config_kset).u.value; + char *user = user_ce(upi->config_kset).u.string; + char *pass = pass_ce(upi->config_kset).u.string; + char *db = db_ce(upi->config_kset).u.string; +diff --git a/src/addr.c b/src/addr.c +index 2672fab..41435dc 100644 +--- a/src/addr.c ++++ b/src/addr.c +@@ -22,9 +22,9 @@ + #include + #include + +-u_int32_t ulogd_bits2netmask(int bits) ++uint32_t ulogd_bits2netmask(int bits) + { +- u_int32_t netmask, bm; ++ uint32_t netmask, bm; + + if (bits >= 32 || bits < 0) + return(~0); +diff --git a/util/db.c b/util/db.c +index 24966a5..c9aec41 100644 +--- a/util/db.c ++++ b/util/db.c +@@ -362,7 +362,7 @@ static void __format_query_db(struct ulogd_pluginstance *upi, char *start) + sprintf(stmt_ins, "%u,", res->u.value.ui16); + break; + case ULOGD_RET_IPADDR: +- /* fallthrough when logging IP as u_int32_t */ ++ /* fallthrough when logging IP as uint32_t */ + case ULOGD_RET_UINT32: + sprintf(stmt_ins, "%u,", res->u.value.ui32); + break; +diff --git a/util/printpkt.c b/util/printpkt.c +index eb6cfbf..69a47ca 100644 +--- a/util/printpkt.c ++++ b/util/printpkt.c +@@ -199,7 +199,7 @@ static int printpkt_ipv4(struct ulogd_key *res, char *buf) + { + char *buf_cur = buf; + char tmp[INET_ADDRSTRLEN]; +- u_int32_t paddr; ++ uint32_t paddr; + + if (pp_is_valid(res, KEY_IP_SADDR)) + buf_cur += sprintf(buf_cur, "SRC=%s ", +@@ -363,8 +363,8 @@ static int printpkt_ipv6(struct ulogd_key *res, char *buf) + int printpkt_arp(struct ulogd_key *res, char *buf) + { + char *buf_cur = buf; +- u_int16_t code = 0; +- u_int8_t *mac; ++ uint16_t code = 0; ++ uint8_t *mac; + + if (pp_is_valid(res, KEY_ARP_SPA)) + buf_cur += sprintf(buf_cur, "SRC=%s ", +-- +2.6.2 + diff --git a/bsp/buildroot/package/unrar/unrar.hash b/bsp/buildroot/package/unrar/unrar.hash index 4490d70f..e6a146c0 100644 --- a/bsp/buildroot/package/unrar/unrar.hash +++ b/bsp/buildroot/package/unrar/unrar.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 ff593728aed0ac865908b8ea52cff449a4c298f095db2f3d27438ffbc3e35d5b unrarsrc-5.3.9.tar.gz +sha256 e4f05190d9e379449a04c22baffc24cc2f03164a4738befe601b1325440db0c6 unrarsrc-5.4.3.tar.gz diff --git a/bsp/buildroot/package/unrar/unrar.mk b/bsp/buildroot/package/unrar/unrar.mk index 89dff9bb..e49fe6c3 100644 --- a/bsp/buildroot/package/unrar/unrar.mk +++ b/bsp/buildroot/package/unrar/unrar.mk @@ -4,7 +4,7 @@ # ################################################################################ -UNRAR_VERSION = 5.3.9 +UNRAR_VERSION = 5.4.3 UNRAR_SOURCE = unrarsrc-$(UNRAR_VERSION).tar.gz UNRAR_SITE = http://www.rarlab.com/rar UNRAR_LICENSE = unrar diff --git a/bsp/buildroot/package/unscd/Config.in b/bsp/buildroot/package/unscd/Config.in index e979c301..23cc5a4f 100644 --- a/bsp/buildroot/package/unscd/Config.in +++ b/bsp/buildroot/package/unscd/Config.in @@ -21,5 +21,5 @@ config BR2_PACKAGE_UNSCD http://busybox.net/~vda/unscd -comment "unscd needs an (e)glibc toolchain" +comment "unscd needs a glibc toolchain" depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/unzip/Config.in b/bsp/buildroot/package/unzip/Config.in index 0d98d287..da6902e4 100644 --- a/bsp/buildroot/package/unzip/Config.in +++ b/bsp/buildroot/package/unzip/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_UNZIP bool "unzip" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help UnZip is an extraction utility for archives compressed in .zip format (also called "zipfiles"). Although highly diff --git a/bsp/buildroot/package/upmpdcli/Config.in b/bsp/buildroot/package/upmpdcli/Config.in index 15020953..e17330c8 100644 --- a/bsp/buildroot/package/upmpdcli/Config.in +++ b/bsp/buildroot/package/upmpdcli/Config.in @@ -1,12 +1,11 @@ config BR2_PACKAGE_UPMPDCLI bool "upmpdcli" - select BR2_PACKAGE_LIBMPDCLIENT - select BR2_PACKAGE_LIBUPNPP + depends on BR2_USE_MMU # fork() depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # libupnpp -> libupnp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 - # libupnpp triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII + select BR2_PACKAGE_LIBMPDCLIENT + select BR2_PACKAGE_LIBUPNPP help upmpdcli is a UPnP Media Renderer front-end for MPD, the Music Player Daemon. It supports UPnP gapless track transitions and @@ -15,5 +14,5 @@ config BR2_PACKAGE_UPMPDCLI http://www.lesbonscomptes.com/upmpdcli/ comment "upmpdcli needs a toolchain w/ C++, threads, gcc >= 4.6" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII + depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 diff --git a/bsp/buildroot/package/upmpdcli/upmpdcli.hash b/bsp/buildroot/package/upmpdcli/upmpdcli.hash index 5a6c47ae..27a75cc0 100644 --- a/bsp/buildroot/package/upmpdcli/upmpdcli.hash +++ b/bsp/buildroot/package/upmpdcli/upmpdcli.hash @@ -1,2 +1,2 @@ -# Hashes from: http://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-0.13.1.tar.gz.sha256 -sha256 86f964e49b0288a4d660aa4ad83576d83aad7c354df67d3aa8e324e8912876e0 upmpdcli-0.13.1.tar.gz +# Hashes from: http://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-1.1.3.tar.gz.sha256 +sha256 2df3e6593f18c097b6247fb8da919b94701bf083b219056b006d68e6dcef75b5 upmpdcli-1.1.3.tar.gz diff --git a/bsp/buildroot/package/upmpdcli/upmpdcli.mk b/bsp/buildroot/package/upmpdcli/upmpdcli.mk index ba5bbb2b..1a7c790c 100644 --- a/bsp/buildroot/package/upmpdcli/upmpdcli.mk +++ b/bsp/buildroot/package/upmpdcli/upmpdcli.mk @@ -4,7 +4,7 @@ # ################################################################################ -UPMPDCLI_VERSION = 0.13.1 +UPMPDCLI_VERSION = 1.1.3 UPMPDCLI_SITE = http://www.lesbonscomptes.com/upmpdcli/downloads UPMPDCLI_LICENSE = GPLv2+ UPMPDCLI_LICENSE_FILES = COPYING @@ -40,7 +40,7 @@ define UPMPDCLI_INSTALL_INIT_SYSTEMD endef define UPMPDCLI_INSTALL_CONF_FILE - $(INSTALL) -D -m 0755 $(@D)/src/upmpdcli.conf $(TARGET_DIR)/etc/upmpdcli.conf + $(INSTALL) -D -m 0755 $(@D)/src/upmpdcli.conf-dist $(TARGET_DIR)/etc/upmpdcli.conf endef UPMPDCLI_POST_INSTALL_TARGET_HOOKS += UPMPDCLI_INSTALL_CONF_FILE diff --git a/bsp/buildroot/package/upx/upx.mk b/bsp/buildroot/package/upx/upx.mk index 400d2832..eaef2759 100644 --- a/bsp/buildroot/package/upx/upx.mk +++ b/bsp/buildroot/package/upx/upx.mk @@ -17,6 +17,7 @@ HOST_UPX_DEPENDENCIES = host-ucl host-zlib define HOST_UPX_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) CPPFLAGS="$(HOST_CPPFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" UPX_UCLDIR=$(HOST_DIR)/usr \ + CXXFLAGS_WERROR= \ -C $(@D) all endef diff --git a/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.hash b/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.hash index 2033d311..075ef63b 100644 --- a/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.hash +++ b/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 7ee42be2fe26dde20c58f54bf678fb136d2706250e4aa74f06fc97268a46e90f usb-modeswitch-2.2.6.tar.bz2 +sha256 f93e940c2eb0c585a5d2210177338e68a9b24f409e351e4a854132453246b894 usb-modeswitch-2.3.0.tar.bz2 diff --git a/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.mk b/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.mk index aca13e4f..ac41a80c 100644 --- a/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.mk +++ b/bsp/buildroot/package/usb_modeswitch/usb_modeswitch.mk @@ -4,7 +4,7 @@ # ################################################################################ -USB_MODESWITCH_VERSION = 2.2.6 +USB_MODESWITCH_VERSION = 2.3.0 USB_MODESWITCH_SOURCE = usb-modeswitch-$(USB_MODESWITCH_VERSION).tar.bz2 USB_MODESWITCH_SITE = http://www.draisberghof.de/usb_modeswitch USB_MODESWITCH_DEPENDENCIES = libusb diff --git a/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.hash b/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.hash index 05a54452..0df5475e 100644 --- a/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.hash +++ b/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 584d362bc0060c02016edaac7b05ebd6558d5dcbdf14f1ae6d0ec9630265a982 usb-modeswitch-data-20151101.tar.bz2 +sha256 d679a44a48b1d1f243fea6b4d2bd54e0e08010ff579dd81eaf698954c0c6dfa7 usb-modeswitch-data-20160112.tar.bz2 diff --git a/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.mk b/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.mk index d8d56223..a0cbc126 100644 --- a/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.mk +++ b/bsp/buildroot/package/usb_modeswitch_data/usb_modeswitch_data.mk @@ -4,7 +4,7 @@ # ################################################################################ -USB_MODESWITCH_DATA_VERSION = 20151101 +USB_MODESWITCH_DATA_VERSION = 20160112 USB_MODESWITCH_DATA_SOURCE = usb-modeswitch-data-$(USB_MODESWITCH_DATA_VERSION).tar.bz2 USB_MODESWITCH_DATA_SITE = http://www.draisberghof.de/usb_modeswitch USB_MODESWITCH_DATA_DEPENDENCIES = usb_modeswitch diff --git a/bsp/buildroot/package/usbredir/usbredir.hash b/bsp/buildroot/package/usbredir/usbredir.hash index 8328bb59..9ba11771 100644 --- a/bsp/buildroot/package/usbredir/usbredir.hash +++ b/bsp/buildroot/package/usbredir/usbredir.hash @@ -1,2 +1,2 @@ # locally computed hash -sha256 028184960044ea4124030000b3c55a35c3238835116e3a0fbcaff449df2c8edf usbredir-0.6.tar.bz2 +sha256 407e9e27a1369f01264d5501ffbe88935ddd7d5de675f5835db05dc9c9ac56f3 usbredir-0.7.1.tar.bz2 diff --git a/bsp/buildroot/package/usbredir/usbredir.mk b/bsp/buildroot/package/usbredir/usbredir.mk index dc87321b..926a1fff 100644 --- a/bsp/buildroot/package/usbredir/usbredir.mk +++ b/bsp/buildroot/package/usbredir/usbredir.mk @@ -4,7 +4,7 @@ # ################################################################################ -USBREDIR_VERSION = 0.6 +USBREDIR_VERSION = 0.7.1 USBREDIR_SOURCE = usbredir-$(USBREDIR_VERSION).tar.bz2 USBREDIR_SITE = http://spice-space.org/download/usbredir USBREDIR_LICENSE = LGPLv2.1+ diff --git a/bsp/buildroot/package/ustr/Config.in b/bsp/buildroot/package/ustr/Config.in index 0d9c272b..9d6561c3 100644 --- a/bsp/buildroot/package/ustr/Config.in +++ b/bsp/buildroot/package/ustr/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_USTR bool "ustr" # unconditionally builds a shared library depends on !BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_USES_MUSL # broken vsnprintf detection help A small, safe string library. @@ -9,3 +10,4 @@ config BR2_PACKAGE_USTR comment "ustr needs a toolchain w/ dynamic library" depends on BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/ustr/ustr.mk b/bsp/buildroot/package/ustr/ustr.mk index 174f0556..1d629ab8 100644 --- a/bsp/buildroot/package/ustr/ustr.mk +++ b/bsp/buildroot/package/ustr/ustr.mk @@ -23,5 +23,7 @@ USTR_INSTALL_STAGING = YES # 'all-shared' to the default 'all' rule. USTR_MAKE_OPTS = all all-shared +USTR_MAKE_OPTS += LDCONFIG=/bin/true + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/util-linux/0001-build-sys-fix-uClibc-ng-scanf-check.patch b/bsp/buildroot/package/util-linux/0001-build-sys-fix-uClibc-ng-scanf-check.patch new file mode 100644 index 00000000..801b72b2 --- /dev/null +++ b/bsp/buildroot/package/util-linux/0001-build-sys-fix-uClibc-ng-scanf-check.patch @@ -0,0 +1,34 @@ +From bac7fbdb2d141879526ca4342d56d2c749ba8af5 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Fri, 3 Jun 2016 04:23:28 +0200 +Subject: [PATCH] build-sys: fix uClibc-ng scanf check + +uClibc-ng tries to be compatible with GNU libc and defines +__GLIBC__ and pretend to be version 2.2. +We once changed it to 2.10, but then some hard to fix problems +in different software packages (gcc) occured. +It would be better if we disable the special GNU libc checks +for uClibc-ng here. uClibc-ng implements the required scanf +functionality. + +Signed-off-by: Waldemar Brodkorb +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 3ba723f..ec197ee 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -581,7 +581,7 @@ AC_CACHE_VAL([scanf_cv_alloc_modifier], + #include + #include + +- #ifdef __GLIBC__ ++ #if defined(__GLIBC__) && !defined(__UCLIBC__) + + #if !(__GLIBC_PREREQ(2, 7)) + #error %m is not available +-- +2.1.4 + diff --git a/bsp/buildroot/package/util-linux/0001-sscanf-no-ms-as.patch b/bsp/buildroot/package/util-linux/0001-sscanf-no-ms-as.patch deleted file mode 100644 index 81b2be5e..00000000 --- a/bsp/buildroot/package/util-linux/0001-sscanf-no-ms-as.patch +++ /dev/null @@ -1,141 +0,0 @@ -Fix libmount build under uClibc - -See https://bugs.gentoo.org/show_bug.cgi?id=406303 -http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/util-linux/files/util-linux-2.21.1-no-printf-alloc.patch?revision=1.2 - -[Gustavo: Ported to util-linux-2.26] - -Signed-off-by: Gustavo Zacarias - -diff -Nura util-linux-2.26.orig/configure.ac util-linux-2.26/configure.ac ---- util-linux-2.26.orig/configure.ac 2015-02-19 09:11:13.146192401 -0300 -+++ util-linux-2.26/configure.ac 2015-02-20 08:13:32.740006582 -0300 -@@ -840,7 +840,6 @@ - ) - UL_BUILD_INIT([libmount]) - UL_REQUIRES_BUILD([libmount], [libblkid]) --UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier]) - AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes]) - AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes]) - -diff -Nura util-linux-2.26.orig/libmount/src/tab_parse.c util-linux-2.26/libmount/src/tab_parse.c ---- util-linux-2.26.orig/libmount/src/tab_parse.c 2015-02-16 09:57:34.070017496 -0300 -+++ util-linux-2.26/libmount/src/tab_parse.c 2015-02-20 08:13:32.741006617 -0300 -@@ -22,6 +22,10 @@ - #include "pathnames.h" - #include "strutils.h" - -+#ifndef HAVE_SCANF_MS_MODIFIER -+# define UL_SCNsA "%s" -+#endif -+ - static int next_number(char **s, int *num) - { - char *end = NULL; -@@ -52,16 +56,31 @@ - int rc, n = 0, xrc; - char *src = NULL, *fstype = NULL, *optstr = NULL; - -+#ifndef HAVE_SCANF_MS_MODIFIER -+ size_t len = strlen(s) + 1; -+ src = malloc(len); -+ fstype = malloc(len); -+ fs->target = malloc(len); -+ optstr = malloc(len); -+#endif -+ - rc = sscanf(s, UL_SCNsA" " /* (1) source */ - UL_SCNsA" " /* (2) target */ - UL_SCNsA" " /* (3) FS type */ - UL_SCNsA" " /* (4) options */ - "%n", /* byte count */ - -+#ifdef HAVE_SCANF_MS_MODIFIER - &src, - &fs->target, - &fstype, - &optstr, -+#else -+ src, -+ fs->target, -+ fstype, -+ optstr, -+#endif - &n); - xrc = rc; - -@@ -127,6 +146,16 @@ - unsigned int maj, min; - char *fstype = NULL, *src = NULL, *p; - -+#ifndef HAVE_SCANF_MS_MODIFIER -+ size_t len = strlen(s) + 1; -+ fs->root = malloc(len); -+ fs->target = malloc(len); -+ fs->vfs_optstr = malloc(len); -+ fs->fs_optstr = malloc(len); -+ fstype = malloc(len); -+ src = malloc(len); -+#endif -+ - rc = sscanf(s, "%d " /* (1) id */ - "%d " /* (2) parent */ - "%u:%u " /* (3) maj:min */ -@@ -138,9 +167,15 @@ - &fs->id, - &fs->parent, - &maj, &min, -+#ifdef HAVE_SCANF_MS_MODIFIER - &fs->root, - &fs->target, - &fs->vfs_optstr, -+#else -+ fs->root, -+ fs->target, -+ fs->vfs_optstr, -+#endif - &end); - - if (rc >= 7 && end > 0) -@@ -160,9 +195,15 @@ - UL_SCNsA" " /* (9) source */ - UL_SCNsA, /* (10) fs options (fs specific) */ - -+#ifdef HAVE_SCANF_MS_MODIFIER - &fstype, - &src, - &fs->fs_optstr); -+#else -+ fstype, -+ src, -+ fs->fs_optstr); -+#endif - - if (rc >= 10) { - size_t sz; -@@ -281,14 +322,25 @@ - int rc; - char *src = NULL; - -+#ifndef HAVE_SCANF_MS_MODIFIER -+ size_t len = strlen(s) + 1; -+ src = malloc(len); -+ fs->swaptype = malloc(len); -+#endif -+ - rc = sscanf(s, UL_SCNsA" " /* (1) source */ - UL_SCNsA" " /* (2) type */ - "%ju" /* (3) size */ - "%ju" /* (4) used */ - "%d", /* priority */ - -+#ifdef HAVE_SCANF_MS_MODIFIER - &src, - &fs->swaptype, -+#else -+ src, -+ fs->swaptype, -+#endif - &fsz, - &usz, - &fs->priority); diff --git a/bsp/buildroot/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch b/bsp/buildroot/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch deleted file mode 100644 index 0dfe7bef..00000000 --- a/bsp/buildroot/package/util-linux/0003-c.h-define-mkostemp-for-older-version-of-uClibc.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 42a84250fc78bae3e885ecd1379e713663fe6487 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Sun, 6 Apr 2014 12:12:41 +0200 -Subject: [PATCH 1/1] c.h: define mkostemp for older version of uClibc - -Signed-off-by: Romain Naour ---- - configure.ac | 2 ++ - include/c.h | 14 ++++++++++++++ - 2 files changed, 16 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 35a1f26..a9b8d34 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -321,6 +321,8 @@ AC_CHECK_FUNCS([ \ - ]) - AC_FUNC_FSEEKO - -+AC_CHECK_FUNCS([mkostemp]) -+ - AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no]) - AC_CHECK_FUNCS([ioperm iopl], [have_io=yes]) - -diff --git a/include/c.h b/include/c.h -index 4a9bf3d..1b880ed 100644 ---- a/include/c.h -+++ b/include/c.h -@@ -300,4 +300,18 @@ static inline int usleep(useconds_t usec) - # define SEEK_HOLE 4 - #endif - -+/* -+ * mkostemp() may be missing with older version of uClibc -+ */ -+#ifndef HAVE_MKOSTEMP -+static inline int mkostemp(char *template, int flags) -+{ -+ int fd; -+ fd = mkstemp(template); -+ if (flags & O_CLOEXEC && fd >= 0) -+ fcntl(fd, F_SETFD, FD_CLOEXEC); -+ return fd; -+} -+#endif -+ - #endif /* UTIL_LINUX_C_H */ --- -1.9.0 - diff --git a/bsp/buildroot/package/util-linux/0004-vipw-Remove-pre-ANSI-compiler-support.patch b/bsp/buildroot/package/util-linux/0004-vipw-Remove-pre-ANSI-compiler-support.patch deleted file mode 100644 index 3a0c42ab..00000000 --- a/bsp/buildroot/package/util-linux/0004-vipw-Remove-pre-ANSI-compiler-support.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9ce534491aea9b7975cfee5064423d0b850d8002 Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Sun, 9 Aug 2015 11:20:00 +0200 -Subject: [PATCH] vipw: Remove pre-ANSI compiler support - -__P() is used for compatibility with old K&R C compilers. With -ANSI C this macro has no effect. - -This fixes a compilation error with musl libc because of undeclared -__P. - -Ref: -https://lists.samba.org/archive/samba-technical/2015-June/108042.html - -Signed-off-by: Romain Naour ---- - login-utils/vipw.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/login-utils/vipw.c b/login-utils/vipw.c -index 668f4d8..e4c803b 100644 ---- a/login-utils/vipw.c -+++ b/login-utils/vipw.c -@@ -85,7 +85,7 @@ int program; - char orig_file[FILENAMELEN]; /* original file /etc/passwd or /etc/group */ - char *tmp_file; /* tmp file */ - --void pw_error __P((char *, int, int)); -+void pw_error (char *, int, int); - - static void copyfile(int from, int to) - { --- -2.4.3 - diff --git a/bsp/buildroot/package/util-linux/0005-build-sys-use-REALTIME_LIBS.patch b/bsp/buildroot/package/util-linux/0005-build-sys-use-REALTIME_LIBS.patch deleted file mode 100644 index 6402ef5c..00000000 --- a/bsp/buildroot/package/util-linux/0005-build-sys-use-REALTIME_LIBS.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9ed54668c15534a3b9d75e8a3e90b72ea426e596 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Fri, 9 Oct 2015 11:31:49 +0200 -Subject: [PATCH] build-sys: use REALTIME_LIBS - -Signed-off-by: Karel Zak ---- - misc-utils/Makemodule.am | 2 +- - sys-utils/Makemodule.am | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am -index e801611..b96d18b 100644 ---- a/misc-utils/Makemodule.am -+++ b/misc-utils/Makemodule.am -@@ -90,7 +90,7 @@ endif - if BUILD_UUIDD - usrsbin_exec_PROGRAMS += uuidd - dist_man_MANS += misc-utils/uuidd.8 --uuidd_LDADD = $(LDADD) libuuid.la libcommon.la -+uuidd_LDADD = $(LDADD) libuuid.la libcommon.la $(REALTIME_LIBS) - uuidd_CFLAGS = $(DAEMON_CFLAGS) $(AM_CFLAGS) -I$(ul_libuuid_incdir) - uuidd_LDFLAGS = $(DAEMON_LDFLAGS) $(AM_LDFLAGS) - uuidd_SOURCES = misc-utils/uuidd.c - -diff --git a/sys-utils/Makemodule.am b/sys-utils/Makemodule.am -index f306e65..3d28ff1 100644 ---- a/sys-utils/Makemodule.am -+++ b/sys-utils/Makemodule.am -@@ -2,7 +2,7 @@ if BUILD_FLOCK - usrbin_exec_PROGRAMS += flock - dist_man_MANS += sys-utils/flock.1 - flock_SOURCES = sys-utils/flock.c lib/monotonic.c lib/timer.c --flock_LDADD = $(LDADD) libcommon.la -lrt -+flock_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS) - endif - - if BUILD_IPCMK --- -2.5.0 - diff --git a/bsp/buildroot/package/util-linux/0006-buildsys-fix-static-configuration-and-building.patch b/bsp/buildroot/package/util-linux/0006-buildsys-fix-static-configuration-and-building.patch deleted file mode 100644 index cd5654e7..00000000 --- a/bsp/buildroot/package/util-linux/0006-buildsys-fix-static-configuration-and-building.patch +++ /dev/null @@ -1,54 +0,0 @@ -From f69e18629d1c91d83ab91314baf5e34088b57f6e Mon Sep 17 00:00:00 2001 -From: Lada Trimasova -Date: Wed, 27 Jan 2016 16:26:41 +0300 -Subject: [PATCH] buildsys: fix static configuration and building - -In case of uClibc librt depends on libpthread. In particular -timer_create() function uses pthread_XXX(). That means in case -of static builds it's required to link not librt alone but -together with libpthread. So if checking timer_create function -in librt fails, it is necessary to check if timer_create function -successfully links with "-lpthread". - -That issues was spotted in Buldroot autobuilder failures: -http://autobuild.buildroot.net/results/759/75960db671807091fe9155aee9e46a6245e32590/ -http://autobuild.buildroot.org/results/112/112e8b85783f5aaba42a937a6eb064317615a21b/ - -Signed-off-by: Lada Trimasova ---- - configure.ac | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 56512c0..9392bf2 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -382,14 +382,23 @@ AC_CHECK_FUNCS([clock_gettime], [], - AC_SUBST([REALTIME_LIBS]) - - have_timer="no" --AC_CHECK_FUNCS([timer_createx], -+AC_CHECK_FUNCS([timer_create], - [have_time="yes"], - [AC_CHECK_LIB([rt], [timer_create], [ - have_timer="yes" - REALTIME_LIBS="-lrt" -- ])] -+ ],[ -+ AC_SEARCH_LIBS([timer_create], [rt], [ -+ AC_MSG_RESULT(yes) -+ have_timer="yes" -+ REALTIME_LIBS="-lrt -lpthread" -+ ],[], [-lpthread] -+ ) -+ ])] - ) - -+AC_SUBST([REALTIME_LIBS]) -+ - - AC_CHECK_MEMBER([struct sockaddr.sa_len], - AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [], --- -2.5.0 - diff --git a/bsp/buildroot/package/util-linux/0007-build-sys-fix-typo.patch b/bsp/buildroot/package/util-linux/0007-build-sys-fix-typo.patch deleted file mode 100644 index 204c3d8f..00000000 --- a/bsp/buildroot/package/util-linux/0007-build-sys-fix-typo.patch +++ /dev/null @@ -1,34 +0,0 @@ -From dea1bd2917ed9490ee96162288e0904e3de9da2d Mon Sep 17 00:00:00 2001 -From: Romain Naour -Date: Tue, 16 Feb 2016 00:24:30 +0100 -Subject: [PATCH] build-sys: fix typo - -When timer_create is available have_timer must be -set to "yes". But instead have_time is used. - -Replace have_time by have_timer. - -Fixes: -http://autobuild.buildroot.net/results/993/9935cd0522d4f978ba2e788a690f66790686b76b - -Signed-off-by: Romain Naour ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 4559573..3950f0c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -390,7 +390,7 @@ AC_CHECK_FUNCS([clock_gettime], [], - - have_timer="no" - AC_CHECK_FUNCS([timer_create], -- [have_time="yes"], -+ [have_timer="yes"], - [AC_CHECK_LIB([rt], [timer_create], [ - have_timer="yes" - REALTIME_LIBS="-lrt" --- -2.5.0 - diff --git a/bsp/buildroot/package/util-linux/Config.in b/bsp/buildroot/package/util-linux/Config.in index 60abd67a..657bcdd7 100644 --- a/bsp/buildroot/package/util-linux/Config.in +++ b/bsp/buildroot/package/util-linux/Config.in @@ -63,11 +63,12 @@ config BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # linux-pam depends on !BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM help Change login shell, real user name and information -comment "chfn/chsh needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library" +comment "chfn/chsh needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL @@ -127,11 +128,12 @@ config BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR) # linux-pam depends on !BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + depends on BR2_USE_MMU # linux-pam select BR2_PACKAGE_LINUX_PAM help Build login utilities (last, login, su, sulogin) -comment "login utilities needs a uClibc or (e)glibc toolchain w/ wchar, locale, dynamic library" +comment "login utilities needs a uClibc or glibc toolchain w/ wchar, locale, dynamic library" depends on !(BR2_ENABLE_LOCALE && BR2_USE_WCHAR) \ || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL @@ -140,6 +142,11 @@ config BR2_PACKAGE_UTIL_LINUX_LOSETUP help Set up and control loop devices +config BR2_PACKAGE_UTIL_LINUX_LSBLK + bool "lsblk" + help + List block devices. + config BR2_PACKAGE_UTIL_LINUX_MESG bool "mesg" help @@ -217,7 +224,6 @@ config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS config BR2_PACKAGE_UTIL_LINUX_SETPRIV bool "setpriv" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libcap-ng select BR2_PACKAGE_LIBCAP_NG help Run a program with different Linux privilege settings diff --git a/bsp/buildroot/package/util-linux/util-linux.hash b/bsp/buildroot/package/util-linux/util-linux.hash index de608233..ca581025 100644 --- a/bsp/buildroot/package/util-linux/util-linux.hash +++ b/bsp/buildroot/package/util-linux/util-linux.hash @@ -1,2 +1,2 @@ -# From https://www.kernel.org/pub/linux/utils/util-linux/v2.27/sha256sums.asc -sha256 0a818fcdede99aec43ffe6ca5b5388bff80d162f2f7bd4541dca94fecb87a290 util-linux-2.27.1.tar.xz +# From https://www.kernel.org/pub/linux/utils/util-linux/v2.28/sha256sums.asc +sha256 395847e2a18a2c317170f238892751e73a57104565344f8644090c8b091014bb util-linux-2.28.tar.xz diff --git a/bsp/buildroot/package/util-linux/util-linux.mk b/bsp/buildroot/package/util-linux/util-linux.mk index 73421742..9c7bd871 100644 --- a/bsp/buildroot/package/util-linux/util-linux.mk +++ b/bsp/buildroot/package/util-linux/util-linux.mk @@ -4,16 +4,15 @@ # ################################################################################ -UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).1 -UTIL_LINUX_VERSION_MAJOR = 2.27 +UTIL_LINUX_VERSION = 2.28 UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz -UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR) +UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION) # README.licensing claims that some files are GPLv2-only, but this is not true. # Some files are GPLv3+ but only in tests. UTIL_LINUX_LICENSE = GPLv2+, BSD-4c, libblkid and libmount LGPLv2.1+, libuuid BSD-3c UTIL_LINUX_LICENSE_FILES = README.licensing Documentation/licenses/COPYING.GPLv2 Documentation/licenses/COPYING.UCB Documentation/licenses/COPYING.LGPLv2.1 Documentation/licenses/COPYING.BSD-3 - +# For 0001-build-sys-fix-uClibc-ng-scanf-check.patch UTIL_LINUX_AUTORECONF = YES UTIL_LINUX_INSTALL_STAGING = YES UTIL_LINUX_DEPENDENCIES = host-pkgconf @@ -85,6 +84,7 @@ UTIL_LINUX_CONF_OPTS += \ $(if $(BR2_PACKAGE_UTIL_LINUX_LINE),--enable-line,--disable-line) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS),--enable-last --enable-login --enable-runuser --enable-su --enable-sulogin,--disable-last --disable-login --disable-runuser --disable-su --disable-sulogin) \ $(if $(BR2_PACKAGE_UTIL_LINUX_LOSETUP),--enable-losetup,--disable-losetup) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LSBLK),--enable-lsblk,--disable-lsblk) \ $(if $(BR2_PACKAGE_UTIL_LINUX_MESG),--enable-mesg,--disable-mesg) \ $(if $(BR2_PACKAGE_UTIL_LINUX_MINIX),--enable-minix,--disable-minix) \ $(if $(BR2_PACKAGE_UTIL_LINUX_MORE),--enable-more,--disable-more) \ @@ -152,8 +152,6 @@ endif # Install PAM configuration files ifeq ($(BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS),y) define UTIL_LINUX_INSTALL_PAMFILES - $(INSTALL) -m 0644 package/util-linux/login.pam \ - $(TARGET_DIR)/etc/pam.d/login $(INSTALL) -m 0644 package/util-linux/su.pam \ $(TARGET_DIR)/etc/pam.d/su $(INSTALL) -m 0644 package/util-linux/su.pam \ diff --git a/bsp/buildroot/package/v4l2grab/v4l2grab.hash b/bsp/buildroot/package/v4l2grab/v4l2grab.hash index 17beeec6..a59c8af3 100644 --- a/bsp/buildroot/package/v4l2grab/v4l2grab.hash +++ b/bsp/buildroot/package/v4l2grab/v4l2grab.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 ed5b9ca16c3b82d283df69c46aabd6c976b166b4e77b660288d86a147b68caf9 v4l2grab-6a52a234e227a30e16591d1a0e7afc52a2c5d964.tar.gz +sha256 9a8d0d1ca5ac9fb9f66e00300bb3265d156cf1cb67eb30f6e6637c83b0b507a1 v4l2grab-f8d8844d52387b3db7b8736f5e86156d9374f781.tar.gz diff --git a/bsp/buildroot/package/v4l2grab/v4l2grab.mk b/bsp/buildroot/package/v4l2grab/v4l2grab.mk index b6f26c6c..f3a8967d 100644 --- a/bsp/buildroot/package/v4l2grab/v4l2grab.mk +++ b/bsp/buildroot/package/v4l2grab/v4l2grab.mk @@ -4,7 +4,7 @@ # ################################################################################ -V4L2GRAB_VERSION = 6a52a234e227a30e16591d1a0e7afc52a2c5d964 +V4L2GRAB_VERSION = f8d8844d52387b3db7b8736f5e86156d9374f781 V4L2GRAB_SITE = $(call github,twam,v4l2grab,$(V4L2GRAB_VERSION)) V4L2GRAB_LICENSE = GPLv2+ V4L2GRAB_LICENSE_FILES = LICENSE.md diff --git a/bsp/buildroot/package/vala/vala-wrapper b/bsp/buildroot/package/vala/vala-wrapper new file mode 100644 index 00000000..ae2f7ca6 --- /dev/null +++ b/bsp/buildroot/package/vala/vala-wrapper @@ -0,0 +1,2 @@ +#!/bin/sh +$0-@VALA_VERSION@ --vapidir=${STAGING_DIR}/usr/share/vala/vapi --girdir=${STAGING_DIR}/usr/share/gir-1.0 $@ diff --git a/bsp/buildroot/package/vala/vala.hash b/bsp/buildroot/package/vala/vala.hash index 8b16838d..93019643 100644 --- a/bsp/buildroot/package/vala/vala.hash +++ b/bsp/buildroot/package/vala/vala.hash @@ -1,2 +1,2 @@ -# From https://download.gnome.org/sources/vala/0.30/vala-0.30.1.sha256sum -sha256 23add78e5c6a5e6df019d4a885c9c79814c9e0b957519ec8a4f4d826c4e5df2c vala-0.30.1.tar.xz +# From https://download.gnome.org/sources/vala/0.32/vala-0.32.0.sha256sum +sha256 07a2aa4ede040789b4b5af817a42249d703bfe8affccb7732ca2b53d00c1fb6e vala-0.32.0.tar.xz diff --git a/bsp/buildroot/package/vala/vala.mk b/bsp/buildroot/package/vala/vala.mk index 56d4db37..b236c54f 100644 --- a/bsp/buildroot/package/vala/vala.mk +++ b/bsp/buildroot/package/vala/vala.mk @@ -4,8 +4,8 @@ # ################################################################################ -VALA_VERSION_MAJOR = 0.30 -VALA_VERSION = $(VALA_VERSION_MAJOR).1 +VALA_VERSION_MAJOR = 0.32 +VALA_VERSION = $(VALA_VERSION_MAJOR).0 VALA_SITE = http://download.gnome.org/sources/vala/$(VALA_VERSION_MAJOR) VALA_SOURCE = vala-$(VALA_VERSION).tar.xz VALA_LICENSE = LGPLv2.1+ @@ -16,4 +16,17 @@ HOST_VALA_DEPENDENCIES = host-bison host-flex host-libglib2 # available". HOST_VALA_CONF_ENV = ac_cv_path_XSLTPROC=: +# We wrap vala & valac to point to the proper gir and vapi data dirs +# Otherwise we'll get host directory data which isn't enough +define HOST_VALA_INSTALL_WRAPPER + $(INSTALL) -D -m 0755 package/vala/vala-wrapper \ + $(HOST_DIR)/usr/bin/vala + $(INSTALL) -D -m 0755 package/vala/vala-wrapper \ + $(HOST_DIR)/usr/bin/valac + $(SED) 's,@VALA_VERSION@,$(VALA_VERSION_MAJOR),' \ + $(HOST_DIR)/usr/bin/vala \ + $(HOST_DIR)/usr/bin/valac +endef +HOST_VALA_POST_INSTALL_HOOKS += HOST_VALA_INSTALL_WRAPPER + $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/valgrind/Config.in b/bsp/buildroot/package/valgrind/Config.in index 21b2608f..40e219d9 100644 --- a/bsp/buildroot/package/valgrind/Config.in +++ b/bsp/buildroot/package/valgrind/Config.in @@ -8,6 +8,7 @@ config BR2_PACKAGE_VALGRIND BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ BR2_x86_64 depends on !BR2_STATIC_LIBS + depends on !BR2_MIPS_SOFT_FLOAT help Tool for debugging and profiling Linux programs. diff --git a/bsp/buildroot/package/valijson/Config.in b/bsp/buildroot/package/valijson/Config.in new file mode 100644 index 00000000..10721b37 --- /dev/null +++ b/bsp/buildroot/package/valijson/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_VALIJSON + bool "valijson" + depends on BR2_USE_WCHAR + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_REGEX + help + Valijson is a header-only JSON Schema Validation library for + C++. Valijson provides a simple validation API that allows + you load JSON Schemas, and validate documents loaded by one + of several supported parser libraries like boost, jsoncpp, + rapidjson and picoJSON. + + https://github.com/tristanpenman/valijson + +comment "valijson needs a toolchain w/ C++, threads, wchar support" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/valijson/valijson.hash b/bsp/buildroot/package/valijson/valijson.hash new file mode 100644 index 00000000..79b3fb7d --- /dev/null +++ b/bsp/buildroot/package/valijson/valijson.hash @@ -0,0 +1,2 @@ +# Locally Computed: +sha256 f2346e995bd95c6b86b0b9e9dd228fe134d529565fa86db764c48496805dd9bc valijson-424b706f990a9eb96dfc19cc8e54f2cd6ce5e186.tar.gz diff --git a/bsp/buildroot/package/valijson/valijson.mk b/bsp/buildroot/package/valijson/valijson.mk new file mode 100644 index 00000000..e0813b38 --- /dev/null +++ b/bsp/buildroot/package/valijson/valijson.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# valijson +# +################################################################################ + +VALIJSON_VERSION = 424b706f990a9eb96dfc19cc8e54f2cd6ce5e186 +VALIJSON_SITE = $(call github,tristanpenman,valijson,$(VALIJSON_VERSION)) +VALIJSON_LICENSE = BSD-2c +VALIJSON_LICENSE_FILES = LICENSE +VALIJSON_INSTALL_STAGING = YES +VALIJSON_INSTALL_TARGET = NO +VALIJSON_DEPENDENCIES = boost +VALIJSON_CONF_OPTS = -DINSTALL_HEADERS=TRUE + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/vde2/vde2.mk b/bsp/buildroot/package/vde2/vde2.mk index bad758d5..b750adbb 100644 --- a/bsp/buildroot/package/vde2/vde2.mk +++ b/bsp/buildroot/package/vde2/vde2.mk @@ -26,15 +26,27 @@ VDE2_AUTORECONF = YES # Note: disabled features can be added with corresponding dependencies # in future commits. VDE2_CONF_OPTS = \ - --disable-experimental \ - --disable-cryptcab \ - --disable-pcap \ - --disable-python \ - --disable-profile \ - --disable-kernel-switch \ - --enable-tuntap \ + --disable-cryptcab \ + --disable-experimental \ + --disable-kernel-switch \ + --disable-pcap \ + --disable-profile \ + --disable-python \ + --enable-tuntap # Package does not build in parallel due to improper make rules VDE2_MAKE = $(MAKE1) +HOST_VDE2_CONF_OPTS = \ + --disable-cryptcab \ + --disable-experimental \ + --disable-kernel-switch \ + --disable-pcap \ + --disable-profile \ + --disable-python \ + --enable-tuntap + +HOST_VDE2_MAKE = $(MAKE1) + $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/vim/Config.in b/bsp/buildroot/package/vim/Config.in index 8a5c2149..b851627c 100644 --- a/bsp/buildroot/package/vim/Config.in +++ b/bsp/buildroot/package/vim/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_VIM bool "vim" depends on BR2_USE_MMU # uses fork() depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE help @@ -23,3 +24,4 @@ endif comment "vim needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR depends on BR2_USE_MMU + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/vim/vim.hash b/bsp/buildroot/package/vim/vim.hash new file mode 100644 index 00000000..bb2d0139 --- /dev/null +++ b/bsp/buildroot/package/vim/vim.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 7c90f16e1d1547a864f4419cd7d066ca4ce822de285b2a718f9274e5241fe2fd vim-v7.4.1902.tar.gz diff --git a/bsp/buildroot/package/vim/vim.mk b/bsp/buildroot/package/vim/vim.mk index 6e05050f..c2f6cac7 100644 --- a/bsp/buildroot/package/vim/vim.mk +++ b/bsp/buildroot/package/vim/vim.mk @@ -4,8 +4,7 @@ # ################################################################################ -# 7.4 release patchlevel 889 -VIM_VERSION = 74b738d414b2895b3365e26ae3b7792eb82ccf47 +VIM_VERSION = v7.4.1902 VIM_SITE = $(call github,vim,vim,$(VIM_VERSION)) # Win over busybox vi since vim is more feature-rich VIM_DEPENDENCIES = \ diff --git a/bsp/buildroot/package/vlc/0008-fix-fallback-code-and-add-required-realtime-library.patch b/bsp/buildroot/package/vlc/0008-fix-fallback-code-and-add-required-realtime-library.patch new file mode 100644 index 00000000..43f197ac --- /dev/null +++ b/bsp/buildroot/package/vlc/0008-fix-fallback-code-and-add-required-realtime-library.patch @@ -0,0 +1,40 @@ +From 381bcb7cb03bb602351a323daf3b69b2d4f45e77 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Fri, 26 Aug 2016 15:11:25 +0200 +Subject: [PATCH] fix fallback code and add required realtime library to link + command + +Signed-off-by: Waldemar Brodkorb +--- + configure.ac | 1 + + src/posix/thread.c | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index cb1de25..018c11c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -121,6 +121,7 @@ case "${host_os}" in + ;; + linux*) + SYS=linux ++ AC_CHECK_LIB([rt], [posix_spawnp], [VLC_ADD_LIBS([libvlccore],[-lrt])], [], []) + ;; + bsdi*) + SYS=bsdi +diff --git a/src/posix/thread.c b/src/posix/thread.c +index 07fa71e..8b8595f 100644 +--- a/src/posix/thread.c ++++ b/src/posix/thread.c +@@ -85,7 +85,7 @@ static clockid_t vlc_clock_id; + + static void vlc_clock_setup_once (void) + { +-# if (_POSIX_MONOTONIC_CLOCK == 0) ++# if (_POSIX_MONOTONIC_CLOCK == 0) && (_POSIX_CLOCK_SELECTION > 0) + long val = sysconf (_SC_MONOTONIC_CLOCK); + assert (val != 0); + vlc_clock_id = (val < 0) ? CLOCK_REALTIME : CLOCK_MONOTONIC; +-- +2.1.4 + diff --git a/bsp/buildroot/package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch b/bsp/buildroot/package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch deleted file mode 100644 index 0ce0206d..00000000 --- a/bsp/buildroot/package/vlc/0008-opencv_wrapper-use-opencv2-style-includes.patch +++ /dev/null @@ -1,36 +0,0 @@ -Backport from: https://git.videolan.org/?p=vlc.git;a=commit;h=cc236e4652255902f2c2cee3b18f83367f35a8c7 - -From cc236e4652255902f2c2cee3b18f83367f35a8c7 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sun, 24 May 2015 14:30:09 +0200 -Subject: [PATCH 8/9] opencv_wrapper: use opencv2-style includes - -If old opencv1-style legacy include directory is available, this change -becomes purely cosmetic (maybe will compile a bit faster). -It becomes an FTBFS fix when opencv1-style include directory is missing -(i.e. from opencv-3.0). - -Signed-off-by: Samuel Martin -Signed-off-by: Jean-Baptiste Kempf ---- - modules/video_filter/opencv_wrapper.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/modules/video_filter/opencv_wrapper.c b/modules/video_filter/opencv_wrapper.c -index e36e1a5..5d74241 100644 ---- a/modules/video_filter/opencv_wrapper.c -+++ b/modules/video_filter/opencv_wrapper.c -@@ -39,8 +39,8 @@ - #include - #include "filter_picture.h" - --#include --#include -+#include -+#include - - /***************************************************************************** - * Local prototypes --- -2.4.2 - diff --git a/bsp/buildroot/package/vlc/0009-opencv_example-add-missing-include-statements.patch b/bsp/buildroot/package/vlc/0009-opencv_example-add-missing-include-statements.patch deleted file mode 100644 index 7b7f7270..00000000 --- a/bsp/buildroot/package/vlc/0009-opencv_example-add-missing-include-statements.patch +++ /dev/null @@ -1,29 +0,0 @@ -Backport from: https://git.videolan.org/?p=vlc.git;a=commit;h=b82416d7000a993b33e903095a590fe32212a85e - -From b82416d7000a993b33e903095a590fe32212a85e Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sun, 24 May 2015 14:30:10 +0200 -Subject: [PATCH 9/9] opencv_example: add missing #include statements - -Signed-off-by: Samuel Martin -Signed-off-by: Jean-Baptiste Kempf ---- - modules/video_filter/opencv_example.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/modules/video_filter/opencv_example.cpp b/modules/video_filter/opencv_example.cpp -index ae3af05..998f286 100644 ---- a/modules/video_filter/opencv_example.cpp -+++ b/modules/video_filter/opencv_example.cpp -@@ -41,6 +41,8 @@ - - #include - #include -+#include -+#include - #include - - /***************************************************************************** --- -2.4.2 - diff --git a/bsp/buildroot/package/vlc/vlc.hash b/bsp/buildroot/package/vlc/vlc.hash index ce124f35..efd4e27e 100644 --- a/bsp/buildroot/package/vlc/vlc.hash +++ b/bsp/buildroot/package/vlc/vlc.hash @@ -1,2 +1,2 @@ -# From http://download.videolan.org/pub/videolan/vlc/2.2.1/vlc-2.2.1.tar.xz.sha256 -sha256 543d9d7e378ec0fa1ee2e7f7f5acf8c456c7d0ecc32037171523197ef3cf1fcb vlc-2.2.1.tar.xz +# From http://download.videolan.org/pub/videolan/vlc/2.2.3/vlc-2.2.3.tar.xz.sha256 +sha256 1632e91d2a0087e0ef4c3fb4c95c3c2890f7715a9d1d43ffd46329f428cf53be vlc-2.2.4.tar.xz diff --git a/bsp/buildroot/package/vlc/vlc.mk b/bsp/buildroot/package/vlc/vlc.mk index 8acdc4e8..8efbecb7 100644 --- a/bsp/buildroot/package/vlc/vlc.mk +++ b/bsp/buildroot/package/vlc/vlc.mk @@ -4,7 +4,7 @@ # ################################################################################ -VLC_VERSION = 2.2.1 +VLC_VERSION = 2.2.4 VLC_SITE = http://get.videolan.org/vlc/$(VLC_VERSION) VLC_SOURCE = vlc-$(VLC_VERSION).tar.xz VLC_LICENSE = GPLv2+ LGPLv2.1+ @@ -137,10 +137,7 @@ VLC_CONF_OPTS += --disable-flac endif ifeq ($(BR2_PACKAGE_FREERDP),y) -VLC_CONF_OPTS += --enable-freerdp VLC_DEPENDENCIES += freerdp -else -VLC_CONF_OPTS += --disable-libfreerdp endif ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) @@ -186,6 +183,13 @@ else VLC_CONF_OPTS += --disable-bluray endif +ifeq ($(BR2_PACKAGE_LIBCDDB),y) +VLC_CONF_OPTS += --enable-libcddb +VLC_DEPENDENCIES += libcddb +else +VLC_CONF_OPTS += --disable-libcddb +endif + ifeq ($(BR2_PACKAGE_LIBDVBPSI),y) VLC_CONF_OPTS += --enable-dvbpsi VLC_DEPENDENCIES += libdvbpsi @@ -244,6 +248,13 @@ else VLC_CONF_OPTS += --disable-svg --disable-svgdec endif +ifeq ($(BR2_PACKAGE_LIBSSH2),y) +VLC_CONF_OPTS += --enable-sftp +VLC_DEPENDENCIES += libssh2 +else +VLC_CONF_OPTS += --disable-sftp +endif + ifeq ($(BR2_PACKAGE_LIBSIDPLAY2),y) VLC_CONF_OPTS += --enable-sid VLC_DEPENDENCIES += libsidplay2 @@ -265,6 +276,13 @@ else VLC_CONF_OPTS += --disable-upnp endif +ifeq ($(BR2_PACKAGE_LIBVNCSERVER),y) +VLC_CONF_OPTS += --enable-vnc +VLC_DEPENDENCIES += libvncserver +else +VLC_CONF_OPTS += --disable-vnc +endif + ifeq ($(BR2_PACKAGE_LIBVORBIS),y) VLC_CONF_OPTS += --enable-vorbis VLC_DEPENDENCIES += libvorbis @@ -315,6 +333,17 @@ else VLC_CONF_OPTS += --disable-lua endif +ifeq ($(BR2_PACKAGE_MINIZIP),y) +VLC_DEPENDENCIES += minizip +endif + +ifeq ($(BR2_PACKAGE_MUSEPACK),y) +VLC_CONF_OPTS += --enable-mpc +VLC_DEPENDENCIES += musepack +else +VLC_CONF_OPTS += --disable-mpc +endif + ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y) VLC_CONF_OPTS += --enable-qt VLC_CONF_ENV += \ @@ -368,6 +397,13 @@ else VLC_CONF_OPTS += --disable-udev endif +ifeq ($(BR2_PACKAGE_XCB_UTIL_KEYSYMS),y) +VLC_CONF_OPTS += --enable-xcb +VLC_DEPENDENCIES += xcb-util-keysyms +else +VLC_CONF_OPTS += --disable-xcb +endif + ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) VLC_CONF_OPTS += --with-x VLC_DEPENDENCIES += xlib_libX11 diff --git a/bsp/buildroot/package/vnstat/vnstat.mk b/bsp/buildroot/package/vnstat/vnstat.mk index ba2610ab..576f240a 100644 --- a/bsp/buildroot/package/vnstat/vnstat.mk +++ b/bsp/buildroot/package/vnstat/vnstat.mk @@ -8,11 +8,12 @@ VNSTAT_VERSION = 1.15 VNSTAT_SITE = http://humdi.net/vnstat VNSTAT_LICENSE = GPLv2 VNSTAT_LICENSE_FILES = COPYING +VNSTAT_DEPENDENCIES = host-pkgconf # We're patching configure.ac, so we need to autoreconf VNSTAT_AUTORECONF = YES ifeq ($(BR2_PACKAGE_GD)$(BR2_PACKAGE_LIBPNG),yy) -VNSTAT_DEPENDENCIES = gd +VNSTAT_DEPENDENCIES += gd VNSTAT_CONF_OPTS = --enable-image-output else VNSTAT_CONF_OPTS = --disable-image-output diff --git a/bsp/buildroot/package/vpnc/0001-Makefile-allow-to-override-the-PREFIX-variable.patch b/bsp/buildroot/package/vpnc/0001-Makefile-allow-to-override-the-PREFIX-variable.patch new file mode 100644 index 00000000..49909ada --- /dev/null +++ b/bsp/buildroot/package/vpnc/0001-Makefile-allow-to-override-the-PREFIX-variable.patch @@ -0,0 +1,31 @@ +From 7314d232f8e85879d8f4c311ced44ee5b21fb239 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 10 Feb 2016 23:26:27 +0100 +Subject: [PATCH] Makefile: allow to override the PREFIX variable + +Some people may not want to install in /usr/local, so this commit +makes it possible to override the PREFIX variable from the make +command line. + +Signed-off-by: Thomas Petazzoni +--- + + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 69f5aca..f9a6781 100644 +--- a/Makefile ++++ b/Makefile +@@ -20,7 +20,7 @@ + # $Id$ + + DESTDIR= +-PREFIX=/usr/local ++PREFIX?=/usr/local + ETCDIR=/etc/vpnc + BINDIR=$(PREFIX)/bin + SBINDIR=$(PREFIX)/sbin +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0001-fix-build.patch b/bsp/buildroot/package/vpnc/0001-fix-build.patch deleted file mode 100644 index e21348b4..00000000 --- a/bsp/buildroot/package/vpnc/0001-fix-build.patch +++ /dev/null @@ -1,71 +0,0 @@ -Misc. Makefile cleanup and fix the VERSION definition. - -Signed-off-by: Samuel Martin - ---- -diff -purN vpnc-0.5.3.orig/Makefile vpnc-0.5.3/Makefile ---- vpnc-0.5.3.orig/Makefile 2012-08-06 00:03:22.677914146 +0200 -+++ vpnc-0.5.3/Makefile 2012-08-06 00:06:58.506744901 +0200 -@@ -19,21 +19,19 @@ - # - # $Id: Makefile 312 2008-06-15 18:09:42Z Joerg Mayer $ - --DESTDIR= --PREFIX=/usr/local --ETCDIR=/etc/vpnc --BINDIR=$(PREFIX)/bin --SBINDIR=$(PREFIX)/sbin --MANDIR=$(PREFIX)/share/man --DOCDIR=$(PREFIX)/share/doc/vpnc -- --SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c --BINS = vpnc cisco-decrypt --OBJS = $(addsuffix .o,$(basename $(SRCS))) -+DESTDIR = -+PREFIX ?= /usr/local -+ETCDIR = /etc/vpnc -+BINDIR = $(PREFIX)/bin -+SBINDIR = $(PREFIX)/sbin -+MANDIR = $(PREFIX)/share/man -+DOCDIR = $(PREFIX)/share/doc/vpnc -+ -+SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c -+BINS = vpnc cisco-decrypt -+OBJS = $(addsuffix .o,$(basename $(SRCS))) - BINOBJS = $(addsuffix .o,$(BINS)) - BINSRCS = $(addsuffix .c,$(BINS)) --VERSION := $(shell sh mk-version) --RELEASE_VERSION := $(shell cat VERSION) - - # The license of vpnc (Gpl >= 2) is quite likely incompatible with the - # openssl license. Openssl is currently used to provide certificate -@@ -50,13 +48,13 @@ RELEASE_VERSION := $(shell cat VERSION) - #OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION - #OPENSSLLIBS = -lcrypto - --CC=gcc --CFLAGS ?= -O3 -g --CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings --CFLAGS += $(shell libgcrypt-config --cflags) --CPPFLAGS += -DVERSION=\"$(VERSION)\" $(OPENSSL_GPL_VIOLATION) --LDFLAGS ?= -g --LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS) -+CC ?= gcc -+CFLAGS ?= -O3 -g -+CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings -+CFLAGS += $(shell libgcrypt-config --cflags) -+CPPFLAGS += $(OPENSSL_GPL_VIOLATION) -+LDFLAGS ?= -g -+LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS) - - ifeq ($(shell uname -s), SunOS) - LDFLAGS += -lnsl -lresolv -lsocket -@@ -84,7 +82,7 @@ cisco-decrypt : cisco-decrypt.o decrypt- - $(CC) -o $@ $^ $(LDFLAGS) - - .depend: $(SRCS) $(BINSRCS) -- $(CC) -MM $(SRCS) $(BINSRCS) $(CFLAGS) $(CPPFLAGS) > $@ -+ $(CC) -MM $(SRCS) $(BINSRCS) $(CPPFLAGS) $(CFLAGS) > $@ - - vpnc-debug.c vpnc-debug.h : isakmp.h enum2debug.pl - LC_ALL=C perl -w ./enum2debug.pl isakmp.h >vpnc-debug.c 2>vpnc-debug.h diff --git a/bsp/buildroot/package/vpnc/0002-Makefile-allow-to-override-the-version.patch b/bsp/buildroot/package/vpnc/0002-Makefile-allow-to-override-the-version.patch new file mode 100644 index 00000000..9d0bae3d --- /dev/null +++ b/bsp/buildroot/package/vpnc/0002-Makefile-allow-to-override-the-version.patch @@ -0,0 +1,41 @@ +From 8b035de4867db4fb8da41298224d92bf5b18e86f Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 10 Feb 2016 23:27:30 +0100 +Subject: [PATCH] Makefile: allow to override the version + +The mk-version script makes the assumption that the build process runs +from a SVN checkout or a Git clone of the vpnc source code. However, +this is not always the case, for example when you are building from a +tarball, but inside a larger project that is versioned with Git. + +This is typically the case when building vpnc under a tool like +Buildroot, or potentially other embedded Linux build system: the build +system tool itself is versioned in Git, downloads tarballs of software +components and builds them. + +In order to support such situations, this commit adjusts the Makefile +to allow the VERSION variable to be overriden from the make command +line. + +Signed-off-by: Thomas Petazzoni +--- + + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index f9a6781..e80ef17 100644 +--- a/Makefile ++++ b/Makefile +@@ -57,7 +57,7 @@ OBJS = $(addsuffix .o,$(basename $(SRCS))) + CRYPTO_OBJS = $(addsuffix .o,$(basename $(CRYPTO_SRCS))) + BINOBJS = $(addsuffix .o,$(BINS)) + BINSRCS = $(addsuffix .c,$(BINS)) +-VERSION := $(shell sh mk-version) ++VERSION ?= $(shell sh mk-version) + RELEASE_VERSION := $(shell cat VERSION) + + CC ?= gcc +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0002-nomanual.patch b/bsp/buildroot/package/vpnc/0002-nomanual.patch deleted file mode 100644 index 7f2ea534..00000000 --- a/bsp/buildroot/package/vpnc/0002-nomanual.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -urN vpnc-0.5.3-0rig/Makefile vpnc-0.5.3/Makefile ---- vpnc-0.5.3-0rig/Makefile 2008-11-19 21:36:12.000000000 +0100 -+++ vpnc-0.5.3/Makefile 2009-01-15 00:38:36.000000000 +0100 -@@ -72,7 +72,10 @@ - $(CC) -o $@ $^ $(LDFLAGS) - - vpnc.8 : vpnc.8.template makeman.pl vpnc -- ./makeman.pl -+ @echo "Cannot make manual when cross compiling" -+ touch $@ -+ -+# ./makeman.pl - - vpnc-script : vpnc-script.in - sed -e 's,@''PREFIX''@,$(PREFIX),g' $< > $@ && chmod 755 $@ diff --git a/bsp/buildroot/package/vpnc/0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch b/bsp/buildroot/package/vpnc/0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch new file mode 100644 index 00000000..c232206a --- /dev/null +++ b/bsp/buildroot/package/vpnc/0003-Makefile-allow-passing-custom-CFLAGS-CPPFLAGS.patch @@ -0,0 +1,45 @@ +From 014a8e04a0fa775b2ade78e5f7655a1453375884 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 10 Feb 2016 23:31:12 +0100 +Subject: [PATCH] Makefile: allow passing custom CFLAGS/CPPFLAGS + +vpnc's Makefile specifies some CFLAGS and CPPFLAGS value, but it may +be needed to pass additional custom flags on the make command line. To +make this possible, we switch from a plain += operator to the +"override ... +=" operator. + +Signed-off-by: Thomas Petazzoni +--- + + Makefile | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index e80ef17..7ac225a 100644 +--- a/Makefile ++++ b/Makefile +@@ -62,9 +62,9 @@ RELEASE_VERSION := $(shell cat VERSION) + + CC ?= gcc + CFLAGS ?= -O3 -g +-CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings +-CFLAGS += $(shell libgcrypt-config --cflags) $(CRYPTO_CFLAGS) +-CPPFLAGS += -DVERSION=\"$(VERSION)\" ++override CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings ++override CFLAGS += $(shell libgcrypt-config --cflags) $(CRYPTO_CFLAGS) ++override CPPFLAGS += -DVERSION=\"$(VERSION)\" + LDFLAGS ?= -g + LIBS += $(shell libgcrypt-config --libs) $(CRYPTO_LDADD) + +@@ -73,7 +73,7 @@ LIBS += -lnsl -lresolv -lsocket + endif + ifneq (,$(findstring Apple,$(shell $(CC) --version))) + # enabled in FSF GCC, disabled by default in Apple GCC +-CFLAGS += -fstrict-aliasing -freorder-blocks -fsched-interblock ++override CFLAGS += -fstrict-aliasing -freorder-blocks -fsched-interblock + endif + + all : $(BINS) vpnc.8 +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0003-susv3-legacy.patch b/bsp/buildroot/package/vpnc/0003-susv3-legacy.patch deleted file mode 100644 index 2e577e38..00000000 --- a/bsp/buildroot/package/vpnc/0003-susv3-legacy.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -rdup vpnc-0.5.1.oorig/config.c vpnc-0.5.1/config.c ---- vpnc-0.5.1.oorig/config.c 2007-09-10 22:39:48.000000000 +0200 -+++ vpnc-0.5.1/config.c 2007-09-19 14:19:46.000000000 +0200 -@@ -538,7 +538,7 @@ static char *get_config_filename(const c - { - char *realname; - -- asprintf(&realname, "%s%s%s", index(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : ""); -+ asprintf(&realname, "%s%s%s", strchr(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : ""); - return realname; - } - diff --git a/bsp/buildroot/package/vpnc/0004-Makefile-provide-an-option-to-not-build-manpages.patch b/bsp/buildroot/package/vpnc/0004-Makefile-provide-an-option-to-not-build-manpages.patch new file mode 100644 index 00000000..f767a59b --- /dev/null +++ b/bsp/buildroot/package/vpnc/0004-Makefile-provide-an-option-to-not-build-manpages.patch @@ -0,0 +1,57 @@ +From 3c16d0b7bf809a56affd6e1a4c0998027968b91a Mon Sep 17 00:00:00 2001 +From: Ulf Samuelsson +Date: Mon, 8 Feb 2016 23:03:48 +0100 +Subject: [PATCH] Makefile: provide an option to not build manpages + +The process of generating the vpnc.8 man page consists in running the +vpnc tool itself, and parse its --long-help output. While this is +perfectly fine when building natively, it fails completely when +cross-compiling: the vpnc binary that was built cannot be executed on +the build machine. + +In order to support such situations with minimal changes, this patch +adjusts the Makefile to make it understand a MANS variable. By +default, it's defined to "vpnc.8", which means the manpage continues +to be built as usual. However, if it's overriden to be empty, then no +manpage is built. + +Signed-off-by: Thomas Petazzoni +--- + + Makefile | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 7ac225a..ea2cd41 100644 +--- a/Makefile ++++ b/Makefile +@@ -54,6 +54,7 @@ endif + SRCS = sysdep.c vpnc-debug.c isakmp-pkt.c tunip.c config.c dh.c math_group.c supp.c decrypt-utils.c crypto.c $(CRYPTO_SRCS) + BINS = vpnc cisco-decrypt test-crypto + OBJS = $(addsuffix .o,$(basename $(SRCS))) ++MANS ?= vpnc.8 + CRYPTO_OBJS = $(addsuffix .o,$(basename $(CRYPTO_SRCS))) + BINOBJS = $(addsuffix .o,$(BINS)) + BINSRCS = $(addsuffix .c,$(BINS)) +@@ -76,7 +77,7 @@ ifneq (,$(findstring Apple,$(shell $(CC) --version))) + override CFLAGS += -fstrict-aliasing -freorder-blocks -fsched-interblock + endif + +-all : $(BINS) vpnc.8 ++all : $(BINS) $(MANS) + + vpnc : $(OBJS) vpnc.o + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) +@@ -136,7 +137,9 @@ install-common: all + install -m600 vpnc.conf $(DESTDIR)$(ETCDIR)/default.conf + install -m755 vpnc-disconnect $(DESTDIR)$(SBINDIR) + install -m755 pcf2vpnc $(DESTDIR)$(BINDIR) ++ifneq ($(MANS),) + install -m644 vpnc.8 $(DESTDIR)$(MANDIR)/man8 ++endif + install -m644 pcf2vpnc.1 $(DESTDIR)$(MANDIR)/man1 + install -m644 cisco-decrypt.1 $(DESTDIR)$(MANDIR)/man1 + install -m644 COPYING $(DESTDIR)$(DOCDIR) +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch b/bsp/buildroot/package/vpnc/0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch new file mode 100644 index 00000000..86239079 --- /dev/null +++ b/bsp/buildroot/package/vpnc/0005-Makefile-allow-passing-a-custom-path-to-libgcrypt-co.patch @@ -0,0 +1,40 @@ +From 6180ca780e3a792bd632d8899c2b35991822c93d Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 8 Feb 2016 23:32:57 +0100 +Subject: [PATCH] Makefile: allow passing a custom path to libgcrypt-config + +The libgcrypt-config program may not be in the PATH, so this patch +adjusts the Makefile so that it understands a LIBGCRYPT_CONFIG +variable. By default, its value is libgcrypt-config so that the +behavior is unchanged. + +Signed-off-by: Thomas Petazzoni +--- + + Makefile | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index ea2cd41..649ddfb 100644 +--- a/Makefile ++++ b/Makefile +@@ -61,13 +61,14 @@ BINSRCS = $(addsuffix .c,$(BINS)) + VERSION ?= $(shell sh mk-version) + RELEASE_VERSION := $(shell cat VERSION) + ++LIBGCRYPT_CONFIG ?= libgcrypt-config + CC ?= gcc + CFLAGS ?= -O3 -g + override CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings +-override CFLAGS += $(shell libgcrypt-config --cflags) $(CRYPTO_CFLAGS) ++override CFLAGS += $(shell $(LIBGCRYPT_CONFIG) --cflags) $(CRYPTO_CFLAGS) + override CPPFLAGS += -DVERSION=\"$(VERSION)\" + LDFLAGS ?= -g +-LIBS += $(shell libgcrypt-config --libs) $(CRYPTO_LDADD) ++LIBS += $(shell $(LIBGCRYPT_CONFIG) --libs) $(CRYPTO_LDADD) + + ifeq ($(shell uname -s), SunOS) + LIBS += -lnsl -lresolv -lsocket +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch b/bsp/buildroot/package/vpnc/0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch new file mode 100644 index 00000000..5efe303b --- /dev/null +++ b/bsp/buildroot/package/vpnc/0006-config.c-Replace-deprecated-SUSv3-functions-with-POS.patch @@ -0,0 +1,36 @@ +From 627a45d88acf236cb36326919e4a2fa975c688bd Mon Sep 17 00:00:00 2001 +From: Bernhard Reutner-Fischer +Date: Mon, 8 Feb 2016 23:05:23 +0100 +Subject: [PATCH] config.c: Replace deprecated SUSv3 functions with POSIX + equivalents + +Replace the deprecated SUSv3 function index() by its POSIX equivalent +strchr(). This is necessary to successfully build vpnc with uClibc, +when SUSv3 compatibility functions are not compiled in. + +Patch originally from Bernhard Reutner-Fischer +. + +Signed-off-by: Thomas Petazzoni +--- + + config.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/config.c b/config.c +index 57778e3..11b363b 100644 +--- a/config.c ++++ b/config.c +@@ -657,8 +657,7 @@ static const struct config_names_s { + static char *get_config_filename(const char *name, int add_dot_conf) + { + char *realname; +- +- asprintf(&realname, "%s%s%s", index(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : ""); ++ asprintf(&realname, "%s%s%s", strchr(name, '/') ? "" : "/etc/vpnc/", name, add_dot_conf ? ".conf" : ""); + return realname; + } + +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch b/bsp/buildroot/package/vpnc/0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch new file mode 100644 index 00000000..41c6191e --- /dev/null +++ b/bsp/buildroot/package/vpnc/0007-sysdep.h-don-t-assume-error.h-is-available-on-all-Li.patch @@ -0,0 +1,52 @@ +From 7f41ef32c8c887ee23ca83da4dfd7a4f27e01186 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 10 Feb 2016 23:09:51 +0100 +Subject: [PATCH] sysdep.h: don't assume is available on all Linux + platforms + +The current logic in sysdep.h assumes that whenever you have __linux__ +or __GLIBC__ defined, then functionality is +available. However, the functionality is a glibc-ism, not +available in more standard-conformant C libraries such as the musl C +library. With musl, __linux__ is defined (but of course not +__GLIBC__). With the current logic, sysdep.h assumes that is +available, which isn't the case. + +This patch therefore changes the logic to only use when +__GLIBC__ is defined. It fixes the following build error: + +In file included from tunip.c:87:0: +sysdep.h:41:19: fatal error: error.h: No such file or directory + #include + +Original patch from +http://git.alpinelinux.org/cgit/aports/tree/testing/vpnc/working.patch. + +Signed-off-by: Thomas Petazzoni +--- + sysdep.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/sysdep.h b/sysdep.h +index 137bf6d..fb65b31 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -38,11 +38,14 @@ int tun_get_hwaddr(int fd, char *dev, uint8_t *hwaddr); + + /***************************************************************************/ + #if defined(__linux__) || defined(__GLIBC__) ++ ++#ifdef __GLIBC__ + #include ++#define HAVE_ERROR 1 ++#endif + + #define HAVE_VASPRINTF 1 + #define HAVE_ASPRINTF 1 +-#define HAVE_ERROR 1 + #define HAVE_UNSETENV 1 + #define HAVE_SETENV 1 + #endif +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch b/bsp/buildroot/package/vpnc/0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch new file mode 100644 index 00000000..a4cfe11b --- /dev/null +++ b/bsp/buildroot/package/vpnc/0008-sysdep.c-don-t-include-linux-if_tun.h-on-Linux.patch @@ -0,0 +1,54 @@ +From 2e2eab070384834036c1458c669070ed17d81dbe Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 10 Feb 2016 23:15:36 +0100 +Subject: [PATCH] sysdep.c: don't include on Linux +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Including in sysdep.c is not necessary since sysdep.h +already includes . And this is actually +potentially harmful since both files redefine the same 'struct +ethhdr', causing the following build failure with the musl C library: + +In file included from sysdep.h:28:0, + from sysdep.c:71: +.../buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/netinet/if_ether.h:96:8: error: redefinition of ‘struct ethhdr’ + struct ethhdr { + ^ +In file included from .../buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/if_tun.h:20:0, + from sysdep.c:62: +.../buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/if_ether.h:138:8: note: originally defined here + struct ethhdr { + ^ + +Original patch from: +http://git.alpinelinux.org/cgit/aports/tree/testing/vpnc/working.patch + +Signed-off-by: Thomas Petazzoni +--- + sysdep.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/sysdep.c b/sysdep.c +index d8f181d..f83543d 100644 +--- a/sysdep.c ++++ b/sysdep.c +@@ -58,13 +58,11 @@ + + #if defined(__DragonFly__) + #include +-#elif defined(__linux__) +-#include + #elif defined(__APPLE__) + /* no header for tun */ + #elif defined(__CYGWIN__) + #include "tap-win32.h" +-#else ++#elif !defined(__linux__) + #include + #endif + +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/0009-config.c-add-missing-sys-ttydefaults.h-include.patch b/bsp/buildroot/package/vpnc/0009-config.c-add-missing-sys-ttydefaults.h-include.patch new file mode 100644 index 00000000..bce552e5 --- /dev/null +++ b/bsp/buildroot/package/vpnc/0009-config.c-add-missing-sys-ttydefaults.h-include.patch @@ -0,0 +1,36 @@ +From 17277915af703a4767de791916621d8f59aef516 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Wed, 10 Feb 2016 23:21:26 +0100 +Subject: [PATCH] config.c: add missing include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This include is needed to get the definition of CEOT, otherwise the +build fails with: + +config.c: In function ‘vpnc_getline’: +config.c:145:25: error: ‘CEOT’ undeclared (first use in this function) + if (llen == 0 && c == CEOT) + ^ + +Signed-off-by: Thomas Petazzoni +--- + config.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.c b/config.c +index 11b363b..f47a534 100644 +--- a/config.c ++++ b/config.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + +-- +2.6.4 + diff --git a/bsp/buildroot/package/vpnc/Config.in b/bsp/buildroot/package/vpnc/Config.in index bc27331c..2049c457 100644 --- a/bsp/buildroot/package/vpnc/Config.in +++ b/bsp/buildroot/package/vpnc/Config.in @@ -1,8 +1,11 @@ config BR2_PACKAGE_VPNC bool "vpnc" + depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt depends on BR2_USE_MMU # fork() + depends on BR2_USE_WCHAR # gnutls select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBGPG_ERROR + select BR2_PACKAGE_GNUTLS help Client for Cisco VPN concentrator 3000 Series VPN Concentrator @@ -11,3 +14,7 @@ config BR2_PACKAGE_VPNC Juniper/Netscreen http://www.unix-ag.uni-kl.de/~massar/vpnc + +comment "vpnc needs a toolchain w/ wchar" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/vpnc/vpnc.hash b/bsp/buildroot/package/vpnc/vpnc.hash index a79df8fa..98a98472 100644 --- a/bsp/buildroot/package/vpnc/vpnc.hash +++ b/bsp/buildroot/package/vpnc/vpnc.hash @@ -1,2 +1,2 @@ # locally computed hash -sha256 46cea3bd02f207c62c7c6f2f22133382602baeda1dc320747809e94881414884 vpnc-0.5.3.tar.gz +sha256 c10a5c2c0813198ca2404dd36db380cdb6395b46338123b341775095cf61521d vpnc-b1243d29e0c00312ead038b04a2cf5e2fa31d740.tar.gz diff --git a/bsp/buildroot/package/vpnc/vpnc.mk b/bsp/buildroot/package/vpnc/vpnc.mk index f5ab5fc0..282a4225 100644 --- a/bsp/buildroot/package/vpnc/vpnc.mk +++ b/bsp/buildroot/package/vpnc/vpnc.mk @@ -4,24 +4,23 @@ # ################################################################################ -VPNC_VERSION = 0.5.3 -VPNC_SITE = http://www.unix-ag.uni-kl.de/~massar/vpnc +VPNC_VERSION = b1243d29e0c00312ead038b04a2cf5e2fa31d740 +VPNC_SITE = $(call github,ndpgroup,vpnc,$(VPNC_VERSION)) VPNC_LICENSE = GPLv2+ VPNC_LICENSE_FILES = COPYING -VPNC_DEPENDENCIES = libgcrypt libgpg-error - -VPNC_LDFLAGS = $(TARGET_LDFLAGS) -lgcrypt -lgpg-error -VPNC_CPPFLAGS = -DVERSION=\\\"$(VPNC_VERSION)\\\" +VPNC_DEPENDENCIES = libgcrypt libgpg-error gnutls host-pkgconf define VPNC_BUILD_CMDS - $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) \ - CPPFLAGS="$(VPNC_CPPFLAGS)" LDFLAGS="$(VPNC_LDFLAGS)" + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + $(TARGET_CONFIGURE_OPTS) \ + LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config \ + VERSION=$(VPNC_VERSION) MANS= endef define VPNC_INSTALL_TARGET_CMDS - $(MAKE) -C $(@D) install $(TARGET_CONFIGURE_OPTS) \ - CPPFLAGS="$(VPNC_CPPFLAGS)" LDFLAGS="$(VPNC_LDFLAGS)" \ + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install $(TARGET_CONFIGURE_OPTS) \ + VERSION=$(VPNC_VERSION) MANS= \ DESTDIR="$(TARGET_DIR)" PREFIX=/usr endef diff --git a/bsp/buildroot/package/wavemon/Config.in b/bsp/buildroot/package/wavemon/Config.in new file mode 100644 index 00000000..e073dee9 --- /dev/null +++ b/bsp/buildroot/package/wavemon/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_WAVEMON + bool "wavemon" + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_LIBNL + help + wavemon is a wireless device monitoring application that allows you + to watch signal and noise levels, packet statistics, device + configuration and network parameters of your wireless network + hardware. + + Note that you need a Linux Kernel configuration with wireless + extensions or with wireless extensions compatibility enabled. + + https://github.com/uoaerg/wavemon + +comment "wavemon needs a toolchain w/ NPTL" + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL diff --git a/bsp/buildroot/package/wavemon/wavemon.hash b/bsp/buildroot/package/wavemon/wavemon.hash new file mode 100644 index 00000000..e35f6ace --- /dev/null +++ b/bsp/buildroot/package/wavemon/wavemon.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 81ee1f06f8349fee62e98ec5b53dff5b76c4d8fcb439f20cca806255239e3a2a wavemon-v0.8.0.tar.gz +sha256 681b86ef1469df8f7091040258dd01169bea2a7df294185c35bc867725deab2f 01e987a032b81af7bbeba1c439759d750dc1f398.patch diff --git a/bsp/buildroot/package/wavemon/wavemon.mk b/bsp/buildroot/package/wavemon/wavemon.mk new file mode 100644 index 00000000..746d45f3 --- /dev/null +++ b/bsp/buildroot/package/wavemon/wavemon.mk @@ -0,0 +1,19 @@ +################################################################################ +# +# wavemon +# +################################################################################ + +WAVEMON_VERSION = v0.8.0 +WAVEMON_SITE = $(call github,uoaerg,wavemon,$(WAVEMON_VERSION)) +WAVEMON_LICENSE = GPLv3+ +WAVEMON_LICENSE_FILES = COPYING +WAVEMON_DEPENDENCIES = host-pkgconf libnl ncurses + +# Fix musl build issue +WAVEMON_PATCH = https://github.com/uoaerg/wavemon/commit/01e987a032b81af7bbeba1c439759d750dc1f398.patch + +# Handwritten Makefile.in, automake isn't used +WAVEMON_MAKE_OPTS = CC="$(TARGET_CC)" + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/wayland-protocols/Config.in b/bsp/buildroot/package/wayland-protocols/Config.in new file mode 100644 index 00000000..8b4dedfd --- /dev/null +++ b/bsp/buildroot/package/wayland-protocols/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_WAYLAND_PROTOCOLS + bool "wayland-protocols" + # Not really... but useless otherwise + depends on BR2_PACKAGE_WAYLAND + help + Wayland protocols that adds functionality not available in + the Wayland core protocol. + + http://wayland.freedesktop.org/ diff --git a/bsp/buildroot/package/wayland-protocols/wayland-protocols.hash b/bsp/buildroot/package/wayland-protocols/wayland-protocols.hash new file mode 100644 index 00000000..380581b1 --- /dev/null +++ b/bsp/buildroot/package/wayland-protocols/wayland-protocols.hash @@ -0,0 +1,2 @@ +# From https://lists.freedesktop.org/archives/wayland-devel/2016-May/029014.html +sha256 014a9a23c21ed14f49b1005b3e8efa66d6337d4ceafc97f7b0d6707e7e3df572 wayland-protocols-1.4.tar.xz diff --git a/bsp/buildroot/package/wayland-protocols/wayland-protocols.mk b/bsp/buildroot/package/wayland-protocols/wayland-protocols.mk new file mode 100644 index 00000000..51ee9ee3 --- /dev/null +++ b/bsp/buildroot/package/wayland-protocols/wayland-protocols.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# wayland-protocols +# +################################################################################ + +WAYLAND_PROTOCOLS_VERSION = 1.4 +WAYLAND_PROTOCOLS_SITE = http://wayland.freedesktop.org/releases +WAYLAND_PROTOCOLS_SOURCE = wayland-protocols-$(WAYLAND_PROTOCOLS_VERSION).tar.xz +WAYLAND_PROTOCOLS_LICENSE = MIT +WAYLAND_PROTOCOLS_LICENSE_FILES = COPYING +WAYLAND_PROTOCOLS_INSTALL_STAGING = YES +WAYLAND_PROTOCOLS_INSTALL_TARGET = NO + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/wayland/0001-Support-architectures-with-non-empty-__USER_LABEL_PR.patch b/bsp/buildroot/package/wayland/0001-Support-architectures-with-non-empty-__USER_LABEL_PR.patch new file mode 100644 index 00000000..abefcff2 --- /dev/null +++ b/bsp/buildroot/package/wayland/0001-Support-architectures-with-non-empty-__USER_LABEL_PR.patch @@ -0,0 +1,57 @@ +From 0a337328411d5b3f37b169a83b6fee3f1726130f Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Thu, 26 May 2016 15:57:33 +0200 +Subject: [PATCH] Support architectures with non-empty __USER_LABEL_PREFIX__ + +On some architectures (like Blackfin), a C symbol does not directly +match with assembly symbols. The C symbol references are in fact all +prefixed by a so-called "user label prefix". So when a symbol defined +in an assembly file needs to be referenced from C, this symbol should +be prefixed by the "user label prefix". + +This commit updates dtddata.S to take into account +__USER_LABEL_PREFIX__ when it exists. + +Signed-off-by: Thomas Petazzoni +--- + src/dtddata.S | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +diff --git a/src/dtddata.S b/src/dtddata.S +index ce51133..ad2a4db 100644 +--- a/src/dtddata.S ++++ b/src/dtddata.S +@@ -30,17 +30,24 @@ + + /* from: http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967#comment-348129 */ + ++#ifdef __USER_LABEL_PREFIX__ ++#define CONCAT1(a, b) CONCAT2(a, b) ++#define CONCAT2(a, b) a ## b ++#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) ++#else ++#endif ++ + .macro binfile name file + .p2align 2 +- .globl \name\()_begin +-\name\()_begin: ++ .globl SYM(\name\()_begin) ++SYM(\name\()_begin): + .incbin "\file" +-\name\()_end: ++SYM(\name\()_end): + .byte 0 + .p2align 2 +- .globl \name\()_len +-\name\()_len: +- .int (\name\()_end - \name\()_begin) ++ .globl SYM(\name\()_len) ++SYM(\name\()_len): ++ .int (SYM(\name\()_end) - SYM(\name\()_begin)) + .endm + + .section .rodata +-- +2.7.4 + diff --git a/bsp/buildroot/package/wayland/0002-scanner-Use-uint32_t-instead-of-uint.patch b/bsp/buildroot/package/wayland/0002-scanner-Use-uint32_t-instead-of-uint.patch new file mode 100644 index 00000000..1d05f258 --- /dev/null +++ b/bsp/buildroot/package/wayland/0002-scanner-Use-uint32_t-instead-of-uint.patch @@ -0,0 +1,31 @@ +From 6750b47d9e0d3074d2e56aa36c476493f533d696 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Jul 2016 16:23:48 -0700 +Subject: [PATCH 1/1] scanner: Use uint32_t instead of uint + +uint32_t is C99 defined stdint type + +Signed-off-by: Khem Raj +Reviewed-by: Daniel Stone +[Rahul Bedarkar: Backported from: 6750b47d9e0d3074d2e56aa36c476493f533d696] +Signed-off-by: Rahul Bedarkar +--- + src/scanner.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/scanner.c b/src/scanner.c +index 6e2c3a3..ebae4cc 100644 +--- a/src/scanner.c ++++ b/src/scanner.c +@@ -819,7 +819,7 @@ find_enumeration(struct protocol *protocol, + struct interface *i; + struct enumeration *e; + char *enum_name; +- uint idx = 0, j; ++ uint32_t idx = 0, j; + + for (j = 0; j + 1 < strlen(enum_attribute); j++) { + if (enum_attribute[j] == '.') { +-- +2.6.2 + diff --git a/bsp/buildroot/package/wayland/Config.in b/bsp/buildroot/package/wayland/Config.in index 857ba73f..32718fc2 100644 --- a/bsp/buildroot/package/wayland/Config.in +++ b/bsp/buildroot/package/wayland/Config.in @@ -2,8 +2,9 @@ config BR2_PACKAGE_WAYLAND bool "wayland" depends on !BR2_STATIC_LIBS # dlfcn.h depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_EXPAT + select BR2_PACKAGE_LIBFFI + select BR2_PACKAGE_LIBXML2 help Wayland is a project to define a protocol for a compositor to talk to its clients as well as a library implementation diff --git a/bsp/buildroot/package/wayland/wayland.hash b/bsp/buildroot/package/wayland/wayland.hash index 316d6b5a..be1b6b5f 100644 --- a/bsp/buildroot/package/wayland/wayland.hash +++ b/bsp/buildroot/package/wayland/wayland.hash @@ -1,2 +1,2 @@ -# From: http://lists.freedesktop.org/archives/wayland-devel/2015-June/022630.html -sha256 f17c938d1c24fd0a10f650a623a2775d329db3168b5732e498b08388ec776fc8 wayland-1.8.1.tar.xz +# From https://lists.freedesktop.org/archives/wayland-devel/2016-June/029163.html +sha256 9540925f7928becfdf5e3b84c70757f6589bf1ceef09bea78784d8e4772c0db0 wayland-1.11.0.tar.xz diff --git a/bsp/buildroot/package/wayland/wayland.mk b/bsp/buildroot/package/wayland/wayland.mk index 4e44fa0c..d4b4664f 100644 --- a/bsp/buildroot/package/wayland/wayland.mk +++ b/bsp/buildroot/package/wayland/wayland.mk @@ -4,28 +4,17 @@ # ################################################################################ -WAYLAND_VERSION = 1.8.1 +WAYLAND_VERSION = 1.11.0 WAYLAND_SITE = http://wayland.freedesktop.org/releases WAYLAND_SOURCE = wayland-$(WAYLAND_VERSION).tar.xz WAYLAND_LICENSE = MIT WAYLAND_LICENSE_FILES = COPYING - WAYLAND_INSTALL_STAGING = YES -WAYLAND_DEPENDENCIES = libffi host-pkgconf host-wayland expat +WAYLAND_DEPENDENCIES = host-pkgconf host-wayland expat libffi libxml2 +HOST_WAYLAND_DEPENDENCIES = host-pkgconf host-expat host-libffi host-libxml2 # wayland-scanner is only needed for building, not on the target -WAYLAND_CONF_OPTS = --disable-scanner - -# We must provide a specialy-crafted wayland-scanner .pc file -# which we vampirise and adapt from the host-wayland copy -define WAYLAND_SCANNER_PC - $(INSTALL) -m 0644 -D $(HOST_DIR)/usr/lib/pkgconfig/wayland-scanner.pc \ - $(STAGING_DIR)/usr/lib/pkgconfig/wayland-scanner.pc - $(SED) 's:^prefix=.*:prefix=/usr:' \ - -e 's:^wayland_scanner=.*:wayland_scanner=$(HOST_DIR)/usr/bin/wayland-scanner:' \ - $(STAGING_DIR)/usr/lib/pkgconfig/wayland-scanner.pc -endef -WAYLAND_POST_INSTALL_STAGING_HOOKS += WAYLAND_SCANNER_PC +WAYLAND_CONF_OPTS = --disable-scanner --with-host-scanner # Remove the DTD from the target, it's not needed at runtime define WAYLAND_TARGET_CLEANUP diff --git a/bsp/buildroot/package/webkit/webkit.hash b/bsp/buildroot/package/webkit/webkit.hash new file mode 100644 index 00000000..59a974df --- /dev/null +++ b/bsp/buildroot/package/webkit/webkit.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 51f808c96f52729dde6fb2b58752a6f623aeea74ff1ac6d4a1658720c6206fbe webkitgtk-1.11.5.tar.xz diff --git a/bsp/buildroot/package/webkitgtk/Config.in b/bsp/buildroot/package/webkitgtk/Config.in new file mode 100644 index 00000000..25f6fad4 --- /dev/null +++ b/bsp/buildroot/package/webkitgtk/Config.in @@ -0,0 +1,77 @@ +config BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS + bool + # ARM needs BLX, so v5t+, BE completely untested so disabled + default y if BR2_arm && !BR2_ARM_CPU_ARMV4 + default y if BR2_i386 || BR2_x86_64 + # Disabled on MIPS big endian due to sigbus + default y if BR2_mipsel || BR2_mips64el + # Disabled on PowerPC pending runtime testing + # Disabled on SuperH because of segfault + depends on BR2_USE_MMU # libglib2 + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + +comment "webkitgtk needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9" + depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS + depends on !BR2_PACKAGE_LIBGTK3 || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_USES_GLIBC || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + depends on BR2_USE_MMU + +config BR2_PACKAGE_WEBKITGTK + bool "webkitgtk" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + depends on BR2_TOOLCHAIN_USES_GLIBC + depends on BR2_PACKAGE_LIBGTK3 + depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS + select BR2_PACKAGE_CAIRO + select BR2_PACKAGE_CAIRO_PNG + select BR2_PACKAGE_ENCHANT + select BR2_PACKAGE_HARFBUZZ + select BR2_PACKAGE_ICU + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBSECRET + select BR2_PACKAGE_LIBSOUP + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_LIBXSLT + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_WEBP + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE if BR2_PACKAGE_LIBGTK3_X11 + select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_LIBGTK3_X11 + select BR2_PACKAGE_XLIB_LIBXRENDER if BR2_PACKAGE_LIBGTK3_X11 + select BR2_PACKAGE_XLIB_LIBXT if BR2_PACKAGE_LIBGTK3_X11 + help + WebKit is an open source, standards compliant web browser engine. + + http://www.webkitgtk.org/ + +if BR2_PACKAGE_WEBKITGTK + +config BR2_PACKAGE_WEBKITGTK_HTTPS + bool "HTTPS support" + select BR2_PACKAGE_CA_CERTIFICATES # runtime + select BR2_PACKAGE_LIBSOUP_SSL + help + Enable HTTPS protocol support. + +config BR2_PACKAGE_WEBKITGTK_MULTIMEDIA + bool "multimedia support" + select BR2_PACKAGE_GSTREAMER1 + select BR2_PACKAGE_GST1_PLUGINS_BASE + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME + select BR2_PACKAGE_GST1_PLUGINS_GOOD + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4 + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP + select BR2_PACKAGE_GST1_LIBAV + help + This option pulls in all of the required dependencies + to enable multimedia (video/audio) support. + +endif diff --git a/bsp/buildroot/package/webkitgtk/webkitgtk.hash b/bsp/buildroot/package/webkitgtk/webkitgtk.hash new file mode 100644 index 00000000..f74677eb --- /dev/null +++ b/bsp/buildroot/package/webkitgtk/webkitgtk.hash @@ -0,0 +1,4 @@ +# From http://www.webkitgtk.org/releases/webkitgtk-2.12.4.tar.xz.sha1 +sha1 ebfe6015d81129b6a13a9596d065c54e9c1b93f6 webkitgtk-2.12.4.tar.xz +# Calculated based on the hash above +sha256 424d3177599abbc1eb1a1ad7928dd280a62006e992f2fada2e059375a9609a77 webkitgtk-2.12.4.tar.xz diff --git a/bsp/buildroot/package/webkitgtk/webkitgtk.mk b/bsp/buildroot/package/webkitgtk/webkitgtk.mk new file mode 100644 index 00000000..f5c43345 --- /dev/null +++ b/bsp/buildroot/package/webkitgtk/webkitgtk.mk @@ -0,0 +1,89 @@ +################################################################################ +# +# webkitgtk +# +################################################################################ + +WEBKITGTK_VERSION = 2.12.4 +WEBKITGTK_SITE = http://www.webkitgtk.org/releases +WEBKITGTK_SOURCE = webkitgtk-$(WEBKITGTK_VERSION).tar.xz +WEBKITGTK_INSTALL_STAGING = YES +WEBKITGTK_LICENSE = LGPLv2.1+, BSD-2c +WEBKITGTK_LICENSE_FILES = \ + Source/WebCore/LICENSE-APPLE \ + Source/WebCore/LICENSE-LGPL-2.1 +WEBKITGTK_DEPENDENCIES = host-ruby host-flex host-bison host-gperf \ + enchant harfbuzz icu jpeg libgtk3 libsecret libsoup \ + libxml2 libxslt sqlite webp +WEBKITGTK_CONF_OPTS = \ + -DENABLE_API_TESTS=OFF \ + -DENABLE_GEOLOCATION=OFF \ + -DENABLE_GTKDOC=OFF \ + -DENABLE_INTROSPECTION=OFF \ + -DENABLE_MINIBROWSER=ON \ + -DENABLE_SPELLCHECK=ON \ + -DPORT=GTK \ + -DUSE_LIBNOTIFY=OFF \ + -DUSE_LIBHYPHEN=OFF + +# ARM needs NEON for JIT +# i386 & x86_64 don't seem to have any special requirements +ifeq ($(BR2_ARM_CPU_HAS_NEON)$(BR2_i386)$(BR2_x86_64),y) +WEBKITGTK_CONF_OPTS += -DENABLE_JIT=ON +else +WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF +endif + +ifeq ($(BR2_PACKAGE_WEBKITGTK_MULTIMEDIA),y) +WEBKITGTK_CONF_OPTS += \ + -DENABLE_VIDEO=ON \ + -DENABLE_WEB_AUDIO=ON +WEBKITGTK_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base gst1-plugins-good +else +WEBKITGTK_CONF_OPTS += \ + -DENABLE_VIDEO=OFF \ + -DENABLE_WEB_AUDIO=OFF +endif + +# Only one target platform can be built, assume X11 > Wayland + +# GTK3-X11 target gives OpenGL from newer libgtk3 versions +# Consider this better than EGL + maybe GLESv2 since both can't be built +# 2D CANVAS acceleration requires OpenGL proper with cairo-gl +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) +WEBKITGTK_CONF_OPTS += \ + -DENABLE_ACCELERATED_2D_CANVAS=ON \ + -DENABLE_GLES2=OFF \ + -DENABLE_OPENGL=ON \ + -DENABLE_X11_TARGET=ON +WEBKITGTK_DEPENDENCIES += libgl \ + xlib_libXcomposite xlib_libXdamage xlib_libXrender xlib_libXt +# It can use libgtk2 for npapi plugins +ifeq ($(BR2_PACKAGE_LIBGTK2),y) +WEBKITGTK_CONF_OPTS += -DENABLE_PLUGIN_PROCESS_GTK2=ON +WEBKITGTK_DEPENDENCIES += libgtk2 +else +WEBKITGTK_CONF_OPTS += -DENABLE_PLUGIN_PROCESS_GTK2=OFF +endif +else # !X11 +# GTK3-BROADWAY/WAYLAND needs at least EGL +WEBKITGTK_DEPENDENCIES += libegl +# GLESv2 support is optional though +ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) +WEBKITGTK_CONF_OPTS += \ + -DENABLE_GLES2=ON \ + -DENABLE_OPENGL=ON +WEBKITGTK_DEPENDENCIES += libgles +else +# Disable general OpenGL (shading) if there's no GLESv2 +WEBKITGTK_CONF_OPTS += \ + -DENABLE_GLES2=OFF \ + -DENABLE_OPENGL=OFF +endif +# We must explicitly state the wayland target +ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y) +WEBKITGTK_CONF_OPTS += -DENABLE_WAYLAND_TARGET=ON +endif +endif + +$(eval $(cmake-package)) diff --git a/bsp/buildroot/package/webkitgtk24/0002-WTF-Platform.h-use-_ABI64-instead-of-_MIPS_SIM_ABI64.patch b/bsp/buildroot/package/webkitgtk24/0002-WTF-Platform.h-use-_ABI64-instead-of-_MIPS_SIM_ABI64.patch deleted file mode 100644 index d56dc581..00000000 --- a/bsp/buildroot/package/webkitgtk24/0002-WTF-Platform.h-use-_ABI64-instead-of-_MIPS_SIM_ABI64.patch +++ /dev/null @@ -1,46 +0,0 @@ -[WTF] Platform.h: use _ABI64 instead of _MIPS_SIM_ABI64 to determine MIPS N64 - -Patch backported from upstream: - -http://trac.webkit.org/changeset/185863 - -I tweaked this patch to remove the Changelog part in order to make it -apply in Buildroot. - -Signed-off-by: Vicente Olivert Riera - -From 2c84c8d1c294037141473c10e0374df63a3cdea9 Mon Sep 17 00:00:00 2001 -From: ossy@webkit.org -Date: Tue, 23 Jun 2015 06:33:16 +0000 -Subject: [PATCH] [WTF] Platform.h: use _ABI64 instead of _MIPS_SIM_ABI64 to determine MIPS N64 - https://bugs.webkit.org/show_bug.cgi?id=145113 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Patch by YunQiang Su on 2015-06-22 -Reviewed by Csaba Osztrogonác. - -* wtf/Platform.h: - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@185863 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WTF/wtf/Platform.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h -index c234f50..b5e9859 100644 ---- a/Source/WTF/wtf/Platform.h -+++ b/Source/WTF/wtf/Platform.h -@@ -82,7 +82,7 @@ - - /* CPU(MIPS) - MIPS 32-bit and 64-bit */ - #if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_) || defined(__mips64)) --#if defined(_MIPS_SIM_ABI64) && (_MIPS_SIM == _MIPS_SIM_ABI64) -+#if defined(_ABI64) && (_MIPS_SIM == _ABI64) - #define WTF_CPU_MIPS64 1 - #define WTF_MIPS_ARCH __mips64 - #else --- -1.7.1 - diff --git a/bsp/buildroot/package/webkitgtk24/Config.in b/bsp/buildroot/package/webkitgtk24/Config.in index 3c7c3300..bba3a2b9 100644 --- a/bsp/buildroot/package/webkitgtk24/Config.in +++ b/bsp/buildroot/package/webkitgtk24/Config.in @@ -16,9 +16,11 @@ comment "webkitgtk24 needs libgtk2 and a toolchain w/ C++, wchar, NPTL, gcc >=4. !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP \ || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_USE_MMU + depends on BR2_DEPRECATED_SINCE_2016_05 config BR2_PACKAGE_WEBKITGTK24 bool "webkitgtk 2.4.x" + depends on BR2_DEPRECATED_SINCE_2016_05 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL @@ -48,3 +50,34 @@ config BR2_PACKAGE_WEBKITGTK24 WebKit is an open source, standards compliant web browser engine. http://www.webkitgtk.org/ + +if BR2_PACKAGE_WEBKITGTK24 + +config BR2_PACKAGE_WEBKITGTK24_HTTPS + bool "HTTPS support" + select BR2_PACKAGE_CA_CERTIFICATES # runtime + select BR2_PACKAGE_LIBSOUP_SSL + help + Enable HTTPS protocol support. + +config BR2_PACKAGE_WEBKITGTK24_MULTIMEDIA + bool "multimedia support" + select BR2_PACKAGE_GSTREAMER1 + select BR2_PACKAGE_GST1_PLUGINS_BASE + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PLAYBACK + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE + select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME + select BR2_PACKAGE_GST1_PLUGINS_GOOD + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ISOMP4 + select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_RTSP + select BR2_PACKAGE_GST1_LIBAV + help + This option pulls in all of the required dependencies + to enable basic multimedia (video/audio) support. + +endif diff --git a/bsp/buildroot/package/webkitgtk24/webkitgtk24.hash b/bsp/buildroot/package/webkitgtk24/webkitgtk24.hash index bd1754e4..d3a9cca0 100644 --- a/bsp/buildroot/package/webkitgtk24/webkitgtk24.hash +++ b/bsp/buildroot/package/webkitgtk24/webkitgtk24.hash @@ -1,2 +1,4 @@ -# From http://www.webkitgtk.org/releases/webkitgtk-2.4.9.tar.xz.sha1 -sha1 fbe02db8a4f01a70e7cdf0d16f8a18463e18b104 webkitgtk-2.4.9.tar.xz +# From http://www.webkitgtk.org/releases/webkitgtk-2.4.10.tar.xz.sha1 +sha1 7fe2fe07ed21d00d8a8483d68c13a8c7ff0ff320 webkitgtk-2.4.10.tar.xz +# Calculated based on the hash above +sha256 33fda4b20d7fec2d6e9399ba03ef3f6d2a733c628bd77d397880c44e4bf7c614 webkitgtk-2.4.10.tar.xz diff --git a/bsp/buildroot/package/webkitgtk24/webkitgtk24.mk b/bsp/buildroot/package/webkitgtk24/webkitgtk24.mk index 0dc47748..4b7d6949 100644 --- a/bsp/buildroot/package/webkitgtk24/webkitgtk24.mk +++ b/bsp/buildroot/package/webkitgtk24/webkitgtk24.mk @@ -4,7 +4,7 @@ # ################################################################################ -WEBKITGTK24_VERSION = 2.4.9 +WEBKITGTK24_VERSION = 2.4.10 WEBKITGTK24_SITE = http://www.webkitgtk.org/releases WEBKITGTK24_SOURCE = webkitgtk-$(WEBKITGTK24_VERSION).tar.xz WEBKITGTK24_INSTALL_STAGING = YES @@ -29,7 +29,7 @@ endif WEBKITGTK24_CONF_ENV = ac_cv_path_icu_config=$(STAGING_DIR)/usr/bin/icu-config # Some 32-bit architectures need libatomic support for 64-bit ops -ifeq ($(BR2_i386)$(BR2_mips)$(BR2_mipsel)$(BR2_sh),y) +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) WEBKITGTK24_CONF_ENV += LIBS="-latomic" endif @@ -42,11 +42,11 @@ WEBKITGTK24_CONF_OPTS = \ --disable-gtk-doc-html \ --disable-wayland-target -ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) +ifeq ($(BR2_PACKAGE_WEBKITGTK24_MULTIMEDIA),y) WEBKITGTK24_CONF_OPTS += \ --enable-video \ --enable-web-audio -WEBKITGTK24_DEPENDENCIES += gst1-plugins-good +WEBKITGTK24_DEPENDENCIES += gstreamer1 gst1-libav gst1-plugins-base gst1-plugins-good else WEBKITGTK24_CONF_OPTS += \ --disable-video \ diff --git a/bsp/buildroot/package/webp/Config.in b/bsp/buildroot/package/webp/Config.in index e385b5ee..646eb9ef 100644 --- a/bsp/buildroot/package/webp/Config.in +++ b/bsp/buildroot/package/webp/Config.in @@ -5,3 +5,14 @@ config BR2_PACKAGE_WEBP compression for images on the web https://developers.google.com/speed/webp/ + +if BR2_PACKAGE_WEBP + +config BR2_PACKAGE_WEBP_DEMUX + bool "webpdemux" + help + Demux is a part of WebPMux for extraction and manipulation + of an extended format WebP file, which can have features + like color profile, metadata and animation. + +endif diff --git a/bsp/buildroot/package/webp/webp.mk b/bsp/buildroot/package/webp/webp.mk index 5f2cab76..8d9ca8f7 100644 --- a/bsp/buildroot/package/webp/webp.mk +++ b/bsp/buildroot/package/webp/webp.mk @@ -17,6 +17,12 @@ WEBP_CONF_OPTS += \ --with-tiffincludedir=$(STAGING_DIR)/usr/include \ --with-tifflibdir=$(STAGING_DIR)/usr/lib +ifeq ($(BR2_PACKAGE_WEBP_DEMUX),y) +WEBP_CONF_OPTS += --enable-libwebpdemux +else +WEBP_CONF_OPTS += --disable-libwebpdemux +endif + ifeq ($(BR2_PACKAGE_LIBPNG),y) WEBP_DEPENDENCIES += libpng WEBP_CONF_ENV += ac_cv_path_LIBPNG_CONFIG=$(STAGING_DIR)/usr/bin/libpng-config diff --git a/bsp/buildroot/package/webrtc-audio-processing/0001-configure.ac-fix-architecture-detection.patch b/bsp/buildroot/package/webrtc-audio-processing/0001-configure.ac-fix-architecture-detection.patch new file mode 100644 index 00000000..d0ea4bd6 --- /dev/null +++ b/bsp/buildroot/package/webrtc-audio-processing/0001-configure.ac-fix-architecture-detection.patch @@ -0,0 +1,84 @@ +From 233413841882608c6d5b98b6ce89fcb8a292db82 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 6 Aug 2016 10:22:34 +0200 +Subject: [PATCH] configure.ac: fix architecture detection + +The current architecture detection, based on the "host_cpu" part of the +tuple does not work properly for a number of reason: + + - The code assumes that if host_cpu starts with "arm" then ARM + instructions are available, which is incorrect. Indeed, Cortex-M + platforms can run Linux, they are ARM platforms (so host_cpu = arm), + but they don't support ARM instructions: they support only the + Thumb-2 instruction set. + + - The armv7 case is also not very useful, as it is not standard at all + to pass armv7 as host_cpu even if the host system is actually ARMv7 + based. + + - For the same reason, the armv8 case is not very useful: armv8 is + never used as the host_cpu part of a tuple. + +So, this commit moves away from a host_cpu based logic, and instead +tests using AC_CHECK_DECLS() the built-in definitions of the compiler: + + - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor + that supports the ARM instruction set (this allows to exclude Thumb-2 + only processors). + + - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and + we can enable the corresponding optimizations + + - Same for __i386__ and __x86_64__. + +Signed-off-by: Thomas Petazzoni +--- +Submitted upstream, under a slightly different form so that it applies +on master: + + https://lists.freedesktop.org/archives/pulseaudio-discuss/2016-August/026600.html +--- + configure.ac | 27 +++++++++------------------ + 1 file changed, 9 insertions(+), 18 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6f9553b..836c6ad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,24 +55,15 @@ AS_CASE(["${host}"], + ) + AC_SUBST(PLATFORM_CFLAGS) + +-AS_CASE(["${host_cpu}"], +- [i?86|x86_64], +- [ +- HAVE_X86=1 +- ], +- [armv7*|armv8*], +- [ +- HAVE_ARM=1 +- HAVE_ARMV7=1 +- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7" +- ], +- [arm*], +- [ +- HAVE_ARM=1 +- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" +- ] +- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines +-) ++# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions, ++# which don't work on Thumb-2 only platforms (ARMv7-M). ++AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM], ++ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"]) ++AC_CHECK_DECLS([__ARM_ARCH_7A__], ++ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"]) ++AC_CHECK_DECLS([__i386__], [HAVE_X86=1]) ++AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1]) ++ + AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) + AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) + AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"]) +-- +2.7.4 + diff --git a/bsp/buildroot/package/webrtc-audio-processing/0002-Proper-detection-of-cxxabi.h-and-execinfo.h.patch b/bsp/buildroot/package/webrtc-audio-processing/0002-Proper-detection-of-cxxabi.h-and-execinfo.h.patch new file mode 100644 index 00000000..a0332db8 --- /dev/null +++ b/bsp/buildroot/package/webrtc-audio-processing/0002-Proper-detection-of-cxxabi.h-and-execinfo.h.patch @@ -0,0 +1,63 @@ +From b7a166acaddc4c78afa2b653e25114d9114699f3 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 6 Aug 2016 11:24:50 +0200 +Subject: [PATCH] Proper detection of cxxabi.h and execinfo.h + +The current code in webrtc/base/checks.cc assumes that if __GLIBCXX__ is +defined and __UCLIBC__ is not defined, then both cxxabi.h and execinfo.h +will be available. + +Unfortunately, this is not correct with the musl C library: + + - It defines __GLIBCXX__ + - It does not define __UCLIBC__ (it's not uClibc after all!) + - But it also doesn't provide execinfo.h + +Therefore, in order to make things work properly, we switch to proper +autoconf checks for cxxabi.h and execinfo.h, and only use the backtrace +functionality if both are provided. + +Signed-off-by: Thomas Petazzoni +--- + configure.ac | 2 ++ + webrtc/base/checks.cc | 4 ++-- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index acbb3e2..ff4c752 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -45,6 +45,8 @@ AC_SUBST(GNUSTL_CFLAGS) + # Borrowed from gst-plugins-bad + AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-]) + ++AC_CHECK_HEADERS([cxxabi.h execinfo.h]) ++ + # Based on gst-plugins-bad configure.ac and defines in + # /build/config/BUILDCONFIG.gn and + # webrtc/BUILD.gn +diff --git a/webrtc/base/checks.cc b/webrtc/base/checks.cc +index 49a31f2..05d23a6 100644 +--- a/webrtc/base/checks.cc ++++ b/webrtc/base/checks.cc +@@ -16,7 +16,7 @@ + #include + #include + +-#if defined(__GLIBCXX__) && !defined(__UCLIBC__) ++#if defined(HAVE_CXX_ABI_H) && defined(HAVE_EXECINFO_H) + #include + #include + #endif +@@ -55,7 +55,7 @@ void PrintError(const char* format, ...) { + // to get usable symbols on Linux. This is copied from V8. Chromium has a more + // advanced stace trace system; also more difficult to copy. + void DumpBacktrace() { +-#if defined(__GLIBCXX__) && !defined(__UCLIBC__) ++#if defined(HAVE_CXX_ABI_H) && defined(HAVE_EXECINFO_H) + void* trace[100]; + int size = backtrace(trace, sizeof(trace) / sizeof(*trace)); + char** symbols = backtrace_symbols(trace, size); +-- +2.7.4 + diff --git a/bsp/buildroot/package/webrtc-audio-processing/Config.in b/bsp/buildroot/package/webrtc-audio-processing/Config.in index f228bc7c..79a06d8b 100644 --- a/bsp/buildroot/package/webrtc-audio-processing/Config.in +++ b/bsp/buildroot/package/webrtc-audio-processing/Config.in @@ -2,13 +2,16 @@ config BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING bool "webrtc-audio-processing" depends on BR2_arm || BR2_i386 || BR2_x86_64 depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + # pthread_condattr_setclock + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL help AudioProcessing library based on Google's implementation of WebRTC. http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/ -comment "webrtc-audio-processing needs a toolchain w/ C++, threads" +comment "webrtc-audio-processing needs a toolchain w/ C++, NPTL, gcc >= 4.8" depends on BR2_arm || BR2_i386 || BR2_x86_64 - depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \ + || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 diff --git a/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.hash b/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.hash index afba5a96..fe071191 100644 --- a/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.hash +++ b/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 ed4b52f9c2688b97628035a5565377d74704d7c04de4254a768df3342c7afedc webrtc-audio-processing-0.1.tar.xz +sha256 756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa webrtc-audio-processing-0.3.tar.xz diff --git a/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.mk b/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.mk index 92fcba9f..75e3c883 100644 --- a/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.mk +++ b/bsp/buildroot/package/webrtc-audio-processing/webrtc-audio-processing.mk @@ -4,12 +4,15 @@ # ################################################################################ -WEBRTC_AUDIO_PROCESSING_VERSION = 0.1 +WEBRTC_AUDIO_PROCESSING_VERSION = 0.3 WEBRTC_AUDIO_PROCESSING_SOURCE = webrtc-audio-processing-$(WEBRTC_AUDIO_PROCESSING_VERSION).tar.xz WEBRTC_AUDIO_PROCESSING_SITE = http://freedesktop.org/software/pulseaudio/webrtc-audio-processing WEBRTC_AUDIO_PROCESSING_INSTALL_STAGING = YES WEBRTC_AUDIO_PROCESSING_LICENSE = BSD-3c WEBRTC_AUDIO_PROCESSING_LICENSE_FILES = COPYING +# 0001-configure.ac-fix-architecture-detection.patch +# 0002-Proper-detection-of-cxxabi.h-and-execinfo.h.patch +WEBRTC_AUDIO_PROCESSING_AUTORECONF = YES ifeq ($(BR2_SOFT_FLOAT),y) WEBRTC_AUDIO_PROCESSING_CONF_OPTS += --with-ns-mode=fixed diff --git a/bsp/buildroot/package/weston/0002-libweston-compositor-rdp-fix-no-break-space-U-A0-U8-.patch b/bsp/buildroot/package/weston/0002-libweston-compositor-rdp-fix-no-break-space-U-A0-U8-.patch new file mode 100644 index 00000000..b3911476 --- /dev/null +++ b/bsp/buildroot/package/weston/0002-libweston-compositor-rdp-fix-no-break-space-U-A0-U8-.patch @@ -0,0 +1,34 @@ +From 7ee8589dd83e52ae6af3ec5247c3403e8ded69a5 Mon Sep 17 00:00:00 2001 +From: "Yann E. MORIN" +Date: Tue, 9 Aug 2016 20:00:29 +0200 +Subject: [PATCH] libweston/compositor-rdp: fix no-break space U+A0 (U8+C2A0) + +There is a UTF-8 no-break space (U+A0, U8+C2A0) in the definition of +macro NSC_RESET in the case of 1.2.2 <= FreeRDP < 2.0. + +This is causing build issues (\302 is 0xC2, \240 is 0xA0): + http://autobuild.buildroot.net/results/f49/f49a9cbb7bdc5d9e05dcf0a20bd83f059e234e74/build-end.log + +Fix that by using a plain, boring space U+20. + +Signed-off-by: "Yann E. MORIN" +--- + libweston/compositor-rdp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c +index 11f5f05..ee81300 100644 +--- a/src/compositor-rdp.c ++++ b/src/compositor-rdp.c +@@ -58,7 +58,7 @@ + # define NSC_RESET(C, W, H) nsc_context_reset(C, W, H) + # define RFX_RESET(C, W, H) rfx_context_reset(C, W, H) + #else +-# define NSC_RESET(C, W, H) do { nsc_context_reset(C); C->width = W; C->height = H; } while(0) ++# define NSC_RESET(C, W, H) do { nsc_context_reset(C); C->width = W; C->height = H; } while(0) + # define RFX_RESET(C, W, H) do { rfx_context_reset(C); C->width = W; C->height = H; } while(0) + #endif + #define FREERDP_CB_RET_TYPE BOOL +-- +2.7.4 + diff --git a/bsp/buildroot/package/weston/Config.in b/bsp/buildroot/package/weston/Config.in index 4c820e96..c1eb7dad 100644 --- a/bsp/buildroot/package/weston/Config.in +++ b/bsp/buildroot/package/weston/Config.in @@ -6,6 +6,7 @@ comment "weston needs udev and a toolchain w/ locale, threads, dynamic library, config BR2_PACKAGE_WESTON bool "weston" select BR2_PACKAGE_WAYLAND + select BR2_PACKAGE_WAYLAND_PROTOCOLS select BR2_PACKAGE_LIBXKBCOMMON select BR2_PACKAGE_CAIRO select BR2_PACKAGE_CAIRO_PNG @@ -36,6 +37,16 @@ if BR2_PACKAGE_WESTON config BR2_PACKAGE_WESTON_HAS_COMPOSITOR bool +config BR2_PACKAGE_WESTON_DRM + bool "DRM compositor" + depends on BR2_PACKAGE_MESA3D_OPENGL_EGL + select BR2_PACKAGE_LIBDRM + select BR2_PACKAGE_WESTON_HAS_COMPOSITOR + +# Uses libgbm from mesa3d +comment "DRM compositor needs an OpenGL EGL backend provided by mesa3d" + depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL + config BR2_PACKAGE_WESTON_FBDEV bool "fbdev compositor" @@ -71,4 +82,31 @@ config BR2_PACKAGE_WESTON_RPI depends on BR2_PACKAGE_RPI_USERLAND select BR2_PACKAGE_WESTON_HAS_COMPOSITOR +config BR2_PACKAGE_WESTON_X11 + bool "X11 compositor" + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_LIBXCB + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_WESTON_HAS_COMPOSITOR + +comment "X11 compositor needs X.org enabled" + depends on !BR2_PACKAGE_XORG7 + +config BR2_PACKAGE_WESTON_XWAYLAND + bool "XWayland support" + depends on BR2_PACKAGE_XORG7 + depends on BR2_PACKAGE_LIBEPOXY + select BR2_PACKAGE_CAIRO + select BR2_PACKAGE_LIBXCB + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXCURSOR + +comment "XWayland support needs libepoxy and X.org enabled" + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_LIBEPOXY + +config BR2_PACKAGE_WESTON_DEMO_CLIENTS + bool "demo clients" + help + This enables the installation of Weston's demo clients. + endif diff --git a/bsp/buildroot/package/weston/weston.hash b/bsp/buildroot/package/weston/weston.hash index e7bc2bb5..4f23511d 100644 --- a/bsp/buildroot/package/weston/weston.hash +++ b/bsp/buildroot/package/weston/weston.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/wayland-devel/2015-June/022416.html -sha256 8963e69f328e815cec42c58046c4af721476c7541bb7d9edc71740fada5ad312 weston-1.8.0.tar.xz +# From https://lists.freedesktop.org/archives/wayland-devel/2016-June/029164.html +sha256 05e086e9f186a06843b9f7a5e1abf19347b1a6e4be26d7e74927abc17b6b7125 weston-1.11.0.tar.xz diff --git a/bsp/buildroot/package/weston/weston.mk b/bsp/buildroot/package/weston/weston.mk index 4ad89cee..31c9281b 100644 --- a/bsp/buildroot/package/weston/weston.mk +++ b/bsp/buildroot/package/weston/weston.mk @@ -4,26 +4,60 @@ # ################################################################################ -WESTON_VERSION = 1.8.0 +WESTON_VERSION = 1.11.0 WESTON_SITE = http://wayland.freedesktop.org/releases WESTON_SOURCE = weston-$(WESTON_VERSION).tar.xz WESTON_LICENSE = MIT WESTON_LICENSE_FILES = COPYING -WESTON_DEPENDENCIES = host-pkgconf wayland libxkbcommon pixman libpng \ - jpeg mtdev udev cairo libinput +WESTON_DEPENDENCIES = host-pkgconf wayland wayland-protocols \ + libxkbcommon pixman libpng jpeg mtdev udev cairo libinput \ + $(if $(BR2_PACKAGE_WEBP),webp) WESTON_CONF_OPTS = \ --with-dtddir=$(STAGING_DIR)/usr/share/wayland \ - --disable-egl \ - --disable-simple-egl-clients \ - --disable-xwayland \ - --disable-x11-compositor \ - --disable-drm-compositor \ - --disable-wayland-compositor \ --disable-headless-compositor \ - --disable-weston-launch \ - --disable-colord + --disable-colord \ + --disable-setuid-install + +WESTON_MAKE_OPTS = \ + WAYLAND_PROTOCOLS_DATADIR=$(STAGING_DIR)/usr/share/wayland-protocols + +# Uses VIDIOC_EXPBUF, only available from 3.8+ +ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8),) +WESTON_CONF_OPTS += --disable-simple-dmabuf-v4l-client +endif + +ifeq ($(BR2_PACKAGE_DBUS),y) +WESTON_CONF_OPTS += --enable-dbus +WESTON_DEPENDENCIES += dbus +else +WESTON_CONF_OPTS += --disable-dbus +endif + +# weston-launch must be u+s root in order to work properly +ifeq ($(BR2_PACKAGE_LINUX_PAM),y) +define WESTON_PERMISSIONS + /usr/bin/weston-launch f 4755 0 0 - - - - - +endef +define WESTON_USERS + - - weston-launch -1 - - - - Weston launcher group +endef +WESTON_CONF_OPTS += --enable-weston-launch +WESTON_DEPENDENCIES += linux-pam +else +WESTON_CONF_OPTS += --disable-weston-launch +endif + +# Needs wayland-egl, which normally only mesa provides +ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL)$(BR2_PACKAGE_MESA3D_OPENGL_ES),yy) +WESTON_CONF_OPTS += --enable-egl +WESTON_DEPENDENCIES += libegl +else +WESTON_CONF_OPTS += \ + --disable-egl \ + --disable-simple-egl-clients +endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) WESTON_DEPENDENCIES += libunwind @@ -39,21 +73,79 @@ WESTON_CONF_OPTS += --disable-rdp-compositor endif ifeq ($(BR2_PACKAGE_WESTON_FBDEV),y) -WESTON_CONF_OPTS += --enable-fbdev-compositor +WESTON_CONF_OPTS += \ + --enable-fbdev-compositor \ + WESTON_NATIVE_BACKEND=fbdev-backend.so else WESTON_CONF_OPTS += --disable-fbdev-compositor endif +ifeq ($(BR2_PACKAGE_WESTON_DRM),y) +WESTON_CONF_OPTS += \ + --enable-drm-compositor \ + WESTON_NATIVE_BACKEND=drm-backend.so +WESTON_DEPENDENCIES += libdrm +else +WESTON_CONF_OPTS += --disable-drm-compositor +endif + ifeq ($(BR2_PACKAGE_WESTON_RPI),y) WESTON_DEPENDENCIES += rpi-userland WESTON_CONF_OPTS += --enable-rpi-compositor \ --disable-resize-optimization \ - --disable-setuid-install \ - --disable-xwayland-test \ - --disable-simple-egl-clients \ WESTON_NATIVE_BACKEND=rpi-backend.so else WESTON_CONF_OPTS += --disable-rpi-compositor endif # BR2_PACKAGE_WESTON_RPI +ifeq ($(BR2_PACKAGE_WESTON_X11),y) +WESTON_CONF_OPTS += \ + --enable-x11-compositor \ + WESTON_NATIVE_BACKEND=x11-backend.so +WESTON_DEPENDENCIES += libxcb xlib_libX11 +else +WESTON_CONF_OPTS += --disable-x11-compositor +endif + +ifeq ($(BR2_PACKAGE_WESTON_XWAYLAND),y) +WESTON_CONF_OPTS += --enable-xwayland +WESTON_DEPENDENCIES += cairo libepoxy libxcb xlib_libX11 xlib_libXcursor +else +WESTON_CONF_OPTS += --disable-xwayland +endif + +ifeq ($(BR2_PACKAGE_LIBVA),y) +WESTON_CONF_OPTS += --enable-vaapi-recorder +WESTON_DEPENDENIES += libva +else +WESTON_CONF_OPTS += --disable-vaapi-recorder +endif + +ifeq ($(BR2_PACKAGE_LCMS2),y) +WESTON_CONF_OPTS += --enable-lcms +WESTON_DEPENDENCIES += lcms2 +else +WESTON_CONF_OPTS += --disable-lcms +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD),y) +WESTON_CONF_OPTS += --enable-systemd-login --enable-systemd-notify +WESTON_DEPENDENCIES += systemd +else +WESTON_CONF_OPTS += --disable-systemd-login --disable-systemd-notify +endif + +ifeq ($(BR2_PACKAGE_LIBXML2),y) +WESTON_CONF_OPTS += --enable-junit-xml +WESTON_DEPENDENCIES += libxml2 +else +WESTON_CONF_OPTS += --disable-junit-xml +endif + +ifeq ($(BR2_PACKAGE_WESTON_DEMO_CLIENTS),y) +WESTON_CONF_OPTS += --enable-demo-clients-install +else +WESTON_CONF_OPTS += --disable-demo-clients-install +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/wf111/Config.in b/bsp/buildroot/package/wf111/Config.in index d2ba440a..cfce8b4c 100644 --- a/bsp/buildroot/package/wf111/Config.in +++ b/bsp/buildroot/package/wf111/Config.in @@ -30,7 +30,7 @@ config BR2_PACKAGE_WF111_TARBALL_PATH endif -comment "wf111 needs an (e)glibc toolchain" +comment "wf111 needs a glibc toolchain" depends on BR2_LINUX_KERNEL depends on BR2_ARM_CPU_ARMV5 || BR2_ARM_CPU_ARMV7A || BR2_i386 depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/wf111/wf111.mk b/bsp/buildroot/package/wf111/wf111.mk index 479d6657..e17e846f 100644 --- a/bsp/buildroot/package/wf111/wf111.mk +++ b/bsp/buildroot/package/wf111/wf111.mk @@ -4,7 +4,7 @@ # ################################################################################ -WF111_VERSION = 5.2.2 +WF111_VERSION = 5.2.2-r2 WF111_SITE_METHOD = file WF111_SITE = $(call qstrip,$(BR2_PACKAGE_WF111_TARBALL_PATH)) WF111_DEPENDENCIES = linux @@ -14,21 +14,20 @@ $(error No tarball location specified, check BR2_PACKAGE_WF111_TARBALL_PATH) endif ifeq ($(BR2_ARM_CPU_ARMV7A),y) -WF111_SOURCE = wf111-linux-driver_5.2.2-r1_armv7-a.tar.gz +WF111_SOURCE = wf111-linux-driver_$(WF111_VERSION)_armv7-a.tar.gz else ifeq ($(BR2_ARM_CPU_ARMV5),y) -WF111_SOURCE = wf111-linux-driver_5.2.2-r1_armv5t.tar.gz +WF111_SOURCE = wf111-linux-driver_$(WF111_VERSION)_armv5t.tar.gz else ifeq ($(BR2_i386),y) -WF111_SOURCE = wf111-linux-driver_5.2.2-r1_x86.tar.gz +WF111_SOURCE = wf111-linux-driver_$(WF111_VERSION)_x86.tar.gz endif -define WF111_BUILD_CMDS +# Due to the stupidity of the package Makefile, we can't invoke +# separately the build step and the install step and get a correct +# behavior. So we do everything in the install step. +define WF111_INSTALL_TARGET_CMDS $(MAKE) -C $(@D) PWD=$(@D) \ $(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \ - install_static -endef - -define WF111_INSTALL_TARGET_CMDS - cp -dpfr $(@D)/output/* $(TARGET_DIR) + OUTPUT=$(TARGET_DIR) install_static endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/wget/Config.in b/bsp/buildroot/package/wget/Config.in index 26a2019d..acb20f8f 100644 --- a/bsp/buildroot/package/wget/Config.in +++ b/bsp/buildroot/package/wget/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_WGET # fork() depends on BR2_USE_MMU depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help Network utility to retrieve files from http, https and ftp. @@ -11,3 +12,4 @@ config BR2_PACKAGE_WGET comment "wget needs a toolchain w/ wchar" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/wget/wget.hash b/bsp/buildroot/package/wget/wget.hash index 159cd510..6d267234 100644 --- a/bsp/buildroot/package/wget/wget.hash +++ b/bsp/buildroot/package/wget/wget.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 fe559b61eb9cc01635ac6206a14e02cb51591838c35fa83c7a4aacae0bdd97c9 wget-1.17.1.tar.xz +sha256 b5b55b75726c04c06fe253daec9329a6f1a3c0c1878e3ea76ebfebc139ea9cc1 wget-1.18.tar.xz diff --git a/bsp/buildroot/package/wget/wget.mk b/bsp/buildroot/package/wget/wget.mk index 2c6ccf26..9cda76b6 100644 --- a/bsp/buildroot/package/wget/wget.mk +++ b/bsp/buildroot/package/wget/wget.mk @@ -4,7 +4,7 @@ # ################################################################################ -WGET_VERSION = 1.17.1 +WGET_VERSION = 1.18 WGET_SOURCE = wget-$(WGET_VERSION).tar.xz WGET_SITE = $(BR2_GNU_MIRROR)/wget WGET_DEPENDENCIES = host-pkgconf diff --git a/bsp/buildroot/package/which/Config.in b/bsp/buildroot/package/which/Config.in index 5811083f..db090ea8 100644 --- a/bsp/buildroot/package/which/Config.in +++ b/bsp/buildroot/package/which/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_WHICH bool "which" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS help The standard 'which' utility. diff --git a/bsp/buildroot/package/whois/Config.in b/bsp/buildroot/package/whois/Config.in index 95e3dc61..0fbaf904 100644 --- a/bsp/buildroot/package/whois/Config.in +++ b/bsp/buildroot/package/whois/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_WHOIS bool "whois" depends on BR2_USE_WCHAR # gettext + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT help Improved whois client. @@ -9,3 +10,4 @@ config BR2_PACKAGE_WHOIS comment "whois needs a toolchain w/ wchar" depends on !BR2_USE_WCHAR + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS diff --git a/bsp/buildroot/package/whois/whois.hash b/bsp/buildroot/package/whois/whois.hash index a92e0d89..15a12f78 100644 --- a/bsp/buildroot/package/whois/whois.hash +++ b/bsp/buildroot/package/whois/whois.hash @@ -1,2 +1,2 @@ -# From http://ftp.debian.org/debian/pool/main/w/whois/whois_5.2.11.dsc -sha256 32f7d6be853aa6a6a8ac6dd672bd60ae4f10bc0bedcaa944363ffbef6e57cef7 whois_5.2.11.tar.xz +# From http://ftp.debian.org/debian/pool/main/w/whois/whois_5.2.12.dsc +sha256 b26d4027b8987d9911466aa06ce2c167a50017cd59a622a429bd506222f6cdf1 whois_5.2.12.tar.xz diff --git a/bsp/buildroot/package/whois/whois.mk b/bsp/buildroot/package/whois/whois.mk index d32642c0..423b214f 100644 --- a/bsp/buildroot/package/whois/whois.mk +++ b/bsp/buildroot/package/whois/whois.mk @@ -4,8 +4,8 @@ # ################################################################################ -WHOIS_VERSION = 5.2.11 -WHOIS_SITE = http://snapshot.debian.org/archive/debian/20151208T102349Z/pool/main/w/whois +WHOIS_VERSION = 5.2.12 +WHOIS_SITE = http://snapshot.debian.org/archive/debian/20160329T095754Z/pool/main/w/whois WHOIS_SOURCE = whois_$(WHOIS_VERSION).tar.xz # take precedence over busybox implementation WHOIS_DEPENDENCIES = host-gettext $(if $(BR2_PACKAGE_BUSYBOX),busybox) diff --git a/bsp/buildroot/package/wilc1000-firmware/Config.in b/bsp/buildroot/package/wilc1000-firmware/Config.in new file mode 100644 index 00000000..df8a7a6b --- /dev/null +++ b/bsp/buildroot/package/wilc1000-firmware/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_WILC1000_FIRMWARE + bool "wilc1000-firmware" + help + Firmware for Atmel Wilc1000 wireless device + + https://github.com/linux4sc/wireless-firmware.git diff --git a/bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.hash b/bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.hash new file mode 100644 index 00000000..5344efe5 --- /dev/null +++ b/bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 a2e7a327dd545ba2051946f7613005cbde88fdd952afb8eecdd1dacda7e767d2 v14.1_Firmware.zip diff --git a/bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.mk b/bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.mk new file mode 100644 index 00000000..5dcf1904 --- /dev/null +++ b/bsp/buildroot/package/wilc1000-firmware/wilc1000-firmware.mk @@ -0,0 +1,24 @@ +################################################################################ +# +# wilc1000-firmware +# +################################################################################ + +WILC1000_FIRMWARE_VERSION = 14.1 +WILC1000_FIRMWARE_SITE = https://github.com/linux4sc/wireless-firmware/archive +WILC1000_FIRMWARE_SOURCE = v$(WILC1000_FIRMWARE_VERSION)_Firmware.zip + +WILC1000_FIRMWARE_LICENSE = PROPRIETARY + +define WILC1000_FIRMWARE_EXTRACT_CMDS + $(UNZIP) -d $(BUILD_DIR) $(DL_DIR)/$(WILC1000_FIRMWARE_SOURCE) + mv $(BUILD_DIR)/wireless-firmware-$(WILC1000_FIRMWARE_VERSION)_Firmware/* $(@D) + rmdir $(BUILD_DIR)/wireless-firmware-$(WILC1000_FIRMWARE_VERSION)_Firmware +endef + +define WILC1000_FIRMWARE_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0644 $(@D)/wilc1003_firmware.bin \ + $(TARGET_DIR)/lib/firmware/atmel/wilc1003_firmware.bin +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/wine/0001-configure-allow-to-override-the-location-of-the-conf.patch b/bsp/buildroot/package/wine/0001-configure-allow-to-override-the-location-of-the-conf.patch deleted file mode 100644 index 9fc9f64a..00000000 --- a/bsp/buildroot/package/wine/0001-configure-allow-to-override-the-location-of-the-conf.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 18078feecc8da0ab2693d0bb5423489fa62920ef Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Tue, 22 Dec 2015 21:25:19 +0100 -Subject: [PATCH] configure: allow to override the location of the *-config - scripts - -Currently, the configure.ac calls a number of *-config scripts to get -details about installed libraries. It assumes that those *-config -scripts are readily available in the PATH. - -While this is true in most situations, it may not be true when -cross-compiling: you may have the *-config scripts matching the target -environment in a location that isn't in the PATH. For such situations, -it is very useful to be able to override the location of such *-config -scripts using environment variables. - -The proposed changes does not introduce any functional difference if -you don't pass those new environment variables: if they are not -passed, it falls back to the current value. - -However, if those *_CONFIG variables are passed, then they are used as -the path to the corresponding *-config script. - -The ${FOO_CONFIG:-foo-config} construct is POSIX compliant, so it is -available in all shells. - -(Patch submitted upstream.) - -Signed-off-by: Thomas Petazzoni ---- - configure.ac | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 86f12c5..37ceab5 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1191,7 +1191,7 @@ dnl **** Check for libxml2 **** - if test "x$with_xml" != "xno" - then - WINE_PACKAGE_FLAGS(XML2,[libxml-2.0],[-lxml2], -- [`xml2-config --cflags 2>/dev/null`],[`xml2-config --libs 2>/dev/null`], -+ [`${XML2_CONFIG:-xml2-config} --cflags 2>/dev/null`],[`${XML2_CONFIG:-xml2-config} --libs 2>/dev/null`], - [AC_CHECK_HEADERS([libxml/parser.h libxml/xmlsave.h libxml/SAX2.h]) - if test "$ac_cv_header_libxml_parser_h" = "yes" -a "$ac_cv_header_libxml_xmlsave_h" = "yes" -a "$ac_cv_header_libxml_SAX2_h" = "yes" - then -@@ -1220,7 +1220,7 @@ WINE_WARNING_WITH(xml,[test "$ac_cv_lib_xml2_xmlParseMemory" != "yes"], - if test "x$with_xslt" != "xno" - then - WINE_PACKAGE_FLAGS(XSLT,[libxslt],[-lxml2], -- [`xslt-config --cflags 2>/dev/null`],[`xslt-config --libs 2>/dev/null`], -+ [`${XSLT_CONFIG:-xslt-config} --cflags 2>/dev/null`],[`${XSLT_CONFIG:-xslt-config} --libs 2>/dev/null`], - [AC_CHECK_HEADERS([libxslt/pattern.h libxslt/transform.h],,, - [#ifdef HAVE_LIBXSLT_PATTERN_H - # include -@@ -1291,7 +1291,7 @@ WINE_NOTICE_WITH(curses,[test "x$ac_cv_lib_soname_curses$ac_cv_lib_soname_ncurse - dnl **** Check for SANE **** - if test "x$with_sane" != "xno" - then -- WINE_PACKAGE_FLAGS(SANE,[libsane],,[`sane-config --cflags 2>/dev/null`],[`sane-config --ldflags 2>/dev/null`], -+ WINE_PACKAGE_FLAGS(SANE,[libsane],,[`${SANE_CONFIG:-sane-config} --cflags 2>/dev/null`],[`${SANE_CONFIG:-sane-config} --ldflags 2>/dev/null`], - [AC_CHECK_HEADER(sane/sane.h, - [WINE_CHECK_SONAME(sane,sane_init,,[SANE_CFLAGS=""],[$SANE_LIBS])], - [SANE_CFLAGS=""])]) -@@ -1311,7 +1311,7 @@ dnl **** Check for libgphoto2 **** - if test "x$with_gphoto" != "xno" - then - WINE_PACKAGE_FLAGS(GPHOTO2,[libgphoto2],[-lgphoto2], -- [`gphoto2-config --cflags 2>/dev/null`],[`gphoto2-config --libs 2>/dev/null`], -+ [`${GPHOTO2_CONFIG:-gphoto2-config} --cflags 2>/dev/null`],[`${GPHOTO2_CONFIG:-gphoto2-config} --libs 2>/dev/null`], - [AC_CHECK_HEADER(gphoto2-camera.h, - [AC_CHECK_LIB(gphoto2,gp_camera_new, - [AC_DEFINE(HAVE_GPHOTO2, 1, [Define if we have the libgphoto2 development environment])], -@@ -1319,8 +1319,8 @@ then - [$GPHOTO2_LIBS])], - [GPHOTO2_LIBS=""; GPHOTO2_CFLAGS=""])]) - WINE_PACKAGE_FLAGS(GPHOTO2_PORT,[libgphoto2_port],[-lgphoto2_port], -- [`gphoto2-port-config --cflags 2>/dev/null`], -- [`gphoto2-port-config --libs 2>/dev/null`], -+ [`${GPHOTO2_PORT_CONFIG:-gphoto2-port-config} --cflags 2>/dev/null`], -+ [`${GPHOTO2_PORT_CONFIG:-gphoto2-port-config} --libs 2>/dev/null`], - [AC_CHECK_HEADER(gphoto2-port.h, - [AC_CHECK_LIB(gphoto2_port,gp_port_info_list_new, - [AC_DEFINE(HAVE_GPHOTO2_PORT, 1, [Define if we have the libgphoto2_port development environment])], -@@ -1382,8 +1382,8 @@ dnl **** Check for FreeType 2 **** - if test "x$with_freetype" != "xno" - then - WINE_PACKAGE_FLAGS(FREETYPE,[freetype2],[-lfreetype], -- [`(freetype-config --cflags || freetype2-config --cflags) 2>/dev/null`], -- [`(freetype-config --libs || freetype2-config --libs) 2>/dev/null`], -+ [`(${FREETYPE_CONFIG:-freetype-config} --cflags || ${FREETYPE2_CONFIG:-freetype2-config} --cflags) 2>/dev/null`], -+ [`(${FREETYPE_CONFIG:-freetype-config} --libs || ${FREETYPE2_CONFIG:-freetype2-config} --libs) 2>/dev/null`], - [AC_CHECK_HEADERS([ft2build.h]) - if test "$ac_cv_header_ft2build_h" = "yes" - then -@@ -1538,8 +1538,8 @@ AC_SUBST(CUPS_CFLAGS,"") - if test "x$with_cups" != "xno" - then - ac_save_CPPFLAGS="$CPPFLAGS" -- ac_cups_cflags=`cups-config --cflags 2>/dev/null` -- ac_cups_libs=`cups-config --ldflags 2>/dev/null` -+ ac_cups_cflags=`${CUPS_CONFIG:-cups-config} --cflags 2>/dev/null` -+ ac_cups_libs=`${CUPS_CONFIG:-cups-config} --ldflags 2>/dev/null` - CPPFLAGS="$CPPFLAGS $ac_cups_cflags" - AC_CHECK_HEADERS(cups/cups.h, - [WINE_CHECK_SONAME(cups,cupsGetDefault, --- -2.6.4 - diff --git a/bsp/buildroot/package/wine/Config.in b/bsp/buildroot/package/wine/Config.in index d1510e11..c6742884 100644 --- a/bsp/buildroot/package/wine/Config.in +++ b/bsp/buildroot/package/wine/Config.in @@ -17,7 +17,7 @@ config BR2_PACKAGE_WINE http://www.winehq.org -comment "wine needs a (e)glibc toolchain" +comment "wine needs a glibc toolchain" depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_i386 depends on !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/wine/wine.hash b/bsp/buildroot/package/wine/wine.hash index 80c0f68b..3f856ba9 100644 --- a/bsp/buildroot/package/wine/wine.hash +++ b/bsp/buildroot/package/wine/wine.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 f33b45c18112b2071fbf9edee0e8c575407f9e2a9855ca4ee918ed33efa7c6f4 wine-1.8.tar.bz2 +sha256 d7cecdf7aab93bfe950e6f83ec526681b8770788c7b2a802bfe50ff97fc17a6c wine-1.8.3.tar.bz2 diff --git a/bsp/buildroot/package/wine/wine.mk b/bsp/buildroot/package/wine/wine.mk index 2cd5c302..632eed3c 100644 --- a/bsp/buildroot/package/wine/wine.mk +++ b/bsp/buildroot/package/wine/wine.mk @@ -4,14 +4,12 @@ # ################################################################################ -WINE_VERSION = 1.8 +WINE_VERSION = 1.8.3 WINE_SOURCE = wine-$(WINE_VERSION).tar.bz2 WINE_SITE = https://dl.winehq.org/wine/source/1.8 WINE_LICENSE = LGPLv2.1+ WINE_LICENSE_FILES = COPYING.LIB LICENSE WINE_DEPENDENCIES = host-bison host-flex host-wine -# For 0001-sane-config-fix.patch -WINE_AUTORECONF = YES # Wine needs its own directory structure and tools for cross compiling WINE_CONF_OPTS = \ diff --git a/bsp/buildroot/package/wireless-regdb/wireless-regdb.hash b/bsp/buildroot/package/wireless-regdb/wireless-regdb.hash index cafc6318..b8ca2e75 100644 --- a/bsp/buildroot/package/wireless-regdb/wireless-regdb.hash +++ b/bsp/buildroot/package/wireless-regdb/wireless-regdb.hash @@ -1,2 +1,2 @@ # From https://www.kernel.org/pub/software/network/wireless-regdb/sha256sums.asc -sha256 013e07d988f5cd7d24e4aa7a6cd406615d441ea6b882a02d2a46a78edeb2cfb6 wireless-regdb-2015.12.14.tar.xz +sha256 cfedf1c3521b3c8f32602f25ed796e96e687c3441a00e7c050fedf7fd4f1b8b7 wireless-regdb-2016.06.10.tar.xz diff --git a/bsp/buildroot/package/wireless-regdb/wireless-regdb.mk b/bsp/buildroot/package/wireless-regdb/wireless-regdb.mk index 38d1c261..6ad42589 100644 --- a/bsp/buildroot/package/wireless-regdb/wireless-regdb.mk +++ b/bsp/buildroot/package/wireless-regdb/wireless-regdb.mk @@ -4,7 +4,7 @@ # ################################################################################ -WIRELESS_REGDB_VERSION = 2015.12.14 +WIRELESS_REGDB_VERSION = 2016.06.10 WIRELESS_REGDB_SOURCE = wireless-regdb-$(WIRELESS_REGDB_VERSION).tar.xz WIRELESS_REGDB_SITE = http://kernel.org/pub/software/network/wireless-regdb WIRELESS_REGDB_LICENSE = ISC diff --git a/bsp/buildroot/package/wireless_tools/wireless_tools.mk b/bsp/buildroot/package/wireless_tools/wireless_tools.mk index 5fb8f12e..cb15412f 100644 --- a/bsp/buildroot/package/wireless_tools/wireless_tools.mk +++ b/bsp/buildroot/package/wireless_tools/wireless_tools.mk @@ -15,13 +15,13 @@ WIRELESS_TOOLS_INSTALL_STAGING = YES WIRELESS_TOOLS_BUILD_TARGETS = iwmulticall WIRELESS_TOOLS_INSTALL_TARGETS = install-iwmulticall - ifeq ($(BR2_PACKAGE_WIRELESS_TOOLS_LIB),y) WIRELESS_TOOLS_BUILD_TARGETS += libiw.so.$(WIRELESS_TOOLS_VERSION_MAJOR) WIRELESS_TOOLS_INSTALL_TARGETS += install-dynamic define WIRELESS_TOOLS_INSTALL_STAGING_CMDS - $(MAKE) -C $(@D) PREFIX="$(STAGING_DIR)" LDCONFIG=/bin/true install-dynamic + $(MAKE) -C $(@D) PREFIX="$(STAGING_DIR)" LDCONFIG=/bin/true \ + install-dynamic $(MAKE) -C $(@D) PREFIX="$(STAGING_DIR)/usr" install-hdr endef @@ -33,8 +33,8 @@ define WIRELESS_TOOLS_BUILD_CMDS endef define WIRELESS_TOOLS_INSTALL_TARGET_CMDS - $(MAKE) -C $(@D) PREFIX="$(TARGET_DIR)" LDCONFIG=/bin/true $(WIRELESS_TOOLS_INSTALL_TARGETS) - $(MAKE) -C $(@D) INSTALL_MAN="$(TARGET_DIR)/usr/share/man" install-man + $(MAKE) -C $(@D) PREFIX="$(TARGET_DIR)" LDCONFIG=/bin/true \ + $(WIRELESS_TOOLS_INSTALL_TARGETS) endef $(eval $(generic-package)) diff --git a/bsp/buildroot/package/wireshark/wireshark.hash b/bsp/buildroot/package/wireshark/wireshark.hash index ed0d2eff..fe4070bd 100644 --- a/bsp/buildroot/package/wireshark/wireshark.hash +++ b/bsp/buildroot/package/wireshark/wireshark.hash @@ -1,2 +1,2 @@ -# From: https://www.wireshark.org/download/src/all-versions/SIGNATURES-2.0.2.txt -sha256 e921fb072085a5654d899949bb561d0687f4819f7b63ba35777bb949a9b6b9c1 wireshark-2.0.2.tar.bz2 +# From: https://www.wireshark.org/download/src/all-versions/SIGNATURES-2.0.5.txt +sha256 0ce0241330828973f5b4efee422a3760cab8ce0b41e7721c4b9fd185be1bb10b wireshark-2.0.5.tar.bz2 diff --git a/bsp/buildroot/package/wireshark/wireshark.mk b/bsp/buildroot/package/wireshark/wireshark.mk index 34a5a857..42a5e74b 100644 --- a/bsp/buildroot/package/wireshark/wireshark.mk +++ b/bsp/buildroot/package/wireshark/wireshark.mk @@ -4,14 +4,14 @@ # ################################################################################ -WIRESHARK_VERSION = 2.0.2 +WIRESHARK_VERSION = 2.0.5 WIRESHARK_SOURCE = wireshark-$(WIRESHARK_VERSION).tar.bz2 WIRESHARK_SITE = http://www.wireshark.org/download/src/all-versions WIRESHARK_LICENSE = wireshark license WIRESHARK_LICENSE_FILES = COPYING WIRESHARK_DEPENDENCIES = host-pkgconf libpcap libglib2 WIRESHARK_CONF_ENV = \ - ac_cv_path_PCAP_CONFIG=$(STAGING_DIR)/usr/bin/pcap-config + PCAP_CONFIG=$(STAGING_DIR)/usr/bin/pcap-config # patch touching configure.ac WIRESHARK_AUTORECONF = YES @@ -60,7 +60,7 @@ ifeq ($(BR2_PACKAGE_C_ARES),y) WIRESHARK_CONF_OPTS += --with-c-ares=$(STAGING_DIR)/usr WIRESHARK_DEPENDENCIES += c-ares else -WIREHARK_CONF_OPTS += --without-c-ares +WIRESHARK_CONF_OPTS += --without-c-ares endif ifeq ($(BR2_PACKAGE_GEOIP),y) @@ -99,4 +99,11 @@ else WIRESHARK_CONF_OPTS += --with-sbc=no endif +define WIRESHARK_REMOVE_DOCS + find $(TARGET_DIR)/usr/share/wireshark -name '*.txt' -print0 \ + -o -name '*.html' -print0 | xargs -0 rm -f +endef + +WIRESHARK_POST_INSTALL_TARGET_HOOKS += WIRESHARK_REMOVE_DOCS + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/wiringpi/0001-Adjust-for-buildroot-build.patch b/bsp/buildroot/package/wiringpi/0001-Adjust-for-buildroot-build.patch new file mode 100644 index 00000000..4add46e2 --- /dev/null +++ b/bsp/buildroot/package/wiringpi/0001-Adjust-for-buildroot-build.patch @@ -0,0 +1,123 @@ +From a16012bf4ea63f714468d80ebe101481c917e4b8 Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Wed, 2 Dec 2015 00:22:26 +0100 +Subject: [PATCH] Adjust for buildroot build. + + - enable CC override + - fix devLib/gpio include path for local build (without installing first) + - change CFLAGS from '=' to '+=' to honour buildroot given flags + - add linker name link for libwiringPiDev and libwiringPi for local linking + (without installing first) + - fix install linker name link (do not link with absolute path) + - add gpio-static linking target + +Signed-off-by: Peter Seiderer +--- + devLib/Makefile | 9 +++++---- + gpio/Makefile | 12 ++++++++---- + wiringPi/Makefile | 7 ++++--- + 3 files changed, 17 insertions(+), 11 deletions(-) + +diff --git a/devLib/Makefile b/devLib/Makefile +index 0fb0033..3117479 100644 +--- a/devLib/Makefile ++++ b/devLib/Makefile +@@ -36,10 +36,10 @@ DYNAMIC=libwiringPiDev.so.$(VERSION) + + #DEBUG = -g -O0 + DEBUG = -O2 +-CC = gcc +-INCLUDE = -I. ++CC ?= gcc ++INCLUDE = -I../wiringPi + DEFS = -D_GNU_SOURCE +-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC ++CFLAGS += $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC + + LIBS = + +@@ -67,6 +67,7 @@ $(STATIC): $(OBJ) + $(DYNAMIC): $(OBJ) + $Q echo "[Link (Dynamic)]" + $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ) ++ $Q ln -sf libwiringPiDev.so.$(VERSION) libwiringPiDev.so + + .c.o: + $Q echo [Compile] $< +@@ -91,7 +92,7 @@ install: $(DYNAMIC) + $Q echo "[Install Dynamic Lib]" + $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib + $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) +- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so ++ $Q ln -sf libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so + $Q $(LDCONFIG) + + .PHONY: install-static +diff --git a/gpio/Makefile b/gpio/Makefile +index 7dcd090..e8e43f9 100644 +--- a/gpio/Makefile ++++ b/gpio/Makefile +@@ -32,11 +32,11 @@ endif + + #DEBUG = -g -O0 + DEBUG = -O2 +-CC = gcc +-INCLUDE = -I$(DESTDIR)$(PREFIX)/include +-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe ++CC ?= gcc ++INCLUDE = -I../wiringPi -I../devLib ++CFLAGS += $(DEBUG) -Wall $(INCLUDE) -Winline -pipe + +-LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib ++LDFLAGS = -L../wiringPi -L../devLib + LIBS = -lwiringPi -lwiringPiDev -lpthread + + # May not need to alter anything below this line +@@ -55,6 +55,10 @@ gpio: $(OBJ) + $Q echo [Link] + $Q $(CC) -o $@ $(OBJ) $(LDFLAGS) $(LIBS) + ++gpio-static: $(OBJ) ++ $Q echo [Link] ++ $Q $(CC) -o gpio $(OBJ) ../wiringPi/libwiringPi.a ../devLib/libwiringPiDev.a -lpthread ++ + .c.o: + $Q echo [Compile] $< + $Q $(CC) -c $(CFLAGS) $< -o $@ +diff --git a/wiringPi/Makefile b/wiringPi/Makefile +index 6bbcc5d..e0ccc52 100644 +--- a/wiringPi/Makefile ++++ b/wiringPi/Makefile +@@ -36,10 +36,10 @@ DYNAMIC=libwiringPi.so.$(VERSION) + + #DEBUG = -g -O0 + DEBUG = -O2 +-CC = gcc ++CC ?= gcc + INCLUDE = -I. + DEFS = -D_GNU_SOURCE +-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC ++CFLAGS += $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC + + LIBS = + +@@ -90,6 +90,7 @@ $(STATIC): $(OBJ) + $(DYNAMIC): $(OBJ) + $Q echo "[Link (Dynamic)]" + $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) -lpthread $(OBJ) ++ $Q ln -sf libwiringPi.so.$(VERSION) libwiringPi.so + + .c.o: + $Q echo [Compile] $< +@@ -115,7 +116,7 @@ install: $(DYNAMIC) + $Q echo "[Install Dynamic Lib]" + $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib + $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) +- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so ++ $Q ln -sf libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so + $Q $(LDCONFIG) + + .PHONY: install-static +-- +2.1.4 + diff --git a/bsp/buildroot/package/wiringpi/0002-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch b/bsp/buildroot/package/wiringpi/0002-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch new file mode 100644 index 00000000..6480e3c4 --- /dev/null +++ b/bsp/buildroot/package/wiringpi/0002-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch @@ -0,0 +1,60 @@ +From 7f65eb37a82a6d9b095d9c8f262ad9dd205acd03 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Jan 2016 16:57:38 -0800 +Subject: [PATCH] include directly for _IOC_SIZEBITS + +Fixes errors like +| wiringPiSPI.c: In function 'wiringPiSPIDataRW': +| wiringPiSPI.c:89:35: error: '_IOC_SIZEBITS' undeclared (first use in +this function) + +Signed-off-by: Khem Raj +[Patch from https://raw.githubusercontent.com/agherzan/meta-raspberrypi/master/recipes-devtools/wiringPi/wiringpi/0001-include-asm-ioctl.h-directly-for-_IOC_SIZEBITS.patch] +Signed-off-by: Peter Seiderere +--- +Upstream-Status: Submitted + + wiringPi/wiringPi.c | 1 + + wiringPi/wiringPiI2C.c | 1 + + wiringPi/wiringPiSPI.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/wiringPi/wiringPi.c b/wiringPi/wiringPi.c +index 32e5100..cb5db9d 100644 +--- a/wiringPi/wiringPi.c ++++ b/wiringPi/wiringPi.c +@@ -64,6 +64,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/wiringPi/wiringPiI2C.c b/wiringPi/wiringPiI2C.c +index c787bce..efdf53c 100644 +--- a/wiringPi/wiringPiI2C.c ++++ b/wiringPi/wiringPiI2C.c +@@ -52,6 +52,7 @@ + #include + #include + #include ++#include + + #include "wiringPi.h" + #include "wiringPiI2C.h" +diff --git a/wiringPi/wiringPiSPI.c b/wiringPi/wiringPiSPI.c +index 453df31..ae3c7d9 100644 +--- a/wiringPi/wiringPiSPI.c ++++ b/wiringPi/wiringPiSPI.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + +-- +2.7.0 + diff --git a/bsp/buildroot/package/wiringpi/Config.in b/bsp/buildroot/package/wiringpi/Config.in new file mode 100644 index 00000000..2062a620 --- /dev/null +++ b/bsp/buildroot/package/wiringpi/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_WIRINGPI + bool "wiringpi" + depends on BR2_USE_MMU # fork() + depends on BR2_TOOLCHAIN_HAS_THREADS + help + wiringPi libraries (and gpio command) + + http://wiringpi.com/ + +comment "wiringpi needs a toolchain w/ threads" + depends on BR2_USE_MMU + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/wiringpi/wiringpi.hash b/bsp/buildroot/package/wiringpi/wiringpi.hash new file mode 100644 index 00000000..65e1f9cd --- /dev/null +++ b/bsp/buildroot/package/wiringpi/wiringpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 00a4770c113a1a5f52480a30bcfad00d2087f42854f1791204af2e60ffe1ac8c wiringpi-78b5c323b74de782df58ee558c249e4e4fadd25f.tar.gz diff --git a/bsp/buildroot/package/wiringpi/wiringpi.mk b/bsp/buildroot/package/wiringpi/wiringpi.mk new file mode 100644 index 00000000..baa8753b --- /dev/null +++ b/bsp/buildroot/package/wiringpi/wiringpi.mk @@ -0,0 +1,54 @@ +################################################################################ +# +# wiringpi +# +################################################################################ + +# original site is down (2016-06-03) +# +# WIRINGPI_VERSION = 2.31 +# WIRINGPI_SITE = git://git.drogon.net/wiringPi +# +# so change to alternative location (verifyed that commit 78b5c323 +# has the same content as local copy of wiringpi-2.31.tar.gz) +# +WIRINGPI_VERSION = 78b5c323b74de782df58ee558c249e4e4fadd25f +WIRINGPI_SITE = $(call github,WiringPi,WiringPi,$(WIRINGPI_VERSION)) + +WIRINGPI_LICENSE = LGPLv3+ +WIRINGPI_LICENSE_FILES = COPYING.LESSER +WIRINGPI_INSTALL_STAGING = YES + +ifeq ($(BR2_STATIC_LIBS),y) +WIRINGPI_LIB_BUILD_TARGETS = static +WIRINGPI_LIB_INSTALL_TARGETS = install-static +WIRINGPI_BIN_BUILD_TARGETS = gpio-static +else ifeq ($(BR2_SHARED_LIBS),y) +WIRINGPI_LIB_BUILD_TARGETS = all +WIRINGPI_LIB_INSTALL_TARGETS = install +WIRINGPI_BIN_BUILD_TARGETS = all +else +WIRINGPI_LIB_BUILD_TARGETS = all static +WIRINGPI_LIB_INSTALL_TARGETS = install install-static +WIRINGPI_BIN_BUILD_TARGETS = all +endif + +define WIRINGPI_BUILD_CMDS + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/wiringPi $(WIRINGPI_LIB_BUILD_TARGETS) + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/devLib $(WIRINGPI_LIB_BUILD_TARGETS) + $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/gpio $(WIRINGPI_BIN_BUILD_TARGETS) +endef + +define WIRINGPI_INSTALL_STAGING_CMDS + $(MAKE) -C $(@D)/wiringPi $(WIRINGPI_LIB_INSTALL_TARGETS) DESTDIR=$(STAGING_DIR) PREFIX=/usr LDCONFIG=true + $(MAKE) -C $(@D)/devLib $(WIRINGPI_LIB_INSTALL_TARGETS) DESTDIR=$(STAGING_DIR) PREFIX=/usr LDCONFIG=true +endef + +define WIRINGPI_INSTALL_TARGET_CMDS + $(MAKE) -C $(@D)/wiringPi $(WIRINGPI_LIB_INSTALL_TARGETS) DESTDIR=$(TARGET_DIR) PREFIX=/usr LDCONFIG=true + $(MAKE) -C $(@D)/devLib $(WIRINGPI_LIB_INSTALL_TARGETS) DESTDIR=$(TARGET_DIR) PREFIX=/usr LDCONFIG=true + $(INSTALL) -D -m 0755 $(@D)/gpio/gpio $(TARGET_DIR)/usr/bin/gpio + $(INSTALL) -D -m 0755 $(@D)/gpio/pintest $(TARGET_DIR)/usr/bin/pintest +endef + +$(eval $(generic-package)) diff --git a/bsp/buildroot/package/wpa_supplicant/0007-systemd-Update-service-files-according-to-dbus-inter.patch b/bsp/buildroot/package/wpa_supplicant/0007-systemd-Update-service-files-according-to-dbus-inter.patch new file mode 100644 index 00000000..59c54506 --- /dev/null +++ b/bsp/buildroot/package/wpa_supplicant/0007-systemd-Update-service-files-according-to-dbus-inter.patch @@ -0,0 +1,77 @@ +From b6cea24d6191d9ccdcd1ac38a5322e3da73218db Mon Sep 17 00:00:00 2001 +From: Marcin Niestroj +Date: Mon, 11 Apr 2016 13:23:54 +0200 +Subject: [PATCH] systemd: Update service files according to dbus interface + version used + +systemd service files were supplied with old DBus bus name. After +service activation systemd was waiting for appearance of specified bus +name to consider it started successfully. However, if wpa_supplicant was +compiled only with new dbus interface name, then systemd didn't notice +configured (old) DBus bus name appearance. In the end service was +considered malfunctioning and it was deactivated. + +Update systemd service BusName property according to supported DBus +interface version. + +Signed-off-by: Marcin Niestroj +--- + wpa_supplicant/Makefile | 8 ++++++-- + wpa_supplicant/systemd/wpa_supplicant.service.in | 4 ++-- + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile +index ad9ead9..fbd1b25 100644 +--- a/wpa_supplicant/Makefile ++++ b/wpa_supplicant/Makefile +@@ -1374,6 +1374,7 @@ ifndef DBUS_INCLUDE + DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) + endif + DBUS_CFLAGS += $(DBUS_INCLUDE) ++DBUS_INTERFACE=fi.epitest.hostap.WPASupplicant + endif + + ifdef CONFIG_CTRL_IFACE_DBUS_NEW +@@ -1399,6 +1400,7 @@ DBUS_OBJS += dbus/dbus_new_introspect.o + DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO + endif + DBUS_CFLAGS += $(DBUS_INCLUDE) ++DBUS_INTERFACE=fi.w1.wpa_supplicant1 + endif + + ifdef DBUS +@@ -1760,11 +1762,13 @@ else + endif + + %.service: %.service.in +- $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ ++ $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' \ ++ -e 's|\@DBUS_INTERFACE\@|$(DBUS_INTERFACE)|g' $< >$@ + @$(E) " sed" $< + + %@.service: %.service.arg.in +- $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ ++ $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' \ ++ -e 's|\@DBUS_INTERFACE\@|$(DBUS_INTERFACE)|g' $< >$@ + @$(E) " sed" $< + + wpa_supplicant.exe: wpa_supplicant +diff --git a/wpa_supplicant/systemd/wpa_supplicant.service.in b/wpa_supplicant/systemd/wpa_supplicant.service.in +index ea964ce..bc5d49a 100644 +--- a/wpa_supplicant/systemd/wpa_supplicant.service.in ++++ b/wpa_supplicant/systemd/wpa_supplicant.service.in +@@ -5,9 +5,9 @@ Wants=network.target + + [Service] + Type=dbus +-BusName=fi.epitest.hostap.WPASupplicant ++BusName=@DBUS_INTERFACE@ + ExecStart=@BINDIR@/wpa_supplicant -u + + [Install] + WantedBy=multi-user.target +-Alias=dbus-fi.epitest.hostap.WPASupplicant.service ++Alias=dbus-@DBUS_INTERFACE@.service +-- +2.8.0 + diff --git a/bsp/buildroot/package/wpa_supplicant/0008-WPS-Reject-a-Credential-with-invalid-passphrase.patch b/bsp/buildroot/package/wpa_supplicant/0008-WPS-Reject-a-Credential-with-invalid-passphrase.patch new file mode 100644 index 00000000..282aa952 --- /dev/null +++ b/bsp/buildroot/package/wpa_supplicant/0008-WPS-Reject-a-Credential-with-invalid-passphrase.patch @@ -0,0 +1,85 @@ +From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 4 Mar 2016 17:20:18 +0200 +Subject: [PATCH] WPS: Reject a Credential with invalid passphrase + +WPA/WPA2-Personal passphrase is not allowed to include control +characters. Reject a Credential received from a WPS Registrar both as +STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or +WPA2PSK authentication type and includes an invalid passphrase. + +This fixes an issue where hostapd or wpa_supplicant could have updated +the configuration file PSK/passphrase parameter with arbitrary data from +an external device (Registrar) that may not be fully trusted. Should +such data include a newline character, the resulting configuration file +could become invalid and fail to be parsed. + +Signed-off-by: Jouni Malinen +Signed-off-by: Baruch Siach +--- +Patch status: upstream (ecbb0b3dc122b0d290987cf9c84010bbe53e1022) + + src/utils/common.c | 12 ++++++++++++ + src/utils/common.h | 1 + + src/wps/wps_attr_process.c | 10 ++++++++++ + 3 files changed, 23 insertions(+) + +diff --git a/src/utils/common.c b/src/utils/common.c +index 450e2c6519ba..27b7c02de10b 100644 +--- a/src/utils/common.c ++++ b/src/utils/common.c +@@ -697,6 +697,18 @@ int is_hex(const u8 *data, size_t len) + } + + ++int has_ctrl_char(const u8 *data, size_t len) ++{ ++ size_t i; ++ ++ for (i = 0; i < len; i++) { ++ if (data[i] < 32 || data[i] == 127) ++ return 1; ++ } ++ return 0; ++} ++ ++ + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len) +diff --git a/src/utils/common.h b/src/utils/common.h +index 701dbb236ed5..a97224070385 100644 +--- a/src/utils/common.h ++++ b/src/utils/common.h +@@ -488,6 +488,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len); + + char * wpa_config_parse_string(const char *value, size_t *len); + int is_hex(const u8 *data, size_t len); ++int has_ctrl_char(const u8 *data, size_t len); + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len); +diff --git a/src/wps/wps_attr_process.c b/src/wps/wps_attr_process.c +index eadb22fe2e78..e8c4579309ab 100644 +--- a/src/wps/wps_attr_process.c ++++ b/src/wps/wps_attr_process.c +@@ -229,6 +229,16 @@ static int wps_workaround_cred_key(struct wps_credential *cred) + cred->key_len--; + #endif /* CONFIG_WPS_STRICT */ + } ++ ++ ++ if (cred->auth_type & (WPS_AUTH_WPAPSK | WPS_AUTH_WPA2PSK) && ++ (cred->key_len < 8 || has_ctrl_char(cred->key, cred->key_len))) { ++ wpa_printf(MSG_INFO, "WPS: Reject credential with invalid WPA/WPA2-Personal passphrase"); ++ wpa_hexdump_ascii_key(MSG_INFO, "WPS: Network Key", ++ cred->key, cred->key_len); ++ return -1; ++ } ++ + return 0; + } + +-- +2.8.1 + diff --git a/bsp/buildroot/package/wpa_supplicant/0009-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch b/bsp/buildroot/package/wpa_supplicant/0009-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch new file mode 100644 index 00000000..316c0700 --- /dev/null +++ b/bsp/buildroot/package/wpa_supplicant/0009-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch @@ -0,0 +1,53 @@ +From 73e4abb24a936014727924d8b0b2965edfc117dd Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 4 Mar 2016 18:46:41 +0200 +Subject: [PATCH] Reject psk parameter set with invalid passphrase character + +WPA/WPA2-Personal passphrase is not allowed to include control +characters. Reject a passphrase configuration attempt if that passphrase +includes an invalid passphrase. + +This fixes an issue where wpa_supplicant could have updated the +configuration file psk parameter with arbitrary data from the control +interface or D-Bus interface. While those interfaces are supposed to be +accessible only for trusted users/applications, it may be possible that +an untrusted user has access to a management software component that +does not validate the passphrase value before passing it to +wpa_supplicant. + +This could allow such an untrusted user to inject up to 63 characters of +almost arbitrary data into the configuration file. Such configuration +file could result in wpa_supplicant trying to load a library (e.g., +opensc_engine_path, pkcs11_engine_path, pkcs11_module_path, +load_dynamic_eap) from user controlled location when starting again. +This would allow code from that library to be executed under the +wpa_supplicant process privileges. + +Signed-off-by: Jouni Malinen +Signed-off-by: Baruch Siach +--- +Patch status: upstream (73e4abb24a936014727924d8b0b2965edfc117dd) + + wpa_supplicant/config.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index b1c7870dafe0..fdd964356afa 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -478,6 +478,12 @@ static int wpa_config_parse_psk(const struct parse_data *data, + } + wpa_hexdump_ascii_key(MSG_MSGDUMP, "PSK (ASCII passphrase)", + (u8 *) value, len); ++ if (has_ctrl_char((u8 *) value, len)) { ++ wpa_printf(MSG_ERROR, ++ "Line %d: Invalid passphrase character", ++ line); ++ return -1; ++ } + if (ssid->passphrase && os_strlen(ssid->passphrase) == len && + os_memcmp(ssid->passphrase, value, len) == 0) { + /* No change to the previously configured value */ +-- +2.8.1 + diff --git a/bsp/buildroot/package/wpa_supplicant/0010-Remove-newlines-from-wpa_supplicant-config-network-o.patch b/bsp/buildroot/package/wpa_supplicant/0010-Remove-newlines-from-wpa_supplicant-config-network-o.patch new file mode 100644 index 00000000..8a40dcec --- /dev/null +++ b/bsp/buildroot/package/wpa_supplicant/0010-Remove-newlines-from-wpa_supplicant-config-network-o.patch @@ -0,0 +1,84 @@ +From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001 +From: Paul Stewart +Date: Thu, 3 Mar 2016 15:40:19 -0800 +Subject: [PATCH] Remove newlines from wpa_supplicant config network output + +Spurious newlines output while writing the config file can corrupt the +wpa_supplicant configuration. Avoid writing these for the network block +parameters. This is a generic filter that cover cases that may not have +been explicitly addressed with a more specific commit to avoid control +characters in the psk parameter. + +Signed-off-by: Paul Stewart +Signed-off-by: Baruch Siach +--- +Patch status: upstream (0fe5a234240a108b294a87174ad197f6b5cb38e9) + + src/utils/common.c | 11 +++++++++++ + src/utils/common.h | 1 + + wpa_supplicant/config.c | 15 +++++++++++++-- + 3 files changed, 25 insertions(+), 2 deletions(-) + +diff --git a/src/utils/common.c b/src/utils/common.c +index 27b7c02de10b..9856463242c7 100644 +--- a/src/utils/common.c ++++ b/src/utils/common.c +@@ -709,6 +709,17 @@ int has_ctrl_char(const u8 *data, size_t len) + } + + ++int has_newline(const char *str) ++{ ++ while (*str) { ++ if (*str == '\n' || *str == '\r') ++ return 1; ++ str++; ++ } ++ return 0; ++} ++ ++ + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len) +diff --git a/src/utils/common.h b/src/utils/common.h +index a97224070385..d19927b375bf 100644 +--- a/src/utils/common.h ++++ b/src/utils/common.h +@@ -489,6 +489,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len); + char * wpa_config_parse_string(const char *value, size_t *len); + int is_hex(const u8 *data, size_t len); + int has_ctrl_char(const u8 *data, size_t len); ++int has_newline(const char *str); + size_t merge_byte_arrays(u8 *res, size_t res_len, + const u8 *src1, size_t src1_len, + const u8 *src2, size_t src2_len); +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index fdd964356afa..eb97cd5e4e6e 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -2699,8 +2699,19 @@ char * wpa_config_get(struct wpa_ssid *ssid, const char *var) + + for (i = 0; i < NUM_SSID_FIELDS; i++) { + const struct parse_data *field = &ssid_fields[i]; +- if (os_strcmp(var, field->name) == 0) +- return field->writer(field, ssid); ++ if (os_strcmp(var, field->name) == 0) { ++ char *ret = field->writer(field, ssid); ++ ++ if (ret && has_newline(ret)) { ++ wpa_printf(MSG_ERROR, ++ "Found newline in value for %s; not returning it", ++ var); ++ os_free(ret); ++ ret = NULL; ++ } ++ ++ return ret; ++ } + } + + return NULL; +-- +2.8.1 + diff --git a/bsp/buildroot/package/wpa_supplicant/0011-Reject-SET_CRED-commands-with-newline-characters-in-.patch b/bsp/buildroot/package/wpa_supplicant/0011-Reject-SET_CRED-commands-with-newline-characters-in-.patch new file mode 100644 index 00000000..530681fa --- /dev/null +++ b/bsp/buildroot/package/wpa_supplicant/0011-Reject-SET_CRED-commands-with-newline-characters-in-.patch @@ -0,0 +1,65 @@ +From b166cd84a77a6717be9600bf95378a0055d6f5a5 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Tue, 5 Apr 2016 23:33:10 +0300 +Subject: [PATCH] Reject SET_CRED commands with newline characters in the + string values + +Most of the cred block parameters are written as strings without +filtering and if there is an embedded newline character in the value, +unexpected configuration file data might be written. + +This fixes an issue where wpa_supplicant could have updated the +configuration file cred parameter with arbitrary data from the control +interface or D-Bus interface. While those interfaces are supposed to be +accessible only for trusted users/applications, it may be possible that +an untrusted user has access to a management software component that +does not validate the credential value before passing it to +wpa_supplicant. + +This could allow such an untrusted user to inject almost arbitrary data +into the configuration file. Such configuration file could result in +wpa_supplicant trying to load a library (e.g., opensc_engine_path, +pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user +controlled location when starting again. This would allow code from that +library to be executed under the wpa_supplicant process privileges. + +Signed-off-by: Jouni Malinen +Signed-off-by: Baruch Siach +--- +Patch status: upstream (b166cd84a77a6717be9600bf95378a0055d6f5a5) + + wpa_supplicant/config.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index eb97cd5e4e6e..69152efdea1a 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -2896,6 +2896,8 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var, + + if (os_strcmp(var, "password") == 0 && + os_strncmp(value, "ext:", 4) == 0) { ++ if (has_newline(value)) ++ return -1; + str_clear_free(cred->password); + cred->password = os_strdup(value); + cred->ext_password = 1; +@@ -2946,9 +2948,14 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var, + } + + val = wpa_config_parse_string(value, &len); +- if (val == NULL) { ++ if (val == NULL || ++ (os_strcmp(var, "excluded_ssid") != 0 && ++ os_strcmp(var, "roaming_consortium") != 0 && ++ os_strcmp(var, "required_roaming_consortium") != 0 && ++ has_newline(val))) { + wpa_printf(MSG_ERROR, "Line %d: invalid field '%s' string " + "value '%s'.", line, var, value); ++ os_free(val); + return -1; + } + +-- +2.8.1 + diff --git a/bsp/buildroot/package/wpa_supplicant/0012-Reject-SET-commands-with-newline-characters-in-the-s.patch b/bsp/buildroot/package/wpa_supplicant/0012-Reject-SET-commands-with-newline-characters-in-the-s.patch new file mode 100644 index 00000000..a29df079 --- /dev/null +++ b/bsp/buildroot/package/wpa_supplicant/0012-Reject-SET-commands-with-newline-characters-in-the-s.patch @@ -0,0 +1,53 @@ +From 2a3f56502b52375c3bf113cf92adfa99bad6b488 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Tue, 5 Apr 2016 23:55:48 +0300 +Subject: [PATCH] Reject SET commands with newline characters in the string + values + +Many of the global configuration parameters are written as strings +without filtering and if there is an embedded newline character in the +value, unexpected configuration file data might be written. + +This fixes an issue where wpa_supplicant could have updated the +configuration file global parameter with arbitrary data from the control +interface or D-Bus interface. While those interfaces are supposed to be +accessible only for trusted users/applications, it may be possible that +an untrusted user has access to a management software component that +does not validate the value of a parameter before passing it to +wpa_supplicant. + +This could allow such an untrusted user to inject almost arbitrary data +into the configuration file. Such configuration file could result in +wpa_supplicant trying to load a library (e.g., opensc_engine_path, +pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user +controlled location when starting again. This would allow code from that +library to be executed under the wpa_supplicant process privileges. + +Signed-off-by: Jouni Malinen +Signed-off-by: Baruch Siach +--- +Patch status: upstream (2a3f56502b52375c3bf113cf92adfa99bad6b488) + + wpa_supplicant/config.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c +index 69152efdea1a..d9a1603f6d7e 100644 +--- a/wpa_supplicant/config.c ++++ b/wpa_supplicant/config.c +@@ -3764,6 +3764,12 @@ static int wpa_global_config_parse_str(const struct global_parse_data *data, + return -1; + } + ++ if (has_newline(pos)) { ++ wpa_printf(MSG_ERROR, "Line %d: invalid %s value with newline", ++ line, data->name); ++ return -1; ++ } ++ + tmp = os_strdup(pos); + if (tmp == NULL) + return -1; +-- +2.8.1 + diff --git a/bsp/buildroot/package/wpa_supplicant/Config.in b/bsp/buildroot/package/wpa_supplicant/Config.in index f4c4167b..85520b6a 100644 --- a/bsp/buildroot/package/wpa_supplicant/Config.in +++ b/bsp/buildroot/package/wpa_supplicant/Config.in @@ -38,6 +38,17 @@ config BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT making it bigger but dispensing the need for a separate hostapd binary in some applications hence being smaller overall. +config BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY + bool "Enable Wi-Fi Display" + depends on BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT + help + Enable support for Wi-Fi Display + +config BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN + bool "Enable autoscan" + help + Enable support for the autoscan feature (allow periodic scan) + config BR2_PACKAGE_WPA_SUPPLICANT_EAP bool "Enable EAP" help diff --git a/bsp/buildroot/package/wpa_supplicant/wpa_supplicant.mk b/bsp/buildroot/package/wpa_supplicant/wpa_supplicant.mk index ba1180d4..d46328e0 100644 --- a/bsp/buildroot/package/wpa_supplicant/wpa_supplicant.mk +++ b/bsp/buildroot/package/wpa_supplicant/wpa_supplicant.mk @@ -20,7 +20,8 @@ WPA_SUPPLICANT_INSTALL_STAGING = YES WPA_SUPPLICANT_CONFIG_EDITS = -WPA_SUPPLICANT_CONFIG_SET = +# Add support for simple background scan +WPA_SUPPLICANT_CONFIG_SET = CONFIG_BGSCAN_SIMPLE WPA_SUPPLICANT_CONFIG_ENABLE = \ CONFIG_IEEE80211AC \ @@ -67,6 +68,16 @@ WPA_SUPPLICANT_CONFIG_ENABLE += \ CONFIG_P2P endif +ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY),y) +WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_WIFI_DISPLAY +endif + +ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN),y) +WPA_SUPPLICANT_CONFIG_ENABLE += \ + CONFIG_AUTOSCAN_EXPONENTIAL \ + CONFIG_AUTOSCAN_PERIODIC +endif + ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WPS),y) WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_WPS endif diff --git a/bsp/buildroot/package/wpan-tools/0001-fix-build-with-newer-libnl.patch b/bsp/buildroot/package/wpan-tools/0001-fix-build-with-newer-libnl.patch new file mode 100644 index 00000000..03e1a033 --- /dev/null +++ b/bsp/buildroot/package/wpan-tools/0001-fix-build-with-newer-libnl.patch @@ -0,0 +1,40 @@ +From 51ab69d76aa708c79aed971ee4083abb8cc07201 Mon Sep 17 00:00:00 2001 +From: Stefan Schmidt +Date: Mon, 9 Nov 2015 19:06:25 +0100 +Subject: [PATCH] build: avoid redefinition errors with libnl >= 3.2.27 + +From 3.2.17 onwards we have nla for s8, s16, etc defined directly in libnl. +If we keep including this file anyway we run into redefinition errors. Better +include use our own only for earlier versions. + +Happened to me on Fedora 22 after my last update. + +Signed-off-by: Stefan Schmidt +Acked-by: Alexander Aring +Signed-off-by: Gustavo Zacarias +--- +Patch status: upstream + + src/nl_extras.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/nl_extras.h b/src/nl_extras.h +index 9d841aa..c4d1d14 100644 +--- a/src/nl_extras.h ++++ b/src/nl_extras.h +@@ -1,6 +1,8 @@ + #ifndef __NL_EXTRAS_H + #define __NL_EXTRAS_H + ++#if LIBNL_VER_MIC <= 26 ++ + #ifndef NLA_S8 + + #define NLA_S8 13 +@@ -43,4 +45,6 @@ static inline int32_t nla_get_s32(struct nlattr *nla) + + #endif /* NLA_S64 */ + ++#endif /* LIBNL_VER_MIC */ ++ + #endif /* __NL_EXTRAS_H */ diff --git a/bsp/buildroot/package/wpan-tools/Config.in b/bsp/buildroot/package/wpan-tools/Config.in new file mode 100644 index 00000000..9e327420 --- /dev/null +++ b/bsp/buildroot/package/wpan-tools/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_WPAN_TOOLS + bool "wpan-tools" + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_LIBNL + help + Userspace tools for Linux IEEE 802.15.4 stack. + + http://wpan.cakelab.org/ + +comment "wpan-tools needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/bsp/buildroot/package/wpan-tools/wpan-tools.hash b/bsp/buildroot/package/wpan-tools/wpan-tools.hash new file mode 100644 index 00000000..fbcf64c0 --- /dev/null +++ b/bsp/buildroot/package/wpan-tools/wpan-tools.hash @@ -0,0 +1,4 @@ +# From http://wpan.cakelab.org/releases/md5sum +md5 c6356f7be4de2e9f2084283b9ed7e1ab wpan-tools-0.5.tar.gz +# Calculated based on the hash above +sha256 f381f24eb1962aa9e21751004560371bb9ad8bd0b735bc493930f50e8c1f3d99 wpan-tools-0.5.tar.gz diff --git a/bsp/buildroot/package/wpan-tools/wpan-tools.mk b/bsp/buildroot/package/wpan-tools/wpan-tools.mk new file mode 100644 index 00000000..d2238004 --- /dev/null +++ b/bsp/buildroot/package/wpan-tools/wpan-tools.mk @@ -0,0 +1,13 @@ +################################################################################ +# +# wpan-tools +# +################################################################################ + +WPAN_TOOLS_VERSION = 0.5 +WPAN_TOOLS_SITE = http://wpan.cakelab.org/releases +WPAN_TOOLS_DEPENDENCIES = host-pkgconf libnl +WPAN_TOOLS_LICENSE = iw license +WPAN_TOOLS_LICENSE_FILES = COPYING + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/wvdial/Config.in b/bsp/buildroot/package/wvdial/Config.in index d5458700..03730f3b 100644 --- a/bsp/buildroot/package/wvdial/Config.in +++ b/bsp/buildroot/package/wvdial/Config.in @@ -10,6 +10,6 @@ config BR2_PACKAGE_WVDIAL http://wvdial.googlecode.com/ -comment "wvdial needs a (e)glibc or uClibc toolchain w/ C++, dynamic library" +comment "wvdial needs a glibc or uClibc toolchain w/ C++, dynamic library" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/wvdial/wvdial.hash b/bsp/buildroot/package/wvdial/wvdial.hash new file mode 100644 index 00000000..ac492090 --- /dev/null +++ b/bsp/buildroot/package/wvdial/wvdial.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82 wvdial-1.61.tar.bz2 diff --git a/bsp/buildroot/package/wvstreams/Config.in b/bsp/buildroot/package/wvstreams/Config.in index e2edd6d2..3d2d8f42 100644 --- a/bsp/buildroot/package/wvstreams/Config.in +++ b/bsp/buildroot/package/wvstreams/Config.in @@ -12,6 +12,6 @@ config BR2_PACKAGE_WVSTREAMS http://wvstreams.googlecode.com/ -comment "wvstreams needs a (e)glibc or uClibc toolchain w/ C++, dynamic library" +comment "wvstreams needs a glibc or uClibc toolchain w/ C++, dynamic library" depends on BR2_USE_MMU depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL diff --git a/bsp/buildroot/package/wvstreams/wvstreams.hash b/bsp/buildroot/package/wvstreams/wvstreams.hash new file mode 100644 index 00000000..17cad6d3 --- /dev/null +++ b/bsp/buildroot/package/wvstreams/wvstreams.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633 wvstreams-4.6.1.tar.gz diff --git a/bsp/buildroot/package/x11r7/Config.in b/bsp/buildroot/package/x11r7/Config.in index 381157f9..40aa80c9 100644 --- a/bsp/buildroot/package/x11r7/Config.in +++ b/bsp/buildroot/package/x11r7/Config.in @@ -15,7 +15,6 @@ if BR2_PACKAGE_XORG7 endmenu menu "X11R7 Libraries" source package/x11r7/libxcb/Config.in - source package/x11r7/libepoxy/Config.in source package/x11r7/xcb-util/Config.in source package/x11r7/xcb-util-cursor/Config.in source package/x11r7/xcb-util-image/Config.in @@ -155,7 +154,7 @@ if BR2_PACKAGE_XORG7 source package/x11r7/xdriver_xf86-input-synaptics/Config.in source package/x11r7/xdriver_xf86-input-tslib/Config.in source package/x11r7/xdriver_xf86-input-vmmouse/Config.in - source package/x11r7/xdriver_xf86-input-void/Config.in + source package/x11r7/xdriver_xf86-video-amdgpu/Config.in source package/x11r7/xdriver_xf86-video-ark/Config.in source package/x11r7/xdriver_xf86-video-ast/Config.in source package/x11r7/xdriver_xf86-video-ati/Config.in diff --git a/bsp/buildroot/package/x11r7/libepoxy/Config.in b/bsp/buildroot/package/x11r7/libepoxy/Config.in deleted file mode 100644 index 5628bf79..00000000 --- a/bsp/buildroot/package/x11r7/libepoxy/Config.in +++ /dev/null @@ -1,13 +0,0 @@ -config BR2_PACKAGE_LIBEPOXY - bool "epoxy" - select BR2_PACKAGE_XLIB_LIBX11 - select BR2_PACKAGE_XUTIL_UTIL_MACROS - depends on BR2_PACKAGE_HAS_LIBEGL - help - Epoxy is a library for handling OpenGL function pointer - management for you. - - https://github.com/anholt/libepoxy - -comment "epoxy needs an OpenGL EGL backend" - depends on !BR2_PACKAGE_HAS_LIBEGL diff --git a/bsp/buildroot/package/x11r7/libxcb/libxcb.hash b/bsp/buildroot/package/x11r7/libxcb/libxcb.hash index 62060ee0..6df7d017 100644 --- a/bsp/buildroot/package/x11r7/libxcb/libxcb.hash +++ b/bsp/buildroot/package/x11r7/libxcb/libxcb.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-September/002633.html -sha256 b720fd6c7d200e5371affdb3f049cc8f88cff9aed942ff1b824d95eedbf69d30 libxcb-1.11.1.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-May/002694.html +sha256 4adfb1b7c67e99bc9c2ccb110b2f175686576d2f792c8a71b9c8b19014057b5b libxcb-1.12.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/libxcb/libxcb.mk b/bsp/buildroot/package/x11r7/libxcb/libxcb.mk index c46ee264..ba424186 100644 --- a/bsp/buildroot/package/x11r7/libxcb/libxcb.mk +++ b/bsp/buildroot/package/x11r7/libxcb/libxcb.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBXCB_VERSION = 1.11.1 +LIBXCB_VERSION = 1.12 LIBXCB_SOURCE = libxcb-$(LIBXCB_VERSION).tar.bz2 LIBXCB_SITE = http://xcb.freedesktop.org/dist LIBXCB_LICENSE = MIT @@ -15,9 +15,16 @@ LIBXCB_INSTALL_STAGING = YES LIBXCB_DEPENDENCIES = \ host-libxslt libpthread-stubs xcb-proto xlib_libXdmcp xlib_libXau \ host-xcb-proto host-python host-pkgconf +HOST_LIBXCB_DEPENDENCIES = \ + host-libxslt host-libpthread-stubs host-xcb-proto host-xlib_libXdmcp \ + host-xlib_libXau host-python host-pkgconf LIBXCB_CONF_OPTS = --with-doxygen=no HOST_LIBXCB_CONF_OPTS = --with-doxygen=no +# libxcb is not python3 friendly, so force the python interpreter +HOST_LIBXCB_CONF_OPTS += ac_cv_path_PYTHON=$(HOST_DIR)/usr/bin/python2 +LIBXCB_CONF_OPTS += ac_cv_path_PYTHON=$(HOST_DIR)/usr/bin/python2 + $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/mcookie/mcookie.mk b/bsp/buildroot/package/x11r7/mcookie/mcookie.mk index 87a236fb..b14599d5 100644 --- a/bsp/buildroot/package/x11r7/mcookie/mcookie.mk +++ b/bsp/buildroot/package/x11r7/mcookie/mcookie.mk @@ -4,8 +4,6 @@ # ################################################################################ -# Source included in Buildroot -MCOOKIE_SOURCE = MCOOKIE_LICENSE = Public Domain define MCOOKIE_EXTRACT_CMDS diff --git a/bsp/buildroot/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk b/bsp/buildroot/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk index ebdcda57..489bbba4 100644 --- a/bsp/buildroot/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk +++ b/bsp/buildroot/package/x11r7/xapp_bdftopcf/xapp_bdftopcf.mk @@ -10,6 +10,7 @@ XAPP_BDFTOPCF_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_BDFTOPCF_LICENSE = MIT XAPP_BDFTOPCF_LICENSE_FILES = COPYING XAPP_BDFTOPCF_DEPENDENCIES = xlib_libXfont +HOST_XAPP_BDFTOPCF_DEPENDENCIES = host-xlib_libXfont # needed for linking against libXfont XAPP_BDFTOPCF_MAKE_OPTS += LIBS=-ldl diff --git a/bsp/buildroot/package/x11r7/xapp_mkfontdir/xapp_mkfontdir.mk b/bsp/buildroot/package/x11r7/xapp_mkfontdir/xapp_mkfontdir.mk index b74f9939..f2227bdf 100644 --- a/bsp/buildroot/package/x11r7/xapp_mkfontdir/xapp_mkfontdir.mk +++ b/bsp/buildroot/package/x11r7/xapp_mkfontdir/xapp_mkfontdir.mk @@ -10,6 +10,7 @@ XAPP_MKFONTDIR_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_MKFONTDIR_LICENSE = MIT XAPP_MKFONTDIR_LICENSE_FILES = COPYING XAPP_MKFONTDIR_DEPENDENCIES = xapp_mkfontscale +HOST_XAPP_MKFONTDIR_DEPENDENCIES = host-xapp_mkfontscale $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk b/bsp/buildroot/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk index b99a6460..d7abf6c5 100644 --- a/bsp/buildroot/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk +++ b/bsp/buildroot/package/x11r7/xapp_mkfontscale/xapp_mkfontscale.mk @@ -10,6 +10,8 @@ XAPP_MKFONTSCALE_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_MKFONTSCALE_LICENSE = MIT XAPP_MKFONTSCALE_LICENSE_FILES = COPYING XAPP_MKFONTSCALE_DEPENDENCIES = zlib freetype xlib_libfontenc xproto_xproto +HOST_XAPP_MKFONTSCALE_DEPENDENCIES = \ + host-zlib host-freetype host-xlib_libfontenc host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xapp_scripts/xapp_scripts.hash b/bsp/buildroot/package/x11r7/xapp_scripts/xapp_scripts.hash new file mode 100644 index 00000000..79a43180 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xapp_scripts/xapp_scripts.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 1b154b4359302ca499818c45396325aef9ff364d6ff4ce5c3769e4803994a136 scripts-1.0.1.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk b/bsp/buildroot/package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk index f9ca39d2..4bee26b5 100644 --- a/bsp/buildroot/package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk +++ b/bsp/buildroot/package/x11r7/xapp_xcursorgen/xapp_xcursorgen.mk @@ -10,6 +10,8 @@ XAPP_XCURSORGEN_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XCURSORGEN_LICENSE = MIT XAPP_XCURSORGEN_LICENSE_FILES = COPYING XAPP_XCURSORGEN_DEPENDENCIES = libpng xlib_libX11 xlib_libXcursor +HOST_XAPP_XCURSORGEN_DEPENDENCIES = \ + host-libpng host-xlib_libX11 host-xlib_libXcursor $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xapp_xinit/xapp_xinit.mk b/bsp/buildroot/package/x11r7/xapp_xinit/xapp_xinit.mk index a67ba146..a796884f 100644 --- a/bsp/buildroot/package/x11r7/xapp_xinit/xapp_xinit.mk +++ b/bsp/buildroot/package/x11r7/xapp_xinit/xapp_xinit.mk @@ -10,5 +10,6 @@ XAPP_XINIT_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XINIT_DEPENDENCIES = xapp_xauth xlib_libX11 XAPP_XINIT_LICENSE = MIT XAPP_XINIT_LICENSE_FILES = COPYING +XAPP_XINIT_CONF_OPTS = MCOOKIE=/usr/bin/mcookie $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.hash b/bsp/buildroot/package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.hash new file mode 100644 index 00000000..c2d439fe --- /dev/null +++ b/bsp/buildroot/package/x11r7/xapp_xinput-calibrator/xapp_xinput-calibrator.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 baa4ddca49ec94c27ba4c715bfa26692fec1132103e927213c3169e475d3d971 xinput_calibrator-0.7.5.tar.gz diff --git a/bsp/buildroot/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk b/bsp/buildroot/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk index fea7fa8e..4fc4372f 100644 --- a/bsp/buildroot/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk +++ b/bsp/buildroot/package/x11r7/xapp_xkbcomp/xapp_xkbcomp.mk @@ -10,6 +10,7 @@ XAPP_XKBCOMP_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XKBCOMP_LICENSE = MIT XAPP_XKBCOMP_LICENSE_FILES = COPYING XAPP_XKBCOMP_DEPENDENCIES = xlib_libX11 xlib_libxkbfile +HOST_XAPP_XKBCOMP_DEPENDENCIES = host-xlib_libX11 host-xlib_libxkbfile XAPP_XKBCOMP_CONF_ENV = ac_cv_file___xkbparse_c=yes $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.hash b/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.hash index 009ba5da..b1db30dc 100644 --- a/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.hash +++ b/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2014-August/002467.html -sha256 7154ac3486b86923692f2d6cdb2991a2ee72bc32af2c4379a6f1c068f204be1b xrandr-1.4.3.tar.bz2 +# From https://lists.freedesktop.org/archives/xorg-announce/2016-February/002677.html +sha256 c1cfd4e1d4d708c031d60801e527abc9b6d34b85f2ffa2cadd21f75ff38151cd xrandr-1.5.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.mk b/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.mk index d2e4cf30..583a501e 100644 --- a/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.mk +++ b/bsp/buildroot/package/x11r7/xapp_xrandr/xapp_xrandr.mk @@ -4,7 +4,7 @@ # ################################################################################ -XAPP_XRANDR_VERSION = 1.4.3 +XAPP_XRANDR_VERSION = 1.5.0 XAPP_XRANDR_SOURCE = xrandr-$(XAPP_XRANDR_VERSION).tar.bz2 XAPP_XRANDR_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XRANDR_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xapp_xsetmode/xapp_xsetmode.hash b/bsp/buildroot/package/x11r7/xapp_xsetmode/xapp_xsetmode.hash new file mode 100644 index 00000000..c393ad4d --- /dev/null +++ b/bsp/buildroot/package/x11r7/xapp_xsetmode/xapp_xsetmode.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 988b47cd922991c6e6adbce15dc386ac75690b61744b526c3af5a4eaa9afa0aa xsetmode-1.0.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash b/bsp/buildroot/package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash new file mode 100644 index 00000000..6e6a37e9 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 7d65f450420b4f764dcf38e4ccee9d608b5a5874706e716cb861bfe2586b7d4a xsetpointer-1.0.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xcb-proto/0001-Make-whitespace-use-consistent.patch b/bsp/buildroot/package/x11r7/xcb-proto/0001-Make-whitespace-use-consistent.patch new file mode 100644 index 00000000..67adada5 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xcb-proto/0001-Make-whitespace-use-consistent.patch @@ -0,0 +1,212 @@ +From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001 +From: Thomas Klausner +Date: Thu, 19 May 2016 17:30:04 +0200 +Subject: [PATCH] Make whitespace use consistent. + +At least python-3.5.x complains about this forcefully. + +Signed-off-by: Thomas Klausner +Signed-off-by: Uli Schlachter +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) +--- + xcbgen/align.py | 96 ++++++++++++++++++++++++++++----------------------------- + 1 file changed, 48 insertions(+), 48 deletions(-) + +diff --git a/xcbgen/align.py b/xcbgen/align.py +index 5e31838..d4c12ee 100644 +--- a/xcbgen/align.py ++++ b/xcbgen/align.py +@@ -16,12 +16,12 @@ class Alignment(object): + return self.align == other.align and self.offset == other.offset + + def __str__(self): +- return "(align=%d, offset=%d)" % (self.align, self.offset) ++ return "(align=%d, offset=%d)" % (self.align, self.offset) + + @staticmethod + def for_primitive_type(size): +- # compute the required start_alignment based on the size of the type +- if size % 8 == 0: ++ # compute the required start_alignment based on the size of the type ++ if size % 8 == 0: + # do 8-byte primitives require 8-byte alignment in X11? + return Alignment(8,0) + elif size % 4 == 0: +@@ -33,7 +33,7 @@ class Alignment(object): + + + def align_after_fixed_size(self, size): +- new_offset = (self.offset + size) % self.align ++ new_offset = (self.offset + size) % self.align + return Alignment(self.align, new_offset) + + +@@ -41,7 +41,7 @@ class Alignment(object): + ''' + Assuming the given external_align, checks whether + self is fulfilled for all cases. +- Returns True if yes, False otherwise. ++ Returns True if yes, False otherwise. + ''' + if self.align == 1 and self.offset == 0: + # alignment 1 with offset 0 is always fulfilled +@@ -55,9 +55,9 @@ class Alignment(object): + # the external align guarantees less alignment -> not guaranteed + return False + +- if external_align.align % self.align != 0: ++ if external_align.align % self.align != 0: + # the external align cannot be divided by our align +- # -> not guaranteed ++ # -> not guaranteed + # (this can only happen if there are alignments that are not + # a power of 2, which is highly discouraged. But better be + # safe and check for it) +@@ -72,7 +72,7 @@ class Alignment(object): + + def combine_with(self, other): + # returns the alignment that is guaranteed when +- # both, self or other, can happen ++ # both, self or other, can happen + new_align = gcd(self.align, other.align) + new_offset_candidate1 = self.offset % new_align + new_offset_candidate2 = other.offset % new_align +@@ -83,8 +83,8 @@ class Alignment(object): + new_align = gcd(new_align, offset_diff) + new_offset_candidate1 = self.offset % new_align + new_offset_candidate2 = other.offset % new_align +- assert new_offset_candidate1 == new_offset_candidate2 +- new_offset = new_offset_candidate1 ++ assert new_offset_candidate1 == new_offset_candidate2 ++ new_offset = new_offset_candidate1 + # return the result + return Alignment(new_align, new_offset) + +@@ -92,44 +92,44 @@ class Alignment(object): + class AlignmentLog(object): + + def __init__(self): +- self.ok_list = [] +- self.fail_list = [] +- self.verbosity = 1 ++ self.ok_list = [] ++ self.fail_list = [] ++ self.verbosity = 1 + + def __str__(self): +- result = "" ++ result = "" + +- # output the OK-list +- for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: +- stacksize = len(callstack) ++ # output the OK-list ++ for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: ++ stacksize = len(callstack) + indent = ' ' * stacksize +- if self.ok_callstack_is_relevant(callstack): ++ if self.ok_callstack_is_relevant(callstack): + if field_name is None or field_name == "": +- result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" +- % (indent, str(type_obj), indent, str(align_before), str(align_after))) +- else: +- result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" +- % (indent, str(field_name), str(type_obj), +- indent, str(align_before), str(align_after))) ++ result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" ++ % (indent, str(type_obj), indent, str(align_before), str(align_after))) ++ else: ++ result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" ++ % (indent, str(field_name), str(type_obj), ++ indent, str(align_before), str(align_after))) + if self.verbosity >= 1: +- result += self.callstack_to_str(indent, callstack) ++ result += self.callstack_to_str(indent, callstack) + +- # output the fail-list +- for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: +- stacksize = len(callstack) ++ # output the fail-list ++ for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: ++ stacksize = len(callstack) + indent = ' ' * stacksize +- if field_name is None or field_name == "": +- result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" +- % (indent, str(align_before), indent, str(type_obj), indent, reason)) +- else: +- result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" +- % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) ++ if field_name is None or field_name == "": ++ result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" ++ % (indent, str(align_before), indent, str(type_obj), indent, reason)) ++ else: ++ result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" ++ % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) + + if self.verbosity >= 1: +- result += self.callstack_to_str(indent, callstack) ++ result += self.callstack_to_str(indent, callstack) + + +- return result ++ return result + + + def callstack_to_str(self, indent, callstack): +@@ -137,41 +137,41 @@ class AlignmentLog(object): + for stack_elem in callstack: + result += "\t %s%s\n" % (indent, str(stack_elem)) + result += "\t%s]\n" % indent +- return result ++ return result + + + def ok_callstack_is_relevant(self, ok_callstack): + # determine whether an ok callstack is relevant for logging +- if self.verbosity >= 2: +- return True ++ if self.verbosity >= 2: ++ return True + + # empty callstacks are always relevant +- if len(ok_callstack) == 0: ++ if len(ok_callstack) == 0: + return True + +- # check whether the ok_callstack is a subset or equal to a fail_callstack ++ # check whether the ok_callstack is a subset or equal to a fail_callstack + for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list: + if len(ok_callstack) <= len(fail_callstack): + zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)]) +- is_subset = all([i == j for i, j in zipped]) +- if is_subset: ++ is_subset = all([i == j for i, j in zipped]) ++ if is_subset: + return True + + return False + + + def ok(self, align_before, field_name, type_obj, callstack, align_after): +- self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) ++ self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) + + def fail(self, align_before, field_name, type_obj, callstack, reason): +- self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) ++ self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) + + def append(self, other): +- self.ok_list.extend(other.ok_list) +- self.fail_list.extend(other.fail_list) ++ self.ok_list.extend(other.ok_list) ++ self.fail_list.extend(other.fail_list) + + def ok_count(self): +- return len(self.ok_list) ++ return len(self.ok_list) + + + +-- +2.8.1 + diff --git a/bsp/buildroot/package/x11r7/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch b/bsp/buildroot/package/x11r7/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch new file mode 100644 index 00000000..6fa5d48d --- /dev/null +++ b/bsp/buildroot/package/x11r7/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch @@ -0,0 +1,70 @@ +From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001 +From: Thomas Klausner +Date: Thu, 19 May 2016 17:30:05 +0200 +Subject: print() is a function and needs parentheses. + +Fixes build with python-3.x. + +Signed-off-by: Thomas Klausner +Signed-off-by: Uli Schlachter +[yann.morin.1998@free.fr: backport from upstream] +Signed-off-by: "Yann E. MORIN" + +diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py +index c3b5758..b83b119 100644 +--- a/xcbgen/xtypes.py ++++ b/xcbgen/xtypes.py +@@ -501,7 +501,7 @@ class ComplexType(Type): + int(required_start_align_element.get('align', "4"), 0), + int(required_start_align_element.get('offset', "0"), 0)) + if verbose_align_log: +- print "Explicit start-align for %s: %s\n" % (self, self.required_start_align) ++ print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align)) + + def resolve(self, module): + if self.resolved: +@@ -592,7 +592,7 @@ class ComplexType(Type): + if verbose_align_log: + print ("calc_required_start_align: %s has start-align %s" + % (str(self), str(self.required_start_align))) +- print "Details:\n" + str(log) ++ print ("Details:\n" + str(log)) + if self.required_start_align.offset != 0: + print (("WARNING: %s\n\thas start-align with non-zero offset: %s" + + "\n\tsuggest to add explicit definition with:" +@@ -619,12 +619,12 @@ class ComplexType(Type): + for offset in range(0,align): + align_candidate = Alignment(align, offset) + if verbose_align_log: +- print "trying %s for %s" % (str(align_candidate), str(self)) ++ print ("trying %s for %s" % (str(align_candidate), str(self))) + my_log = AlignmentLog() + if self.is_possible_start_align(align_candidate, callstack, my_log): + log.append(my_log) + if verbose_align_log: +- print "found start-align %s for %s" % (str(align_candidate), str(self)) ++ print ("found start-align %s for %s" % (str(align_candidate), str(self))) + return align_candidate + else: + my_ok_count = my_log.ok_count() +@@ -641,7 +641,7 @@ class ComplexType(Type): + # none of the candidates applies + # this type has illegal internal aligns for all possible start_aligns + if verbose_align_log: +- print "didn't find start-align for %s" % str(self) ++ print ("didn't find start-align for %s" % str(self)) + log.append(best_log) + return None + +@@ -900,7 +900,7 @@ class SwitchType(ComplexType): + # aux function for unchecked_get_alignment_after + def get_align_for_selected_case_field(self, case_field, start_align, callstack, log): + if verbose_align_log: +- print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)) ++ print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))) + total_align = start_align + for field in self.bitcases: + my_callstack = callstack[:] +-- +cgit v0.10.2 + diff --git a/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.hash b/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.hash index c9a91086..3f434854 100644 --- a/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.hash +++ b/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.hash @@ -1,2 +1,2 @@ -# From http://lists.freedesktop.org/archives/xcb/2014-August/009614.html -sha256 b4aceee6502a0ce45fc39b33c541a2df4715d00b72e660ebe8c5bb444771e32e xcb-proto-1.11.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-May/002693.html +sha256 5922aba4c664ab7899a29d92ea91a87aa4c1fc7eb5ee550325c3216c480a4906 xcb-proto-1.12.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.mk b/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.mk index 931573ac..84555d07 100644 --- a/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.mk +++ b/bsp/buildroot/package/x11r7/xcb-proto/xcb-proto.mk @@ -4,7 +4,7 @@ # ################################################################################ -XCB_PROTO_VERSION = 1.11 +XCB_PROTO_VERSION = 1.12 XCB_PROTO_SOURCE = xcb-proto-$(XCB_PROTO_VERSION).tar.bz2 XCB_PROTO_SITE = http://xcb.freedesktop.org/dist XCB_PROTO_LICENSE = MIT @@ -13,6 +13,7 @@ XCB_PROTO_LICENSE_FILES = COPYING XCB_PROTO_INSTALL_STAGING = YES XCB_PROTO_DEPENDENCIES = host-python +HOST_XCB_PROTO_DEPENDENCIES = host-python # xcbincludedir/pythondir is used by E.G. libxcb at build time to find the # xml / python files, so ensure these expand to their full (host) paths diff --git a/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.hash b/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.hash index e5c47ca8..36f2258d 100644 --- a/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.hash +++ b/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-March/002555.html -sha1 b55a92cd96c3ec1be9a26963df6d5f16e68fffea xcb-util-cursor-0.1.2.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-May/002691.html +sha1 26562eb6d4151307f7b6a53453d360ecfc0563ac xcb-util-cursor-0.1.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.mk b/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.mk index 65704a11..07b37c5e 100644 --- a/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.mk +++ b/bsp/buildroot/package/x11r7/xcb-util-cursor/xcb-util-cursor.mk @@ -4,7 +4,7 @@ # ################################################################################ -XCB_UTIL_CURSOR_VERSION = 0.1.2 +XCB_UTIL_CURSOR_VERSION = 0.1.3 XCB_UTIL_CURSOR_SITE = http://xcb.freedesktop.org/dist XCB_UTIL_CURSOR_SOURCE = xcb-util-cursor-$(XCB_UTIL_CURSOR_VERSION).tar.bz2 XCB_UTIL_CURSOR_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xcb-util/xcb-util.hash b/bsp/buildroot/package/x11r7/xcb-util/xcb-util.hash new file mode 100644 index 00000000..a9b8be25 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xcb-util/xcb-util.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c611259c0ab20fd76f79f48f4684843c18ea9c967eba78a45e8b3636315c18c4 xcb-util-0.3.9.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.hash b/bsp/buildroot/package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.hash new file mode 100644 index 00000000..19f0de2e --- /dev/null +++ b/bsp/buildroot/package/x11r7/xcursor-transparent-theme/xcursor-transparent-theme.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 b26adf2d503d01299718390ae39dab4691a67220de09423be0364e9a060bf7e4 xcursor-transparent-theme-0.1.1.tar.gz diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash index 33149348..91937f26 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2016-January/002669.html -sha256 af9c2b47f5b272ae56b45da6bd84610fc9a3d80a4b32c8215842a39d862de017 xf86-input-evdev-2.10.1.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-June/002696.html +sha256 5aa21ba4be8df927e5676a99c7f4f0343abc089f5451b7e73e39536f29b332a2 xf86-input-evdev-2.10.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk index 4a2ed368..c801323f 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_INPUT_EVDEV_VERSION = 2.10.1 +XDRIVER_XF86_INPUT_EVDEV_VERSION = 2.10.3 XDRIVER_XF86_INPUT_EVDEV_SOURCE = xf86-input-evdev-$(XDRIVER_XF86_INPUT_EVDEV_VERSION).tar.bz2 XDRIVER_XF86_INPUT_EVDEV_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_EVDEV_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/50-joystick.conf b/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/50-joystick.conf new file mode 100644 index 00000000..95a295ab --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/50-joystick.conf @@ -0,0 +1,6 @@ +Section "InputClass" + Identifier "joystick catchall" + MatchIsJoystick "on" + MatchDevicePath "/dev/input/event*" + Driver "joystick" +EndSection diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk index c63312dd..2696e2b7 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk @@ -11,4 +11,11 @@ XDRIVER_XF86_INPUT_JOYSTICK_LICENSE = MIT XDRIVER_XF86_INPUT_JOYSTICK_LICENSE_FILES = COPYING XDRIVER_XF86_INPUT_JOYSTICK_DEPENDENCIES = xserver_xorg-server xproto_inputproto xproto_randrproto xproto_xproto +define XDRIVER_XF86_INPUT_JOYSTICK_CONF + $(INSTALL) -m 0644 -D \ + $(XDRIVER_XF86_INPUT_JOYSTICK_PKGDIR)/50-joystick.conf \ + $(TARGET_DIR)/usr/share/X11/xorg.conf.d/50-joystick.conf +endef +XDRIVER_XF86_INPUT_JOYSTICK_POST_INSTALL_TARGET_HOOKS += XDRIVER_XF86_INPUT_JOYSTICK_CONF + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.hash index b2925db2..df3794fa 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-December/002667.html -sha256 fdade531e91e79acf6dce8ac55fa4f65abe3f1358c5d3d777ae48dbc74b76f49 xf86-input-libinput-0.16.0.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-April/002687.html +sha256 6c5d30dc7c8b8ae34261340e1dc9cbb8ef435078e084b8ef507527a8a21af477 xf86-input-libinput-0.19.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.mk index 9e48886b..d49f4d1c 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-input-libinput/xdriver_xf86-input-libinput.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_INPUT_LIBINPUT_VERSION = 0.16.0 +XDRIVER_XF86_INPUT_LIBINPUT_VERSION = 0.19.0 XDRIVER_XF86_INPUT_LIBINPUT_SOURCE = xf86-input-libinput-$(XDRIVER_XF86_INPUT_LIBINPUT_VERSION).tar.bz2 XDRIVER_XF86_INPUT_LIBINPUT_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_INPUT_LIBINPUT_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/Config.in deleted file mode 100644 index fd3a6002..00000000 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/Config.in +++ /dev/null @@ -1,11 +0,0 @@ -config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID - bool "xf86-input-void" - # http://lists.x.org/archives/xorg-announce/2015-April/002585.html - # "It is just dead weight for any server released after 2007 or so. - # Don't use it." - depends on BR2_DEPRECATED_SINCE_2015_05 - select BR2_PACKAGE_XPROTO_INPUTPROTO - select BR2_PACKAGE_XPROTO_RANDRPROTO - select BR2_PACKAGE_XPROTO_XPROTO - help - null input driver diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.hash deleted file mode 100644 index a1b88c5f..00000000 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.hash +++ /dev/null @@ -1,2 +0,0 @@ -# From http://lists.x.org/archives/xorg-announce/2015-April/002585.html -sha256 f96e4f0a622821bf43a74bd419f2a18423343996c9d243c7e1430ba2d142339c xf86-input-void-1.4.1.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.mk deleted file mode 100644 index 5baa5288..00000000 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-input-void/xdriver_xf86-input-void.mk +++ /dev/null @@ -1,14 +0,0 @@ -################################################################################ -# -# xdriver_xf86-input-void -# -################################################################################ - -XDRIVER_XF86_INPUT_VOID_VERSION = 1.4.1 -XDRIVER_XF86_INPUT_VOID_SOURCE = xf86-input-void-$(XDRIVER_XF86_INPUT_VOID_VERSION).tar.bz2 -XDRIVER_XF86_INPUT_VOID_SITE = http://xorg.freedesktop.org/releases/individual/driver -XDRIVER_XF86_INPUT_VOID_LICENSE = MIT -XDRIVER_XF86_INPUT_VOID_LICENSE_FILES = COPYING -XDRIVER_XF86_INPUT_VOID_DEPENDENCIES = xserver_xorg-server xproto_inputproto xproto_randrproto xproto_xproto - -$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/Config.in new file mode 100644 index 00000000..968c5e76 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/Config.in @@ -0,0 +1,22 @@ +config BR2_PACKAGE_XDRIVER_XF86_VIDEO_AMDGPU + bool "xf86-video-amdgpu" + depends on BR2_PACKAGE_MESA3D_DRI_DRIVER + depends on BR2_PACKAGE_MESA3D_OPENGL_EGL # gbm + select BR2_PACKAGE_LIBDRM + select BR2_PACKAGE_LIBDRM_AMDGPU + select BR2_PACKAGE_LIBEPOXY + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE + select BR2_PACKAGE_XPROTO_DRI3PROTO + select BR2_PACKAGE_XPROTO_FONTSPROTO + select BR2_PACKAGE_XPROTO_GLPROTO + select BR2_PACKAGE_XPROTO_RANDRPROTO + select BR2_PACKAGE_XPROTO_VIDEOPROTO + select BR2_PACKAGE_XPROTO_XEXTPROTO + select BR2_PACKAGE_XPROTO_XF86DRIPROTO + select BR2_PACKAGE_XPROTO_XPROTO + help + AMD GPU video driver + +comment "xf86-video-amdgpu needs egl/opengl support from mesa3d" + depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL || \ + !BR2_PACKAGE_MESA3D_DRI_DRIVER diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash new file mode 100644 index 00000000..6754fb5a --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash @@ -0,0 +1,2 @@ +# From https://lists.x.org/archives/xorg-announce/2016-April/002686.html +sha256 69f5d0ded9f4d5ce529099b6b581268e8f4dcff5608f1441d4ebc110ebc57931 xf86-video-amdgpu-1.1.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk new file mode 100644 index 00000000..45177b29 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# xdriver_xf86-video-amdgpu +# +################################################################################ + +XDRIVER_XF86_VIDEO_AMDGPU_VERSION = 1.1.0 +XDRIVER_XF86_VIDEO_AMDGPU_SOURCE = xf86-video-amdgpu-$(XDRIVER_XF86_VIDEO_AMDGPU_VERSION).tar.bz2 +XDRIVER_XF86_VIDEO_AMDGPU_SITE = http://xorg.freedesktop.org/releases/individual/driver +XDRIVER_XF86_VIDEO_AMDGPU_LICENSE = MIT +XDRIVER_XF86_VIDEO_AMDGPU_LICENSE_FILES = COPYING +XDRIVER_XF86_VIDEO_AMDGPU_DEPENDENCIES = \ + libdrm \ + xlib_libXcomposite \ + xproto_dri3proto \ + xproto_fontsproto \ + xproto_glproto \ + xproto_randrproto \ + xproto_videoproto \ + xproto_xextproto \ + xproto_xf86driproto \ + xproto_xproto \ + xserver_xorg-server + +# xdriver_xf86-video-amdgpu requires O_CLOEXEC +XDRIVER_XF86_VIDEO_AMDGPU_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.hash index a4e34398..cf877d5b 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 e778f1824f5eed7e3197f00f39418de1525e310fd78e0335f6178c26b9b0495b xf86-video-ast-1.0.1.tar.bz2 +sha256 1edbbc55d47d3fd71dec99b15c2483e22738c642623a0fb86ef4a81a9067a2de xf86-video-ast-1.1.5.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk index d040ccd4..3c9eb911 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ast/xdriver_xf86-video-ast.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_AST_VERSION = 1.0.1 +XDRIVER_XF86_VIDEO_AST_VERSION = 1.1.5 XDRIVER_XF86_VIDEO_AST_SOURCE = xf86-video-ast-$(XDRIVER_XF86_VIDEO_AST_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_AST_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_AST_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/Config.in index 55be6034..00d91bda 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI bool "xf86-video-ati" depends on BR2_PACKAGE_MESA3D - depends on BR2_TOOLCHAIN_HAS_THREADS # libdrm -> libpthread-stubs select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash index 57ebfe87..6eb3508c 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-November/002658.html -sha256 2516d9eeb8da8bcd3a01365ed1314919777910fa904ab268af342b5693e1d34c xf86-video-ati-7.6.1.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-April/002684.html +sha256 844d1c577b145c90dc8ef027678f0c27f554363f782cd696a3aea26415b2c1c3 xf86-video-ati-7.7.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk index 3dd3d07a..29a0d2f5 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_ATI_VERSION = 7.6.1 +XDRIVER_XF86_VIDEO_ATI_VERSION = 7.7.0 XDRIVER_XF86_VIDEO_ATI_SOURCE = xf86-video-ati-$(XDRIVER_XF86_VIDEO_ATI_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_ATI_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_ATI_LICENSE = MIT @@ -22,7 +22,7 @@ XDRIVER_XF86_VIDEO_ATI_DEPENDENCIES = \ xproto_xproto \ xserver_xorg-server -ifeq ($(BR2_PACKAGE_LIBEPOXY),y) +ifeq ($(BR2_PACKAGE_XPROTO_DRI3PROTO)$(BR2_PACKAGE_LIBEPOXY),yy) XDRIVER_XF86_VIDEO_ATI_CONF_OPTS = --enable-glamor else XDRIVER_XF86_VIDEO_ATI_CONF_OPTS = --disable-glamor diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/Config.in index 8fec5c28..7825901e 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/Config.in @@ -2,6 +2,7 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBTURBO bool "xf86-video-fbturbo" select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_PIXMAN + select BR2_PACKAGE_XPROTO_DRI2PROTO if BR2_PACKAGE_LIBUMP select BR2_PACKAGE_XPROTO_FONTSPROTO select BR2_PACKAGE_XPROTO_RANDRPROTO select BR2_PACKAGE_XPROTO_RENDERPROTO diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.hash new file mode 100644 index 00000000..03702162 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 10411686de0a9d8b2cde300b0d68e9f1d22e3611470d357ef3afc337f123ca0f xdriver_xf86-video-fbturbo-0.4.0.tar.gz diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk index b2053d3e..15f4cd10 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-fbturbo/xdriver_xf86-video-fbturbo.mk @@ -26,6 +26,14 @@ else XDRIVER_XF86_VIDEO_FBTURBO_CONF_OPTS += --disable-pciaccess endif +ifeq ($(BR2_PACKAGE_LIBUMP),y) +XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES += libump +endif + +ifeq ($(BR2_PACKAGE_XPROTO_DRI2PROTO),y) +XDRIVER_XF86_VIDEO_FBTURBO_DEPENDENCIES += xproto_dri2proto +endif + define XDRIVER_XF86_VIDEO_FBTURBO_INSTALL_CONF_FILE $(INSTALL) -m 0644 -D $(@D)/xorg.conf $(TARGET_DIR)/etc/X11/xorg.conf endef diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.hash index 991cf6b7..b05983fd 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-May/002607.html -sha256 07b4d42623e71e592b77c52a75cf230f8e711c8a0c1b26cecb06e9231d333c41 xf86-video-geode-2.11.17.tar.bz2 +# From http://lists.x.org/archives/xorg-announce/2016-February/002673.html +sha256 d6ece9a862a68be3cdf86a87e0e1ba5e199168b8d075129646638f53649ba9e8 xf86-video-geode-2.11.18.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.mk index ae5bc0b4..b882f1f8 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-geode/xdriver_xf86-video-geode.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_GEODE_VERSION = 2.11.17 +XDRIVER_XF86_VIDEO_GEODE_VERSION = 2.11.18 XDRIVER_XF86_VIDEO_GEODE_SOURCE = xf86-video-geode-$(XDRIVER_XF86_VIDEO_GEODE_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_GEODE_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_GEODE_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/0001-Stop-using-Git-to-write-local-version.patch b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/0001-Stop-using-Git-to-write-local-version.patch new file mode 100644 index 00000000..2117e725 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/0001-Stop-using-Git-to-write-local-version.patch @@ -0,0 +1,90 @@ +From 69a92f4576a1e789ba2fcf957164d2c4013020c5 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Wed, 2 Dec 2015 13:36:25 +0000 +Subject: [PATCH] Stop using Git to write local version +Organization: O.S. Systems Software LTDA. + +The standard version does not use a Git repository so we should not +use Git to identify the commit of the build as it can end getting the +version from a wrong repository and can be misleading. + +Upstream-Status: Pending + +Signed-off-by: Otavio Salvador +[Downloaded from +https://github.com/Freescale/meta-fsl-arm/blob/master/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante/Stop-using-Git-to-write-local-version.patch] +Signed-off-by: Andrew Webster +--- + EXA/src/makefile.tc | 6 +++--- + FslExt/src/makefile.tc | 6 +++--- + util/autohdmi/makefile.tc | 6 +++--- + util/pandisplay/makefile.tc | 6 +++--- + 4 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/EXA/src/makefile.tc b/EXA/src/makefile.tc +index 0b9a9e6..ec6e68d 100644 +--- a/EXA/src/makefile.tc ++++ b/EXA/src/makefile.tc +@@ -52,8 +52,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +diff --git a/FslExt/src/makefile.tc b/FslExt/src/makefile.tc +index 0b9a9e6..ec6e68d 100644 +--- a/FslExt/src/makefile.tc ++++ b/FslExt/src/makefile.tc +@@ -52,8 +52,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +diff --git a/util/autohdmi/makefile.tc b/util/autohdmi/makefile.tc +index c9de0a6..d0a468c 100644 +--- a/util/autohdmi/makefile.tc ++++ b/util/autohdmi/makefile.tc +@@ -64,8 +64,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +diff --git a/util/pandisplay/makefile.tc b/util/pandisplay/makefile.tc +index 28732b9..bf54c20 100644 +--- a/util/pandisplay/makefile.tc ++++ b/util/pandisplay/makefile.tc +@@ -64,8 +64,8 @@ prefix ?= /usr + sysroot ?= / + + # get git commit number +-COMMITNR := `git log -n 1 --format=%H` +-DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` +-LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" ++#COMMITNR := `git log -n 1 --format=%H` ++#DIRTY := `git diff-index --quiet HEAD || echo '-dirty'` ++#LOCAL_CFLAGS += -DCOMMIT="${COMMITNR}${DIRTY}" + + +-- +2.1.4 + diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/Config.in index baf7ca49..fb64d065 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV bool "xf86-video-imx-viv" depends on BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 + depends on BR2_TOOLCHAIN_HAS_SYNC_1 # mesa3d select BR2_PACKAGE_MESA3D # Needed in order to compile xorg with glx/dri select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM @@ -29,3 +30,4 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV comment "xf86-video-imx-viv depends on imx-gpu-viv with X11 output" depends on BR2_arm depends on !BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 + depends on BR2_TOOLCHAIN_HAS_SYNC_1 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.hash index 72608dd5..2cdf2d0b 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.hash @@ -1,2 +1 @@ -# locally computed -sha256 ab6a896cafba324105d26f52b7dad2c41d04d75cc9e48b66e8041a95660a04ee xserver-xorg-video-imx-viv-5.0.11.p7.1.tar.gz +sha256 ddb6de9e00ce0b22f6c905eaf6694424413eade53ef6cd3b36e20ac99dcc0e0f xserver-xorg-video-imx-viv-5.0.11.p8.4.tar.gz diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk index 884b30ec..9ce08ef5 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx-viv/xdriver_xf86-video-imx-viv.mk @@ -4,13 +4,13 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 5.0.11.p7.1 +XDRIVER_XF86_VIDEO_IMX_VIV_VERSION = 5.0.11.p8.4 XDRIVER_XF86_VIDEO_IMX_VIV_SITE = $(FREESCALE_IMX_SITE) XDRIVER_XF86_VIDEO_IMX_VIV_SOURCE = xserver-xorg-video-imx-viv-$(XDRIVER_XF86_VIDEO_IMX_VIV_VERSION).tar.gz XDRIVER_XF86_VIDEO_IMX_VIV_DEPENDENCIES = imx-gpu-viv xserver_xorg-server \ xproto_xproto xproto_xf86driproto libdrm -XDRIVER_XF86_VIDEO_IMX_VIV_LICENSE = GPLv2+ -XDRIVER_XF86_VIDEO_IMX_VIV_LICENSE_FILES = COPYING-GPL-2 +XDRIVER_XF86_VIDEO_IMX_VIV_LICENSE = MIT +XDRIVER_XF86_VIDEO_IMX_VIV_LICENSE_FILES = COPYING-MIT XDRIVER_XF86_VIDEO_IMX_VIV_INSTALL_STAGING = YES XDRIVER_XF86_VIDEO_IMX_VIV_MAKE_CMD = $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)/EXA/src -f makefile.linux diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/Config.in index bb98e5ad..398d49e1 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/Config.in @@ -23,7 +23,7 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX Option "fbdev" "/dev/fb0" EndSection -comment "xf86-video-imx needs an EABI toolchain w/ (e)glibc" +comment "xf86-video-imx needs an EABI toolchain w/ glibc" depends on BR2_arm depends on !BR2_ARM_EABI || !BR2_TOOLCHAIN_USES_GLIBC diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.hash new file mode 100644 index 00000000..e2a36c55 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-imx/xdriver_xf86-video-imx.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 d7d85e9f13c6dd58addab89847f3a8a67f6382a54135c7978c9a95368af024d4 xserver-xorg-video-imx-11.09.01.tar.gz diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk index bf4f7a64..bfe05270 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-intel/xdriver_xf86-video-intel.mk @@ -4,15 +4,17 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_INTEL_VERSION = 82293901da23d79fd074e5255fda5c95405d52de +XDRIVER_XF86_VIDEO_INTEL_VERSION = 6988b873b041130d88dd0aae70c10f86550ee2b3 XDRIVER_XF86_VIDEO_INTEL_SITE = git://anongit.freedesktop.org/xorg/driver/xf86-video-intel XDRIVER_XF86_VIDEO_INTEL_LICENSE = MIT XDRIVER_XF86_VIDEO_INTEL_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_INTEL_AUTORECONF = YES -# this fixes a getline-related compilation error in src/sna/kgem.c +# -D_GNU_SOURCE fixes a getline-related compile error in src/sna/kgem.c +# We force -O2 regardless of the optimization level chosen by the user, +# as compiling this package is known to be broken with -Os. XDRIVER_XF86_VIDEO_INTEL_CONF_ENV = \ - CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" + CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE -O2" XDRIVER_XF86_VIDEO_INTEL_CONF_OPTS = \ --disable-xvmc \ diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/Config.in index 42535e44..82de826a 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/Config.in @@ -1,7 +1,5 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MACH64 bool "xf86-video-mach64" - depends on BR2_PACKAGE_MESA3D - select BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST select BR2_PACKAGE_XPROTO_FONTSPROTO select BR2_PACKAGE_XPROTO_RANDRPROTO select BR2_PACKAGE_XPROTO_RENDERPROTO @@ -9,6 +7,3 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MACH64 select BR2_PACKAGE_XPROTO_XPROTO help mach64 video driver - -comment "xf86-video-mach64 needs mesa3d" - depends on !BR2_PACKAGE_MESA3D diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk index 9b438cbc..59903603 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.mk @@ -12,4 +12,8 @@ XDRIVER_XF86_VIDEO_MACH64_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_MACH64_AUTORECONF = YES XDRIVER_XF86_VIDEO_MACH64_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_xextproto xproto_xproto +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) +XDRIVER_XF86_VIDEO_MACH64_CONF_OPTS = --disable-dri +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk index dcf751cc..771ec18c 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.mk @@ -12,4 +12,8 @@ XDRIVER_XF86_VIDEO_MGA_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_MGA_AUTORECONF = YES XDRIVER_XF86_VIDEO_MGA_DEPENDENCIES = xserver_xorg-server libdrm xproto_fontsproto xproto_glproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xf86driproto xproto_xproto +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) +XDRIVER_XF86_VIDEO_MGA_CONF_OPTS = --disable-dri +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/Config.in index db27eefc..e2bb6c49 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/Config.in @@ -15,5 +15,7 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_OPENCHROME Openchrome, A free and Open Source video driver for the VIA/S3G UniChrome and UniChrome Pro graphics chipsets. + https://www.freedesktop.org/wiki/Openchrome/ + comment "xf86-video-openchrome needs mesa3d" depends on !BR2_PACKAGE_MESA3D diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash index cb6617ff..b3aef580 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2013-May/002220.html -sha1 1f7b23d4ed53417eda5c6730486b36812f469295 xf86-video-openchrome-0.3.3.tar.bz2 +# Locally computed +sha256 73e7966d01d0d644d3b9204e8bfc106cb99069c58e981626e7352f2693e3e927 xf86-video-openchrome-0.4.0.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk index 345beb18..83c12b20 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_OPENCHROME_VERSION = 0.3.3 +XDRIVER_XF86_VIDEO_OPENCHROME_VERSION = 0.4.0 XDRIVER_XF86_VIDEO_OPENCHROME_SOURCE = xf86-video-openchrome-$(XDRIVER_XF86_VIDEO_OPENCHROME_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_OPENCHROME_SITE = http://xorg.freedesktop.org/archive/individual/driver XDRIVER_XF86_VIDEO_OPENCHROME_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/Config.in b/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/Config.in index 647156fb..22ba4931 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/Config.in +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_R128 bool "xf86-video-r128" - depends on BR2_PACKAGE_MESA3D select BR2_PACKAGE_XPROTO_FONTSPROTO select BR2_PACKAGE_XPROTO_RANDRPROTO select BR2_PACKAGE_XPROTO_RENDERPROTO @@ -8,6 +7,3 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_R128 select BR2_PACKAGE_XPROTO_XPROTO help R128 video driver - -comment "xf86-video-r128 needs mesa3d" - depends on !BR2_PACKAGE_MESA3D diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash b/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash index 976521a9..f5c92ab1 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-May/002598.html -sha256 80d531a07168230a408b88809a5440cfd48f9098666d12702d0012148a0d353d xf86-video-r128-6.10.0.tar.bz2 +# From http://lists.x.org/archives/xorg-announce/2016-January/002670.html +sha256 5ebfef49831c9b12f7b7011c8314010596ac2ab0d5b9b7cfd17908e93d7de4ea xf86-video-r128-6.10.1.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk index f9fcfdb2..5833efcf 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.mk @@ -4,7 +4,7 @@ # ################################################################################ -XDRIVER_XF86_VIDEO_R128_VERSION = 6.10.0 +XDRIVER_XF86_VIDEO_R128_VERSION = 6.10.1 XDRIVER_XF86_VIDEO_R128_SOURCE = xf86-video-r128-$(XDRIVER_XF86_VIDEO_R128_VERSION).tar.bz2 XDRIVER_XF86_VIDEO_R128_SITE = http://xorg.freedesktop.org/releases/individual/driver XDRIVER_XF86_VIDEO_R128_LICENSE = MIT @@ -12,4 +12,8 @@ XDRIVER_XF86_VIDEO_R128_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_R128_AUTORECONF = YES XDRIVER_XF86_VIDEO_R128_DEPENDENCIES = xserver_xorg-server xproto_fontsproto xproto_randrproto xproto_renderproto xproto_xextproto xproto_xproto +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) +XDRIVER_XF86_VIDEO_R128_CONF_OPTS = --disable-dri +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk index dc5644a3..95bca7e3 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-savage/xdriver_xf86-video-savage.mk @@ -12,4 +12,8 @@ XDRIVER_XF86_VIDEO_SAVAGE_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_SAVAGE_AUTORECONF = YES XDRIVER_XF86_VIDEO_SAVAGE_DEPENDENCIES = xserver_xorg-server libdrm xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xf86driproto xproto_xproto +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) +XDRIVER_XF86_VIDEO_SAVAGE_CONF_OPTS = --disable-dri +endif + $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk b/bsp/buildroot/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk index 4d0ba60b..942dcf3d 100644 --- a/bsp/buildroot/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk +++ b/bsp/buildroot/package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.mk @@ -10,6 +10,19 @@ XDRIVER_XF86_VIDEO_TDFX_SOURCE = xf86-video-tdfx-$(XDRIVER_XF86_VIDEO_TDFX_VERSI XDRIVER_XF86_VIDEO_TDFX_LICENSE = MIT XDRIVER_XF86_VIDEO_TDFX_LICENSE_FILES = COPYING XDRIVER_XF86_VIDEO_TDFX_AUTORECONF = YES -XDRIVER_XF86_VIDEO_TDFX_DEPENDENCIES = xserver_xorg-server libdrm xproto_fontsproto xproto_randrproto xproto_renderproto xproto_videoproto xproto_xextproto xproto_xf86driproto xproto_xproto +XDRIVER_XF86_VIDEO_TDFX_DEPENDENCIES = \ + libdrm \ + xproto_fontsproto \ + xproto_randrproto \ + xproto_renderproto \ + xproto_videoproto \ + xproto_xextproto \ + xproto_xf86driproto \ + xproto_xproto \ + xserver_xorg-server + +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),) +XDRIVER_XF86_VIDEO_TDFX_CONF_OPTS = --disable-dri +endif $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xfont_encodings/xfont_encodings.mk b/bsp/buildroot/package/x11r7/xfont_encodings/xfont_encodings.mk index 568dbcbd..9c5c9f30 100644 --- a/bsp/buildroot/package/x11r7/xfont_encodings/xfont_encodings.mk +++ b/bsp/buildroot/package/x11r7/xfont_encodings/xfont_encodings.mk @@ -11,6 +11,8 @@ XFONT_ENCODINGS_LICENSE = Public Domain XFONT_ENCODINGS_LICENSE_FILES = COPYING XFONT_ENCODINGS_DEPENDENCIES = host-xapp_mkfontscale host-pkgconf xutil_util-macros +HOST_XFONT_ENCODINGS_DEPENDENCIES = \ + host-xapp_mkfontscale host-pkgconf host-xutil_util-macros $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.hash new file mode 100644 index 00000000..04809f5d --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-adobe-100dpi/xfont_font-adobe-100dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 b2c08433eab5cb202470aa9f779efefce8d9cab2534f34f3aa4a31d05671c054 font-adobe-100dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.hash new file mode 100644 index 00000000..abd48d6b --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-adobe-75dpi/xfont_font-adobe-75dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c6024a1e4a1e65f413f994dd08b734efd393ce0a502eb465deb77b9a36db4d09 font-adobe-75dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.hash new file mode 100644 index 00000000..f20f4a71 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-100dpi/xfont_font-adobe-utopia-100dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 d16f5e3f227cc6dd07a160a71f443559682dbc35f1c056a5385085aaec4fada5 font-adobe-utopia-100dpi-1.0.4.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.hash new file mode 100644 index 00000000..1a60af61 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-75dpi/xfont_font-adobe-utopia-75dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 8732719c61f3661c8bad63804ebfd54fc7de21ab848e9a26a19b1778ef8b5c94 font-adobe-utopia-75dpi-1.0.4.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.hash b/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.hash new file mode 100644 index 00000000..4da2a4ff --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-adobe-utopia-type1/xfont_font-adobe-utopia-type1.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 979435105f897a70f8993fa02c8362160b0513366c2ab896965416f96dbb8077 font-adobe-utopia-type1-1.0.4.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-alias/xfont_font-alias.hash b/bsp/buildroot/package/x11r7/xfont_font-alias/xfont_font-alias.hash new file mode 100644 index 00000000..7f1efe8e --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-alias/xfont_font-alias.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 8b453b2aae1cfa8090009ca037037b8c5e333550651d5a158b7264ce1d472c9a font-alias-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.hash new file mode 100644 index 00000000..03950039 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-arabic-misc/xfont_font-arabic-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 505d9b12a7093389e67a925dfda6346bde26d114c67f0cdca7aeda6e5d3344f4 font-arabic-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.hash new file mode 100644 index 00000000..3a9d4c78 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bh-100dpi/xfont_font-bh-100dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 23c07162708e4b79eb33095c8bfa62c783717a9431254bbf44863734ea239481 font-bh-100dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.hash new file mode 100644 index 00000000..ee24538e --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bh-75dpi/xfont_font-bh-75dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 3486aa51ac92c646a448fe899c5c3dae0024b1fef724d5100d52640d1cac721c font-bh-75dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.hash new file mode 100644 index 00000000..6e9c7e3c --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-100dpi/xfont_font-bh-lucidatypewriter-100dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 62a83363c2536095fda49d260d21e0847675676e4e3415054064cbdffa641fbb font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.hash new file mode 100644 index 00000000..374b8f6f --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bh-lucidatypewriter-75dpi/xfont_font-bh-lucidatypewriter-75dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 4ac16afbe205480cc5572e2977ea63488c543d05be0ea8e5a94c845a6eebcb31 font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.hash b/bsp/buildroot/package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.hash new file mode 100644 index 00000000..89303dbc --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bh-type1/xfont_font-bh-type1.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 761455a297486f3927a85d919b5c948d1d324181d4bea6c95d542504b68a63c1 font-bh-type1-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.hash new file mode 100644 index 00000000..09186ae5 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bitstream-100dpi/xfont_font-bitstream-100dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 ebe0d7444e3d7c8da7642055ac2206f0190ee060700d99cd876f8fc9964cb6ce font-bitstream-100dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.hash b/bsp/buildroot/package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.hash new file mode 100644 index 00000000..7ec88940 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bitstream-75dpi/xfont_font-bitstream-75dpi.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 ba3f5e4610c07bd5859881660753ec6d75d179f26fc967aa776dbb3d5d5cf48e font-bitstream-75dpi-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.hash b/bsp/buildroot/package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.hash new file mode 100644 index 00000000..7e958b34 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-bitstream-type1/xfont_font-bitstream-type1.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 c6ea0569adad2c577f140328dc3302e729cb1b1ea90cd0025caf380625f8a688 font-bitstream-type1-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.hash b/bsp/buildroot/package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.hash new file mode 100644 index 00000000..7fc295fd --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-cronyx-cyrillic/xfont_font-cronyx-cyrillic.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 6e8631936157677c77ba032b5c7b1fb3cb2ee872dbcea0444f12cd602cd9212a font-cronyx-cyrillic-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.hash new file mode 100644 index 00000000..90a032b7 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-cursor-misc/xfont_font-cursor-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 17363eb35eece2e08144da5f060c70103b59d0972b4f4d77fd84c9a7a2dba635 font-cursor-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.hash new file mode 100644 index 00000000..1b4ebe9d --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-daewoo-misc/xfont_font-daewoo-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 bc65de70bee12698caa95b523d3b652c056347e17b68cc8b5d6bbdff235c4be8 font-daewoo-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.hash new file mode 100644 index 00000000..50c6136b --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-dec-misc/xfont_font-dec-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e19ddf8b5f8de914d81675358fdfe37762e9ce524887cc983adef34f2850ff7b font-dec-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.hash b/bsp/buildroot/package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.hash new file mode 100644 index 00000000..11aa8908 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-ibm-type1/xfont_font-ibm-type1.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 fddb28d3db5a07f4b4ca15388488a9680a10e1367a18f358f903b2a608a5d2df font-ibm-type1-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.hash new file mode 100644 index 00000000..35324d43 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-isas-misc/xfont_font-isas-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 5824ab4b485951107dd245b8f7717d2822f1a6dbf6cea98f1ac7f49905c0a867 font-isas-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.hash new file mode 100644 index 00000000..c39db360 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-jis-misc/xfont_font-jis-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 2b18ce10b367ebafe95a17de799b6db9a24e2337188d124adaf68af05b1fac65 font-jis-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.hash new file mode 100644 index 00000000..223ca0f8 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-micro-misc/xfont_font-micro-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 9a3381c10f32d9511f0ad4179df395914c50779103c16cddf7017f5220ed8db6 font-micro-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.hash b/bsp/buildroot/package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.hash new file mode 100644 index 00000000..16271122 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-misc-cyrillic/xfont_font-misc-cyrillic.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e40fe3e3323c62b738550795457ad555c70c008aa91b5912dfd46f8e745f5e60 font-misc-cyrillic-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.hash b/bsp/buildroot/package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.hash new file mode 100644 index 00000000..c75816a8 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-misc-ethiopic/xfont_font-misc-ethiopic.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 53cb1fd83afdbe7939c0eac34003676ee0e6023216892d98054db90b703c98a5 font-misc-ethiopic-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.hash b/bsp/buildroot/package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.hash new file mode 100644 index 00000000..7a7ca92e --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-misc-meltho/xfont_font-misc-meltho.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 3721323f13855cf7ca609115a1f7b182491e9b2b9c6e01eb1a2c7f8edd480791 font-misc-meltho-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.hash new file mode 100644 index 00000000..fc4ae587 --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-misc-misc/xfont_font-misc-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 b8e77940e4e1769dc47ef1805918d8c9be37c708735832a07204258bacc11794 font-misc-misc-1.1.2.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.hash new file mode 100644 index 00000000..45a6fc1b --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-mutt-misc/xfont_font-mutt-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 bd5f7adb34367c197773a9801df5bce7b019664941900b2a31fbfe1ff2830f8f font-mutt-misc-1.0.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.hash b/bsp/buildroot/package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.hash new file mode 100644 index 00000000..6da0963d --- /dev/null +++ b/bsp/buildroot/package/x11r7/xfont_font-schumacher-misc/xfont_font-schumacher-misc.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 e444028656e0767e2eddc6d9aca462b16a2be75a47244dbc199b2c44eca87e5a font-schumacher-misc-1.1.2.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xfont_font-util/xfont_font-util.mk b/bsp/buildroot/package/x11r7/xfont_font-util/xfont_font-util.mk index 1c43d6a7..36853770 100644 --- a/bsp/buildroot/package/x11r7/xfont_font-util/xfont_font-util.mk +++ b/bsp/buildroot/package/x11r7/xfont_font-util/xfont_font-util.mk @@ -11,6 +11,7 @@ XFONT_FONT_UTIL_LICENSE = MIT/BSD-2c XFONT_FONT_UTIL_LICENSE_FILES = COPYING XFONT_FONT_UTIL_DEPENDENCIES = host-pkgconf +HOST_XFONT_FONT_UTIL_DEPENDENCIES = host-pkgconf XFONT_FONT_UTIL_INSTALL_STAGING = YES XFONT_FONT_UTIL_INSTALL_TARGET = NO diff --git a/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.hash b/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.hash index fad76ed5..7c2b64d1 100644 --- a/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.hash +++ b/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2016-January/002671.html -sha256 dec6be44bd31775cdc1ab95bfd75d5f2c0055613eeca8b4e9c6480b183430701 xkeyboard-config-2.17.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-June/002698.html +sha256 c41d917d6c8a59feb7ccbda51c40a6ada824fdd1e9684b52dd48c9530617ddd0 xkeyboard-config-2.18.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.mk b/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.mk index 352c55d9..e96d1d73 100644 --- a/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.mk +++ b/bsp/buildroot/package/x11r7/xkeyboard-config/xkeyboard-config.mk @@ -4,7 +4,7 @@ # ################################################################################ -XKEYBOARD_CONFIG_VERSION = 2.17 +XKEYBOARD_CONFIG_VERSION = 2.18 XKEYBOARD_CONFIG_SOURCE = xkeyboard-config-$(XKEYBOARD_CONFIG_VERSION).tar.bz2 XKEYBOARD_CONFIG_SITE = http://www.x.org/releases/individual/data/xkeyboard-config XKEYBOARD_CONFIG_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xlib_libX11/xlib_libX11.mk b/bsp/buildroot/package/x11r7/xlib_libX11/xlib_libX11.mk index fc19aa1d..25959241 100644 --- a/bsp/buildroot/package/x11r7/xlib_libX11/xlib_libX11.mk +++ b/bsp/buildroot/package/x11r7/xlib_libX11/xlib_libX11.mk @@ -23,6 +23,18 @@ XLIB_LIBX11_DEPENDENCIES = \ xproto_xf86bigfontproto \ host-xproto_xproto +HOST_XLIB_LIBX11_DEPENDENCIES = \ + host-libxcb \ + host-xutil_util-macros \ + host-xlib_xtrans \ + host-xlib_libXau \ + host-xlib_libXdmcp \ + host-xproto_kbproto \ + host-xproto_xproto \ + host-xproto_xextproto \ + host-xproto_inputproto \ + host-xproto_xf86bigfontproto + XLIB_LIBX11_CONF_OPTS = \ --disable-malloc0returnsnull \ --with-xcb \ diff --git a/bsp/buildroot/package/x11r7/xlib_libXau/xlib_libXau.mk b/bsp/buildroot/package/x11r7/xlib_libXau/xlib_libXau.mk index 8ef48e4a..1c50cb2e 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXau/xlib_libXau.mk +++ b/bsp/buildroot/package/x11r7/xlib_libXau/xlib_libXau.mk @@ -11,6 +11,8 @@ XLIB_LIBXAU_LICENSE = MIT XLIB_LIBXAU_LICENSE_FILES = COPYING XLIB_LIBXAU_INSTALL_STAGING = YES XLIB_LIBXAU_DEPENDENCIES = host-pkgconf xutil_util-macros xproto_xproto +HOST_XLIB_LIBXAU_DEPENDENCIES = \ + host-pkgconf host-xutil_util-macros host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xlib_libXcursor/xlib_libXcursor.mk b/bsp/buildroot/package/x11r7/xlib_libXcursor/xlib_libXcursor.mk index 508b5e21..c59c01a5 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXcursor/xlib_libXcursor.mk +++ b/bsp/buildroot/package/x11r7/xlib_libXcursor/xlib_libXcursor.mk @@ -11,6 +11,9 @@ XLIB_LIBXCURSOR_LICENSE = MIT XLIB_LIBXCURSOR_LICENSE_FILES = COPYING XLIB_LIBXCURSOR_INSTALL_STAGING = YES XLIB_LIBXCURSOR_DEPENDENCIES = xlib_libX11 xlib_libXfixes xlib_libXrender xproto_xproto +HOST_XLIB_LIBXCURSOR_DEPENDENCIES = \ + host-xlib_libX11 host-xlib_libXfixes host-xlib_libXrender \ + host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk b/bsp/buildroot/package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk index 119c0181..ec1b861b 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk +++ b/bsp/buildroot/package/x11r7/xlib_libXdmcp/xlib_libXdmcp.mk @@ -11,6 +11,7 @@ XLIB_LIBXDMCP_LICENSE = MIT XLIB_LIBXDMCP_LICENSE_FILES = COPYING XLIB_LIBXDMCP_INSTALL_STAGING = YES XLIB_LIBXDMCP_DEPENDENCIES = xutil_util-macros xproto_xproto +HOST_XLIB_LIBXDMCP_DEPENDENCIES = host-xutil_util-macros host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.hash b/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.hash index 291c4bdd..00164cdd 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.hash +++ b/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.hash @@ -1,2 +1,2 @@ # From http://lists.x.org/archives/xorg-announce/2013-May/002227.html -sha256 63bec085084fa3caaee5180490dd871f1eb2020ba9e9b39a30f93693ffc34767 libXfixes-5.0.1.tar.bz2 +sha256 9bd20edfec084a1bed481d48dd4815dee88139fffad091418cdda081129a9aea libXfixes-5.0.2.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.mk b/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.mk index b94cd0ff..82799a38 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.mk +++ b/bsp/buildroot/package/x11r7/xlib_libXfixes/xlib_libXfixes.mk @@ -4,13 +4,16 @@ # ################################################################################ -XLIB_LIBXFIXES_VERSION = 5.0.1 +XLIB_LIBXFIXES_VERSION = 5.0.2 XLIB_LIBXFIXES_SOURCE = libXfixes-$(XLIB_LIBXFIXES_VERSION).tar.bz2 XLIB_LIBXFIXES_SITE = http://xorg.freedesktop.org/releases/individual/lib XLIB_LIBXFIXES_LICENSE = MIT XLIB_LIBXFIXES_LICENSE_FILES = COPYING XLIB_LIBXFIXES_INSTALL_STAGING = YES XLIB_LIBXFIXES_DEPENDENCIES = xproto_fixesproto xlib_libX11 xproto_xextproto xproto_xproto +HOST_XLIB_LIBXFIXES_DEPENDENCIES = \ + host-xproto_fixesproto host-xlib_libX11 host-xproto_xextproto \ + host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xlib_libXfont/xlib_libXfont.mk b/bsp/buildroot/package/x11r7/xlib_libXfont/xlib_libXfont.mk index adc22b4d..d7acab44 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXfont/xlib_libXfont.mk +++ b/bsp/buildroot/package/x11r7/xlib_libXfont/xlib_libXfont.mk @@ -11,9 +11,14 @@ XLIB_LIBXFONT_LICENSE = MIT XLIB_LIBXFONT_LICENSE_FILES = COPYING XLIB_LIBXFONT_AUTORECONF = YES XLIB_LIBXFONT_INSTALL_STAGING = YES -XLIB_LIBXFONT_DEPENDENCIES = freetype xlib_libfontenc xlib_xtrans xproto_fontsproto xproto_xproto xfont_encodings -XLIB_LIBXFONT_CONF_OPTS = --disable-devel-docs +XLIB_LIBXFONT_DEPENDENCIES = freetype xlib_libfontenc xlib_xtrans xproto_fontsproto xproto_xproto xfont_encodings + +HOST_XLIB_LIBXFONT_DEPENDENCIES = \ + host-freetype host-xlib_libfontenc host-xlib_xtrans \ + host-xproto_fontsproto host-xproto_xproto host-xfont_encodings + +XLIB_LIBXFONT_CONF_OPTS = --disable-devel-docs HOST_XLIB_LIBXFONT_CONF_OPTS = --disable-devel-docs ifeq ($(BR2_microblaze),y) diff --git a/bsp/buildroot/package/x11r7/xlib_libXrender/xlib_libXrender.mk b/bsp/buildroot/package/x11r7/xlib_libXrender/xlib_libXrender.mk index 949dea3f..72626cf9 100644 --- a/bsp/buildroot/package/x11r7/xlib_libXrender/xlib_libXrender.mk +++ b/bsp/buildroot/package/x11r7/xlib_libXrender/xlib_libXrender.mk @@ -11,6 +11,9 @@ XLIB_LIBXRENDER_LICENSE = MIT XLIB_LIBXRENDER_LICENSE_FILES = COPYING XLIB_LIBXRENDER_INSTALL_STAGING = YES XLIB_LIBXRENDER_DEPENDENCIES = xlib_libX11 xproto_renderproto xproto_xproto +HOST_XLIB_LIBXRENDER_DEPENDENCIES = \ + host-xlib_libX11 host-xproto_renderproto host-xproto_xproto + XLIB_LIBXRENDER_CONF_OPTS = --disable-malloc0returnsnull $(eval $(autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk b/bsp/buildroot/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk index aff1f1a5..e2c4c6e8 100644 --- a/bsp/buildroot/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk +++ b/bsp/buildroot/package/x11r7/xlib_libfontenc/xlib_libfontenc.mk @@ -11,6 +11,7 @@ XLIB_LIBFONTENC_LICENSE = MIT XLIB_LIBFONTENC_LICENSE_FILES = COPYING XLIB_LIBFONTENC_INSTALL_STAGING = YES XLIB_LIBFONTENC_DEPENDENCIES = zlib xproto_xproto +HOST_XLIB_LIBFONTENC_DEPENDENCIES = host-zlib host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk b/bsp/buildroot/package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk index 51c58c04..c69d7311 100644 --- a/bsp/buildroot/package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk +++ b/bsp/buildroot/package/x11r7/xlib_libxkbfile/xlib_libxkbfile.mk @@ -11,6 +11,7 @@ XLIB_LIBXKBFILE_LICENSE = MIT XLIB_LIBXKBFILE_LICENSE_FILES = COPYING XLIB_LIBXKBFILE_INSTALL_STAGING = YES XLIB_LIBXKBFILE_DEPENDENCIES = xlib_libX11 xproto_kbproto +HOST_XLIB_LIBXKBFILE_DEPENDENCIES = host-xlib_libX11 host-xproto_kbproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.hash b/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.hash index 426e66f1..4ecdddc5 100644 --- a/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.hash +++ b/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.hash @@ -1,2 +1,2 @@ -# From http://article.gmane.org/gmane.comp.freedesktop.xorg.announce/2167 -sha256 5a47ee62053a6acef3a83f506312494be1461068d0b9269d818839703b95c1d1 inputproto-2.3.1.tar.bz2 +# From https://lists.freedesktop.org/archives/xorg-announce/2016-April/002682.html +sha256 893a6af55733262058a27b38eeb1edc733669f01d404e8581b167f03c03ef31d inputproto-2.3.2.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.mk b/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.mk index a3a60659..20169b5c 100644 --- a/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.mk +++ b/bsp/buildroot/package/x11r7/xproto_inputproto/xproto_inputproto.mk @@ -4,7 +4,7 @@ # ################################################################################ -XPROTO_INPUTPROTO_VERSION = 2.3.1 +XPROTO_INPUTPROTO_VERSION = 2.3.2 XPROTO_INPUTPROTO_SOURCE = inputproto-$(XPROTO_INPUTPROTO_VERSION).tar.bz2 XPROTO_INPUTPROTO_SITE = http://xorg.freedesktop.org/releases/individual/proto XPROTO_INPUTPROTO_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.hash b/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.hash index 41c98cdb..471a0a39 100644 --- a/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.hash +++ b/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.hash @@ -1,2 +1,2 @@ -# From http://article.gmane.org/gmane.comp.freedesktop.xorg.announce/2005 -sha256 8dae168cb820fcd32f564879afb3f24d27c176300d9af66819a18265539bd4b6 videoproto-2.3.2.tar.bz2 +# From https://lists.freedesktop.org/archives/xorg-announce/2016-March/002680.html +sha256 c7803889fd08e6fcaf7b68cc394fb038b2325d1f315e571a6954577e07cca702 videoproto-2.3.3.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.mk b/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.mk index 9226c73c..896398fc 100644 --- a/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.mk +++ b/bsp/buildroot/package/x11r7/xproto_videoproto/xproto_videoproto.mk @@ -4,7 +4,7 @@ # ################################################################################ -XPROTO_VIDEOPROTO_VERSION = 2.3.2 +XPROTO_VIDEOPROTO_VERSION = 2.3.3 XPROTO_VIDEOPROTO_SOURCE = videoproto-$(XPROTO_VIDEOPROTO_VERSION).tar.bz2 XPROTO_VIDEOPROTO_SITE = http://xorg.freedesktop.org/releases/individual/proto XPROTO_VIDEOPROTO_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.hash b/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.hash index 333ac6d4..8441baee 100644 --- a/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.hash +++ b/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.hash @@ -1,2 +1,2 @@ -# From http://lists.x.org/archives/xorg-announce/2015-July/002618.html -sha256 29e85568d1f68ceef8a2c081dad9bc0e5500a53cfffde24b564dc43d46ddf6ca xproto-7.0.28.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-May/002692.html +sha256 6c1a477092ca73233902b8d5f33012635c4b0208f17e7833cc7efe5c93ba9f8a xproto-7.0.29.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.mk b/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.mk index 7357b8c7..e76adf81 100644 --- a/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.mk +++ b/bsp/buildroot/package/x11r7/xproto_xproto/xproto_xproto.mk @@ -4,7 +4,7 @@ # ################################################################################ -XPROTO_XPROTO_VERSION = 7.0.28 +XPROTO_XPROTO_VERSION = 7.0.29 XPROTO_XPROTO_SOURCE = xproto-$(XPROTO_XPROTO_VERSION).tar.bz2 XPROTO_XPROTO_SITE = http://xorg.freedesktop.org/releases/individual/proto XPROTO_XPROTO_LICENSE = MIT diff --git a/bsp/buildroot/package/x11r7/xserver_xorg-server/0001-modesettings-needs-dri2.patch b/bsp/buildroot/package/x11r7/xserver_xorg-server/1.17.4/0001-modesettings-needs-dri2.patch similarity index 100% rename from bsp/buildroot/package/x11r7/xserver_xorg-server/0001-modesettings-needs-dri2.patch rename to bsp/buildroot/package/x11r7/xserver_xorg-server/1.17.4/0001-modesettings-needs-dri2.patch diff --git a/bsp/buildroot/package/x11r7/xserver_xorg-server/1.18.4/0001-modesettings-needs-dri2.patch b/bsp/buildroot/package/x11r7/xserver_xorg-server/1.18.4/0001-modesettings-needs-dri2.patch new file mode 100644 index 00000000..4ef95efc --- /dev/null +++ b/bsp/buildroot/package/x11r7/xserver_xorg-server/1.18.4/0001-modesettings-needs-dri2.patch @@ -0,0 +1,19 @@ +Kernel modesettings support also depends on dri2, see +http://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/drivers/modesetting/Makefile.am#n46 + +Patch sent upstream: https://bugs.freedesktop.org/show_bug.cgi?id=91584 + +Signed-off-by: Bernd Kuhls + +diff -uNr xorg-server-1.17.2.org/configure.ac xorg-server-1.17.2/configure.ac +--- xorg-server-1.17.2.org/configure.ac 2015-06-16 17:42:40.000000000 +0200 ++++ xorg-server-1.17.2/configure.ac 2015-08-08 10:44:59.702382624 +0200 +@@ -2036,7 +2036,7 @@ + XORG_SYS_LIBS="$XORG_SYS_LIBS $XORG_MODULES_LIBS" + fi + +- if test "x$DRM" = xyes; then ++ if test "x$DRM" = xyes -a "x$DRI2" = xyes; then + dnl 2.4.46 is required for cursor hotspot support. + PKG_CHECK_EXISTS(libdrm >= 2.4.46) + XORG_DRIVER_MODESETTING=yes diff --git a/bsp/buildroot/package/x11r7/xserver_xorg-server/Config.in b/bsp/buildroot/package/x11r7/xserver_xorg-server/Config.in index ac1369e0..df3801c5 100644 --- a/bsp/buildroot/package/x11r7/xserver_xorg-server/Config.in +++ b/bsp/buildroot/package/x11r7/xserver_xorg-server/Config.in @@ -58,22 +58,31 @@ if BR2_PACKAGE_XSERVER_XORG_SERVER config BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_14 bool +config BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_19 + bool + config BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_20 bool config BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI int default 14 if BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_14 + default 19 if BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_19 default 20 if BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_20 choice bool "X Window System server version" config BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_18 - bool "1.18.0" + bool "1.18.4" select BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_20 select BR2_PACKAGE_XPROTO_PRESENTPROTO +config BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_17 + bool "1.17.4" + select BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_19 + select BR2_PACKAGE_XPROTO_PRESENTPROTO + config BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_14 bool "1.14.7" select BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_14 @@ -82,7 +91,8 @@ endchoice config BR2_PACKAGE_XSERVER_XORG_SERVER_VERSION string - default "1.18.0" if BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_18 + default "1.18.4" if BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_18 + default "1.17.4" if BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_17 default "1.14.7" if BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_14 choice diff --git a/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash b/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash index 72c00c40..ab7ba7eb 100644 --- a/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash +++ b/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.hash @@ -1,6 +1,7 @@ # From http://lists.x.org/archives/xorg-announce/2014-June/002440.html sha1 7a95765e56b124758fcd7b609589e65b8870880b xorg-server-1.14.7.tar.bz2 sha256 fcf66fa6ad86227613d2d3e8ae13ded297e2a1e947e9060a083eaf80d323451f xorg-server-1.14.7.tar.bz2 -# From http://lists.x.org/archives/xorg-announce/2015-November/002655.html -sha1 f37f9ca17d211552c775c3ce78ff03385026bf3a xorg-server-1.18.0.tar.bz2 -sha256 195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e xorg-server-1.18.0.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2015-October/002650.html +sha256 0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457 xorg-server-1.17.4.tar.bz2 +# From https://lists.x.org/archives/xorg-announce/2016-July/002699.html +sha256 278459b2c31d61a15655d95a72fb79930c480a6bb8cf9226e48a07df8b1d31c8 xorg-server-1.18.4.tar.bz2 diff --git a/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk index 3f6cda72..85d7e98e 100644 --- a/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +++ b/bsp/buildroot/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk @@ -56,13 +56,16 @@ XSERVER_XORG_SERVER_DEPENDENCIES = \ mcookie \ host-pkgconf +# We force -O2 regardless of the optimization level chosen by the +# user, as the X.org server is known to trigger some compiler bugs at +# -Os on several architectures. XSERVER_XORG_SERVER_CONF_OPTS = \ --disable-config-hal \ --disable-xnest \ --disable-xephyr \ --disable-dmx \ --with-builder-addr=buildroot@buildroot.org \ - CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1" \ + CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/pixman-1 -O2" \ --with-fontrootdir=/usr/share/fonts/X11/ \ --$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB),en,dis)able-xvfb @@ -77,6 +80,14 @@ XSERVER_XORG_SERVER_CONF_OPTS += \ --disable-systemd-logind endif +# Xwayland support needs libdrm, libepoxy, wayland and libxcomposite +ifeq ($(BR2_PACKAGE_LIBDRM)$(BR2_PACKAGE_LIBEPOXY)$(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),yyyy) +XSERVER_XORG_SERVER_CONF_OPTS += --enable-xwayland +XSERVER_XORG_SERVER_DEPENDENCIES += libdrm libepoxy wayland xlib_libXcomposite +else +XSERVER_XORG_SERVER_CONF_OPTS += --disable-xwayland +endif + # Present protocol only required for xserver 1.15+, but does not matter if # enabled for older versions as they don't use it (not even optionally). ifeq ($(BR2_PACKAGE_XPROTO_PRESENTPROTO),y) @@ -130,8 +141,7 @@ else # modular XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive --disable-xfbdev endif -# libdrm locking macros use armv6+ instructions on arm -ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER)n$(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV5),yn) +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto else diff --git a/bsp/buildroot/package/x11r7/xutil_makedepend/xutil_makedepend.mk b/bsp/buildroot/package/x11r7/xutil_makedepend/xutil_makedepend.mk index 81e348ed..6fd3c1ae 100644 --- a/bsp/buildroot/package/x11r7/xutil_makedepend/xutil_makedepend.mk +++ b/bsp/buildroot/package/x11r7/xutil_makedepend/xutil_makedepend.mk @@ -11,6 +11,7 @@ XUTIL_MAKEDEPEND_LICENSE = MIT XUTIL_MAKEDEPEND_LICENSE_FILES = COPYING XUTIL_MAKEDEPEND_DEPENDENCIES = xproto_xproto +HOST_XUTIL_MAKEDEPEND_DEPENDENCIES = host-xproto_xproto $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/x264/Config.in b/bsp/buildroot/package/x264/Config.in index be3ab3f3..7bf2319f 100644 --- a/bsp/buildroot/package/x264/Config.in +++ b/bsp/buildroot/package/x264/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_X264 bool "x264" + depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # madvise() help x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC diff --git a/bsp/buildroot/package/x264/x264.mk b/bsp/buildroot/package/x264/x264.mk index 7e7e5979..6055a8a6 100644 --- a/bsp/buildroot/package/x264/x264.mk +++ b/bsp/buildroot/package/x264/x264.mk @@ -4,7 +4,7 @@ # ################################################################################ -X264_VERSION = e86f3a1993234e8f26050c243aa253651200fa6b +X264_VERSION = 3b70645597bea052d2398005bc723212aeea6875 X264_SITE = git://git.videolan.org/x264.git X264_LICENSE = GPLv2+ X264_DEPENDENCIES = host-pkgconf diff --git a/bsp/buildroot/package/x265/Config.in b/bsp/buildroot/package/x265/Config.in index f268e658..1d6eda20 100644 --- a/bsp/buildroot/package/x265/Config.in +++ b/bsp/buildroot/package/x265/Config.in @@ -3,6 +3,7 @@ config BR2_PACKAGE_X265 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS depends on !BR2_STATIC_LIBS # dlfcn + depends on BR2_TOOLCHAIN_HAS_SYNC_4 help x265 is an open source free software and library for encoding video using the High Efficiency Video Coding (HEVC/H.265) standard. x265 is @@ -24,3 +25,4 @@ endif comment "x265 needs a toolchain w/ C++, threads, dynamic library" depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ !BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_HAS_SYNC_4 diff --git a/bsp/buildroot/package/x265/x265.hash b/bsp/buildroot/package/x265/x265.hash index 714ec2a3..92b5beaa 100644 --- a/bsp/buildroot/package/x265/x265.hash +++ b/bsp/buildroot/package/x265/x265.hash @@ -1,2 +1,2 @@ # Locally generated -sha256 760e6280c688f1ea90c492d19fc6d4084ca1c4b0ea9b2e3c736d32565c30d857 x265_1.8.tar.gz +sha256 3e4654133ed957a98708fdb4cb9a154d9e80922b84e26e43fc462a101c5b15c8 x265_1.9.tar.gz diff --git a/bsp/buildroot/package/x265/x265.mk b/bsp/buildroot/package/x265/x265.mk index 45c86f11..e737c313 100644 --- a/bsp/buildroot/package/x265/x265.mk +++ b/bsp/buildroot/package/x265/x265.mk @@ -4,7 +4,7 @@ # ################################################################################ -X265_VERSION = 1.8 +X265_VERSION = 1.9 X265_SOURCE = x265_$(X265_VERSION).tar.gz X265_SITE = https://bitbucket.org/multicoreware/x265/downloads X265_LICENSE = GPLv2+ diff --git a/bsp/buildroot/package/xen/Config.in b/bsp/buildroot/package/xen/Config.in new file mode 100644 index 00000000..7254a076 --- /dev/null +++ b/bsp/buildroot/package/xen/Config.in @@ -0,0 +1,44 @@ +config BR2_PACKAGE_XEN + bool "xen" + # needs "dmb" on ARM, so ARM >= v7 + depends on BR2_ARM_CPU_ARMV7A || BR2_aarch64 + select BR2_PACKAGE_XEN_HYPERVISOR if !BR2_PACKAGE_XEN_TOOLS + help + This package builds the Xen hypervisor and toolstack. + + http://www.xenproject.org/ + +if BR2_PACKAGE_XEN + +config BR2_PACKAGE_XEN_HYPERVISOR + bool "Xen hypervisor" + help + The Xen binaries are avaliable in /usr/lib/xen/ + See http://wiki.xenproject.org/wiki/Getting_Started for using the + Xen hypervisor. + +config BR2_PACKAGE_XEN_TOOLS + bool "Xen tools" + depends on !BR2_STATIC_LIBS # dtc (libfdt) + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 + depends on BR2_USE_WCHAR # libglib2, util-linux + select BR2_PACKAGE_DTC + select BR2_PACKAGE_LIBAIO + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_NCURSES + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PIXMAN + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + select BR2_PACKAGE_YAJL + select BR2_PACKAGE_ARGP_STANDALONE if !BR2_TOOLCHAIN_USES_GLIBC + help + The Xen tools can be accessed by the xl command. + +comment "xen tools need a toolchain w/ wchar, threads, dynamic library" + depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ + BR2_STATIC_LIBS + +endif diff --git a/bsp/buildroot/package/xen/xen.hash b/bsp/buildroot/package/xen/xen.hash new file mode 100644 index 00000000..c124b3a5 --- /dev/null +++ b/bsp/buildroot/package/xen/xen.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 6fa1c2431df55aa5950d248e6093b8c8c0f11c357a0adbd348a2186478e80909 xen-4.6.0.tar.gz diff --git a/bsp/buildroot/package/xen/xen.mk b/bsp/buildroot/package/xen/xen.mk new file mode 100644 index 00000000..e2abf253 --- /dev/null +++ b/bsp/buildroot/package/xen/xen.mk @@ -0,0 +1,56 @@ +################################################################################ +# +# Xen +# +################################################################################ + +XEN_VERSION = 4.6.0 +XEN_SITE = http://bits.xensource.com/oss-xen/release/$(XEN_VERSION) +XEN_LICENSE = GPLv2 +XEN_LICENSE_FILES = COPYING +XEN_DEPENDENCIES = host-python + +# Calculate XEN_ARCH +ifeq ($(ARCH),aarch64) +XEN_ARCH = arm64 +else ifeq ($(ARCH),arm) +XEN_ARCH = arm32 +endif + +XEN_CONF_OPTS = --disable-ocamltools + +XEN_CONF_ENV = PYTHON=$(HOST_DIR)/usr/bin/python2 +XEN_MAKE_ENV = \ + XEN_TARGET_ARCH=$(XEN_ARCH) \ + CROSS_COMPILE=$(TARGET_CROSS) \ + $(TARGET_CONFIGURE_OPTS) + +ifeq ($(BR2_PACKAGE_XEN_HYPERVISOR),y) +XEN_MAKE_OPTS += dist-xen +XEN_INSTALL_IMAGES = YES +define XEN_INSTALL_IMAGES_CMDS + cp $(@D)/xen/xen $(BINARIES_DIR) +endef +else +XEN_CONF_OPTS += --disable-xen +endif + +ifeq ($(BR2_PACKAGE_XEN_TOOLS),y) +XEN_DEPENDENCIES += dtc libaio libglib2 ncurses openssl pixman util-linux yajl +ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) +XEN_DEPENDENCIES += argp-standalone +endif +XEN_INSTALL_TARGET_OPTS += DESTDIR=$(TARGET_DIR) install-tools +XEN_MAKE_OPTS += dist-tools + +define XEN_INSTALL_INIT_SYSV + mv $(TARGET_DIR)/etc/init.d/xencommons $(TARGET_DIR)/etc/init.d/S50xencommons + mv $(TARGET_DIR)/etc/init.d/xen-watchdog $(TARGET_DIR)/etc/init.d/S50xen-watchdog + mv $(TARGET_DIR)/etc/init.d/xendomains $(TARGET_DIR)/etc/init.d/S60xendomains +endef +else +XEN_INSTALL_TARGET = NO +XEN_CONF_OPTS += --disable-tools +endif + +$(eval $(autotools-package)) diff --git a/bsp/buildroot/package/xenomai/Config.in b/bsp/buildroot/package/xenomai/Config.in index d4c8a89d..32c5124e 100644 --- a/bsp/buildroot/package/xenomai/Config.in +++ b/bsp/buildroot/package/xenomai/Config.in @@ -1,13 +1,19 @@ -comment "xenomai needs a toolchain w/ threads" - depends on !BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_i386 || BR2_x86_64 || BR2_arm || \ - BR2_bfin || BR2_powerpc || BR2_sh4 +config BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS + bool + default y + depends on BR2_i386 || BR2_x86_64 || (BR2_arm && !BR2_ARM_CPU_ARMV7M) || \ + BR2_bfin || BR2_powerpc || BR2_sh4 + +comment "xenomai needs an glibc or uClibc toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL + depends on BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS config BR2_PACKAGE_XENOMAI bool "Xenomai Userspace" + depends on BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_i386 || BR2_x86_64 || BR2_arm || \ - BR2_bfin || BR2_powerpc || BR2_sh4 + # uses , __WORDSIZE and bits/local_lim.h + depends on !BR2_TOOLCHAIN_USES_MUSL help Real-Time Framework for Linux http://www.xenomai.org diff --git a/bsp/buildroot/package/xenomai/xenomai.mk b/bsp/buildroot/package/xenomai/xenomai.mk index aa3b007d..11ebf72c 100644 --- a/bsp/buildroot/package/xenomai/xenomai.mk +++ b/bsp/buildroot/package/xenomai/xenomai.mk @@ -11,7 +11,7 @@ else BR_NO_CHECK_HASH_FOR += $(XENOMAI_SOURCE) endif -XENOMAI_SITE = http://download.gna.org/xenomai/stable +XENOMAI_SITE = https://xenomai.org/downloads/xenomai/stable XENOMAI_SOURCE = xenomai-$(XENOMAI_VERSION).tar.bz2 XENOMAI_LICENSE = headers: GPLv2+ with exception, libraries: LGPLv2.1+, kernel: GPLv2+, docs: GFDLv1.2+, ipipe patch and can driver: GPLv2 # GFDL is not included but refers to gnu.org diff --git a/bsp/buildroot/package/xerces/xerces.hash b/bsp/buildroot/package/xerces/xerces.hash index 639e6685..c621f5cd 100644 --- a/bsp/buildroot/package/xerces/xerces.hash +++ b/bsp/buildroot/package/xerces/xerces.hash @@ -1,2 +1,2 @@ -# From http://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.3.tar.xz.sha256 -sha256 d35ae442db333f73c7ef41b2ce2e33bc8aba8dbacf582af765eda26415d25c94 xerces-c-3.1.3.tar.xz +# From http://www.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.tar.xz.sha256 +sha256 9973cc79481803f8b6652c52faf5195d963f50d209d4f681ec97e2aa014b6241 xerces-c-3.1.4.tar.xz diff --git a/bsp/buildroot/package/xerces/xerces.mk b/bsp/buildroot/package/xerces/xerces.mk index b69f47c0..a25641fb 100644 --- a/bsp/buildroot/package/xerces/xerces.mk +++ b/bsp/buildroot/package/xerces/xerces.mk @@ -4,12 +4,11 @@ # ################################################################################ -XERCES_VERSION = 3.1.3 +XERCES_VERSION = 3.1.4 XERCES_SOURCE = xerces-c-$(XERCES_VERSION).tar.xz XERCES_SITE = http://archive.apache.org/dist/xerces/c/3/sources XERCES_LICENSE = Apache-2.0 XERCES_LICENSE_FILES = LICENSE -XERCES_MAKE = $(MAKE1) XERCES_INSTALL_STAGING = YES XERCES_CONF_OPTS = \ --disable-threads \ diff --git a/bsp/buildroot/package/xfsprogs/xfsprogs.hash b/bsp/buildroot/package/xfsprogs/xfsprogs.hash index d0ff1f31..1f338b05 100644 --- a/bsp/buildroot/package/xfsprogs/xfsprogs.hash +++ b/bsp/buildroot/package/xfsprogs/xfsprogs.hash @@ -1,3 +1,3 @@ # Locally calculated after checking pgp signature: -# ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-4.3.0.tar.gz.sig -sha256 3e570ad51153e4be3792f42b2c805ddbd46b55d166eba3102ec87d5006d4cb5c xfsprogs-4.3.0.tar.gz +# ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-4.7.0.tar.gz.sig +sha256 88580bb3e6847c3edef436703a4fae403fc19b20739db4c31166ee4b256178d7 xfsprogs-4.7.0.tar.gz diff --git a/bsp/buildroot/package/xfsprogs/xfsprogs.mk b/bsp/buildroot/package/xfsprogs/xfsprogs.mk index 30c47775..b0875d10 100644 --- a/bsp/buildroot/package/xfsprogs/xfsprogs.mk +++ b/bsp/buildroot/package/xfsprogs/xfsprogs.mk @@ -4,7 +4,7 @@ # ################################################################################ -XFSPROGS_VERSION = 4.3.0 +XFSPROGS_VERSION = 4.7.0 XFSPROGS_SITE = ftp://oss.sgi.com/projects/xfs/cmd_tars XFSPROGS_DEPENDENCIES = util-linux diff --git a/bsp/buildroot/package/xinetd/xinetd.hash b/bsp/buildroot/package/xinetd/xinetd.hash new file mode 100644 index 00000000..05143661 --- /dev/null +++ b/bsp/buildroot/package/xinetd/xinetd.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 620b25f4ab4d72fdf32b13797156ea40df2049f1c07e640177e5fec544e9a94c xinetd-xinetd-2-3-15.tar.gz diff --git a/bsp/buildroot/package/xl2tp/xl2tp.hash b/bsp/buildroot/package/xl2tp/xl2tp.hash new file mode 100644 index 00000000..4b524247 --- /dev/null +++ b/bsp/buildroot/package/xl2tp/xl2tp.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 49b069aa8d873e1d8f615ccc4212351e427bf681ba453fdd211256a8345bb7fb xl2tp-v1.3.6.tar.gz diff --git a/bsp/buildroot/package/xmlstarlet/xmlstarlet.hash b/bsp/buildroot/package/xmlstarlet/xmlstarlet.hash index 2d6558f7..ca9aecfe 100644 --- a/bsp/buildroot/package/xmlstarlet/xmlstarlet.hash +++ b/bsp/buildroot/package/xmlstarlet/xmlstarlet.hash @@ -1,2 +1,3 @@ -# Locally computed: -sha256 47b4ed042ea2909257f2a386001af49fceb303f84da7214779ccf99fffc6bbba xmlstarlet-1.5.0.tar.gz +# From https://sourceforge.net/projects/xmlstar/files/xmlstarlet/1.6.1/ +sha1 87bb104f546caca71b9540807c5b2738944cb219 xmlstarlet-1.6.1.tar.gz +md5 f3c5dfa3b1a2ee06cd57c255cc8b70a0 xmlstarlet-1.6.1.tar.gz diff --git a/bsp/buildroot/package/xmlstarlet/xmlstarlet.mk b/bsp/buildroot/package/xmlstarlet/xmlstarlet.mk index e0abf045..7039d773 100644 --- a/bsp/buildroot/package/xmlstarlet/xmlstarlet.mk +++ b/bsp/buildroot/package/xmlstarlet/xmlstarlet.mk @@ -4,7 +4,7 @@ # ################################################################################ -XMLSTARLET_VERSION = 1.5.0 +XMLSTARLET_VERSION = 1.6.1 XMLSTARLET_SITE = http://downloads.sourceforge.net/project/xmlstar/xmlstarlet/$(XMLSTARLET_VERSION) XMLSTARLET_LICENSE = MIT XMLSTARLET_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/xorriso/0001-fix-musl-build.patch b/bsp/buildroot/package/xorriso/0001-fix-musl-build.patch new file mode 100644 index 00000000..86d251d7 --- /dev/null +++ b/bsp/buildroot/package/xorriso/0001-fix-musl-build.patch @@ -0,0 +1,20 @@ +Fix musl build + +Add missing header needed for ssize_t. + +Signed-off-by: Baruch Siach +--- +Patch status: posted upstream +(http://lists.gnu.org/archive/html/bug-xorriso/2016-05/msg00000.html) + +diff -Nuar xorriso-1.4.2-orig/libisofs/aaip_0_2.h xorriso-1.4.2/libisofs/aaip_0_2.h +--- xorriso-1.4.2-orig/libisofs/aaip_0_2.h 2015-11-28 16:41:33.000000000 +0200 ++++ xorriso-1.4.2/libisofs/aaip_0_2.h 2016-05-24 11:40:43.874191174 +0300 +@@ -16,6 +16,7 @@ + #ifndef Aaip_h_is_includeD + #define Aaip_h_is_includeD yes + ++#include + + /* --------------------------------- Encoder ---------------------------- */ + diff --git a/bsp/buildroot/package/xorriso/Config.in b/bsp/buildroot/package/xorriso/Config.in index 2ac2d839..f9bb10ac 100644 --- a/bsp/buildroot/package/xorriso/Config.in +++ b/bsp/buildroot/package/xorriso/Config.in @@ -5,18 +5,17 @@ config BR2_PACKAGE_XORRISO depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help - xorriso cd/dvd/bd iso 9660 manipulation and disc burner. + xorriso copies file objects from POSIX compliant + filesystems into Rock Ridge enhanced ISO 9660 filesystems + and allows session-wise manipulation of such filesystems. + It can load the management information of existing ISO + images and it writes the session results to optical media + or to filesystem objects. - libburnia is a project for reading, mastering and writing - optical discs. Currently it is comprised of libraries named - libisofs, libburn, libisoburn, a cdrecord emulator named - cdrskin, and an integrated multi-session tool named xorriso. - The software runs on GNU/Linux, FreeBSD, Solaris, NetBSD. - It is base of the GNU xorriso package and is actively - maintained. + Vice versa xorriso is able to copy file objects out of ISO + 9660 filesystems. - http://libburnia-project.org/ - http://www.gnu.org/software/xorriso + https://www.gnu.org/software/xorriso comment "xorriso needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU diff --git a/bsp/buildroot/package/xorriso/Config.in.host b/bsp/buildroot/package/xorriso/Config.in.host new file mode 100644 index 00000000..2baa0437 --- /dev/null +++ b/bsp/buildroot/package/xorriso/Config.in.host @@ -0,0 +1,14 @@ +config BR2_PACKAGE_HOST_XORRISO + bool "host xorriso" + help + xorriso copies file objects from POSIX compliant + filesystems into Rock Ridge enhanced ISO 9660 filesystems + and allows session-wise manipulation of such filesystems. + It can load the management information of existing ISO + images and it writes the session results to optical media + or to filesystem objects. + + Vice versa xorriso is able to copy file objects out of ISO + 9660 filesystems. + + https://www.gnu.org/software/xorriso diff --git a/bsp/buildroot/package/xorriso/xorriso.hash b/bsp/buildroot/package/xorriso/xorriso.hash index 98a716d5..3c2a726e 100644 --- a/bsp/buildroot/package/xorriso/xorriso.hash +++ b/bsp/buildroot/package/xorriso/xorriso.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 901204634651533f7cbd105eab560534702458258529aac4b2f0fc946992107e xorriso-1.3.8.tar.gz +sha256 2843beded1aa4c678706e96fdf9cc5e4b34430b559bdf5bc35df5202125004b3 xorriso-1.4.2.tar.gz diff --git a/bsp/buildroot/package/xorriso/xorriso.mk b/bsp/buildroot/package/xorriso/xorriso.mk index 58263402..be193221 100644 --- a/bsp/buildroot/package/xorriso/xorriso.mk +++ b/bsp/buildroot/package/xorriso/xorriso.mk @@ -4,10 +4,19 @@ # ################################################################################ -XORRISO_VERSION = 1.3.8 +XORRISO_VERSION = 1.4.2 XORRISO_SITE = $(BR2_GNU_MIRROR)/xorriso XORRISO_LICENSE = GPLv3+ XORRISO_LICENSE_FILES = COPYING COPYRIGHT +# Disable everything until we actually need those features, and add the correct +# host libraries +HOST_XORRISO_CONF_OPTS = \ + --disable-zlib \ + --disable-bzip2 \ + --disable-libcdio \ + --disable-libreadline \ + --disable-libedit \ + --disable-libacl ifeq ($(BR2_PACKAGE_LIBICONV),y) XORRISO_DEPENDENCIES += libiconv @@ -64,3 +73,4 @@ XORRISO_CONF_OPTS += --disable-jtethreads endif $(eval $(autotools-package)) +$(eval $(host-autotools-package)) diff --git a/bsp/buildroot/package/xtables-addons/xtables-addons.hash b/bsp/buildroot/package/xtables-addons/xtables-addons.hash index be8cb6e4..323393d0 100644 --- a/bsp/buildroot/package/xtables-addons/xtables-addons.hash +++ b/bsp/buildroot/package/xtables-addons/xtables-addons.hash @@ -1,4 +1,4 @@ -# From http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/2.10/ -sha1 bc6dcb1eb1328931189f6e73a1a02ef4cc51bc44 xtables-addons-2.10.tar.xz +# From https://sourceforge.net/projects/xtables-addons/files/Xtables-addons/2.11/ +sha1 356abeb8ae24da67178f1612bc0fcbfd83a5e7e7 xtables-addons-2.11.tar.xz # Calculated based on the hash above -sha256 2a2d92ae924437d757f55514502c6ef3aeccc6106f729c702efe703ad30f4007 xtables-addons-2.10.tar.xz +sha256 f14f8953a9d3a70157a82883886ff6ec866c61dbea1585edb421478107279921 xtables-addons-2.11.tar.xz diff --git a/bsp/buildroot/package/xtables-addons/xtables-addons.mk b/bsp/buildroot/package/xtables-addons/xtables-addons.mk index b4e5992a..7fc7312a 100644 --- a/bsp/buildroot/package/xtables-addons/xtables-addons.mk +++ b/bsp/buildroot/package/xtables-addons/xtables-addons.mk @@ -4,9 +4,9 @@ # ################################################################################ -XTABLES_ADDONS_VERSION = 2.10 +XTABLES_ADDONS_VERSION = 2.11 XTABLES_ADDONS_SOURCE = xtables-addons-$(XTABLES_ADDONS_VERSION).tar.xz -XTABLES_ADDONS_SITE = http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons +XTABLES_ADDONS_SITE = http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/$(XTABLES_ADDONS_VERSION) XTABLES_ADDONS_DEPENDENCIES = iptables linux host-pkgconf XTABLES_ADDONS_LICENSE = GPLv2+ XTABLES_ADDONS_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/xterm/xterm.hash b/bsp/buildroot/package/xterm/xterm.hash index a6e2c691..206bb916 100644 --- a/bsp/buildroot/package/xterm/xterm.hash +++ b/bsp/buildroot/package/xterm/xterm.hash @@ -1,2 +1,2 @@ # Locally calculated after checking pgp signature -sha256 a60dbb574334c081425fa30f011cd9f571e3be7a91e2a84e252461798bce24a7 xterm-320.tgz +sha256 3b31b07a0c40427e9330ec3be9d1a748c72808f945953cea9e526e48be315f1b xterm-325.tgz diff --git a/bsp/buildroot/package/xterm/xterm.mk b/bsp/buildroot/package/xterm/xterm.mk index 7cad0cbe..3495ad94 100644 --- a/bsp/buildroot/package/xterm/xterm.mk +++ b/bsp/buildroot/package/xterm/xterm.mk @@ -4,7 +4,7 @@ # ################################################################################ -XTERM_VERSION = 320 +XTERM_VERSION = 325 XTERM_SOURCE = xterm-$(XTERM_VERSION).tgz XTERM_SITE = http://invisible-mirror.net/archives/xterm XTERM_DEPENDENCIES = ncurses xlib_libXaw host-pkgconf diff --git a/bsp/buildroot/package/xxhash/xxhash.hash b/bsp/buildroot/package/xxhash/xxhash.hash new file mode 100644 index 00000000..31081c01 --- /dev/null +++ b/bsp/buildroot/package/xxhash/xxhash.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 9743539ed787ea9bd5bb348265cebdd5adcbf820ad329bf44c28bc69ab4c7cd8 xxhash-r40.tar.gz diff --git a/bsp/buildroot/package/yaffs2utils/yaffs2utils.hash b/bsp/buildroot/package/yaffs2utils/yaffs2utils.hash new file mode 100644 index 00000000..4e5846e0 --- /dev/null +++ b/bsp/buildroot/package/yaffs2utils/yaffs2utils.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 9b0912bf683eb839b6e57c9255c83894c3b700d16489a49d319c54c1abf8f6d7 0.2.9.tar.gz diff --git a/bsp/buildroot/package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch b/bsp/buildroot/package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch new file mode 100644 index 00000000..0023a1da --- /dev/null +++ b/bsp/buildroot/package/yajl/0001-Let-the-shared-and-the-static-library-have-the-same-.patch @@ -0,0 +1,34 @@ +From b08fe001e3d3f3564ef298e62342f07080807f7a Mon Sep 17 00:00:00 2001 +From: Vicente Olivert Riera +Date: Wed, 28 Oct 2015 15:45:10 +0000 +Subject: [PATCH] Let the shared and the static library have the same name +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The will be differentiated by the extension (.so or .a). + +Fetched from: +https://github.com/vriera/yajl/commit/6d09f11b8fd358cab0e31b965327e64a599f9ce9 + +Signed-off-by: Vicente Olivert Riera +Signed-off-by: Jörg Krause +--- + src/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 99cf9e9..1a900d3 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -36,6 +36,7 @@ SET (shareDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/share/pkgconfig) + SET(LIBRARY_OUTPUT_PATH ${libDir}) + + ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS}) ++SET_TARGET_PROPERTIES(yajl_s PROPERTIES OUTPUT_NAME yajl) + + ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS}) + +-- +2.8.0 + diff --git a/bsp/buildroot/package/yajl/0001-math-link.patch b/bsp/buildroot/package/yajl/0001-math-link.patch deleted file mode 100644 index 355a2485..00000000 --- a/bsp/buildroot/package/yajl/0001-math-link.patch +++ /dev/null @@ -1,24 +0,0 @@ -[PATCH] fix json_reformat linking on uClibc - -json_reformat calls yajl_gen_* functions, which internally use isnan() / -isinf(). On Glibc, these are provided by libc, but on uClibc you need to -link with -lm (like the spec says), so ensure we do so. - -Signed-off-by: Peter Korsgaard ---- - reformatter/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: yajl-2.0.2/reformatter/CMakeLists.txt -=================================================================== ---- yajl-2.0.2.orig/reformatter/CMakeLists.txt -+++ yajl-2.0.2/reformatter/CMakeLists.txt -@@ -26,7 +26,7 @@ - - ADD_EXECUTABLE(json_reformat ${SRCS}) - --TARGET_LINK_LIBRARIES(json_reformat yajl_s) -+TARGET_LINK_LIBRARIES(json_reformat yajl_s m) - - # copy the binary into the output directory - GET_TARGET_PROPERTY(binPath json_reformat LOCATION) diff --git a/bsp/buildroot/package/yajl/0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch b/bsp/buildroot/package/yajl/0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch index 261c4866..53decca6 100644 --- a/bsp/buildroot/package/yajl/0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch +++ b/bsp/buildroot/package/yajl/0002-cmake-disable-shared-library-build-when-BUILD_SHARED.patch @@ -1,8 +1,10 @@ -From bb4fb7ff71fd6cadd9c1bf8716845a91e5998c0c Mon Sep 17 00:00:00 2001 -From: Samuel Martin -Date: Sun, 31 Aug 2014 00:39:11 +0200 -Subject: [PATCH 2/2] cmake: disable shared library build when - BUILD_SHARED_LIBS is off +From b3cddf92adacfe5ca40574afb3e323cc7cdebc5c Mon Sep 17 00:00:00 2001 +From: Maxime Hadjinlian +Date: Tue, 2 Feb 2016 15:46:09 +0100 +Subject: [PATCH] cmake: Add shared library conditonnal build + +When BUILD_SHARED_LIBS is off, you don't want to build the shared +library. Signed-off-by: Samuel Martin --- @@ -10,7 +12,7 @@ Signed-off-by: Samuel Martin 1 file changed, 4 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index e36b736..6a24424 100644 +index 99cf9e9..9e9c77d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,6 +37,7 @@ SET(LIBRARY_OUTPUT_PATH ${libDir}) @@ -29,16 +31,19 @@ index e36b736..6a24424 100644 #### build up an sdk as a post build step -@@ -78,7 +80,9 @@ INCLUDE_DIRECTORIES(${incDir}/..) - IF(NOT WIN32) - # at build time you may specify the cmake variable LIB_SUFFIX to handle - # 64-bit systems which use 'lib64' -+ IF(BUILD_SHARED_LIBS) - INSTALL(TARGETS yajl LIBRARY DESTINATION lib${LIB_SUFFIX}) -+ ENDIF(BUILD_SHARED_LIBS) - INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX}) - INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl) - INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl) +@@ -77,10 +79,12 @@ INCLUDE_DIRECTORIES(${incDir}/..) + + # at build time you may specify the cmake variable LIB_SUFFIX to handle + # 64-bit systems which use 'lib64' ++IF(BUILD_SHARED_LIBS) + INSTALL(TARGETS yajl + RUNTIME DESTINATION lib${LIB_SUFFIX} + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) ++ENDIF(BUILD_SHARED_LIBS) + INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX}) + INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl) + INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl) -- -2.1.0 +2.7.0 diff --git a/bsp/buildroot/package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch b/bsp/buildroot/package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch new file mode 100644 index 00000000..d3c91f2b --- /dev/null +++ b/bsp/buildroot/package/yajl/0003-Link-with-shared-libyajl-in-a-shared-build.patch @@ -0,0 +1,127 @@ +From 425b25993ef58d07aa18c5d4938876a90e22c47a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Krause?= +Date: Sat, 9 Apr 2016 23:24:27 +0200 +Subject: [PATCH] Link with shared libyajl in a shared build +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Building yajl in a static context fails in a parallel build: + +[ 21%] Linking C executable gen-extra-close +[ 26%] Building C object src/CMakeFiles/yajl_s.dir/yajl_buf.c.o +/home/test/autobuild/instance-3/output/host/opt/ext-toolchain/bfin-uclinux/bfin-uclinux/bin/ld.real: cannot find -lyajl + +Fix this issue by linking against the shared libyail in a shared build. Apply +this fix also to all other build targets who are linking against the library. + +Upstream status: Pending +https://github.com/lloyd/yajl/pull/187 + +[Update: align with commit 302563539dacb284576a443401cdfd061eb2e1e8 and remove + linking with libm from test/api/CMakeLists.txt] +Signed-off-by: Jörg Krause +--- + example/CMakeLists.txt | 7 ++++++- + perf/CMakeLists.txt | 6 +++++- + reformatter/CMakeLists.txt | 6 +++++- + test/api/CMakeLists.txt | 6 +++++- + test/parsing/CMakeLists.txt | 6 +++++- + verify/CMakeLists.txt | 6 +++++- + 6 files changed, 31 insertions(+), 6 deletions(-) + +diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt +index 0a7f622..8cfcef8 100644 +--- a/example/CMakeLists.txt ++++ b/example/CMakeLists.txt +@@ -20,4 +20,9 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib) + + ADD_EXECUTABLE(parse_config ${SRCS}) + +-TARGET_LINK_LIBRARIES(parse_config yajl_s) ++IF(BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES(parse_config yajl) ++ELSE() ++ TARGET_LINK_LIBRARIES(parse_config yajl_s) ++ENDIF() ++ +diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt +index b438d7a..40ba363 100644 +--- a/perf/CMakeLists.txt ++++ b/perf/CMakeLists.txt +@@ -20,4 +20,8 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib) + + ADD_EXECUTABLE(perftest ${SRCS}) + +-TARGET_LINK_LIBRARIES(perftest yajl_s) ++IF(BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES(perftest yajl) ++ELSE() ++ TARGET_LINK_LIBRARIES(perftest yajl_s) ++ENDIF() +diff --git a/reformatter/CMakeLists.txt b/reformatter/CMakeLists.txt +index 52a9bee..7629094 100644 +--- a/reformatter/CMakeLists.txt ++++ b/reformatter/CMakeLists.txt +@@ -26,7 +26,11 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib) + + ADD_EXECUTABLE(json_reformat ${SRCS}) + +-TARGET_LINK_LIBRARIES(json_reformat yajl_s) ++IF(BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES(json_reformat yajl) ++ELSE() ++ TARGET_LINK_LIBRARIES(json_reformat yajl_s) ++ENDIF() + + # In some environments, we must explicitly link libm (like qnx, + # thanks @shahbag) +diff --git a/test/api/CMakeLists.txt b/test/api/CMakeLists.txt +index cd65a54..0c9debf 100644 +--- a/test/api/CMakeLists.txt ++++ b/test/api/CMakeLists.txt +@@ -21,5 +21,9 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../../${YAJL_DIST_NAME}/lib) + FOREACH (test ${TESTS}) + GET_FILENAME_COMPONENT(testProg ${test} NAME_WE) + ADD_EXECUTABLE(${testProg} ${test}) +- TARGET_LINK_LIBRARIES(${testProg} yajl) ++ IF(BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES(${testProg} yajl) ++ ELSE() ++ TARGET_LINK_LIBRARIES(${testProg} yajl_s) ++ ENDIF() + ENDFOREACH() +diff --git a/test/parsing/CMakeLists.txt b/test/parsing/CMakeLists.txt +index c22a388..285f048 100644 +--- a/test/parsing/CMakeLists.txt ++++ b/test/parsing/CMakeLists.txt +@@ -20,4 +20,8 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../../${YAJL_DIST_NAME}/lib) + + ADD_EXECUTABLE(yajl_test ${SRCS}) + +-TARGET_LINK_LIBRARIES(yajl_test yajl_s) ++IF(BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES(yajl_test yajl) ++ELSE() ++ TARGET_LINK_LIBRARIES(yajl_test yajl_s) ++ENDIF() +diff --git a/verify/CMakeLists.txt b/verify/CMakeLists.txt +index 967fca1..06cb2dc 100644 +--- a/verify/CMakeLists.txt ++++ b/verify/CMakeLists.txt +@@ -26,7 +26,11 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib) + + ADD_EXECUTABLE(json_verify ${SRCS}) + +-TARGET_LINK_LIBRARIES(json_verify yajl_s) ++IF(BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES(json_verify yajl) ++ELSE() ++ TARGET_LINK_LIBRARIES(json_verify yajl_s) ++ENDIF() + + # copy in the binary + GET_TARGET_PROPERTY(binPath json_verify LOCATION) +-- +2.8.0 + diff --git a/bsp/buildroot/package/yajl/0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch b/bsp/buildroot/package/yajl/0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch new file mode 100644 index 00000000..71cf2958 --- /dev/null +++ b/bsp/buildroot/package/yajl/0004-Link-libyajl-_s-with-libm-when-isnan-is-not-brought-.patch @@ -0,0 +1,64 @@ +From b47f6a50925efb8c8707b1faed5561a4b66ffdb1 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +Date: Sun, 24 Apr 2016 18:45:27 +0200 +Subject: [PATCH] Link libyajl{,_s} with libm when isnan is not brought by the + libc + +Check whether isnan is provided by the libc library, otherwise make sure +yajl libraries are link against libm. + +Note that setting libm as PUBLIC link libraries enable the transitivity +[1, 2]; therefore it will be automatically passed to target linking +against libyajl{,_s}. + +This patch also makes sure the link libraries will appear in the yajl.pc +file. + +[1] https://cmake.org/cmake/help/v3.5/command/target_link_libraries.html +[2] https://cmake.org/cmake/help/v3.5/manual/cmake-buildsystem.7.html#target-usage-requirements + +Signed-off-by: Samuel Martin +--- + src/CMakeLists.txt | 10 ++++++++++ + src/yajl.pc.cmake | 2 +- + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index b487bfd..a88698f 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -35,11 +35,21 @@ SET (shareDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/share/pkgconfig) + # set the output path for libraries + SET(LIBRARY_OUTPUT_PATH ${libDir}) + ++SET(yajl_lib_link) ++INCLUDE(CheckLibraryExists) ++CHECK_LIBRARY_EXISTS(c isnan "" HAVE_LIBC_ISNAN) ++ ++IF(NOT HAVE_LIBC_ISNAN) ++ LIST(APPEND yajl_lib_link "-lm") ++ENDIF(NOT HAVE_LIBC_ISNAN) ++ + ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS}) + SET_TARGET_PROPERTIES(yajl_s PROPERTIES OUTPUT_NAME yajl) ++TARGET_LINK_LIBRARIES(yajl_s PUBLIC ${yajl_lib_link}) + + IF(BUILD_SHARED_LIBS) + ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS}) ++TARGET_LINK_LIBRARIES(yajl PUBLIC ${yajl_lib_link}) + + #### setup shared library version number + SET_TARGET_PROPERTIES(yajl PROPERTIES +diff --git a/src/yajl.pc.cmake b/src/yajl.pc.cmake +index 6eaca14..4681dd4 100644 +--- a/src/yajl.pc.cmake ++++ b/src/yajl.pc.cmake +@@ -6,4 +6,4 @@ Name: Yet Another JSON Library + Description: A Portable JSON parsing and serialization library in ANSI C + Version: ${YAJL_MAJOR}.${YAJL_MINOR}.${YAJL_MICRO} + Cflags: -I${dollar}{includedir} +-Libs: -L${dollar}{libdir} -lyajl ++Libs: -L${dollar}{libdir} -lyajl ${yajl_lib_link} +-- +2.8.0 + diff --git a/bsp/buildroot/package/yajl/yajl.hash b/bsp/buildroot/package/yajl/yajl.hash index 315d847d..ed4a0502 100644 --- a/bsp/buildroot/package/yajl/yajl.hash +++ b/bsp/buildroot/package/yajl/yajl.hash @@ -1,3 +1,2 @@ # Locally calculated -sha256 0e78f516dc53ecce7dc073f9a9bb0343186b58ef29dcd1dad74e5e853b216dd5 yajl-2.0.4.tar.gz -sha256 0f075b5f9a38bc02077370d4d57d12e615cfaaf7f634e3f2fc746b6582854e53 6d09f11b8fd358cab0e31b965327e64a599f9ce9.patch +sha256 3fb73364a5a30efe615046d07e6db9d09fd2b41c763c5f7d3bfb121cd5c5ac5a yajl-2.1.0.tar.gz diff --git a/bsp/buildroot/package/yajl/yajl.mk b/bsp/buildroot/package/yajl/yajl.mk index 81f29e72..1fb16f50 100644 --- a/bsp/buildroot/package/yajl/yajl.mk +++ b/bsp/buildroot/package/yajl/yajl.mk @@ -4,11 +4,10 @@ # ################################################################################ -YAJL_VERSION = 2.0.4 +YAJL_VERSION = 2.1.0 YAJL_SITE = $(call github,lloyd,yajl,$(YAJL_VERSION)) YAJL_INSTALL_STAGING = YES YAJL_LICENSE = ISC YAJL_LICENSE_FILES = COPYING -YAJL_PATCH = https://github.com/vriera/yajl/commit/6d09f11b8fd358cab0e31b965327e64a599f9ce9.patch $(eval $(cmake-package)) diff --git a/bsp/buildroot/package/yaml-cpp/Config.in b/bsp/buildroot/package/yaml-cpp/Config.in index 3cfb955a..c1ba410a 100644 --- a/bsp/buildroot/package/yaml-cpp/Config.in +++ b/bsp/buildroot/package/yaml-cpp/Config.in @@ -2,7 +2,6 @@ config BR2_PACKAGE_YAML_CPP bool "yaml-cpp" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS # boost - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST help @@ -12,5 +11,4 @@ config BR2_PACKAGE_YAML_CPP https://code.google.com/p/yaml-cpp/ comment "yaml-cpp needs a toolchain w/ C++, threads, wchar" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/bsp/buildroot/package/yaml-cpp/yaml-cpp.hash b/bsp/buildroot/package/yaml-cpp/yaml-cpp.hash new file mode 100644 index 00000000..7d675373 --- /dev/null +++ b/bsp/buildroot/package/yaml-cpp/yaml-cpp.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 6fb92f6f5925e0af918ffbb90acf19b7b88706ebcd40fc186b7caa76609b6350 yaml-cpp-0.5.2.tar.gz diff --git a/bsp/buildroot/package/yasm/yasm.mk b/bsp/buildroot/package/yasm/yasm.mk index bf8a4815..19800344 100644 --- a/bsp/buildroot/package/yasm/yasm.mk +++ b/bsp/buildroot/package/yasm/yasm.mk @@ -6,11 +6,13 @@ YASM_VERSION = 1.3.0 YASM_SITE = http://www.tortall.net/projects/yasm/releases +YASM_LICENSE = BSD-2c, BSD-3c, Artistic, GPLv2, LGPLv2 +YASM_LICENSE_FILES = COPYING BSD.txt Artistic.txt GNU_GPL-2.0 GNU_LGPL-2.0 +# This sed prevents it compiling 2 programs (vsyasm and ytasm) +# that are only of use on Microsoft Windows. define YASM_PRE_CONFIGURE_FIXUP -# This sed prevents it compiling 2 programs (vsyasm and ytasm) -# that are only of use on Microsoft Windows. - sed -i 's#) ytasm.*#)#' $(@D)/Makefile.in + $(SED) 's#) ytasm.*#)#' $(@D)/Makefile.in endef YASM_PRE_CONFIGURE_HOOKS += YASM_PRE_CONFIGURE_FIXUP diff --git a/bsp/buildroot/package/ympd/ympd.hash b/bsp/buildroot/package/ympd/ympd.hash new file mode 100644 index 00000000..7483083b --- /dev/null +++ b/bsp/buildroot/package/ympd/ympd.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 092c26c51166d1d1f025cd06742981783dea7e42bfe4f73f10c4418fc003de94 ympd-v1.2.3.tar.gz diff --git a/bsp/buildroot/package/zeromq/0003-Problem-return-code-of-sodium_init-is-not-checked.patch b/bsp/buildroot/package/zeromq/0003-Problem-return-code-of-sodium_init-is-not-checked.patch deleted file mode 100644 index fcdbc9cd..00000000 --- a/bsp/buildroot/package/zeromq/0003-Problem-return-code-of-sodium_init-is-not-checked.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 479db2113643e459c11db392e0fefd6400657c9e Mon Sep 17 00:00:00 2001 -From: Constantin Rack -Date: Sat, 8 Nov 2014 10:50:17 +0100 -Subject: [PATCH] Problem: return code of sodium_init() is not checked. - -There are two todo comments in curve_client.cpp and curve_server.cpp that suggest -checking the return code of sodium_init() call. sodium_init() returns -1 on error, -0 on success and 1 if it has been called before and is already initalized: -https://github.com/jedisct1/libsodium/blob/master/src/libsodium/sodium/core.c - -Signed-off-by: Gustavo Zacarias ---- -Status: Upstream - -diff --git a/src/curve_client.cpp b/src/curve_client.cpp -index 6019c54..77fc420 100644 ---- a/src/curve_client.cpp -+++ b/src/curve_client.cpp -@@ -38,6 +38,7 @@ zmq::curve_client_t::curve_client_t (const options_t &options_) : - cn_peer_nonce(1), - sync() - { -+ int rc; - memcpy (public_key, options_.curve_public_key, crypto_box_PUBLICKEYBYTES); - memcpy (secret_key, options_.curve_secret_key, crypto_box_SECRETKEYBYTES); - memcpy (server_key, options_.curve_server_key, crypto_box_PUBLICKEYBYTES); -@@ -47,12 +48,12 @@ zmq::curve_client_t::curve_client_t (const options_t &options_) : - unsigned char tmpbytes[4]; - randombytes(tmpbytes, 4); - #else -- // todo check return code -- sodium_init(); -+ rc = sodium_init (); -+ zmq_assert (rc != -1); - #endif - - // Generate short-term key pair -- const int rc = crypto_box_keypair (cn_public, cn_secret); -+ rc = crypto_box_keypair (cn_public, cn_secret); - zmq_assert (rc == 0); - } - -diff --git a/src/curve_server.cpp b/src/curve_server.cpp -index a3c4243..22c32d6 100644 ---- a/src/curve_server.cpp -+++ b/src/curve_server.cpp -@@ -42,6 +42,7 @@ zmq::curve_server_t::curve_server_t (session_base_t *session_, - cn_peer_nonce(1), - sync() - { -+ int rc; - // Fetch our secret key from socket options - memcpy (secret_key, options_.curve_secret_key, crypto_box_SECRETKEYBYTES); - scoped_lock_t lock (sync); -@@ -50,12 +51,12 @@ zmq::curve_server_t::curve_server_t (session_base_t *session_, - unsigned char tmpbytes[4]; - randombytes(tmpbytes, 4); - #else -- // todo check return code -- sodium_init(); -+ rc = sodium_init (); -+ zmq_assert (rc != -1); - #endif - - // Generate short-term key pair -- const int rc = crypto_box_keypair (cn_public, cn_secret); -+ rc = crypto_box_keypair (cn_public, cn_secret); - zmq_assert (rc == 0); - } - --- -2.4.10 - diff --git a/bsp/buildroot/package/zeromq/Config.in b/bsp/buildroot/package/zeromq/Config.in index b75ed3a8..d5c9deae 100644 --- a/bsp/buildroot/package/zeromq/Config.in +++ b/bsp/buildroot/package/zeromq/Config.in @@ -27,13 +27,25 @@ config BR2_PACKAGE_ZEROMQ if BR2_PACKAGE_ZEROMQ +comment "norm support needs a toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS + +config BR2_PACKAGE_ZEROMQ_NORM + bool "NORM support" + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_NORM + help + Add support for NACK-Oriented Reliable Multicast (RFC 5740) + protocol. + config BR2_PACKAGE_ZEROMQ_PGM bool "PGM/EPGM support" - depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # openpgm + depends on BR2_TOOLCHAIN_HAS_SYNC_2 + depends on BR2_TOOLCHAIN_HAS_SYNC_4 select BR2_PACKAGE_OPENPGM help Add support for Pragmatic General Multicast protocol (RFC 3208) implemented either over raw IP packets or UDP datagrams - (encapsulated PGM). This requires OpenPGM library. + (encapsulated PGM). endif diff --git a/bsp/buildroot/package/zeromq/zeromq.hash b/bsp/buildroot/package/zeromq/zeromq.hash index b7447407..76067d93 100644 --- a/bsp/buildroot/package/zeromq/zeromq.hash +++ b/bsp/buildroot/package/zeromq/zeromq.hash @@ -1,4 +1,4 @@ -# From http://download.zeromq.org/SHA1SUMS: -sha1 b7185724f2fd56d0face50047757ac2a04d26ca4 zeromq-4.1.3.tar.gz +# From https://github.com/zeromq/zeromq4-1/releases +sha1 2b7490b77860be3060b1b1f92cd73184d309ca69 zeromq-4.1.5.tar.gz # Calculated based on the hash above -sha256 61b31c830db377777e417235a24d3660a4bcc3f40d303ee58df082fcd68bf411 zeromq-4.1.3.tar.gz +sha256 04aac57f081ffa3a2ee5ed04887be9e205df3a7ddade0027460b8042432bdbcf zeromq-4.1.5.tar.gz diff --git a/bsp/buildroot/package/zeromq/zeromq.mk b/bsp/buildroot/package/zeromq/zeromq.mk index ab30b78c..5c99983b 100644 --- a/bsp/buildroot/package/zeromq/zeromq.mk +++ b/bsp/buildroot/package/zeromq/zeromq.mk @@ -4,10 +4,11 @@ # ################################################################################ -ZEROMQ_VERSION = 4.1.3 -ZEROMQ_SITE = http://download.zeromq.org +ZEROMQ_VERSION = 4.1.5 +ZEROMQ_SITE = https://github.com/zeromq/zeromq4-1/releases/download/v$(ZEROMQ_VERSION) ZEROMQ_INSTALL_STAGING = YES ZEROMQ_DEPENDENCIES = util-linux +ZEROMQ_CONF_OPTS = --without-documentation ZEROMQ_LICENSE = LGPLv3+ with exceptions ZEROMQ_LICENSE_FILES = COPYING COPYING.LESSER # For 0001-acinclude.m4-make-kernel-specific-flags-cacheable.patch @@ -28,9 +29,18 @@ ifeq ($(BR2_STATIC_LIBS),y) ZEROMQ_CONF_OPTS += LIBS=-lstdc++ endif +ifeq ($(BR2_PACKAGE_ZEROMQ_NORM),y) +ZEROMQ_CONF_OPTS += --with-norm +ZEROMQ_DEPENDENCIES += norm +else +ZEROMQ_CONF_OPTS += --without-norm +endif + ifeq ($(BR2_PACKAGE_ZEROMQ_PGM),y) ZEROMQ_DEPENDENCIES += host-pkgconf openpgm -ZEROMQ_CONF_OPTS += --with-system-pgm +ZEROMQ_CONF_OPTS += --with-pgm +else +ZEROMQ_CONF_OPTS += --without-pgm endif # ZeroMQ uses libsodium if it's available. diff --git a/bsp/buildroot/package/zic/zic.hash b/bsp/buildroot/package/zic/zic.hash index 290cfdbe..360575ac 100644 --- a/bsp/buildroot/package/zic/zic.hash +++ b/bsp/buildroot/package/zic/zic.hash @@ -1,2 +1,2 @@ -# From: http://mm.icann.org/pipermail/tz-announce/2016-January/000035.html -sha512 33a1078ba16aef19048aa97ce1816fc5368061bfe40eddc0e7e246ca57c4a535eaf2f03847128e971a6d959f34ea77224bf33fd53dc6a0c006450dde35222223 tzcode2016a.tar.gz +# From http://mm.icann.org/pipermail/tz-announce/2016-July/000040.html +sha512 97d084f4b0a688fef097dca256083ca9948393848d77c8ee637bdd26f859150cce7d2b26fc1165a3b44b28cc1c9075e10192332261ed68990b4b21a85438b023 tzcode2016f.tar.gz diff --git a/bsp/buildroot/package/zic/zic.mk b/bsp/buildroot/package/zic/zic.mk index 6f5d1601..8a0c8dcc 100644 --- a/bsp/buildroot/package/zic/zic.mk +++ b/bsp/buildroot/package/zic/zic.mk @@ -4,7 +4,7 @@ # ################################################################################ -ZIC_VERSION = 2016a +ZIC_VERSION = 2016f ZIC_SOURCE = tzcode$(ZIC_VERSION).tar.gz ZIC_SITE = http://www.iana.org/time-zones/repository/releases ZIC_STRIP_COMPONENTS = 0 diff --git a/bsp/buildroot/package/zip/Config.in.host b/bsp/buildroot/package/zip/Config.in.host new file mode 100644 index 00000000..b14ce55d --- /dev/null +++ b/bsp/buildroot/package/zip/Config.in.host @@ -0,0 +1,10 @@ +config BR2_PACKAGE_HOST_ZIP + bool "host zip" + help + Zip is a compression and file packaging/archive utility. + Although highly compatible both with PKWARE's PKZIP and + PKUNZIP utilities for MS-DOS and with Info-ZIP's own UnZip, + our primary objectives have been portability and + other-than-MSDOS functionality. + + http://infozip.sourceforge.net/Zip.html diff --git a/bsp/buildroot/package/zlog/zlog.hash b/bsp/buildroot/package/zlog/zlog.hash new file mode 100644 index 00000000..1de23c9a --- /dev/null +++ b/bsp/buildroot/package/zlog/zlog.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 d3afb1f0ce67df29f759da74235949370ac2818faf242f3f674cb48f9f4c57d3 zlog-6ddb9bbf3ff0123e701bf60996f351576ebe9c00.tar.gz diff --git a/bsp/buildroot/package/zlog/zlog.mk b/bsp/buildroot/package/zlog/zlog.mk index fb8762c6..a60e1b0d 100644 --- a/bsp/buildroot/package/zlog/zlog.mk +++ b/bsp/buildroot/package/zlog/zlog.mk @@ -4,7 +4,7 @@ # ################################################################################ -ZLOG_VERSION = ca6162be1608839e99c6388c28488c51ccf98e4a +ZLOG_VERSION = 6ddb9bbf3ff0123e701bf60996f351576ebe9c00 ZLOG_SITE = $(call github,HardySimpson,zlog,$(ZLOG_VERSION)) ZLOG_LICENSE = LGPLv2.1 ZLOG_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/zmqpp/0002-Allow-building-shared-or-static-library-only.patch b/bsp/buildroot/package/zmqpp/0001-Allow-building-shared-or-static-library-only.patch similarity index 52% rename from bsp/buildroot/package/zmqpp/0002-Allow-building-shared-or-static-library-only.patch rename to bsp/buildroot/package/zmqpp/0001-Allow-building-shared-or-static-library-only.patch index 4eabf234..70caee81 100644 --- a/bsp/buildroot/package/zmqpp/0002-Allow-building-shared-or-static-library-only.patch +++ b/bsp/buildroot/package/zmqpp/0001-Allow-building-shared-or-static-library-only.patch @@ -1,42 +1,43 @@ -From 4c83dd96d1f92627ecdb6b6ed80b8c278aea82f7 Mon Sep 17 00:00:00 2001 +From 02ad67e60ef698ee47f6ee53b36e5b89c2fd71e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= -Date: Fri, 20 Nov 2015 19:51:50 +0100 -Subject: [PATCH] Allow building shared or static library only +Date: Wed, 24 Feb 2016 10:07:11 -0300 +Subject: [PATCH 1/2] Allow building shared or static library only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +[Gustavo: update for 4.1.2] + Signed-off-by: Jörg Krause +Signed-off-by: Gustavo Zacarias --- - Makefile | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) + Makefile | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile -index 7d63077..90c7059 100644 +index 9df5996..86c8fac 100644 --- a/Makefile +++ b/Makefile -@@ -57,6 +57,9 @@ LIBRARY_ARCHIVE = lib$(LIBRARY_NAME).a - CLIENT_TARGET = $(LIBRARY_NAME) - TESTS_TARGET = $(LIBRARY_NAME)-tests +@@ -79,6 +79,8 @@ ifeq ($(UNAME_S),Darwin) + endif + -+BUILD_SHARED ?= yes +BUILD_SHARED ?= yes + CONFIG_FLAGS = ifeq ($(CONFIG),debug) CONFIG_FLAGS = -g -fno-inline -ftemplate-depth-1000 -@@ -71,7 +74,7 @@ ifneq (,$(findstring $(CONFIG),release loadtest)) +@@ -93,13 +95,22 @@ ifneq (,$(findstring $(CONFIG),release loadtest)) CONFIG_FLAGS = -O3 -funroll-loops -ffast-math -finline-functions -fomit-frame-pointer -DNO_DEBUG_LOG -DNO_TRACE_LOG -DNDEBUG endif --COMMON_FLAGS = -MMD -std=c++0x -pipe -Wall -fPIC \ -+COMMON_FLAGS = -MMD -std=c++0x -pipe -Wall \ +-COMMON_FLAGS = -MMD -std=c++11 -pipe -Wall -fPIC \ ++COMMON_FLAGS = -MMD -std=c++11 -pipe -Wall \ -DBUILD_ENV=$(CONFIG) \ - -DBUILD_VERSION='"$(APP_VERSION)"' \ - -DBUILD_VERSION_MAJOR=$(VERSION_MAJOR) \ -@@ -82,6 +85,15 @@ COMMON_FLAGS = -MMD -std=c++0x -pipe -Wall -fPIC \ + -DBUILD_DATESTAMP='$(APP_DATESTAMP)' \ + -DBUILD_LIBRARY_NAME='"$(LIBRARY_NAME)"' \ -DBUILD_CLIENT_NAME='"$(CLIENT_TARGET)"' \ - -I$(SRC_PATH) + -I$(SRC_PATH) $(CUSTOM_INCLUDE_PATH) +ifeq ($(BUILD_SHARED),yes) +COMMON_FLAGS += -fPIC @@ -49,20 +50,21 @@ index 7d63077..90c7059 100644 + COMMON_LIBS = -lzmq - LIBRARY_LIBS = -@@ -125,9 +137,11 @@ check: $(LIBRARY_SHARED) $(LIBRARY_ARCHIVE) test - - install: + LIBRARY_LIBS = +@@ -147,10 +158,11 @@ install: + mkdir -p $(INCLUDEDIR)/$(LIBRARY_DIR) + mkdir -p $(LIBDIR) install -m 644 $(ALL_LIBRARY_INCLUDES) $(INCLUDEDIR)/$(LIBRARY_DIR) +ifeq ($(BUILD_SHARED),yes) - install -m 755 $(BUILD_PATH)/$(LIBRARY_SHARED).$(VERSION_MAJOR) $(LIBDIR)/$(LIBRARY_SHARED).$(APP_VERSION) - ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED).$(VERSION_MAJOR) - ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED) + install -m 755 $(BUILD_PATH)/$(LIBRARY_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_FULL_VERSION_SHARED) +- install -m 755 $(BUILD_PATH)/$(LIBRARY_ARCHIVE) $(LIBDIR)/$(LIBRARY_ARCHIVE) + ln -sf $(LIBRARY_FULL_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_VERSION_SHARED) + ln -sf $(LIBRARY_FULL_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_SHARED) +endif if [ -f $(BUILD_PATH)/$(CLIENT_TARGET) ]; then install -m 755 $(BUILD_PATH)/$(CLIENT_TARGET) $(BINDIR); fi $(LDCONFIG) @echo "use make installcheck to test the install" -@@ -148,7 +162,7 @@ clean: +@@ -172,7 +184,7 @@ clean: client: $(CLIENT_TARGET) @@ -71,11 +73,11 @@ index 7d63077..90c7059 100644 # # BUILD Targets -@@ -187,4 +201,3 @@ test: $(TESTS_TARGET) +@@ -211,4 +223,3 @@ test: $(TESTS_TARGET) $(OBJECT_PATH)/%.o: $(SRC_PATH)/%.cpp -mkdir -p $(dir $@) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(COMMON_FLAGS) $(CONFIG_FLAGS) -c -o $@ $< - -- -2.6.2 +2.4.10 diff --git a/bsp/buildroot/package/zmqpp/0001-add-cstdlib-header-to-ensure-EXIT_FAILURE-presence.patch b/bsp/buildroot/package/zmqpp/0001-add-cstdlib-header-to-ensure-EXIT_FAILURE-presence.patch deleted file mode 100644 index 1458eca6..00000000 --- a/bsp/buildroot/package/zmqpp/0001-add-cstdlib-header-to-ensure-EXIT_FAILURE-presence.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 2c9271fa662b98e2a451b859f2506edf5f91c9bf Mon Sep 17 00:00:00 2001 -From: Lionel Orry -Date: Fri, 15 May 2015 11:27:57 +0200 -Subject: [PATCH] add cstdlib header to ensure EXIT_FAILURE presence - -Using some cross-compiling toolchains, EXIT_FAILURE is not always -properly defined without this inclusion. - -Add myself to AUTHORS. - -Signed-off-by: Lionel Orry ---- - src/client/main.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/client/main.cpp b/src/client/main.cpp -index 082c06b..760f01a 100644 ---- a/src/client/main.cpp -+++ b/src/client/main.cpp -@@ -3,6 +3,7 @@ - * Author: @benjamg - */ - -+#include - #include - #include - #include --- -2.1.0 - diff --git a/bsp/buildroot/package/zmqpp/0003-Install-static-library-for-static-builds.patch b/bsp/buildroot/package/zmqpp/0002-Install-static-library-for-static-builds.patch similarity index 60% rename from bsp/buildroot/package/zmqpp/0003-Install-static-library-for-static-builds.patch rename to bsp/buildroot/package/zmqpp/0002-Install-static-library-for-static-builds.patch index c4ce2d21..402f85e2 100644 --- a/bsp/buildroot/package/zmqpp/0003-Install-static-library-for-static-builds.patch +++ b/bsp/buildroot/package/zmqpp/0002-Install-static-library-for-static-builds.patch @@ -1,23 +1,26 @@ -From 1637443262cc861a161fd7c734bc0610a340335b Mon Sep 17 00:00:00 2001 +From 283676e2e8f15bedca20c3d94caeecfdebe11ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krause?= Date: Mon, 23 Nov 2015 22:53:09 +0100 -Subject: [PATCH] Install static library for static builds +Subject: [PATCH 2/2] Install static library for static builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +[Gustavo: update for 4.1.2] + Signed-off-by: Jörg Krause +Signed-off-by: Gustavo Zacarias --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile -index 90c7059..abed6fa 100644 +index 86c8fac..fbaff63 100644 --- a/Makefile +++ b/Makefile -@@ -142,6 +142,9 @@ ifeq ($(BUILD_SHARED),yes) - ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED).$(VERSION_MAJOR) - ln -sf $(LIBRARY_SHARED).$(APP_VERSION) $(LIBDIR)/$(LIBRARY_SHARED) +@@ -163,6 +163,9 @@ ifeq ($(BUILD_SHARED),yes) + ln -sf $(LIBRARY_FULL_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_VERSION_SHARED) + ln -sf $(LIBRARY_FULL_VERSION_SHARED) $(LIBDIR)/$(LIBRARY_SHARED) endif +ifeq ($(BUILD_STATIC),yes) + install -m 755 $(BUILD_PATH)/$(LIBRARY_ARCHIVE) $(LIBDIR)/$(LIBRARY_ARCHIVE) @@ -26,5 +29,5 @@ index 90c7059..abed6fa 100644 $(LDCONFIG) @echo "use make installcheck to test the install" -- -2.6.2 +2.4.10 diff --git a/bsp/buildroot/package/zmqpp/Config.in b/bsp/buildroot/package/zmqpp/Config.in index 03792240..67e89b37 100644 --- a/bsp/buildroot/package/zmqpp/Config.in +++ b/bsp/buildroot/package/zmqpp/Config.in @@ -1,7 +1,7 @@ config BR2_PACKAGE_ZMQPP bool "zmqpp" - # c++0x support - depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 + # c++1x support + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # util-linux depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq @@ -14,9 +14,9 @@ config BR2_PACKAGE_ZMQPP http://github.com/benjamg/zmqpp -comment "zmqpp needs a toolchain w/ C++, wchar, threads, gcc >= 4.6" +comment "zmqpp needs a toolchain w/ C++, wchar, threads, gcc >= 4.7" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ - !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 + !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 if BR2_PACKAGE_ZMQPP @@ -24,7 +24,6 @@ config BR2_PACKAGE_ZMQPP_CLIENT bool "zmqpp client" depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS # boost - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS help @@ -32,7 +31,6 @@ config BR2_PACKAGE_ZMQPP_CLIENT used to listen or send to zeromq sockets. comment "zmqpp client needs a toolchain w/ dynamic library, threads" - depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS endif diff --git a/bsp/buildroot/package/zmqpp/zmqpp.hash b/bsp/buildroot/package/zmqpp/zmqpp.hash index 7bca39fa..63c6a34f 100644 --- a/bsp/buildroot/package/zmqpp/zmqpp.hash +++ b/bsp/buildroot/package/zmqpp/zmqpp.hash @@ -1,3 +1,2 @@ # Locally calculated -sha256 92cb5bf7e1df8b99792fe1eb530bf91fced9c2d14159007bec011bb1b8248269 zmqpp-3.2.0.tar.gz -sha256 0b76169a48a0ba9dd581b63787b4852f3922de0c22b7a325cab688c1bafb3dd7 260a9304f6c74272bd3c396f6cca685657b4aff1.patch +sha256 831ad02df64034268d910c30f9fb1b1e631ad810182951af9d7d622650831eb5 zmqpp-4.1.2.tar.gz diff --git a/bsp/buildroot/package/zmqpp/zmqpp.mk b/bsp/buildroot/package/zmqpp/zmqpp.mk index 0bb6bbed..18da7096 100644 --- a/bsp/buildroot/package/zmqpp/zmqpp.mk +++ b/bsp/buildroot/package/zmqpp/zmqpp.mk @@ -4,14 +4,12 @@ # ################################################################################ -ZMQPP_VERSION = 3.2.0 +ZMQPP_VERSION = 4.1.2 ZMQPP_SITE = $(call github,zeromq,zmqpp,$(ZMQPP_VERSION)) ZMQPP_INSTALL_STAGING = YES ZMQPP_DEPENDENCIES = zeromq ZMQPP_LICENSE = MIT ZMQPP_LICENSE_FILES = LICENSE -ZMQPP_PATCH = https://github.com/zeromq/zmqpp/commit/260a9304f6c74272bd3c396f6cca685657b4aff1.patch - ZMQPP_MAKE_OPTS = LD="$(TARGET_CXX)" BUILD_PATH=./build PREFIX=/usr ZMQPP_LDFLAGS = $(TARGET_LDFLAGS) -lpthread diff --git a/bsp/buildroot/package/znc/znc.hash b/bsp/buildroot/package/znc/znc.hash index a0b27aaf..f243d4ab 100644 --- a/bsp/buildroot/package/znc/znc.hash +++ b/bsp/buildroot/package/znc/znc.hash @@ -1,2 +1,2 @@ -# Locally calculated after checking pgp signature -sha256 eef17727c0c6433fed1affba0ea76ec7fd60198d2f3c234d8529bd5fb26f0593 znc-1.6.2.tar.gz +# Locally calculated +sha256 631c46de76fe601a41ef7676bc974958e9a302b72b25fc92b4a603a25d89b827 znc-1.6.3.tar.gz diff --git a/bsp/buildroot/package/znc/znc.mk b/bsp/buildroot/package/znc/znc.mk index 0844b0f1..31e1bcf6 100644 --- a/bsp/buildroot/package/znc/znc.mk +++ b/bsp/buildroot/package/znc/znc.mk @@ -4,7 +4,7 @@ # ################################################################################ -ZNC_VERSION = 1.6.2 +ZNC_VERSION = 1.6.3 ZNC_SITE = http://znc.in/releases ZNC_LICENSE = Apache-2.0 ZNC_LICENSE_FILES = LICENSE diff --git a/bsp/buildroot/package/zsh/0001-configure-use-user-set-pcre-config.patch b/bsp/buildroot/package/zsh/0001-configure-use-user-set-pcre-config.patch new file mode 100644 index 00000000..d4cf59bd --- /dev/null +++ b/bsp/buildroot/package/zsh/0001-configure-use-user-set-pcre-config.patch @@ -0,0 +1,33 @@ +From: Baruch Siach +Date: Thu, 3 Mar 2016 23:14:39 +0200 +Subject: [PATCH] configure: use user set pcre-config + +Setting a non default configuration script location is common practice when +cross compiling, since the target library might need different flags. zsh +configure scripts allows the user to set pcre-config location but doesn't +actually use it. Fix this. + +Signed-off-by: Baruch Siach +--- +Patch status: sent upstream +(http://www.zsh.org/mla/workers/2016/msg00619.html) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c3bd713c126a..9947b16066b6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -925,7 +925,7 @@ fi + if test x$enable_pcre = xyes; then + dnl pcre-config should probably be employed here + dnl AC_SEARCH_LIBS(pcre_compile, pcre) +- LIBS="`pcre-config --libs` $LIBS" ++ LIBS="`$ac_cv_prog_PCRECONF --libs` $LIBS" + fi + + dnl --------------------- +-- +2.7.0 + diff --git a/bsp/buildroot/package/zsh/Config.in b/bsp/buildroot/package/zsh/Config.in index 261df426..ed8cf678 100644 --- a/bsp/buildroot/package/zsh/Config.in +++ b/bsp/buildroot/package/zsh/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_ZSH bool "zsh" depends on BR2_USE_MMU # fork() + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS select BR2_PACKAGE_NCURSES help zsh is a shell designed for interactive use, although it is also diff --git a/bsp/buildroot/package/zsh/zsh.mk b/bsp/buildroot/package/zsh/zsh.mk index 84dbbde5..aa4029f1 100644 --- a/bsp/buildroot/package/zsh/zsh.mk +++ b/bsp/buildroot/package/zsh/zsh.mk @@ -9,6 +9,8 @@ ZSH_SITE = http://www.zsh.org/pub ZSH_SOURCE = zsh-$(ZSH_VERSION).tar.xz ZSH_DEPENDENCIES = ncurses ZSH_CONF_OPTS = --bindir=/bin +# Patching configure.ac +ZSH_AUTORECONF = YES ZSH_LICENSE = MIT-like ZSH_LICENSE_FILES = LICENCE diff --git a/bsp/buildroot/package/zxing-cpp/zxing-cpp.hash b/bsp/buildroot/package/zxing-cpp/zxing-cpp.hash index e38a6123..4625fbf6 100644 --- a/bsp/buildroot/package/zxing-cpp/zxing-cpp.hash +++ b/bsp/buildroot/package/zxing-cpp/zxing-cpp.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 164c0bc9f1ce2ff5659fddce6da71f8cdda091751f3b71140c090b58451a2b04 zxing-cpp-fa34227d26e0b388e65b81936a2681952928f5be.tar.gz +sha256 643c931a35c363109cd38c5a1526505b75f57c0634907cb7b6bc24f6f48eb32b zxing-cpp-0db7f855135222becff193671faae79c083424b6.tar.gz diff --git a/bsp/buildroot/package/zxing-cpp/zxing-cpp.mk b/bsp/buildroot/package/zxing-cpp/zxing-cpp.mk index 7344dc1c..7113ae2b 100644 --- a/bsp/buildroot/package/zxing-cpp/zxing-cpp.mk +++ b/bsp/buildroot/package/zxing-cpp/zxing-cpp.mk @@ -4,7 +4,7 @@ # ################################################################################ -ZXING_CPP_VERSION = fa34227d26e0b388e65b81936a2681952928f5be +ZXING_CPP_VERSION = 0db7f855135222becff193671faae79c083424b6 ZXING_CPP_SITE = $(call github,glassechidna,zxing-cpp,$(ZXING_CPP_VERSION)) ZXING_CPP_LICENSE = Apache-2.0 ZXING_CPP_LICENSE_FILES = COPYING diff --git a/bsp/buildroot/package/zyre/zyre.hash b/bsp/buildroot/package/zyre/zyre.hash new file mode 100644 index 00000000..5b38b803 --- /dev/null +++ b/bsp/buildroot/package/zyre/zyre.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 0ce8328a2b9fe46aafc4627fc4ebd4d815f4d9f7d9708088459306c87bf5fb4b zyre-1d949e4bf79b694ea883c325f5813e87ddc2a687.tar.gz diff --git a/bsp/buildroot/package/zyre/zyre.mk b/bsp/buildroot/package/zyre/zyre.mk index b17dfd02..8647456f 100644 --- a/bsp/buildroot/package/zyre/zyre.mk +++ b/bsp/buildroot/package/zyre/zyre.mk @@ -4,10 +4,10 @@ # ################################################################################ -ZYRE_VERSION = a351468b7d313fc90c446668122365851a9c60e4 +ZYRE_VERSION = 1d949e4bf79b694ea883c325f5813e87ddc2a687 ZYRE_SITE = $(call github,zeromq,zyre,$(ZYRE_VERSION)) -ZYRE_LICENSE = LGPLv3+ -ZYRE_LICENSE_FILES = COPYING COPYING.LESSER +ZYRE_LICENSE = MPLv2.0 +ZYRE_LICENSE_FILES = LICENSE ZYRE_INSTALL_STAGING = YES ZYRE_DEPENDENCIES = czmq zeromq host-pkgconf ZYRE_AUTORECONF = YES diff --git a/bsp/buildroot/support/dependencies/check-host-cmake.mk b/bsp/buildroot/support/dependencies/check-host-cmake.mk new file mode 100644 index 00000000..3005cfe6 --- /dev/null +++ b/bsp/buildroot/support/dependencies/check-host-cmake.mk @@ -0,0 +1,7 @@ +BR2_CMAKE ?= cmake + +ifneq (,$(call suitable-host-package,cmake,$(BR2_CMAKE))) +USE_SYSTEM_CMAKE = YES +else +BR2_CMAKE = $(HOST_DIR)/usr/bin/cmake +endif diff --git a/bsp/buildroot/support/dependencies/check-host-cmake.sh b/bsp/buildroot/support/dependencies/check-host-cmake.sh new file mode 100755 index 00000000..08de60c9 --- /dev/null +++ b/bsp/buildroot/support/dependencies/check-host-cmake.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +candidate="$1" + +cmake=`which $candidate` +if [ ! -x "$cmake" ]; then + # echo nothing: no suitable cmake found + exit 1 +fi + +version=`$cmake --version | head -n1 | cut -d\ -f3` +major=`echo "$version" | cut -d. -f1` +minor=`echo "$version" | cut -d. -f2` + +# Versions before 3.0 are affected by the bug described in +# https://git.busybox.net/buildroot/commit/?id=ef2c1970e4bff3be3992014070392b0e6bc28bd2 +# and fixed in upstream CMake in version 3.0: +# https://cmake.org/gitweb?p=cmake.git;h=e8b8b37ef6fef094940d3384df5a1d421b9fa568 +major_min=3 +minor_min=0 +if [ $major -gt $major_min ]; then + echo $cmake +else + if [ $major -eq $major_min -a $minor -ge $minor_min ]; then + echo $cmake + else + # echo nothing: no suitable cmake found + exit 1 + fi +fi diff --git a/bsp/buildroot/support/dependencies/dependencies.mk b/bsp/buildroot/support/dependencies/dependencies.mk index 82327216..4334dac4 100644 --- a/bsp/buildroot/support/dependencies/dependencies.mk +++ b/bsp/buildroot/support/dependencies/dependencies.mk @@ -16,10 +16,6 @@ $(shell support/dependencies/check-host-$(1).sh $(2)) endef -include $(sort $(wildcard support/dependencies/check-host-*.mk)) -ifeq ($(BR2_STRIP_sstrip),y) -DEPENDENCIES_HOST_PREREQ += host-sstrip -endif - ifeq ($(BR2_CCACHE),y) DEPENDENCIES_HOST_PREREQ += host-ccache endif diff --git a/bsp/buildroot/support/download/dl-wrapper b/bsp/buildroot/support/download/dl-wrapper index ef2d8729..f944b71d 100755 --- a/bsp/buildroot/support/download/dl-wrapper +++ b/bsp/buildroot/support/download/dl-wrapper @@ -21,15 +21,16 @@ set -e main() { local OPT OPTARG - local backend output hfile quiet + local backend output hfile recurse quiet # Parse our options; anything after '--' is for the backend - while getopts :hb:o:H:q OPT; do + while getopts :hb:o:H:rq OPT; do case "${OPT}" in h) help; exit 0;; b) backend="${OPTARG}";; o) output="${OPTARG}";; H) hfile="${OPTARG}";; + r) recurse="-r";; q) quiet="-q";; :) error "option '%s' expects a mandatory argument\n" "${OPTARG}";; \?) error "unknown option '%s'\n" "${OPTARG}";; @@ -82,7 +83,7 @@ main() { # If the backend fails, we can just remove the temporary directory to # remove all the cruft it may have left behind. Then we just exit in # error too. - if ! "${OLDPWD}/support/download/${backend}" ${quiet} "${tmpf}" "${@}"; then + if ! "${OLDPWD}/support/download/${backend}" ${quiet} ${recurse} "${tmpf}" "${@}"; then rm -rf "${tmpd}" exit 1 fi diff --git a/bsp/buildroot/support/download/git b/bsp/buildroot/support/download/git index 314b388f..416cd1ba 100755 --- a/bsp/buildroot/support/download/git +++ b/bsp/buildroot/support/download/git @@ -6,15 +6,20 @@ set -e # Download helper for git, to be called from the download wrapper script # # Call it as: -# .../git [-q] OUT_FILE REPO_URL CSET BASENAME +# .../git [-q] [-r] OUT_FILE REPO_URL CSET BASENAME +# +# -q Be quiet. +# -r Clone and archive sub-modules. # # Environment: # GIT : the git command to call verbose= -while getopts :q OPT; do +recurse=0 +while getopts :qr OPT; do case "${OPT}" in q) verbose=-q; exec >/dev/null;; + r) recurse=1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done @@ -41,7 +46,7 @@ _git() { git_done=0 if [ -n "$(_git ls-remote "'${repo}'" "'${cset}'" 2>&1)" ]; then printf "Doing shallow clone\n" - if _git clone ${verbose} --depth 1 -b "'${cset}'" --bare "'${repo}'" "'${basename}'"; then + if _git clone ${verbose} --depth 1 -b "'${cset}'" "'${repo}'" "'${basename}'"; then git_done=1 else printf "Shallow clone failed, falling back to doing a full clone\n" @@ -49,10 +54,42 @@ if [ -n "$(_git ls-remote "'${repo}'" "'${cset}'" 2>&1)" ]; then fi if [ ${git_done} -eq 0 ]; then printf "Doing full clone\n" - _git clone ${verbose} --mirror "'${repo}'" "'${basename}'" + _git clone ${verbose} "'${repo}'" "'${basename}'" fi -GIT_DIR="${basename}" \ -_git archive --prefix="'${basename}/'" -o "'${output}.tmp'" --format=tar "'${cset}'" +pushd "${basename}" >/dev/null -gzip -n <"${output}.tmp" >"${output}" +# Try to get the special refs exposed by some forges (pull-requests for +# github, changes for gerrit...). There is no easy way to know whether +# the cset the user passed us is such a special ref or a tag or a sha1 +# or whatever else. We'll eventually fail at checking out that cset, +# below, if there is an issue anyway. Since most of the cset we're gonna +# have to clone are not such special refs, consign the output to oblivion +# so as not to alarm unsuspecting users, but still trace it as a warning. +if ! _git fetch origin "'${cset}:${cset}'" >/dev/null 2>&1; then + printf "Could not fetch special ref '%s'; assuming it is not special.\n" "${cset}" +fi + +# Checkout the required changeset, so that we can update the required +# submodules. +_git checkout -q "'${cset}'" + +# Get date of commit to generate a reproducible archive. +# %cD is RFC2822, so it's fully qualified, with TZ and all. +date="$( _git log -1 --pretty=format:%cD )" + +# There might be submodules, so fetch them. +if [ ${recurse} -eq 1 ]; then + _git submodule update --init --recursive +fi + +# We do not need the .git dir; we keep other .git files, in case they +# are the only files in their directory. +rm -rf .git + +popd >/dev/null + +# Generate the archive, sort with the C locale so that it is reproducible +tar cf - --numeric-owner --owner=0 --group=0 --mtime="${date}" \ + -T <(find "${basename}" -not -type d |LC_ALL=C sort) \ +|gzip -n >"${output}" diff --git a/bsp/buildroot/support/gnuconfig/README.buildroot b/bsp/buildroot/support/gnuconfig/README.buildroot index 0898cb54..a71ed930 100644 --- a/bsp/buildroot/support/gnuconfig/README.buildroot +++ b/bsp/buildroot/support/gnuconfig/README.buildroot @@ -24,4 +24,4 @@ Currently no patches are needed, but they may be needed again in the future. The current Buildroot version is based on the Git commit -5e4de70bb0064d974a848fbe3a445d5dafaf7b48 of the config.git repository. +dafd8e767ec87b90aac62f0fcedd11944c84b50a of the config.git repository. diff --git a/bsp/buildroot/support/gnuconfig/config.guess b/bsp/buildroot/support/gnuconfig/config.guess index b79252d6..c4bd827a 100755 --- a/bsp/buildroot/support/gnuconfig/config.guess +++ b/bsp/buildroot/support/gnuconfig/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2013-06-10' +timestamp='2016-05-15' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2013-06-10' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,7 +149,7 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac @@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -579,8 +603,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -617,13 +642,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -662,11 +687,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -679,12 +704,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -789,14 +814,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -826,7 +851,7 @@ EOF *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -878,7 +903,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -901,7 +926,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -932,6 +957,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -944,6 +972,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -969,10 +1000,10 @@ EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} exit ;; - or32:Linux:*:*) + or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) @@ -1020,7 +1051,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1099,7 +1130,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1248,6 +1279,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1260,22 +1294,32 @@ EOF if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1306,7 +1350,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1348,7 +1392,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1359,171 +1403,25 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff --git a/bsp/buildroot/support/gnuconfig/config.sub b/bsp/buildroot/support/gnuconfig/config.sub index 61cb4bc2..6d86a1e2 100755 --- a/bsp/buildroot/support/gnuconfig/config.sub +++ b/bsp/buildroot/support/gnuconfig/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2013-10-01' +timestamp='2016-05-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2013-10-01' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -33,7 +33,7 @@ timestamp='2013-10-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2013-10-01' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,7 +116,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -255,12 +254,13 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ @@ -283,8 +283,10 @@ case $basic_machine in | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ @@ -296,14 +298,14 @@ case $basic_machine in | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | open8 \ - | or1k | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -311,6 +313,7 @@ case $basic_machine in | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -325,6 +328,9 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none @@ -370,12 +376,13 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -402,8 +409,10 @@ case $basic_machine in | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ @@ -415,16 +424,18 @@ case $basic_machine in | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -432,6 +443,7 @@ case $basic_machine in | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -508,6 +520,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -769,6 +784,9 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux @@ -824,6 +842,10 @@ case $basic_machine in basic_machine=powerpc-unknown os=-morphos ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; msdos) basic_machine=i386-pc os=-msdos @@ -1356,11 +1378,11 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ @@ -1369,14 +1391,15 @@ case $os in | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1508,6 +1531,8 @@ case $os in ;; -nacl*) ;; + -ios) + ;; -none) ;; *) @@ -1594,9 +1619,6 @@ case $basic_machine in mips*-*) os=-elf ;; - or1k-*) - os=-elf - ;; or32-*) os=-coff ;; diff --git a/bsp/buildroot/support/legal-info/README.header b/bsp/buildroot/support/legal-info/README.header index d07c45d9..d3bdf71b 100644 --- a/bsp/buildroot/support/legal-info/README.header +++ b/bsp/buildroot/support/legal-info/README.header @@ -14,10 +14,17 @@ This material is composed of the following items. compiled programs. Note: this may have not been saved due to technical limitations, you may need to collect it manually. - * The source code for all packages; this has been saved in the sources/ - subdirectory (except for the non-redistributable packages, which have not - been saved); patches applied to some packages by Buildroot are included in - the Buildroot sources and were not duplicated in the sources/ subdirectory. + * The original source code for all packages; this has been saved in the + sources/ subdirectory (except for the non-redistributable packages, which + have not been saved). Patches that were applied are also saved, along + with a file named 'series' that lists the patches in the order they were + applied. Patches are under the same license as the files that they modify + in the original package. + Note: Buildroot applies additional patches to Libtool scripts of + autotools-based packages. These patches can be found under + support/libtool in the Buildroot source and, due to technical + limitations, are not saved with the package sources. You may need + to collect them manually. * A manifest file listing the configured packages and related information. * The license text of the packages; they have been saved in the licenses/ subdirectory. diff --git a/bsp/buildroot/support/misc/Vagrantfile b/bsp/buildroot/support/misc/Vagrantfile index b8f02afc..cf269fea 100644 --- a/bsp/buildroot/support/misc/Vagrantfile +++ b/bsp/buildroot/support/misc/Vagrantfile @@ -5,7 +5,7 @@ ################################################################################ # Buildroot version to use -RELEASE='2016.02' +RELEASE='2016.08' ### Change here for more memory/cores ### VM_MEMORY=2048 diff --git a/bsp/buildroot/support/misc/toolchainfile.cmake.in b/bsp/buildroot/support/misc/toolchainfile.cmake.in index 5cf381e9..649b52d7 100644 --- a/bsp/buildroot/support/misc/toolchainfile.cmake.in +++ b/bsp/buildroot/support/misc/toolchainfile.cmake.in @@ -19,6 +19,7 @@ set(CMAKE_EXE_LINKER_FLAGS "@@TARGET_LDFLAGS@@ ${CMAKE_EXE_LINKER_FLAGS}" CACHE set(CMAKE_INSTALL_SO_NO_EXE 0) set(CMAKE_PROGRAM_PATH "${RELOCATED_HOST_DIR}/usr/bin") +set(CMAKE_SYSROOT "${RELOCATED_HOST_DIR}/@@STAGING_SUBDIR@@") set(CMAKE_FIND_ROOT_PATH "${RELOCATED_HOST_DIR}/@@STAGING_SUBDIR@@") set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) @@ -29,3 +30,7 @@ set(ENV{PKG_CONFIG_SYSROOT_DIR} "${RELOCATED_HOST_DIR}/@@STAGING_SUBDIR@@") # This toolchain file can be used both inside and outside Buildroot. set(CMAKE_C_COMPILER "${RELOCATED_HOST_DIR}/@@TARGET_CC@@") set(CMAKE_CXX_COMPILER "${RELOCATED_HOST_DIR}/@@TARGET_CXX@@") +if(@@TOOLCHAIN_HAS_FORTRAN@@) + set(CMAKE_Fortran_FLAGS "@@TARGET_FCFLAGS@@ ${CMAKE_Fortran_FLAGS}" CACHE STRING "Buildroot FCFLAGS") + set(CMAKE_Fortran_COMPILER "${RELOCATED_HOST_DIR}/@@TARGET_FC@@") +endif() diff --git a/bsp/buildroot/support/scripts/apply-patches.sh b/bsp/buildroot/support/scripts/apply-patches.sh index 201278dd..7ccb39dd 100755 --- a/bsp/buildroot/support/scripts/apply-patches.sh +++ b/bsp/buildroot/support/scripts/apply-patches.sh @@ -31,6 +31,8 @@ # applied. The list of the patches applied is stored in '.applied_patches_list' # file in the build directory. +set -e + silent= if [ "$1" = "-s" ] ; then # add option to be used by the patch tool @@ -63,8 +65,12 @@ find ${builddir}/ '(' -name '*.rej' -o -name '.*.rej' ')' -print0 | \ xargs -0 -r rm -f function apply_patch { - path=$1 - patch=$2 + path="${1%%/}" + patch="${2}" + case "${path}" in + /*) ;; + *) path="$PWD/${path}";; + esac if [ "$3" ]; then type="series"; uncomp="cat" else @@ -99,7 +105,15 @@ function apply_patch { echo "Error: missing patch file ${path}/$patch" exit 1 fi - echo $patch >> ${builddir}/.applied_patches_list + existing="$(grep -E "/${patch}\$" ${builddir}/.applied_patches_list || true)" + if [ -n "${existing}" ]; then + echo "Error: duplicate filename '${patch}'" + echo "Conflicting files are:" + echo " already applied: ${existing}" + echo " to be applied : ${path}/${patch}" + exit 1 + fi + echo "${path}/${patch}" >> ${builddir}/.applied_patches_list ${uncomp} "${path}/$patch" | patch -g0 -p1 -E -d "${builddir}" -t -N $silent if [ $? != 0 ] ; then echo "Patch failed! Please fix ${patch}!" @@ -141,6 +155,7 @@ function scan_patchdir { fi } +touch ${builddir}/.applied_patches_list scan_patchdir "$patchdir" "$patchpattern" # Check for rejects... diff --git a/bsp/buildroot/support/scripts/check-host-rpath b/bsp/buildroot/support/scripts/check-host-rpath index 48d69dae..6ce547cb 100755 --- a/bsp/buildroot/support/scripts/check-host-rpath +++ b/bsp/buildroot/support/scripts/check-host-rpath @@ -26,7 +26,7 @@ main() { printf "*** ERROR: package %s installs executables without proper RPATH:\n" "${pkg}" fi printf "*** %s\n" "${file}" - done < <( find "${hostdir}"/usr/{bin,sbin} -type f -exec file {} + 2>/dev/null \ + done < <( find "${hostdir}"/{,usr/}{bin,sbin} -type f -exec file {} + 2>/dev/null \ |sed -r -e '/^([^:]+):.*\.*\.*/!d' \ -e 's//\1/' \ ) diff --git a/bsp/buildroot/support/scripts/graph-build-time b/bsp/buildroot/support/scripts/graph-build-time index 7eb3e479..0ba0f2d3 100755 --- a/bsp/buildroot/support/scripts/graph-build-time +++ b/bsp/buildroot/support/scripts/graph-build-time @@ -276,7 +276,7 @@ parser.add_argument("--order", '-O', metavar="GRAPH_ORDER", help="Ordering of packages: build or duration (for histogram only)") parser.add_argument("--alternate-colors", '-c', action="store_true", help="Use alternate colour-scheme") -parser.add_argument("--input", '-i', metavar="OUTPUT", +parser.add_argument("--input", '-i', metavar="INPUT", help="Input file (usually $(O)/build/build-time.log)") parser.add_argument("--output", '-o', metavar="OUTPUT", required=True, help="Output file (.pdf or .png extension)") diff --git a/bsp/buildroot/support/scripts/graph-depends b/bsp/buildroot/support/scripts/graph-depends index a00eb9d4..cb00383c 100755 --- a/bsp/buildroot/support/scripts/graph-depends +++ b/bsp/buildroot/support/scripts/graph-depends @@ -73,7 +73,7 @@ else: if check_only: sys.stderr.write("don't specify outfile and check-only at the same time\n") sys.exit(1) - outfile = open(args.outfile, "wb") + outfile = open(args.outfile, "w") if args.package is None: mode = MODE_FULL diff --git a/bsp/buildroot/support/scripts/hardlink-or-copy b/bsp/buildroot/support/scripts/hardlink-or-copy new file mode 100755 index 00000000..b046bdf0 --- /dev/null +++ b/bsp/buildroot/support/scripts/hardlink-or-copy @@ -0,0 +1,35 @@ +#!/bin/bash + +# Try to hardlink a file into a directory, fallback to copy on failure. +# +# Hardlink-or-copy the source file in the first argument into the +# destination directory in the second argument, using the basename in +# the third argument as basename for the destination file. If the third +# argument is missing, use the basename of the source file as basename +# for the destination file. +# +# In either case, remove the destination prior to doing the +# hardlink-or-copy. +# +# Note that this is NOT an atomic operation. + +set -e + +main() { + local src_file="${1}" + local dst_dir="${2}" + local dst_file="${3}" + + if [ -n "${dst_file}" ]; then + dst_file="${dst_dir}/${dst_file}" + else + dst_file="${dst_dir}/${src_file##*/}" + fi + + mkdir -p "${dst_dir}" + rm -f "${dst_file}" + ln -f "${src_file}" "${dst_file}" 2>/dev/null \ + || cp -f "${src_file}" "${dst_file}" +} + +main "${@}" diff --git a/bsp/buildroot/support/scripts/pkg-stats b/bsp/buildroot/support/scripts/pkg-stats index fad7ae9c..cc3bef45 100755 --- a/bsp/buildroot/support/scripts/pkg-stats +++ b/bsp/buildroot/support/scripts/pkg-stats @@ -97,7 +97,6 @@ for i in $(find boot/ linux/ package/ -name '*.mk' | sort) ; do $i = "linux/linux-ext-fbtft.mk" -o \ $i = "linux/linux-ext-xenomai.mk" -o \ $i = "linux/linux-ext-rtai.mk" -o \ - $i = "package/efl/efl.mk" -o \ $i = "package/freescale-imx/freescale-imx.mk" -o \ $i = "package/gcc/gcc.mk" -o \ $i = "package/gstreamer/gstreamer.mk" -o \ diff --git a/bsp/buildroot/support/scripts/pycompile.py b/bsp/buildroot/support/scripts/pycompile.py new file mode 100644 index 00000000..fde711a4 --- /dev/null +++ b/bsp/buildroot/support/scripts/pycompile.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +# Wrapper for python2 and python3 around compileall to raise exception +# when a python byte code generation failed. +# +# Inspired from: +# http://stackoverflow.com/questions/615632/how-to-detect-errors-from-compileall-compile-dir + +from __future__ import print_function +import sys +import py_compile +import compileall + +class ReportProblem: + def __nonzero__(self): + type, value, traceback = sys.exc_info() + if type is not None and issubclass(type, py_compile.PyCompileError): + print("Cannot compile %s" %value.file) + raise value + return 1 + +report_problem = ReportProblem() + +compileall.compile_dir(sys.argv[1], quiet=report_problem) diff --git a/bsp/buildroot/support/scripts/scancpan b/bsp/buildroot/support/scripts/scancpan index 0436d2a4..3ee543a3 100755 --- a/bsp/buildroot/support/scripts/scancpan +++ b/bsp/buildroot/support/scripts/scancpan @@ -471,7 +471,7 @@ unshift @INC, sub { } # END OF FATPACK CODE -use 5.022; # same major version as target perl +use 5.010; use strict; use warnings; use Fatal qw(open close); @@ -484,6 +484,19 @@ use HTTP::Tiny; use Safe; use MetaCPAN::API::Tiny; +# Below, 5.022 should be aligned with the version of perl actually +# bundled in Buildroot: +die <<"MSG" if $] < 5.022; +This script needs a host perl with the same major version as Buildroot target perl. + +Your current host perl is: + $^X + version $] + +You may install a local one by running: + perlbrew install perl-5.22.2 +MSG + my ($help, $man, $quiet, $force, $recommend, $test, $host); my $target = 1; GetOptions( 'help|?' => \$help, @@ -505,6 +518,7 @@ my %need_host; # name -> 1 if host package is needed my %need_dlopen; # name -> 1 if requires dynamic library my %deps_build; # name -> list of host dependencies my %deps_runtime; # name -> list of target dependencies +my %deps_optional; # name -> list of optional target dependencies my %license_files; # name -> list of license files my %checksum; # author -> list of checksum my $mcpan = MetaCPAN::API::Tiny->new(); @@ -551,10 +565,10 @@ sub find_license_files { } sub fetch { - my ($name, $need_target, $need_host) = @_; + my ($name, $need_target, $need_host, $top) = @_; $need_target{$name} = $need_target if $need_target; $need_host{$name} = $need_host if $need_host; - unless ($dist{$name}) { + unless ($dist{$name} && !$top) { say qq{fetch ${name}} unless $quiet; my $result = $mcpan->release( distribution => $name ); $dist{$name} = $result; @@ -563,21 +577,26 @@ sub fetch { $license_files{$name} = find_license_files( $manifest ); my %build = (); my %runtime = (); + my %optional = (); foreach my $dep (@{$result->{dependency}}) { my $modname = ${$dep}{module}; next if $modname eq q{perl}; next if $modname =~ m|^Alien|; next if $modname =~ m|^Win32|; - next if !$test && $modname =~ m|^Test|; + next if !($test && $top) && $modname =~ m|^Test|; next if Module::CoreList::is_core( $modname, undef, $] ); # we could use the host Module::CoreList data, because host perl and # target perl have the same major version next if ${$dep}{phase} eq q{develop}; - next if !$test && ${$dep}{phase} eq q{test}; - next if !$recommend && ${$dep}{relationship} ne q{requires}; + next if !($test && $top) && ${$dep}{phase} eq q{test}; my $distname = $mcpan->module( $modname )->{distribution}; if (${$dep}{phase} eq q{runtime}) { - $runtime{$distname} = 1; + if (${$dep}{relationship} eq q{requires}) { + $runtime{$distname} = 1; + } + else { + $optional{$distname} = 1 if $recommend && $top; + } } else { # configure, build $build{$distname} = 1; @@ -585,6 +604,7 @@ sub fetch { } $deps_build{$name} = [keys %build]; $deps_runtime{$name} = [keys %runtime]; + $deps_optional{$name} = [keys %optional]; foreach my $distname (@{$deps_build{$name}}) { fetch( $distname, 0, 1 ); } @@ -592,13 +612,16 @@ sub fetch { fetch( $distname, $need_target, $need_host ); $need_dlopen{$name} ||= $need_dlopen{$distname}; } + foreach my $distname (@{$deps_optional{$name}}) { + fetch( $distname, $need_target, $need_host ); + } } return; } foreach my $distname (@ARGV) { # Command-line's distributions - fetch( $distname, !!$target, !!$host ); + fetch( $distname, !!$target, !!$host, 1 ); } say scalar keys %dist, q{ packages fetched.} unless $quiet; @@ -683,6 +706,15 @@ while (my ($distname, $dist) = each %dist) { say {$fh} qq{${brname}_LICENSE = ${license}} if $license && $license ne q{unknown}; say {$fh} qq{${brname}_LICENSE_FILES = ${license_files}} if $license_files; say {$fh} qq{}; + foreach (sort @{$deps_optional{$distname}}) { + next if grep { $_ eq $distname; } @{$deps_runtime{$_}}; # avoid cyclic dependencies + my $opt_brname = brname( $_ ); + my $opt_fsname = fsname( $_ ); + say {$fh} qq{ifeq (\$(BR2_PACKAGE_PERL_${opt_brname}),y)}; + say {$fh} qq{${brname}_DEPENDENCIES += ${opt_fsname}}; + say {$fh} qq{endif}; + say {$fh} qq{}; + } say {$fh} qq{\$(eval \$(perl-package))} if $need_target{$distname}; say {$fh} qq{\$(eval \$(host-perl-package))} if $need_host{$distname}; close $fh; @@ -727,10 +759,6 @@ support/scripts/scancpan Try-Tiny Moo =head1 SYNOPSIS -curl -kL http://install.perlbrew.pl | bash - -perlbrew install perl-5.18.2 - supports/scripts/scancpan [options] [distname ...] Options: @@ -800,7 +828,7 @@ in order to work with the right CoreList data. =head1 LICENSE -Copyright (C) 2013-2014 by Francois Perrad +Copyright (C) 2013-2016 by Francois Perrad 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 diff --git a/bsp/buildroot/support/scripts/scanpypi b/bsp/buildroot/support/scripts/scanpypi new file mode 100755 index 00000000..e150ae58 --- /dev/null +++ b/bsp/buildroot/support/scripts/scanpypi @@ -0,0 +1,653 @@ +#!/usr/bin/python2 +""" + +Utility for building Buildroot packages for existing PyPI packages + +Any package built by scanpypi should be manually checked for +errors. +""" +from __future__ import print_function +import argparse +import json +import urllib2 +import sys +import os +import shutil +import StringIO +import tarfile +import zipfile +import errno +import hashlib +import re +import textwrap +import tempfile +import imp +from functools import wraps + +def setup_decorator(func, method): + """ + Decorator for distutils.core.setup and setuptools.setup. + Puts the arguments with which setup is called as a dict + Add key 'method' which should be either 'setuptools' or 'distutils'. + + Keyword arguments: + func -- either setuptools.setup or distutils.core.setup + method -- either 'setuptools' or 'distutils' + """ + + @wraps(func) + def closure(*args, **kwargs): + # Any python packages calls its setup function to be installed. + # Argument 'name' of this setup function is the package's name + BuildrootPackage.setup_args[kwargs['name']] = kwargs + BuildrootPackage.setup_args[kwargs['name']]['method'] = method + return closure + +# monkey patch +import setuptools +setuptools.setup = setup_decorator(setuptools.setup, 'setuptools') +import distutils +distutils.core.setup = setup_decorator(setuptools.setup, 'distutils') + +def find_file_upper_case(filenames, path='./'): + """ + List generator: + Recursively find files that matches one of the specified filenames. + Returns a relative path starting with path argument. + + Keyword arguments: + filenames -- List of filenames to be found + path -- Path to the directory to search + """ + for root, dirs, files in os.walk(path): + for file in files: + if file.upper() in filenames: + yield (os.path.join(root, file)) + + +def pkg_buildroot_name(pkg_name): + """ + Returns the Buildroot package name for the PyPI package pkg_name. + Remove all non alphanumeric characters except - + Also lowers the name and adds 'python-' suffix + + Keyword arguments: + pkg_name -- String to rename + """ + name = re.sub('[^\w-]', '', pkg_name.lower()) + prefix = 'python-' + pattern = re.compile('^(?!' + prefix + ')(.+?)$') + name = pattern.sub(r'python-\1', name) + return name + +class DownloadFailed(Exception): + pass + +class BuildrootPackage(): + """This class's methods are not meant to be used individually please + use them in the correct order: + + __init__ + + download_package + + extract_package + + load_module + + get_requirements + + create_package_mk + + create_hash_file + + create_config_in + + """ + setup_args = {} + + def __init__(self, real_name, pkg_folder): + self.real_name = real_name + self.buildroot_name = pkg_buildroot_name(self.real_name) + self.pkg_dir = os.path.join(pkg_folder, self.buildroot_name) + self.mk_name = self.buildroot_name.upper().replace('-', '_') + self.as_string = None + self.md5_sum = None + self.metadata = None + self.metadata_name = None + self.metadata_url = None + self.pkg_req = None + self.setup_metadata = None + self.tmp_extract = None + self.used_url = None + self.filename = None + self.url = None + self.version = None + + def fetch_package_info(self): + """ + Fetch a package's metadata from the python package index + """ + self.metadata_url = 'https://pypi.python.org/pypi/{pkg}/json'.format( + pkg=self.real_name) + try: + pkg_json = urllib2.urlopen(self.metadata_url).read().decode() + except urllib2.HTTPError as error: + print('ERROR:', error.getcode(), error.msg, file=sys.stderr) + print('ERROR: Could not find package {pkg}.\n' + 'Check syntax inside the python package index:\n' + 'https://pypi.python.org/pypi/ ' + .format(pkg=self.real_name)) + raise + except urllib2.URLError: + print('ERROR: Could not find package {pkg}.\n' + 'Check syntax inside the python package index:\n' + 'https://pypi.python.org/pypi/ ' + .format(pkg=self.real_name)) + raise + self.metadata = json.loads(pkg_json) + self.version = self.metadata['info']['version'] + self.metadata_name = self.metadata['info']['name'] + + def download_package(self): + """ + Download a package using metadata from pypi + """ + try: + self.metadata['urls'][0]['filename'] + except IndexError: + print( + 'Non-conventional package, ', + 'please check carefully after creation') + self.metadata['urls'] = [{ + 'packagetype': 'sdist', + 'url': self.metadata['info']['download_url'], + 'md5_digest': None}] + # In this case, we can't get the name of the downloaded file + # from the pypi api, so we need to find it, this should work + urlpath = urllib2.urlparse.urlparse( + self.metadata['info']['download_url']).path + # urlparse().path give something like + # /path/to/file-version.tar.gz + # We use basename to remove /path/to + self.metadata['urls'][0]['filename'] = os.path.basename(urlpath) + for download_url in self.metadata['urls']: + if 'bdist' in download_url['packagetype']: + continue + try: + print('Downloading package {pkg} from {url}...'.format( + pkg=self.real_name, url=download_url['url'])) + download = urllib2.urlopen(download_url['url']) + except urllib2.HTTPError as http_error: + download = http_error + else: + self.used_url = download_url + self.as_string = download.read() + if not download_url['md5_digest']: + break + self.md5_sum = hashlib.md5(self.as_string).hexdigest() + if self.md5_sum == download_url['md5_digest']: + break + else: + if download.__class__ == urllib2.HTTPError: + raise download + raise DownloadFailed('Failed to downloas package {pkg}' + .format(pkg=self.real_name)) + self.filename = self.used_url['filename'] + self.url = self.used_url['url'] + + def extract_package(self, tmp_path): + """ + Extract the package contents into a directrory + + Keyword arguments: + tmp_path -- directory where you want the package to be extracted + """ + as_file = StringIO.StringIO(self.as_string) + if self.filename[-3:] == 'zip': + with zipfile.ZipFile(as_file) as as_zipfile: + tmp_pkg = os.path.join(tmp_path, self.buildroot_name) + try: + os.makedirs(tmp_pkg) + except OSError as exception: + if exception.errno != errno.EEXIST: + print("ERROR: ", exception.message, file=sys.stderr) + return None, None + print('WARNING:', exception.message, file=sys.stderr) + print('Removing {pkg}...'.format(pkg=tmp_pkg)) + shutil.rmtree(tmp_pkg) + os.makedirs(tmp_pkg) + as_zipfile.extractall(tmp_pkg) + else: + with tarfile.open(fileobj=as_file) as as_tarfile: + tmp_pkg = os.path.join(tmp_path, self.buildroot_name) + try: + os.makedirs(tmp_pkg) + except OSError as exception: + if exception.errno != errno.EEXIST: + print("ERROR: ", exception.message, file=sys.stderr) + return None, None + print('WARNING:', exception.message, file=sys.stderr) + print('Removing {pkg}...'.format(pkg=tmp_pkg)) + shutil.rmtree(tmp_pkg) + os.makedirs(tmp_pkg) + as_tarfile.extractall(tmp_pkg) + + tmp_extract = '{folder}/{name}-{version}' + self.tmp_extract = tmp_extract.format( + folder=tmp_pkg, + name=self.metadata_name, + version=self.version) + + def load_setup(self): + """ + Loads the corresponding setup and store its metadata + """ + current_dir = os.getcwd() + os.chdir(self.tmp_extract) + sys.path.append(self.tmp_extract) + s_file, s_path, s_desc = imp.find_module('setup', [self.tmp_extract]) + setup = imp.load_module('setup', s_file, s_path, s_desc) + try: + self.setup_metadata = self.setup_args[self.metadata_name] + except KeyError: + # This means setup was not called which most likely mean that it is + # called through the if __name__ == '__main__' directive. + # In this case, we can only pray that it is called through a + # function called main() in setup.py. + setup.main([]) # Will raise AttributeError if not found + self.setup_metadata = self.setup_args[self.metadata_name] + # Here we must remove the module the hard way. + # We must do this because of a very sepcific case: if a package calls + # setup from the __main__ but does not come with a 'main()' function, + # for some reason setup.main([]) will successfully call the main + # function of a previous package... + sys.modules.pop('setup',None) + del setup + os.chdir(current_dir) + sys.path.remove(self.tmp_extract) + + def get_requirements(self, pkg_folder): + """ + Retrieve dependencies from the metadata found in the setup.py script of + a pypi package. + + Keyword Arguments: + pkg_folder -- location of the already created packages + """ + if 'install_requires' not in self.setup_metadata: + self.pkg_req = None + return set() + self.pkg_req = self.setup_metadata['install_requires'] + self.pkg_req = [re.sub('([-.\w]+).*', r'\1', req) + for req in self.pkg_req] + req_not_found = self.pkg_req + self.pkg_req = map(pkg_buildroot_name, self.pkg_req) + pkg_tuples = zip(req_not_found, self.pkg_req) + # pkg_tuples is a list of tuples that looks like + # ('werkzeug','python-werkzeug') because I need both when checking if + # dependencies already exist or are already in the download list + req_not_found = set( + pkg[0] for pkg in pkg_tuples + if not os.path.isdir(pkg[1]) + ) + return req_not_found + + def __create_mk_header(self): + """ + Create the header of the .mk file + """ + header = ['#' * 80 + '\n'] + header.append('#\n') + header.append('# {name}\n'.format(name=self.buildroot_name)) + header.append('#\n') + header.append('#' * 80 + '\n') + header.append('\n') + return header + + def __create_mk_download_info(self): + """ + Create the lines refering to the download information of the + .mk file + """ + lines = [] + version_line = '{name}_VERSION = {version}\n'.format( + name=self.mk_name, + version=self.version) + lines.append(version_line) + + targz = self.filename.replace( + self.version, + '$({name}_VERSION)'.format(name=self.mk_name)) + targz_line = '{name}_SOURCE = {filename}\n'.format( + name=self.mk_name, + filename=targz) + lines.append(targz_line) + + if self.filename not in self.url: + # Sometimes the filename is in the url, sometimes it's not + site_url = self.url + else: + site_url = self.url[:self.url.find(self.filename)] + site_line = '{name}_SITE = {url}'.format(name=self.mk_name, + url=site_url) + site_line = site_line.rstrip('/') + '\n' + lines.append(site_line) + return lines + + def __create_mk_setup(self): + """ + Create the line refering to the setup method of the package of the + .mk file + + There are two things you can use to make an installer + for a python package: distutils or setuptools + distutils comes with python but does not support dependencies. + distutils is mostly still there for backward support. + setuptools is what smart people use, + but it is not shipped with python :( + """ + lines = [] + setup_type_line = '{name}_SETUP_TYPE = {method}\n'.format( + name=self.mk_name, + method=self.setup_metadata['method']) + lines.append(setup_type_line) + return lines + + def __create_mk_license(self): + """ + Create the lines referring to the package's license informations of the + .mk file + + The license is found using the metadata from pypi. + In the metadata, the license can be found either with standard names in + the classifiers part or with naming from the packager in the "License" + part. + + From the classifiers, the license is "translated" according to + buildroot standards if need be (i.e. from Apache Software License to + Apache-2.0). + + From the License part, we cannot guess what formatting the packager + used. Hence, it is likely to be incorrect. (i.e. Apache License 2.0 + instead of Apache-2.0). + + The license's files are found by searching the package for files named + license or license.txt (case insensitive). + If more than one license file is found, the user is asked to select + which ones he wants to use. + """ + license_dict = { + 'Apache Software License': 'Apache-2.0', + 'BSD License': 'BSD', + 'European Union Public Licence 1.0': 'EUPLv1.0', + 'European Union Public Licence 1.1': 'EUPLv1.1', + "GNU General Public License": "GPL", + "GNU General Public License v2": "GPLv2", + "GNU General Public License v2 or later": "GPLv2+", + "GNU General Public License v3": "GPLv3", + "GNU General Public License v3 or later": "GPLv3+", + "GNU Lesser General Public License v2": "LGPLv2.1", + "GNU Lesser General Public License v2 or later": "LGPLv2.1+", + "GNU Lesser General Public License v3": "LGPLv3", + "GNU Lesser General Public License v3 or later": "LGPLv3+", + "GNU Library or Lesser General Public License": "LGPLv2", + "ISC License": "ISC", + "MIT License": "MIT", + "Mozilla Public License 1.0": "MPL-1.0", + "Mozilla Public License 1.1": "MPL-1.1", + "Mozilla Public License 2.0": "MPL-2.0", + "Zope Public License": "ZPL" + } + regexp = re.compile('^License :* *.* *:+ (.*)( \(.*\))?$') + classifiers_licenses = [regexp.sub(r"\1", lic) + for lic in self.metadata['info']['classifiers'] + if regexp.match(lic)] + licenses = map(lambda x: license_dict[x] if x in license_dict else x, + classifiers_licenses) + lines = [] + if not len(licenses): + print('WARNING: License has been set to "{license}". It is most' + ' likely wrong, please change it if need be'.format( + license=', '.join(licenses))) + licenses = [self.metadata['info']['license']] + license_line = '{name}_LICENSE = {license}\n'.format( + name=self.mk_name, + license=', '.join(licenses)) + lines.append(license_line) + + filenames = ['LICENCE', 'LICENSE', 'LICENSE.TXT', 'COPYING', + 'COPYING.TXT'] + license_files = list(find_file_upper_case(filenames, self.tmp_extract)) + license_files = [license.replace(self.tmp_extract, '')[1:] + for license in license_files] + if len(license_files) > 0: + if len(license_files) > 1: + print('More than one file found for license:', + ', '.join(license_files)) + license_files = [filename + for index, filename in enumerate(license_files)] + license_file_line = ('{name}_LICENSE_FILES =' + ' {files}\n'.format( + name=self.mk_name, + files=' '.join(license_files))) + lines.append(license_file_line) + else: + print('WARNING: No license file found,' + ' please specify it manually afterwards') + license_file_line = '# No license file found\n' + + return lines + + def __create_mk_requirements(self): + """ + Create the lines referring to the dependencies of the of the + .mk file + + Keyword Arguments: + pkg_name -- name of the package + pkg_req -- dependencies of the package + """ + lines = [] + dependencies_line = ('{name}_DEPENDENCIES =' + ' {reqs}\n'.format( + name=self.mk_name, + reqs=' '.join(self.pkg_req))) + lines.append(dependencies_line) + return lines + + def create_package_mk(self): + """ + Create the lines corresponding to the .mk file + """ + pkg_mk = '{name}.mk'.format(name=self.buildroot_name) + path_to_mk = os.path.join(self.pkg_dir, pkg_mk) + print('Creating {file}...'.format(file=path_to_mk)) + lines = self.__create_mk_header() + lines += self.__create_mk_download_info() + lines += self.__create_mk_setup() + lines += self.__create_mk_license() + + lines.append('\n') + lines.append('$(eval $(python-package))') + lines.append('\n') + with open(path_to_mk, 'w') as mk_file: + mk_file.writelines(lines) + + def create_hash_file(self): + """ + Create the lines corresponding to the .hash files + """ + pkg_hash = '{name}.hash'.format(name=self.buildroot_name) + path_to_hash = os.path.join(self.pkg_dir, pkg_hash) + print('Creating {filename}...'.format(filename=path_to_hash)) + lines = [] + if self.used_url['md5_digest']: + md5_comment = '# md5 from {url}, sha256 locally computed\n'.format( + url=self.metadata_url) + lines.append(md5_comment) + hash_line = '{method}\t{digest} {filename}\n'.format( + method='md5', + digest=self.used_url['md5_digest'], + filename=self.filename) + lines.append(hash_line) + digest = hashlib.sha256(self.as_string).hexdigest() + hash_line = '{method}\t{digest} {filename}\n'.format( + method='sha256', + digest=digest, + filename=self.filename) + lines.append(hash_line) + + with open(path_to_hash, 'w') as hash_file: + hash_file.writelines(lines) + + def create_config_in(self): + """ + Creates the Config.in file of a package + """ + path_to_config = os.path.join(self.pkg_dir, 'Config.in') + print('Creating {file}...'.format(file=path_to_config)) + lines = [] + config_line = 'config BR2_PACKAGE_{name}\n'.format( + name=self.mk_name) + lines.append(config_line) + + bool_line = '\tbool "{name}"\n'.format(name=self.buildroot_name) + lines.append(bool_line) + if self.pkg_req: + for dep in self.pkg_req: + dep_line = '\tselect BR2_PACKAGE_{req} # runtime\n'.format( + req=dep.upper().replace('-', '_')) + lines.append(dep_line) + + lines.append('\thelp\n') + + help_lines = textwrap.wrap(self.metadata['info']['summary'], + initial_indent='\t ', + subsequent_indent='\t ') + + # make sure a help text is terminated with a full stop + if help_lines[-1][-1] != '.': + help_lines[-1] += '.' + + # \t + two spaces is 3 char long + help_lines.append('') + help_lines.append('\t ' + self.metadata['info']['home_page']) + help_lines = map(lambda x: x + '\n', help_lines) + lines += help_lines + + with open(path_to_config, 'w') as config_file: + config_file.writelines(lines) + + +def main(): + # Building the parser + parser = argparse.ArgumentParser( + description="Creates buildroot packages from the metadata of " + "an existing PyPI packages and include it " + "in menuconfig") + parser.add_argument("packages", + help="list of packages to be created", + nargs='+') + parser.add_argument("-o", "--output", + help=""" + Output directory for packages. + Default is ./package + """, + default='./package') + + args = parser.parse_args() + packages = list(set(args.packages)) + + # tmp_path is where we'll extract the files later + tmp_prefix = 'scanpypi-' + pkg_folder = args.output + tmp_path = tempfile.mkdtemp(prefix=tmp_prefix) + try: + for real_pkg_name in packages: + package = BuildrootPackage(real_pkg_name, pkg_folder) + print('buildroot package name for {}:'.format(package.real_name), + package.buildroot_name) + # First we download the package + # Most of the info we need can only be found inside the package + print('Package:', package.buildroot_name) + print('Fetching package', package.real_name) + try: + package.fetch_package_info() + except (urllib2.URLError, urllib2.HTTPError): + continue + if package.metadata_name.lower() == 'setuptools': + # setuptools imports itself, that does not work very well + # with the monkey path at the begining + print('Error: setuptools cannot be built using scanPyPI') + continue + + try: + package.download_package() + except urllib2.HTTPError as error: + print('Error: {code} {reason}'.format(code=error.code, + reason=error.reason)) + print('Error downloading package :', package.buildroot_name) + print() + continue + + # extract the tarball + try: + package.extract_package(tmp_path) + except (tarfile.ReadError, zipfile.BadZipfile): + print('Error extracting package {}'.format(package.real_name)) + print() + continue + + # Loading the package install info from the package + try: + package.load_setup() + except ImportError as err: + if 'buildutils' in err.message: + print('This package needs buildutils') + else: + raise + continue + except AttributeError: + print('Error: Could not install package {pkg}'.format( + pkg=package.real_name)) + continue + + # Package requirement are an argument of the setup function + req_not_found = package.get_requirements(pkg_folder) + req_not_found = req_not_found.difference(packages) + + packages += req_not_found + if req_not_found: + print('Added packages \'{pkgs}\' as dependencies of {pkg}' + .format(pkgs=", ".join(req_not_found), + pkg=package.buildroot_name)) + print('Checking if package {name} already exists...'.format( + name=package.pkg_dir)) + try: + os.makedirs(package.pkg_dir) + except OSError as exception: + if exception.errno != errno.EEXIST: + print("ERROR: ", exception.message, file=sys.stderr) + continue + print('Error: Package {name} already exists' + .format(name=package.pkg_dir)) + del_pkg = raw_input( + 'Do you want to delete existing package ? [y/N]') + if del_pkg.lower() == 'y': + shutil.rmtree(package.pkg_dir) + os.makedirs(package.pkg_dir) + else: + continue + package.create_package_mk() + + package.create_hash_file() + + package.create_config_in() + print() + # printing an empty line for visual confort + finally: + shutil.rmtree(tmp_path) + +if __name__ == "__main__": + main() diff --git a/bsp/buildroot/support/scripts/size-stats b/bsp/buildroot/support/scripts/size-stats index 81d96caa..0ddcc079 100755 --- a/bsp/buildroot/support/scripts/size-stats +++ b/bsp/buildroot/support/scripts/size-stats @@ -66,7 +66,7 @@ def build_package_dict(builddir): filesdict = {} with open(os.path.join(builddir, "build", "packages-file-list.txt")) as filelistf: for l in filelistf.readlines(): - pkg, fpath = l.split(",") + pkg, fpath = l.split(",", 1) # remove the initial './' in each file path fpath = fpath.strip()[2:] fullpath = os.path.join(builddir, "target", fpath) diff --git a/bsp/buildroot/system/Config.in b/bsp/buildroot/system/Config.in index 2e14971b..353421a9 100644 --- a/bsp/buildroot/system/Config.in +++ b/bsp/buildroot/system/Config.in @@ -1,5 +1,35 @@ menu "System configuration" +choice + prompt "Root FS skeleton" + +config BR2_ROOTFS_SKELETON_DEFAULT + bool "default target skeleton" + help + Use default target skeleton + +config BR2_ROOTFS_SKELETON_CUSTOM + bool "custom target skeleton" + help + Use custom target skeleton. + +endchoice + +if BR2_ROOTFS_SKELETON_CUSTOM + +config BR2_ROOTFS_SKELETON_CUSTOM_PATH + string "custom target skeleton path" + help + Path to custom target skeleton. + +# dummy config so merged /usr workarounds can also be activated for +# custom rootfs skeleton +config BR2_ROOTFS_MERGED_USR + +endif + +if BR2_ROOTFS_SKELETON_DEFAULT + config BR2_TARGET_GENERIC_HOSTNAME string "System hostname" default "buildroot" @@ -18,6 +48,8 @@ config BR2_TARGET_GENERIC_ISSUE Leave empty to not create /etc/issue, or to keep the one from a custom skeleton. +endif + choice bool "Passwords encoding" default BR2_TARGET_GENERIC_PASSWD_MD5 @@ -74,6 +106,7 @@ config BR2_INIT_BUSYBOX config BR2_INIT_SYSV bool "systemV" + depends on BR2_USE_MMU # sysvinit select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # sysvinit select BR2_PACKAGE_INITSCRIPTS select BR2_PACKAGE_SYSVINIT @@ -94,13 +127,18 @@ config BR2_INIT_SYSTEMD depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 select BR2_ROOTFS_MERGED_USR select BR2_PACKAGE_SYSTEMD + select BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW -comment "systemd needs (e)glibc toolchain, headers >= 3.10" +comment "systemd needs a glibc toolchain, headers >= 3.10" depends on !(BR2_TOOLCHAIN_USES_GLIBC \ && BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10) config BR2_INIT_NONE bool "None" + help + Buildroot will not install any init system. You will + have to provide your own, either with a new package + or with a rootfs-overlay. endchoice @@ -158,33 +196,10 @@ config BR2_ROOTFS_STATIC_DEVICE_TABLE See package/makedevs/README for details on the usage and syntax of these files. -choice - prompt "Root FS skeleton" - -config BR2_ROOTFS_SKELETON_DEFAULT - bool "default target skeleton" +config BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES + bool "support extended attributes in device tables" help - Use default target skeleton - -config BR2_ROOTFS_SKELETON_CUSTOM - bool "custom target skeleton" - help - Use custom target skeleton. - -endchoice - -if BR2_ROOTFS_SKELETON_CUSTOM -config BR2_ROOTFS_SKELETON_CUSTOM_PATH - string "custom target skeleton path" - default "system/skeleton" - help - Path to custom target skeleton. - -# dummy config so merged /usr workarounds can also be activated for -# custom rootfs skeleton -config BR2_ROOTFS_MERGED_USR - -endif + Support extended attributes handling in device tables if BR2_ROOTFS_SKELETON_DEFAULT @@ -347,9 +362,6 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW read-only. If unsure, say Y. -endif # BR2_ROOTFS_SKELETON_DEFAULT - - config BR2_SYSTEM_DHCP string "Network interface to configure through DHCP" default "" @@ -369,11 +381,46 @@ comment "automatic network configuration via DHCP is not compatible with network comment "automatic network configuration via DHCP needs ifupdown or busybox" depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN) +endif # BR2_ROOTFS_SKELETON_DEFAULT + +config BR2_ENABLE_LOCALE_PURGE + bool "Purge unwanted locales" + default y + help + Explicitly specify what locales to install on target. If N + then all locales supported by packages are installed. + +config BR2_ENABLE_LOCALE_WHITELIST + string "Locales to keep" + default "C en_US" + depends on BR2_ENABLE_LOCALE_PURGE + help + Whitespace seperated list of locales to allow on target. + Locales not listed here will be removed from the target. + See 'locale -a' on your host for a list of locales available + on your build host, or have a look in /usr/share/locale in + the target file system for available locales. + + Notice that listing a locale here doesn't guarantee that it + will be available on the target - That purely depends on the + support for that locale in the selected packages. + +config BR2_GENERATE_LOCALE + string "Generate locale data" + default "" + depends on \ + (BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \ + BR2_TOOLCHAIN_USES_GLIBC + help + Generate support for a list of locales. Locales can be + specified with or without encoding, when no encoding is + specified, UTF-8 is assumed. Examples of locales: en_US, + fr_FR.UTF-8. + config BR2_TARGET_TZ_INFO bool "Install timezone info" - # No timezone for musl; only for uClibc or (e)glibc. - depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_GLIBC + select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_MUSL select BR2_PACKAGE_TZ if BR2_TOOLCHAIN_USES_UCLIBC help Say 'y' here to install timezone info. @@ -387,7 +434,7 @@ config BR2_TARGET_TZ_ZONELIST Space-separated list of time zones to compile. The value "default" includes all commonly used time zones. Note - that this set consumes around 5.5M for (e)glibc and 2.1M for uClibc. + that this set consumes around 5.5M for glibc and 2.1M for uClibc. The full list is the list of files in the time zone database source, not including the build and .tab files. @@ -445,6 +492,38 @@ config BR2_ROOTFS_POST_BUILD_SCRIPT argument. Make sure the exit code of those scripts are 0, otherwise make will stop after calling them. +config BR2_ROOTFS_POST_FAKEROOT_SCRIPT + string "Custom scripts to run inside the fakeroot environment" + default "" + help + Specify a space-separated list of scripts to be run at the end + of the fakeroot script right before the image(s) are actually + generated. + + This gives users the opportunity to do customisations of the + content of the rootfs, which would otherwise require root + rigths. + + These scripts are called with the target directory name as + first argument. The build will fail on the first scripts that + exits with a non-zero exit code. + + Note that Buildroot already provides mechanisms to customise + the content of the rootfs: + + - BR2_ROOTFS_STATIC_DEVICE_TABLE + to create arbitrary entries statically in /dev + + - BR2_ROOTFS_DEVICE_TABLE + to set arbitrary permissions as well as extended attributes + (such as capabilities) on files and directories, + + - BR2_ROOTFS_USERS_TABLES: + to create arbitrary users and their home directories + + It is highly recommended to use those mechanisms if possible, + rather than using custom fakeroot scripts. + config BR2_ROOTFS_POST_IMAGE_SCRIPT string "Custom scripts to run after creating filesystem images" default "" @@ -464,8 +543,10 @@ config BR2_ROOTFS_POST_IMAGE_SCRIPT source directory as the current directory. config BR2_ROOTFS_POST_SCRIPT_ARGS - string "Extra post-{build,image} arguments" - depends on BR2_ROOTFS_POST_BUILD_SCRIPT != "" || BR2_ROOTFS_POST_IMAGE_SCRIPT != "" + string "Extra arguments passed to custom scripts" + depends on BR2_ROOTFS_POST_BUILD_SCRIPT != "" \ + || BR2_ROOTFS_POST_FAKEROOT_SCRIPT != "" \ + || BR2_ROOTFS_POST_IMAGE_SCRIPT != "" help Pass these additional arguments to each post-build or post-image scripts. diff --git a/bsp/buildroot/system/device_table_dev.txt b/bsp/buildroot/system/device_table_dev.txt index c4257a6a..4f0b6377 100644 --- a/bsp/buildroot/system/device_table_dev.txt +++ b/bsp/buildroot/system/device_table_dev.txt @@ -31,6 +31,7 @@ /dev/ttyAM c 666 0 0 204 16 0 1 3 /dev/ttyCPM c 666 0 0 204 46 0 1 4 /dev/ttyAMA c 666 0 0 204 64 0 1 4 +/dev/ttyBF c 666 0 0 204 64 0 1 2 /dev/ttySAC c 666 0 0 204 64 0 1 4 /dev/ttySC c 666 0 0 204 8 0 1 8 /dev/ttyPSC c 666 0 0 204 148 0 1 4 diff --git a/bsp/buildroot/system/skeleton/etc/mtab b/bsp/buildroot/system/skeleton/etc/mtab index 4c0a0948..5c4677a6 120000 --- a/bsp/buildroot/system/skeleton/etc/mtab +++ b/bsp/buildroot/system/skeleton/etc/mtab @@ -1 +1 @@ -/proc/mounts \ No newline at end of file +../proc/self/mounts \ No newline at end of file diff --git a/bsp/buildroot/system/skeleton/etc/network/if-pre-up.d/.empty b/bsp/buildroot/system/skeleton/etc/network/if-pre-up.d/.empty deleted file mode 100644 index e69de29b..00000000 diff --git a/bsp/buildroot/toolchain/Config.in b/bsp/buildroot/toolchain/Config.in index fc30c6e5..de015856 100644 --- a/bsp/buildroot/toolchain/Config.in +++ b/bsp/buildroot/toolchain/Config.in @@ -15,10 +15,11 @@ config BR2_TOOLCHAIN_USES_GLIBC select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS_NPTL select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS - select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_SUPPORTS_PIE config BR2_TOOLCHAIN_USES_UCLIBC bool + select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS config BR2_TOOLCHAIN_USES_MUSL bool @@ -27,7 +28,7 @@ config BR2_TOOLCHAIN_USES_MUSL select BR2_TOOLCHAIN_HAS_THREADS select BR2_TOOLCHAIN_HAS_THREADS_DEBUG select BR2_TOOLCHAIN_HAS_THREADS_NPTL - select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_SUPPORTS_PIE choice prompt "Toolchain type" @@ -40,8 +41,11 @@ choice config BR2_TOOLCHAIN_BUILDROOT bool "Buildroot toolchain" - depends on !BR2_bfin select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS + depends on !BR2_bf606 + depends on !BR2_bf607 + depends on !BR2_bf608 + depends on !BR2_bf609 config BR2_TOOLCHAIN_EXTERNAL bool "External toolchain" diff --git a/bsp/buildroot/toolchain/helpers.mk b/bsp/buildroot/toolchain/helpers.mk index ee878e89..3991bc1c 100644 --- a/bsp/buildroot/toolchain/helpers.mk +++ b/bsp/buildroot/toolchain/helpers.mk @@ -6,62 +6,15 @@ # toolchain logic, and the glibc package, so care must be taken when # changing this function. # -# Most toolchains (CodeSourcery ones) have their libraries either in -# /lib or /usr/lib relative to their ARCH_SYSROOT_DIR, so we search -# libraries in: -# -# $${ARCH_LIB_DIR} -# usr/$${ARCH_LIB_DIR} -# -# Buildroot toolchains, however, have basic libraries in /lib, and -# libstdc++/libgcc_s in /usr//lib(64), so we also need to -# search libraries in: -# -# usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/$${ARCH_LIB_DIR} -# -# Linaro toolchains have most libraries in lib//, so we -# need to search libraries in: -# -# $${ARCH_LIB_DIR}/$(TOOLCHAIN_EXTERNAL_PREFIX) -# -# And recent Linaro toolchains have the GCC support libraries -# (libstdc++, libgcc_s, etc.) into a separate directory, outside of -# the sysroot, that we called the "SUPPORT_LIB_DIR", into which we -# need to search as well. -# -# Thanks to ARCH_LIB_DIR we also take into account toolchains that -# have the libraries in lib64 and usr/lib64. -# -# Please be very careful to check the major toolchain sources: -# Buildroot, Crosstool-NG, CodeSourcery and Linaro before doing any -# modification on the below logic. -# -# $1: arch specific sysroot directory -# $2: support libraries directory (can be empty) -# $3: library directory ('lib' or 'lib64') from which libraries must be copied -# $4: library name -# $5: destination directory of the libary, relative to $(TARGET_DIR) +# $1: library name # copy_toolchain_lib_root = \ - ARCH_SYSROOT_DIR="$(strip $1)"; \ - SUPPORT_LIB_DIR="$(strip $2)" ; \ - ARCH_LIB_DIR="$(strip $3)" ; \ - LIB="$(strip $4)"; \ - DESTDIR="$(strip $5)" ; \ + LIB="$(strip $1)"; \ \ - for dir in \ - $${ARCH_SYSROOT_DIR}/$${ARCH_LIB_DIR}/$(TOOLCHAIN_EXTERNAL_PREFIX) \ - $${ARCH_SYSROOT_DIR}/usr/$(TOOLCHAIN_EXTERNAL_PREFIX)/$${ARCH_LIB_DIR} \ - $${ARCH_SYSROOT_DIR}/$${ARCH_LIB_DIR} \ - $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \ - $${SUPPORT_LIB_DIR} ; do \ - LIBPATHS=`find $${dir} -maxdepth 1 -name "$${LIB}" 2>/dev/null` ; \ - if test -n "$${LIBPATHS}" ; then \ - break ; \ - fi \ - done ; \ - mkdir -p $(TARGET_DIR)/$${DESTDIR}; \ + LIBPATHS=`find $(STAGING_DIR)/ -name "$${LIB}" 2>/dev/null` ; \ for LIBPATH in $${LIBPATHS} ; do \ + DESTDIR=`echo $${LIBPATH} | sed "s,^$(STAGING_DIR)/,," | xargs dirname` ; \ + mkdir -p $(TARGET_DIR)/$${DESTDIR}; \ while true ; do \ LIBNAME=`basename $${LIBPATH}`; \ LIBDIR=`dirname $${LIBPATH}` ; \ @@ -97,22 +50,10 @@ copy_toolchain_lib_root = \ # corresponding architecture variants), and we don't want to import # them. # -# Then, we need to support two types of multilib toolchains: +# Then, if the selected architecture variant is not the default one +# (i.e, if SYSROOT_DIR != ARCH_SYSROOT_DIR), then we : # -# - The toolchains that have nested sysroots: a main sysroot, and -# then additional sysroots available as subdirectories of the main -# one. This is for example used by Sourcery CodeBench toolchains. -# -# - The toolchains that have side-by-side sysroots. Each sysroot is a -# complete one, they simply leave one next to each other. This is -# for example used by MIPS Codescape toolchains. -# -# So, we first detect if the selected architecture variant is not the -# default one (i.e, if SYSROOT_DIR != ARCH_SYSROOT_DIR). -# -# If we are in the situation of a nested sysroot, we: -# -# * If needed, import the header files from the default architecture +# * Import the header files from the default architecture # variant. Header files are typically shared between the sysroots # for the different architecture variants. If we use the # non-default one, header files were not copied by the previous @@ -126,14 +67,10 @@ copy_toolchain_lib_root = \ # non-default architecture variant is used. Without this, the # compiler fails to find libraries and headers. # -# If we are in the situation of a side-by-side sysroot, we: -# -# * Create a symbolic link -# -# Finally, some toolchains (i.e Linaro binary toolchains) store -# support libraries (libstdc++, libgcc_s) outside of the sysroot, so -# we simply copy all the libraries from the "support lib directory" -# into our sysroot. +# Some toolchains (i.e Linaro binary toolchains) store support +# libraries (libstdc++, libgcc_s) outside of the sysroot, so we simply +# copy all the libraries from the "support lib directory" into our +# sysroot. # # Note that the 'locale' directories are not copied. They are huge # (400+MB) in CodeSourcery toolchains, and they are not really useful. @@ -158,25 +95,18 @@ copy_toolchain_sysroot = \ $${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \ fi ; \ done ; \ - SYSROOT_DIR_CANON=`readlink -f $${SYSROOT_DIR}` ; \ - ARCH_SYSROOT_DIR_CANON=`readlink -f $${ARCH_SYSROOT_DIR}` ; \ - if [ $${SYSROOT_DIR_CANON} != $${ARCH_SYSROOT_DIR_CANON} ] ; then \ - relpath="./" ; \ - if [ $${ARCH_SYSROOT_DIR_CANON:0:$${\#SYSROOT_DIR_CANON}} == $${SYSROOT_DIR_CANON} ] ; then \ - if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \ - cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \ - fi ; \ - mkdir -p `dirname $(STAGING_DIR)/$${ARCH_SUBDIR}` ; \ - nbslashs=`printf $${ARCH_SUBDIR} | sed 's%[^/]%%g' | wc -c` ; \ - for slash in `seq 1 $${nbslashs}` ; do \ - relpath=$${relpath}"../" ; \ - done ; \ - ln -s $${relpath} $(STAGING_DIR)/$${ARCH_SUBDIR} ; \ - echo "Symlinking $(STAGING_DIR)/$${ARCH_SUBDIR} -> $${relpath}" ; \ - elif [ `dirname $${ARCH_SYSROOT_DIR_CANON}` == `dirname $${SYSROOT_DIR_CANON}` ] ; then \ - ln -snf $${relpath} $(STAGING_DIR)/`basename $${ARCH_SYSROOT_DIR_CANON}` ; \ - echo "Symlinking $(STAGING_DIR)/`basename $${ARCH_SYSROOT_DIR_CANON}` -> $${relpath}" ; \ + if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \ + if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \ + cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \ fi ; \ + mkdir -p `dirname $(STAGING_DIR)/$${ARCH_SUBDIR}` ; \ + relpath="./" ; \ + nbslashs=`printf $${ARCH_SUBDIR} | sed 's%[^/]%%g' | wc -c` ; \ + for slash in `seq 1 $${nbslashs}` ; do \ + relpath=$${relpath}"../" ; \ + done ; \ + ln -s $${relpath} $(STAGING_DIR)/$${ARCH_SUBDIR} ; \ + echo "Symlinking $(STAGING_DIR)/$${ARCH_SUBDIR} -> $${relpath}" ; \ fi ; \ if test -n "$${SUPPORT_LIB_DIR}" ; then \ cp -a $${SUPPORT_LIB_DIR}/* $(STAGING_DIR)/lib/ ; \ @@ -341,8 +271,7 @@ check_uclibc = \ $(call check_uclibc_feature,__UCLIBC_HAS_WCHAR__,BR2_USE_WCHAR,$${UCLIBC_CONFIG_FILE},Wide char support) ;\ $(call check_uclibc_feature,__UCLIBC_HAS_THREADS__,BR2_TOOLCHAIN_HAS_THREADS,$${UCLIBC_CONFIG_FILE},Thread support) ;\ $(call check_uclibc_feature,__PTHREADS_DEBUG_SUPPORT__,BR2_TOOLCHAIN_HAS_THREADS_DEBUG,$${UCLIBC_CONFIG_FILE},Thread debugging support) ;\ - $(call check_uclibc_feature,__UCLIBC_HAS_THREADS_NATIVE__,BR2_TOOLCHAIN_HAS_THREADS_NPTL,$${UCLIBC_CONFIG_FILE},NPTL thread support) ;\ - $(call check_uclibc_feature,__UCLIBC_HAS_SSP__,BR2_TOOLCHAIN_HAS_SSP,$${UCLIBC_CONFIG_FILE},Stack Smashing Protection support) + $(call check_uclibc_feature,__UCLIBC_HAS_THREADS_NATIVE__,BR2_TOOLCHAIN_HAS_THREADS_NPTL,$${UCLIBC_CONFIG_FILE},NPTL thread support) # # Check that the Buildroot configuration of the ABI matches the @@ -381,6 +310,24 @@ check_cplusplus = \ exit 1 ; \ fi +# +# +# Check that the external toolchain supports Fortran +# +# $1: cross-gfortran path +# +check_fortran = \ + __CROSS_FC=$(strip $1) ; \ + __o=$(BUILD_DIR)/.br-toolchain-test-fortran.tmp ; \ + printf 'program hello\n\tprint *, "Hello Fortran!\\n"\nend program hello\n' | \ + $${__CROSS_FC} -x f95 -o $${__o} - ; \ + if test $$? -ne 0 ; then \ + rm -f $${__o}* ; \ + echo "Fortran support is selected but is not available in external toolchain" ; \ + exit 1 ; \ + fi ; \ + rm -f $${__o}* \ + # # Check that the cross-compiler given in the configuration exists # @@ -395,9 +342,12 @@ check_cross_compiler_exists = \ fi # -# Check for toolchains known not to work with Buildroot. For now, we -# only check for Angstrom toolchains, by looking at the vendor part of -# the host tuple. +# Check for toolchains known not to work with Buildroot. +# - For the Angstrom toolchains, we check by looking at the vendor part of +# the host tuple. +# - Exclude distro-class toolchains which are not relocatable. +# - Exclude broken toolchains which return "libc.a" with -print-file-name. +# - Exclude toolchains which doesn't support --sysroot option. # # $1: cross-gcc path # @@ -418,8 +368,36 @@ check_unusable_toolchain = \ echo "and contain a lot of pre-built libraries that would conflict with"; \ echo "the ones Buildroot wants to build."; \ exit 1; \ + fi; \ + libc_a_path=`$${__CROSS_CC} -print-file-name=libc.a` ; \ + if test "$${libc_a_path}" = "libc.a" ; then \ + echo "Unable to detect the toolchain sysroot, Buildroot cannot use this toolchain." ; \ + exit 1 ; \ + fi ; \ + sysroot_dir="$(call toolchain_find_sysroot,$${__CROSS_CC})" ; \ + if test -z "$${sysroot_dir}" ; then \ + echo "External toolchain doesn't support --sysroot. Cannot use." ; \ + exit 1 ; \ fi +# +# Check if the toolchain has SSP (stack smashing protector) support +# +# $1: cross-gcc path +# +check_toolchain_ssp = \ + __CROSS_CC=$(strip $1) ; \ + __HAS_SSP=`echo 'void main(){}' | $${__CROSS_CC} -fstack-protector -x c - -o $(BUILD_DIR)/.br-toolchain-test.tmp >/dev/null 2>&1 && echo y` ; \ + if [ "$(BR2_TOOLCHAIN_HAS_SSP)" != "y" -a "$${__HAS_SSP}" = "y" ] ; then \ + echo "SSP support available in this toolchain, please enable BR2_TOOLCHAIN_EXTERNAL_HAS_SSP" ; \ + exit 1 ; \ + fi ; \ + if [ "$(BR2_TOOLCHAIN_HAS_SSP)" = "y" -a "$${__HAS_SSP}" != "y" ] ; then \ + echo "SSP support not available in this toolchain, please disable BR2_TOOLCHAIN_EXTERNAL_HAS_SSP" ; \ + exit 1 ; \ + fi ; \ + rm -f $(BUILD_DIR)/.br-toolchain-test.tmp* + # # Generate gdbinit file for use with Buildroot # diff --git a/bsp/buildroot/toolchain/toolchain-buildroot/Config.in b/bsp/buildroot/toolchain/toolchain-buildroot/Config.in index cbeb0305..0b97bbf6 100644 --- a/bsp/buildroot/toolchain/toolchain-buildroot/Config.in +++ b/bsp/buildroot/toolchain/toolchain-buildroot/Config.in @@ -24,43 +24,23 @@ choice prompt "C library" default BR2_TOOLCHAIN_UCLIBC default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_aarch64 || BR2_aarch64_be \ - || BR2_microblaze || BR2_powerpc64 + || BR2_powerpc64 config BR2_TOOLCHAIN_BUILDROOT_UCLIBC - bool "uClibc" + bool "uClibc-ng" select BR2_TOOLCHAIN_USES_UCLIBC depends on BR2_arcle || BR2_arceb || BR2_arm || BR2_armeb || \ - BR2_bfin || BR2_i386 || BR2_m68k || \ + BR2_bfin || BR2_i386 || BR2_m68k || BR2_microblaze || \ BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \ BR2_powerpc || BR2_sh2a || BR2_sh4 || BR2_sh4eb || \ BR2_sparc || BR2_xtensa || BR2_x86_64 # Unsupported for MIPS R6 depends on !BR2_mips_32r6 && !BR2_mips_64r6 help - This option selects uClibc as the C library for the + This option selects uClibc-ng as the C library for the cross-compilation toolchain. - http://uclibc.org - -config BR2_TOOLCHAIN_BUILDROOT_EGLIBC - bool "eglibc" - depends on BR2_arm || BR2_armeb || BR2_aarch64 || \ - BR2_aarch64_be || BR2_i386 || BR2_mips || \ - BR2_mipsel || BR2_mips64 || BR2_mips64el || \ - BR2_powerpc || BR2_sh || BR2_sh64 || \ - BR2_sparc || BR2_x86_64 || BR2_microblaze || \ - BR2_powerpc64 - depends on BR2_USE_MMU - depends on !BR2_STATIC_LIBS - depends on BR2_DEPRECATED_SINCE_2015_08 - select BR2_TOOLCHAIN_USES_GLIBC - # our eglibc.mk enables RPC support - select BR2_TOOLCHAIN_HAS_NATIVE_RPC - help - This option selects eglibc as the C library for the - cross-compilation toolchain. - - http://eglibc.org + http://uclibc-ng.org config BR2_TOOLCHAIN_BUILDROOT_GLIBC bool "glibc" @@ -68,9 +48,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC BR2_aarch64_be || BR2_i386 || BR2_mips || \ BR2_mipsel || BR2_mips64 || BR2_mips64el|| \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ - BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \ - BR2_nios2 + BR2_sh || BR2_sh64 || BR2_sparc64 || \ + BR2_x86_64 || BR2_microblaze || BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on !BR2_powerpc_SPE @@ -83,17 +62,21 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC http://www.gnu.org/software/libc/ -comment "(e)glibc only available with shared lib support" +comment "glibc only available with shared lib support" + depends on BR2_USE_MMU depends on BR2_STATIC_LIBS config BR2_TOOLCHAIN_BUILDROOT_MUSL - bool "musl (experimental)" + bool "musl" depends on BR2_aarch64 || BR2_arm || BR2_armeb || BR2_i386 || \ BR2_microblaze || BR2_mips || BR2_mipsel || BR2_powerpc || \ BR2_sh || BR2_x86_64 depends on !BR2_powerpc_SPE # not supported, build breaks # Unsupported for MIPS R6 depends on !BR2_mips_32r6 && !BR2_mips_64r6 + # sh2 nommu is supported by musl, but we don't have support + # for it in Buildroot. + depends on BR2_USE_MMU select BR2_TOOLCHAIN_USES_MUSL help This option selects musl as the C library for the @@ -104,13 +87,11 @@ endchoice config BR2_TOOLCHAIN_BUILDROOT_LIBC string default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC - # Both glibc and eglibc are handled by the package called - # 'glibc' - default "glibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC default "glibc" if BR2_TOOLCHAIN_BUILDROOT_GLIBC default "musl" if BR2_TOOLCHAIN_BUILDROOT_MUSL source "package/linux-headers/Config.in" +source "package/musl/Config.in" source "package/uclibc/Config.in" source "package/glibc/Config.in" source "package/binutils/Config.in.host" diff --git a/bsp/buildroot/toolchain/toolchain-common.in b/bsp/buildroot/toolchain/toolchain-common.in index 1b7b4166..03fa880e 100644 --- a/bsp/buildroot/toolchain/toolchain-common.in +++ b/bsp/buildroot/toolchain/toolchain-common.in @@ -5,6 +5,10 @@ # so put it here instead source "package/gdb/Config.in.host" +# https://sourceware.org/bugzilla/show_bug.cgi?id=19405 +config BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 + bool + config BR2_TOOLCHAIN_HAS_NATIVE_RPC bool @@ -17,6 +21,9 @@ config BR2_ENABLE_LOCALE config BR2_INSTALL_LIBSTDCPP bool +config BR2_TOOLCHAIN_HAS_FORTRAN + bool + config BR2_TOOLCHAIN_HAS_THREADS bool @@ -32,38 +39,8 @@ config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS config BR2_TOOLCHAIN_HAS_SSP bool -config BR2_ENABLE_LOCALE_PURGE - bool "Purge unwanted locales" - help - Explicitly specify what locales to install on target. If N - then all locales supported by packages are installed. - -config BR2_ENABLE_LOCALE_WHITELIST - string "Locales to keep" - default "C en_US de fr" - depends on BR2_ENABLE_LOCALE_PURGE - help - Whitespace seperated list of locales to allow on target. - Locales not listed here will be removed from the target. - See 'locale -a' on your host for a list of locales available - on your build host, or have a look in /usr/share/locale in - the target file system for available locales. - - Notice that listing a locale here doesn't guarantee that it - will be available on the target - That purely depends on the - support for that locale in the selected packages. - -config BR2_GENERATE_LOCALE - string "Generate locale data" - default "" - depends on \ - (BR2_TOOLCHAIN_BUILDROOT_UCLIBC && BR2_ENABLE_LOCALE) || \ - BR2_TOOLCHAIN_USES_GLIBC - help - Generate support for a list of locales. Locales can be - specified with or without encoding, when no encoding is - specified, UTF-8 is assumed. Examples of locales: en_US, - fr_FR.UTF-8. +config BR2_TOOLCHAIN_SUPPORTS_PIE + bool config BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY bool "Copy gconv libraries" @@ -233,10 +210,25 @@ config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 +config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 + bool + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 + +config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 + bool + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 + +config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 + bool + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 + # This order guarantees that the highest version is set, as kconfig # stops affecting a value on the first matching default. config BR2_TOOLCHAIN_HEADERS_AT_LEAST string + default "4.7" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 + default "4.6" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 + default "4.5" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 default "4.4" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 default "4.3" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3 default "4.2" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 @@ -295,10 +287,15 @@ config BR2_TOOLCHAIN_GCC_AT_LEAST_5 bool select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 +config BR2_TOOLCHAIN_GCC_AT_LEAST_6 + bool + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + # This order guarantees that the highest version is set, as kconfig # stops affecting a value on the first matching default. config BR2_TOOLCHAIN_GCC_AT_LEAST string + default "6" if BR2_TOOLCHAIN_GCC_AT_LEAST_6 default "5" if BR2_TOOLCHAIN_GCC_AT_LEAST_5 default "4.9" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 default "4.8" if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 @@ -311,8 +308,8 @@ config BR2_TOOLCHAIN_GCC_AT_LEAST config BR2_TOOLCHAIN_HAS_SYNC_1 bool default y - depends on !BR2_x86_i386 depends on !BR2_bfin + depends on !BR2_m68k_cf depends on !BR2_microblaze depends on !BR2_sparc depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT) @@ -324,8 +321,8 @@ config BR2_TOOLCHAIN_HAS_SYNC_2 config BR2_TOOLCHAIN_HAS_SYNC_4 bool default y + depends on !BR2_m68k_cf depends on !BR2_sparc - depends on !BR2_x86_i386 depends on !(BR2_arc && !BR2_ARC_ATOMIC_EXT) # The availability of __sync for 8-byte types on ARM is somewhat @@ -357,7 +354,6 @@ config BR2_TOOLCHAIN_X86_HAS_SYNC_8 bool default y depends on BR2_i386 - depends on !BR2_x86_i386 depends on !BR2_x86_i486 depends on !BR2_x86_c3 depends on !BR2_x86_winchip_c6 @@ -373,16 +369,44 @@ config BR2_TOOLCHAIN_HAS_SYNC_8 default y if BR2_TOOLCHAIN_ARM_HAS_SYNC_8 default y if BR2_TOOLCHAIN_X86_HAS_SYNC_8 +# libatomic is available since gcc 4.8, when thread support is +# enabled. Also, libatomic doesn't recognize "uclinux" as a valid OS +# part of the tuple, and is therefore not build on uclinux targets, +# which is why BR2_BINFMT_FLAT configurations are excluded. +config BR2_TOOLCHAIN_HAS_LIBATOMIC + bool + default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && \ + BR2_TOOLCHAIN_HAS_THREADS && \ + !BR2_BINFMT_FLAT + # __atomic intrinsics are available: # - with gcc 4.8, either through built-ins or libatomic, on all -# architectures +# architectures. Since we don't want to separate the cases where +# libatomic is needed vs. not needed, we simplify thing and only +# support situations where libatomic is available, even if on some +# architectures libatomic is not strictly needed as all __atomic +# intrinsics might be built-in. The only case where libatomic is +# missing entirely is when the toolchain does not have support for +# threads. However, a package that does not need threads but still +# uses atomics is quite a corner case, which does not warrant the +# added complexity. # - with gcc 4.7, libatomic did not exist, so only built-ins are # available. This means that __atomic can only be used in a subset # of the architectures config BR2_TOOLCHAIN_HAS_ATOMIC bool - default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + default y if BR2_TOOLCHAIN_HAS_LIBATOMIC default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_arm default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_armeb default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_xtensa default y if BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 && BR2_ARCH_IS_64 + +# - libquadmath is not needed/available on all architectures (but gcc +# correctly handles this already). +# - At least, libquadmath is available on: +# - i*86 +# - x86_64 +# - When available, libquadmath requires wchar support. +config BR2_TOOLCHAIN_HAS_LIBQUADMATH + bool + default y if BR2_i386 || BR2_x86_64 diff --git a/bsp/buildroot/toolchain/toolchain-external/Config.in b/bsp/buildroot/toolchain/toolchain-external/Config.in index 2ee4c0fd..63b77127 100644 --- a/bsp/buildroot/toolchain/toolchain-external/Config.in +++ b/bsp/buildroot/toolchain/toolchain-external/Config.in @@ -3,7 +3,7 @@ if BR2_TOOLCHAIN_EXTERNAL choice prompt "Toolchain" -comment "(e)glibc toolchains only available with shared lib support" +comment "glibc toolchains only available with shared lib support" depends on BR2_STATIC_LIBS comment "Linaro toolchains available for Cortex-A + EABIhf" @@ -22,10 +22,12 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM depends on BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN help Linaro toolchain for the ARM architecture. It uses Linaro GCC 2014.09 (based on gcc 4.9), Linaro GDB 2013.10 (based on @@ -37,20 +39,22 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM # See the note above. config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM - bool "Linaro ARM 2015.11" + bool "Linaro ARM 2016.02" depends on BR2_arm depends on BR2_ARM_CPU_ARMV7A depends on BR2_HOSTARCH = "x86_64" depends on BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_TOOLCHAIN_HAS_FORTRAN help Linaro toolchain for the ARM architecture. It uses Linaro - GCC 2015.08 (based on gcc 5.1), Linaro GDB 2015.08 (based on + GCC 2016.02 (based on gcc 5.3), Linaro GDB 2016.02 (based on GDB 7.10), glibc 2.21, Binutils 2015.10 (based on 2.25). It generates code that runs on all Cortex-A profile devices, but tuned for the Cortex-A9. The code generated is Thumb 2, @@ -66,10 +70,12 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB depends on BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN help Linaro toolchain for the ARM big endian architecture. It uses Linaro GCC 2014.09 (based on gcc 4.9), Linaro GDB @@ -81,21 +87,22 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB # See the note above. config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB - bool "Linaro armeb 2015.11" + bool "Linaro armeb 2016.02" depends on BR2_armeb depends on BR2_ARM_CPU_ARMV7A depends on BR2_HOSTARCH = "x86_64" depends on BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 select BR2_TOOLCHAIN_GCC_AT_LEAST_5 help Linaro toolchain for the ARM big endian architecture. It - uses Linaro GCC 2015.08 (based on gcc 5.1), Linaro GDB - 2015.08 (based on GDB 7.10), glibc 2.21, Binutils 2015.10 + uses Linaro GCC 2016.02 (based on gcc 5.3), Linaro GDB + 2016.02 (based on GDB 7.10), glibc 2.21, Binutils 2015.10 (based on 2.25). It generates code that runs on all Cortex-A profile devices, but tuned for the Cortex-A9. The code generated is Thumb 2, with the hard floating point calling @@ -108,6 +115,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM depends on BR2_ARM_EABI depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS @@ -143,6 +151,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A depends on BR2_ARM_CPU_HAS_VFPV3 depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS @@ -166,6 +175,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE depends on BR2_ARM_EABI depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS @@ -178,22 +188,23 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE This toolchain uses software-floating point. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS - bool "Sourcery CodeBench MIPS 2015.11" + bool "Sourcery CodeBench MIPS 2016.05" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_mips_32r2 || BR2_mips_64r2 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on !BR2_MIPS_NABI32 depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 select BR2_TOOLCHAIN_GCC_AT_LEAST_5 help Sourcery CodeBench toolchain for the MIPS architecture, from - Mentor Graphics. It uses gcc 5.2, binutils 2.25.51, glibc - 2.22, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.2. It + Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, glibc + 2.23, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.4.1. It has support for the following variants: - MIPS32r2 - Big-Endian, 2008 NaN, O32 Select MIPS (big endian) core @@ -269,167 +280,158 @@ comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 an depends on !BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS - bool "Codescape IMG GNU Linux Toolchain 2015.06" + bool "Codescape IMG GNU Linux Toolchain 2016.05" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" - depends on !BR2_MIPS_SOFT_FLOAT - depends on BR2_mips_32r6 || BR2_mips_64r6 + depends on BR2_mips_32r6 || (BR2_mips_64r6 && !BR2_MIPS_SOFT_FLOAT) select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN help - Codescape IMG GNU Linux Toolchain 2015.06 for the MIPS + Codescape IMG GNU Linux Toolchain 2015.10 for the MIPS architecture, from Imagination Technologies. It uses gcc 4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel headers 4.0. It has support for the following variants: - - MIPS32r6 - Big-Endian, o32 + - MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI Select 'MIPS (big endian)' Target Architecture Select 'mips 32r6' Target Architecture Variant - - MIPS32r6 - Little-Endian, o32 + Disable 'Use soft-float' + - MIPS32r6 - Big-Endian, Soft-Float, 2008 NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI Select 'MIPS (little endian)' Target Architecture Select 'mips 32r6' Target Architecture Variant - - MIPS32r6 - Little-Endian, o32, microMIPS + Disable 'Use soft-float' + - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI Select 'MIPS (little endian)' Target Architecture Select 'mips 32r6' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Disable 'Use soft-float' Set BR2_TARGET_OPTIMIZATION to '-mmicromips' - - MIPS64r6 - Big-Endian, n32 + - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Enable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mmicromips' + - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n32 ABI Select 'MIPS64 (big endian)' Target Architecture Select 'mips 64r6' Target Architecture Variant Select 'n32' Target ABI - - MIPS64r6 - Little-Endian, n32 + Disable 'Use soft-float' + - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n32 ABI Select 'MIPS64 (little endian)' Target Architecture Select 'mips 64r6' Target Architecture Variant Select 'n32' Target ABI - - MIPS64r6 - Big-Endian, n64 + Disable 'Use soft-float' + - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n64 ABI Select 'MIPS64 (big endian)' Target Architecture Select 'mips 64r6' Target Architecture Variant Select 'n64' Target ABI - - MIPS64r6 - Little-Endian, n64 + Disable 'Use soft-float' + - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n64 ABI Select 'MIPS64 (little endian)' Target Architecture Select 'mips 64r6' Target Architecture Variant Select 'n64' Target ABI - + Disable 'Use soft-float' config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS - bool "Codescape MTI GNU Linux Toolchain 2015.06" + bool "Codescape MTI GNU Linux Toolchain 2016.05" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" - depends on !BR2_MIPS_SOFT_FLOAT - depends on BR2_mips_32r2 || BR2_mips_64r2 + depends on BR2_mips_32r2 || (BR2_mips_64r2 && !BR2_MIPS_SOFT_FLOAT) select BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN help - Codescape MTI GNU Linux Toolchain 2015.06 for the MIPS + Codescape MTI GNU Linux Toolchain 2015.10 for the MIPS architecture, from Imagination Technologies. It uses gcc 4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel headers 4.0. It has support for the following variants: - - MIPS32r2 - Big-Endian, o32 + - MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI Select 'MIPS (big endian)' Target Architecture Select 'mips 32r2' Target Architecture Variant - - MIPS32r2 - Little-Endian, o32 - Select 'MIPS (little endian)' Target Architecture - Select 'mips 32r2' Target Architecture Variant - - MIPS32r2 - Big-Endian, 2008 NaN, o32 + Disable 'Use soft-float' + - MIPS32r2 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI Select 'MIPS (big endian)' Target Architecture Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' Set BR2_TARGET_OPTIMIZATION to '-mnan=2008' - - MIPS32r2 - Little-Endian, 2008 NaN, o32 + - MIPS32r2 - Big-Endian, Soft-Float, Legacy NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r2 - Little-Endian, Hard-Float, Legacy NaN, o32 ABI Select 'MIPS (little endian)' Target Architecture Select 'mips 32r2' Target Architecture Variant - Set BR2_TARGET_OPTIMIZATION to '-mnan=2008' - - MIPS32r2 - Little-Endian, o32, microMIPS + Disable 'Use soft-float' + - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI Select 'MIPS (little endian)' Target Architecture Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mnan=2008' + - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Enable 'Use soft-float' Set BR2_TARGET_OPTIMIZATION to '-mmicromips' - - MIPS64r2 - Big-Endian, n32 + - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mmicromips' + - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n32 ABI Select 'MIPS64 (big endian)' Target Architecture Select 'mips 64r2' Target Architecture Variant Select 'n32' Target ABI - - MIPS64r2 - Little-Endian, n32 + Disable 'Use soft-float' + - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n32 ABI Select 'MIPS64 (little endian)' Target Architecture Select 'mips 64r2' Target Architecture Variant Select 'n32' Target ABI - - MIPS64r2 - Big-Endian, n64 + Disable 'Use soft-float' + - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n64 ABI Select 'MIPS64 (big endian)' Target Architecture Select 'mips 64r2' Target Architecture Variant Select 'n64' Target ABI - - MIPS64r2 - Little-Endian, n64 + Disable 'Use soft-float' + - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n64 ABI Select 'MIPS64 (little endian)' Target Architecture Select 'mips 64r2' Target Architecture Variant Select 'n64' Target ABI + Disable 'Use soft-float' config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII - bool "Sourcery CodeBench Nios-II 2015.11" + bool "Sourcery CodeBench Nios-II 2016.05" depends on BR2_nios2 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # based-on binutils-2.25.1 help Sourcery CodeBench toolchain for the Nios-II architecture, - from Mentor Graphics. It uses gcc 5.2, binutils 2.25.51, - glibc 2.22, gdb 7.10.50 and kernel headers 4.2. - -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 - bool "Sourcery CodeBench PowerPC 2012.03 (e500v2 only)" - depends on BR2_powerpc - depends on BR2_powerpc_8548 # e500v2 support only - depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" - depends on !BR2_STATIC_LIBS - select BR2_TOOLCHAIN_EXTERNAL_GLIBC - select BR2_TOOLCHAIN_HAS_NATIVE_RPC - select BR2_INSTALL_LIBSTDCPP - select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 - help - Sourcery CodeBench toolchain for the PowerPC architecture, - from Mentor Graphics. It uses gcc 4.6.3, binutils 2.21.53, - glibc 2.15, gdb 7.2.50 and kernel headers 3.2.10. It has - support for the following variants: - - e500v2 glibc, SPE, 32 bits - -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC - bool "Sourcery CodeBench PowerPC 2011.03" - depends on BR2_powerpc - depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" - depends on !BR2_STATIC_LIBS - select BR2_TOOLCHAIN_EXTERNAL_GLIBC - select BR2_TOOLCHAIN_HAS_NATIVE_RPC - select BR2_INSTALL_LIBSTDCPP - select BR2_HOSTARCH_NEEDS_IA32_LIBS - # kernel headers: 2.6.38 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 - help - Sourcery CodeBench toolchain for the PowerPC architecture, - from Mentor Graphics. It uses gcc 4.5.2, binutils 2.20.51, - glibc 2.13, gdb 7.2.50 and kernel headers 2.6.38. It has - support for the following variants: - - 603 glibc, 32 bits - Select a generic PowerPC core - Disable BR2_SOFT_FLOAT - - 603 soft float glibc, 32 bits - Select a generic PowerPC core - Enable BR2_SOFT_FLOAT - - e600 altivec glibc, 32 bits - Set BR2_TARGET_OPTIMIZATION to -te600 - - e500v1 glibc, 32 bits - Set BR2_TARGET_OPTIMIZATION to -te500v1 - - e500v2 glibc, 32 bits - Set BR2_TARGET_OPTIMIZATION to -te500v2 - - e500mc glibc, 32 bits - Set BR2_TARGET_OPTIMIZATION to -te500mc - - 970 glibc hard-float, 64 bits - Set BR2_TARGET_OPTIMIZATION to -m64 + from Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, + glibc 2.23, gdb 7.10.50 and kernel headers 4.4. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH bool "Sourcery CodeBench SH 2012.09" @@ -437,6 +439,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS @@ -463,6 +466,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 depends on !BR2_STATIC_LIBS depends on BR2_x86_jaguar || BR2_x86_steamroller select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS @@ -488,6 +492,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 depends on !BR2_x86_jaguar depends on !BR2_x86_steamroller select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS @@ -522,6 +527,7 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 + select BR2_TOOLCHAIN_HAS_FORTRAN help Toolchain for the Blackfin architecture, from http://blackfin.uclinux.org. @@ -533,64 +539,73 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 depends on BR2_HOSTARCH = "x86" depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN help Toolchain for the AArch64 architecture, from http://www.linaro.org/engineering/armv8/ # See note about Linaro ARM/ARMEB toolchains, above. config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 - bool "Linaro AArch64 2015.11" + bool "Linaro AArch64 2016.02" depends on BR2_aarch64 depends on BR2_HOSTARCH = "x86_64" depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_INSTALL_LIBSTDCPP select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_TOOLCHAIN_HAS_FORTRAN help Toolchain for the AArch64 architecture, from http://www.linaro.org/engineering/armv8/ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 - bool "CodeSourcery AArch64 2014.05" + bool "CodeSourcery AArch64 2014.11" depends on BR2_aarch64 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on !BR2_STATIC_LIBS select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HAS_NATIVE_RPC - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 help Sourcery CodeBench toolchain for the AArch64 architecture, - from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24, - glibc 2.18, gdb 7.7.50 and kernel headers 3.13. + from Mentor Graphics. It uses gcc 4.9.1, binutils + 2.24.51.20140217, glibc 2.20, gdb 7.7.50 and kernel headers + 3.16.2. config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS - bool "Musl 1.1.6 toolchain (experimental)" - depends on (BR2_arm && BR2_ARM_EABI) || \ - (BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4) || \ - (BR2_armeb && BR2_ARM_EABI) || \ - (BR2_i386 && !BR2_x86_i386) || BR2_microblazebe || BR2_mips || \ - BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || BR2_x86_64 + bool "Musl 1.1.12 toolchain" + depends on (BR2_arm && BR2_ARM_EABI && BR2_USE_MMU) || \ + (BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4 && BR2_USE_MMU) || \ + (BR2_armeb && BR2_ARM_EABI && !BR2_ARM_CPU_ARMV7A && BR2_USE_MMU) || \ + BR2_i386 || (BR2_mips && !BR2_SOFT_FLOAT) || \ + BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || \ + BR2_sh4 || BR2_sh4eb || \ + BR2_x86_64 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" # Unsupported for MIPS R6 depends on !BR2_mips_32r6 && !BR2_mips_64r6 select BR2_TOOLCHAIN_EXTERNAL_MUSL + select BR2_TOOLCHAIN_HAS_SSP select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 help Toolchain based on the Musl C library, provided by the - musl-cross project. It uses gcc 4.9.2, binutils 2.25 and - musl 1.1.6. It does not have a cross debugger included. + musl-cross project. It uses gcc 5.3, binutils 2.25.1 and + musl 1.1.12. It does not have a cross debugger included. The ARM soft-float toolchain is built for ARMv4t, while the ARM hard-float toolchain is built for ARMv5t. @@ -677,11 +692,9 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 - default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 + default "aarch64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS default "nios2-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII - default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC - default "powerpc-mentor-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 default "sh-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 default "x86_64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 @@ -693,12 +706,12 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "mips-mti-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS default "armeb-linux-musleabi" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_armeb default "i486-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_i386 - default "microblaze-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_microblazebe default "mips-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mips && !BR2_SOFT_FLOAT) - default "mips-sf-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mips && BR2_SOFT_FLOAT) default "mipsel-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mipsel && !BR2_SOFT_FLOAT) default "mipsel-sf-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mipsel && BR2_SOFT_FLOAT) default "powerpc-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_powerpc + default "sh4-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_sh4 + default "sh4eb-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_sh4eb default "x86_64-linux-musl" if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_x86_64 default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX \ if BR2_TOOLCHAIN_EXTERNAL_CUSTOM @@ -714,7 +727,8 @@ config BR2_TOOLCHAIN_EXTERNAL_UCLIBC config BR2_TOOLCHAIN_EXTERNAL_MUSL bool select BR2_TOOLCHAIN_USES_MUSL - select BR2_PACKAGE_NETBSD_QUEUE + # Compatibility headers: cdefs.h, queue.h + select BR2_PACKAGE_MUSL_COMPAT_HEADERS if BR2_TOOLCHAIN_EXTERNAL_CUSTOM @@ -725,6 +739,10 @@ choice Set to the gcc version that is used by your external toolchain. +config BR2_TOOLCHAIN_EXTERNAL_GCC_6 + bool "6.x" + select BR2_TOOLCHAIN_GCC_AT_LEAST_6 + config BR2_TOOLCHAIN_EXTERNAL_GCC_5 bool "5.x" select BR2_TOOLCHAIN_GCC_AT_LEAST_5 @@ -776,6 +794,18 @@ choice m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF +config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_7 + bool "4.7.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7 + +config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6 + bool "4.6.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6 + +config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_5 + bool "4.5.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 + config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4 bool "4.4.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 @@ -909,11 +939,11 @@ config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC toolchain with eglibc configured to exclude key features may cause build failures to some packages. -comment "(e)glibc only available with shared lib support" +comment "glibc only available with shared lib support" depends on BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL - bool "musl (experimental)" + bool "musl" select BR2_TOOLCHAIN_EXTERNAL_MUSL help Select this option if your external toolchain uses the @@ -972,17 +1002,19 @@ config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL endif # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS +endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC + config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP bool "Toolchain has SSP support?" select BR2_TOOLCHAIN_HAS_SSP + default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC + default y if BR2_TOOLCHAIN_EXTERNAL_MUSL help Selection this option if your external toolchain has Stack Smashing Protection support enabled. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. -endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC - config BR2_TOOLCHAIN_EXTERNAL_INET_RPC bool "Toolchain has RPC support?" select BR2_TOOLCHAIN_HAS_NATIVE_RPC @@ -1001,13 +1033,20 @@ config BR2_TOOLCHAIN_EXTERNAL_CXX support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. +config BR2_TOOLCHAIN_EXTERNAL_FORTRAN + bool "Toolchain has Fortran support?" + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Select this option if your external toolchain has Fortran + support. If you don't know, leave the default value, + Buildroot will tell you if it's correct or not. + config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS string "Extra toolchain libraries to be copied to target" help If your external toolchain provides extra libraries that need to be copied to the target filesystem, enter them - here, separated by spaces. They will be copied to the - target's /lib directory. + here, separated by spaces. endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM diff --git a/bsp/buildroot/toolchain/toolchain-external/toolchain-external.hash b/bsp/buildroot/toolchain/toolchain-external/toolchain-external.hash index df6d7e91..9d74cb78 100644 --- a/bsp/buildroot/toolchain/toolchain-external/toolchain-external.hash +++ b/bsp/buildroot/toolchain/toolchain-external/toolchain-external.hash @@ -1,7 +1,3 @@ -# Sourcery CodeBench Lite for MIPS -# Locally computed -sha256 e653102803d0fadc0a83286400c03bc7932ab081d3f8fc8917c34e76468315a2 mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 - ###################################### # Next hashes are all locally computed @@ -12,36 +8,47 @@ sha256 c65b1b4b918d5185349d62a3b7bf43b4b21e1175c52598ec047ca56b3f11d857 blackfi # Mentor's Sourcery CodeBench Lite toolchains # ARM sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 +sha256 e16a5b1e41d7ff1e74161f9405182001bc8d1360d89564e73911032e6966cc0d arm-2014.05-29-arm-none-linux-gnueabi.src.tar.bz2 # NiosII -sha256 cc47745dc1264fcb8fb98fb1315ab772ab98691396021c455229b58abaf887f5 sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 -# PowerPC -sha256 525e1f53abbf65c2974ae9af762c45bb38520fe5fc50e968a23fe6a18e9eec04 freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2 -sha256 d6c94587d546197836e7e1a6909f6aabfa5879e91f501ab03088a6887cc242fc mentor-2012.03-71-powerpc-mentor-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 750639290744adda931c81fa2cd2ffc2bde972488047824dcfaa53c42562191d sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 3dc1c2685c0472059547dd7becb5dc991541b8176af39fa7aa5f601d38b9879a sourceryg++-2016.05-10-nios2-linux-gnu.src.tar.bz2 # SuperH sha256 59d6766fde244931aa52db01433d5acd051998762a931121c5fc109536a1a802 renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 e2e58c10e52395d5d35157e35f85233f713c6f9223a652dfc56194cfd2eed004 renesas-2012.09-61-sh-linux-gnu.src.tar.bz2 # x86 sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458 ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2 +sha256 1a9519e415a1e6892c760bf21f7e98f3a633a9d1c5bb8781a96d338e4dd62717 ia32-2012.09-62-i686-pc-linux-gnu.src.tar.bz2 # AMD64 -sha256 cb4d071db8aefb8005fe72824b96568d93a50f5acd85bacf505a34fe2f265f70 amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 3c31206c8b9277f409ee00e4777ba82dfa6da2a4ca0926501cd5fb6bbd1b407e amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 0b673f5035f97d5d03c31272cddab0f117d39ad76a5ad2a3bc98c156571527de amd-2015.11-139-x86_64-amd-linux-gnu.src.tar.bz2 # Aarch64 -sha256 8ea78c5988b2bb507534f1ad46aa46659f66b39d55f2fc40e163a90b4195e70f aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 405aada821146755c5f2df566375c2a682456d6b8451ee47b88cf1a52b093676 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 3f50dd6ee433eb5b6992a1071b988e50379a738f54f58722bc60081613764716 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu.src.tar.bz2 +# MIPS +sha256 d354447c4c5160439dafd5464fa3a0266dd41e79f973477238e4f0215a6b5397 mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 2658e55d5b71bba25d6f77e868e18b200ea5f75c8add7ed3a9266e716d9adfff mips-2016.05-8-mips-linux-gnu.src.tar.bz2 # ARM toolchains from Texas Instrument's Arago project +# There is one source file that covers both binary distributions. sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7 arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2 sha256 254af7d02eb3bcc8345c78e131700bc995d65b68232caaed21150a5fd1456070 arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2 +sha256 25fbf0513ad7322b15cbaae964cafadcbb4c939f2708f57f40b8f9f2d601122b arago-toolchain-2011.09-sources.tar.bz2 # ARM and Aarch64 toolchains from Linaro sha256 0cffac0caea0eb3c8bdddfa14be011ce366680f40aeddbefc7cf23cb6d4f1891 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz -sha256 ff2d231749e59968cb5e7032b4f4e4ae82ff9f11c23967863e627a6c59cb3bc0 gcc-linaro-5.2-2015.11-2-x86_64_arm-linux-gnueabihf.tar.xz +sha256 eafeb3a5247e9ce31aa35d812e296fba5d5f1443e106d9bef9e38d3ee3ade006 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_src.tar.bz2 +sha256 dd66f07662e1f3b555eaa0d076f133b6db702ab0b9ab18f7dfc91a23eab653c5 gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz sha256 4bc9d86390f8fa67a693ba4768ba5b12faaf7dd37c706c05ccd9321e765226e4 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz -sha256 e3df0c31d0bd8d1f6d45d585203c0f601e50b1ff7225da1423a8ca36e8caf58f gcc-linaro-5.2-2015.11-2-x86_64_armeb-linux-gnueabihf.tar.xz +sha256 bf5d3111dad5aa9aef0e955875fb7fc9e918cb24519af7014dd67a9e581a49b1 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_src.tar.bz2 +sha256 f488caf46680b0c0a16b66b43fbfd157e3d6389df18e957983132e89529a9804 gcc-linaro-5.3-2016.02-x86_64_armeb-linux-gnueabihf.tar.xz sha256 3954f496ab01de67241109e82abfaa9b7625fdab4f05e79e7902e9814a07b832 gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz -sha256 b318a1837a54146b0120a13852386576e38355513b4e2cd5e2125f9c26913777 gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu.tar.xz +sha256 a7b8f842fdc9d9be22ca4e0c999429780fc6f16ea798b032421b5ec0cfa53b3e gcc-linaro-aarch64-linux-gnu-4.9-2014.09_src.tar.bz2 +sha256 1c85af550bedd378be583317b4abbdc96342b42c19fb19873c13d3093ff694ad gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz # Codescape toolchains from Imagination Technologies -# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.06-05/ -sha256 f2d12dde626b750987d37ba6c73c6e11839850add94b0d4e4cf77917c1b0944f Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz -sha256 545923cf40101b5de6b1e0fdf124aceba7ab27daf6c755aecf01d2c886715409 Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz +# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html +sha256 e3c1f292ac6a9f12480af431c85a7ed9dfa011a52fd62a50be3363ec6b9bc872 Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz +sha256 10b8ab6d7c492abc19ecabafedc6bc5f12ff88107a3cb76dc452b3a9522d9c56 Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz # Synopsys DesignWare ARC toolchains sha256 1fa4ea2c8616623205f1c7beca02ea31b019099528a7433e5b020b0876b93bf3 arc_gnu_2014.12_prebuilt_uclibc_le_arc700_linux_install.tar.gz @@ -50,15 +57,14 @@ sha256 aaaf6facd1f60a3cd2a537154ea39cd7d70501c175e30e01a97e8df6cb8226c7 arc_gnu sha256 30711c5f15762764d4cd5ec1e6ced5b1fddd03aac41c424b0c4ec8a45d5d79cd arc_gnu_2014.12_prebuilt_uclibc_be_archs_linux_install.tar.gz # Prebuilt musl toolchains from musl-cross -sha256 26da90f5cf5e5220b1d6424420ab9f3877a1826a2a5268a62d390711c0e73cd0 crossx86-arm-linux-musleabi-1.1.6.tar.xz -sha256 c3b1c79a48e999c8f655cd008d04ba53c4f76217fa3c289566dab174e8ef8711 crossx86-arm-linux-musleabihf-1.1.6.tar.xz -sha256 b74ebf6e92b69bb7c7651cc8ff87a14c41fd9c043af9db7304b293c291c830b5 crossx86-armeb-linux-musleabi-1.1.6.tar.xz -sha256 740716209e1aef0442fe8e200a1b2582d9d86e86ff6d113ab9678b592121e2f9 crossx86-i486-linux-musl-1.1.6.tar.xz -sha256 7a0da8bd22c25ad11acc8309d8541b7b7966ccefcf136d860d38bf625c05b53e crossx86-microblaze-linux-musl-1.1.6.tar.xz -sha256 b89503aeb02a5201476ff4bb014879f1989868c9c25f2af84e2fc04bec7acf2e crossx86-mips-linux-musl-1.1.6.tar.xz -sha256 552996f7a8132f8be994513156a30f4c03fff4873b76726b98e4e0056257367f crossx86-mipsel-linux-musl-1.1.6.tar.xz -sha256 c49f7425ac9d0629cd9893d7bc247d5e6847c9eb5d11924dbc440b9d10f6c2bb crossx86-powerpc-linux-musl-1.1.6.tar.xz -sha256 79a1a4be93e2a63acb137170e98bdfbf744bd9ca7b15b76ab512d1e0dfec834e crossx86-sh4-linux-musl-1.1.6.tar.xz -sha256 aec4d560dc601e397fc86a9759166005afba22ad666d1a48019b5102c534ccc1 crossx86-sh4eb-linux-musl-1.1.6.tar.xz -sha256 68eda0795aacd4371b45a6c58c5c75e86c0c2fdf7ebc2c0b7d3752462c848260 crossx86-x86_64-linux-musl-1.1.6.tar.xz -sha256 6bef5ee2cdb9fa35e49ce0a270f6d7c48f3268c6f6345ad5ca0b8137982b4690 crossx86-x86_64-x32-linux-musl-1.1.6.tar.xz +sha256 e32c23d0b83639fc10ad06666ec086b66453b9be44415fe1a818c3c3b526dfb1 crossx86-armeb-linux-musleabi-1.1.12.tar.xz +sha256 eb81bd5d6ada454c6e854b18bfa8dc801333782152166f6cab9fb7cd11692987 crossx86-arm-linux-musleabi-1.1.12.tar.xz +sha256 a050da284ff22d291ae71dfc249ebdedb18334b8d626804760ce7d5963e392e6 crossx86-arm-linux-musleabihf-1.1.12.tar.xz +sha256 18d07f5c8f4cfe373461cf21cf7b1bfefa820a37e96a69b68e0f315d528b4286 crossx86-i486-linux-musl-1.1.12.tar.xz +sha256 1c1480c2618097e402fe804c1431fbd49b0d43520af81d4c1a695a2fa13a3922 crossx86-mipsel-linux-musl-1.1.12.tar.xz +sha256 f0a8b3eb0566138ab3cc77bc09648be15bc325da974ec98b9e67f2fb82be3295 crossx86-mipsel-sf-linux-musl-1.1.12.tar.xz +sha256 6a99989c3dff56776981f6760b2c54dcb9e4032be1d649968bb06c04f2e64177 crossx86-mips-linux-musl-1.1.12.tar.xz +sha256 c082adc3e8b0750bb22ca82628524fd525fd77f534517ac5a66e7ac5a297ee6e crossx86-powerpc-linux-musl-1.1.12.tar.xz +sha256 8c6c9ebb54040e47947b4d3af6823d01fef2bb6ee81b18903c801030c066092b crossx86-sh4eb-linux-musl-1.1.12.tar.xz +sha256 ae9a0a5a60226aa086a56628cfd5c1d283c9dffdca37891d7e6adc2bd21ac2e0 crossx86-sh4-linux-musl-1.1.12.tar.xz +sha256 27e0ea1043a58aebeadf1dacd67e47fd0b5c19fc36f42c9374e5fa3308df09c6 crossx86-x86_64-linux-musl-1.1.12.tar.xz diff --git a/bsp/buildroot/toolchain/toolchain-external/toolchain-external.mk b/bsp/buildroot/toolchain/toolchain-external/toolchain-external.mk index 6c3022ab..ad258b86 100644 --- a/bsp/buildroot/toolchain/toolchain-external/toolchain-external.mk +++ b/bsp/buildroot/toolchain/toolchain-external/toolchain-external.mk @@ -64,33 +64,41 @@ # of Buildroot is handled identical for the 2 toolchain types. ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y) -LIB_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.* +TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.* ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy) -LIB_EXTERNAL_LIBS += ld-linux-armhf.so.* +TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.* else -LIB_EXTERNAL_LIBS += ld*.so.* +TOOLCHAIN_EXTERNAL_LIBS += ld*.so.* endif ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) -LIB_EXTERNAL_LIBS += libpthread.so.* +TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.* ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),) -LIB_EXTERNAL_LIBS += libthread_db.so.* +TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.* endif # gdbserver endif # ! no threads endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y) -LIB_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.* +TOOLCHAIN_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.* endif ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y) -LIB_EXTERNAL_LIBS += libc.so libgcc_s.so.* +TOOLCHAIN_EXTERNAL_LIBS += libc.so libgcc_s.so.* endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) -USR_LIB_EXTERNAL_LIBS += libstdc++.so.* +TOOLCHAIN_EXTERNAL_LIBS += libstdc++.so.* endif -LIB_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS)) +ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y) +TOOLCHAIN_EXTERNAL_LIBS += libgfortran.so.* +# fortran needs quadmath on x86 and x86_64 +ifeq ($(BR2_TOOLCHAIN_HAS_LIBQUADMATH),y) +TOOLCHAIN_EXTERNAL_LIBS += libquadmath.so* +endif +endif + +TOOLCHAIN_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS)) # Details about sysroot directory selection. # @@ -130,8 +138,10 @@ LIB_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS)) TOOLCHAIN_EXTERNAL_PREFIX = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)) +TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR = $(HOST_DIR)/opt/ext-toolchain + ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y) -TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(HOST_DIR)/opt/ext-toolchain +TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) else TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH)) endif @@ -160,6 +170,7 @@ TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \ TOOLCHAIN_EXTERNAL_CROSS = $(TOOLCHAIN_EXTERNAL_BIN)/$(TOOLCHAIN_EXTERNAL_PREFIX)- TOOLCHAIN_EXTERNAL_CC = $(TOOLCHAIN_EXTERNAL_CROSS)gcc$(TOOLCHAIN_EXTERNAL_SUFFIX) TOOLCHAIN_EXTERNAL_CXX = $(TOOLCHAIN_EXTERNAL_CROSS)g++$(TOOLCHAIN_EXTERNAL_SUFFIX) +TOOLCHAIN_EXTERNAL_FC = $(TOOLCHAIN_EXTERNAL_CROSS)gfortran$(TOOLCHAIN_EXTERNAL_SUFFIX) TOOLCHAIN_EXTERNAL_READELF = $(TOOLCHAIN_EXTERNAL_CROSS)readelf$(TOOLCHAIN_EXTERNAL_SUFFIX) ifeq ($(filter $(HOST_DIR)/%,$(TOOLCHAIN_EXTERNAL_BIN)),) @@ -237,30 +248,54 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1 endif -# musl does not provide a sys/queue.h implementation, so add the -# netbsd-queue package that will install a sys/queue.h file in the -# staging directory based on the NetBSD implementation. +# musl does not provide an implementation for sys/queue.h or sys/cdefs.h. +# So, add the musl-compat-headers package that will install those files, +# into the staging directory: +# sys/queue.h: header from NetBSD +# sys/cdefs.h: minimalist header bundled in Buildroot ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y) -TOOLCHAIN_EXTERNAL_DEPENDENCIES += netbsd-queue +TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers endif -# The Linaro ARMhf toolchain expects the libraries in -# {/usr,}/lib/arm-linux-gnueabihf, but Buildroot copies them to +# The Linaro toolchain expects the libraries in +# {/usr,}/lib/, but Buildroot copies them to # {/usr,}/lib, so we need to create a symbolic link. -define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK - ln -snf . $(TARGET_DIR)/lib/arm-linux-gnueabihf - ln -snf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf +define TOOLCHAIN_EXTERNAL_LINARO_SYMLINK + ln -snf . $(TARGET_DIR)/lib/$(TOOLCHAIN_EXTERNAL_PREFIX) + ln -snf . $(TARGET_DIR)/usr/lib/$(TOOLCHAIN_EXTERNAL_PREFIX) endef -define TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK - ln -snf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf - ln -snf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf +# The Codescape toolchain uses a sysroot layout that places them +# side-by-side instead of nested like multilibs. A symlink is needed +# much like for the nested sysroots which are handled in +# copy_toolchain_sysroot but there is not enough information in there +# to determine whether the sysroot layout was nested or side-by-side. +# Add the symlink here for now. +define TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK + $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))"; \ + ARCH_SUBDIR=`basename $${ARCH_SYSROOT_DIR}`; \ + ln -snf . $(STAGING_DIR)/$${ARCH_SUBDIR} endef -define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK - ln -snf . $(TARGET_DIR)/lib/aarch64-linux-gnu - ln -snf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu +# Special fixup for Codescape MIPS toolchains, that have bin- and +# sbin- directories. We create symlinks bin -> bin- and sbin +# -> sbin- so that the rest of Buildroot can find the toolchain +# tools in the appropriate location. +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS)$(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y) +ifeq ($(BR2_MIPS_OABI32),y) +TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = o32 +else ifeq ($(BR2_MIPS_NABI32),y) +TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = n32 +else ifeq ($(BR2_MIPS_NABI64),y) +TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = n64 +endif + +define TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS + rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin + ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin + ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin endef +endif # Special handling for Blackfin toolchain, because of the split in two # tarballs, and the organization of tarball contents. The tarballs @@ -295,36 +330,30 @@ endef TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_FIXUP_CMDS else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM),y) ifeq ($(HOSTARCH),x86) -TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries +TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/14.09/components/toolchain/binaries TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_src.tar.bz2 -TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_SYMLINK else -TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/arm-linux-gnueabihf -TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.2-2015.11-2-x86_64_arm-linux-gnueabihf.tar.xz +TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf +TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz endif else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB),y) ifeq ($(HOSTARCH),x86) -TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries +TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/14.09/components/toolchain/binaries TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_src.tar.bz2 -TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_SYMLINK else -TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/armeb-linux-gnueabihf -TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.2-2015.11-2-x86_64_armeb-linux-gnueabihf.tar.xz +TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/armeb-linux-gnueabihf +TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3-2016.02-x86_64_armeb-linux-gnueabihf.tar.xz endif else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SOURCE = mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-mentor-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = mentor-2012.03-71-powerpc-mentor-linux-gnu-i686-pc-linux-gnu.tar.bz2 -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH),y) TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/sh-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2 @@ -333,14 +362,18 @@ TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/i686- TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64),y) TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/x86_64-amd-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SOURCE = amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS),y) -TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.06-05 -TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz +TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03 +TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y) -TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2015.06-05 -TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2015.06-05.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz +TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03 +TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX),y) TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/project/adi-toolchain/2014R1/2014R1-RC2/i386 @@ -350,19 +383,27 @@ TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 3 TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLIBC_EXTRA_EXTRACT else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64),y) ifeq ($(HOSTARCH),x86) -TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries +TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/14.09/components/toolchain/binaries TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = gcc-linaro-aarch64-linux-gnu-4.9-2014.09_src.tar.bz2 -TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_SYMLINK else -TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/aarch64-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu.tar.xz +TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/aarch64-linux-gnu +TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz endif else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-amd-linux-gnu +TOOLCHAIN_EXTERNAL_SOURCE = aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP + ln -sf ld-2.20.so $(STAGING_DIR)/lib/ld-linux-aarch64.so.1 +endef +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP +define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP + ln -sf ld-2.20.so $(TARGET_DIR)/lib/ld-linux-aarch64.so.1 +endef +TOOLCHAIN_EXTERNAL_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS),y) -TOOLCHAIN_EXTERNAL_VERSION = 1.1.6 +TOOLCHAIN_EXTERNAL_VERSION = 1.1.12 TOOLCHAIN_EXTERNAL_SITE = https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-$(TOOLCHAIN_EXTERNAL_VERSION) ifeq ($(BR2_arm)$(BR2_ARM_EABI),yy) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-arm-linux-musleabi-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz @@ -372,14 +413,18 @@ else ifeq ($(BR2_armeb),y) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-armeb-linux-musleabi-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz else ifeq ($(BR2_i386),y) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-i486-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz -else ifeq ($(BR2_microblazebe),y) -TOOLCHAIN_EXTERNAL_SOURCE = crossx86-microblaze-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz else ifeq ($(BR2_mips),y) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mips-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz -else ifeq ($(BR2_mipsel),y) +else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mipsel-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz +else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y) +TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mipsel-sf-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz else ifeq ($(BR2_powerpc),y) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-powerpc-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz +else ifeq ($(BR2_sh4),y) +TOOLCHAIN_EXTERNAL_SOURCE = crossx86-sh4-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz +else ifeq ($(BR2_sh4eb),y) +TOOLCHAIN_EXTERNAL_SOURCE = crossx86-sh4eb-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz else ifeq ($(BR2_x86_64),y) TOOLCHAIN_EXTERNAL_SOURCE = crossx86-x86_64-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz endif @@ -424,16 +469,16 @@ TOOLCHAIN_EXTERNAL_ADD_TOOLCHAIN_DEPENDENCY = NO TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES # Normal handling of downloaded toolchain tarball extraction. -ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),) +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y) TOOLCHAIN_EXTERNAL_EXCLUDES = usr/lib/locale/* # As a regular package, the toolchain gets extracted in $(@D), but # since it's actually a fairly special package, we need it to be moved -# into TOOLCHAIN_EXTERNAL_INSTALL_DIR. +# into TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR. define TOOLCHAIN_EXTERNAL_MOVE - rm -rf $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/* - mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) - mv $(@D)/* $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/ + rm -rf $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) + mkdir -p $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) + mv $(@D)/* $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)/ endef TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \ TOOLCHAIN_EXTERNAL_MOVE @@ -467,17 +512,13 @@ $$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64 endef # Checks for an already installed toolchain: check the toolchain -# location, check that it supports sysroot, and then verify that it +# location, check that it is usable, and then verify that it # matches the configuration provided in Buildroot: ABI, C++ support, # kernel headers version, type of C library and all C library features. define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS $(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC)) $(Q)$(call check_unusable_toolchain,$(TOOLCHAIN_EXTERNAL_CC)) $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ - if test -z "$${SYSROOT_DIR}" ; then \ - @echo "External toolchain doesn't support --sysroot. Cannot use." ; \ - exit 1 ; \ - fi ; \ $(call check_kernel_headers_version,\ $(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC)),\ $(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))); \ @@ -491,6 +532,9 @@ define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS if test "$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \ $(call check_cplusplus,$(TOOLCHAIN_EXTERNAL_CXX)) ; \ fi ; \ + if test "$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \ + $(call check_fortran,$(TOOLCHAIN_EXTERNAL_FC)) ; \ + fi ; \ if test "$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \ $(call check_uclibc,$${SYSROOT_DIR}) ; \ elif test "$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \ @@ -498,6 +542,7 @@ define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS else \ $(call check_glibc,$${SYSROOT_DIR}) ; \ fi + $(Q)$(call check_toolchain_ssp,$(TOOLCHAIN_EXTERNAL_CC)) endef # With the musl C library, the libc.so library directly plays the role @@ -508,6 +553,10 @@ ifeq ($(BR2_i386),y) MUSL_ARCH = i386 else ifeq ($(BR2_ARM_EABIHF),y) MUSL_ARCH = armhf +else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y) +MUSL_ARCH = mipsel-sf +else ifeq ($(BR2_sh),y) +MUSL_ARCH = sh else MUSL_ARCH = $(ARCH) endif @@ -585,58 +634,45 @@ endef # our sysroot, and the directory will also be # considered when searching libraries for copy # to the target filesystem. +# +# Please be very careful to check the major toolchain sources: +# Buildroot, Crosstool-NG, CodeSourcery and Linaro +# before doing any modification on the below logic. +ifeq ($(BR2_STATIC_LIBS),) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS - $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ - if test -z "$${SYSROOT_DIR}" ; then \ - @echo "External toolchain doesn't support --sysroot. Cannot use." ; \ - exit 1 ; \ - fi ; \ - ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)$(call MESSAGE,"Copying external toolchain libraries to target...") + $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \ + $(call copy_toolchain_lib_root,$$libs); \ + done +endef +endif + +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),y) +define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER + $(Q)$(call MESSAGE,"Copying gdbserver") + $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - SUPPORT_LIB_DIR="" ; \ - if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \ - LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \ - if [ -e "$${LIBSTDCPP_A_LOCATION}" ]; then \ - SUPPORT_LIB_DIR=`readlink -f $${LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \ - fi ; \ - fi ; \ - ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \ - if test -z "$(BR2_STATIC_LIBS)" ; then \ - $(call MESSAGE,"Copying external toolchain libraries to target...") ; \ - for libs in $(LIB_EXTERNAL_LIBS); do \ - $(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/lib); \ - done ; \ - for libs in $(USR_LIB_EXTERNAL_LIBS); do \ - $(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/usr/lib); \ - done ; \ - fi ; \ - if test "$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)" = "y"; then \ - $(call MESSAGE,"Copying gdbserver") ; \ - gdbserver_found=0 ; \ - for d in $${ARCH_SYSROOT_DIR}/usr \ - $${ARCH_SYSROOT_DIR}/../debug-root/usr \ - $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \ - if test -f $${d}/bin/gdbserver ; then \ - install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \ - gdbserver_found=1 ; \ - break ; \ - fi ; \ - done ; \ - if [ $${gdbserver_found} -eq 0 ] ; then \ - echo "Could not find gdbserver in external toolchain" ; \ - exit 1 ; \ + gdbserver_found=0 ; \ + for d in $${ARCH_SYSROOT_DIR}/usr \ + $${ARCH_SYSROOT_DIR}/../debug-root/usr \ + $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \ + $(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \ + if test -f $${d}/bin/gdbserver ; then \ + install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \ + gdbserver_found=1 ; \ + break ; \ fi ; \ + done ; \ + if [ $${gdbserver_found} -eq 0 ] ; then \ + echo "Could not find gdbserver in external toolchain" ; \ + exit 1 ; \ fi endef +endif define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ - if test -z "$${SYSROOT_DIR}" ; then \ - @echo "External toolchain doesn't support --sysroot. Cannot use." ; \ - exit 1 ; \ - fi ; \ ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ SUPPORT_LIB_DIR="" ; \ @@ -656,9 +692,9 @@ endef # nonetheless requested the installation of the FDPIC libraries to the # target filesystem. ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y) -define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC - $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") ; \ - FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \ +define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC + $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to staging...") + $(Q)FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \ FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ FDPIC_SUPPORT_LIB_DIR="" ; \ @@ -668,11 +704,12 @@ define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC FDPIC_SUPPORT_LIB_DIR=`readlink -f $${FDPIC_LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \ fi ; \ fi ; \ - for libs in $(LIB_EXTERNAL_LIBS); do \ - $(call copy_toolchain_lib_root,$${FDPIC_SYSROOT_DIR},$${FDPIC_SUPPORT_LIB_DIR},$${FDPIC_LIB_DIR},$$libs,/lib); \ - done ; \ - for libs in $(USR_LIB_EXTERNAL_LIBS); do \ - $(call copy_toolchain_lib_root,$${FDPIC_SYSROOT_DIR},$${FDPIC_SUPPORT_LIB_DIR},$${FDPIC_LIB_DIR},$$libs,/usr/lib); \ + $(call copy_toolchain_sysroot,$${FDPIC_SYSROOT_DIR},$${FDPIC_SYSROOT_DIR},,$${FDPIC_LIB_DIR},$${FDPIC_SUPPORT_LIB_DIR}) +endef +define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC + $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") + $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \ + $(call copy_toolchain_lib_root,$$libs); \ done endef endif @@ -684,9 +721,9 @@ endif # according to the index in name "libN.so". Index 1 is reserved for # the standard C library. Customer libraries can use 4 and above. ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y) -define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT - $(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...") ; \ - FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \ +define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT + $(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...") + $(Q)FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \ FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -mid-shared-library -print-file-name=libc`; \ if [ -f $${FLAT_LIBC_A_LOCATION} -a ! -h $${FLAT_LIBC_A_LOCATION} ] ; then \ $(INSTALL) -D $${FLAT_LIBC_A_LOCATION} $(TARGET_DIR)/lib/lib1.so; \ @@ -694,9 +731,9 @@ define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT endef endif -# Build toolchain wrapper for preprocessor, C and C++ compiler and setup -# symlinks for everything else. Skip gdb symlink when we are building our -# own gdb to prevent two gdb's in output/host/usr/bin. +# Build toolchain wrapper for preprocessor, C, C++ and Fortran compilers +# and setup symlinks for everything else. Skip gdb symlink when we are +# building our own gdb to prevent two gdb's in output/host/usr/bin. # The LTO support in gcc creates wrappers for ar, ranlib and nm which load # the lto plugin. These wrappers are called *-gcc-ar, *-gcc-ranlib, and # *-gcc-nm and should be used instead of the real programs when -flto is @@ -711,7 +748,7 @@ define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER *-ar|*-ranlib|*-nm) \ ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \ ;; \ - *cc|*cc-*|*++|*++-*|*cpp) \ + *cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \ ln -sf toolchain-wrapper $$base; \ ;; \ *gdb|*gdbtui) \ @@ -755,6 +792,7 @@ TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_BUILD_WRAPPER) define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK) $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS) + $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC) $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER) $(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT) endef @@ -765,9 +803,11 @@ endef define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS $(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS) - $(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC) - $(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT) + $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) + $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC) + $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT) $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO) endef $(eval $(generic-package)) + diff --git a/bsp/buildroot/toolchain/toolchain.mk b/bsp/buildroot/toolchain/toolchain.mk index 0a359093..59fc905c 100644 --- a/bsp/buildroot/toolchain/toolchain.mk +++ b/bsp/buildroot/toolchain/toolchain.mk @@ -10,7 +10,7 @@ define GLIBC_COPY_NSSWITCH_FILE $(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \ fi endef -TARGET_FINALIZE_HOOKS += GLIBC_COPY_NSSWITCH_FILE +TOOLCHAIN_TARGET_FINALIZE_HOOKS += GLIBC_COPY_NSSWITCH_FILE endif # Install the gconv modules @@ -52,5 +52,5 @@ define COPY_GCONV_LIBS >$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \ fi endef -TARGET_FINALIZE_HOOKS += COPY_GCONV_LIBS +TOOLCHAIN_TARGET_FINALIZE_HOOKS += COPY_GCONV_LIBS endif